nodeRegistration:
kubeletExtraArgs:
node-labels: metal3.io/uuid={{ "{{" }} ds.meta_data.uuid {{ "}}" }}
+ cpu-manager-policy: static
+ topology-manager-policy: best-effort
+ kube-reserved: cpu=200m,memory=512Mi
name: '{{ "{{" }} ds.meta_data.name {{ "}}" }}'
preKubeadmCommands:
+{{- if .Values.preKubeadmCommands }}
+{{ toYaml .Values.preKubeadmCommands | indent 4 }}
+{{- end }}
{{- if .Values.networks }}
# Without touching up /etc/hosts, kubeadm may pick the wrong
# (i.e. provisioning network) address for the node IP
# ClusterResourceSet. However instead of apply, replace must be
# used to harden K8s.
- /usr/local/bin/harden_k8s.sh
+{{- if eq (int .Values.numWorkerMachines) 0 }}
+ # Allow scheduling Pods on the control plane when there are no
+ # workers.
+ - kubectl --kubeconfig=/etc/kubernetes/admin.conf taint nodes --all node-role.kubernetes.io/master-
+{{- end }}
# This must be done after kubeadm as the cabpk provider relies on
# files in /var/run, which won't persist after a reboot
- /usr/local/bin/set_kernel_cmdline.sh
permissions: '0777'
content: |
{{ $.Files.Get "resources/set_kernel_cmdline.sh" | indent 8 }}
+{{- if .Values.userData }}
users:
- name: {{ .Values.userData.name }}
shell: /bin/bash
- name: root
sshAuthorizedKeys:
- {{ .Values.userData.sshAuthorizedKey }}
+{{- end }}
machineTemplate:
infrastructureRef:
apiVersion: infrastructure.cluster.x-k8s.io/v1alpha5