From d1432bf1d41a910ee0738178b675c208d4753d88 Mon Sep 17 00:00:00 2001 From: "Steven E. Harris" Date: Wed, 3 Feb 2021 13:00:48 -0500 Subject: [PATCH] Establish default CloudConfiguration values --- pkg/model/components/BUILD.bazel | 1 + pkg/model/components/cloudconfiguration.go | 48 ++++++++++++++++++++ upup/pkg/fi/cloudup/populate_cluster_spec.go | 1 + 3 files changed, 50 insertions(+) create mode 100644 pkg/model/components/cloudconfiguration.go diff --git a/pkg/model/components/BUILD.bazel b/pkg/model/components/BUILD.bazel index a09f30e504..c77cefd4c0 100644 --- a/pkg/model/components/BUILD.bazel +++ b/pkg/model/components/BUILD.bazel @@ -6,6 +6,7 @@ go_library( "apiserver.go", "calico.go", "cilium.go", + "cloudconfiguration.go", "clusterautoscaler.go", "containerd.go", "context.go", diff --git a/pkg/model/components/cloudconfiguration.go b/pkg/model/components/cloudconfiguration.go new file mode 100644 index 0000000000..953ad5c1b0 --- /dev/null +++ b/pkg/model/components/cloudconfiguration.go @@ -0,0 +1,48 @@ +/* +Copyright 2021 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package components + +import ( + "k8s.io/kops/pkg/apis/kops" + "k8s.io/kops/upup/pkg/fi" + "k8s.io/kops/upup/pkg/fi/loader" +) + +// CloudConfigurationOptionsBuilder prepares settings related to the backing cloud provider. +type CloudConfigurationOptionsBuilder struct { + Context *OptionsContext +} + +var _ loader.OptionsBuilder = &CloudConfigurationOptionsBuilder{} + +func (b *CloudConfigurationOptionsBuilder) BuildOptions(o interface{}) error { + clusterSpec := o.(*kops.ClusterSpec) + c := clusterSpec.CloudConfig + if c == nil { + c = &kops.CloudConfiguration{} + clusterSpec.CloudConfig = c + } + + if c.ManageStorageClasses == nil { + c.ManageStorageClasses = fi.Bool(true) + } + + // NB: See file openstack.go for establishing default values for the CloudConfig.Openstack + // field. + + return nil +} diff --git a/upup/pkg/fi/cloudup/populate_cluster_spec.go b/upup/pkg/fi/cloudup/populate_cluster_spec.go index 86ffdb3122..4815f1b854 100644 --- a/upup/pkg/fi/cloudup/populate_cluster_spec.go +++ b/upup/pkg/fi/cloudup/populate_cluster_spec.go @@ -273,6 +273,7 @@ func (c *populateClusterSpec) run(clientset simple.Clientset) error { codeModels = append(codeModels, &components.KubeControllerManagerOptionsBuilder{OptionsContext: optionsContext}) codeModels = append(codeModels, &components.KubeSchedulerOptionsBuilder{OptionsContext: optionsContext}) codeModels = append(codeModels, &components.KubeProxyOptionsBuilder{Context: optionsContext}) + codeModels = append(codeModels, &components.CloudConfigurationOptionsBuilder{Context: optionsContext}) codeModels = append(codeModels, &components.CalicoOptionsBuilder{Context: optionsContext}) codeModels = append(codeModels, &components.CiliumOptionsBuilder{Context: optionsContext}) codeModels = append(codeModels, &components.OpenStackOptionsBulder{Context: optionsContext})