Install Metacontroller using Helm

Building the chart from source code

The chart can be built from metacontroller source:

git clone https://github.com/metacontroller/metacontroller.git
cd  metacontroller
helm package deploy/helm/metacontroller --destination deploy/helm

Installing the chart from package

helm install metacontroller deploy/helm/metacontroller-helm-v*.tgz

Installing chart from ghcr.io

Charts are published as packages on ghcr.io

You can pull them like:

  • HELM_EXPERIMENTAL_OCI=1 helm pull oci://ghcr.io/metacontroller/metacontroller-helm --version=<version>

as OCI is currently (at least for helm 3.8.x) a beta feature.

Configuration

ParameterDescriptionDefault
commandCommand which is used to start metacontroller/usr/bin/metacontroller
commandArgsCommand arguments which are used to start metacontroller. See configuration.md for additional details.[ "--zap-log-level=4", "--discovery-interval=20s", "--cache-flush-interval=30m" ]
rbac.createCreate and use RBAC resourcestrue
image.repositoryImage repositorymetacontrollerio/metacontroller
image.pullPolicyImage pull policyIfNotPresent
image.tagImage tag"" (Chart.AppVersion)
imagePullSecretsImage pull secrets[]
nameOverrideOverride the deployment name"" (Chart.Name)
namespaceOverrideOverride the deployment namespace"" (Release.Namespace)
fullnameOverrideOverride the deployment full name"" (Release.Namespace-Chart.Name)
serviceAccount.createCreate service accounttrue
serviceAccount.annotationsServiceAccount annotations{}
serviceAccount.nameService account name to use, when empty will be set to created account if serviceAccount.create is set else to default""
podAnnotationsPod annotations{}
podSecurityContextPod security context{}
securityContextContainer security context{}
resourcesCPU/Memory resource requests/limits{}
nodeSelectorNode labels for pod assignment{}
tolerationsToleration labels for pod assignment[]
affinityAffinity settings for pod assignment{}
priorityClassNameThe name of the PriorityClass that will be assigned to metacontroller""
clusterRole.aggregationRuleThe aggregationRule applied to metacontroller ClusterRole{}
clusterRole.rulesThe rules applied to metacontroller ClusterRole{ "apiGroups": "*", "resources": "*", "verbs": "*" }
replicasSpecifies the number of metacontroller pods that will be deployed1
podDisruptionBudgetThe podDisruptionBudget applied to metacontroller pods{}
service.enabledIf true, then create a Service to expose portsfalse
service.portsList of ports that are exposed on the Service[]