mirror of https://github.com/kubernetes/kops.git
Remove version from addons
This commit is contained in:
parent
5a960c85f3
commit
2f3bad686a
|
|
@ -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",
|
||||
],
|
||||
)
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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),
|
||||
})
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Reference in New Issue