Set kubeadm properties previously set by nodeadm
dlipovetsky opened this issue · comments
After platform9/nodeadm#77, nodeadm no longer sets a number of kubeadm properties. To make sure these properties continue to be set for cctl users, they must be set by cctl; the machine actuator will apply the properties to the nodeadm config it writes to the host.
- Node has no taints:
MasterConfiguration.NodeRegistration.Taints = []corev1.Taint{} // empty slice denotes no taints
- Set feature gates on the control plane components.
- Node name should be the IP (to be made configurable in the future)
- Kubelet configuration
FailSwapOn bool
MaxPods int32
ClusterDNS string
ClusterDomain string
HostnameOverride string
KubeAPIQPS int32
KubeAPIBurst int32
EvictionHard string
FeatureGates string
CPUManagerPolicy string
KubeReserved string
- Set
Machine.Spec.Taints = []corev1.Taint{}
(This did not work--see the problem and workaround in platform9/ssh-provider#63) - Enable
ExperimentalCriticalPodAnnotation
andPodPriority
. Set feature gates on kubelet and control plane:
Cluster.ProviderSpec.ClusterConfig.KubeletConfiguration.FeatureGates
Cluster.ProviderSpec.ClusterConfig.KubeAPIServer["feature-gates"]
Cluster.ProviderSpec.ClusterConfig.KubeControllerManager["feature-gates"]
Cluster.ProviderSpec.ClusterConfig.KubeScheduler["feature-gates"]
(We do not the experimental critical pod annotation feature, as pod priority is in beta in 1.11 and enabled by default for all components except Kubelet. The control plane pods have a pod priority defined, but CoreDNS needs one defined.
- Set
Machine.Name
to the IP (no change required) - Set
Cluster.ProviderSpec.ClusterConfig.KubeletConfiguration.EvictionHard
Note that ssh-provider will derive ClusterDNS
from the Pods CIDR (Cluster.Spec.Pods.CIDRBlocks[0]
), and ClusterDomain
from Cluster.Spec.ServiceDomain
.
Note that CPUManagerPolicy
and KubeReserved
do not need to be set because they are the default values.
Note that these are already set by cctl:
Cluster.ProviderSpec.ClusterConfig.KubeletConfiguration.FailSwapOn
Cluster.ProviderSpec.ClusterConfig.KubeletConfiguration.MaxPods
Cluster.ProviderSpec.ClusterConfig.KubeletConfiguration.KubeAPIQPS
Cluster.ProviderSpec.ClusterConfig.KubeletConfiguration.KubeAPIBurst