From 97f552778f428ee527727d0239a25a1f970705e5 Mon Sep 17 00:00:00 2001 From: Justin SB Date: Mon, 2 Sep 2019 08:02:39 -0700 Subject: [PATCH] Add env vars, update tests --- pkg/instancegroups/rollingupdate.go | 6 +- pkg/testutils/modelharness.go | 2 +- .../update_cluster/ha_gce/kubernetes.tf | 28 +++--- .../k8s-1.16.yaml.template | 12 +-- .../pkg/fi/cloudup/bootstrapchannelbuilder.go | 3 +- .../cloudup/bootstrapchannelbuilder_test.go | 12 +-- upup/pkg/fi/cloudup/template_functions.go | 11 +++ ...ops-controller.addons.k8s.io-k8s-1.16.yaml | 90 +++++++++++++++++ .../cilium/manifest.yaml | 8 ++ ...ops-controller.addons.k8s.io-k8s-1.16.yaml | 99 +++++++++++++++++++ .../kopeio-vxlan/manifest.yaml | 8 ++ ...ops-controller.addons.k8s.io-k8s-1.16.yaml | 90 +++++++++++++++++ .../simple/manifest.yaml | 8 ++ ...ops-controller.addons.k8s.io-k8s-1.16.yaml | 90 +++++++++++++++++ .../weave/manifest.yaml | 8 ++ 15 files changed, 445 insertions(+), 30 deletions(-) create mode 100644 upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/cilium/kops-controller.addons.k8s.io-k8s-1.16.yaml create mode 100644 upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/kopeio-vxlan/kops-controller.addons.k8s.io-k8s-1.16.yaml create mode 100644 upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/simple/kops-controller.addons.k8s.io-k8s-1.16.yaml create mode 100644 upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/weave/kops-controller.addons.k8s.io-k8s-1.16.yaml diff --git a/pkg/instancegroups/rollingupdate.go b/pkg/instancegroups/rollingupdate.go index 0a6e34b637..72db4a7318 100644 --- a/pkg/instancegroups/rollingupdate.go +++ b/pkg/instancegroups/rollingupdate.go @@ -97,7 +97,7 @@ func (c *RollingUpdateCluster) RollingUpdate(groups map[string]*cloudinstances.C defer wg.Done() - g, err := NewRollingUpdateInstanceGroup(c.Cloud, group, c.K8sClient) + g, err := NewRollingUpdateInstanceGroup(c.Cloud, group) if err == nil { err = g.RollingUpdate(c, cluster, instanceGroups, true, c.BastionInterval, c.ValidationTimeout) } @@ -125,7 +125,7 @@ func (c *RollingUpdateCluster) RollingUpdate(groups map[string]*cloudinstances.C // and we don't want to roll all the masters at the same time. See issue #284 for _, group := range masterGroups { - g, err := NewRollingUpdateInstanceGroup(c.Cloud, group, c.K8sClient) + g, err := NewRollingUpdateInstanceGroup(c.Cloud, group) if err == nil { err = g.RollingUpdate(c, cluster, instanceGroups, false, c.MasterInterval, c.ValidationTimeout) } @@ -159,7 +159,7 @@ func (c *RollingUpdateCluster) RollingUpdate(groups map[string]*cloudinstances.C defer wg.Done() for k, group := range nodeGroups { - g, err := NewRollingUpdateInstanceGroup(c.Cloud, group, c.K8sClient) + g, err := NewRollingUpdateInstanceGroup(c.Cloud, group) if err == nil { err = g.RollingUpdate(c, cluster, instanceGroups, false, c.NodeInterval, c.ValidationTimeout) } diff --git a/pkg/testutils/modelharness.go b/pkg/testutils/modelharness.go index 91a9e58c88..9ef734b6e2 100644 --- a/pkg/testutils/modelharness.go +++ b/pkg/testutils/modelharness.go @@ -149,5 +149,5 @@ func AssertMatchesFile(t *testing.T, actual string, p string) { t.Logf("to update golden output automatically, run hack/update-expected.sh") - t.Fatalf("output did not match expected for %q", p) + t.Errorf("output did not match expected for %q", p) } diff --git a/tests/integration/update_cluster/ha_gce/kubernetes.tf b/tests/integration/update_cluster/ha_gce/kubernetes.tf index a80cdd3e13..1ba128d7e1 100644 --- a/tests/integration/update_cluster/ha_gce/kubernetes.tf +++ b/tests/integration/update_cluster/ha_gce/kubernetes.tf @@ -399,9 +399,10 @@ resource "google_compute_instance_template" "master-us-test1-a-ha-gce-example-co } metadata = { - cluster-name = "${file("${path.module}/data/google_compute_instance_template_master-us-test1-a-ha-gce-example-com_metadata_cluster-name")}" - ssh-keys = "${file("${path.module}/data/google_compute_instance_template_master-us-test1-a-ha-gce-example-com_metadata_ssh-keys")}" - startup-script = "${file("${path.module}/data/google_compute_instance_template_master-us-test1-a-ha-gce-example-com_metadata_startup-script")}" + cluster-name = "${file("${path.module}/data/google_compute_instance_template_master-us-test1-a-ha-gce-example-com_metadata_cluster-name")}" + kops-k8s-io-instance-group-name = "${file("${path.module}/data/google_compute_instance_template_master-us-test1-a-ha-gce-example-com_metadata_kops-k8s-io-instance-group-name")}" + ssh-keys = "${file("${path.module}/data/google_compute_instance_template_master-us-test1-a-ha-gce-example-com_metadata_ssh-keys")}" + startup-script = "${file("${path.module}/data/google_compute_instance_template_master-us-test1-a-ha-gce-example-com_metadata_startup-script")}" } tags = ["ha-gce-example-com-k8s-io-role-master"] @@ -439,9 +440,10 @@ resource "google_compute_instance_template" "master-us-test1-b-ha-gce-example-co } metadata = { - cluster-name = "${file("${path.module}/data/google_compute_instance_template_master-us-test1-b-ha-gce-example-com_metadata_cluster-name")}" - ssh-keys = "${file("${path.module}/data/google_compute_instance_template_master-us-test1-b-ha-gce-example-com_metadata_ssh-keys")}" - startup-script = "${file("${path.module}/data/google_compute_instance_template_master-us-test1-b-ha-gce-example-com_metadata_startup-script")}" + cluster-name = "${file("${path.module}/data/google_compute_instance_template_master-us-test1-b-ha-gce-example-com_metadata_cluster-name")}" + kops-k8s-io-instance-group-name = "${file("${path.module}/data/google_compute_instance_template_master-us-test1-b-ha-gce-example-com_metadata_kops-k8s-io-instance-group-name")}" + ssh-keys = "${file("${path.module}/data/google_compute_instance_template_master-us-test1-b-ha-gce-example-com_metadata_ssh-keys")}" + startup-script = "${file("${path.module}/data/google_compute_instance_template_master-us-test1-b-ha-gce-example-com_metadata_startup-script")}" } tags = ["ha-gce-example-com-k8s-io-role-master"] @@ -479,9 +481,10 @@ resource "google_compute_instance_template" "master-us-test1-c-ha-gce-example-co } metadata = { - cluster-name = "${file("${path.module}/data/google_compute_instance_template_master-us-test1-c-ha-gce-example-com_metadata_cluster-name")}" - ssh-keys = "${file("${path.module}/data/google_compute_instance_template_master-us-test1-c-ha-gce-example-com_metadata_ssh-keys")}" - startup-script = "${file("${path.module}/data/google_compute_instance_template_master-us-test1-c-ha-gce-example-com_metadata_startup-script")}" + cluster-name = "${file("${path.module}/data/google_compute_instance_template_master-us-test1-c-ha-gce-example-com_metadata_cluster-name")}" + kops-k8s-io-instance-group-name = "${file("${path.module}/data/google_compute_instance_template_master-us-test1-c-ha-gce-example-com_metadata_kops-k8s-io-instance-group-name")}" + ssh-keys = "${file("${path.module}/data/google_compute_instance_template_master-us-test1-c-ha-gce-example-com_metadata_ssh-keys")}" + startup-script = "${file("${path.module}/data/google_compute_instance_template_master-us-test1-c-ha-gce-example-com_metadata_startup-script")}" } tags = ["ha-gce-example-com-k8s-io-role-master"] @@ -519,9 +522,10 @@ resource "google_compute_instance_template" "nodes-ha-gce-example-com" { } metadata = { - cluster-name = "${file("${path.module}/data/google_compute_instance_template_nodes-ha-gce-example-com_metadata_cluster-name")}" - ssh-keys = "${file("${path.module}/data/google_compute_instance_template_nodes-ha-gce-example-com_metadata_ssh-keys")}" - startup-script = "${file("${path.module}/data/google_compute_instance_template_nodes-ha-gce-example-com_metadata_startup-script")}" + cluster-name = "${file("${path.module}/data/google_compute_instance_template_nodes-ha-gce-example-com_metadata_cluster-name")}" + kops-k8s-io-instance-group-name = "${file("${path.module}/data/google_compute_instance_template_nodes-ha-gce-example-com_metadata_kops-k8s-io-instance-group-name")}" + ssh-keys = "${file("${path.module}/data/google_compute_instance_template_nodes-ha-gce-example-com_metadata_ssh-keys")}" + startup-script = "${file("${path.module}/data/google_compute_instance_template_nodes-ha-gce-example-com_metadata_startup-script")}" } tags = ["ha-gce-example-com-k8s-io-role-node"] diff --git a/upup/models/cloudup/resources/addons/kops-controller.addons.k8s.io/k8s-1.16.yaml.template b/upup/models/cloudup/resources/addons/kops-controller.addons.k8s.io/k8s-1.16.yaml.template index c15f3df0a7..6ff789c340 100644 --- a/upup/models/cloudup/resources/addons/kops-controller.addons.k8s.io/k8s-1.16.yaml.template +++ b/upup/models/cloudup/resources/addons/kops-controller.addons.k8s.io/k8s-1.16.yaml.template @@ -6,7 +6,7 @@ metadata: labels: k8s-addon: kops-controller.addons.k8s.io k8s-app: kops-controller - version: v1.14.0-alpha.1 + version: v1.16.0-alpha.1 spec: replicas: 1 selector: @@ -17,7 +17,7 @@ spec: labels: k8s-addon: kops-controller.addons.k8s.io k8s-app: kops-controller - version: v1.14.0-alpha.1 + version: v1.16.0-alpha.1 annotations: scheduler.alpha.kubernetes.io/critical-pod: '' spec: @@ -36,11 +36,11 @@ spec: {{ range $arg := KopsControllerArgv }} - "{{ $arg }}" {{ end }} -{{- if .EgressProxy }} +{{- if KopsSystemEnv }} env: -{{ range $name, $value := ProxyEnv }} - - name: {{ $name }} - value: {{ $value }} +{{ range $var := KopsSystemEnv }} + - name: {{ $var.Name }} + value: {{ $var.Value }} {{ end }} {{- end }} resources: diff --git a/upup/pkg/fi/cloudup/bootstrapchannelbuilder.go b/upup/pkg/fi/cloudup/bootstrapchannelbuilder.go index 4a739e44eb..46096087e5 100644 --- a/upup/pkg/fi/cloudup/bootstrapchannelbuilder.go +++ b/upup/pkg/fi/cloudup/bootstrapchannelbuilder.go @@ -115,7 +115,7 @@ func (b *BootstrapChannelBuilder) buildAddons() *channelsapi.Addons { { key := "kops-controller.addons.k8s.io" - version := "1.14.0-alpha.1" + version := "1.16.0-alpha.1" { location := key + "/k8s-1.16.yaml" @@ -129,7 +129,6 @@ func (b *BootstrapChannelBuilder) buildAddons() *channelsapi.Addons { KubernetesVersion: ">=1.16.0-alpha.0", Id: id, }) - manifests[key+"-"+id] = "addons/" + location } } diff --git a/upup/pkg/fi/cloudup/bootstrapchannelbuilder_test.go b/upup/pkg/fi/cloudup/bootstrapchannelbuilder_test.go index bd1495d1a6..50c42707bc 100644 --- a/upup/pkg/fi/cloudup/bootstrapchannelbuilder_test.go +++ b/upup/pkg/fi/cloudup/bootstrapchannelbuilder_test.go @@ -40,13 +40,13 @@ func TestBootstrapChannelBuilder_BuildTasks(t *testing.T) { h.SetupMockAWS() - runChannelBuilderTest(t, "simple") - runChannelBuilderTest(t, "kopeio-vxlan") - runChannelBuilderTest(t, "weave") - runChannelBuilderTest(t, "cilium") + runChannelBuilderTest(t, "simple", []string{"dns-controller.addons.k8s.io-k8s-1.12", "kops-controller.addons.k8s.io-k8s-1.16"}) + // Use cilium networking, proxy + runChannelBuilderTest(t, "cilium", []string{"dns-controller.addons.k8s.io-k8s-1.12", "kops-controller.addons.k8s.io-k8s-1.16"}) + runChannelBuilderTest(t, "weave", []string{}) } -func runChannelBuilderTest(t *testing.T, key string) { +func runChannelBuilderTest(t *testing.T, key string, addonManifests []string) { basedir := path.Join("tests/bootstrapchannelbuilder/", key) clusterYamlPath := path.Join(basedir, "cluster.yaml") @@ -122,7 +122,7 @@ func runChannelBuilderTest(t *testing.T, key string) { testutils.AssertMatchesFile(t, actualManifest, expectedManifestPath) } - for _, k := range []string{"dns-controller.addons.k8s.io-k8s-1.12" /*, "kops-controller.addons.k8s.io-k8s-1.16"*/} { + for _, k := range []string{"dns-controller.addons.k8s.io-k8s-1.12", "kops-controller.addons.k8s.io-k8s-1.16"} { name := cluster.ObjectMeta.Name + "-addons-" + k manifestTask := context.Tasks[name] if manifestTask == nil { diff --git a/upup/pkg/fi/cloudup/template_functions.go b/upup/pkg/fi/cloudup/template_functions.go index ef3fcc5d72..6b7829a539 100644 --- a/upup/pkg/fi/cloudup/template_functions.go +++ b/upup/pkg/fi/cloudup/template_functions.go @@ -35,6 +35,7 @@ import ( "strings" "text/template" + corev1 "k8s.io/api/core/v1" "k8s.io/kops/pkg/apis/kops" "k8s.io/kops/pkg/dns" "k8s.io/kops/pkg/featureflag" @@ -42,6 +43,7 @@ import ( "k8s.io/kops/pkg/resources/spotinst" "k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi/cloudup/gce" + "k8s.io/kops/util/pkg/env" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/klog" @@ -101,6 +103,8 @@ func (tf *TemplateFunctions) AddTo(dest template.FuncMap, secretStore fi.SecretS dest["ProxyEnv"] = tf.ProxyEnv + dest["KopsSystemEnv"] = tf.KopsSystemEnv + dest["DO_TOKEN"] = func() string { return os.Getenv("DIGITALOCEAN_ACCESS_TOKEN") } @@ -311,3 +315,10 @@ func (tf *TemplateFunctions) ProxyEnv() map[string]string { } return envs } + +// KopsSystemEnv builds the env vars for a system component +func (tf *TemplateFunctions) KopsSystemEnv() []corev1.EnvVar { + envMap := env.BuildSystemComponentEnvVars(&tf.cluster.Spec) + + return envMap.ToEnvVars() +} diff --git a/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/cilium/kops-controller.addons.k8s.io-k8s-1.16.yaml b/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/cilium/kops-controller.addons.k8s.io-k8s-1.16.yaml new file mode 100644 index 0000000000..4813931067 --- /dev/null +++ b/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/cilium/kops-controller.addons.k8s.io-k8s-1.16.yaml @@ -0,0 +1,90 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + k8s-addon: kops-controller.addons.k8s.io + k8s-app: kops-controller + version: v1.16.0-alpha.1 + name: kops-controller + namespace: kube-system +spec: + replicas: 1 + selector: + matchLabels: + k8s-app: kops-controller + template: + metadata: + annotations: + scheduler.alpha.kubernetes.io/critical-pod: "" + labels: + k8s-addon: kops-controller.addons.k8s.io + k8s-app: kops-controller + version: v1.16.0-alpha.1 + spec: + containers: + - command: + - /usr/bin/kops-controller + - --cloud=aws + - --config=memfs://clusters.example.com/minimal.example.com + - --metrics-addr=0 + - --v=2 + image: kope/kops-controller:1.14.0-alpha.1 + name: kops-controller + resources: + requests: + cpu: 50m + memory: 50Mi + dnsPolicy: Default + hostNetwork: true + nodeSelector: + node-role.kubernetes.io/master: "" + serviceAccount: kops-controller + tolerations: + - effect: NoSchedule + key: node-role.kubernetes.io/master + +--- + +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + k8s-addon: kops-controller.addons.k8s.io + name: kops-controller + namespace: kube-system + +--- + +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + k8s-addon: kops-controller.addons.k8s.io + name: kops-controller +rules: +- apiGroups: + - "" + resources: + - nodes + verbs: + - get + - list + - watch + - patch + +--- + +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + k8s-addon: kops-controller.addons.k8s.io + name: kops-controller +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: kops-controller +subjects: +- apiGroup: rbac.authorization.k8s.io + kind: User + name: system:serviceaccount:kube-system:kops-controller diff --git a/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/cilium/manifest.yaml b/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/cilium/manifest.yaml index 6d0ad21e92..c9c3206fd5 100644 --- a/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/cilium/manifest.yaml +++ b/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/cilium/manifest.yaml @@ -4,6 +4,14 @@ metadata: name: bootstrap spec: addons: + - id: k8s-1.16 + kubernetesVersion: '>=1.16.0-alpha.0' + manifest: kops-controller.addons.k8s.io/k8s-1.16.yaml + manifestHash: de5108cf5c9a46a8dc13643428cbaddd0875b948 + name: kops-controller.addons.k8s.io + selector: + k8s-addon: kops-controller.addons.k8s.io + version: 1.16.0-alpha.1 - manifest: core.addons.k8s.io/v1.4.0.yaml manifestHash: 3ffe9ac576f9eec72e2bdfbd2ea17d56d9b17b90 name: core.addons.k8s.io diff --git a/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/kopeio-vxlan/kops-controller.addons.k8s.io-k8s-1.16.yaml b/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/kopeio-vxlan/kops-controller.addons.k8s.io-k8s-1.16.yaml new file mode 100644 index 0000000000..75676b5f8c --- /dev/null +++ b/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/kopeio-vxlan/kops-controller.addons.k8s.io-k8s-1.16.yaml @@ -0,0 +1,99 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + k8s-addon: kops-controller.addons.k8s.io + k8s-app: kops-controller + version: v1.16.0-alpha.1 + name: kops-controller + namespace: kube-system +spec: + replicas: 1 + selector: + matchLabels: + k8s-app: kops-controller + template: + metadata: + annotations: + scheduler.alpha.kubernetes.io/critical-pod: "" + labels: + k8s-addon: kops-controller.addons.k8s.io + k8s-app: kops-controller + version: v1.16.0-alpha.1 + spec: + containers: + - command: + - /usr/bin/kops-controller + - --cloud=aws + - --config=memfs://clusters.example.com/minimal.example.com + - --metrics-addr=0 + - --v=2 + env: + - name: NO_PROXY + value: noproxy.example.com,127.0.0.1,localhost,api.minimal.example.com,minimal.example.com,100.64.0.1,100.64.0.0/10,169.254.169.254,172.20.0.0/16 + - name: http_proxy + value: http://proxy.example.com + - name: https_proxy + value: http://proxy.example.com + - name: no_proxy + value: noproxy.example.com,127.0.0.1,localhost,api.minimal.example.com,minimal.example.com,100.64.0.1,100.64.0.0/10,169.254.169.254,172.20.0.0/16 + image: kope/kops-controller:1.14.0-alpha.1 + name: kops-controller + resources: + requests: + cpu: 50m + memory: 50Mi + dnsPolicy: Default + hostNetwork: true + nodeSelector: + node-role.kubernetes.io/master: "" + serviceAccount: kops-controller + tolerations: + - effect: NoSchedule + key: node-role.kubernetes.io/master + +--- + +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + k8s-addon: kops-controller.addons.k8s.io + name: kops-controller + namespace: kube-system + +--- + +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + k8s-addon: kops-controller.addons.k8s.io + name: kops-controller +rules: +- apiGroups: + - "" + resources: + - nodes + verbs: + - get + - list + - watch + - patch + +--- + +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + k8s-addon: kops-controller.addons.k8s.io + name: kops-controller +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: kops-controller +subjects: +- apiGroup: rbac.authorization.k8s.io + kind: User + name: system:serviceaccount:kube-system:kops-controller diff --git a/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/kopeio-vxlan/manifest.yaml b/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/kopeio-vxlan/manifest.yaml index 44d595d2cf..3517f60d05 100644 --- a/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/kopeio-vxlan/manifest.yaml +++ b/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/kopeio-vxlan/manifest.yaml @@ -4,6 +4,14 @@ metadata: name: bootstrap spec: addons: + - id: k8s-1.16 + kubernetesVersion: '>=1.16.0-alpha.0' + manifest: kops-controller.addons.k8s.io/k8s-1.16.yaml + manifestHash: 3b77645897d2641c5ab2de0729b9689b31d63c58 + name: kops-controller.addons.k8s.io + selector: + k8s-addon: kops-controller.addons.k8s.io + version: 1.16.0-alpha.1 - manifest: core.addons.k8s.io/v1.4.0.yaml manifestHash: 3ffe9ac576f9eec72e2bdfbd2ea17d56d9b17b90 name: core.addons.k8s.io diff --git a/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/simple/kops-controller.addons.k8s.io-k8s-1.16.yaml b/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/simple/kops-controller.addons.k8s.io-k8s-1.16.yaml new file mode 100644 index 0000000000..4813931067 --- /dev/null +++ b/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/simple/kops-controller.addons.k8s.io-k8s-1.16.yaml @@ -0,0 +1,90 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + k8s-addon: kops-controller.addons.k8s.io + k8s-app: kops-controller + version: v1.16.0-alpha.1 + name: kops-controller + namespace: kube-system +spec: + replicas: 1 + selector: + matchLabels: + k8s-app: kops-controller + template: + metadata: + annotations: + scheduler.alpha.kubernetes.io/critical-pod: "" + labels: + k8s-addon: kops-controller.addons.k8s.io + k8s-app: kops-controller + version: v1.16.0-alpha.1 + spec: + containers: + - command: + - /usr/bin/kops-controller + - --cloud=aws + - --config=memfs://clusters.example.com/minimal.example.com + - --metrics-addr=0 + - --v=2 + image: kope/kops-controller:1.14.0-alpha.1 + name: kops-controller + resources: + requests: + cpu: 50m + memory: 50Mi + dnsPolicy: Default + hostNetwork: true + nodeSelector: + node-role.kubernetes.io/master: "" + serviceAccount: kops-controller + tolerations: + - effect: NoSchedule + key: node-role.kubernetes.io/master + +--- + +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + k8s-addon: kops-controller.addons.k8s.io + name: kops-controller + namespace: kube-system + +--- + +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + k8s-addon: kops-controller.addons.k8s.io + name: kops-controller +rules: +- apiGroups: + - "" + resources: + - nodes + verbs: + - get + - list + - watch + - patch + +--- + +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + k8s-addon: kops-controller.addons.k8s.io + name: kops-controller +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: kops-controller +subjects: +- apiGroup: rbac.authorization.k8s.io + kind: User + name: system:serviceaccount:kube-system:kops-controller diff --git a/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/simple/manifest.yaml b/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/simple/manifest.yaml index f77b63c03f..bd1e15bbb4 100644 --- a/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/simple/manifest.yaml +++ b/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/simple/manifest.yaml @@ -4,6 +4,14 @@ metadata: name: bootstrap spec: addons: + - id: k8s-1.16 + kubernetesVersion: '>=1.16.0-alpha.0' + manifest: kops-controller.addons.k8s.io/k8s-1.16.yaml + manifestHash: de5108cf5c9a46a8dc13643428cbaddd0875b948 + name: kops-controller.addons.k8s.io + selector: + k8s-addon: kops-controller.addons.k8s.io + version: 1.16.0-alpha.1 - manifest: core.addons.k8s.io/v1.4.0.yaml manifestHash: 3ffe9ac576f9eec72e2bdfbd2ea17d56d9b17b90 name: core.addons.k8s.io diff --git a/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/weave/kops-controller.addons.k8s.io-k8s-1.16.yaml b/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/weave/kops-controller.addons.k8s.io-k8s-1.16.yaml new file mode 100644 index 0000000000..4813931067 --- /dev/null +++ b/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/weave/kops-controller.addons.k8s.io-k8s-1.16.yaml @@ -0,0 +1,90 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + k8s-addon: kops-controller.addons.k8s.io + k8s-app: kops-controller + version: v1.16.0-alpha.1 + name: kops-controller + namespace: kube-system +spec: + replicas: 1 + selector: + matchLabels: + k8s-app: kops-controller + template: + metadata: + annotations: + scheduler.alpha.kubernetes.io/critical-pod: "" + labels: + k8s-addon: kops-controller.addons.k8s.io + k8s-app: kops-controller + version: v1.16.0-alpha.1 + spec: + containers: + - command: + - /usr/bin/kops-controller + - --cloud=aws + - --config=memfs://clusters.example.com/minimal.example.com + - --metrics-addr=0 + - --v=2 + image: kope/kops-controller:1.14.0-alpha.1 + name: kops-controller + resources: + requests: + cpu: 50m + memory: 50Mi + dnsPolicy: Default + hostNetwork: true + nodeSelector: + node-role.kubernetes.io/master: "" + serviceAccount: kops-controller + tolerations: + - effect: NoSchedule + key: node-role.kubernetes.io/master + +--- + +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + k8s-addon: kops-controller.addons.k8s.io + name: kops-controller + namespace: kube-system + +--- + +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + k8s-addon: kops-controller.addons.k8s.io + name: kops-controller +rules: +- apiGroups: + - "" + resources: + - nodes + verbs: + - get + - list + - watch + - patch + +--- + +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + k8s-addon: kops-controller.addons.k8s.io + name: kops-controller +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: kops-controller +subjects: +- apiGroup: rbac.authorization.k8s.io + kind: User + name: system:serviceaccount:kube-system:kops-controller diff --git a/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/weave/manifest.yaml b/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/weave/manifest.yaml index c47581dbba..eb4f8265da 100644 --- a/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/weave/manifest.yaml +++ b/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/weave/manifest.yaml @@ -4,6 +4,14 @@ metadata: name: bootstrap spec: addons: + - id: k8s-1.16 + kubernetesVersion: '>=1.16.0-alpha.0' + manifest: kops-controller.addons.k8s.io/k8s-1.16.yaml + manifestHash: de5108cf5c9a46a8dc13643428cbaddd0875b948 + name: kops-controller.addons.k8s.io + selector: + k8s-addon: kops-controller.addons.k8s.io + version: 1.16.0-alpha.1 - manifest: core.addons.k8s.io/v1.4.0.yaml manifestHash: 3ffe9ac576f9eec72e2bdfbd2ea17d56d9b17b90 name: core.addons.k8s.io