From 2f3bad686a5e5a7830eb6a23d5dc18b9d5b1e988 Mon Sep 17 00:00:00 2001 From: Ciprian Hacman Date: Thu, 24 Jun 2021 09:32:57 +0300 Subject: [PATCH] Remove version from addons --- channels/pkg/api/BUILD.bazel | 13 +- channels/pkg/api/channel.go | 15 -- channels/pkg/api/channel_test.go | 50 ----- channels/pkg/channels/BUILD.bazel | 3 - channels/pkg/channels/addon.go | 1 - channels/pkg/channels/addons.go | 14 -- channels/pkg/channels/addons_test.go | 191 +----------------- channels/pkg/channels/channel_version.go | 53 +---- channels/pkg/cmd/apply_channel.go | 16 +- channels/pkg/cmd/get_addons.go | 9 +- pkg/model/components/addonmanifests/remap.go | 1 - pkg/wellknownoperators/operators.go | 1 - .../bootstrapchannelbuilder.go | 94 +-------- .../cloudup/bootstrapchannelbuilder/cilium.go | 6 - 14 files changed, 27 insertions(+), 440 deletions(-) delete mode 100644 channels/pkg/api/channel_test.go diff --git a/channels/pkg/api/BUILD.bazel b/channels/pkg/api/BUILD.bazel index 377cfbadae..46781a68ed 100644 --- a/channels/pkg/api/BUILD.bazel +++ b/channels/pkg/api/BUILD.bazel @@ -1,4 +1,4 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") +load("@io_bazel_rules_go//go:def.bzl", "go_library") go_library( name = "go_default_library", @@ -7,17 +7,6 @@ go_library( visibility = ["//visibility:public"], deps = [ "//pkg/values:go_default_library", - "//vendor/github.com/blang/semver/v4:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - ], -) - -go_test( - name = "go_default_test", - srcs = ["channel_test.go"], - embed = [":go_default_library"], - deps = [ - "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", ], ) diff --git a/channels/pkg/api/channel.go b/channels/pkg/api/channel.go index 189eb02732..cc0d897cf1 100644 --- a/channels/pkg/api/channel.go +++ b/channels/pkg/api/channel.go @@ -19,7 +19,6 @@ package api import ( "fmt" - "github.com/blang/semver/v4" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/kops/pkg/values" ) @@ -44,9 +43,6 @@ type AddonSpec struct { // Selector is a label query over pods that should match the Replicas count. Selector map[string]string `json:"selector"` - // Version is a semver version - Version *string `json:"version,omitempty"` - // Manifest is the URL to the manifest that should be applied Manifest *string `json:"manifest,omitempty"` @@ -78,17 +74,6 @@ func (a *Addons) Verify() error { if addon == nil { continue } - if addon.Version != nil && *addon.Version != "" { - name := a.ObjectMeta.Name - if addon.Name != nil { - name = *addon.Name - } - - _, err := semver.ParseTolerant(*addon.Version) - if err != nil { - return fmt.Errorf("addon %q has unparseable version %q: %v", name, *addon.Version, err) - } - } if addon.KubernetesVersion != "" { return fmt.Errorf("bootstrap addon %q has a KubernetesVersion", values.StringValue(addon.Name)) } diff --git a/channels/pkg/api/channel_test.go b/channels/pkg/api/channel_test.go deleted file mode 100644 index 15f8a83d53..0000000000 --- a/channels/pkg/api/channel_test.go +++ /dev/null @@ -1,50 +0,0 @@ -/* -Copyright 2020 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 api - -import ( - "testing" - - "github.com/stretchr/testify/assert" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func Test_UnparseableVersion(t *testing.T) { - addons := Addons{ - TypeMeta: v1.TypeMeta{ - Kind: "Addons", - }, - ObjectMeta: v1.ObjectMeta{ - Name: "test", - }, - Spec: AddonsSpec{ - Addons: []*AddonSpec{ - { - Name: s("testaddon"), - Version: s("1.0-kops"), - }, - }, - }, - } - - err := addons.Verify() - assert.EqualError(t, err, "addon \"testaddon\" has unparseable version \"1.0-kops\": Short version cannot contain PreRelease/Build meta data", "detected invalid version") -} - -func s(v string) *string { - return &v -} diff --git a/channels/pkg/channels/BUILD.bazel b/channels/pkg/channels/BUILD.bazel index aaf51fd1f4..e03041dd70 100644 --- a/channels/pkg/channels/BUILD.bazel +++ b/channels/pkg/channels/BUILD.bazel @@ -38,12 +38,9 @@ go_test( deps = [ "//channels/pkg/api:go_default_library", "//upup/pkg/fi:go_default_library", - "//upup/pkg/fi/utils:go_default_library", "//vendor/github.com/blang/semver/v4:go_default_library", "//vendor/github.com/jetstack/cert-manager/pkg/apis/certmanager/v1:go_default_library", "//vendor/github.com/jetstack/cert-manager/pkg/client/clientset/versioned/fake:go_default_library", - "//vendor/github.com/stretchr/testify/assert:go_default_library", - "//vendor/github.com/stretchr/testify/require:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/channels/pkg/channels/addon.go b/channels/pkg/channels/addon.go index 4509953d8c..732817178d 100644 --- a/channels/pkg/channels/addon.go +++ b/channels/pkg/channels/addon.go @@ -82,7 +82,6 @@ func (m *AddonMenu) MergeAddons(o *AddonMenu) { func (a *Addon) ChannelVersion() *ChannelVersion { return &ChannelVersion{ Channel: &a.ChannelName, - Version: a.Spec.Version, Id: a.Spec.Id, ManifestHash: a.Spec.ManifestHash, } diff --git a/channels/pkg/channels/addons.go b/channels/pkg/channels/addons.go index 16a1fff8c7..e48ceaa41b 100644 --- a/channels/pkg/channels/addons.go +++ b/channels/pkg/channels/addons.go @@ -57,20 +57,6 @@ func ParseAddons(name string, location *url.URL, data []byte) (*Addons, error) { } } - for _, addon := range apiObject.Spec.Addons { - if addon != nil && addon.Version != nil && *addon.Version != "" { - name := apiObject.ObjectMeta.Name - if addon.Name != nil { - name = *addon.Name - } - - _, err := semver.ParseTolerant(*addon.Version) - if err != nil { - return nil, fmt.Errorf("addon %q has unparseable version %q: %v", name, *addon.Version, err) - } - } - } - return &Addons{ChannelName: name, ChannelLocation: *location, APIObject: apiObject}, nil } diff --git a/channels/pkg/channels/addons_test.go b/channels/pkg/channels/addons_test.go index d7b5744ec6..0cd03ba49b 100644 --- a/channels/pkg/channels/addons_test.go +++ b/channels/pkg/channels/addons_test.go @@ -18,23 +18,16 @@ package channels import ( "context" - "fmt" - "net/url" - "reflect" "testing" "github.com/blang/semver/v4" fakecertmanager "github.com/jetstack/cert-manager/pkg/client/clientset/versioned/fake" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" fakekubernetes "k8s.io/client-go/kubernetes/fake" "k8s.io/kops/channels/pkg/api" - "k8s.io/kops/upup/pkg/fi" - "k8s.io/kops/upup/pkg/fi/utils" ) func Test_Filtering(t *testing.T) { @@ -97,78 +90,20 @@ func Test_Replacement(t *testing.T) { New *ChannelVersion Replaces bool }{ - // With no id, update if and only if newer semver - { - Old: &ChannelVersion{Version: s("1.0.0"), Id: "", ManifestHash: ""}, - New: &ChannelVersion{Version: s("1.0.0"), Id: "", ManifestHash: ""}, - Replaces: false, - }, - { - Old: &ChannelVersion{Version: s("1.0.0"), Id: "", ManifestHash: ""}, - New: &ChannelVersion{Version: s("1.0.1"), Id: "", ManifestHash: ""}, - Replaces: true, - }, - { - Old: &ChannelVersion{Version: s("1.0.1"), Id: "", ManifestHash: ""}, - New: &ChannelVersion{Version: s("1.0.0"), Id: "", ManifestHash: ""}, - Replaces: false, - }, - { - Old: &ChannelVersion{Version: s("1.1.0"), Id: "", ManifestHash: ""}, - New: &ChannelVersion{Version: s("1.1.1"), Id: "", ManifestHash: ""}, - Replaces: true, - }, - { - Old: &ChannelVersion{Version: s("1.1.1"), Id: "", ManifestHash: ""}, - New: &ChannelVersion{Version: s("1.1.0"), Id: "", ManifestHash: ""}, - Replaces: false, - }, - - // With id, update if different id and same version, otherwise follow semver - { - Old: &ChannelVersion{Version: s("1.0.0"), Id: "a", ManifestHash: ""}, - New: &ChannelVersion{Version: s("1.0.0"), Id: "a", ManifestHash: ""}, - Replaces: false, - }, - { - Old: &ChannelVersion{Version: s("1.0.0"), Id: "a", ManifestHash: ""}, - New: &ChannelVersion{Version: s("1.0.0"), Id: "b", ManifestHash: ""}, - Replaces: true, - }, - { - Old: &ChannelVersion{Version: s("1.0.0"), Id: "b", ManifestHash: ""}, - New: &ChannelVersion{Version: s("1.0.0"), Id: "a", ManifestHash: ""}, - Replaces: true, - }, - { - Old: &ChannelVersion{Version: s("1.0.0"), Id: "a", ManifestHash: ""}, - New: &ChannelVersion{Version: s("1.0.1"), Id: "a", ManifestHash: ""}, - Replaces: true, - }, - { - Old: &ChannelVersion{Version: s("1.0.0"), Id: "a", ManifestHash: ""}, - New: &ChannelVersion{Version: s("1.0.1"), Id: "a", ManifestHash: ""}, - Replaces: true, - }, - { - Old: &ChannelVersion{Version: s("1.0.0"), Id: "a", ManifestHash: ""}, - New: &ChannelVersion{Version: s("1.0.1"), Id: "a", ManifestHash: ""}, - Replaces: true, - }, //Test ManifestHash Changes { - Old: &ChannelVersion{Version: s("1.0.0"), Id: "a", ManifestHash: "3544de6578b2b582c0323b15b7b05a28c60b9430"}, - New: &ChannelVersion{Version: s("1.0.0"), Id: "a", ManifestHash: "3544de6578b2b582c0323b15b7b05a28c60b9430"}, + Old: &ChannelVersion{Id: "a", ManifestHash: "3544de6578b2b582c0323b15b7b05a28c60b9430"}, + New: &ChannelVersion{Id: "a", ManifestHash: "3544de6578b2b582c0323b15b7b05a28c60b9430"}, Replaces: false, }, { - Old: &ChannelVersion{Version: s("1.0.0"), Id: "a", ManifestHash: ""}, - New: &ChannelVersion{Version: s("1.0.0"), Id: "a", ManifestHash: "3544de6578b2b582c0323b15b7b05a28c60b9430"}, + Old: &ChannelVersion{Id: "a", ManifestHash: ""}, + New: &ChannelVersion{Id: "a", ManifestHash: "3544de6578b2b582c0323b15b7b05a28c60b9430"}, Replaces: true, }, { - Old: &ChannelVersion{Version: s("1.0.0"), Id: "a", ManifestHash: "3544de6578b2b582c0323b15b7b05a28c60b9430"}, - New: &ChannelVersion{Version: s("1.0.0"), Id: "a", ManifestHash: "ea9e79bf29adda450446487d65a8fc6b3fdf8c2b"}, + Old: &ChannelVersion{Id: "a", ManifestHash: "3544de6578b2b582c0323b15b7b05a28c60b9430"}, + New: &ChannelVersion{Id: "a", ManifestHash: "ea9e79bf29adda450446487d65a8fc6b3fdf8c2b"}, Replaces: true, }, } @@ -180,58 +115,6 @@ func Test_Replacement(t *testing.T) { } } -func Test_UnparseableVersion(t *testing.T) { - addons := api.Addons{ - TypeMeta: metav1.TypeMeta{ - Kind: "Addons", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "test", - }, - Spec: api.AddonsSpec{ - Addons: []*api.AddonSpec{ - { - Name: s("testaddon"), - Version: s("1.0-kops"), - }, - }, - }, - } - bytes, err := utils.YamlMarshal(addons) - require.NoError(t, err, "marshalling test addons struct") - location, err := url.Parse("file://testfile") - require.NoError(t, err, "parsing file url") - - _, err = ParseAddons("test", location, bytes) - assert.EqualError(t, err, "addon \"testaddon\" has unparseable version \"1.0-kops\": Short version cannot contain PreRelease/Build meta data", "detected invalid version") -} - -func Test_MergeAddons(t *testing.T) { - merges := []struct { - LeftSide *AddonMenu - RightSide *AddonMenu - ExpectedAfterMerge *AddonMenu - }{ - { - LeftSide: addonMenu(addon(t, "a", "1.0.0", ">=1.18.0", "k8s-1.18")), - RightSide: addonMenu(addon(t, "a", "1.0.1", ">=1.18.0", "k8s-1.18")), - ExpectedAfterMerge: addonMenu(addon(t, "a", "1.0.1", ">=1.18.0", "k8s-1.18")), - }, - { - LeftSide: addonMenu(addon(t, "a", "1.0.1", ">=1.18.0", "k8s-1.18")), - RightSide: addonMenu(addon(t, "a", "1.0.0", ">=1.18.0", "k8s-1.18")), - ExpectedAfterMerge: addonMenu(addon(t, "a", "1.0.1", ">=1.18.0", "k8s-1.18")), - }, - } - - for _, m := range merges { - m.LeftSide.MergeAddons(m.RightSide) - if !reflect.DeepEqual(m.LeftSide, m.ExpectedAfterMerge) { - t.Errorf("Unexpected AddonMenu merge result,\nMerged:\n%s\nExpected:\n%s\n", addonMenuString(m.LeftSide), addonMenuString(m.ExpectedAfterMerge)) - } - } -} - func Test_GetRequiredUpdates(t *testing.T) { ctx := context.Background() kubeSystem := &corev1.Namespace{ @@ -274,7 +157,6 @@ func Test_NeedsRollingUpdate(t *testing.T) { Spec: &api.AddonSpec{ Name: fi.String("test"), ManifestHash: "originalHash", - Version: fi.String("1"), NeedsRollingUpdate: "all", }, }, @@ -284,20 +166,6 @@ func Test_NeedsRollingUpdate(t *testing.T) { Name: "test", Spec: &api.AddonSpec{ Name: fi.String("test"), - ManifestHash: "originalHash", - Version: fi.String("2"), - NeedsRollingUpdate: "all", - }, - }, - updateRequired: true, - expectedNodeUpdates: 2, - }, - { - newAddon: &Addon{ - Name: "test", - Spec: &api.AddonSpec{ - Name: fi.String("test"), - Version: fi.String("1"), ManifestHash: "newHash", NeedsRollingUpdate: "all", }, @@ -310,7 +178,6 @@ func Test_NeedsRollingUpdate(t *testing.T) { Name: "test", Spec: &api.AddonSpec{ Name: fi.String("test"), - Version: fi.String("1"), ManifestHash: "newHash", NeedsRollingUpdate: "worker", }, @@ -323,7 +190,6 @@ func Test_NeedsRollingUpdate(t *testing.T) { Name: "test", Spec: &api.AddonSpec{ Name: fi.String("test"), - Version: fi.String("1"), ManifestHash: "newHash", NeedsRollingUpdate: "control-plane", }, @@ -336,13 +202,12 @@ func Test_NeedsRollingUpdate(t *testing.T) { Name: "test", Spec: &api.AddonSpec{ Name: fi.String("test"), - Version: fi.String("1"), ManifestHash: "newHash", NeedsRollingUpdate: "all", }, }, originalAnnotations: map[string]string{ - "addons.k8s.io/placeholder": "{\"version\":\"1\",\"manifestHash\":\"originalHash\"}", + "addons.k8s.io/placeholder": "{\"manifestHash\":\"originalHash\"}", }, installRequired: true, expectedNodeUpdates: 0, @@ -353,7 +218,7 @@ func Test_NeedsRollingUpdate(t *testing.T) { ctx := context.Background() annotations := map[string]string{ - "addons.k8s.io/test": "{\"version\":\"1\",\"manifestHash\":\"originalHash\"}", + "addons.k8s.io/test": "{\"manifestHash\":\"originalHash\"}", } if len(g.originalAnnotations) > 0 { annotations = g.originalAnnotations @@ -477,43 +342,3 @@ func Test_InstallPKI(t *testing.T) { } } - -func s(v string) *string { - return &v -} - -func addon(t *testing.T, name, version, kubernetesVersion, Id string) *Addon { - location, err := url.Parse("file://x/y/z") - require.NoError(t, err, "parsing file url") - return &Addon{ - Name: name, - ChannelName: "test", - ChannelLocation: *location, - Spec: &api.AddonSpec{ - Name: &name, - Version: &version, - KubernetesVersion: kubernetesVersion, - Id: Id, - }, - } -} - -func addonMenu(addons ...*Addon) *AddonMenu { - addonMenu := NewAddonMenu() - for _, addon := range addons { - addonMenu.Addons[addon.Name] = addon - } - return addonMenu -} - -func addonString(addon *Addon) string { - return fmt.Sprintf(" Addon{Name: %s, Version: %s, KubernetesVersion: %s, Id: %s},\n", *addon.Spec.Name, *addon.Spec.Version, addon.Spec.KubernetesVersion, addon.Spec.Id) -} - -func addonMenuString(addonMenu *AddonMenu) string { - addonMenuString := "AddonMenu{\n" - for _, addon := range addonMenu.Addons { - addonMenuString += addonString(addon) - } - return addonMenuString + "}\n" -} diff --git a/channels/pkg/channels/channel_version.go b/channels/pkg/channels/channel_version.go index d2f682b203..3e4fb33444 100644 --- a/channels/pkg/channels/channel_version.go +++ b/channels/pkg/channels/channel_version.go @@ -22,7 +22,6 @@ import ( "fmt" "strings" - "github.com/blang/semver/v4" certmanager "github.com/jetstack/cert-manager/pkg/client/clientset/versioned" v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/errors" @@ -40,7 +39,6 @@ type Channel struct { } type ChannelVersion struct { - Version *string `json:"version,omitempty"` Channel *string `json:"channel,omitempty"` Id string `json:"id,omitempty"` ManifestHash string `json:"manifestHash,omitempty"` @@ -54,7 +52,7 @@ func stringValue(s *string) string { } func (c *ChannelVersion) String() string { - s := "Version=" + stringValue(c.Version) + " Channel=" + stringValue(c.Channel) + s := "Channel=" + stringValue(c.Channel) if c.Id != "" { s += " Id=" + c.Id } @@ -106,47 +104,16 @@ func (c *Channel) AnnotationName() string { func (c *ChannelVersion) replaces(existing *ChannelVersion) bool { klog.V(4).Infof("Checking existing channel: %v compared to new channel: %v", existing, c) - if existing.Version != nil { - if c.Version == nil { - klog.V(4).Infof("New Version info missing") - return false - } - cVersion, err := semver.ParseTolerant(*c.Version) - if err != nil { - klog.Warningf("error parsing version %q; will ignore this version", *c.Version) - return false - } - existingVersion, err := semver.ParseTolerant(*existing.Version) - if err != nil { - klog.Warningf("error parsing existing version %q", *existing.Version) - return true - } - if cVersion.LT(existingVersion) { - klog.V(4).Infof("New Version is less then old") - return false - } else if cVersion.GT(existingVersion) { - klog.V(4).Infof("New Version is greater then old") - return true - } else { - // Same version; check ids - if c.Id == existing.Id { - // Same id; check manifests - if c.ManifestHash == existing.ManifestHash { - klog.V(4).Infof("Manifest Match") - return false - } - klog.V(4).Infof("Channels had same version and ids %q, %q but different ManifestHash (%q vs %q); will replace", *c.Version, c.Id, c.ManifestHash, existing.ManifestHash) - } else { - klog.V(4).Infof("Channels had same version %q but different ids (%q vs %q); will replace", *c.Version, c.Id, existing.Id) - } - } - } else { - klog.Warningf("Existing ChannelVersion did not have a version; can't perform real version check") - } - if c.Version == nil { - klog.Warningf("New ChannelVersion did not have a version; can't perform real version check") - return false + if c.Id == existing.Id { + // Same id; check manifests + if c.ManifestHash == existing.ManifestHash { + klog.V(4).Infof("Manifest Match") + return false + } + klog.V(4).Infof("Channels had same ids %q, %q but different ManifestHash (%q vs %q); will replace", c.Id, c.ManifestHash, existing.ManifestHash) + } else { + klog.V(4).Infof("Channels had different ids (%q vs %q); will replace", c.Id, existing.Id) } return true diff --git a/channels/pkg/cmd/apply_channel.go b/channels/pkg/cmd/apply_channel.go index 055fea6a55..e245fde0f3 100644 --- a/channels/pkg/cmd/apply_channel.go +++ b/channels/pkg/cmd/apply_channel.go @@ -164,19 +164,13 @@ func RunApplyChannel(ctx context.Context, f Factory, out io.Writer, options *App if r.ExistingVersion == nil { return "-" } - if r.ExistingVersion.Version != nil { - return *r.ExistingVersion.Version - } - return "?" + return r.ExistingVersion.ManifestHash }) t.AddColumn("UPDATE", func(r *channels.AddonUpdate) string { if r.NewVersion == nil { return "-" } - if r.NewVersion.Version != nil { - return *r.NewVersion.Version - } - return "?" + return r.NewVersion.ManifestHash }) t.AddColumn("PKI", func(r *channels.AddonUpdate) string { if r.InstallPKI { @@ -204,11 +198,7 @@ func RunApplyChannel(ctx context.Context, f Factory, out io.Writer, options *App } // Could have been a concurrent request if update != nil { - if update.NewVersion != nil && update.NewVersion.Version != nil { - fmt.Printf("Updated %q to %s\n", update.Name, *update.NewVersion.Version) - } else { - fmt.Printf("Updated %q\n", update.Name) - } + fmt.Printf("Updated %q\n", update.Name) } } diff --git a/channels/pkg/cmd/get_addons.go b/channels/pkg/cmd/get_addons.go index 0103f6af10..0379247417 100644 --- a/channels/pkg/cmd/get_addons.go +++ b/channels/pkg/cmd/get_addons.go @@ -110,14 +110,11 @@ func RunGetAddons(ctx context.Context, f Factory, out io.Writer, options *GetAdd t.AddColumn("NAMESPACE", func(r *addonInfo) string { return r.Namespace.Name }) - t.AddColumn("VERSION", func(r *addonInfo) string { + t.AddColumn("HASH", func(r *addonInfo) string { if r.Version == nil { return "-" } - if r.Version.Version != nil { - return *r.Version.Version - } - return "?" + return r.Version.ManifestHash }) t.AddColumn("CHANNEL", func(r *addonInfo) string { if r.Version == nil { @@ -129,7 +126,7 @@ func RunGetAddons(ctx context.Context, f Factory, out io.Writer, options *GetAdd return "?" }) - columns := []string{"NAMESPACE", "NAME", "VERSION", "CHANNEL"} + columns := []string{"NAMESPACE", "NAME", "HASH", "CHANNEL"} err := t.Render(info, os.Stdout, columns...) if err != nil { return err diff --git a/pkg/model/components/addonmanifests/remap.go b/pkg/model/components/addonmanifests/remap.go index e97ea61521..4d9f423d7f 100644 --- a/pkg/model/components/addonmanifests/remap.go +++ b/pkg/model/components/addonmanifests/remap.go @@ -143,7 +143,6 @@ func addLabels(addon *addonsapi.AddonSpec, objects kubemanifest.ObjectList) erro meta.Labels["app.kubernetes.io/managed-by"] = "kops" meta.Labels["addon.kops.k8s.io/name"] = *addon.Name - meta.Labels["addon.kops.k8s.io/version"] = *addon.Version // ensure selector is set where applicable for key, val := range addon.Selector { diff --git a/pkg/wellknownoperators/operators.go b/pkg/wellknownoperators/operators.go index d53129245d..c4763cf2c3 100644 --- a/pkg/wellknownoperators/operators.go +++ b/pkg/wellknownoperators/operators.go @@ -71,7 +71,6 @@ func (b *Builder) Build() ([]*WellKnownAddon, kubemanifest.ObjectList, error) { Manifest: manifestBytes, Spec: channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: map[string]string{"k8s-addon": key}, Manifest: fi.String(location), Id: id, diff --git a/upup/pkg/fi/cloudup/bootstrapchannelbuilder/bootstrapchannelbuilder.go b/upup/pkg/fi/cloudup/bootstrapchannelbuilder/bootstrapchannelbuilder.go index 123cc5c0ff..e09767c921 100644 --- a/upup/pkg/fi/cloudup/bootstrapchannelbuilder/bootstrapchannelbuilder.go +++ b/upup/pkg/fi/cloudup/bootstrapchannelbuilder/bootstrapchannelbuilder.go @@ -202,12 +202,10 @@ func (b *BootstrapChannelBuilder) Build(c *fi.ModelBuilderContext) error { if b.ClusterAddons != nil { key := "cluster-addons.kops.k8s.io" - version := "0.0.0" location := key + "/default.yaml" a := &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: map[string]string{"k8s-addon": key}, Manifest: fi.String(location), } @@ -267,7 +265,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann { key := "kops-controller.addons.k8s.io" - version := "1.22.0-alpha.1" { location := key + "/k8s-1.16.yaml" @@ -275,7 +272,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: map[string]string{"k8s-addon": key}, Manifest: fi.String(location), NeedsRollingUpdate: "control-plane", @@ -291,7 +287,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: map[string]string{"k8s-addon": key}, Manifest: fi.String(location), }) @@ -300,7 +295,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann // @check if podsecuritypolicies are enabled and if so, push the default kube-system policy if b.Cluster.Spec.KubeAPIServer != nil && b.Cluster.Spec.KubeAPIServer.HasAdmissionController("PodSecurityPolicy") { key := "podsecuritypolicy.addons.k8s.io" - version := "0.0.4" { location := key + "/k8s-1.12.yaml" @@ -308,7 +302,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: map[string]string{"k8s-addon": key}, Manifest: fi.String(location), Id: id, @@ -332,7 +325,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann { key := "kube-dns.addons.k8s.io" - version := "1.15.13-kops.3" { location := key + "/k8s-1.12.yaml" @@ -340,7 +332,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: map[string]string{"k8s-addon": key}, Manifest: fi.String(location), Id: id, @@ -352,7 +343,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann if kubeDNS.Provider == "CoreDNS" && !featureflag.UseAddonOperators.Enabled() { { key := "coredns.addons.k8s.io" - version := "1.8.3-kops.3" { location := key + "/k8s-1.12.yaml" @@ -360,7 +350,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: map[string]string{"k8s-addon": key}, Manifest: fi.String(location), Id: id, @@ -385,7 +374,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann if enableRBACAddon { { key := "rbac.addons.k8s.io" - version := "1.8.0" { location := key + "/k8s-1.8.yaml" @@ -393,7 +381,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: map[string]string{"k8s-addon": key}, Manifest: fi.String(location), Id: id, @@ -407,7 +394,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann // docs: https://kubernetes.io/docs/reference/access-authn-authz/rbac/#other-component-roles // issue: https://github.com/kubernetes/kops/issues/5176 key := "kubelet-api.rbac.addons.k8s.io" - version := "v0.0.1" { location := key + "/k8s-1.9.yaml" @@ -415,7 +401,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: map[string]string{"k8s-addon": key}, Manifest: fi.String(location), Id: id, @@ -430,7 +415,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: map[string]string{"k8s-addon": key}, Manifest: fi.String(location), }) @@ -441,7 +425,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann if externalDNS == nil || !externalDNS.Disable { { key := "dns-controller.addons.k8s.io" - version := "1.22.0-alpha.1" { location := key + "/k8s-1.12.yaml" @@ -449,7 +432,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: map[string]string{"k8s-addon": key}, Manifest: fi.String(location), Id: id, @@ -466,7 +448,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann if featureflag.EnableExternalDNS.Enabled() { { key := "external-dns.addons.k8s.io" - version := "0.7.6-kops.1" { location := key + "/k8s-1.12.yaml" @@ -474,7 +455,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: map[string]string{"k8s-addon": key}, Manifest: fi.String(location), Id: id, @@ -488,7 +468,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann if kubeDNS.Provider == "CoreDNS" && NodeLocalDNS != nil && fi.BoolValue(NodeLocalDNS.Enabled) { { key := "nodelocaldns.addons.k8s.io" - version := "1.18.0" { location := key + "/k8s-1.12.yaml" @@ -496,7 +475,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: map[string]string{"k8s-addon": key}, Manifest: fi.String(location), Id: id, @@ -508,7 +486,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann if b.Cluster.Spec.ClusterAutoscaler != nil && fi.BoolValue(b.Cluster.Spec.ClusterAutoscaler.Enabled) { { key := "cluster-autoscaler.addons.k8s.io" - version := "1.19.2" { location := key + "/k8s-1.15.yaml" @@ -516,7 +493,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: map[string]string{"k8s-addon": key}, Manifest: fi.String(location), Id: id, @@ -533,7 +509,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann if b.Cluster.Spec.MetricsServer != nil && fi.BoolValue(b.Cluster.Spec.MetricsServer.Enabled) { { key := "metrics-server.addons.k8s.io" - version := "0.4.4" { location := key + "/k8s-1.11.yaml" @@ -541,7 +516,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: map[string]string{"k8s-app": "metrics-server"}, Manifest: fi.String(location), Id: id, @@ -554,7 +528,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann if b.Cluster.Spec.CertManager != nil && fi.BoolValue(b.Cluster.Spec.CertManager.Enabled) && (b.Cluster.Spec.CertManager.Managed == nil || fi.BoolValue(b.Cluster.Spec.CertManager.Managed)) { { key := "certmanager.io" - version := "1.1.0" { location := key + "/k8s-1.16.yaml" @@ -562,7 +535,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Manifest: fi.String(location), Id: id, }) @@ -575,7 +547,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann if nth != nil && fi.BoolValue(nth.Enabled) { key := "node-termination-handler.aws" - version := "1.7.0" { location := key + "/k8s-1.11.yaml" @@ -583,7 +554,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: map[string]string{"k8s-addon": key}, Manifest: fi.String(location), Id: id, @@ -596,7 +566,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann if npd != nil && fi.BoolValue(npd.Enabled) { key := "node-problem-detector.addons.k8s.io" - version := "0.8.8" { location := key + "/k8s-1.17.yaml" @@ -604,7 +573,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: map[string]string{"k8s-addon": key}, Manifest: fi.String(location), Id: id, @@ -615,7 +583,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann if b.Cluster.Spec.AWSLoadBalancerController != nil && fi.BoolValue(b.Cluster.Spec.AWSLoadBalancerController.Enabled) { key := "aws-load-balancer-controller.addons.k8s.io" - version := "2.1.2" { location := key + "/k8s-1.9.yaml" @@ -623,7 +590,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: map[string]string{"k8s-addon": key}, Manifest: fi.String(location), Id: id, @@ -639,7 +605,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann if kops.CloudProviderID(b.Cluster.Spec.CloudProvider) == kops.CloudProviderAWS { key := "storage-aws.addons.k8s.io" - version := "1.17.0" { id := "v1.15.0" @@ -647,7 +612,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: map[string]string{"k8s-addon": key}, Manifest: fi.String(location), Id: id, @@ -657,7 +621,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann if kops.CloudProviderID(b.Cluster.Spec.CloudProvider) == kops.CloudProviderDO { key := "digitalocean-cloud-controller.addons.k8s.io" - version := "1.8.1-kops.1" { id := "k8s-1.8" @@ -665,7 +628,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: map[string]string{"k8s-addon": key}, Manifest: fi.String(location), Id: id, @@ -675,7 +637,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann if kops.CloudProviderID(b.Cluster.Spec.CloudProvider) == kops.CloudProviderGCE { key := "storage-gce.addons.k8s.io" - version := "1.7.0" { id := "v1.7.0" @@ -683,7 +644,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: map[string]string{"k8s-addon": key}, Manifest: fi.String(location), Id: id, @@ -697,11 +657,9 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann { id := "v1.14.0" location := key + "/" + id + ".yaml" - version := "1.0.75" addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: map[string]string{"k8s-addon": key}, Manifest: fi.String(location), Id: id, @@ -713,7 +671,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann // It will land on nodes labeled cloud.google.com/metadata-proxy-ready=true if kops.CloudProviderID(b.Cluster.Spec.CloudProvider) == kops.CloudProviderGCE { key := "metadata-proxy.addons.k8s.io" - version := "0.1.12" { id := "v0.1.12" @@ -721,7 +678,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: map[string]string{"k8s-addon": key}, Manifest: fi.String(location), Id: id, @@ -731,7 +687,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann if b.Cluster.Spec.Networking.Kopeio != nil { key := "networking.kope.io" - version := "1.0.20181028-kops.2" { location := key + "/k8s-1.12.yaml" @@ -739,7 +694,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: networkingSelector(), Manifest: fi.String(location), Id: id, @@ -749,9 +703,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann if b.Cluster.Spec.Networking.Weave != nil { key := "networking.weave" - versions := map[string]string{ - "k8s-1.12": "2.8.1-kops.1", - } { location := key + "/k8s-1.12.yaml" @@ -759,7 +710,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(versions[id]), Selector: networkingSelector(), Manifest: fi.String(location), Id: id, @@ -769,9 +719,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann if b.Cluster.Spec.Networking.Flannel != nil { key := "networking.flannel" - versions := map[string]string{ - "k8s-1.12": "0.13.0-kops.1", - } { location := key + "/k8s-1.12.yaml" @@ -779,7 +726,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(versions[id]), Selector: networkingSelector(), Manifest: fi.String(location), Id: id, @@ -789,9 +735,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann if b.Cluster.Spec.Networking.Calico != nil { key := "networking.projectcalico.org" - versions := map[string]string{ - "k8s-1.16": "3.19.1-kops.1", - } { id := "k8s-1.16" @@ -799,7 +742,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(versions[id]), Selector: networkingSelector(), Manifest: fi.String(location), Id: id, @@ -809,16 +751,13 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann if b.Cluster.Spec.Networking.Canal != nil { key := "networking.projectcalico.org.canal" - versions := map[string]string{ - "k8s-1.16": "3.13.4-kops.2", - } + { id := "k8s-1.16" location := key + "/" + id + ".yaml" addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(versions[id]), Selector: networkingSelector(), Manifest: fi.String(location), Id: id, @@ -828,9 +767,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann if b.Cluster.Spec.Networking.Kuberouter != nil { key := "networking.kuberouter" - versions := map[string]string{ - "k8s-1.12": "1.2.3-kops.1", - } { location := key + "/k8s-1.12.yaml" @@ -838,7 +774,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(versions[id]), Selector: networkingSelector(), Manifest: fi.String(location), Id: id, @@ -849,17 +784,12 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann if b.Cluster.Spec.Networking.AmazonVPC != nil { key := "networking.amazon-vpc-routed-eni" - versions := map[string]string{ - "k8s-1.16": "1.7.8-kops.1", - } - { id := "k8s-1.16" location := key + "/" + id + ".yaml" addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(versions[id]), Selector: networkingSelector(), Manifest: fi.String(location), Id: id, @@ -878,7 +808,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann if b.Cluster.Spec.Authentication != nil { if b.Cluster.Spec.Authentication.Kopeio != nil { key := "authentication.kope.io" - version := "1.0.20181028-kops.1" { location := key + "/k8s-1.12.yaml" @@ -886,7 +815,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: authenticationSelector, Manifest: fi.String(location), Id: id, @@ -895,9 +823,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann } if b.Cluster.Spec.Authentication.Aws != nil { key := "authentication.aws" - versions := map[string]string{ - "k8s-1.12": "0.5.1-kops.1", - } { location := key + "/k8s-1.12.yaml" @@ -905,7 +830,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(versions[id]), Selector: authenticationSelector, Manifest: fi.String(location), Id: id, @@ -917,14 +841,12 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann if kops.CloudProviderID(b.Cluster.Spec.CloudProvider) == kops.CloudProviderOpenstack { { key := "storage-openstack.addons.k8s.io" - version := "1.18.0-kops.1" id := "k8s-1.16" location := key + "/" + id + ".yaml" addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Manifest: fi.String(location), Selector: map[string]string{"k8s-addon": key}, Id: id, @@ -935,14 +857,12 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann // cloudprovider specific out-of-tree controller { key := "openstack.addons.k8s.io" - version := "1.13.1-kops.1" location := key + "/k8s-1.13.yaml" id := "k8s-1.13-ccm" addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Manifest: fi.String(location), Selector: map[string]string{"k8s-addon": key}, Id: id, @@ -951,14 +871,12 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann } else { { key := "core.addons.k8s.io" - version := "1.12.1-kops.1" location := key + "/k8s-1.12.yaml" id := "k8s-1.12-ccm" addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: map[string]string{"k8s-addon": key}, Manifest: fi.String(location), Id: id, @@ -971,15 +889,12 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann if b.IsKubernetesGTE("1.18") && b.Cluster.Spec.ExternalCloudControllerManager != nil { key := "aws-cloud-controller.addons.k8s.io" - // Version refers to the addon configuration. The CCM tag is given by - // the template function AWSCCMTag() - version := "1.18.0-kops.1" + { id := "k8s-1.18" location := key + "/" + id + ".yaml" addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Manifest: fi.String(location), Selector: map[string]string{"k8s-addon": key}, Id: id, @@ -989,13 +904,11 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann if b.Cluster.Spec.CloudConfig != nil && b.Cluster.Spec.CloudConfig.AWSEBSCSIDriver != nil && fi.BoolValue(b.Cluster.Spec.CloudConfig.AWSEBSCSIDriver.Enabled) { key := "aws-ebs-csi-driver.addons.k8s.io" - version := "1.0.0-kops.1" { id := "k8s-1.17" location := key + "/" + id + ".yaml" addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Manifest: fi.String(location), Selector: map[string]string{"k8s-addon": key}, Id: id, @@ -1012,13 +925,11 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann if b.IsKubernetesGTE("1.20") && b.Cluster.Spec.SnapshotController != nil && fi.BoolValue(b.Cluster.Spec.SnapshotController.Enabled) { key := "snapshot-controller.addons.k8s.io" - version := "4.0.0-kops.1" { id := "k8s-1.20" location := key + "/" + id + ".yaml" addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Manifest: fi.String(location), Selector: map[string]string{"k8s-addon": key}, NeedsPKI: true, @@ -1034,7 +945,6 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: map[string]string{"k8s-addon": key}, Manifest: fi.String(location), }) diff --git a/upup/pkg/fi/cloudup/bootstrapchannelbuilder/cilium.go b/upup/pkg/fi/cloudup/bootstrapchannelbuilder/cilium.go index 40984c0e1f..7d1aefb15e 100644 --- a/upup/pkg/fi/cloudup/bootstrapchannelbuilder/cilium.go +++ b/upup/pkg/fi/cloudup/bootstrapchannelbuilder/cilium.go @@ -35,14 +35,12 @@ func addCiliumAddon(b *BootstrapChannelBuilder, addons *api.Addons) error { key := "networking.cilium.io" if ver.Minor < 9 { - version := "1.8.0-kops.1" { id := "k8s-1.12" location := key + "/" + id + "-v1.8.yaml" addons.Spec.Addons = append(addons.Spec.Addons, &api.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: networkingSelector(), Manifest: fi.String(location), Id: id, @@ -50,14 +48,12 @@ func addCiliumAddon(b *BootstrapChannelBuilder, addons *api.Addons) error { }) } } else if ver.Minor == 9 { - version := "1.9.4-kops.1" { id := "k8s-1.12" location := key + "/" + id + "-v1.9.yaml" addon := &api.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: networkingSelector(), Manifest: fi.String(location), Id: id, @@ -69,14 +65,12 @@ func addCiliumAddon(b *BootstrapChannelBuilder, addons *api.Addons) error { addons.Spec.Addons = append(addons.Spec.Addons, addon) } } else if ver.Minor == 10 { - version := "1.10.0-kops.1" { id := "k8s-1.16" location := key + "/" + id + "-v1.10.yaml" addon := &api.AddonSpec{ Name: fi.String(key), - Version: fi.String(version), Selector: networkingSelector(), Manifest: fi.String(location), Id: id,