Helm Chart

Helm chart values reference for the Lumina controller

Lumina is distributed as a Helm chart published to the Nextdoor OSS Helm repository.

Installation

helm repo add lumina https://oss.nextdoor.com/lumina
helm repo update
helm install lumina lumina/lumina -n lumina-system --create-namespace

Values Reference

Image

KeyTypeDefaultDescription
image.repositorystringghcr.io/nextdoor/luminaContainer image repository
image.pullPolicystringIfNotPresentImage pull policy
image.tagstring""Overrides the image tag (default is chart appVersion)
imagePullSecretslist[]Image pull secrets for private registries

Replicas and Naming

KeyTypeDefaultDescription
replicaCountint2Number of controller replicas (leader election handles HA)
nameOverridestring""Override the name of the chart
fullnameOverridestring""Override the full name of the release

Service Account

KeyTypeDefaultDescription
serviceAccount.createbooltrueCreate a service account
serviceAccount.automountbooltrueAutomount API credentials
serviceAccount.annotationsobject{}Annotations (e.g., eks.amazonaws.com/role-arn for IRSA)
serviceAccount.namestring""Service account name (auto-generated if empty)

Pod Configuration

KeyTypeDefaultDescription
podAnnotationsobject{}Annotations to add to the pod
podLabelsobject{}Labels to add to the pod
nodeSelectorobject{}Node selector for pod assignment
tolerationslist[]Tolerations for pod assignment
affinityobject{}Affinity rules for pod assignment
volumeslist[]Additional volumes for the deployment
volumeMountslist[]Additional volume mounts for the deployment

Security Context

KeyTypeDefaultDescription
podSecurityContext.runAsNonRootbooltrueRun as non-root user
podSecurityContext.runAsUserint65532User ID
podSecurityContext.fsGroupint65532Group ID for filesystem access
podSecurityContext.seccompProfile.typestringRuntimeDefaultSeccomp profile
securityContext.allowPrivilegeEscalationboolfalsePrevent privilege escalation
securityContext.capabilities.droplist["ALL"]Drop all capabilities
securityContext.readOnlyRootFilesystembooltrueRead-only root filesystem

Resources

KeyTypeDefaultDescription
resources.limits.cpustring"1"CPU limit
resources.limits.memorystring512MiMemory limit
resources.requests.cpustring200mCPU request
resources.requests.memorystring128MiMemory request

Health Probes

KeyTypeDefaultDescription
livenessProbe.httpGet.pathstring/healthzLiveness probe path
livenessProbe.httpGet.portint8081Liveness probe port
livenessProbe.initialDelaySecondsint15Initial delay
livenessProbe.periodSecondsint20Check period
readinessProbe.httpGet.pathstring/readyzReadiness probe path
readinessProbe.httpGet.portint8081Readiness probe port
readinessProbe.initialDelaySecondsint5Initial delay
readinessProbe.periodSecondsint10Check period

Controller Manager

KeyTypeDefaultDescription
controllerManager.leaderElection.enabledbooltrueEnable leader election for HA
controllerManager.metricsBindAddressstring0.0.0.0:8080Metrics server bind address
controllerManager.metricsSecureboolfalseEnable HTTPS metrics endpoint
controllerManager.healthProbeBindAddressstring0.0.0.0:8081Health probe bind address
controllerManager.logLevelstringinfoLog level (debug, info, error)
controllerManager.metricsAuthboolfalseEnable metrics RBAC authentication
controllerManager.enableHttp2boolfalseEnable HTTP/2
controllerManager.extraArgslist[]Extra command-line arguments

Controller Manager – Logging

KeyTypeDefaultDescription
controllerManager.zap.develboolfalseDevelopment mode logging
controllerManager.zap.encoderstringjsonLog encoding (json or console)
controllerManager.zap.stacktraceLevelstringerrorStacktrace capture level
controllerManager.zap.timeEncodingstringepochTime encoding format

Controller Manager – TLS

KeyTypeDefaultDescription
controllerManager.metricsCerts.pathstring""Metrics certificate directory
controllerManager.metricsCerts.certNamestringtls.crtCertificate filename
controllerManager.metricsCerts.keyNamestringtls.keyKey filename
controllerManager.webhookCerts.pathstring""Webhook certificate directory
controllerManager.webhookCerts.certNamestringtls.crtCertificate filename
controllerManager.webhookCerts.keyNamestringtls.keyKey filename

Lumina Configuration

KeyTypeDefaultDescription
skipConfigboolfalseSkip creating the ConfigMap (useful for CI/testing)
configobjectSee belowController configuration (maps to config.yaml)

The config section maps directly to the Lumina configuration file. See the Configuration Reference for all options.

Metrics Service

KeyTypeDefaultDescription
metricsService.typestringClusterIPService type
metricsService.portint8080Service port
metricsService.annotationsobject{}Service annotations

RBAC

KeyTypeDefaultDescription
rbac.createbooltrueCreate RBAC resources

ServiceMonitor (Prometheus Operator)

KeyTypeDefaultDescription
serviceMonitor.enabledbooltrueCreate ServiceMonitor resource
serviceMonitor.intervalstring30sScrape interval
serviceMonitor.scrapeTimeoutstring10sScrape timeout
serviceMonitor.labelsobject{}Additional labels
serviceMonitor.annotationsobject{}Additional annotations
serviceMonitor.relabelingslist[]RelabelConfigs
serviceMonitor.metricRelabelingslist[]MetricRelabelConfigs

LocalStack (CI/Testing)

KeyTypeDefaultDescription
localstack.enabledboolfalseEnable LocalStack for mocking AWS services
localstack.service.typestringClusterIPLocalStack service type

Example: Production Values

replicaCount: 2

serviceAccount:
  annotations:
    eks.amazonaws.com/role-arn: "arn:aws:iam::123456789012:role/lumina-controller"

config:
  defaultRegion: us-west-2
  regions:
    - us-west-2
    - us-east-1
  awsAccounts:
    - accountId: "123456789012"
      name: "Production"
      assumeRoleArn: "arn:aws:iam::123456789012:role/lumina-readonly"
    - accountId: "987654321098"
      name: "Staging"
      assumeRoleArn: "arn:aws:iam::987654321098:role/lumina-readonly"

resources:
  limits:
    cpu: "1"
    memory: 512Mi
  requests:
    cpu: 200m
    memory: 128Mi

serviceMonitor:
  enabled: true
  interval: 30s

Example: Worker Cluster Values

For clusters that share a Prometheus endpoint with a management cluster:

config:
  metrics:
    disableInstanceMetrics: true  # Prevent metric duplication
  awsAccounts:
    - accountId: "123456789012"
      name: "Production"
      assumeRoleArn: "arn:aws:iam::123456789012:role/lumina-readonly"