CLI Commands Reference¶
Common command-line operations for kMetal.
Platform Management¶
Helm¶
# Install
helm install kmetal oci://ghcr.io/clastix/oci/kmetal \
--namespace kmetal-flux --create-namespace --values kmetal-values.yaml
# Upgrade
helm upgrade kmetal oci://ghcr.io/clastix/oci/kmetal \
--namespace kmetal-flux --values kmetal-values.yaml
# Status
helm status kmetal -n kmetal-flux
helm history kmetal -n kmetal-flux
helm get values kmetal -n kmetal-flux
helm get manifest kmetal -n kmetal-flux
# Rollback to a previous revision
helm rollback kmetal <revision> -n kmetal-flux
Registry¶
helm registry login ghcr.io -u <username> -p <token>
kubectl create secret docker-registry clastix-ghcr \
--docker-server=ghcr.io \
--docker-username=<username> \
--docker-password=<token> \
--namespace=kmetal-flux
Component Operations¶
Kamaji¶
# List tenant control planes
kubectl get tenantcontrolplane -A
# Status
kubectl describe tenantcontrolplane <name> -n <tenant-namespace>
# Pods belonging to a specific TCP
kubectl get pods -n kmetal-kamaji -l kamaji.clastix.io/name=<name>
# Controller logs
kubectl logs -n kmetal-kamaji -l app.kubernetes.io/name=kamaji --tail=200
Cert-manager¶
kubectl get certificates -A
kubectl describe certificate <name> -n <namespace>
# Force renewal of a specific certificate (cmctl)
cmctl renew <name> -n <namespace>
MetalLB¶
kubectl get pods -n kmetal-metallb
kubectl get ipaddresspool -n kmetal-metallb
kubectl get l2advertisement -n kmetal-metallb
kubectl get svc -A --field-selector spec.type=LoadBalancer
KubeVirt / CDI¶
kubectl get kubevirt -n system-kubevirt
kubectl get pods -n system-kubevirt
kubectl get pods -n system-cdi
kubectl get datavolumes -A
Cluster API¶
kubectl get clusters -A
kubectl get machines -A
kubectl get machinedeployments -A
kubectl scale machinedeployment <name> -n <namespace> --replicas=5
# Provider pods
kubectl get pods -n kmetal-capi-providers
kubectl logs -n kmetal-capi-providers -l control-plane=controller-manager --tail=200
Troubleshooting¶
# Anything not Running / Completed
kubectl get pods -A | grep -v Running | grep -v Completed
# Recent warning events
kubectl get events -A --field-selector type=Warning --sort-by='.lastTimestamp' | tail -20
# Resource usage
kubectl top nodes
kubectl top pods -A --sort-by=cpu | head -20
Diagnostics dump¶
helm status kmetal -n kmetal-flux > helm-status.txt
helm history kmetal -n kmetal-flux > helm-history.txt
helm get manifest kmetal -n kmetal-flux > rendered.yaml
kubectl get pods -A > all-pods.txt
kubectl get events -A --sort-by='.lastTimestamp' > events.txt
kubectl logs -n kmetal-kamaji -l app.kubernetes.io/name=kamaji --tail=500 > kamaji.log
kubectl logs -n kmetal-capi-providers -l control-plane=controller-manager --tail=500 > capi.log