Merge pull request #11861 from johngmyers/bootstrap-simplify

Don't include irrelevant bootstrap addons
This commit is contained in:
Kubernetes Prow Robot 2021-06-24 22:12:45 -07:00 committed by GitHub
commit 21a3e80ce8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 33 additions and 31 deletions

View File

@ -6,6 +6,7 @@ go_library(
importpath = "k8s.io/kops/channels/pkg/api", importpath = "k8s.io/kops/channels/pkg/api",
visibility = ["//visibility:public"], visibility = ["//visibility:public"],
deps = [ deps = [
"//pkg/values:go_default_library",
"//vendor/github.com/blang/semver/v4:go_default_library", "//vendor/github.com/blang/semver/v4:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
], ],

View File

@ -21,6 +21,7 @@ import (
"github.com/blang/semver/v4" "github.com/blang/semver/v4"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/kops/pkg/values"
) )
type Addons struct { type Addons struct {
@ -74,7 +75,10 @@ type AddonSpec struct {
func (a *Addons) Verify() error { func (a *Addons) Verify() error {
for _, addon := range a.Spec.Addons { for _, addon := range a.Spec.Addons {
if addon != nil && addon.Version != nil && *addon.Version != "" { if addon == nil {
continue
}
if addon.Version != nil && *addon.Version != "" {
name := a.ObjectMeta.Name name := a.ObjectMeta.Name
if addon.Name != nil { if addon.Name != nil {
name = *addon.Name name = *addon.Name
@ -85,6 +89,9 @@ func (a *Addons) Verify() error {
return fmt.Errorf("addon %q has unparseable version %q: %v", name, *addon.Version, err) 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))
}
} }
return nil return nil

View File

@ -622,13 +622,12 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann
id := "k8s-1.9" id := "k8s-1.9"
addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{
Name: fi.String(key), Name: fi.String(key),
Version: fi.String(version), Version: fi.String(version),
Selector: map[string]string{"k8s-addon": key}, Selector: map[string]string{"k8s-addon": key},
Manifest: fi.String(location), Manifest: fi.String(location),
KubernetesVersion: ">=1.9.0", Id: id,
Id: id, NeedsPKI: true,
NeedsPKI: true,
}) })
} }
@ -984,7 +983,7 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann
if kops.CloudProviderID(b.Cluster.Spec.CloudProvider) == kops.CloudProviderAWS { if kops.CloudProviderID(b.Cluster.Spec.CloudProvider) == kops.CloudProviderAWS {
if b.Cluster.Spec.ExternalCloudControllerManager != nil { if b.IsKubernetesGTE("1.18") && b.Cluster.Spec.ExternalCloudControllerManager != nil {
key := "aws-cloud-controller.addons.k8s.io" key := "aws-cloud-controller.addons.k8s.io"
// Version refers to the addon configuration. The CCM tag is given by // Version refers to the addon configuration. The CCM tag is given by
// the template function AWSCCMTag() // the template function AWSCCMTag()
@ -993,12 +992,11 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann
id := "k8s-1.18" id := "k8s-1.18"
location := key + "/" + id + ".yaml" location := key + "/" + id + ".yaml"
addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{
Name: fi.String(key), Name: fi.String(key),
Version: fi.String(version), Version: fi.String(version),
Manifest: fi.String(location), Manifest: fi.String(location),
Selector: map[string]string{"k8s-addon": key}, Selector: map[string]string{"k8s-addon": key},
KubernetesVersion: ">=1.18.0", Id: id,
Id: id,
}) })
} }
} }
@ -1010,12 +1008,11 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann
id := "k8s-1.17" id := "k8s-1.17"
location := key + "/" + id + ".yaml" location := key + "/" + id + ".yaml"
addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{
Name: fi.String(key), Name: fi.String(key),
Version: fi.String(version), Version: fi.String(version),
Manifest: fi.String(location), Manifest: fi.String(location),
Selector: map[string]string{"k8s-addon": key}, Selector: map[string]string{"k8s-addon": key},
KubernetesVersion: ">=1.17.0", Id: id,
Id: id,
}) })
} }
@ -1026,7 +1023,7 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann
} }
} }
if b.Cluster.Spec.SnapshotController != nil && fi.BoolValue(b.Cluster.Spec.SnapshotController.Enabled) { if b.IsKubernetesGTE("1.20") && b.Cluster.Spec.SnapshotController != nil && fi.BoolValue(b.Cluster.Spec.SnapshotController.Enabled) {
key := "snapshot-controller.addons.k8s.io" key := "snapshot-controller.addons.k8s.io"
version := "4.0.0-kops.1" version := "4.0.0-kops.1"
@ -1034,13 +1031,12 @@ func (b *BootstrapChannelBuilder) buildAddons(c *fi.ModelBuilderContext) (*chann
id := "k8s-1.20" id := "k8s-1.20"
location := key + "/" + id + ".yaml" location := key + "/" + id + ".yaml"
addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{
Name: fi.String(key), Name: fi.String(key),
Version: fi.String(version), Version: fi.String(version),
Manifest: fi.String(location), Manifest: fi.String(location),
Selector: map[string]string{"k8s-addon": key}, Selector: map[string]string{"k8s-addon": key},
KubernetesVersion: ">=1.20.0", NeedsPKI: true,
NeedsPKI: true, Id: id,
Id: id,
}) })
} }
} }

View File

@ -53,7 +53,6 @@ spec:
k8s-addon: storage-aws.addons.k8s.io k8s-addon: storage-aws.addons.k8s.io
version: 1.17.0 version: 1.17.0
- id: k8s-1.18 - id: k8s-1.18
kubernetesVersion: '>=1.18.0'
manifest: aws-cloud-controller.addons.k8s.io/k8s-1.18.yaml manifest: aws-cloud-controller.addons.k8s.io/k8s-1.18.yaml
manifestHash: 802a42830a525a9083c80e2ad58efb72ea34945e manifestHash: 802a42830a525a9083c80e2ad58efb72ea34945e
name: aws-cloud-controller.addons.k8s.io name: aws-cloud-controller.addons.k8s.io
@ -61,7 +60,6 @@ spec:
k8s-addon: aws-cloud-controller.addons.k8s.io k8s-addon: aws-cloud-controller.addons.k8s.io
version: 1.18.0-kops.1 version: 1.18.0-kops.1
- id: k8s-1.17 - id: k8s-1.17
kubernetesVersion: '>=1.17.0'
manifest: aws-ebs-csi-driver.addons.k8s.io/k8s-1.17.yaml manifest: aws-ebs-csi-driver.addons.k8s.io/k8s-1.17.yaml
manifestHash: 59c7723a8a9271558c6a87ccb0f0c61c2e36c6ed manifestHash: 59c7723a8a9271558c6a87ccb0f0c61c2e36c6ed
name: aws-ebs-csi-driver.addons.k8s.io name: aws-ebs-csi-driver.addons.k8s.io