Skip to content

Operator configuration

Controller flags and their exact defaults are captured from the operator's real --help output.

One dash or two makes no difference. The table shows the single-dash spelling because that is how Go's flag package prints and reports flags, and other pages write --enable-metrics-observation. The parser accepts both forms identically: --enable-metrics-observation=x and -enable-metrics-observation=x produce the same invalid boolean value "x" for -enable-metrics-observation error. Neither spelling is more correct.

Two different defaults can apply to the same flag. The Default column below is the binary's default -- what you get running the controller with no arguments. The Helm chart renders its own fixed argument list, so where a chart value exists it decides, and its default may differ. -enable-dashboard is the one that catches people out: the binary defaults it off, the chart's dashboard.enabled defaults it on, and a chart install therefore runs the managed dashboard. See the Helm reference for the values and their defaults.

A flag the chart never renders cannot be set on the documented install path. The chart has no extraArgs, so the Via chart column is the whole story: chart value means some value in values.yaml renders this flag; always on means the chart hardcodes it and no value changes it; no means the chart never passes it, and reaching it requires patching the Deployment after install -- which helm upgrade then reverts. See Limitations.

Command-line flags

Flag Type Default Via chart Description
-dashboard-cpu-limit string chart value CPU limit for the dashboard container (e.g. 200m). Empty uses the built-in default.
-dashboard-cpu-request string chart value CPU request for the dashboard container (e.g. 50m). Empty uses the built-in default.
-dashboard-memory-limit string chart value Memory limit for the dashboard container (e.g. 512Mi). Empty uses the built-in default.
-dashboard-memory-request string chart value Memory request for the dashboard container (e.g. 128Mi). Empty uses the built-in default.
-dashboard-oci-secret string chart value Optional: name of a Secret in the operator namespace containing OCI registry credentials. Supports Opaque (registry + token, or registry + username + password) and kubernetes.io/dockerconfigjson secrets. Ignored when --dashboard-oci-secrets is set.
-dashboard-oci-secrets string chart value Optional: comma-separated list of Secret names in the operator namespace for OCI registry credentials. Takes precedence over --dashboard-oci-secret.
-dashboard-trace-source value chart value Repeatable: an offline OTLP/JSON trace file to mount read-only into the dashboard, as name=NAME,file=RELATIVE_PATH,existingClaim=PVC (or configMap=NAME). NAME is the stable Data Source identity. Configures offline input only; Pacto runs no OTLP receiver.
-enable-dashboard bool chart value Enable the managed Pacto dashboard deployment. Disabled by default.
-enable-evidence-server bool chart value Enable the managed Pacto Evidence Server deployment. Disabled by default.
-enable-http2 bool no If set, HTTP/2 will be enabled for the metrics and webhook servers
-enable-metrics-observation bool no Enable full metrics observation (discovery + active probe). When disabled, metrics dimension returns Unsupported.
-enable-probing bool no Enable active in-cluster HTTP probing of health capability endpoints (Tier A). Off by default; when off, health uses passive readiness-probe and EndpointSlice signals only.
-evidence-cpu-limit string chart value CPU limit for the Evidence Server container. Empty uses the built-in default.
-evidence-cpu-request string chart value CPU request for the Evidence Server container. Empty uses the built-in default.
-evidence-credentials-secret string chart value Optional: name of an existing kubernetes.io/dockerconfigjson Secret with contract-registry credentials, mounted read-only. Empty means anonymous or in-cluster registry access.
-evidence-memory-limit string chart value Memory limit for the Evidence Server container. Empty uses the built-in default.
-evidence-memory-request string chart value Memory request for the Evidence Server container. Empty uses the built-in default.
-evidence-subject value chart value Repeatable: an exact contract revision evidence is stored on, as oci://<repo>@sha256:<digest>. The registry holding it IS the durable evidence store — accepted records are published as OCI 1.1 referrers of that manifest. At least one is required when the Evidence Server is enabled.
-evidence-trust-secret string chart value Name of a Secret of trusted producer public keys, mounted read-only. Required when the Evidence Server is enabled.
-health-probe-bind-address string :8081 always on The address the probe endpoint binds to.
-interface-name-match-discovery bool no Enable resolving an unbound interface's Service port by matching a Service port whose name equals the interface name (positive availability assist only; never produces an absent or error result).
-kubeconfig string no Paths to a kubeconfig. Only required if out-of-cluster.
-leader-elect bool chart value Enable leader election for controller manager. Enabling this will ensure there is only one active controller manager.
-metrics-bind-address string :8080 chart value The address the metrics endpoint binds to. Use :8443 for HTTPS or :8080 for HTTP, or set to 0 to disable the metrics service.
-metrics-cert-key string tls.key no The name of the metrics server key file.
-metrics-cert-name string tls.crt no The name of the metrics server certificate file.
-metrics-cert-path string no The directory that contains the metrics server certificate.
-metrics-secure bool chart value If set, the metrics endpoint is served securely via HTTPS. Use --metrics-secure=true to enable HTTPS.
-stabilization-window duration 2m0s chart value The stabilization window duration for compliance assertions before they trigger a false condition. Assertions must remain unsatisfied for this entire window before being considered a failure.
-version bool no Print version information and exit.
-watch-namespace string chart value Restrict the controller to watch a single namespace. Empty (default) means cluster-wide. The dashboard inherits this scope automatically.
-webhook-cert-key string tls.key no The name of the webhook key file.
-webhook-cert-name string tls.crt no The name of the webhook certificate file.
-webhook-cert-path string no The directory that contains the webhook certificate.
-zap-devel bool true no Development Mode defaults(encoder=consoleEncoder,logLevel=Debug,stackTraceLevel=Warn). Production Mode defaults(encoder=jsonEncoder,logLevel=Info,stackTraceLevel=Error)
-zap-encoder value no Zap log encoding (one of 'json' or 'console')
-zap-log-level value no Zap Level to configure the verbosity of logging. Can be one of 'debug', 'info', 'error', 'panic' or any integer value > 0 which corresponds to custom debug levels of increasing verbosity
-zap-stacktrace-level value no Zap Level at and above which stacktraces are captured (one of 'info', 'error', 'panic').
-zap-time-encoding value no Zap time encoding (one of 'epoch', 'millis', 'nano', 'iso8601', 'rfc3339' or 'rfc3339nano'). Defaults to 'epoch'.

Environment variables

Read directly by the controller entrypoint (cmd/main.go), typically wired through the downward API in the chart's Deployment.

Variable Purpose
OPERATOR_DEPLOYMENT_NAME Operator Deployment name, used to set ownerReferences on dashboard resources.
POD_NAMESPACE Namespace the operator (and its managed dashboard) runs in. Required.