Controller manager flags

Look up the OME controller manager's command-line flags, their defaults and the ome-resources Helm values that set them.

The OME controller manager reads these flags from the manager container of the ome-controller-manager Deployment when it starts. The ome-resources chart always passes a few of them, and sets many others from Helm values. To change a flag, see Configure the controller.

Default is what the manager uses without the flag. The Helm value column names the ome-resources value that sets the flag, with the chart's default in parentheses. None means that you set the flag with a patch: see Flags without a Helm value.

Servers and metrics

Flag Default Helm value Description
--webhook false None. The chart always passes it. Runs the admission webhook server.
--webhook-port 9443 None The port of the webhook server. The chart's webhook Service expects 9443.
--health-probe-addr :8081 None The address of the /healthz and /readyz endpoints. The chart's probes expect port 8081.
--enable-http2 false None Serves HTTP/2 on the metrics and webhook servers.
--metrics-bind-address :8080 None. The chart always passes :8080. The address of the metrics endpoint. 0 turns the endpoint off. The chart's metrics Service expects port 8080.
--metrics-secure false None Serves the metrics endpoint over HTTPS.
--pprof-bind-address Empty ome.controller.pprofBindAddress ("") The address of the net/http/pprof endpoint, which serves CPU and heap profiles of the live manager. Empty or 0 turns the endpoint off, and the chart passes the flag only when the value is set. Bind it to loopback, such as 127.0.0.1:6060, so the profiles are reachable only through kubectl port-forward, never through a Service.

Leader election

Flag Default Helm value Description
--leader-elect false None. The chart always passes it. Elects a leader among the replicas, so that only one of them reconciles.
--leader-election-namespace ome None The namespace of the leader-election Lease.
--leader-elect-lease-duration 15s ome.controller.leaderElection.leaseDuration (60s) Since v1.3. How long the Lease stays valid after its last renewal. Lease timing gives the rules for the three timing flags.
--leader-elect-renew-deadline 10s ome.controller.leaderElection.renewDeadline (40s) Since v1.3. How long the leader retries a failed renewal before it gives up leadership and exits.
--leader-elect-retry-period 2s ome.controller.leaderElection.retryPeriod (8s) Since v1.3. The time between renewal attempts, and how often a standby checks the Lease.

Reconcile throughputUnreleased: coming in v1.3

Flag Default Helm value Description
--inferenceservice-max-concurrent-reconciles 1 ome.controller.inferenceServiceMaxConcurrentReconciles (4) How many InferenceServices the manager reconciles in parallel. See Tune reconcile throughput.
--inferencereplica-max-concurrent-reconciles 1 ome.controller.inferenceReplicaMaxConcurrentReconciles (4) How many InferenceReplicas the manager reconciles in parallel.
--kube-api-qps 20 ome.controller.kubeAPIQPS (100) The most requests per second that each API client of the manager sends. The manager has a client per resource type. The default of 20 comes from controller-runtime, and 0 keeps it: you can't turn the limit off.
--kube-api-burst 30 ome.controller.kubeAPIBurst (200) How many requests each API client can send at once before the --kube-api-qps rate applies. The default of 30 comes from controller-runtime, and 0 keeps it. The two flags are independent: set one, and the other keeps its default.

Controllers

Flag Default Helm value Description
--config-cache-ttl 30s ome.controller.configCacheTTL ("30s") Since v1.3. How long the manager caches the inferenceservice-config ConfigMap. 0 turns the cache off. See Set the cache TTL.
--accelerator-resources Every Component ome.controller.quotaAcceleratorResources (nvidia.com/gpu, google.com/tpu), not acceleratorResources Since v1.3. The comma-separated resource names that send a Component through quota admission when its pods request one. Match the same flag on ome-quota-manager. See Set accelerator quotas.
--enable-inferencereplica-controller true None Since v1.3. Runs the InferenceReplica controller, which creates and updates the pods of OMENative services.
--runtime-revision-retention 10 None How many revisions of each runtime name the manager keeps, newest first, even when no InferenceService uses them. See Tune runtime-revision garbage collection.
--runtime-revision-grace-period 24h None How long the manager waits before it deletes a revision that it no longer keeps.

Logging

Flag Default Helm value Description
--zap-encoder json None. The chart always passes console. The log format: json or console.
--zap-log-level info None The lowest level that's logged: debug, info, error, panic, or an integer above 0 for more verbose levels.
--zap-stacktrace-level error None The lowest level that logs a stack trace: info, error or panic.
--zap-time-encoding rfc3339 None The timestamp format: epoch, millis, nanos, iso8601, rfc3339 or rfc3339nano.
--zap-devel false None Uses development defaults: the console format, the debug level, and stack traces from the warn level.

Multi-clusterUnreleased: coming in v1.3

Multi-cluster is off by default. The chart passes these flags only when ome.multicluster.enabled is true. See Configure routing health probes and Drain a workload cluster.

Flag Default Helm value Description
--enable-multicluster false ome.multicluster.enabled (false) Runs the multi-cluster controllers, such as the WorkloadCluster registry.
--multicluster-role Empty ome.multicluster.role ("") control-plane makes this manager place InferenceServices on workload clusters instead of running their pods, and implies --enable-multicluster. Leave it empty on other clusters.
--allow-exec-credentials false ome.multicluster.execCredentials.enabled (false) Lets WorkloadCluster kubeconfigs run an exec credential plugin in the manager pod. The plugin's binary has to be in the manager image.
--exec-credential-allowed-commands aws,gke-gcloud-auth-plugin,kubelogin ome.multicluster.execCredentials.allowedCommands (aws,gke-gcloud-auth-plugin,kubelogin) The plugin commands that --allow-exec-credentials allows, comma-separated. A name allows that command from the PATH, and an absolute path allows only that binary.
--placement-control-plane-id Empty ome.multicluster.placementControlPlaneID ("") The identity that this control plane stamps on the InferenceServices that it creates on workload clusters. Give each control plane its own when several share a workload cluster.

Flags without a Helm value

To set a flag whose Helm value is None, patch the arguments of the manager container, as Configure the controller shows. A later helm upgrade can remove a patched flag, so check your flags after each upgrade.