in pkg/agent/utils.go [534:579]
func GetKubeletConfigFileContent(kc map[string]string, customKc *datamodel.CustomKubeletConfig) string {
if kc == nil {
return ""
}
// translate simple values.
kubeletConfig := getAKSKubeletConfiguration(kc)
// Authentication.
kubeletConfig.Authentication = datamodel.KubeletAuthentication{}
if ca := kc["--client-ca-file"]; ca != "" {
kubeletConfig.Authentication.X509 = datamodel.KubeletX509Authentication{
ClientCAFile: ca,
}
}
if aw := kc["--authentication-token-webhook"]; aw != "" {
kubeletConfig.Authentication.Webhook = datamodel.KubeletWebhookAuthentication{
Enabled: strToBool(aw),
}
}
if aa := kc["--anonymous-auth"]; aa != "" {
kubeletConfig.Authentication.Anonymous = datamodel.KubeletAnonymousAuthentication{
Enabled: strToBool(aa),
}
}
// EvictionHard.
// default: "memory.available<750Mi,nodefs.available<10%,nodefs.inodesFree<5%".
if eh, ok := kc["--eviction-hard"]; ok && eh != "" {
kubeletConfig.EvictionHard = strKeyValToMap(eh, ",", "<")
}
// feature gates.
// look like "f1=true,f2=true".
kubeletConfig.FeatureGates = strKeyValToMapBool(kc["--feature-gates"], ",", "=")
// system reserve and kube reserve.
// looks like "cpu=100m,memory=1638Mi".
kubeletConfig.SystemReserved = strKeyValToMap(kc["--system-reserved"], ",", "=")
kubeletConfig.KubeReserved = strKeyValToMap(kc["--kube-reserved"], ",", "=")
// Settings from customKubeletConfig, only take if it's set.
setCustomKubeletConfig(customKc, kubeletConfig)
configStringByte, _ := json.MarshalIndent(kubeletConfig, "", " ")
return string(configStringByte)
}