Skip to main content
Version: v0.9.x

Control Plane

Dependencies​

This chart depends on the following sub-charts. For full configuration options of each dependency, please refer to their official documentation.

NameVersionRepositoryCondition
traefik34.4.1https://traefik.github.io/chartstraefik.enabled
thunder0.15.0oci://ghcr.io/asgardeo/helm-chartsthunder.enabled

Backstage​

Backstage UI configuration

ParameterDescriptionTypeDefault
backstage.affinityAffinity rulesobject{}
backstage.auth.clientIdOAuth client IDstringopenchoreo-backstage-client
backstage.auth.clientSecretOAuth client secretstringbackstage-portal-secret
backstage.auth.redirectUrlsOAuth redirect URLsarray[]
backstage.autoscaling.behavior.scaleDown.policiesScale-down policiesarray
backstage.autoscaling.behavior.scaleDown.stabilizationWindowSecondsStabilization window in secondsinteger300
backstage.autoscaling.behavior.scaleUp.policiesScale-up policiesarray
backstage.autoscaling.behavior.scaleUp.selectPolicyPolicy selection strategyobjectMax
backstage.autoscaling.behavior.scaleUp.stabilizationWindowSecondsStabilization window in secondsinteger0
backstage.autoscaling.enabledEnable HPAbooleanfalse
backstage.autoscaling.maxReplicasMaximum replicasinteger3
backstage.autoscaling.minReplicasMinimum replicasinteger1
backstage.autoscaling.targetCPUUtilizationPercentageTarget CPU utilization percentageinteger70
backstage.autoscaling.targetMemoryUtilizationPercentageTarget memory utilization percentageinteger80
backstage.backendSecretBackend secret for Backstage encryption. If empty, a random secret is generatedstring
backstage.baseUrlBackstage public base URL. If empty, auto-derived from global.baseDomainstring
backstage.containerSecurityContext.allowPrivilegeEscalationPrevent privilege escalationbooleanfalse
backstage.containerSecurityContext.appArmorProfile.typeAppArmor profile typeobjectUnconfined
backstage.containerSecurityContext.capabilities.dropCapabilities to droparray
backstage.containerSecurityContext.readOnlyRootFilesystemRead-only root filesystembooleanfalse
backstage.containerSecurityContext.seccompProfile.typeSeccomp profile typeobjectRuntimeDefault
backstage.enabledEnable Backstage UI deploymentbooleantrue
backstage.envEnvironment variables for the Backstage containerarray
backstage.features.observability.enabledEnable Metrics, Traces, Runtime Logs tabs and RuntimeHealthCard in entity pagesbooleantrue
backstage.features.workflows.enabledEnable Workflows tab and WorkflowsOverviewCard in entity pagesbooleantrue
backstage.image.pullPolicyImage pull policyobjectIfNotPresent
backstage.image.repositoryDocker image repositorystringghcr.io/openchoreo/openchoreo-ui
backstage.image.tagImage tag. If empty, uses Chart.AppVersionstring
backstage.ingress.annotationsIngress annotationsobject{}
backstage.ingress.enabledEnable ingressbooleantrue
backstage.ingress.hostsIngress hostsarray[]
backstage.ingress.ingressClassNameIngress class namestring
backstage.ingress.tlsIngress TLS configurationarray[]
backstage.metrics.enabledEnable Prometheus metricsbooleantrue
backstage.metrics.serviceMonitor.enabledCreate ServiceMonitor resourcebooleanfalse
backstage.metrics.serviceMonitor.intervalScrape intervalstring30s
backstage.metrics.serviceMonitor.labels.prometheusstringkube-prometheus
backstage.metrics.serviceMonitor.namespaceNamespace for ServiceMonitorstringmonitoring
backstage.metrics.serviceMonitor.relabelingsMetric relabeling rulesarray[]
backstage.metrics.serviceMonitor.scrapeTimeoutScrape timeoutstring10s
backstage.networkPolicy.egressEgress rulesarray[]
backstage.networkPolicy.enabledEnable NetworkPolicybooleanfalse
backstage.networkPolicy.ingressIngress rulesarray[]
backstage.nodeSelectorNode selectorobject{}
backstage.openchoreoApi.urlOpenChoreo API URL. If empty, auto-derived from internal servicestring
backstage.podDisruptionBudget.enabledEnable PDBbooleanfalse
backstage.podDisruptionBudget.minAvailableMinimum available podsinteger1
backstage.podSecurityContext.fsGroupFilesystem groupinteger1000
backstage.podSecurityContext.runAsGroupGroup IDinteger1000
backstage.podSecurityContext.runAsNonRootRun as non-root userbooleantrue
backstage.podSecurityContext.runAsUserUser IDinteger1000
backstage.podSecurityContext.seccompProfile.typeSeccomp profile typeobjectRuntimeDefault
backstage.priorityClass.createCreate a priority classbooleanfalse
backstage.priorityClass.namePriority class namestringopenchoreo-backstage
backstage.priorityClass.valuePriority class valueinteger800000
backstage.replicasNumber of Backstage replicasinteger1
backstage.resources.limits.cpuCPU limitstring2000m
backstage.resources.limits.memoryMemory limitstring2Gi
backstage.resources.requests.cpuCPU requeststring200m
backstage.resources.requests.memoryMemory requeststring256Mi
backstage.service.nodePortNodePort (only used if service.type is NodePort)integer,nullnull
backstage.service.portService portinteger7007
backstage.service.typeService typeobjectClusterIP
backstage.serviceAccount.annotationsService account annotationsobject{}
backstage.serviceAccount.nameService account namestringopenchoreo-backstage
backstage.thunder.baseUrlThunder public base URL. If empty, auto-derived from global.baseDomainstring
backstage.thunder.tokenThunder API token for authenticationstring
backstage.tolerationsTolerationsarray[]
backstage.topologySpreadConstraintsTopology spread constraintsarray

Cluster Gateway​

Cluster Gateway configuration - manages WebSocket connections from cluster agents

ParameterDescriptionTypeDefault
clusterGateway.affinityAffinity rulesobject{}
clusterGateway.enabledEnable the cluster gatewaybooleantrue
clusterGateway.heartbeatIntervalHeartbeat interval for agent connectionsstring30s
clusterGateway.heartbeatTimeoutHeartbeat timeout for agent connectionsstring90s
clusterGateway.image.pullPolicyImage pull policyobjectIfNotPresent
clusterGateway.image.repositoryDocker image repositorystringghcr.io/openchoreo/cluster-gateway
clusterGateway.image.tagImage tag. If empty, uses Chart.AppVersionstring
clusterGateway.ingress.annotationsIngress annotationsobject{}
clusterGateway.ingress.enabledEnable ingressbooleanfalse
clusterGateway.ingress.hostsIngress hostsarray[]
clusterGateway.ingress.ingressClassNameIngress class namestring
clusterGateway.logLevelLog levelobjectinfo
clusterGateway.nameName of the cluster gateway deploymentstringcluster-gateway
clusterGateway.nodeSelectorNode selectorobject{}
clusterGateway.podSecurityContext.fsGroupFilesystem groupinteger1000
clusterGateway.podSecurityContext.runAsNonRootRun as non-root userbooleantrue
clusterGateway.podSecurityContext.runAsUserUser IDinteger1000
clusterGateway.portWebSocket port for agent connectionsinteger8443
clusterGateway.priorityClass.createCreate a priority classbooleanfalse
clusterGateway.priorityClass.namePriority class namestringcluster-gateway
clusterGateway.priorityClass.valuePriority class valueinteger900000
clusterGateway.replicasNumber of cluster gateway replicasinteger1
clusterGateway.resources.limits.cpuCPU limitstring500m
clusterGateway.resources.limits.memoryMemory limitstring256Mi
clusterGateway.resources.requests.cpuCPU requeststring100m
clusterGateway.resources.requests.memoryMemory requeststring64Mi
clusterGateway.securityContext.allowPrivilegeEscalationPrevent privilege escalationbooleanfalse
clusterGateway.securityContext.capabilities.dropCapabilities to droparray
clusterGateway.securityContext.readOnlyRootFilesystemRead-only root filesystembooleantrue
clusterGateway.service.clusterIPCluster IP (set to None for headless service)string,nullnull
clusterGateway.service.loadBalancerIPLoadBalancer IP (only used if service.type is LoadBalancer)string,nullnull
clusterGateway.service.nodePortNodePort (only used if service.type is NodePort)integer,nullnull
clusterGateway.service.portService portinteger8443
clusterGateway.service.typeService typeobjectClusterIP
clusterGateway.serviceAccount.annotationsService account annotationsobject{}
clusterGateway.serviceAccount.createCreate a service accountbooleantrue
clusterGateway.serviceAccount.nameService account namestringcluster-gateway
clusterGateway.tls.dnsNamesDNS names for the certificatearray
clusterGateway.tls.durationCertificate validity duration (90 days)string2160h
clusterGateway.tls.enabledEnable TLSbooleantrue
clusterGateway.tls.issuerRef.kindIssuer kindobjectIssuer
clusterGateway.tls.issuerRef.nameIssuer namestringcluster-gateway-selfsigned-issuer
clusterGateway.tls.renewBeforeCertificate renewal threshold (15 days before expiry)string360h
clusterGateway.tls.secretNameTLS secret namestringcluster-gateway-tls
clusterGateway.tolerationsTolerationsarray[]

Controller Manager​

Controller Manager configuration - the main controller for OpenChoreo CRDs

ParameterDescriptionTypeDefault
controllerManager.affinityAffinity rules for pod schedulingobject{}
controllerManager.autoscaling.behavior.scaleDown.policiesScale-down policiesarray
controllerManager.autoscaling.behavior.scaleDown.stabilizationWindowSecondsStabilization window in seconds before scaling downinteger300
controllerManager.autoscaling.behavior.scaleUp.policiesScale-up policiesarray
controllerManager.autoscaling.behavior.scaleUp.selectPolicyPolicy selection strategyobjectMax
controllerManager.autoscaling.behavior.scaleUp.stabilizationWindowSecondsStabilization window in seconds before scaling upinteger0
controllerManager.autoscaling.enabledEnable Horizontal Pod Autoscalerbooleanfalse
controllerManager.autoscaling.maxReplicasMaximum number of replicasinteger3
controllerManager.autoscaling.minReplicasMinimum number of replicasinteger1
controllerManager.autoscaling.targetCPUUtilizationPercentageTarget CPU utilization percentage for scalinginteger70
controllerManager.autoscaling.targetMemoryUtilizationPercentageTarget memory utilization percentage for scalinginteger80
controllerManager.clusterGateway.enabledEnable cluster gateway integration for remote data plane communicationbooleantrue
controllerManager.clusterGateway.tls.caPathPath to the CA certificate filestring/etc/cluster-gateway/ca.crt
controllerManager.clusterGateway.tls.caSecretName of the secret containing the CA certificatestringcluster-gateway-ca
controllerManager.clusterGateway.urlCluster gateway service URLstringhttps://cluster-gateway.openchoreo-control-plane.svc.cluster.local:8443
controllerManager.containerSecurityContext.allowPrivilegeEscalationPrevent privilege escalationbooleanfalse
controllerManager.containerSecurityContext.appArmorProfile.typeAppArmor profile typeobjectUnconfined
controllerManager.containerSecurityContext.capabilities.dropCapabilities to droparray
controllerManager.containerSecurityContext.readOnlyRootFilesystemMount root filesystem as read-onlybooleanfalse
controllerManager.containerSecurityContext.seccompProfile.typeSeccomp profile typeobjectRuntimeDefault
controllerManager.image.pullPolicyImage pull policyobjectAlways
controllerManager.image.repositoryDocker image repositorystringghcr.io/openchoreo/controller
controllerManager.image.tagImage tag. If empty, uses Chart.AppVersionstring
controllerManager.manager.argsCommand-line arguments for the controller-managerarray
controllerManager.manager.env.enableWebhooksEnable admission webhooksobjecttrue
controllerManager.metrics.enabledEnable Prometheus metrics endpointbooleantrue
controllerManager.metrics.serviceMonitor.enabledCreate a ServiceMonitor resource for Prometheus Operatorbooleanfalse
controllerManager.metrics.serviceMonitor.intervalScrape intervalstring30s
controllerManager.metrics.serviceMonitor.labels.prometheusstringkube-prometheus
controllerManager.metrics.serviceMonitor.namespaceNamespace where ServiceMonitor should be createdstringmonitoring
controllerManager.metrics.serviceMonitor.relabelingsMetric relabeling rulesarray[]
controllerManager.metrics.serviceMonitor.scrapeTimeoutScrape timeoutstring10s
controllerManager.nameName of the controller-manager deploymentstringcontroller-manager
controllerManager.networkPolicy.egressEgress rules for the NetworkPolicyarray[]
controllerManager.networkPolicy.enabledEnable NetworkPolicybooleanfalse
controllerManager.networkPolicy.ingressIngress rules for the NetworkPolicyarray[]
controllerManager.nodeSelectorNode selector for pod schedulingobject{}
controllerManager.podDisruptionBudget.enabledEnable PodDisruptionBudgetbooleanfalse
controllerManager.podDisruptionBudget.minAvailableMinimum number of pods that must be availableinteger1
controllerManager.podSecurityContext.fsGroupFilesystem group for volumesinteger1000
controllerManager.podSecurityContext.runAsGroupGroup ID to run the container asinteger1000
controllerManager.podSecurityContext.runAsNonRootRun container as non-root userbooleantrue
controllerManager.podSecurityContext.runAsUserUser ID to run the container asinteger1000
controllerManager.podSecurityContext.seccompProfile.typeSeccomp profile typeobjectRuntimeDefault
controllerManager.priorityClass.createCreate a priority class for the controller-managerbooleanfalse
controllerManager.priorityClass.namePriority class namestringopenchoreo-controller-manager
controllerManager.priorityClass.valuePriority class value (higher = more priority)integer1000000
controllerManager.replicasNumber of controller-manager replicasinteger1
controllerManager.resources.limits.cpuCPU limitstring1000m
controllerManager.resources.limits.memoryMemory limitstring1Gi
controllerManager.resources.requests.cpuCPU requeststring200m
controllerManager.resources.requests.memoryMemory requeststring256Mi
controllerManager.service.nodePortNodePort (only used if service.type is NodePort)integer,nullnull
controllerManager.service.portService portinteger8080
controllerManager.service.typeService typeobjectClusterIP
controllerManager.serviceAccount.annotationsAnnotations to add to the service accountobject{}
controllerManager.serviceAccount.createCreate a service account for the controller-managerbooleantrue
controllerManager.tolerationsTolerations for pod schedulingarray[]
controllerManager.topologySpreadConstraintsTopology spread constraints for pod distribution across zones and nodesarray

Fullname Override​

Override the full name of the chart release

ParameterDescriptionTypeDefault
fullnameOverrideOverride the full name of the chart releasestringopenchoreo

Global​

Global values shared across all components

ParameterDescriptionTypeDefault
global.baseDomainBase domain for all services. Console will be at baseDomain, API at api.baseDomainstringopenchoreo.local
global.clusterNameKubernetes cluster name identifierstringopenchoreo
global.commonLabelsLabels applied to all resources created by the chartobject{}
global.defaultResources.deploymentPipeline.descriptionDescription for the default pipelinestringStandard deployment pipeline with dev, staging, and prod environments
global.defaultResources.deploymentPipeline.displayNameDisplay name for the default pipelinestringDefault Pipeline
global.defaultResources.deploymentPipeline.promotionOrderPromotion order defining how deployments flow between environmentsarray
global.defaultResources.enabledEnable creation of default resources (organization, project, environments, pipeline)booleantrue
global.defaultResources.environmentsDefault environments to createarray
global.defaultResources.organization.descriptionDescription for the default organizationstringGetting started with your first organization
global.defaultResources.organization.displayNameDisplay name for the default organizationstringDefault Organization
global.defaultResources.project.descriptionDescription for the default projectstringYour first project to get started
global.defaultResources.project.displayNameDisplay name for the default projectstringDefault Project
global.imagePullSecretsDocker registry credentials for pulling imagesarray[]
global.ingressClassNameIngress class for all services (uses Traefik by default)stringopenchoreo-traefik
global.portPort suffix for URLs (e.g., ":8080" for non-standard ports). Include the colon. Leave empty for standard ports (80/443)string
global.tls.enabledEnable TLS/HTTPS for all ingressesbooleanfalse
global.tls.secretNameSecret containing TLS certificate (must have all hosts - baseDomain, api.baseDomain, thunder.baseDomain)stringcontrol-plane-tls

Kubernetes Cluster Domain​

Kubernetes cluster domain suffix

ParameterDescriptionTypeDefault
kubernetesClusterDomainKubernetes cluster domain suffixstringcluster.local

Metrics Server​

Kubernetes metrics server configuration

ParameterDescriptionTypeDefault
metricsServer.enabledEnable metrics server deploymentbooleanfalse
metricsServer.kubeletInsecureTlsEnabledAllow insecure TLS connections to kubeletbooleantrue

Metrics Service​

Metrics service configuration

ParameterDescriptionTypeDefault
metricsService.portsPorts exposed by the metrics servicearray
metricsService.typeService typeobjectClusterIP

Openchoreo Api​

OpenChoreo API server configuration

ParameterDescriptionTypeDefault
openchoreoApi.affinityAffinity rulesobject{}
openchoreoApi.authServerBaseUrlBase URL for the authorization server (used for OAuth metadata). If not set, defaults to protocol://thunder.baseDomain:portstring
openchoreoApi.autoscaling.behavior.scaleDown.policiesScale-down policiesarray
openchoreoApi.autoscaling.behavior.scaleDown.stabilizationWindowSecondsStabilization window in secondsinteger300
openchoreoApi.autoscaling.behavior.scaleUp.policiesScale-up policiesarray
openchoreoApi.autoscaling.behavior.scaleUp.selectPolicyPolicy selection strategyobjectMax
openchoreoApi.autoscaling.behavior.scaleUp.stabilizationWindowSecondsStabilization window in secondsinteger0
openchoreoApi.autoscaling.enabledEnable Horizontal Pod Autoscalerbooleanfalse
openchoreoApi.autoscaling.maxReplicasMaximum number of replicasinteger3
openchoreoApi.autoscaling.minReplicasMinimum number of replicasinteger1
openchoreoApi.autoscaling.targetCPUUtilizationPercentageTarget CPU utilization percentageinteger70
openchoreoApi.autoscaling.targetMemoryUtilizationPercentageTarget memory utilization percentageinteger80
openchoreoApi.containerSecurityContext.allowPrivilegeEscalationPrevent privilege escalationbooleanfalse
openchoreoApi.containerSecurityContext.appArmorProfile.typeAppArmor profile typeobjectUnconfined
openchoreoApi.containerSecurityContext.capabilities.dropCapabilities to droparray
openchoreoApi.containerSecurityContext.readOnlyRootFilesystemRead-only root filesystembooleanfalse
openchoreoApi.containerSecurityContext.seccompProfile.typeSeccomp profile typeobjectRuntimeDefault
openchoreoApi.database.pathPath to the SQLite database filestring/var/lib/openchoreo/data/controlplane.db
openchoreoApi.database.persistence.enabledEnable persistent storage for the databasebooleantrue
openchoreoApi.database.persistence.sizeSize of the persistent volumestring500Mi
openchoreoApi.database.persistence.storageClassNameStorage class name. If empty, uses the default storage classstring
openchoreoApi.enabledEnable the OpenChoreo API serverbooleantrue
openchoreoApi.image.pullPolicyImage pull policyobjectIfNotPresent
openchoreoApi.image.repositoryDocker image repositorystringghcr.io/openchoreo/openchoreo-api
openchoreoApi.image.tagImage tag. If empty, uses Chart.AppVersionstring
openchoreoApi.ingress.annotationsIngress annotationsobject{}
openchoreoApi.ingress.enabledEnable ingressbooleantrue
openchoreoApi.ingress.hostsIngress hosts. If empty, derives from global.baseDomainarray[]
openchoreoApi.ingress.ingressClassNameIngress class name. If empty, uses global.ingressClassNamestring
openchoreoApi.ingress.tlsIngress TLS configurationarray[]
openchoreoApi.logLevelLog level for the API serverobjectinfo
openchoreoApi.mcp.toolsetsComma-separated list of enabled MCP toolsetsstringorganization,project,component,build,deployment,infrastructure
openchoreoApi.metrics.enabledEnable Prometheus metricsbooleantrue
openchoreoApi.metrics.serviceMonitor.enabledCreate ServiceMonitor resourcebooleanfalse
openchoreoApi.metrics.serviceMonitor.intervalScrape intervalstring30s
openchoreoApi.metrics.serviceMonitor.labels.prometheusstringkube-prometheus
openchoreoApi.metrics.serviceMonitor.namespaceNamespace for ServiceMonitorstringmonitoring
openchoreoApi.metrics.serviceMonitor.relabelingsMetric relabeling rulesarray[]
openchoreoApi.metrics.serviceMonitor.scrapeTimeoutScrape timeoutstring10s
openchoreoApi.nameStatic name for all openchoreo-api resources (Service, Deployment, ClusterRole, etc.)stringopenchoreo-api
openchoreoApi.networkPolicy.egressEgress rulesarray[]
openchoreoApi.networkPolicy.enabledEnable NetworkPolicybooleanfalse
openchoreoApi.networkPolicy.ingressIngress rulesarray[]
openchoreoApi.nodeSelectorNode selectorobject{}
openchoreoApi.podDisruptionBudget.enabledEnable PodDisruptionBudgetbooleanfalse
openchoreoApi.podDisruptionBudget.minAvailableMinimum available podsinteger1
openchoreoApi.podSecurityContext.fsGroupFilesystem groupinteger1000
openchoreoApi.podSecurityContext.runAsGroupGroup IDinteger1000
openchoreoApi.podSecurityContext.runAsNonRootRun as non-root userbooleantrue
openchoreoApi.podSecurityContext.runAsUserUser IDinteger1000
openchoreoApi.podSecurityContext.seccompProfile.typeSeccomp profile typeobjectRuntimeDefault
openchoreoApi.priorityClass.createCreate a priority classbooleanfalse
openchoreoApi.priorityClass.namePriority class namestringopenchoreo-api
openchoreoApi.priorityClass.valuePriority class valueinteger900000
openchoreoApi.replicasNumber of API server replicasinteger1
openchoreoApi.resources.limits.cpuCPU limitstring1000m
openchoreoApi.resources.limits.memoryMemory limitstring1Gi
openchoreoApi.resources.requests.cpuCPU requeststring200m
openchoreoApi.resources.requests.memoryMemory requeststring256Mi
openchoreoApi.security.userTypesUser type definitions for authorizationarray
openchoreoApi.serverBaseUrlBase URL for the API server (used for OAuth metadata). If not set, defaults to protocol://api.baseDomain:portstring
openchoreoApi.service.nodePortNodePort (only used if service.type is NodePort)integer,nullnull
openchoreoApi.service.portService portinteger8080
openchoreoApi.service.typeService typeobjectClusterIP
openchoreoApi.serviceAccount.annotationsAnnotations to add to the service accountobject{}
openchoreoApi.serviceAccount.nameService account name (always created when openchoreoApi.enabled is true)stringopenchoreo-api
openchoreoApi.tolerationsTolerationsarray[]
openchoreoApi.topologySpreadConstraintsTopology spread constraintsarray

Security​

Common security configuration shared across all components

ParameterDescriptionTypeDefault
security.authz.databasePathPath to the Casbin database filestring/var/lib/openchoreo/data/casbin.db
security.authz.defaultAuthzDataFilePathPath to custom authz data file (roles and mappings). If not set, embedded defaults are used. To use custom data, set this path and mount a ConfigMapstring/etc/openchoreo/authz/default-roles-mappings.yaml
security.authz.enabledEnable authorization using Casbinbooleanfalse
security.enabledGlobal security toggle - when disabled, authentication is turned off for all componentsbooleantrue
security.jwt.audienceExpected audience claim in JWT tokensstring
security.oidc.authorizationUrlOIDC authorization endpoint URLstring
security.oidc.issuerOIDC provider issuer URLstring
security.oidc.jwksUrlOIDC JWKS URL for token validationstring
security.oidc.tokenUrlOIDC token endpoint URLstring
security.oidc.wellKnownEndpointOIDC well-known configuration endpoint URLstring

Thunder​

For full configuration options, please refer to the official chart documentation.

Asgardeo Thunder (Platform Identity Provider) configuration

ParameterDescriptionTypeDefault
thunder.bootstrap.configMap.filesBootstrap script files to runarray
thunder.bootstrap.configMap.nameConfigMap name containing bootstrap scriptsstringopenchoreo-thunder-bootstrap
thunder.bootstrap.defaultAppsDefault OAuth applications to create during bootstraparray
thunder.bootstrap.defaultUsersDefault users to create during bootstraparray
thunder.bootstrap.enabledEnable bootstrap scriptsbooleantrue
thunder.bootstrap.rcaAgentClient.clientIdstringopenchoreo-rca-agent
thunder.bootstrap.rcaAgentClient.clientSecretstringopenchoreo-rca-agent-secret
thunder.configuration.cache.cleanupIntervalCache cleanup interval in secondsinteger300
thunder.configuration.cache.disabledDisable cachingbooleanfalse
thunder.configuration.cache.evictionPolicyCache eviction policyobjectLRU
thunder.configuration.cache.sizeMaximum cache sizeinteger1000
thunder.configuration.cache.ttlCache TTL in secondsinteger3600
thunder.configuration.cache.typeCache typeobjectinmemory
thunder.configuration.cors.allowedOriginsAllowed origins for CORSarray
thunder.configuration.database.identity.sqliteOptionsSQLite connection optionsstring_journal_mode=WAL&_busy_timeout=5000
thunder.configuration.database.identity.sqlitePathSQLite database file pathstringrepository/database/thunderdb.db
thunder.configuration.database.identity.typeDatabase typeobjectsqlite
thunder.configuration.database.runtime.sqliteOptionsSQLite connection optionsstring_journal_mode=WAL&_busy_timeout=5000
thunder.configuration.database.runtime.sqlitePathSQLite database file pathstringrepository/database/runtimedb.db
thunder.configuration.database.runtime.typeDatabase typeobjectsqlite
thunder.configuration.database.user.sqliteOptionsSQLite connection optionsstring_journal_mode=WAL&_busy_timeout=5000
thunder.configuration.database.user.sqlitePathSQLite database file pathstringrepository/database/userdb.db
thunder.configuration.database.user.typeDatabase typeobjectsqlite
thunder.configuration.flow.authn.defaultFlowDefault authentication flowstringauth_flow_config_basic
thunder.configuration.flow.graphDirectoryDirectory containing flow graph definitionsstringrepository/resources/graphs/
thunder.configuration.gateClient.errorPathError pathstring/gate/error
thunder.configuration.gateClient.hostnameGate client hostnamestring
thunder.configuration.gateClient.loginPathLogin pathstring/gate/signin
thunder.configuration.gateClient.portGate client portinteger8080
thunder.configuration.gateClient.schemeProtocol schemeobjecthttp
thunder.configuration.jwt.audienceToken audiencestringapplication
thunder.configuration.jwt.issuerJWT issuer namestringthunder
thunder.configuration.jwt.validityPeriodToken validity period in secondsinteger3600
thunder.configuration.oauth.refreshToken.renewOnGrantRenew refresh token on grantbooleanfalse
thunder.configuration.oauth.refreshToken.validityPeriodRefresh token validity period in secondsinteger86400
thunder.configuration.security.certFileServer certificate file pathstringrepository/resources/security/server.cert
thunder.configuration.security.cryptoFileCrypto key file pathstringrepository/resources/security/crypto.key
thunder.configuration.security.keyFileServer private key file pathstringrepository/resources/security/server.key
thunder.configuration.server.httpOnlyHTTP-only mode (no HTTPS termination at Thunder)booleantrue
thunder.configuration.server.portServer portinteger8090
thunder.configuration.server.publicUrlPublic URL for Thunder. If empty, auto-derived from global.baseDomainstring
thunder.deployment.container.portContainer portinteger8090
thunder.deployment.image.pullPolicyImage pull policyobjectIfNotPresent
thunder.deployment.image.registryImage registrystringghcr.io/asgardeo
thunder.deployment.image.repositoryImage repositorystringthunder
thunder.deployment.image.tagImage tagstring0.15.0
thunder.deployment.replicaCountNumber of Thunder replicasinteger1
thunder.deployment.resources.limits.cpuCPU limitstring500m
thunder.deployment.resources.limits.memoryMemory limitstring512Mi
thunder.deployment.resources.requests.cpuCPU requeststring100m
thunder.deployment.resources.requests.memoryMemory requeststring128Mi
thunder.deployment.securityContext.enableRunAsUserEnable run as userbooleantrue
thunder.deployment.securityContext.fsGroupFilesystem groupinteger802
thunder.deployment.securityContext.readOnlyRootFilesystemRead-only root filesystem. Must be false for SQLitebooleanfalse
thunder.deployment.securityContext.runAsUserUser IDinteger802
thunder.deployment.securityContext.seccompProfile.enabledEnable seccomp profilebooleantrue
thunder.deployment.securityContext.seccompProfile.typeSeccomp profile typeobjectRuntimeDefault
thunder.deployment.strategy.rollingUpdate.maxSurgeMaximum surge pods during updateinteger1
thunder.deployment.strategy.rollingUpdate.maxUnavailableMaximum unavailable pods during updateinteger0
thunder.deployment.terminationGracePeriodSecondsTermination grace period in secondsinteger10
thunder.enabledEnable Thunder identity provider deploymentbooleantrue
thunder.fullnameOverrideOverride the Thunder release namestringthunder
thunder.hpa.enabledEnable HPAbooleanfalse
thunder.ingress.annotationsIngress annotationsobject{}
thunder.ingress.enabledEnable standard ingressbooleanfalse
thunder.ingress.hostsIngress hostsarray[]
thunder.ingress.ingressClassNameIngress class namestring
thunder.ingress.tlsIngress TLS configurationarray[]
thunder.ocIngress.annotationsIngress annotationsobject{}
thunder.ocIngress.enabledEnable OpenChoreo ingressbooleantrue
thunder.ocIngress.hostsIngress hosts. If empty, derives from global.baseDomainarray[]
thunder.ocIngress.ingressClassNameIngress class name. If empty, uses global.ingressClassNamestring
thunder.ocIngress.tlsIngress TLS configurationarray[]
thunder.pdb.minAvailableMinimum available pods (percentage or number)string50%
thunder.persistence.accessModeAccess mode for the persistent volumeobjectReadWriteOnce
thunder.persistence.annotationsAnnotations for the PVCobject{}
thunder.persistence.enabledEnable persistent storagebooleantrue
thunder.persistence.sizeSize of the persistent volumestring1Gi
thunder.persistence.storageClassStorage class name. If empty, uses default storage classstring
thunder.service.portService portinteger8090
thunder.serviceAccount.createCreate service accountbooleantrue
thunder.serviceAccount.nameService account namestringthunder-service-account
thunder.setup.backoffLimitJob backoff limit (retry count)integer3
thunder.setup.debugEnable debug mode for setup jobbooleanfalse
thunder.setup.enabledEnable the setup jobbooleantrue
thunder.setup.preserveJobPreserve job after completionbooleantrue
thunder.setup.resources.limits.cpuCPU limitstring500m
thunder.setup.resources.limits.memoryMemory limitstring256Mi
thunder.setup.resources.requests.cpuCPU requeststring250m
thunder.setup.resources.requests.memoryMemory requeststring128Mi
thunder.setup.ttlSecondsAfterFinishedJob retention time in seconds after completion (24 hours)integer86400

Traefik​

For full configuration options, please refer to the official chart documentation.

Traefik ingress controller configuration (subchart)

ParameterDescriptionTypeDefault
traefik.enabledEnable Traefik ingress controllerbooleantrue
traefik.fullnameOverrideOverride the Traefik release namestringopenchoreo-traefik
traefik.ingressClass.enabledCreate IngressClass resourcebooleantrue
traefik.ingressClass.isDefaultClassSet as the default IngressClassbooleanfalse
traefik.ingressClass.nameIngressClass namestringopenchoreo-traefik
traefik.ingressRoute.dashboard.enabledEnable Traefik dashboardbooleanfalse
traefik.logs.access.enabledEnable access logsbooleanfalse
traefik.logs.general.levelLog levelobjectINFO
traefik.ports.web.expose.defaultExpose port by defaultbooleantrue
traefik.ports.web.exposedPortLoadBalancer exposed port for HTTPinteger80
traefik.ports.web.portContainer port for HTTPinteger8000
traefik.ports.websecure.expose.defaultExpose port by defaultbooleantrue
traefik.ports.websecure.exposedPortLoadBalancer exposed port for HTTPSinteger443
traefik.ports.websecure.portContainer port for HTTPSinteger8443
traefik.ports.websecure.tls.enabledEnable TLS on websecure portbooleantrue
traefik.providers.kubernetesIngress.ingressClassIngressClass to watchstringopenchoreo-traefik
traefik.resources.limits.cpuCPU limitstring500m
traefik.resources.limits.memoryMemory limitstring256Mi
traefik.resources.requests.cpuCPU requeststring100m
traefik.resources.requests.memoryMemory requeststring128Mi
traefik.service.typeService typeobjectLoadBalancer

Wait Job​

Wait job configuration for Helm hooks

ParameterDescriptionTypeDefault
waitJob.imageContainer image for wait jobsstringbitnamilegacy/kubectl:1.32.4

Webhook Service​

Webhook service configuration

ParameterDescriptionTypeDefault
webhookService.portsPorts exposed by the webhook servicearray
webhookService.typeService typeobjectClusterIP