Skip to content

Helm reference

  • Chart: pacto-operator
  • Chart version: 6.4.1
  • App version: 6.4.1

Values are generated from charts/pacto-operator/values.yaml. Descriptions come from the chart's # -- value annotations.

Key Default Description
affinity {} Affinity rules for the controller pod
controller.enableMetricsObservation false Observe the metrics capability (ServiceMonitor, PodMonitor, annotation or named-port discovery plus an active scrape). Also grants read access to ServiceMonitors and PodMonitors. Off by default; when off, metrics read unsupported.
controller.enableProbing false Actively probe in-cluster endpoints: the health capability over HTTP and the wire protocol of each present interface. Off by default; when off, health uses passive readiness-probe and EndpointSlice signals only and interface protocols read unverified.
controller.kernelEvidence.callerIgnoreNamespaces null Extra namespaces whose host-network pods are taken not to call workloads. The node agent cannot tell a host-network pod's calls from the node's own, so any such pod makes a Service's caller coverage partial, except in kube-system, kube-public, kube-node-lease and the node agent's namespace. The default lists the Flannel and Calico namespaces. Keep only namespaces that exist on your cluster and that you control: anyone who can create a listed namespace can call your services from a host-network pod there unseen.
controller.kernelEvidence.enabled false Merge the node agent's kernel observations (NodeRuntimeObservation objects) into interface and dependency evidence. Needs the node agent running; off by default, so evidence comes from the Kubernetes API only. Kernel evidence is on whenever this OR nodeAgent.enabled is true: a managed agent whose observations nobody merges would be pure cost. Set this alone only for an agent you run yourself.
controller.kernelEvidence.namespace "" Namespace the node agent publishes to. Empty uses nodeAgent.namespace.
controller.kernelEvidence.staleness "" How old a node's heartbeat may be before its evidence reads stale. Empty uses three times the node agent's publish interval. Accepts a Go duration (e.g. "2m").
controller.stabilizationWindow "" Stabilization window: how long a sustained NEGATIVE observation must persist before it converts to a confirmed violation (a transient blip reads Unknown meanwhile). Empty string uses the controller default (2m). Accepts a Go duration (e.g. "30s", "5m").
controller.watchNamespace "" Restrict the controller's observation scope to a single namespace. Empty string (default) means cluster-wide: the controller watches all namespaces. The dashboard inherits this scope automatically.
crds.install true Install and upgrade the CRDs with the chart, the delivery CRDs too when delivery.enabled. They are kept on helm uninstall. Only one release in a cluster can own them: every other release, for example one per watched namespace, sets false. Set false to manage them yourself, for example from a separate GitOps source; the operator and delivery need them before they start
dashboard.auth.oidc.caBundle.configMap "" A ConfigMap in the operator namespace holding the PEM certificates of the CAs that sign the issuer's certificate (corporate or self-signed), trusted on top of the image's public roots
dashboard.auth.oidc.caBundle.key ca.crt The key of the bundle in that ConfigMap or Secret
dashboard.auth.oidc.caBundle.secret "" A Secret in the operator namespace holding that bundle, instead of a ConfigMap
dashboard.auth.oidc.clientID "" The dashboard's client id at the issuer
dashboard.auth.oidc.clientSecretRef.key client-secret Key of the client secret in that Secret
dashboard.auth.oidc.clientSecretRef.name "" Secret in the operator namespace holding the client secret (passed by secretKeyRef)
dashboard.auth.oidc.displayName "" The identity provider's name on the sign-in button, as in "Sign in with Keycloak" (empty: "Sign in with OIDC")
dashboard.auth.oidc.extraScopes [] Scopes asked for beyond openid, profile and groups (for example a cross-client audience scope)
dashboard.auth.oidc.groupsClaim "" ID token claim the API server takes the groups from; must match its claimMappings.groups (empty: groups)
dashboard.auth.oidc.groupsPrefix "" Prefix the API server puts before every group; must match its claimMappings.groups.prefix
dashboard.auth.oidc.internalIssuerURL "" Where the dashboard reaches the issuer when it differs from issuerURL, the address browsers use (for example an in-cluster Service). Discovery, tokens and keys are read there; ID tokens must still name issuerURL
dashboard.auth.oidc.issuerURL "" OpenID Connect issuer URL people sign in with (empty: no sign-in)
dashboard.auth.oidc.redirectURL "" The dashboard's /auth/callback URL as browsers reach it
dashboard.auth.oidc.usernameClaim "" ID token claim the API server takes the username from; must match its claimMappings.username (empty: sub)
dashboard.auth.oidc.usernamePrefix "" Prefix the API server puts before the username; must match its claimMappings.username.prefix (empty: the issuer URL and #, none for the email claim; - for none)
dashboard.auth.session.idleTimeout "" A session without a request for this long ends, as a Go duration such as 30m (empty: 1h). The ID token renews with the refresh token in between
dashboard.auth.session.maxAge "" A session ends this long after sign-in, renewed or not, as a Go duration such as 8h (empty: 12h)
dashboard.auth.tokenLogin.enabled false Let people sign in by pasting a Kubernetes bearer token, for a cluster whose API server trusts no identity provider. The token stays in the server-side session and every request runs with it; a token session never decides on a held change
dashboard.delivery.miraURL "" Mira's address, to link the health-check citations in delivery views
dashboard.delivery.namespace "" Namespace where Pacto delivery runs. The dashboard reads the identity policy it publishes there (agent, break-glass and human groups, team prefix), so it is never configured twice (empty: delivery.namespace when delivery.enabled, else pacto-delivery)
dashboard.delivery.trust.configMap "" A ConfigMap in the operator namespace holding the trust config the dashboard verifies delivery records with (the recorder's PEM public key or a YAML trust config), so History verifies signed records. Empty: History shows records unverified
dashboard.delivery.trust.key trust.yaml The key of the trust config in that ConfigMap
dashboard.enabled true Enable the operator-managed dashboard deployment. The dashboard image is controlled by the operator and derived from the bundled Pacto library version. It is not user-configurable.
dashboard.httpRoute.enabled false Enable Gateway API HTTPRoute for the dashboard
dashboard.httpRoute.hostnames [] Hostnames for the HTTPRoute
dashboard.httpRoute.parentRefs [] Parent gateway references
dashboard.httpRoute.rules [] HTTPRoute rules. When empty, a single catch-all rule is generated that routes all traffic to the chart-managed dashboard Service on dashboard.service.port.
dashboard.ingress.annotations {} Ingress annotations
dashboard.ingress.className "" Ingress class name
dashboard.ingress.enabled false Enable Ingress for the dashboard
dashboard.ingress.hosts null Ingress hosts
dashboard.ingress.tls [] Ingress TLS configuration
dashboard.observation.sources [] Offline OTLP/JSON trace exports to mount read-only into the dashboard, so its Operational Graph can reconcile declared dependencies against observed ones. Each entry is one named data source: name is its stable Data Source identity (a DNS-1123 label). Reordering this list keeps every name, and each name must be unique across all the dashboard's data sources (the live cluster, OCI, the disk cache, local bundles, an Evidence Server). file is the trace file's name directly inside that source's mount, as a single path segment, so mount a claim whose export sits at the top of its own directory. Exactly one of existingClaim (an existing PVC, for real exports) or configMap (small static exports only, ~1 MiB cap) supplies it. Pacto reads only the declared files, through a root that blocks symlinks out of the mount, and never writes to them or scans the mount. Whoever owns that storage produces and rotates the exports. This configures OFFLINE input only: Pacto ships no OTLP receiver and no trace collector. The optional node agent observes sockets with eBPF and handles no traces.
dashboard.ociSecrets [] List of Secret names for OCI registry credentials. Supports Opaque (keys: registry + token, or registry + username + password) and kubernetes.io/dockerconfigjson secrets. When set, credentials from all secrets are merged; later secrets override earlier ones for the same registry.
dashboard.resources.limits.memory 512Mi Memory limit for the dashboard container. The earlier default of 128Mi was OOMKilled while monitoring several OCI repositories and CRs at once; raise it further if the dashboard tracks a large fleet.
dashboard.resources.requests.cpu 50m CPU request for the dashboard container
dashboard.resources.requests.memory 128Mi Memory request for the dashboard container
dashboard.service.nodePort "" Node port (only used when type is NodePort)
dashboard.service.port 3000 Dashboard service port
dashboard.service.type ClusterIP Dashboard exposure Service type (ClusterIP, NodePort, LoadBalancer). The operator manages an internal ClusterIP Service (pacto-dashboard) for pod-to-pod communication. This chart-managed Service provides configurable external access and serves as the backend for Ingress/HTTPRoute resources. Selects dashboard pods via operator-defined labels.
delivery.admissionPolicies.gitopsUsers null Users besides break-glass that may create or delete an OCIRepository, Kustomization or Application labelled delivery.pacto.trianalab.io/apply-ref: the GitOps controllers that apply them. Deleting one and creating it again is an edit, so a namespace editor may do neither. The namespace controller and the garbage collector are always allowed.
delivery.admissionPolicies.skipCapabilityCheck false Skip the chart's Kubernetes 1.30 and ValidatingAdmissionPolicy API check (for helm lint or a helm template without --api-versions). The policies still render.
delivery.affinity {} Affinity for the promoter pod
delivery.argocd.enabled false Let Stages name an Argo CD Application as their applier (spec.applyRef.kind: Application). Grants the promoter patch on argoproj.io Applications (it only sets spec.source.targetRevision, and the pointer admission policy holds it to that) and read access to the agent, approver and recorder roles. Off by default.
delivery.createNamespace true Create delivery.namespace. Set false to create it yourself first, for example to put the recorder key Secret in it before the install
delivery.enabled false Install Pacto delivery: the promoter, its CRDs (Stage, Operation, Approval), roles and admission policies
delivery.gates.caBundle.configMap "" A ConfigMap in delivery.namespace holding the PEM certificates of the CAs that sign your in-cluster providers' https certificates, so they need no allowPlainHTTP. The promoter trusts them on top of the image's public roots. Empty trusts the public roots only.
delivery.gates.caBundle.key ca.crt The key in that ConfigMap
delivery.gates.providers [] Health gate providers a Stage may name in spec.gates.verify.checks[].provider, each {name, type, url} with type mira (Mira's query API), http (any tool behind the plug-in format) or eval (a runner for the check suites a version ships, named by checks[].suite). The URL is operator configuration: a Stage only names a provider and an agent names nothing. pacto.contract and pacto.runtime are built in. The URL must be https: a verdict ends up in a signed record, so an answer forged in transit could get a Pass signed. Plain http works only on loopback, or with allowPlainHTTP: true on a test cluster. An eval provider also needs signers: the runners whose signed answers it trusts, each {name, publicKey} or {name, identity, issuer, trustedRoot}. An answer no signer signed is Unknown, and the verdict names the runner that signed it. Each provider's name and type (never its URL or signers) is also published in the identity policy ConfigMap, so pacto delivery plan and the dashboard predict an eval check's hold as the promoter does.
delivery.identities.agentGroups null Groups whose members are agents. Agents may propose, never approve or unfreeze. Service accounts other than the promoter are always agents.
delivery.identities.allowEmptyHumanGroups false Render with humanGroups empty anyway. Then an identity left out of every agent group counts as a person, and one that completes a pacto-approve login (a public client, so a bot with stored credentials can) may approve.
delivery.identities.breakGlassGroups null Groups that may raise an override and edit an OCIRepository's spec.ref.digest directly
delivery.identities.humanGroups [] When set, only members of these groups count as people. Anyone in none of them is an agent, so an agent identity nobody enrolled in an agent group still cannot approve. Empty classifies by agentGroups alone, which the chart refuses unless allowEmptyHumanGroups is set.
delivery.identities.requireOwnerTeam true A held question whose service and consumers declare no owner team is answered by nobody, and only break-glass can override. Set false to let any person answer it, as before.
delivery.identities.teamGroupPrefix "" Only members of the teams a held question names may answer it. A contract owner team T is the identity-provider group T, or once this prefix is set only this prefix followed by T (for example acme:). A system: group is never a team.
delivery.image.digest "" Pins the image by digest (sha256:...), appended to the tag as tag@digest so the runtime pulls exactly that image whatever the tag resolves to later
delivery.image.pullPolicy IfNotPresent Image pull policy
delivery.image.registry "" Promoter and recorder image registry (defaults to global.imageRegistry)
delivery.image.repository trianalab/pacto/delivery Promoter and recorder image repository (the pacto-delivery image)
delivery.image.tag "" Overrides the image tag (default is the chart appVersion)
delivery.imagePullSecrets [] Image pull secrets of the promoter and the recorder, after global.imagePullSecrets
delivery.insecureRegistries [] Registry hosts (host:port) the promoter and the recorder reach over plain HTTP. An OCIRepository with spec.insecure: true is read over HTTP anyway.
delivery.metrics.enabled true Expose the promoter's metrics (plain HTTP, port 8080) through a Service. The recorder's come with delivery.recorder.monitoring
delivery.metrics.serviceMonitor.enabled false Create a Prometheus Operator ServiceMonitor for that Service
delivery.metrics.serviceMonitor.interval "" Scrape interval (empty uses Prometheus' default)
delivery.metrics.serviceMonitor.scrapeTimeout "" Scrape timeout (empty uses Prometheus' default)
delivery.namespace pacto-delivery Dedicated namespace the promoter and the recorder run in. The chart creates it; it must not be the release or node agent namespace (the operator can create Deployments, DaemonSets and Secrets there).
delivery.nodeSelector {} Node selector for the promoter pod
delivery.podAnnotations {} Annotations to add to the promoter and recorder pods
delivery.podLabels {} Labels to add to the promoter and recorder pods
delivery.podSecurityContext {} Pod securityContext of the promoter and the recorder (defaults to global.podSecurityContext)
delivery.promoter.authFreshness "" How old a person's login may be when their approval is given, as a Go duration such as 15m; an older one is ignored, so deciding needs a fresh sign-in. Empty or a zero duration (0, 0s): any signed-in person decides with the session they have. Every Stage publishes it in status.authFreshness
delivery.promoter.leaderElect true Elect one active promoter
delivery.promoter.poll 3s How often an operation waiting on Flux, Pacto or a person is looked at (a Go duration)
delivery.promoter.registryCredentials.secretName "" A kubernetes.io/dockerconfigjson Secret with read access to the contract and deploy repositories, for a private registry. Without it the promoter reads only public ones.
delivery.promoter.resync 1m How often a Stage is looked at when nothing it watches changed (a Go duration). A change to its operations, upstream Stage, OCIRepositories, Kustomizations or Application wakes it at once
delivery.promoter.upstreamTrust "" The recorder keys of other clusters, as a trust config in YAML (keys per stream glob). A Stage with candidates.upstreamRecords promotes only on records one of these keys signed for that stream; without it such a Stage is not Ready. Public keys only.
delivery.promoter.workers 4 How many operations and Stages the promoter reconciles at once, so one slow health provider does not hold up the rest
delivery.recorder.cdeventsSink "" A URL the recorder POSTs a CDEvent (CloudEvents, structured mode) to for every record, best effort. Empty sends none.
delivery.recorder.enabled false Run the recorder, which writes a signed record of every concluded operation to the registry as OCI referrers. Off by default. When on, the promoter leaves the record finalizer to it. The registry must support the OCI Referrers API natively (GHCR and released distribution do not).
delivery.recorder.extraEnv [] Extra environment for the recorder (for example the credentials a KMS client reads)
delivery.recorder.leaderElect true Elect one active recorder
delivery.recorder.monitoring.enabled false Scrape the recorder's metrics and alert when records fall behind: a metrics Service, a ServiceMonitor and a PrometheusRule. Needs the Prometheus Operator CRDs.
delivery.recorder.operationTTL 168h Keep a recorded operation this long after it concluded, then delete it: its record holds what happened. The operation a Stage runs is never deleted. 0s keeps them all (a Go duration).
delivery.recorder.poll 30s How long a registry or signer failure backs off (a Go duration)
delivery.recorder.registryCredentials.secretName "" A kubernetes.io/dockerconfigjson Secret with push access to the streams, apply and contract repositories. Only the recorder mounts it.
delivery.recorder.resources.limits.memory 256Mi Memory limit of the recorder
delivery.recorder.resources.requests.cpu 50m CPU request of the recorder. Signing and pushing a record is the costly part.
delivery.recorder.resources.requests.memory 64Mi Memory request of the recorder
delivery.recorder.serviceAccount.annotations {} Annotations to add to the recorder's ServiceAccount (workload identity for KMS or keyless)
delivery.recorder.serviceAccount.create true Create a ServiceAccount for the recorder
delivery.recorder.serviceAccount.name "" Name override (defaults to <fullname>-delivery-recorder)
delivery.recorder.signing.allowOperatorReadableKey false Say yes to an Ed25519 key in a Secret. The operator reads every Secret in the cluster, so it can read this key too and the recorder is not its only holder. The chart refuses ed25519.secretName unless this is true. Prefer KMS or keyless signing
delivery.recorder.signing.ed25519.generate false Generate that Secret at install, with a new Ed25519 key kept across upgrades (for evaluation)
delivery.recorder.signing.ed25519.key key.pem The key in that Secret
delivery.recorder.signing.ed25519.secretName "" A Secret holding a PKCS#8 PEM Ed25519 private key (for kind and tests)
delivery.recorder.signing.keyless.enabled false Sign keyless with a Fulcio certificate for the recorder's workload identity, presented as a projected service account token for the sigstore audience. Rekor upload is off; a timestamp authority dates each signature.
delivery.recorder.signing.keyless.fulcioURL "" The Fulcio that issues the certificate
delivery.recorder.signing.keyless.identity "" The certificate identity keyless signing produces
delivery.recorder.signing.keyless.issuer "" The OIDC issuer keyless signing uses
delivery.recorder.signing.keyless.timestampURL "" The timestamp authority whose signed time a short-lived certificate verifies at
delivery.recorder.signing.keyless.trustedRoot "" The Sigstore trusted root (trusted_root.json) naming that Fulcio and timestamp authority. Required with keyless: without it a self-signed certificate could name the recorder's identity.
delivery.recorder.signing.kms "" A KMS key URI (awskms://, gcpkms://, azurekms://, hashivault://). The default image includes every provider; an image built with --build-arg GO_TAGS= has none, and one built with GO_TAGS=kms_aws (or kms_gcp, kms_azure, kms_hashivault) has only that one
delivery.recorder.streamsRepository "" Repository (host/path) that holds one anchor per Stage stream. Required when enabled.
delivery.recorder.trust "" Other keys whose records the recorder accepts, as a trust config in YAML (keys: [{publicKey: <PEM>, streams: ["*/prod/*"]}]): list the old key here while you rotate to a new one, and set untilSeq and untilRecord on a leaked key to revoke it after the last record it signed. The recorder's own key is always trusted. A record no listed key signed is skipped as untrusted.
delivery.replicaCount 1 Number of promoter replicas. Only the elected leader acts.
delivery.resources.limits.memory 256Mi Memory limit of the promoter
delivery.resources.requests.cpu 100m CPU request of the promoter. It looks at every waiting operation once per promoter.poll, so raise it with the number of Stages.
delivery.resources.requests.memory 128Mi Memory request of the promoter
delivery.securityContext {} Container securityContext of the promoter and the recorder (defaults to global.securityContext)
delivery.serviceAccount.annotations {} Annotations to add to the ServiceAccount
delivery.serviceAccount.create true Create a ServiceAccount for the promoter
delivery.serviceAccount.name "" Name override (defaults to <fullname>-delivery)
delivery.tolerations [] Tolerations for the promoter pod
dex.enabled false Install Dex from its official chart as the dashboard's OpenID Connect issuer. The chart then generates the dashboard's client secret into the Secret dashboard.auth.oidc.clientSecretRef.name names, with the keys client-secret, admin-password and admin-password-hash, and keeps it across upgrades. Its values are the upstream chart's
evidence.enabled false Enable the operator-managed Evidence Server deployment. Disabled by default. When enabled the operator reconciles a SEPARATE Evidence Server Deployment and an internal Service; the image is the same runtime image as the dashboard and is not user-configurable. The Evidence Server is single- writer, so its replica count is fixed at one.
evidence.httpRoute.enabled false Enable Gateway API HTTPRoute for the Evidence Server.
evidence.httpRoute.hostnames [] Hostnames for the HTTPRoute.
evidence.httpRoute.parentRefs [] Parent gateway references.
evidence.httpRoute.rules [] HTTPRoute rules. When empty, a single catch-all rule routes to the chart-managed evidence Service on evidence.service.port.
evidence.ingress.annotations {} Ingress annotations.
evidence.ingress.className "" Ingress class name.
evidence.ingress.enabled false Enable Ingress for the Evidence Server.
evidence.ingress.hosts null Ingress hosts.
evidence.ingress.tls [] Ingress TLS configuration.
evidence.registry.credentialsSecret "" Optional name of an EXISTING kubernetes.io/dockerconfigjson Secret with credentials for that registry, mounted read-only. The chart never creates it and never renders its contents. Empty means anonymous or in-cluster access.
evidence.registry.subjects [] Required when evidence is enabled: the exact, immutable contract revisions evidence may be reported against, each an oci://<repo>@sha256:<digest> reference. The registry holding them is the durable evidence store: every accepted record is published as an OCI 1.1 referrer of one of these manifests, so the chart installs nothing durable in the cluster. A mutable tag is rejected, because moving it onto another manifest would change what the stored evidence reports on. That registry must serve the native OCI 1.1 Referrers API. GHCR and CNCF distribution (registry:2, registry:3) lack it, and the Evidence Server stays permanently not-ready against them.
evidence.resources.limits.memory 256Mi Memory limit for the Evidence Server container. It verifies and forwards one envelope at a time and stores nothing locally, so this is sized for a single writer.
evidence.resources.requests.cpu 25m CPU request for the Evidence Server container
evidence.resources.requests.memory 64Mi Memory request for the Evidence Server container
evidence.service.nodePort "" Node port (only used when type is NodePort).
evidence.service.port 8686 Evidence service port.
evidence.service.type ClusterIP Evidence exposure Service type (ClusterIP, NodePort, LoadBalancer). The operator manages an internal ClusterIP Service (pacto-evidence) for in-cluster access; this chart-managed Service provides optional external access and backs any Ingress/HTTPRoute.
evidence.trust.existingSecret "" Name of an existing Secret of trusted producer public keys, mounted read-only. Signature verification is mandatory, so this is required when evidence is enabled.
fullnameOverride "" Override the full release name
global.commonLabels {} Labels added to every object the chart renders
global.imagePullSecrets [] Image pull secrets for every pod the chart runs, before each component's own
global.imageRegistry ghcr.io Registry of every image the chart runs (the controller, the delivery promoter and the recorder), unless an image sets its own registry. Set it empty to give each repository as a whole reference.
global.podSecurityContext.runAsNonRoot true Run pod as non-root
global.podSecurityContext.seccompProfile.type RuntimeDefault Seccomp profile type
global.securityContext.allowPrivilegeEscalation false Disallow privilege escalation
global.securityContext.capabilities.drop null Drop all capabilities
global.securityContext.readOnlyRootFilesystem true Read-only root filesystem
global.securityContext.runAsNonRoot true Run as non-root
global.securityContext.runAsUser 65532 Run as UID 65532 (nonroot in distroless)
image.digest "" Pins the image by digest (sha256:...), appended to the tag as tag@digest so the runtime pulls exactly that image whatever the tag resolves to later
image.pullPolicy IfNotPresent Image pull policy
image.registry "" Controller image registry (defaults to global.imageRegistry)
image.repository trianalab/pacto/operator Controller image repository
image.tag "" Overrides the image tag (default is the chart appVersion)
imagePullSecrets [] Image pull secrets of the controller pod, after global.imagePullSecrets. The managed node agent gets them too
insecureRegistries [] Registry hosts (host:port) to reach over plain HTTP, for a controlled in-cluster registry. Scoped per host, so every other registry stays HTTPS-only. The controller, the managed dashboard and the managed Evidence Server all inherit it, because each one resolves contract refs itself.
leaderElection.enabled true Enable leader election for HA deployments
metrics.enabled true Enable the metrics endpoint
metrics.secure true Serve metrics over HTTPS
metrics.service.port 8443 Metrics service port
metrics.serviceMonitor.enabled false Create a Prometheus ServiceMonitor
metrics.serviceMonitor.interval "" Scrape interval
metrics.serviceMonitor.scrapeTimeout "" Scrape timeout
nameOverride "" Override the chart name
nodeAgent.enabled false Deploy the node agent DaemonSet. Off by default.
nodeAgent.namespace pacto-node-agent Dedicated namespace the agents run and publish in. The chart creates it and labels it privileged for Pod Security; it must not be the release namespace and must not exist outside this release.
nodeAgent.publishInterval 30s How often each agent publishes its node's observation. A Go duration; kernel evidence reads stale after three intervals unless controller.kernelEvidence.staleness says otherwise.
nodeAgent.resources.limits.cpu 200m CPU limit for the node agent container
nodeAgent.resources.limits.memory 256Mi Memory limit for the node agent container. The agent caps the pods and connections it tracks, and the kernel ring buffer is charged here.
nodeAgent.resources.requests.cpu 50m CPU request for the node agent container
nodeAgent.resources.requests.memory 64Mi Memory request for the node agent container
nodeSelector {} Node selector for the controller pod
podAnnotations {} Annotations to add to the controller pod
podLabels {} Labels to add to the controller pod
podSecurityContext {} Pod securityContext of the controller (defaults to global.podSecurityContext)
replicaCount 1 Number of controller replicas
resources.limits.memory 256Mi Memory limit of the controller. It caches every Deployment, StatefulSet, ReplicaSet, Job, CronJob and Service it targets.
resources.requests.cpu 100m CPU request of the controller
resources.requests.memory 128Mi Memory request of the controller
securityContext {} Container securityContext of the controller (defaults to global.securityContext)
serviceAccount.annotations {} Annotations to add to the ServiceAccount
serviceAccount.automount true Automount API credentials
serviceAccount.create true Create a ServiceAccount for the controller
serviceAccount.name "" Name override (defaults to fullname)
tolerations [] Tolerations for the controller pod
zot.enabled false Install zot from its official chart as an in-cluster OCI registry with native referrers. Its values are the upstream chart's