func validateAndSetWindowsNodeBootstrappingConfiguration()

in pkg/agent/baker.go [332:356]


func validateAndSetWindowsNodeBootstrappingConfiguration(config *datamodel.NodeBootstrappingConfiguration) {
	if IsTLSBootstrappingEnabledWithHardCodedToken(config.KubeletClientTLSBootstrapToken) {
		// backfill proper flags for Windows agent node TLS bootstrapping
		if config.KubeletConfig == nil {
			config.KubeletConfig = make(map[string]string)
		}
		config.KubeletConfig["--bootstrap-kubeconfig"] = "c:\\k\\bootstrap-config"
		config.KubeletConfig["--cert-dir"] = "c:\\k\\pki"
	}

	if config.KubeletConfig != nil {
		kubeletFlags := config.KubeletConfig
		delete(kubeletFlags, "--dynamic-config-dir")

		if IsKubernetesVersionGe(config.ContainerService.Properties.OrchestratorProfile.OrchestratorVersion, "1.24.0") {
			kubeletFlags["--feature-gates"] = removeFeatureGateString(kubeletFlags["--feature-gates"], "DynamicKubeletConfig")
		} else if IsKubernetesVersionGe(config.ContainerService.Properties.OrchestratorProfile.OrchestratorVersion, "1.11.0") {
			kubeletFlags["--feature-gates"] = addFeatureGateString(kubeletFlags["--feature-gates"], "DynamicKubeletConfig", false)
		}

		if IsKubeletServingCertificateRotationEnabled(config) {
			kubeletFlags["--feature-gates"] = addFeatureGateString(kubeletFlags["--feature-gates"], "RotateKubeletServerCertificate", true)
		}
	}
}