Skip to content

Helm chart values ​

Reference for deploy/helm/spinup/values.yaml.

Top-level ​

KeyDefaultPurpose
dnsNamespinup.example.comPublic DNS used by the Istio VirtualService for external routing.

Functions namespace ​

KeyDefaultPurpose
functionsNamespace.namespinup-functionsNamespace for function pods, SpinApps, and build Jobs.
functionsNamespace.createtrueLet the chart create the namespace. Set false if you provision it externally.

SpinAppExecutor ​

KeyDefaultPurpose
spinAppExecutor.createtrueCreate the executor in functionsNamespace. Set to false when the cluster already has one there (platform-managed SpinKube install) — SpinApps still reference spinAppExecutor.name.
spinAppExecutor.namecontainerd-shim-spinExecutor name (referenced by every SpinApp we apply).
spinAppExecutor.runtimeClassNamewasmtime-spin-v2RuntimeClass the executor asks the kubelet for.
spinAppExecutor.installDefaultCACertstrueMount the K8s cluster's CA bundle so guest code can reach TLS hosts.

Observability ​

KeyDefaultPurpose
observability.otelCollector.enabledfalseDeploy an OpenTelemetry Collector alongside the control plane.
observability.otelCollector.image.repositoryotel/opentelemetry-collector-contribCollector image.
observability.otelCollector.image.tag0.111.0Collector version.
observability.otelCollector.resources{cpu 100m/1, mem 256Mi/512Mi}Standard resource block.

When enabled, the SpinAppExecutor also gets its otel.exporter_otlp_endpoint pointed at the collector's cluster-DNS Service (spinup-otel-collector.{ns}.svc.cluster.local:4318).

Worker ​

KeyDefaultPurpose
worker.image.tag0.1.0Worker version.
worker.replicas1Number of worker pods. Scale up under load.
worker.resources{cpu 100m/2, mem 128Mi/2Gi}Standard resource block.
worker.controlPlaneToken(empty)Bearer token the worker uses to authenticate against /api/v1/worker-config. Unset when the CP runs with dev-skip.

When enabled, SPINUP_WORKER_URL on the CP is set to the worker Service DNS automatically.

OCI registry ​

KeyDefaultPurpose
oci.modeexternalexternal (bring your own) or zot (chart deploys Zot).
oci.registryUrl(empty)Push prefix. Required when mode=external. Auto-computed for mode=zot.
oci.auth.existingSecret(empty)Name of a dockerconfigjson Secret to mount into build Jobs.
oci.auth.inline.enabledfalseLet the chart create the Secret from an inline JSON string.
oci.auth.inline.dockerconfigjson(empty)Plain JSON string; the chart base64-encodes it. Do not commit this to git.

Zot sub-config (when oci.mode=zot) ​

KeyDefaultPurpose
oci.zot.image.repositoryghcr.io/project-zot/zot-linux-amd64Zot image (pick amd64 or arm64).
oci.zot.image.tagv2.1.2Zot version.
oci.zot.service.namezotService name.
oci.zot.service.port5000Registry port.
oci.zot.persistence.enabledtruePVC for storage.
oci.zot.persistence.size5GiPVC size.
oci.zot.persistence.storageClassName(empty)Storage class.

Control plane ​

KeyDefaultPurpose
controlPlane.image.repositoryghcr.io/emdzej/spinup-control-planeCP image.
controlPlane.image.tag0.1.0CP version.
controlPlane.replicas1Number of CP pods.
controlPlane.resources{cpu 100m/500m, mem 128Mi/512Mi}Standard resource block.

OIDC ​

KeyDefaultPurpose
oidc.issuerUrl(empty)OIDC discovery URL. Required.
oidc.clientId(empty)Application client / audience. Required.
oidc.audience(= clientId)Override the expected audience.
oidc.redirectUrl(= https://{dnsName}/auth/callback)Fully-qualified callback URL registered with the IdP. Must match byte-for-byte.
oidc.clientSecret.existingSecret(empty)Name of a Secret holding the confidential-client secret. Preferred.
oidc.clientSecret.secretKeyclient-secretKey inside existingSecret.
oidc.clientSecret.value(empty)Inline client secret (dev only — never commit real values). Ignored when existingSecret is set.

Authorization ​

KeyDefaultPurpose
authz.requiredRoles[]Any-of match against the ID token roles claim. Empty list = every authenticated user is allowed. Configure the IdP to project the assigned role into a top-level roles array — Keycloak: client role mapper; Entra: App Role; Auth0: post-login action.

Database ​

KeyDefaultPurpose
db.driversqlitesqlite or postgres.
db.sqlite.dsn/var/lib/spinup/spinup.dbPath inside the CP pod.
db.sqlite.persistence.enabledtrueCreate a PVC for the SQLite file.
db.sqlite.persistence.size2GiPVC size.
db.postgres.secretName(empty)Name of a Secret with the DSN.
db.postgres.secretKeydsnKey inside the Secret.

Istio ingress ​

KeyDefaultPurpose
istio.enabledtrueInstall a Gateway + VirtualService.
istio.gatewaySelector.istioingressgatewayMatch label on the Istio Gateway.
istio.tls.credentialNamespinup-gw-credentialName of a cert-manager-issued cert Secret.

Disable this and install your own Ingress / native Gateway API if you don't run Istio.

Alpha — API and chart values may change.