in pkg/condition/conditions.go [123:155]
func (c *condition) IsWindowsPrefixDelegationEnabled() bool {
if c.IsOldVPCControllerDeploymentPresent() {
return false
}
// If the feature flag is OFF, Windows PD cannot be enabled via config map
if !c.windowsPDFeatureFlag {
return false
}
// Return false if configmap not present/any errors
vpcCniConfigMap, err := c.K8sAPI.GetConfigMap(config.VpcCniConfigMapName, config.KubeSystemNamespace)
if err == nil && vpcCniConfigMap.Data != nil {
if ipamVal, ok := vpcCniConfigMap.Data[config.EnableWindowsIPAMKey]; ok {
// Check if Windows IPAM is enabled
enableWinIpamVal, err := strconv.ParseBool(ipamVal)
if err == nil && enableWinIpamVal {
if pdVal, ok := vpcCniConfigMap.Data[config.EnableWindowsPrefixDelegationKey]; ok {
enableWinPDVal, err := strconv.ParseBool(pdVal)
// Check if Windows PD is enabled
if err == nil && enableWinPDVal {
conditionWindowsPrefixDelegationEnabled.Set(1)
return true
}
}
}
}
}
conditionWindowsPrefixDelegationEnabled.Set(0)
return false
}