Skip to main content
Version: Next

Build Plane

Dependencies​

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

NameVersionRepositoryCondition
argo-workflows0.45.2https://argoproj.github.io/argo-helm-
external-secrets0.19.2https://charts.external-secrets.ioexternal-secrets.enabled
docker-registry3.0.0https://twuni.github.io/docker-registry.helmregistry.enabled

Argo Workflows​

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

Argo Workflows sub-chart configuration. See https://github.com/argoproj/argo-helm/tree/main/charts/argo-workflows for all options.

ParameterDescriptionTypeDefault
argo-workflows.controller.resources.limits.cpuCPU limit for the controllerstring50m
argo-workflows.controller.resources.limits.memoryMemory limit for the controllerstring64Mi
argo-workflows.controller.resources.requests.cpuCPU request for the controllerstring25m
argo-workflows.controller.resources.requests.memoryMemory request for the controllerstring32Mi
argo-workflows.crds.keepKeep CRDs on chart uninstallbooleanfalse
argo-workflows.fullnameOverrideOverride the full name of Argo Workflows resourcesstringargo
argo-workflows.server.enabledEnable the Argo Workflows server UIbooleanfalse
argo-workflows.workflow.serviceAccount.createCreate service account for workflowsbooleantrue
argo-workflows.workflowNamespacesNamespaces where Argo Workflows can submit workflowsarray

Cluster Agent​

Cluster Agent configuration for agent-based communication with control plane

ParameterDescriptionTypeDefault
clusterAgent.affinityAffinity rules for cluster agent podsobject
clusterAgent.dnsRewrite.enabledEnable DNS rewrite for k3d setupsbooleanfalse
clusterAgent.enabledEnable the cluster agent for control plane communicationbooleantrue
clusterAgent.heartbeatIntervalHeartbeat interval for control plane connectionstring30s
clusterAgent.image.pullPolicyImage pull policyobjectIfNotPresent
clusterAgent.image.repositoryImage repository for cluster agentstringghcr.io/openchoreo/cluster-agent
clusterAgent.image.tagImage tag. If empty, uses Chart.AppVersion.string
clusterAgent.logLevelLog level for cluster agentobjectinfo
clusterAgent.nameName of the cluster agent deploymentstringcluster-agent-buildplane
clusterAgent.nodeSelectorNode selector for cluster agent podsobject
clusterAgent.planeIDLogical plane identifier. Shared across multiple CRs connecting to the same physical plane for multi-tenancy.stringdefault-buildplane
clusterAgent.planeTypeType of planeobjectbuildplane
clusterAgent.podAnnotationsAnnotations to add to cluster agent podsobject
clusterAgent.podSecurityContext.fsGroupinteger1000
clusterAgent.podSecurityContext.runAsNonRootbooleantrue
clusterAgent.podSecurityContext.runAsUserinteger1000
clusterAgent.priorityClass.createCreate priority classbooleanfalse
clusterAgent.priorityClass.namePriority class namestringcluster-agent-buildplane
clusterAgent.priorityClass.valuePriority valueinteger900000
clusterAgent.rbac.createCreate RBAC resourcesbooleantrue
clusterAgent.reconnectDelayDelay before reconnecting on disconnectionstring5s
clusterAgent.replicasNumber of cluster agent replicasinteger1
clusterAgent.resources.limits.cpustring100m
clusterAgent.resources.limits.memorystring256Mi
clusterAgent.resources.requests.cpustring50m
clusterAgent.resources.requests.memorystring128Mi
clusterAgent.securityContext.allowPrivilegeEscalationbooleanfalse
clusterAgent.securityContext.capabilities.droparray
clusterAgent.securityContext.readOnlyRootFilesystembooleantrue
clusterAgent.serverCANamespaceNamespace where cluster-gateway CA existsstringopenchoreo-control-plane
clusterAgent.serverUrlWebSocket URL of the cluster gateway in control planestringwss://cluster-gateway.openchoreo-control-plane.svc.cluster.local:8443/ws
clusterAgent.serviceAccount.annotationsAnnotations to add to the service accountobject
clusterAgent.serviceAccount.createCreate service accountbooleantrue
clusterAgent.serviceAccount.nameService account namestringcluster-agent-buildplane
clusterAgent.tls.caSecretNameCA secret name for signing agent client certificates. If empty, self-signed certs will be generated (required for multi-cluster setup).stringcluster-gateway-ca
clusterAgent.tls.caSecretNamespaceNamespace where the CA secret exists. If empty, self-signed certs will be generated (required for multi-cluster setup).stringopenchoreo-control-plane
clusterAgent.tls.caValueInline CA certificate value (PEM format) for multi-cluster setupstring
clusterAgent.tls.clientSecretNameClient certificate secret namestringcluster-agent-tls
clusterAgent.tls.durationCertificate durationstring2160h
clusterAgent.tls.enabledEnable TLS for agent communicationbooleantrue
clusterAgent.tls.generateCertsGenerate client certificates locally using cert-manager. Set to true for multi-cluster setup.booleanfalse
clusterAgent.tls.renewBeforeCertificate renewal windowstring360h
clusterAgent.tls.secretNameSecret containing client certificate and keystringcluster-agent-tls
clusterAgent.tls.serverCAConfigMapConfigMap containing server CA certificate for verifying gatewaystringcluster-gateway-ca
clusterAgent.tls.serverCAValueInline server CA certificate value (PEM format) for multi-cluster setupstring
clusterAgent.tolerationsTolerations for cluster agent podsarray

External Secrets​

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

External Secrets Operator sub-chart configuration. See https://github.com/external-secrets/external-secrets for all options. Single cluster - set enabled to false to use data plane's ESO. Multi-cluster - set enabled to true to install dedicated ESO in build plane.

ParameterDescriptionTypeDefault
external-secrets.enabledInstall External Secrets Operator in the build planebooleanfalse
external-secrets.fullnameOverrideOverride the full name of External Secrets resourcesstringexternal-secrets
external-secrets.nameOverrideOverride the name of External Secrets resourcesstringexternal-secrets

Fake Secret Store​

Fake Secret Store configuration for local development. Creates a ClusterSecretStore with static secrets for testing purposes. Not for production use.

ParameterDescriptionTypeDefault
fakeSecretStore.enabledEnable the fake secret store for developmentbooleantrue
fakeSecretStore.nameName of the ClusterSecretStore resourcestringdefault
fakeSecretStore.secretsList of fake secrets to create for developmentarray

Fluent Bit​

Fluent Bit configuration for log collection and forwarding to OpenSearch

ParameterDescriptionTypeDefault
fluentBit.config.filter.k8sLoggingExcludebooleanfalse
fluentBit.config.filter.k8sLoggingParserbooleantrue
fluentBit.config.filter.kubeCAFilestring/var/run/secrets/kubernetes.io/serviceaccount/ca.crt
fluentBit.config.filter.kubeTagPrefixstringkube.var.log.containers.
fluentBit.config.filter.kubeTokenFilestring/var/run/secrets/kubernetes.io/serviceaccount/token
fluentBit.config.filter.kubeURLstringhttps://kubernetes.default.svc:443
fluentBit.config.filter.matchstringkube.*
fluentBit.config.filter.mergeLogbooleantrue
fluentBit.config.filter.mergeLogKeystringlog_processed
fluentBit.config.filter.namestringkubernetes
fluentBit.config.input.dbstring/var/log/flb_kube.db
fluentBit.config.input.excludePathstring/var/log/containers/*opensearch*_openchoreo-observability-plane_*.log,/var/log/containers/*fluent-bit*_openchoreo-data-plane_*.log
fluentBit.config.input.inotifyWatcherbooleanfalse
fluentBit.config.input.memBufLimitstring256MB
fluentBit.config.input.namestringtail
fluentBit.config.input.parserstringdocker
fluentBit.config.input.pathstring/var/log/containers/*_openchoreo-*_*.log,/var/log/containers/*_openchoreo-ci-*_*.log
fluentBit.config.input.refreshIntervalinteger10
fluentBit.config.input.skipLongLinesbooleantrue
fluentBit.config.input.tagstringkube.*
fluentBit.config.opensearch.authentication.basicauth.passwordstringadmin
fluentBit.config.opensearch.authentication.basicauth.usernamestringadmin
fluentBit.config.opensearch.hoststringopensearch.openchoreo-observability-plane.svc.cluster.local
fluentBit.config.opensearch.portstring9200
fluentBit.config.opensearch.tlsbooleanfalse
fluentBit.config.opensearch.tlsVerifybooleanfalse
fluentBit.config.output.indexstringkubernetes_cluster
fluentBit.config.output.logstashFormatbooleantrue
fluentBit.config.output.logstashPrefixstringkubernetes
fluentBit.config.output.matchstringkube.*
fluentBit.config.output.namestringopensearch
fluentBit.config.output.suppressTypeNamebooleantrue
fluentBit.config.output.timeKeystring@timestamp
fluentBit.config.output.traceErrorbooleantrue
fluentBit.config.output.typestringflb_type
fluentBit.config.parser.formatstringjson
fluentBit.config.parser.namestringdocker
fluentBit.config.parser.timeFormatstring%Y-%m-%dT%H:%M:%S.%L
fluentBit.config.parser.timeKeepbooleantrue
fluentBit.config.parser.timeKeystringtime
fluentBit.config.service.daemonstringoff
fluentBit.config.service.flushinteger1
fluentBit.config.service.logLevelstringinfo
fluentBit.enabledEnable Fluent Bit log collectionbooleanfalse
fluentBit.hostPaths.dockerContainersHost path for Docker containersstring/var/lib/docker/containers
fluentBit.hostPaths.varLogHost path for /var/logstring/var/log
fluentBit.image.pullPolicyImage pull policyobjectIfNotPresent
fluentBit.image.repositoryFluent Bit image repositorystringfluent/fluent-bit
fluentBit.image.tagFluent Bit image tagstring2.1.10
fluentBit.rbac.createCreate RBAC resourcesbooleantrue
fluentBit.rbac.serviceAccountNameService account name for Fluent Bitstringfluent-bit

Global​

Global configuration values shared across all components

ParameterDescriptionTypeDefault
global.baseDomainBase domain for external access. When set, registry will be accessible at registry.<baseDomain>.string
global.commonLabelsCommon labels to add to every resourceobject
global.defaultResources.buildpackCache.enabledEnable buildpack image caching hookbooleantrue
global.defaultResources.buildpackCache.imagesList of buildpack images to cachearray
global.defaultResources.enabledIf true, applies the workflow templatesbooleantrue
global.defaultResources.podmanCache.sizeSize of the persistent volume for podman image layer cachestring10Gi
global.defaultResources.podmanCache.storageClassStorage class for the cache PVC. Uses cluster default if not set.string
global.defaultResources.registry.endpointRegistry endpoint for pushing and pulling images. For external registry with baseDomain, automatically uses registry.<baseDomain>.stringregistry.openchoreo-build-plane.svc.cluster.local:5000
global.ingressClassNameIngress class name for registry ingressstringopenchoreo-traefik
global.tls.enabledEnable TLS for registry ingressbooleanfalse
global.tls.secretNameSecret containing TLS certificate for registrystringregistry-tls

Registry​

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

Container Registry sub-chart configuration using Twuni Docker Registry Helm Chart. Hosts container images built by Argo Workflows in the Build Plane. See https://github.com/twuni/docker-registry.helm for all options.

ParameterDescriptionTypeDefault
registry.fullnameOverrideOverride the full name of registry resourcesstringregistry
registry.ingress.annotationsAnnotations to add to the ingress resourceobject
registry.ingress.classNameIngress class name. Falls back to global.ingressClassName if not set.string
registry.ingress.enabledEnable ingress for external registry accessbooleanfalse
registry.ingress.tls.enabledEnable TLS for registry ingressbooleanfalse
registry.ingress.tls.secretNameSecret containing TLS certificatestring
registry.persistence.enabledEnable persistent storage for registrybooleantrue
registry.persistence.sizeSize of the persistent volume for registry storagestring10Gi

Wait Job​

Wait job configuration for post-install hooks

ParameterDescriptionTypeDefault
waitJob.imageContainer image used for wait jobs (must contain kubectl)stringbitnamilegacy/kubectl:1.32.4