Remove version from addons

This commit is contained in:
Ciprian Hacman 2021-06-24 09:32:57 +03:00
parent 5a960c85f3
commit 2f3bad686a
14 changed files with 27 additions and 440 deletions

View File

@ -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",
],
)

View File

@ -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))
}

View File

@ -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
}

View File

@ -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",

View File

@ -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,
}

View File

@ -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
}

View File

@ -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"
}

View File

@ -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

View File

@ -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)
}
}

View File

@ -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

View File

@ -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 {

View File

@ -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,

View File

@ -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),
})

View File

@ -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,