Skip to content

Helm Installation ​

This guide will help you install the Metal Operator using Helm.

Prerequisites ​

  • Kubernetes cluster (v1.16+)
  • Helm (v3.0.0+)

Steps ​

  1. Install the Chart

    Install the Metal Operator chart with the default values.

    sh
    helm install metal-operator dist/chart

    To customize the installation, you can override the default values using a values.yaml file or the --set flag.

    sh
    helm install metal-operator dist/chart -f /path/to/your/values.yaml
  2. Verify the Installation

    Check the status of the Helm release to ensure that the Metal Operator is installed successfully.

    sh
    helm status metal-operator

    You should see output indicating that the Metal Operator pods are running.

Configuration ​

The values.yaml file allows you to configure various aspects of the Metal Operator. Below are some of the key configurations:

Controller Manager ​

KeyDescriptionDefault Value
manager.enabledInstall the manager Deploymenttrue
manager.replicasNumber of replicas for the manager deployment1
manager.strategyDeployment strategy for the manager podnot set (Kubernetes default RollingUpdate)
manager.image.repositoryImage repository for the manager containercontroller
manager.image.tagImage tag for the manager containerChart.appVersion
manager.image.pullPolicyImage pull policy for the manager containerIfNotPresent
manager.imagePullSecretsImage pull secrets for the manager podnot set
manager.argsExtra arguments for the manager container (the chart adds the metrics and certificate flags)--leader-elect
manager.envEnvironment variables for the manager containerENABLE_WEBHOOKS=true
manager.envOverridesMap of extra environment variables (NAME: value)not set
manager.resourcesResource requests and limits for the manager container{cpu: 500m, memory: 128Mi} (limits), {cpu: 10m, memory: 64Mi} (requests)
manager.securityContextSecurity context for the manager container{allowPrivilegeEscalation: false, capabilities: {drop: ["ALL"]}}
manager.podSecurityContextSecurity context for the manager pod{runAsNonRoot: true, seccompProfile: {type: RuntimeDefault}}
manager.extraVolumesExtra volumes for the manager podnot set
manager.extraVolumeMountsExtra volume mounts for the manager containernot set
manager.affinityAffinity for the manager pod{}
manager.nodeSelectorNode selector for the manager pod{}
manager.tolerationsTolerations for the manager pod[]
manager.topologySpreadConstraintsTopology spread constraints for the manager podnot set
manager.priorityClassNamePriority class name for the manager podnot set
manager.terminationGracePeriodSecondsTermination grace period for the manager pod10
manager.labelsExtra labels for the manager Deploymentnot set
manager.annotationsAnnotations for the manager Deploymentnot set
manager.pod.labelsExtra labels for the manager podnot set
manager.pod.annotationsExtra annotations for the manager podnot set

The liveness (/healthz) and readiness (/readyz) probes on port 8081 are fixed in the template. The chart has no hostNetwork option; the manager pod uses the pod network.

Other Settings ​

KeyDescriptionDefault Value
rbac.namespacedUse a Role/RoleBinding in the release namespace instead of a ClusterRole/ClusterRoleBindingfalse
rbac.helpers.enableInstall admin/editor/viewer roles for the CRDsfalse
serviceAccount.enableCreate the manager ServiceAccounttrue
serviceAccount.nameExisting ServiceAccount to use when serviceAccount.enable is falsenot set
crd.enableInstall the CRDs with the charttrue
crd.keepKeep the CRDs when the chart is uninstalledtrue
metrics.enableExpose the /metrics endpointtrue
metrics.portMetrics server port8443
metrics.secureServe metrics over HTTPS with authn/authztrue
certManager.enableUse cert-manager for the webhook and metrics certificatestrue
webhook.enableInstall the webhookstrue
webhook.portWebhook server port9443
prometheus.enableInstall a Prometheus ServiceMonitor (requires prometheus-operator)false
metaldata.image.repositoryImage repository for the metaldata DaemonSetghcr.io/ironcore-dev/metaldata
metaldata.image.tagImage tag for the metaldata DaemonSetChart.appVersion
metaldata.additionalLabelsExtra labels for the metaldata DaemonSet{}

Refer to the values.yaml file for more details on each configuration option.

Uninstallation ​

To uninstall the Metal Operator, run the following command:

sh
helm uninstall metal-operator

This will remove all the resources associated with the Metal Operator.

Additional Information ​

For more detailed information, refer to the official documentation and Helm chart repository.

EU and German government funding logos

Funded by the European Union – NextGenerationEU.

The views and opinions expressed are solely those of the author(s) and do not necessarily reflect the views of the European Union or the European Commission. Neither the European Union nor the European Commission can be held responsible for them.