func()

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
}