in pkg/api/addons.go [990:1045]
func assignDefaultAddonVals(addon, defaults KubernetesAddon, isUpgrade bool) KubernetesAddon {
if addon.Enabled == nil {
addon.Enabled = defaults.Enabled
}
if !to.Bool(addon.Enabled) {
return KubernetesAddon{
Name: addon.Name,
Enabled: addon.Enabled,
}
}
if addon.Data != "" {
return KubernetesAddon{
Name: addon.Name,
Enabled: addon.Enabled,
Data: addon.Data,
}
}
if addon.Mode == "" {
addon.Mode = defaults.Mode
}
for i := range defaults.Containers {
c := addon.GetAddonContainersIndexByName(defaults.Containers[i].Name)
if c < 0 {
addon.Containers = append(addon.Containers, defaults.Containers[i])
} else {
if addon.Containers[c].Image == "" || isUpgrade {
addon.Containers[c].Image = defaults.Containers[i].Image
}
if addon.Containers[c].CPURequests == "" {
addon.Containers[c].CPURequests = defaults.Containers[i].CPURequests
}
if addon.Containers[c].MemoryRequests == "" {
addon.Containers[c].MemoryRequests = defaults.Containers[i].MemoryRequests
}
if addon.Containers[c].CPULimits == "" {
addon.Containers[c].CPULimits = defaults.Containers[i].CPULimits
}
if addon.Containers[c].MemoryLimits == "" {
addon.Containers[c].MemoryLimits = defaults.Containers[i].MemoryLimits
}
}
}
// For pools-specific configuration, we only take the defaults if we have zero user-provided pools configuration
if len(addon.Pools) == 0 {
addon.Pools = append(addon.Pools, defaults.Pools...)
}
for key, val := range defaults.Config {
if addon.Config == nil {
addon.Config = make(map[string]string)
}
if v, ok := addon.Config[key]; !ok || v == "" {
addon.Config[key] = val
}
}
return addon
}