Because Kamaji architecture does not include physical Control Plane nodes, you cannot run pods directly on them. To ensure the Nutanix Cloud Controller Manager (CCM) runs correctly, you must customize its installation to remove the nodeSelector, allowing it to run on worker nodes instead.
Using HelmChartProxy
Set nodeSelector: '' in the valuesTemplate of your HelmChartProxy resource:
apiVersion: addons.cluster.x-k8s.io/v1alpha1
kind: HelmChartProxy
metadata:
name: nutanix-cloud-provider
spec:
clusterSelector:
matchLabels:
cluster.x-k8s.io/cluster-name: capi-quickstart
releaseName: nutanix-cloud-provider
repoURL: https://nutanix.github.io/helm/
chartName: nutanix-cloud-provider
namespace: kube-system
valuesTemplate: |
prismCentralEndPoint: XXX
username: XXX
password: 'XXX'
nodeSelector: ''
Using Helm directly
If installing manually via Helm, use the --set flag to clear the nodeSelector:
helm install nutanix-ccm nutanix/nutanix-cloud-provider -n kube-system --set prismCentralEndPoint=xxx,username=xxx,password='xxx',nodeSelector=''
helm install nutanix-ccm nutanix/nutanix-cloud-provider -n kube-system --set prismCentralEndPoint=xxx,username=xxx,password='xxx',nodeSelector=''