diff --git a/pkg/apis/metal/validation/controlplane.go b/pkg/apis/metal/validation/controlplane.go index 3ed1b47..98d525b 100644 --- a/pkg/apis/metal/validation/controlplane.go +++ b/pkg/apis/metal/validation/controlplane.go @@ -5,6 +5,7 @@ package validation import ( featurevalidation "github.com/gardener/gardener/pkg/utils/validation/features" + "github.com/ironcore-dev/gardener-extension-provider-metal/pkg/metal" "k8s.io/apimachinery/pkg/util/validation/field" apismetal "github.com/ironcore-dev/gardener-extension-provider-metal/pkg/apis/metal" @@ -15,7 +16,7 @@ func ValidateControlPlaneConfig(controlPlaneConfig *apismetal.ControlPlaneConfig allErrs := field.ErrorList{} if controlPlaneConfig.CloudControllerManager != nil { - allErrs = append(allErrs, featurevalidation.ValidateFeatureGates(controlPlaneConfig.CloudControllerManager.FeatureGates, version, fldPath.Child("cloudControllerManager", "featureGates"))...) + allErrs = append(allErrs, featurevalidation.ValidateFeatureGates(controlPlaneConfig.CloudControllerManager.FeatureGates, version, fldPath.Child("cloudControllerManager", metal.CloudControllerManagerFeatureGatesKeyName))...) } // TODO add validation for IPs diff --git a/pkg/controller/controlplane/valuesprovider.go b/pkg/controller/controlplane/valuesprovider.go index 9901a5b..0d27740 100644 --- a/pkg/controller/controlplane/valuesprovider.go +++ b/pkg/controller/controlplane/valuesprovider.go @@ -300,10 +300,10 @@ func getCCMChartValues( } if cpConfig.CloudControllerManager != nil { - values["featureGates"] = cpConfig.CloudControllerManager.FeatureGates + values[metal.CloudControllerManagerFeatureGatesKeyName] = cpConfig.CloudControllerManager.FeatureGates if cpConfig.CloudControllerManager.CloudControllerNetworking != nil { - values["networking"] = map[string]any{ - "configureNodeAddresses": cpConfig.CloudControllerManager.CloudControllerNetworking.ConfigureNodeAddresses, + values[metal.CloudControllerManagerNetworkingKeyName] = map[string]any{ + metal.CloudControllerManagerNodeAddressesConfigKeyName: cpConfig.CloudControllerManager.CloudControllerNetworking.ConfigureNodeAddresses, } } } diff --git a/pkg/controller/controlplane/valuesprovider_test.go b/pkg/controller/controlplane/valuesprovider_test.go index 439f847..2d34223 100644 --- a/pkg/controller/controlplane/valuesprovider_test.go +++ b/pkg/controller/controlplane/valuesprovider_test.go @@ -90,9 +90,9 @@ var _ = Describe("Valueprovider Reconcile", func() { cloudProviderConfig := map[string]any{} Expect(yaml.Unmarshal([]byte(config.Data["cloudprovider.conf"]), &cloudProviderConfig)).NotTo(HaveOccurred()) Expect(cloudProviderConfig["clusterName"]).To(Equal(cluster.Name)) - networkingConfig, ok := cloudProviderConfig["networking"].(map[string]any) + networkingConfig, ok := cloudProviderConfig[metal.CloudControllerManagerNetworkingKeyName].(map[string]any) Expect(ok).To(BeTrue()) - Expect(networkingConfig["configureNodeAddresses"]).To(BeTrue()) + Expect(networkingConfig[metal.CloudControllerManagerNodeAddressesConfigKeyName]).To(BeTrue()) }) }) @@ -212,7 +212,7 @@ var _ = Describe("Valueprovider Reconcile", func() { "secrets": map[string]any{ "server": "cloud-controller-manager-server", }, - "featureGates": map[string]bool{ + metal.CloudControllerManagerFeatureGatesKeyName: map[string]bool{ "CustomResourceValidation": true, }, "podNetwork": "10.0.0.0/16", @@ -333,11 +333,11 @@ var _ = Describe("Valueprovider Reconcile", func() { "secrets": map[string]any{ "server": "cloud-controller-manager-server", }, - "featureGates": map[string]bool{ + metal.CloudControllerManagerFeatureGatesKeyName: map[string]bool{ "CustomResourceValidation": true, }, - "networking": map[string]any{ - "configureNodeAddresses": false, + metal.CloudControllerManagerNetworkingKeyName: map[string]any{ + metal.CloudControllerManagerNodeAddressesConfigKeyName: false, }, "podNetwork": "10.0.0.0/16", "configureCloudRoutes": true, diff --git a/pkg/metal/types.go b/pkg/metal/types.go index 96db525..728e468 100644 --- a/pkg/metal/types.go +++ b/pkg/metal/types.go @@ -56,6 +56,12 @@ const ( CloudProviderConfigName = "cloud-provider-config" // CloudControllerManagerName is a constant for the name of the CloudController deployed by the worker controller. CloudControllerManagerName = "cloud-controller-manager" + // CloudControllerManagerFeatureGatesKeyName is the key name for the feature gates key in CCM configuration + CloudControllerManagerFeatureGatesKeyName = "featureGates" + // CloudControllerManagerNetworkingKeyName is the key name for the networking key in CCM configuration + CloudControllerManagerNetworkingKeyName = "networking" + // CloudControllerManagerNodeAddressesConfigKeyName is the key name for the networking key in CCM configuration + CloudControllerManagerNodeAddressesConfigKeyName = "configureNodeAddresses" // CalicoBgpName is a constant for the name of the Calico BGP deployed by the worker controller. CalicoBgpName = "calico-bgp" // MetallbName is a constant for the name of the MetalLB deployed by the worker controller.