Skip to content

Install kMetal

This page covers the basic install of kMetal on a prepared under cluster. Ensure you have completed Setup Under Cluster and have credentials from Clastix.

Start Your Evaluation

Don't have credentials yet? Clastix provides an evaluation process with:

  • Temporary access token for ghcr.io/clastix/oci
  • Technical support during evaluation period

Contact sales@clastix.io or learn more about our evaluation process.

Log in to the OCI registry

kMetal is delivered as a Helm umbrella chart published to a private OCI registry. Log in with your credentials before pulling:

helm registry login ghcr.io -u <evaluation-username> -p <evaluation-token>

Create the registry pull secret

The chart pulls container images from the same private registry. Create a pull secret in the namespace the chart will install into:

kubectl create namespace kmetal-flux

kubectl create secret docker-registry clastix-ghcr \
  --docker-server=ghcr.io \
  --docker-username=<evaluation-username> \
  --docker-password=<evaluation-token> \
  --namespace=kmetal-flux

Credential Security

Store credentials securely. Never commit them to version control; use a secret manager or environment variables.

Prepare a values overlay

kMetal needs a small amount of per-deployment configuration — at minimum the Kube-OVN tunnel interface and the MetalLB IP pool. Create a kmetal-values.yaml for your environment:

t.b.d. — A worked overlay example for your hardware shape (NIC name, address pool range, gateway node labels) is t.b.d. in this guide. See Helm Values Reference for the supported keys.

Install the chart

helm install kmetal oci://ghcr.io/clastix/oci/kmetal \
  --namespace kmetal-flux \
  --values kmetal-values.yaml \
  --wait \
  --timeout=15m

Verify the release:

helm status kmetal -n kmetal-flux

Monitor installation

The chart deploys multiple component pods across several namespaces. Watch them come up:

# Expected component namespaces
kubectl get pods -n kmetal-cert-manager
kubectl get pods -n kube-flannel       # flannel
kubectl get pods -n kube-system            # kube-ovn (varies by chart version)
kubectl get pods -n kmetal-metallb
kubectl get pods -n kmetal-kamaji          # kamaji controllers + addon-ovn
kubectl get pods -n system-kubevirt
kubectl get pods -n system-cdi
kubectl get pods -n kmetal-capi-providers         # CAPI core + Bootstrap + CAPK + CACPK
kubectl get pods -n kmetal-local-path-storage

# Anything not Running or Completed
kubectl get pods -A | grep -v Running | grep -v Completed

Next Steps

kMetal is now installed on your under cluster. Continue to Create First Cluster.