From 5bc52c08c04764aa1b689fb53fbfb6407b82711e Mon Sep 17 00:00:00 2001 From: David Siecinski Date: Fri, 22 Nov 2019 12:37:37 +0100 Subject: [PATCH] run hack/update-bazel.sh and go fmt and BUILD.bazel file in addons --- .../cloudup/resources/addons/BUILD.bazel | 5 + upup/pkg/fi/cloudup/BUILD.bazel | 3 + upup/pkg/fi/cloudup/template_functions.go | 10 +- .../pkg/fi/cloudup/template_functions_test.go | 227 +++++++++--------- 4 files changed, 132 insertions(+), 113 deletions(-) create mode 100644 upup/models/cloudup/resources/addons/BUILD.bazel diff --git a/upup/models/cloudup/resources/addons/BUILD.bazel b/upup/models/cloudup/resources/addons/BUILD.bazel new file mode 100644 index 0000000000..12028374dc --- /dev/null +++ b/upup/models/cloudup/resources/addons/BUILD.bazel @@ -0,0 +1,5 @@ +filegroup( + name = "exported_testdata", + srcs = glob(["**"]), + visibility = ["//visibility:public"], +) diff --git a/upup/pkg/fi/cloudup/BUILD.bazel b/upup/pkg/fi/cloudup/BUILD.bazel index bf5eb18424..6fa39f60f7 100644 --- a/upup/pkg/fi/cloudup/BUILD.bazel +++ b/upup/pkg/fi/cloudup/BUILD.bazel @@ -105,6 +105,7 @@ go_test( "populateinstancegroup_test.go", "subnets_test.go", "tagbuilder_test.go", + "template_functions_test.go", "validation_test.go", ], data = [ @@ -116,6 +117,7 @@ go_test( "//pkg/apis/kops/validation:go_default_library", "//pkg/assets:go_default_library", "//pkg/client/simple/vfsclientset:go_default_library", + "//pkg/featureflag:go_default_library", "//pkg/kopscodecs:go_default_library", "//pkg/model:go_default_library", "//pkg/templates:go_default_library", @@ -127,5 +129,6 @@ go_test( "//util/pkg/vfs:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/klog:go_default_library", + "//vendor/k8s.io/kubernetes/pkg/controller/nodeipam/ipam:go_default_library", ], ) diff --git a/upup/pkg/fi/cloudup/template_functions.go b/upup/pkg/fi/cloudup/template_functions.go index 44b72a55fc..4e4fec025f 100644 --- a/upup/pkg/fi/cloudup/template_functions.go +++ b/upup/pkg/fi/cloudup/template_functions.go @@ -208,8 +208,8 @@ func (tf *TemplateFunctions) CloudControllerConfigArgv() ([]string, error) { } else { argv = append(argv, "--v=2") } - if tf.cluster.Spec.ExternalCloudControllerManager.CloudProvider !=""{ - argv = append(argv, fmt.Sprintf("--cloud-provider=%s", tf.cluster.Spec.ExternalCloudControllerManager.CloudProvider)) + if tf.cluster.Spec.ExternalCloudControllerManager.CloudProvider != "" { + argv = append(argv, fmt.Sprintf("--cloud-provider=%s", tf.cluster.Spec.ExternalCloudControllerManager.CloudProvider)) } else if tf.cluster.Spec.CloudProvider != "" { argv = append(argv, fmt.Sprintf("--cloud-provider=%s", tf.cluster.Spec.CloudProvider)) } else { @@ -227,13 +227,13 @@ func (tf *TemplateFunctions) CloudControllerConfigArgv() ([]string, error) { if tf.cluster.Spec.ExternalCloudControllerManager.ConfigureCloudRoutes != nil { argv = append(argv, fmt.Sprintf("--configure-cloud-routes=%t", *tf.cluster.Spec.ExternalCloudControllerManager.ConfigureCloudRoutes)) } - if tf.cluster.Spec.ExternalCloudControllerManager.CIDRAllocatorType != nil && *tf.cluster.Spec.ExternalCloudControllerManager.CIDRAllocatorType != ""{ + if tf.cluster.Spec.ExternalCloudControllerManager.CIDRAllocatorType != nil && *tf.cluster.Spec.ExternalCloudControllerManager.CIDRAllocatorType != "" { argv = append(argv, fmt.Sprintf("--cidr-allocator-type=%s", *tf.cluster.Spec.ExternalCloudControllerManager.CIDRAllocatorType)) } if tf.cluster.Spec.ExternalCloudControllerManager.UseServiceAccountCredentials != nil { - argv = append(argv, fmt.Sprintf("--use-service-account-credentials=%t", *tf.cluster.Spec.ExternalCloudControllerManager.UseServiceAccountCredentials )) + argv = append(argv, fmt.Sprintf("--use-service-account-credentials=%t", *tf.cluster.Spec.ExternalCloudControllerManager.UseServiceAccountCredentials)) } else { - argv = append(argv, fmt.Sprintf("--use-service-account-credentials=%t", true )) + argv = append(argv, fmt.Sprintf("--use-service-account-credentials=%t", true)) } return argv, nil diff --git a/upup/pkg/fi/cloudup/template_functions_test.go b/upup/pkg/fi/cloudup/template_functions_test.go index 1461276836..a586a826c3 100644 --- a/upup/pkg/fi/cloudup/template_functions_test.go +++ b/upup/pkg/fi/cloudup/template_functions_test.go @@ -1,33 +1,48 @@ +/* +Copyright 2019 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 cloudup import ( - "k8s.io/kops/pkg/featureflag" - "path/filepath" - "io/ioutil" "bytes" - "text/template" - "k8s.io/kops/pkg/apis/kops" - "reflect" - "testing" "fmt" - "strings" + "io/ioutil" + "k8s.io/kops/pkg/apis/kops" + "k8s.io/kops/pkg/featureflag" "k8s.io/kops/upup/pkg/fi" "k8s.io/kubernetes/pkg/controller/nodeipam/ipam" + "path/filepath" + "reflect" + "strings" + "testing" + "text/template" ) func Test_TemplateFunctions_CloudControllerConfigArgv(t *testing.T) { tests := []struct { - desc string - cluster *kops.Cluster - expectedArgv []string + desc string + cluster *kops.Cluster + expectedArgv []string expectedError error }{ { desc: "Default Configuration", cluster: &kops.Cluster{Spec: kops.ClusterSpec{ - CloudProvider: string(kops.CloudProviderOpenstack), + CloudProvider: string(kops.CloudProviderOpenstack), ExternalCloudControllerManager: &kops.CloudControllerManagerConfig{}, - }}, expectedArgv: []string{ "--v=2", @@ -57,7 +72,7 @@ func Test_TemplateFunctions_CloudControllerConfigArgv(t *testing.T) { Spec: kops.ClusterSpec{ ExternalCloudControllerManager: &kops.CloudControllerManagerConfig{ CloudProvider: string(kops.CloudProviderOpenstack), - LogLevel: 3, + LogLevel: 3, }, }, }, @@ -85,8 +100,6 @@ func Test_TemplateFunctions_CloudControllerConfigArgv(t *testing.T) { ExternalCloudControllerManager: &kops.CloudControllerManagerConfig{ ClusterName: "k8s", }, - - }}, expectedArgv: []string{ "--v=2", @@ -98,7 +111,7 @@ func Test_TemplateFunctions_CloudControllerConfigArgv(t *testing.T) { { desc: "Default Configuration", cluster: &kops.Cluster{Spec: kops.ClusterSpec{ - CloudProvider: string(kops.CloudProviderOpenstack), + CloudProvider: string(kops.CloudProviderOpenstack), ExternalCloudControllerManager: &kops.CloudControllerManagerConfig{ Master: "127.0.0.1", }, @@ -113,7 +126,7 @@ func Test_TemplateFunctions_CloudControllerConfigArgv(t *testing.T) { { desc: "Cluster-cidr Configuration", cluster: &kops.Cluster{Spec: kops.ClusterSpec{ - CloudProvider: string(kops.CloudProviderOpenstack), + CloudProvider: string(kops.CloudProviderOpenstack), ExternalCloudControllerManager: &kops.CloudControllerManagerConfig{ ClusterCIDR: "10.0.0.0/24", }, @@ -128,7 +141,7 @@ func Test_TemplateFunctions_CloudControllerConfigArgv(t *testing.T) { { desc: "AllocateNodeCIDRs Configuration", cluster: &kops.Cluster{Spec: kops.ClusterSpec{ - CloudProvider: string(kops.CloudProviderOpenstack), + CloudProvider: string(kops.CloudProviderOpenstack), ExternalCloudControllerManager: &kops.CloudControllerManagerConfig{ AllocateNodeCIDRs: fi.Bool(true), }, @@ -138,53 +151,52 @@ func Test_TemplateFunctions_CloudControllerConfigArgv(t *testing.T) { "--cloud-provider=openstack", "--allocate-node-cidrs=true", "--use-service-account-credentials=true", - }, }, { - desc: "ConfigureCloudRoutes Configuration", - cluster: &kops.Cluster{Spec: kops.ClusterSpec{ - CloudProvider: string(kops.CloudProviderOpenstack), - ExternalCloudControllerManager: &kops.CloudControllerManagerConfig{ - ConfigureCloudRoutes: fi.Bool(true), - }, - }}, - expectedArgv: []string{ - "--v=2", - "--cloud-provider=openstack", - "--configure-cloud-routes=true", - "--use-service-account-credentials=true", - }, - }, - { - desc: "CIDRAllocatorType Configuration", - cluster: &kops.Cluster{Spec: kops.ClusterSpec{ - CloudProvider: string(kops.CloudProviderOpenstack), - ExternalCloudControllerManager: &kops.CloudControllerManagerConfig{ - CIDRAllocatorType: fi.String(string(ipam.RangeAllocatorType)), - }, - }}, - expectedArgv: []string{ - "--v=2", - "--cloud-provider=openstack", - "--cidr-allocator-type=RangeAllocator", - "--use-service-account-credentials=true", - }, - }, - { - desc: "CIDRAllocatorType Configuration", - cluster: &kops.Cluster{Spec: kops.ClusterSpec{ - CloudProvider: string(kops.CloudProviderOpenstack), - ExternalCloudControllerManager: &kops.CloudControllerManagerConfig{ - UseServiceAccountCredentials: fi.Bool(false), - }, - }}, - expectedArgv: []string{ - "--v=2", - "--cloud-provider=openstack", - "--use-service-account-credentials=false", - }, - }, + desc: "ConfigureCloudRoutes Configuration", + cluster: &kops.Cluster{Spec: kops.ClusterSpec{ + CloudProvider: string(kops.CloudProviderOpenstack), + ExternalCloudControllerManager: &kops.CloudControllerManagerConfig{ + ConfigureCloudRoutes: fi.Bool(true), + }, + }}, + expectedArgv: []string{ + "--v=2", + "--cloud-provider=openstack", + "--configure-cloud-routes=true", + "--use-service-account-credentials=true", + }, + }, + { + desc: "CIDRAllocatorType Configuration", + cluster: &kops.Cluster{Spec: kops.ClusterSpec{ + CloudProvider: string(kops.CloudProviderOpenstack), + ExternalCloudControllerManager: &kops.CloudControllerManagerConfig{ + CIDRAllocatorType: fi.String(string(ipam.RangeAllocatorType)), + }, + }}, + expectedArgv: []string{ + "--v=2", + "--cloud-provider=openstack", + "--cidr-allocator-type=RangeAllocator", + "--use-service-account-credentials=true", + }, + }, + { + desc: "CIDRAllocatorType Configuration", + cluster: &kops.Cluster{Spec: kops.ClusterSpec{ + CloudProvider: string(kops.CloudProviderOpenstack), + ExternalCloudControllerManager: &kops.CloudControllerManagerConfig{ + UseServiceAccountCredentials: fi.Bool(false), + }, + }}, + expectedArgv: []string{ + "--v=2", + "--cloud-provider=openstack", + "--use-service-account-credentials=false", + }, + }, } for _, testCase := range tests { t.Run(testCase.desc, func(t *testing.T) { @@ -202,41 +214,40 @@ func Test_TemplateFunctions_CloudControllerConfigArgv(t *testing.T) { } } - -func Test_executeTemplate(t *testing.T ) { - tests := []struct{ - desc string - cluster *kops.Cluster - templateFilename string - expectedManifestPath string +func Test_executeTemplate(t *testing.T) { + tests := []struct { + desc string + cluster *kops.Cluster + templateFilename string + expectedManifestPath string }{ { desc: "test cloud controller template", - cluster: &kops.Cluster{Spec: kops.ClusterSpec{ + cluster: &kops.Cluster{Spec: kops.ClusterSpec{ CloudProvider: string(kops.CloudProviderOpenstack), ExternalCloudControllerManager: &kops.CloudControllerManagerConfig{ ClusterName: "k8s", - Image: "docker.io/k8scloudprovider/openstack-cloud-controller-manager:1.13", - }, - }, - }, - templateFilename: "../../../models/cloudup/resources/addons/openstack.addons.k8s.io/k8s-1.13.yaml.template", - expectedManifestPath: "./tests/manifests/k8s-1.13.yaml", -}, -{ - desc: "test cloud controller template", - cluster: &kops.Cluster{Spec: kops.ClusterSpec{ - CloudProvider: string(kops.CloudProviderOpenstack), - ExternalCloudControllerManager: &kops.CloudControllerManagerConfig{ - ClusterName: "k8s", - Image: "docker.io/k8scloudprovider/openstack-cloud-controller-manager:1.13", + Image: "docker.io/k8scloudprovider/openstack-cloud-controller-manager:1.13", }, }, + }, + templateFilename: "../../../models/cloudup/resources/addons/openstack.addons.k8s.io/k8s-1.13.yaml.template", + expectedManifestPath: "./tests/manifests/k8s-1.13.yaml", }, - templateFilename: "../../../models/cloudup/resources/addons/openstack.addons.k8s.io/k8s-1.11.yaml.template", - expectedManifestPath: "./tests/manifests/k8s-1.11.yaml", + { + desc: "test cloud controller template", + cluster: &kops.Cluster{Spec: kops.ClusterSpec{ + CloudProvider: string(kops.CloudProviderOpenstack), + ExternalCloudControllerManager: &kops.CloudControllerManagerConfig{ + ClusterName: "k8s", + Image: "docker.io/k8scloudprovider/openstack-cloud-controller-manager:1.13", + }, + }, + }, + templateFilename: "../../../models/cloudup/resources/addons/openstack.addons.k8s.io/k8s-1.11.yaml.template", + expectedManifestPath: "./tests/manifests/k8s-1.11.yaml", }, -} + } for _, testCase := range tests { t.Run(testCase.desc, func(t *testing.T) { @@ -246,7 +257,7 @@ func Test_executeTemplate(t *testing.T ) { t.Fatalf("error getting path to template: %v", filePathError) } - tpl := template.New(filepath.Base(templateFileAbsolutePath)) + tpl := template.New(filepath.Base(templateFileAbsolutePath)) funcMap := make(template.FuncMap) templateFunctions := TemplateFunctions{cluster: testCase.cluster} @@ -254,25 +265,25 @@ func Test_executeTemplate(t *testing.T ) { tpl.Funcs(funcMap) - tpl.Option("missingkey=zero") - _, err := tpl.ParseFiles(templateFileAbsolutePath) - if err != nil { - t.Fatalf("error parsing template %q: %v", "template", err) - } - var buffer bytes.Buffer - err = tpl.Execute(&buffer, testCase.cluster.Spec) - if err != nil { - t.Fatalf("error executing template %q: %v", "template", err) - } - actualManifest := buffer.Bytes() - expectedFileAbsolutePath, _ := filepath.Abs(testCase.expectedManifestPath) - expectedManifest, _ := ioutil.ReadFile( expectedFileAbsolutePath ) + tpl.Option("missingkey=zero") + _, err := tpl.ParseFiles(templateFileAbsolutePath) + if err != nil { + t.Fatalf("error parsing template %q: %v", "template", err) + } + var buffer bytes.Buffer + err = tpl.Execute(&buffer, testCase.cluster.Spec) + if err != nil { + t.Fatalf("error executing template %q: %v", "template", err) + } + actualManifest := buffer.Bytes() + expectedFileAbsolutePath, _ := filepath.Abs(testCase.expectedManifestPath) + expectedManifest, _ := ioutil.ReadFile(expectedFileAbsolutePath) - actualString := strings.TrimSpace(string(actualManifest)) - expectedString := strings.TrimSpace(string(expectedManifest)) - if !reflect.DeepEqual(actualString,expectedString,) { - t.Fatalf("Manifests differs: %+v instead of %+v", actualString, expectedString ) - } - }) + actualString := strings.TrimSpace(string(actualManifest)) + expectedString := strings.TrimSpace(string(expectedManifest)) + if !reflect.DeepEqual(actualString, expectedString) { + t.Fatalf("Manifests differs: %+v instead of %+v", actualString, expectedString) + } + }) } }