From 33c242c8967ddf2cd7bbd5d06b0a4026c2ec83bf Mon Sep 17 00:00:00 2001 From: Ciprian Hacman Date: Sat, 30 May 2020 16:27:46 +0300 Subject: [PATCH 1/5] Use multi-arch image for pause container --- pkg/model/components/kubelet.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/model/components/kubelet.go b/pkg/model/components/kubelet.go index c8803db0dd7f1..1acbe5f50438f 100644 --- a/pkg/model/components/kubelet.go +++ b/pkg/model/components/kubelet.go @@ -188,7 +188,7 @@ func (b *KubeletOptionsBuilder) BuildOptions(o interface{}) error { } // Specify our pause image - image := "k8s.gcr.io/pause-amd64:3.2" + image := "k8s.gcr.io/pause:3.2" if image, err = b.Context.AssetBuilder.RemapImage(image); err != nil { return err } From 41defca8fee177876f660134788e656c6c82407d Mon Sep 17 00:00:00 2001 From: Ciprian Hacman Date: Sat, 30 May 2020 16:37:42 +0300 Subject: [PATCH 2/5] Detect supported architecture during node bootstrap --- pkg/model/resources/nodeup.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pkg/model/resources/nodeup.go b/pkg/model/resources/nodeup.go index d958cae29df76..ee3bbdcb26d44 100644 --- a/pkg/model/resources/nodeup.go +++ b/pkg/model/resources/nodeup.go @@ -137,6 +137,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do From 654a0d2d8a444153bb73a07e28d073c6c1534ff0 Mon Sep 17 00:00:00 2001 From: Ciprian Hacman Date: Sat, 30 May 2020 17:02:37 +0300 Subject: [PATCH 3/5] Detect supported architecture during node setup --- hack/.packages | 1 + nodeup/pkg/model/BUILD.bazel | 1 + nodeup/pkg/model/containerd.go | 29 +++++----- nodeup/pkg/model/context.go | 3 +- nodeup/pkg/model/convenience.go | 5 +- nodeup/pkg/model/docker.go | 75 +++++++++++++------------ upup/pkg/fi/nodeup/BUILD.bazel | 1 + upup/pkg/fi/nodeup/command.go | 18 ++++-- util/pkg/architectures/BUILD.bazel | 9 +++ util/pkg/architectures/architectures.go | 53 +++++++++++++++++ 10 files changed, 137 insertions(+), 58 deletions(-) create mode 100644 util/pkg/architectures/BUILD.bazel create mode 100644 util/pkg/architectures/architectures.go diff --git a/hack/.packages b/hack/.packages index f417aa9b0eafc..5595b279e6af1 100644 --- a/hack/.packages +++ b/hack/.packages @@ -189,6 +189,7 @@ k8s.io/kops/upup/pkg/fi/utils k8s.io/kops/upup/pkg/kutil k8s.io/kops/upup/tools/generators/fitask k8s.io/kops/upup/tools/generators/pkg/codegen +k8s.io/kops/util/pkg/architectures k8s.io/kops/util/pkg/env k8s.io/kops/util/pkg/exec k8s.io/kops/util/pkg/hashing diff --git a/nodeup/pkg/model/BUILD.bazel b/nodeup/pkg/model/BUILD.bazel index f03cb375febcb..14179dd491a12 100644 --- a/nodeup/pkg/model/BUILD.bazel +++ b/nodeup/pkg/model/BUILD.bazel @@ -64,6 +64,7 @@ go_library( "//upup/pkg/fi:go_default_library", "//upup/pkg/fi/cloudup/awsup:go_default_library", "//upup/pkg/fi/nodeup/nodetasks:go_default_library", + "//util/pkg/architectures:go_default_library", "//util/pkg/exec:go_default_library", "//util/pkg/proxy:go_default_library", "//util/pkg/reflectutils:go_default_library", diff --git a/nodeup/pkg/model/containerd.go b/nodeup/pkg/model/containerd.go index b34591df1960c..7d314cd3066b6 100644 --- a/nodeup/pkg/model/containerd.go +++ b/nodeup/pkg/model/containerd.go @@ -29,6 +29,7 @@ import ( "k8s.io/kops/pkg/systemd" "k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks" + "k8s.io/kops/util/pkg/architectures" ) // ContainerdBuilder install containerd (just the packages at the moment) @@ -44,7 +45,7 @@ var containerdVersions = []packageVersion{ PackageVersion: "1.2.4", Name: "containerd.io", Distros: []distros.Distribution{distros.DistributionDebian9}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "1.2.4-1", Source: "https://download.docker.com/linux/debian/dists/stretch/pool/stable/amd64/containerd.io_1.2.4-1_amd64.deb", Hash: "5d4eeec093bc6f0b35921b88c3939b480acc619c790f4eab001a66efb957e6c1", @@ -55,7 +56,7 @@ var containerdVersions = []packageVersion{ PackageVersion: "1.2.10", Name: "containerd.io", Distros: []distros.Distribution{distros.DistributionDebian9}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "1.2.10-3", Source: "https://download.docker.com/linux/debian/dists/stretch/pool/stable/amd64/containerd.io_1.2.10-3_amd64.deb", Hash: "786a625f773ec5ac5dc4ebd9463ba7deb6926da890fa57a9ac79be7a6839865c", @@ -66,7 +67,7 @@ var containerdVersions = []packageVersion{ PackageVersion: "1.2.10", Name: "containerd.io", Distros: []distros.Distribution{distros.DistributionDebian10}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "1.2.10-3", Source: "https://download.docker.com/linux/debian/dists/buster/pool/stable/amd64/containerd.io_1.2.10-3_amd64.deb", Hash: "355973b23d3d172b5cfb05bc605f2b0cd7145f2fcc572264225d8910701c650d", @@ -77,7 +78,7 @@ var containerdVersions = []packageVersion{ PackageVersion: "1.2.10", Name: "containerd.io", Distros: []distros.Distribution{distros.DistributionXenial}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "1.2.10-3", Source: "https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/containerd.io_1.2.10-3_amd64.deb", Hash: "ec7f4698df82c4dc683a8835ef5a3ecce4df1e41c5d65b4e17558cdccf44952b", @@ -88,7 +89,7 @@ var containerdVersions = []packageVersion{ PackageVersion: "1.2.10", Name: "containerd.io", Distros: []distros.Distribution{distros.DistributionBionic}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "1.2.10-3", Source: "https://download.docker.com/linux/ubuntu/dists/bionic/pool/stable/amd64/containerd.io_1.2.10-3_amd64.deb", Hash: "ffa99f3f4b3a76c66f04ad327b8eb6b437e311887e3e0330447fbf5ea2ddd827", @@ -99,7 +100,7 @@ var containerdVersions = []packageVersion{ PackageVersion: "1.2.10", Name: "containerd.io", Distros: []distros.Distribution{distros.DistributionRhel7, distros.DistributionCentos7}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "1.2.10", Source: "https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.10-3.2.el7.x86_64.rpm", Hash: "8f29304480a197343fb6fb0fd28e8753aed4e177545568cb4ea3b0f0c02ebf82", @@ -110,7 +111,7 @@ var containerdVersions = []packageVersion{ PackageVersion: "1.2.10", Name: "containerd.io", Distros: []distros.Distribution{distros.DistributionRhel8, distros.DistributionCentos8}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "1.2.10", Source: "https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.10-3.2.el7.x86_64.rpm", Hash: "8f29304480a197343fb6fb0fd28e8753aed4e177545568cb4ea3b0f0c02ebf82", @@ -124,7 +125,7 @@ var containerdVersions = []packageVersion{ PackageVersion: "1.2.10", PlainBinary: true, Distros: []distros.Distribution{distros.DistributionAmazonLinux2, distros.DistributionFocal}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Source: "https://storage.googleapis.com/cri-containerd-release/cri-containerd-1.2.10.linux-amd64.tar.gz", Hash: "9125a6ae5a89dfe9403fea7d03a8d8ba9fa97b6863ee8698c4e6c258fb14f1fd", }, @@ -133,7 +134,7 @@ var containerdVersions = []packageVersion{ { PackageVersion: "1.2.11", PlainBinary: true, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Source: "https://storage.googleapis.com/cri-containerd-release/cri-containerd-1.2.11.linux-amd64.tar.gz", Hash: "df89b00e927115f1f21eec139e55668a6284abb2f378512677c99a3751579e51", }, @@ -142,7 +143,7 @@ var containerdVersions = []packageVersion{ { PackageVersion: "1.2.12", PlainBinary: true, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Source: "https://storage.googleapis.com/cri-containerd-release/cri-containerd-1.2.12.linux-amd64.tar.gz", Hash: "291c26f97546ad92ce51e1584c002b286a82a64f1138cf11f78ef7c91adf5c80", }, @@ -151,7 +152,7 @@ var containerdVersions = []packageVersion{ { PackageVersion: "1.2.13", PlainBinary: true, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Source: "https://storage.googleapis.com/cri-containerd-release/cri-containerd-1.2.13.linux-amd64.tar.gz", Hash: "92d6ae6c60f6b068652b31811ce23d650ec0f6cc1e618ec9ae23db9321956258", }, @@ -160,7 +161,7 @@ var containerdVersions = []packageVersion{ { PackageVersion: "1.3.2", PlainBinary: true, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Source: "https://storage.googleapis.com/cri-containerd-release/cri-containerd-1.3.2.linux-amd64.tar.gz", Hash: "95cf4d2cfa23c7a586980c51f8c283a9f0717e09d1a3cc54fc6ed7984923b7aa", }, @@ -169,7 +170,7 @@ var containerdVersions = []packageVersion{ { PackageVersion: "1.3.3", PlainBinary: true, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Source: "https://storage.googleapis.com/cri-containerd-release/cri-containerd-1.3.3.linux-amd64.tar.gz", Hash: "24ce7ad6b489fb25d07d2a3bb50e443fcce1ac3318f8cc0831e00668c2c9fd86", }, @@ -178,7 +179,7 @@ var containerdVersions = []packageVersion{ { PackageVersion: "1.3.4", PlainBinary: true, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Source: "https://storage.googleapis.com/cri-containerd-release/cri-containerd-1.3.4.linux-amd64.tar.gz", Hash: "4616971c3ad21c24f2f2320fa1c085577a91032a068dd56a41c7c4b71a458087", }, diff --git a/nodeup/pkg/model/context.go b/nodeup/pkg/model/context.go index 233de004d7efb..2925d1088d316 100644 --- a/nodeup/pkg/model/context.go +++ b/nodeup/pkg/model/context.go @@ -31,6 +31,7 @@ import ( "k8s.io/kops/pkg/systemd" "k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks" + "k8s.io/kops/util/pkg/architectures" "k8s.io/kops/util/pkg/vfs" "k8s.io/utils/mount" @@ -42,7 +43,7 @@ import ( // NodeupModelContext is the context supplied the nodeup tasks type NodeupModelContext struct { - Architecture Architecture + Architecture architectures.Architecture Assets *fi.AssetStore Cluster *kops.Cluster ConfigBase vfs.Path diff --git a/nodeup/pkg/model/convenience.go b/nodeup/pkg/model/convenience.go index 27587845fed7c..0e952f0899de1 100644 --- a/nodeup/pkg/model/convenience.go +++ b/nodeup/pkg/model/convenience.go @@ -24,6 +24,7 @@ import ( "k8s.io/kops/nodeup/pkg/distros" "k8s.io/kops/pkg/apis/kops" "k8s.io/kops/upup/pkg/fi" + "k8s.io/kops/util/pkg/architectures" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -143,7 +144,7 @@ type packageVersion struct { // List of dependencies that can be installed using the system's package // manager (e.g. apt-get install or yum install). Dependencies []string - Architectures []Architecture + Architectures []architectures.Architecture // PlainBinary indicates that the Source is not an OS, but a "bare" tar.gz PlainBinary bool @@ -153,7 +154,7 @@ type packageVersion struct { } // Match package version against configured values -func (d *packageVersion) matches(arch Architecture, packageVersion string, distro distros.Distribution) bool { +func (d *packageVersion) matches(arch architectures.Architecture, packageVersion string, distro distros.Distribution) bool { if d.PackageVersion != packageVersion { return false } diff --git a/nodeup/pkg/model/docker.go b/nodeup/pkg/model/docker.go index 909edfc0f6781..dcd76bee3b6b0 100644 --- a/nodeup/pkg/model/docker.go +++ b/nodeup/pkg/model/docker.go @@ -32,6 +32,7 @@ import ( "k8s.io/kops/pkg/systemd" "k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks" + "k8s.io/kops/util/pkg/architectures" ) // DockerBuilder install docker (just the packages at the moment) @@ -49,7 +50,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "17.03.2", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionDebian9}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "17.03.2~ce-0~debian-stretch", Source: "http://download.docker.com/linux/debian/dists/stretch/pool/stable/amd64/docker-ce_17.03.2~ce-0~debian-stretch_amd64.deb", Hash: "6f19489aba744dc02ce5fd9a65c0a2e3049b9f7a61cf70747ce33752094b0961", @@ -61,7 +62,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "17.03.2", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionXenial}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "17.03.2~ce-0~ubuntu-xenial", Source: "http://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/docker-ce_17.03.2~ce-0~ubuntu-xenial_amd64.deb", Hash: "68851f4a395c63b79b34e17ba5582379621389bbc9ea53cf34f70ea9839888fb", @@ -73,7 +74,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "17.03.2", PlainBinary: true, Distros: []distros.Distribution{distros.DistributionBionic}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Source: "http://download.docker.com/linux/static/stable/x86_64/docker-17.03.2-ce.tgz", Hash: "183b31b001e7480f3c691080486401aa519101a5cfe6e05ad01b9f5521c4112d", MarkImmutable: []string{"/usr/bin/docker-runc"}, @@ -84,7 +85,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "17.03.2", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionRhel7, distros.DistributionCentos7, distros.DistributionAmazonLinux2}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "17.03.2.ce", Source: "https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm", Hash: "0ead9d0db5c15e3123d3194f71f716a1d6e2a70c984b12a5dde4a72e6e483aca", @@ -104,7 +105,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "17.09.0", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionDebian9}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "17.09.0~ce-0~debian", Source: "http://download.docker.com/linux/debian/dists/stretch/pool/stable/amd64/docker-ce_17.09.0~ce-0~debian_amd64.deb", Hash: "80aa1429dc4d57eb6d73c291ab5feff5005f21d8402b1979e1e49db06eef52b0", @@ -115,7 +116,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "17.09.0", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionXenial}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "17.09.0~ce-0~ubuntu", Source: "http://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/docker-ce_17.09.0~ce-0~ubuntu_amd64.deb", Hash: "d33f6eb134f0ab0876148bd96de95ea47d583d7f2cddfdc6757979453f9bd9bf", @@ -126,7 +127,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "18.06.2", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionXenial}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "18.06.2~ce~3-0~ubuntu", Source: "https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/docker-ce_18.06.2~ce~3-0~ubuntu_amd64.deb", Hash: "1c52a80430d4dda213a01e6859e7c403b4bebe642accaa6358f5c75f5f2ba682", @@ -137,7 +138,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "18.06.3", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionXenial}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "18.06.3~ce~3-0~ubuntu", Source: "https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/docker-ce_18.06.3~ce~3-0~ubuntu_amd64.deb", Hash: "6e9da7303cfa7ef7d4d8035bdc205229dd84e572f29957a9fb36e1351fe88a24", @@ -148,7 +149,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "17.09.0", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionRhel7, distros.DistributionCentos7, distros.DistributionAmazonLinux2}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "17.09.0.ce", Source: "https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-17.09.0.ce-1.el7.centos.x86_64.rpm", Hash: "be342f205c3fc99258e3903bfd3c79dc7f7c337c9321b217f4789dfdfbcac8f9", @@ -159,7 +160,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "18.03.1", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionBionic}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "18.03.1~ce~3-0~ubuntu", Source: "https://download.docker.com/linux/ubuntu/dists/bionic/pool/stable/amd64/docker-ce_18.03.1~ce~3-0~ubuntu_amd64.deb", Hash: "a8d69913a38df46d768f5d4e87e1230d6a1b7ccb4f9098a4fd9357a518f34be0", @@ -170,7 +171,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "18.06.2", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionBionic}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "18.06.2~ce~3-0~ubuntu", Source: "https://download.docker.com/linux/ubuntu/dists/bionic/pool/stable/amd64/docker-ce_18.06.2~ce~3-0~ubuntu_amd64.deb", Hash: "056afb4440b8f2ae52841ee228d7794176fcb81aae0ba5614ecb7b4de6e4db9d", @@ -181,7 +182,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "18.06.1", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionDebian9}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "18.06.1~ce~3-0~debian", Source: "https://download.docker.com/linux/debian/dists/stretch/pool/stable/amd64/docker-ce_18.06.1~ce~3-0~debian_amd64.deb", Hash: "00a09a8993efd8095bd1817442db86c27de9720d7d5ade36aa52cd91198fa83d", @@ -193,7 +194,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "18.06.2", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionDebian9}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "18.06.2~ce~3-0~debian", Source: "https://download.docker.com/linux/debian/dists/stretch/pool/stable/amd64/docker-ce_18.06.2~ce~3-0~debian_amd64.deb", Hash: "cbbd2afc85b2a46d55abfd5d362595e39a54022b6c6baab0a5ddc4a85a74e318", @@ -205,7 +206,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "18.06.3", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionDebian10}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "18.06.3~ce~3-0~debian", Source: "https://download.docker.com/linux/debian/dists/buster/pool/stable/amd64/docker-ce_18.06.3~ce~3-0~debian_amd64.deb", Hash: "0c8ca09635553f0c6cb70a08bdef6f3b8d89b1247e4dab54896c93aad3bf3f25", @@ -216,7 +217,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "18.06.1", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionRhel7, distros.DistributionCentos7, distros.DistributionAmazonLinux2}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "18.06.1.ce", Source: "https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-18.06.1.ce-3.el7.x86_64.rpm", Hash: "352909b3df327d10a6ee27e2c6ee8638d90481ee93580ae79c9d1ff7530a196e", @@ -227,7 +228,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "18.09.3", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionDebian9}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "5:18.09.3~3-0~debian-stretch", Source: "https://download.docker.com/linux/debian/dists/stretch/pool/stable/amd64/docker-ce_18.09.3~3-0~debian-stretch_amd64.deb", Hash: "a941c03d0e7027481e4ff6cd5c77b871c4bf97df76e6444396e004adb759795d", @@ -245,7 +246,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "18.06.2", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionRhel7, distros.DistributionCentos7, distros.DistributionAmazonLinux2}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "18.06.2.ce", Source: "https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-18.06.2.ce-3.el7.x86_64.rpm", Hash: "0e5d98c359d93e8a892a07ab1f8eb8153964b535cadda61a8791ca2db3c6b76c", @@ -258,7 +259,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "18.06.3", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionBionic}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "18.06.3~ce~3-0~ubuntu", Source: "https://download.docker.com/linux/ubuntu/dists/bionic/pool/stable/amd64/docker-ce_18.06.3~ce~3-0~ubuntu_amd64.deb", Hash: "f8cc02112a125007f5c70f009ce9a91dd536018f139131074ee55cea555ba85d", @@ -270,7 +271,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "18.06.3", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionDebian9}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "18.06.3~ce~3-0~debian", Source: "https://download.docker.com/linux/debian/dists/stretch/pool/stable/amd64/docker-ce_18.06.3~ce~3-0~debian_amd64.deb", Hash: "0de184cc79d9f9c99b2a6fa4fdd8b29645e9a858106a9814bb11047073a4e8cb", @@ -281,7 +282,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "18.06.3", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionRhel7, distros.DistributionCentos7, distros.DistributionAmazonLinux2}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "18.06.3.ce", Source: "https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-18.06.3.ce-3.el7.x86_64.rpm", Hash: "f3703698cab918ab41b1244f699c8718a5e3bf4070fdf4894b5b6e8d92545a62", @@ -291,7 +292,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "18.06.3", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionRhel8, distros.DistributionCentos8}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "18.06.3.ce", Source: "https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-18.06.3.ce-3.el7.x86_64.rpm", Hash: "f3703698cab918ab41b1244f699c8718a5e3bf4070fdf4894b5b6e8d92545a62", @@ -304,7 +305,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "18.09.9", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionDebian9}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "5:18.09.9~3-0~debian-stretch", Source: "https://download.docker.com/linux/debian/dists/stretch/pool/stable/amd64/docker-ce_18.09.9~3-0~debian-stretch_amd64.deb", Hash: "53d9d25bb7d55c05a6c5829606122257ada8863ccb222ff0293fcf1d75990058", @@ -322,7 +323,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "18.09.9", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionDebian10}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "5:18.09.9~3-0~debian-buster", Source: "https://download.docker.com/linux/debian/dists/buster/pool/stable/amd64/docker-ce_18.09.9~3-0~debian-buster_amd64.deb", Hash: "b0f4ce24089593ef6335e53e4c78d619a58539492121340da963c1a88687a059", @@ -340,7 +341,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "18.09.9", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionXenial}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "5:18.09.9~3-0~ubuntu-xenial", Source: "https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/docker-ce_18.09.9~3-0~ubuntu-xenial_amd64.deb", Hash: "30885e58747eff619dc22b074307e21bc176c71396c5d54a32764ffcc359beaf", @@ -358,7 +359,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "18.09.9", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionBionic}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "5:18.09.9~3-0~ubuntu-bionic", Source: "https://download.docker.com/linux/ubuntu/dists/bionic/pool/stable/amd64/docker-ce_18.09.9~3-0~ubuntu-bionic_amd64.deb", Hash: "95160362599c506375c36f324f00404ad066ab4d94c840336781b5930d893467", @@ -376,7 +377,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "18.09.9", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionRhel7, distros.DistributionCentos7}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "18.09.9", Source: "https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-18.09.9-3.el7.x86_64.rpm", Hash: "f4be41bf8093c076462a9a2d7669d1b3158e4c3799759dbf9689b77de49385a8", @@ -394,7 +395,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "18.09.9", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionRhel8, distros.DistributionCentos8}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "18.09.9", Source: "https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-18.09.9-3.el7.x86_64.rpm", Hash: "f4be41bf8093c076462a9a2d7669d1b3158e4c3799759dbf9689b77de49385a8", @@ -415,7 +416,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "18.09.9", PlainBinary: true, Distros: []distros.Distribution{distros.DistributionAmazonLinux2, distros.DistributionFocal}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Source: "https://download.docker.com/linux/static/stable/x86_64/docker-18.09.9.tgz", Hash: "82a362af7689038c51573e0fd0554da8703f0d06f4dfe95dd5bda5acf0ae45fb", }, @@ -430,7 +431,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "19.03.4", PlainBinary: true, Distros: []distros.Distribution{distros.DistributionAmazonLinux2, distros.DistributionFocal}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Source: "https://download.docker.com/linux/static/stable/x86_64/docker-19.03.4.tgz", Hash: "efef2ad32d262674501e712351be0df9dd31d6034b175d0020c8f5d5c9c3fd10", }, @@ -440,7 +441,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "19.03.4", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionDebian9}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "5:19.03.4~3-0~debian-stretch", Source: "https://download.docker.com/linux/debian/dists/stretch/pool/stable/amd64/docker-ce_19.03.4~3-0~debian-stretch_amd64.deb", Hash: "a5fedef212914c443ed71c9ba2fbe0cdf39e0a6e2da8dfcc29881c6c536877ce", @@ -458,7 +459,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "19.03.4", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionDebian10}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "5:19.03.4~3-0~debian-buster", Source: "https://download.docker.com/linux/debian/dists/buster/pool/stable/amd64/docker-ce_19.03.4~3-0~debian-buster_amd64.deb", Hash: "cdd9d2147a6f6c9c38a6addfdd56d7d65d688a83f44ff3a289de7e15c796b87c", @@ -476,7 +477,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "19.03.4", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionXenial}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "5:19.03.4~3-0~ubuntu-xenial", Source: "https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/docker-ce_19.03.4~3-0~ubuntu-xenial_amd64.deb", Hash: "7bf9d7c3127dc910b8364c5799c667ff8a45e4c8bd859f908ea4a66944312ff3", @@ -494,7 +495,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "19.03.4", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionBionic}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "5:19.03.4~3-0~ubuntu-bionic", Source: "https://download.docker.com/linux/ubuntu/dists/bionic/pool/stable/amd64/docker-ce_19.03.4~3-0~ubuntu-bionic_amd64.deb", Hash: "31ee4b40cc6b76966318e007a1c7cedd64c6a3dd957de1de40734eb06320b8d3", @@ -512,7 +513,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "19.03.4", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionRhel7, distros.DistributionCentos7}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "19.03.4", Source: "https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-19.03.4-3.el7.x86_64.rpm", Hash: "46ebc08b3740bfb532f686a143e144a4c73ddcd600e83104ae4617b301b83f42", @@ -530,7 +531,7 @@ var dockerVersions = []packageVersion{ PackageVersion: "19.03.4", Name: "docker-ce", Distros: []distros.Distribution{distros.DistributionRhel8, distros.DistributionCentos8}, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Version: "19.03.4", Source: "https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-19.03.4-3.el7.x86_64.rpm", Hash: "46ebc08b3740bfb532f686a143e144a4c73ddcd600e83104ae4617b301b83f42", @@ -547,7 +548,7 @@ var dockerVersions = []packageVersion{ { PackageVersion: "19.03.8", PlainBinary: true, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Source: "https://download.docker.com/linux/static/stable/x86_64/docker-19.03.8.tgz", Hash: "7f4115dc6a3c19c917f8b9664d7b51c904def1c984e082c4600097433323cf6f", }, @@ -556,7 +557,7 @@ var dockerVersions = []packageVersion{ { PackageVersion: "19.03.11", PlainBinary: true, - Architectures: []Architecture{ArchitectureAmd64}, + Architectures: []architectures.Architecture{architectures.ArchitectureAmd64}, Source: "https://download.docker.com/linux/static/stable/x86_64/docker-19.03.11.tgz", Hash: "0f4336378f61ed73ed55a356ac19e46699a995f2aff34323ba5874d131548b9e", }, diff --git a/upup/pkg/fi/nodeup/BUILD.bazel b/upup/pkg/fi/nodeup/BUILD.bazel index 78805afccce10..a81770baf4640 100644 --- a/upup/pkg/fi/nodeup/BUILD.bazel +++ b/upup/pkg/fi/nodeup/BUILD.bazel @@ -22,6 +22,7 @@ go_library( "//upup/pkg/fi/nodeup/nodetasks:go_default_library", "//upup/pkg/fi/secrets:go_default_library", "//upup/pkg/fi/utils:go_default_library", + "//util/pkg/architectures:go_default_library", "//util/pkg/vfs:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws/ec2metadata:go_default_library", diff --git a/upup/pkg/fi/nodeup/command.go b/upup/pkg/fi/nodeup/command.go index c9c4a2fba159b..ffdd4dd458e6f 100644 --- a/upup/pkg/fi/nodeup/command.go +++ b/upup/pkg/fi/nodeup/command.go @@ -40,6 +40,7 @@ import ( "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks" "k8s.io/kops/upup/pkg/fi/secrets" "k8s.io/kops/upup/pkg/fi/utils" + "k8s.io/kops/util/pkg/architectures" "k8s.io/kops/util/pkg/vfs" "github.com/aws/aws-sdk-go/aws" @@ -167,22 +168,31 @@ func (c *NodeUpCommand) Run(out io.Writer) error { return err } + architecture, err := architectures.FindArchitecture() + if err != nil { + return fmt.Errorf("error determining OS architecture: %v", err) + } + + archTags := architecture.BuildTags() + distribution, err := distros.FindDistribution(c.FSRoot) if err != nil { return fmt.Errorf("error determining OS distribution: %v", err) } - osTags := distribution.BuildTags() + distroTags := distribution.BuildTags() nodeTags := sets.NewString() - nodeTags.Insert(osTags...) nodeTags.Insert(c.config.Tags...) + nodeTags.Insert(archTags...) + nodeTags.Insert(distroTags...) klog.Infof("Config tags: %v", c.config.Tags) - klog.Infof("OS tags: %v", osTags) + klog.Infof("Arch tags: %v", archTags) + klog.Infof("Distro tags: %v", distroTags) modelContext := &model.NodeupModelContext{ - Architecture: model.ArchitectureAmd64, + Architecture: architecture, Assets: assetStore, Cluster: c.cluster, ConfigBase: configBase, diff --git a/util/pkg/architectures/BUILD.bazel b/util/pkg/architectures/BUILD.bazel new file mode 100644 index 0000000000000..9ee07e763927e --- /dev/null +++ b/util/pkg/architectures/BUILD.bazel @@ -0,0 +1,9 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["architectures.go"], + importpath = "k8s.io/kops/util/pkg/architectures", + visibility = ["//visibility:public"], + deps = ["//vendor/k8s.io/klog:go_default_library"], +) diff --git a/util/pkg/architectures/architectures.go b/util/pkg/architectures/architectures.go new file mode 100644 index 0000000000000..df5e84833ac3b --- /dev/null +++ b/util/pkg/architectures/architectures.go @@ -0,0 +1,53 @@ +/* +Copyright 2019 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 architectures + +import ( + "fmt" + "runtime" + + "k8s.io/klog" +) + +type Architecture string + +var ( + ArchitectureAmd64 Architecture = "amd64" +) + +func FindArchitecture() (Architecture, error) { + switch runtime.GOARCH { + case "amd64": + return ArchitectureAmd64, nil + default: + return "", fmt.Errorf("unsupported arch: %q", runtime.GOARCH) + } +} + +func (a Architecture) BuildTags() []string { + var t []string + + switch a { + case ArchitectureAmd64: + t = []string{"_amd64"} + default: + klog.Fatalf("unknown architecture: %s", a) + return nil + } + + return t +} From d049862cff343cb8e150e94cb524544691fba21d Mon Sep 17 00:00:00 2001 From: Ciprian Hacman Date: Sat, 30 May 2020 17:21:19 +0300 Subject: [PATCH 4/5] Make architecture related decisions to nodeup --- pkg/model/components/apiserver.go | 2 +- pkg/model/components/context.go | 13 +++---------- pkg/model/components/image_test.go | 4 +--- pkg/model/components/kubecontrollermanager.go | 2 +- pkg/model/components/kubeproxy.go | 2 +- pkg/model/components/kubescheduler.go | 2 +- 6 files changed, 8 insertions(+), 17 deletions(-) diff --git a/pkg/model/components/apiserver.go b/pkg/model/components/apiserver.go index 60ae1de84dafd..28dd8fede2635 100644 --- a/pkg/model/components/apiserver.go +++ b/pkg/model/components/apiserver.go @@ -134,7 +134,7 @@ func (b *KubeAPIServerOptionsBuilder) BuildOptions(o interface{}) error { return nil } - image, err := Image("kube-apiserver", b.Architecture(), clusterSpec, b.AssetBuilder) + image, err := Image("kube-apiserver", clusterSpec, b.AssetBuilder) if err != nil { return err } diff --git a/pkg/model/components/context.go b/pkg/model/components/context.go index 3b5ac8e1fe4ec..14c4c97904545 100644 --- a/pkg/model/components/context.go +++ b/pkg/model/components/context.go @@ -51,13 +51,6 @@ func (c *OptionsContext) IsKubernetesLT(version string) bool { return !c.IsKubernetesGTE(version) } -// Architecture returns the architecture we are using -// We currently only support amd64, and we probably need to pass the InstanceGroup in -// But we can start collecting the architectural dependencies -func (c *OptionsContext) Architecture() string { - return "amd64" -} - // KubernetesVersion parses the semver version of kubernetes, from the cluster spec // Deprecated: prefer using OptionsContext.KubernetesVersion func KubernetesVersion(clusterSpec *kops.ClusterSpec) (*semver.Version, error) { @@ -140,7 +133,7 @@ func IsBaseURL(kubernetesVersion string) bool { } // Image returns the docker image name for the specified component -func Image(component string, architecture string, clusterSpec *kops.ClusterSpec, assetsBuilder *assets.AssetBuilder) (string, error) { +func Image(component string, clusterSpec *kops.ClusterSpec, assetsBuilder *assets.AssetBuilder) (string, error) { if assetsBuilder == nil { return "", fmt.Errorf("unable to parse assets as assetBuilder is not defined") } @@ -176,13 +169,13 @@ func Image(component string, architecture string, clusterSpec *kops.ClusterSpec, // // But ... this is only the case from 1.16 on... if kubernetesVersion.IsGTE("1.16") { - imageName += "-" + architecture + imageName += "-amd64" } baseURL := clusterSpec.KubernetesVersion baseURL = strings.TrimSuffix(baseURL, "/") - tagURL := baseURL + "/bin/linux/" + architecture + "/" + component + ".docker_tag" + tagURL := baseURL + "/bin/linux/amd64/" + component + ".docker_tag" klog.V(2).Infof("Downloading docker tag for %s from: %s", component, tagURL) b, err := vfs.Context.ReadFile(tagURL) diff --git a/pkg/model/components/image_test.go b/pkg/model/components/image_test.go index 8181d3108aeac..2d6b4e3141798 100644 --- a/pkg/model/components/image_test.go +++ b/pkg/model/components/image_test.go @@ -125,10 +125,8 @@ func TestImage(t *testing.T) { } } - architecture := "amd64" - assetBuilder := assets.NewAssetBuilder(g.Cluster, "") - actual, err := Image(g.Component, architecture, &g.Cluster.Spec, assetBuilder) + actual, err := Image(g.Component, &g.Cluster.Spec, assetBuilder) if err != nil { t.Errorf("unexpected error from image %q %v: %v", g.Component, g.Cluster.Spec.KubernetesVersion, err) diff --git a/pkg/model/components/kubecontrollermanager.go b/pkg/model/components/kubecontrollermanager.go index d5179fdafeac2..24bb0295ec641 100644 --- a/pkg/model/components/kubecontrollermanager.go +++ b/pkg/model/components/kubecontrollermanager.go @@ -111,7 +111,7 @@ func (b *KubeControllerManagerOptionsBuilder) BuildOptions(o interface{}) error kcm.LogLevel = 2 - image, err := Image("kube-controller-manager", b.Context.Architecture(), clusterSpec, b.Context.AssetBuilder) + image, err := Image("kube-controller-manager", clusterSpec, b.Context.AssetBuilder) if err != nil { return err } diff --git a/pkg/model/components/kubeproxy.go b/pkg/model/components/kubeproxy.go index 8c78db8d13565..05241a36ca7e4 100644 --- a/pkg/model/components/kubeproxy.go +++ b/pkg/model/components/kubeproxy.go @@ -47,7 +47,7 @@ func (b *KubeProxyOptionsBuilder) BuildOptions(o interface{}) error { config.CPURequest = "100m" } - image, err := Image("kube-proxy", b.Context.Architecture(), clusterSpec, b.Context.AssetBuilder) + image, err := Image("kube-proxy", clusterSpec, b.Context.AssetBuilder) if err != nil { return err } diff --git a/pkg/model/components/kubescheduler.go b/pkg/model/components/kubescheduler.go index 6cf320fabf374..6923c1b8399b0 100644 --- a/pkg/model/components/kubescheduler.go +++ b/pkg/model/components/kubescheduler.go @@ -43,7 +43,7 @@ func (b *KubeSchedulerOptionsBuilder) BuildOptions(o interface{}) error { } if config.Image == "" { - image, err := Image("kube-scheduler", b.Architecture(), clusterSpec, b.AssetBuilder) + image, err := Image("kube-scheduler", clusterSpec, b.AssetBuilder) if err != nil { return err } From 3eda07aec0f9f6f3b35480aaa0a7ed927c24b666 Mon Sep 17 00:00:00 2001 From: Ciprian Hacman Date: Sat, 30 May 2020 17:30:26 +0300 Subject: [PATCH 5/5] Update tests output --- pkg/model/tests/data/bootstrapscript_0.txt | 11 ++++ pkg/model/tests/data/bootstrapscript_1.txt | 11 ++++ pkg/model/tests/data/bootstrapscript_2.txt | 11 ++++ pkg/model/tests/data/bootstrapscript_3.txt | 11 ++++ pkg/model/tests/data/bootstrapscript_4.txt | 11 ++++ pkg/model/tests/data/bootstrapscript_5.txt | 11 ++++ .../cloudformation.json.extracted.yaml | 28 ++++++++- ...sters.additionalcidr.example.com_user_data | 15 ++++- ...sters.additionalcidr.example.com_user_data | 15 ++++- ...sters.additionalcidr.example.com_user_data | 15 ++++- ...nodes.additionalcidr.example.com_user_data | 13 ++++- .../cloudformation.json.extracted.yaml | 28 ++++++++- ...1a.masters.crosszone.example.com_user_data | 15 ++++- ...tion_nodes.crosszone.example.com_user_data | 13 ++++- ...ters.bastionuserdata.example.com_user_data | 15 ++++- ...odes.bastionuserdata.example.com_user_data | 13 ++++- .../cloudformation.json.extracted.yaml | 28 ++++++++- ...t-1a.masters.complex.example.com_user_data | 15 ++++- ...ration_nodes.complex.example.com_user_data | 13 ++++- .../cloudformation.json.extracted.yaml | 28 ++++++++- ...masters.existing-iam.example.com_user_data | 15 ++++- ...masters.existing-iam.example.com_user_data | 15 ++++- ...masters.existing-iam.example.com_user_data | 15 ++++- ...n_nodes.existing-iam.example.com_user_data | 13 ++++- .../cloudformation.json.extracted.yaml | 28 ++++++++- ...a.masters.existingsg.example.com_user_data | 15 ++++- ...b.masters.existingsg.example.com_user_data | 15 ++++- ...c.masters.existingsg.example.com_user_data | 15 ++++- ...ion_nodes.existingsg.example.com_user_data | 13 ++++- .../cloudformation.json.extracted.yaml | 28 ++++++++- ...a.masters.externallb.example.com_user_data | 15 ++++- ...ion_nodes.externallb.example.com_user_data | 13 ++++- ...ers.externalpolicies.example.com_user_data | 15 ++++- ...des.externalpolicies.example.com_user_data | 13 ++++- ...s-test-1a.masters.ha.example.com_user_data | 15 ++++- ...s-test-1b.masters.ha.example.com_user_data | 15 ++++- ...s-test-1c.masters.ha.example.com_user_data | 15 ++++- ...nfiguration_nodes.ha.example.com_user_data | 13 ++++- ...ha-gce-example-com_metadata_startup-script | 15 ++++- ...ha-gce-example-com_metadata_startup-script | 15 ++++- ...ha-gce-example-com_metadata_startup-script | 15 ++++- ...ha-gce-example-com_metadata_startup-script | 13 ++++- .../cloudformation.json.extracted.yaml | 58 ++++++++++++++++--- ...ters.launchtemplates.example.com_user_data | 2 +- ...ters.launchtemplates.example.com_user_data | 2 +- ...ters.launchtemplates.example.com_user_data | 2 +- ...odes.launchtemplates.example.com_user_data | 2 +- .../cloudformation.json.extracted.yaml | 28 ++++++++- ...masters.minimal-json.example.com_user_data | 15 ++++- ...n_nodes.minimal-json.example.com_user_data | 13 ++++- ...masters.minimal-tf11.example.com_user_data | 15 ++++- ...n_nodes.minimal-tf11.example.com_user_data | 13 ++++- ...t-1a.masters.minimal.example.com_user_data | 15 ++++- ...ration_nodes.minimal.example.com_user_data | 13 ++++- ...al-gce-example-com_metadata_startup-script | 15 ++++- ...al-gce-example-com_metadata_startup-script | 13 ++++- .../cloudformation.json.extracted.yaml | 58 ++++++++++++++++--- ...sters.mixedinstances.example.com_user_data | 15 ++++- ...sters.mixedinstances.example.com_user_data | 15 ++++- ...sters.mixedinstances.example.com_user_data | 15 ++++- ...nodes.mixedinstances.example.com_user_data | 2 +- .../cloudformation.json.extracted.yaml | 58 ++++++++++++++++--- ...sters.mixedinstances.example.com_user_data | 15 ++++- ...sters.mixedinstances.example.com_user_data | 15 ++++- ...sters.mixedinstances.example.com_user_data | 15 ++++- ...nodes.mixedinstances.example.com_user_data | 2 +- .../cloudformation.json.extracted.yaml | 28 ++++++++- ...-1a.masters.nosshkey.example.com_user_data | 15 ++++- ...ation_nodes.nosshkey.example.com_user_data | 13 ++++- ...rivate-shared-subnet.example.com_user_data | 15 ++++- ...rivate-shared-subnet.example.com_user_data | 13 ++++- .../cloudformation.json.extracted.yaml | 28 ++++++++- ...asters.privatecalico.example.com_user_data | 15 ++++- ..._nodes.privatecalico.example.com_user_data | 13 ++++- ...masters.privatecanal.example.com_user_data | 15 ++++- ...n_nodes.privatecanal.example.com_user_data | 13 ++++- .../cloudformation.json.extracted.yaml | 28 ++++++++- ...asters.privatecilium.example.com_user_data | 15 ++++- ..._nodes.privatecilium.example.com_user_data | 13 ++++- .../cloudformation.json.extracted.yaml | 28 ++++++++- ...rivateciliumadvanced.example.com_user_data | 15 ++++- ...rivateciliumadvanced.example.com_user_data | 13 ++++- ....masters.privatedns1.example.com_user_data | 15 ++++- ...on_nodes.privatedns1.example.com_user_data | 13 ++++- ....masters.privatedns2.example.com_user_data | 15 ++++- ...on_nodes.privatedns2.example.com_user_data | 13 ++++- ...sters.privateflannel.example.com_user_data | 15 ++++- ...nodes.privateflannel.example.com_user_data | 13 ++++- ...asters.privatekopeio.example.com_user_data | 15 ++++- ..._nodes.privatekopeio.example.com_user_data | 13 ++++- ...masters.privateweave.example.com_user_data | 15 ++++- ...n_nodes.privateweave.example.com_user_data | 13 ++++- ...sters.restrictaccess.example.com_user_data | 15 ++++- ...nodes.restrictaccess.example.com_user_data | 13 ++++- ...masters.sharedsubnet.example.com_user_data | 15 ++++- ...n_nodes.sharedsubnet.example.com_user_data | 13 ++++- ...1a.masters.sharedvpc.example.com_user_data | 15 ++++- ...tion_nodes.sharedvpc.example.com_user_data | 13 ++++- ...1a.masters.unmanaged.example.com_user_data | 15 ++++- ...tion_nodes.unmanaged.example.com_user_data | 13 ++++- 100 files changed, 1433 insertions(+), 179 deletions(-) diff --git a/pkg/model/tests/data/bootstrapscript_0.txt b/pkg/model/tests/data/bootstrapscript_0.txt index e331d6596ea4c..e27489225e44b 100644 --- a/pkg/model/tests/data/bootstrapscript_0.txt +++ b/pkg/model/tests/data/bootstrapscript_0.txt @@ -126,6 +126,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do diff --git a/pkg/model/tests/data/bootstrapscript_1.txt b/pkg/model/tests/data/bootstrapscript_1.txt index 74a5346896af2..3151acbeed3fd 100644 --- a/pkg/model/tests/data/bootstrapscript_1.txt +++ b/pkg/model/tests/data/bootstrapscript_1.txt @@ -126,6 +126,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do diff --git a/pkg/model/tests/data/bootstrapscript_2.txt b/pkg/model/tests/data/bootstrapscript_2.txt index 74a5346896af2..3151acbeed3fd 100644 --- a/pkg/model/tests/data/bootstrapscript_2.txt +++ b/pkg/model/tests/data/bootstrapscript_2.txt @@ -126,6 +126,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do diff --git a/pkg/model/tests/data/bootstrapscript_3.txt b/pkg/model/tests/data/bootstrapscript_3.txt index 7587eb4e21f2f..bd99b0f7f5fe8 100644 --- a/pkg/model/tests/data/bootstrapscript_3.txt +++ b/pkg/model/tests/data/bootstrapscript_3.txt @@ -126,6 +126,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do diff --git a/pkg/model/tests/data/bootstrapscript_4.txt b/pkg/model/tests/data/bootstrapscript_4.txt index b2d602b8a0a31..b3379786a6be0 100644 --- a/pkg/model/tests/data/bootstrapscript_4.txt +++ b/pkg/model/tests/data/bootstrapscript_4.txt @@ -126,6 +126,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do diff --git a/pkg/model/tests/data/bootstrapscript_5.txt b/pkg/model/tests/data/bootstrapscript_5.txt index b2d602b8a0a31..b3379786a6be0 100644 --- a/pkg/model/tests/data/bootstrapscript_5.txt +++ b/pkg/model/tests/data/bootstrapscript_5.txt @@ -126,6 +126,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do diff --git a/tests/integration/update_cluster/additional_cidr/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/additional_cidr/cloudformation.json.extracted.yaml index d0bf452d8a3a6..c4fe0192a1ee9 100644 --- a/tests/integration/update_cluster/additional_cidr/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/additional_cidr/cloudformation.json.extracted.yaml @@ -111,6 +111,17 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1bmastersadditionalcidrex } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -231,7 +242,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1bmastersadditionalcidrex networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -249,7 +260,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1bmastersadditionalcidrex networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false @@ -403,6 +414,17 @@ Resources.AWSAutoScalingLaunchConfigurationnodesadditionalcidrexamplecom.Propert } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -459,7 +481,7 @@ Resources.AWSAutoScalingLaunchConfigurationnodesadditionalcidrexamplecom.Propert networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_master-us-test-1a.masters.additionalcidr.example.com_user_data b/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_master-us-test-1a.masters.additionalcidr.example.com_user_data index 439a055500646..b7d8292e80077 100644 --- a/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_master-us-test-1a.masters.additionalcidr.example.com_user_data +++ b/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_master-us-test-1a.masters.additionalcidr.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -230,7 +241,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -248,7 +259,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_master-us-test-1b.masters.additionalcidr.example.com_user_data b/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_master-us-test-1b.masters.additionalcidr.example.com_user_data index aafe6d5deb0df..bb9b4534baca0 100644 --- a/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_master-us-test-1b.masters.additionalcidr.example.com_user_data +++ b/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_master-us-test-1b.masters.additionalcidr.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -230,7 +241,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -248,7 +259,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_master-us-test-1c.masters.additionalcidr.example.com_user_data b/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_master-us-test-1c.masters.additionalcidr.example.com_user_data index 0b8fd7cf40c0d..84003188a34bb 100644 --- a/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_master-us-test-1c.masters.additionalcidr.example.com_user_data +++ b/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_master-us-test-1c.masters.additionalcidr.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -230,7 +241,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -248,7 +259,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_nodes.additionalcidr.example.com_user_data b/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_nodes.additionalcidr.example.com_user_data index 72bf6aec90c06..6d6795e0197bc 100644 --- a/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_nodes.additionalcidr.example.com_user_data +++ b/tests/integration/update_cluster/additional_cidr/data/aws_launch_configuration_nodes.additionalcidr.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -166,7 +177,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/additional_user-data/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/additional_user-data/cloudformation.json.extracted.yaml index 89679f84ca69a..1e957cb4cc66c 100644 --- a/tests/integration/update_cluster/additional_user-data/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/additional_user-data/cloudformation.json.extracted.yaml @@ -120,6 +120,17 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersadditionaluserda } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -240,7 +251,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersadditionaluserda networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -258,7 +269,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersadditionaluserda networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false @@ -432,6 +443,17 @@ Resources.AWSAutoScalingLaunchConfigurationnodesadditionaluserdataexamplecom.Pro } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -488,7 +510,7 @@ Resources.AWSAutoScalingLaunchConfigurationnodesadditionaluserdataexamplecom.Pro networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/api_elb_cross_zone/data/aws_launch_configuration_master-us-test-1a.masters.crosszone.example.com_user_data b/tests/integration/update_cluster/api_elb_cross_zone/data/aws_launch_configuration_master-us-test-1a.masters.crosszone.example.com_user_data index ab0b6cd7c5825..91bcade924236 100644 --- a/tests/integration/update_cluster/api_elb_cross_zone/data/aws_launch_configuration_master-us-test-1a.masters.crosszone.example.com_user_data +++ b/tests/integration/update_cluster/api_elb_cross_zone/data/aws_launch_configuration_master-us-test-1a.masters.crosszone.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -231,7 +242,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -249,7 +260,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/api_elb_cross_zone/data/aws_launch_configuration_nodes.crosszone.example.com_user_data b/tests/integration/update_cluster/api_elb_cross_zone/data/aws_launch_configuration_nodes.crosszone.example.com_user_data index df31a94530350..a34fa66ce4987 100644 --- a/tests/integration/update_cluster/api_elb_cross_zone/data/aws_launch_configuration_nodes.crosszone.example.com_user_data +++ b/tests/integration/update_cluster/api_elb_cross_zone/data/aws_launch_configuration_nodes.crosszone.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -166,7 +177,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/bastionadditional_user-data/data/aws_launch_configuration_master-us-test-1a.masters.bastionuserdata.example.com_user_data b/tests/integration/update_cluster/bastionadditional_user-data/data/aws_launch_configuration_master-us-test-1a.masters.bastionuserdata.example.com_user_data index 82d8ce8b87d17..79479a209201c 100644 --- a/tests/integration/update_cluster/bastionadditional_user-data/data/aws_launch_configuration_master-us-test-1a.masters.bastionuserdata.example.com_user_data +++ b/tests/integration/update_cluster/bastionadditional_user-data/data/aws_launch_configuration_master-us-test-1a.masters.bastionuserdata.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -229,7 +240,7 @@ kubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -246,7 +257,7 @@ masterKubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/bastionadditional_user-data/data/aws_launch_configuration_nodes.bastionuserdata.example.com_user_data b/tests/integration/update_cluster/bastionadditional_user-data/data/aws_launch_configuration_nodes.bastionuserdata.example.com_user_data index 964e0155cdcc9..1329560ba2f17 100644 --- a/tests/integration/update_cluster/bastionadditional_user-data/data/aws_launch_configuration_nodes.bastionuserdata.example.com_user_data +++ b/tests/integration/update_cluster/bastionadditional_user-data/data/aws_launch_configuration_nodes.bastionuserdata.example.com_user_data @@ -119,6 +119,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -174,7 +185,7 @@ kubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/complex/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/complex/cloudformation.json.extracted.yaml index fdf944b4ca273..a40a966374ebd 100644 --- a/tests/integration/update_cluster/complex/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/complex/cloudformation.json.extracted.yaml @@ -111,6 +111,17 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amasterscomplexexampleco } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -233,7 +244,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amasterscomplexexampleco networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -251,7 +262,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amasterscomplexexampleco networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false @@ -405,6 +416,17 @@ Resources.AWSAutoScalingLaunchConfigurationnodescomplexexamplecom.Properties.Use } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -461,7 +483,7 @@ Resources.AWSAutoScalingLaunchConfigurationnodescomplexexamplecom.Properties.Use networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/complex/data/aws_launch_configuration_master-us-test-1a.masters.complex.example.com_user_data b/tests/integration/update_cluster/complex/data/aws_launch_configuration_master-us-test-1a.masters.complex.example.com_user_data index fdff18f94fbf8..5d18a76ea0206 100644 --- a/tests/integration/update_cluster/complex/data/aws_launch_configuration_master-us-test-1a.masters.complex.example.com_user_data +++ b/tests/integration/update_cluster/complex/data/aws_launch_configuration_master-us-test-1a.masters.complex.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -232,7 +243,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -250,7 +261,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/complex/data/aws_launch_configuration_nodes.complex.example.com_user_data b/tests/integration/update_cluster/complex/data/aws_launch_configuration_nodes.complex.example.com_user_data index 1c128eca26514..735bb20a55c6c 100644 --- a/tests/integration/update_cluster/complex/data/aws_launch_configuration_nodes.complex.example.com_user_data +++ b/tests/integration/update_cluster/complex/data/aws_launch_configuration_nodes.complex.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -166,7 +177,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/containerd-cloudformation/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/containerd-cloudformation/cloudformation.json.extracted.yaml index 6c10ae0f5009d..d2e0a4ea71904 100644 --- a/tests/integration/update_cluster/containerd-cloudformation/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/containerd-cloudformation/cloudformation.json.extracted.yaml @@ -111,6 +111,17 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amasterscontainerdexampl } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -230,7 +241,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amasterscontainerdexampl networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -248,7 +259,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amasterscontainerdexampl networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false @@ -402,6 +413,17 @@ Resources.AWSAutoScalingLaunchConfigurationnodescontainerdexamplecom.Properties. } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -457,7 +479,7 @@ Resources.AWSAutoScalingLaunchConfigurationnodescontainerdexamplecom.Properties. networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_master-us-test-1a.masters.existing-iam.example.com_user_data b/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_master-us-test-1a.masters.existing-iam.example.com_user_data index dc7686ec21287..6df1084654311 100644 --- a/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_master-us-test-1a.masters.existing-iam.example.com_user_data +++ b/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_master-us-test-1a.masters.existing-iam.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -230,7 +241,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -248,7 +259,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_master-us-test-1b.masters.existing-iam.example.com_user_data b/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_master-us-test-1b.masters.existing-iam.example.com_user_data index bb7e3cff008fb..0c5c0b056b38e 100644 --- a/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_master-us-test-1b.masters.existing-iam.example.com_user_data +++ b/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_master-us-test-1b.masters.existing-iam.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -230,7 +241,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -248,7 +259,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_master-us-test-1c.masters.existing-iam.example.com_user_data b/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_master-us-test-1c.masters.existing-iam.example.com_user_data index 7383615329d1c..3fe78af0f79d9 100644 --- a/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_master-us-test-1c.masters.existing-iam.example.com_user_data +++ b/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_master-us-test-1c.masters.existing-iam.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -230,7 +241,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -248,7 +259,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_nodes.existing-iam.example.com_user_data b/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_nodes.existing-iam.example.com_user_data index d44cd5ae62f67..09935fce0f533 100644 --- a/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_nodes.existing-iam.example.com_user_data +++ b/tests/integration/update_cluster/existing_iam/data/aws_launch_configuration_nodes.existing-iam.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -166,7 +177,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/existing_iam_cloudformation/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/existing_iam_cloudformation/cloudformation.json.extracted.yaml index ed5afea38299b..fe8719bc5cd56 100644 --- a/tests/integration/update_cluster/existing_iam_cloudformation/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/existing_iam_cloudformation/cloudformation.json.extracted.yaml @@ -111,6 +111,17 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersminimalexampleco } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -231,7 +242,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersminimalexampleco networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -249,7 +260,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersminimalexampleco networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false @@ -403,6 +414,17 @@ Resources.AWSAutoScalingLaunchConfigurationnodesminimalexamplecom.Properties.Use } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -459,7 +481,7 @@ Resources.AWSAutoScalingLaunchConfigurationnodesminimalexamplecom.Properties.Use networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_master-us-test-1a.masters.existingsg.example.com_user_data b/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_master-us-test-1a.masters.existingsg.example.com_user_data index d6bbef71f50f9..5e9a655640fa6 100644 --- a/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_master-us-test-1a.masters.existingsg.example.com_user_data +++ b/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_master-us-test-1a.masters.existingsg.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -230,7 +241,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -248,7 +259,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_master-us-test-1b.masters.existingsg.example.com_user_data b/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_master-us-test-1b.masters.existingsg.example.com_user_data index 47782bd620162..11eb9a85de7f4 100644 --- a/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_master-us-test-1b.masters.existingsg.example.com_user_data +++ b/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_master-us-test-1b.masters.existingsg.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -230,7 +241,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -248,7 +259,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_master-us-test-1c.masters.existingsg.example.com_user_data b/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_master-us-test-1c.masters.existingsg.example.com_user_data index f72fb87fb90c4..93e83958e0a24 100644 --- a/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_master-us-test-1c.masters.existingsg.example.com_user_data +++ b/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_master-us-test-1c.masters.existingsg.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -230,7 +241,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -248,7 +259,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_nodes.existingsg.example.com_user_data b/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_nodes.existingsg.example.com_user_data index 929b57c405ffa..b3549bb77fbab 100644 --- a/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_nodes.existingsg.example.com_user_data +++ b/tests/integration/update_cluster/existing_sg/data/aws_launch_configuration_nodes.existingsg.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -166,7 +177,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/externallb/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/externallb/cloudformation.json.extracted.yaml index 2eda2bafe7e30..d969c71ed917a 100644 --- a/tests/integration/update_cluster/externallb/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/externallb/cloudformation.json.extracted.yaml @@ -111,6 +111,17 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersexternallbexampl } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -231,7 +242,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersexternallbexampl networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -249,7 +260,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersexternallbexampl networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false @@ -403,6 +414,17 @@ Resources.AWSAutoScalingLaunchConfigurationnodesexternallbexamplecom.Properties. } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -459,7 +481,7 @@ Resources.AWSAutoScalingLaunchConfigurationnodesexternallbexamplecom.Properties. networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/externallb/data/aws_launch_configuration_master-us-test-1a.masters.externallb.example.com_user_data b/tests/integration/update_cluster/externallb/data/aws_launch_configuration_master-us-test-1a.masters.externallb.example.com_user_data index 976af5d98ad58..b27722f9d87a0 100644 --- a/tests/integration/update_cluster/externallb/data/aws_launch_configuration_master-us-test-1a.masters.externallb.example.com_user_data +++ b/tests/integration/update_cluster/externallb/data/aws_launch_configuration_master-us-test-1a.masters.externallb.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -230,7 +241,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -248,7 +259,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/externallb/data/aws_launch_configuration_nodes.externallb.example.com_user_data b/tests/integration/update_cluster/externallb/data/aws_launch_configuration_nodes.externallb.example.com_user_data index 3e2932ec900e8..69747cca392bc 100644 --- a/tests/integration/update_cluster/externallb/data/aws_launch_configuration_nodes.externallb.example.com_user_data +++ b/tests/integration/update_cluster/externallb/data/aws_launch_configuration_nodes.externallb.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -166,7 +177,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/externalpolicies/data/aws_launch_configuration_master-us-test-1a.masters.externalpolicies.example.com_user_data b/tests/integration/update_cluster/externalpolicies/data/aws_launch_configuration_master-us-test-1a.masters.externalpolicies.example.com_user_data index af5c6b8f56acb..fd869bd3c5a70 100644 --- a/tests/integration/update_cluster/externalpolicies/data/aws_launch_configuration_master-us-test-1a.masters.externalpolicies.example.com_user_data +++ b/tests/integration/update_cluster/externalpolicies/data/aws_launch_configuration_master-us-test-1a.masters.externalpolicies.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -232,7 +243,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -250,7 +261,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/externalpolicies/data/aws_launch_configuration_nodes.externalpolicies.example.com_user_data b/tests/integration/update_cluster/externalpolicies/data/aws_launch_configuration_nodes.externalpolicies.example.com_user_data index 0a2fd4647f4ca..c57fe701ac867 100644 --- a/tests/integration/update_cluster/externalpolicies/data/aws_launch_configuration_nodes.externalpolicies.example.com_user_data +++ b/tests/integration/update_cluster/externalpolicies/data/aws_launch_configuration_nodes.externalpolicies.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -166,7 +177,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/ha/data/aws_launch_configuration_master-us-test-1a.masters.ha.example.com_user_data b/tests/integration/update_cluster/ha/data/aws_launch_configuration_master-us-test-1a.masters.ha.example.com_user_data index d6a90445d1cbe..cc9b0898b902f 100644 --- a/tests/integration/update_cluster/ha/data/aws_launch_configuration_master-us-test-1a.masters.ha.example.com_user_data +++ b/tests/integration/update_cluster/ha/data/aws_launch_configuration_master-us-test-1a.masters.ha.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -230,7 +241,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -248,7 +259,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/ha/data/aws_launch_configuration_master-us-test-1b.masters.ha.example.com_user_data b/tests/integration/update_cluster/ha/data/aws_launch_configuration_master-us-test-1b.masters.ha.example.com_user_data index bded4dd57d267..a0f12b486c3d3 100644 --- a/tests/integration/update_cluster/ha/data/aws_launch_configuration_master-us-test-1b.masters.ha.example.com_user_data +++ b/tests/integration/update_cluster/ha/data/aws_launch_configuration_master-us-test-1b.masters.ha.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -230,7 +241,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -248,7 +259,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/ha/data/aws_launch_configuration_master-us-test-1c.masters.ha.example.com_user_data b/tests/integration/update_cluster/ha/data/aws_launch_configuration_master-us-test-1c.masters.ha.example.com_user_data index 27e903c45ad0a..8a98690c31e1b 100644 --- a/tests/integration/update_cluster/ha/data/aws_launch_configuration_master-us-test-1c.masters.ha.example.com_user_data +++ b/tests/integration/update_cluster/ha/data/aws_launch_configuration_master-us-test-1c.masters.ha.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -230,7 +241,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -248,7 +259,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/ha/data/aws_launch_configuration_nodes.ha.example.com_user_data b/tests/integration/update_cluster/ha/data/aws_launch_configuration_nodes.ha.example.com_user_data index 3b4ba01d2a742..12597a2141e24 100644 --- a/tests/integration/update_cluster/ha/data/aws_launch_configuration_nodes.ha.example.com_user_data +++ b/tests/integration/update_cluster/ha/data/aws_launch_configuration_nodes.ha.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -166,7 +177,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_master-us-test1-a-ha-gce-example-com_metadata_startup-script b/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_master-us-test1-a-ha-gce-example-com_metadata_startup-script index e3f7cc08cf3bd..d31ecbd1ae631 100644 --- a/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_master-us-test1-a-ha-gce-example-com_metadata_startup-script +++ b/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_master-us-test1-a-ha-gce-example-com_metadata_startup-script @@ -109,6 +109,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -232,7 +243,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -251,7 +262,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_master-us-test1-b-ha-gce-example-com_metadata_startup-script b/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_master-us-test1-b-ha-gce-example-com_metadata_startup-script index ca900ff0c3477..f99e7b90af616 100644 --- a/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_master-us-test1-b-ha-gce-example-com_metadata_startup-script +++ b/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_master-us-test1-b-ha-gce-example-com_metadata_startup-script @@ -109,6 +109,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -232,7 +243,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -251,7 +262,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_master-us-test1-c-ha-gce-example-com_metadata_startup-script b/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_master-us-test1-c-ha-gce-example-com_metadata_startup-script index f1d4777b28fd1..5db061e438a7c 100644 --- a/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_master-us-test1-c-ha-gce-example-com_metadata_startup-script +++ b/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_master-us-test1-c-ha-gce-example-com_metadata_startup-script @@ -109,6 +109,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -232,7 +243,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -251,7 +262,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_nodes-ha-gce-example-com_metadata_startup-script b/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_nodes-ha-gce-example-com_metadata_startup-script index 2be0e2cd903ef..cc15ca7dd102a 100644 --- a/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_nodes-ha-gce-example-com_metadata_startup-script +++ b/tests/integration/update_cluster/ha_gce/data/google_compute_instance_template_nodes-ha-gce-example-com_metadata_startup-script @@ -109,6 +109,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -168,7 +179,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/launch_templates/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/launch_templates/cloudformation.json.extracted.yaml index 8c4ff0746df9d..674ccc9468b18 100644 --- a/tests/integration/update_cluster/launch_templates/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/launch_templates/cloudformation.json.extracted.yaml @@ -111,6 +111,17 @@ Resources.AWSEC2LaunchTemplatemasterustest1amasterslaunchtemplatesexamplecom.Pro } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -232,7 +243,7 @@ Resources.AWSEC2LaunchTemplatemasterustest1amasterslaunchtemplatesexamplecom.Pro networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: allowPrivileged: true @@ -251,7 +262,7 @@ Resources.AWSEC2LaunchTemplatemasterustest1amasterslaunchtemplatesexamplecom.Pro networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false @@ -405,6 +416,17 @@ Resources.AWSEC2LaunchTemplatemasterustest1bmasterslaunchtemplatesexamplecom.Pro } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -526,7 +548,7 @@ Resources.AWSEC2LaunchTemplatemasterustest1bmasterslaunchtemplatesexamplecom.Pro networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: allowPrivileged: true @@ -545,7 +567,7 @@ Resources.AWSEC2LaunchTemplatemasterustest1bmasterslaunchtemplatesexamplecom.Pro networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false @@ -699,6 +721,17 @@ Resources.AWSEC2LaunchTemplatemasterustest1cmasterslaunchtemplatesexamplecom.Pro } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -820,7 +853,7 @@ Resources.AWSEC2LaunchTemplatemasterustest1cmasterslaunchtemplatesexamplecom.Pro networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: allowPrivileged: true @@ -839,7 +872,7 @@ Resources.AWSEC2LaunchTemplatemasterustest1cmasterslaunchtemplatesexamplecom.Pro networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false @@ -993,6 +1026,17 @@ Resources.AWSEC2LaunchTemplatenodeslaunchtemplatesexamplecom.Properties.LaunchTe } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -1050,7 +1094,7 @@ Resources.AWSEC2LaunchTemplatenodeslaunchtemplatesexamplecom.Properties.LaunchTe networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/launch_templates/data/aws_launch_template_master-us-test-1a.masters.launchtemplates.example.com_user_data b/tests/integration/update_cluster/launch_templates/data/aws_launch_template_master-us-test-1a.masters.launchtemplates.example.com_user_data index 247fedd97074c..767e034ccb26e 100644 --- a/tests/integration/update_cluster/launch_templates/data/aws_launch_template_master-us-test-1a.masters.launchtemplates.example.com_user_data +++ b/tests/integration/update_cluster/launch_templates/data/aws_launch_template_master-us-test-1a.masters.launchtemplates.example.com_user_data @@ -1 +1 @@ -IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkw9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE1LjAvbGludXgtYW1kNjQtbm9kZXVwLGh0dHBzOi8va3ViZXVwdjIuczMuYW1hem9uYXdzLmNvbS9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0g9OTYwNGVmMTgyNjdhZDdiNWNmNGNlYmJmN2FiNjQ0MjNjZjViYjAzNDJkMTY5YzYwOGFjNjM3NmU2YWYyNmQ4MQoKZXhwb3J0IEFXU19SRUdJT049dXMtdGVzdC0xCgoKCgpmdW5jdGlvbiBlbnN1cmUtaW5zdGFsbC1kaXIoKSB7CiAgSU5TVEFMTF9ESVI9Ii9vcHQva29wcyIKICAjIE9uIENvbnRhaW5lck9TLCB3ZSBpbnN0YWxsIHVuZGVyIC92YXIvbGliL3Rvb2xib3g7IC9vcHQgaXMgcm8gYW5kIG5vZXhlYwogIGlmIFtbIC1kIC92YXIvbGliL3Rvb2xib3ggXV07IHRoZW4KICAgIElOU1RBTExfRElSPSIvdmFyL2xpYi90b29sYm94L2tvcHMiCiAgZmkKICBta2RpciAtcCAke0lOU1RBTExfRElSfS9iaW4KICBta2RpciAtcCAke0lOU1RBTExfRElSfS9jb25mCiAgY2QgJHtJTlNUQUxMX0RJUn0KfQoKIyBSZXRyeSBhIGRvd25sb2FkIHVudGlsIHdlIGdldCBpdC4gYXJnczogbmFtZSwgc2hhLCB1cmwxLCB1cmwyLi4uCmRvd25sb2FkLW9yLWJ1c3QoKSB7CiAgbG9jYWwgLXIgZmlsZT0iJDEiCiAgbG9jYWwgLXIgaGFzaD0iJDIiCiAgc2hpZnQgMgoKICB1cmxzPSggJCogKQogIHdoaWxlIHRydWU7IGRvCiAgICBmb3IgdXJsIGluICIke3VybHNbQF19IjsgZG8KICAgICAgY29tbWFuZHM9KAogICAgICAgICJjdXJsIC1mIC0taXB2NCAtLWNvbXByZXNzZWQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLS1jb21wcmVzc2lvbj1hdXRvIC1PICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dD0yMCAtLXRyaWVzPTYgLS13YWl0PTEwIgogICAgICAgICJjdXJsIC1mIC0taXB2NCAtTG8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0IDIwIC0tcmV0cnkgNiAtLXJldHJ5LWRlbGF5IDEwIgogICAgICAgICJ3Z2V0IC0taW5ldDQtb25seSAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgKQogICAgICBmb3IgY21kIGluICIke2NvbW1hbmRzW0BdfSI7IGRvCiAgICAgICAgZWNobyAiQXR0ZW1wdGluZyBkb3dubG9hZCB3aXRoOiAke2NtZH0ge3VybH0iCiAgICAgICAgaWYgISAoJHtjbWR9ICIke3VybH0iKTsgdGhlbgogICAgICAgICAgZWNobyAiPT0gRG93bmxvYWQgZmFpbGVkIHdpdGggJHtjbWR9ID09IgogICAgICAgICAgY29udGludWUKICAgICAgICBmaQogICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXSAmJiAhIHZhbGlkYXRlLWhhc2ggIiR7ZmlsZX0iICIke2hhc2h9IjsgdGhlbgogICAgICAgICAgZWNobyAiPT0gSGFzaCB2YWxpZGF0aW9uIG9mICR7dXJsfSBmYWlsZWQuIFJldHJ5aW5nLiA9PSIKICAgICAgICAgIHJtIC1mICIke2ZpbGV9IgogICAgICAgIGVsc2UKICAgICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXTsgdGhlbgogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSAoU0hBMSA9ICR7aGFzaH0pID09IgogICAgICAgICAgZWxzZQogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSA9PSIKICAgICAgICAgIGZpCiAgICAgICAgICByZXR1cm4KICAgICAgICBmaQogICAgICBkb25lCiAgICBkb25lCgogICAgZWNobyAiQWxsIGRvd25sb2FkcyBmYWlsZWQ7IHNsZWVwaW5nIGJlZm9yZSByZXRyeWluZyIKICAgIHNsZWVwIDYwCiAgZG9uZQp9Cgp2YWxpZGF0ZS1oYXNoKCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGV4cGVjdGVkPSIkMiIKICBsb2NhbCBhY3R1YWwKCiAgYWN0dWFsPSQoc2hhMjU2c3VtICR7ZmlsZX0gfCBhd2sgJ3sgcHJpbnQgJDEgfScpIHx8IHRydWUKICBpZiBbWyAiJHthY3R1YWx9IiAhPSAiJHtleHBlY3RlZH0iIF1dOyB0aGVuCiAgICBlY2hvICI9PSAke2ZpbGV9IGNvcnJ1cHRlZCwgaGFzaCAke2FjdHVhbH0gZG9lc24ndCBtYXRjaCBleHBlY3RlZCAke2V4cGVjdGVkfSA9PSIKICAgIHJldHVybiAxCiAgZmkKfQoKZnVuY3Rpb24gc3BsaXQtY29tbWFzKCkgewogIGVjaG8gJDEgfCB0ciAiLCIgIlxuIgp9CgpmdW5jdGlvbiB0cnktZG93bmxvYWQtcmVsZWFzZSgpIHsKICBsb2NhbCAtciBub2RldXBfdXJscz0oICQoc3BsaXQtY29tbWFzICIke05PREVVUF9VUkx9IikgKQogIGlmIFtbIC1uICIke05PREVVUF9IQVNIOi19IiBdXTsgdGhlbgogICAgbG9jYWwgLXIgbm9kZXVwX2hhc2g9IiR7Tk9ERVVQX0hBU0h9IgogIGVsc2UKICAjIFRPRE86IFJlbW92ZT8KICAgIGVjaG8gIkRvd25sb2FkaW5nIHNoYTI1NiAobm90IGZvdW5kIGluIGVudikiCiAgICBkb3dubG9hZC1vci1idXN0IG5vZGV1cC5zaGEyNTYgIiIgIiR7bm9kZXVwX3VybHNbQF0vJS8uc2hhMjU2fSIKICAgIGxvY2FsIC1yIG5vZGV1cF9oYXNoPSQoY2F0IG5vZGV1cC5zaGEyNTYpCiAgZmkKCiAgZWNobyAiRG93bmxvYWRpbmcgbm9kZXVwICgke25vZGV1cF91cmxzW0BdfSkiCiAgZG93bmxvYWQtb3ItYnVzdCBub2RldXAgIiR7bm9kZXVwX2hhc2h9IiAiJHtub2RldXBfdXJsc1tAXX0iCgogIGNobW9kICt4IG5vZGV1cAp9CgpmdW5jdGlvbiBkb3dubG9hZC1yZWxlYXNlKCkgewogICMgSW4gY2FzZSBvZiBmYWlsdXJlIGNoZWNraW5nIGludGVncml0eSBvZiByZWxlYXNlLCByZXRyeS4KICBjZCAke0lOU1RBTExfRElSfS9iaW4KICB1bnRpbCB0cnktZG93bmxvYWQtcmVsZWFzZTsgZG8KICAgIHNsZWVwIDE1CiAgICBlY2hvICJDb3VsZG4ndCBkb3dubG9hZCByZWxlYXNlLiBSZXRyeWluZy4uLiIKICBkb25lCgogIGVjaG8gIlJ1bm5pbmcgbm9kZXVwIgogICMgV2UgY2FuJ3QgcnVuIGluIHRoZSBmb3JlZ3JvdW5kIGJlY2F1c2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci9kb2NrZXIvaXNzdWVzLzIzNzkzCiAgKCBjZCAke0lOU1RBTExfRElSfS9iaW47IC4vbm9kZXVwIC0taW5zdGFsbC1zeXN0ZW1kLXVuaXQgLS1jb25mPSR7SU5TVEFMTF9ESVJ9L2NvbmYva3ViZV9lbnYueWFtbCAtLXY9OCAgKQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi9iaW4vc3lzdGVtZC1tYWNoaW5lLWlkLXNldHVwIHx8IGVjaG8gImZhaWxlZCB0byBzZXQgdXAgZW5zdXJlIG1hY2hpbmUtaWQgY29uZmlndXJlZCIKCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBzdGFydGluZyA9PSIKZW5zdXJlLWluc3RhbGwtZGlyCgpjYXQgPiBjb25mL2NsdXN0ZXJfc3BlYy55YW1sIDw8ICdfX0VPRl9DTFVTVEVSX1NQRUMnCmNsb3VkQ29uZmlnOiBudWxsCmNvbnRhaW5lclJ1bnRpbWU6IGRvY2tlcgpjb250YWluZXJkOgogIHNraXBJbnN0YWxsOiB0cnVlCmRvY2tlcjoKICBpcE1hc3E6IGZhbHNlCiAgaXBUYWJsZXM6IGZhbHNlCiAgbG9nRHJpdmVyOiBqc29uLWZpbGUKICBsb2dMZXZlbDogd2FybgogIGxvZ09wdDoKICAtIG1heC1zaXplPTEwbQogIC0gbWF4LWZpbGU9NQogIHN0b3JhZ2U6IG92ZXJsYXkyLG92ZXJsYXksYXVmcwogIHZlcnNpb246IDE4LjA2LjMKZW5jcnlwdGlvbkNvbmZpZzogbnVsbApldGNkQ2x1c3RlcnM6CiAgZXZlbnRzOgogICAgdmVyc2lvbjogMy4yLjI0CiAgbWFpbjoKICAgIHZlcnNpb246IDMuMi4yNAprdWJlQVBJU2VydmVyOgogIGFsbG93UHJpdmlsZWdlZDogdHJ1ZQogIGFub255bW91c0F1dGg6IGZhbHNlCiAgYXBpU2VydmVyQ291bnQ6IDMKICBhdXRob3JpemF0aW9uTW9kZTogQWx3YXlzQWxsb3cKICBiaW5kQWRkcmVzczogMC4wLjAuMAogIGNsb3VkUHJvdmlkZXI6IGF3cwogIGVuYWJsZUFkbWlzc2lvblBsdWdpbnM6CiAgLSBOYW1lc3BhY2VMaWZlY3ljbGUKICAtIExpbWl0UmFuZ2VyCiAgLSBTZXJ2aWNlQWNjb3VudAogIC0gUGVyc2lzdGVudFZvbHVtZUxhYmVsCiAgLSBEZWZhdWx0U3RvcmFnZUNsYXNzCiAgLSBEZWZhdWx0VG9sZXJhdGlvblNlY29uZHMKICAtIE11dGF0aW5nQWRtaXNzaW9uV2ViaG9vawogIC0gVmFsaWRhdGluZ0FkbWlzc2lvbldlYmhvb2sKICAtIE5vZGVSZXN0cmljdGlvbgogIC0gUmVzb3VyY2VRdW90YQogIGV0Y2RTZXJ2ZXJzOgogIC0gaHR0cDovLzEyNy4wLjAuMTo0MDAxCiAgZXRjZFNlcnZlcnNPdmVycmlkZXM6CiAgLSAvZXZlbnRzI2h0dHA6Ly8xMjcuMC4wLjE6NDAwMgogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtYXBpc2VydmVyOnYxLjEyLjkKICBpbnNlY3VyZUJpbmRBZGRyZXNzOiAxMjcuMC4wLjEKICBpbnNlY3VyZVBvcnQ6IDgwODAKICBrdWJlbGV0UHJlZmVycmVkQWRkcmVzc1R5cGVzOgogIC0gSW50ZXJuYWxJUAogIC0gSG9zdG5hbWUKICAtIEV4dGVybmFsSVAKICBsb2dMZXZlbDogMgogIHJlcXVlc3RoZWFkZXJBbGxvd2VkTmFtZXM6CiAgLSBhZ2dyZWdhdG9yCiAgcmVxdWVzdGhlYWRlckV4dHJhSGVhZGVyUHJlZml4ZXM6CiAgLSBYLVJlbW90ZS1FeHRyYS0KICByZXF1ZXN0aGVhZGVyR3JvdXBIZWFkZXJzOgogIC0gWC1SZW1vdGUtR3JvdXAKICByZXF1ZXN0aGVhZGVyVXNlcm5hbWVIZWFkZXJzOgogIC0gWC1SZW1vdGUtVXNlcgogIHNlY3VyZVBvcnQ6IDQ0MwogIHNlcnZpY2VDbHVzdGVySVBSYW5nZTogMTAwLjY0LjAuMC8xMwogIHN0b3JhZ2VCYWNrZW5kOiBldGNkMwprdWJlQ29udHJvbGxlck1hbmFnZXI6CiAgYWxsb2NhdGVOb2RlQ0lEUnM6IHRydWUKICBhdHRhY2hEZXRhY2hSZWNvbmNpbGVTeW5jUGVyaW9kOiAxbTBzCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckNJRFI6IDEwMC45Ni4wLjAvMTEKICBjbHVzdGVyTmFtZTogbGF1bmNodGVtcGxhdGVzLmV4YW1wbGUuY29tCiAgY29uZmlndXJlQ2xvdWRSb3V0ZXM6IHRydWUKICBpbWFnZTogazhzLmdjci5pby9rdWJlLWNvbnRyb2xsZXItbWFuYWdlcjp2MS4xMi45CiAgbGVhZGVyRWxlY3Rpb246CiAgICBsZWFkZXJFbGVjdDogdHJ1ZQogIGxvZ0xldmVsOiAyCiAgdXNlU2VydmljZUFjY291bnRDcmVkZW50aWFsczogdHJ1ZQprdWJlUHJveHk6CiAgY2x1c3RlckNJRFI6IDEwMC45Ni4wLjAvMTEKICBjcHVSZXF1ZXN0OiAxMDBtCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAgaW1hZ2U6IGs4cy5nY3IuaW8va3ViZS1wcm94eTp2MS4xMi45CiAgbG9nTGV2ZWw6IDIKa3ViZVNjaGVkdWxlcjoKICBpbWFnZTogazhzLmdjci5pby9rdWJlLXNjaGVkdWxlcjp2MS4xMi45CiAgbGVhZGVyRWxlY3Rpb246CiAgICBsZWFkZXJFbGVjdDogdHJ1ZQogIGxvZ0xldmVsOiAyCmt1YmVsZXQ6CiAgYWxsb3dQcml2aWxlZ2VkOiB0cnVlCiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9uTWFzcXVlcmFkZUNJRFI6IDEwMC42NC4wLjAvMTAKICBwb2RJbmZyYUNvbnRhaW5lckltYWdlOiBrOHMuZ2NyLmlvL3BhdXNlLWFtZDY0OjMuMgogIHBvZE1hbmlmZXN0UGF0aDogL2V0Yy9rdWJlcm5ldGVzL21hbmlmZXN0cwptYXN0ZXJLdWJlbGV0OgogIGFsbG93UHJpdmlsZWdlZDogdHJ1ZQogIGFub255bW91c0F1dGg6IGZhbHNlCiAgY2dyb3VwUm9vdDogLwogIGNsb3VkUHJvdmlkZXI6IGF3cwogIGNsdXN0ZXJETlM6IDEwMC42NC4wLjEwCiAgY2x1c3RlckRvbWFpbjogY2x1c3Rlci5sb2NhbAogIGVuYWJsZURlYnVnZ2luZ0hhbmRsZXJzOiB0cnVlCiAgZXZpY3Rpb25IYXJkOiBtZW1vcnkuYXZhaWxhYmxlPDEwME1pLG5vZGVmcy5hdmFpbGFibGU8MTAlLG5vZGVmcy5pbm9kZXNGcmVlPDUlLGltYWdlZnMuYXZhaWxhYmxlPDEwJSxpbWFnZWZzLmlub2Rlc0ZyZWU8NSUKICBmZWF0dXJlR2F0ZXM6CiAgICBFeHBlcmltZW50YWxDcml0aWNhbFBvZEFubm90YXRpb246ICJ0cnVlIgogIGhvc3RuYW1lT3ZlcnJpZGU6ICdAYXdzJwogIGt1YmVjb25maWdQYXRoOiAvdmFyL2xpYi9rdWJlbGV0L2t1YmVjb25maWcKICBsb2dMZXZlbDogMgogIG5ldHdvcmtQbHVnaW5NVFU6IDkwMDEKICBuZXR3b3JrUGx1Z2luTmFtZToga3ViZW5ldAogIG5vbk1hc3F1ZXJhZGVDSURSOiAxMDAuNjQuMC4wLzEwCiAgcG9kSW5mcmFDb250YWluZXJJbWFnZTogazhzLmdjci5pby9wYXVzZS1hbWQ2NDozLjIKICBwb2RNYW5pZmVzdFBhdGg6IC9ldGMva3ViZXJuZXRlcy9tYW5pZmVzdHMKICByZWdpc3RlclNjaGVkdWxhYmxlOiBmYWxzZQoKX19FT0ZfQ0xVU1RFUl9TUEVDCgpjYXQgPiBjb25mL2lnX3NwZWMueWFtbCA8PCAnX19FT0ZfSUdfU1BFQycKa3ViZWxldDogbnVsbApub2RlTGFiZWxzOiBudWxsCnRhaW50czogbnVsbAoKX19FT0ZfSUdfU1BFQwoKY2F0ID4gY29uZi9rdWJlX2Vudi55YW1sIDw8ICdfX0VPRl9LVUJFX0VOVicKQXNzZXRzOgotIGU5MTRiMTc1MzJjNDExY2I3YzBjYzQ3MjEzMWI2MTkzNWZiNjZiMzFAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjEyLjkvYmluL2xpbnV4L2FtZDY0L2t1YmVsZXQKLSBhYTNlOTM4OTdhNjk5OWQ2YzdkZWRiYzQxNzkzYzkwZDQxZWViMDAwQGh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9rdWJlcm5ldGVzLXJlbGVhc2UvcmVsZWFzZS92MS4xMi45L2Jpbi9saW51eC9hbWQ2NC9rdWJlY3RsCi0gNTJlOWQyZGU4YTVmOTI3MzA3ZDkzOTczMDg3MzU2NThlZTQ0YWI4ZEBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL25ldHdvcmstcGx1Z2lucy9jbmktcGx1Z2lucy1hbWQ2NC12MC43LjUudGd6CkNsdXN0ZXJOYW1lOiBsYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20KQ29uZmlnQmFzZTogbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9sYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20KSW5zdGFuY2VHcm91cE5hbWU6IG1hc3Rlci11cy10ZXN0LTFhClRhZ3M6Ci0gX2F1dG9tYXRpY191cGdyYWRlcwotIF9hd3MKY2hhbm5lbHM6Ci0gbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9sYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20vYWRkb25zL2Jvb3RzdHJhcC1jaGFubmVsLnlhbWwKZXRjZE1hbmlmZXN0czoKLSBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL2xhdW5jaHRlbXBsYXRlcy5leGFtcGxlLmNvbS9tYW5pZmVzdHMvZXRjZC9tYWluLnlhbWwKLSBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL2xhdW5jaHRlbXBsYXRlcy5leGFtcGxlLmNvbS9tYW5pZmVzdHMvZXRjZC9ldmVudHMueWFtbApwcm90b2t1YmVJbWFnZToKICBoYXNoOiA0MmE5YzQzMjRmZTI2ZDYzY2UxMWYzZGQ3ODM2MzcxYmM5M2ZhMDZjYThmNDc5ODA3NzI4ZjM3NDZlMjcwNjFiCiAgbmFtZTogcHJvdG9rdWJlOjEuMTUuMAogIHNvdXJjZXM6CiAgLSBodHRwczovL2FydGlmYWN0cy5rOHMuaW8vYmluYXJpZXMva29wcy8xLjE1LjAvaW1hZ2VzL3Byb3Rva3ViZS50YXIuZ3oKICAtIGh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzL2tvcHMvcmVsZWFzZXMvZG93bmxvYWQvdjEuMTUuMC9pbWFnZXMtcHJvdG9rdWJlLnRhci5negogIC0gaHR0cHM6Ly9rdWJldXB2Mi5zMy5hbWF6b25hd3MuY29tL2tvcHMvMS4xNS4wL2ltYWdlcy9wcm90b2t1YmUudGFyLmd6CgpfX0VPRl9LVUJFX0VOVgoKZG93bmxvYWQtcmVsZWFzZQplY2hvICI9PSBub2RldXAgbm9kZSBjb25maWcgZG9uZSA9PSIK +IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkw9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE1LjAvbGludXgtYW1kNjQtbm9kZXVwLGh0dHBzOi8va3ViZXVwdjIuczMuYW1hem9uYXdzLmNvbS9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0g9OTYwNGVmMTgyNjdhZDdiNWNmNGNlYmJmN2FiNjQ0MjNjZjViYjAzNDJkMTY5YzYwOGFjNjM3NmU2YWYyNmQ4MQoKZXhwb3J0IEFXU19SRUdJT049dXMtdGVzdC0xCgoKCgpmdW5jdGlvbiBlbnN1cmUtaW5zdGFsbC1kaXIoKSB7CiAgSU5TVEFMTF9ESVI9Ii9vcHQva29wcyIKICAjIE9uIENvbnRhaW5lck9TLCB3ZSBpbnN0YWxsIHVuZGVyIC92YXIvbGliL3Rvb2xib3g7IC9vcHQgaXMgcm8gYW5kIG5vZXhlYwogIGlmIFtbIC1kIC92YXIvbGliL3Rvb2xib3ggXV07IHRoZW4KICAgIElOU1RBTExfRElSPSIvdmFyL2xpYi90b29sYm94L2tvcHMiCiAgZmkKICBta2RpciAtcCAke0lOU1RBTExfRElSfS9iaW4KICBta2RpciAtcCAke0lOU1RBTExfRElSfS9jb25mCiAgY2QgJHtJTlNUQUxMX0RJUn0KfQoKIyBSZXRyeSBhIGRvd25sb2FkIHVudGlsIHdlIGdldCBpdC4gYXJnczogbmFtZSwgc2hhLCB1cmwxLCB1cmwyLi4uCmRvd25sb2FkLW9yLWJ1c3QoKSB7CiAgbG9jYWwgLXIgZmlsZT0iJDEiCiAgbG9jYWwgLXIgaGFzaD0iJDIiCiAgc2hpZnQgMgoKICB1cmxzPSggJCogKQogIHdoaWxlIHRydWU7IGRvCiAgICBmb3IgdXJsIGluICIke3VybHNbQF19IjsgZG8KICAgICAgY29tbWFuZHM9KAogICAgICAgICJjdXJsIC1mIC0taXB2NCAtLWNvbXByZXNzZWQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLS1jb21wcmVzc2lvbj1hdXRvIC1PICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dD0yMCAtLXRyaWVzPTYgLS13YWl0PTEwIgogICAgICAgICJjdXJsIC1mIC0taXB2NCAtTG8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0IDIwIC0tcmV0cnkgNiAtLXJldHJ5LWRlbGF5IDEwIgogICAgICAgICJ3Z2V0IC0taW5ldDQtb25seSAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgKQogICAgICBmb3IgY21kIGluICIke2NvbW1hbmRzW0BdfSI7IGRvCiAgICAgICAgZWNobyAiQXR0ZW1wdGluZyBkb3dubG9hZCB3aXRoOiAke2NtZH0ge3VybH0iCiAgICAgICAgaWYgISAoJHtjbWR9ICIke3VybH0iKTsgdGhlbgogICAgICAgICAgZWNobyAiPT0gRG93bmxvYWQgZmFpbGVkIHdpdGggJHtjbWR9ID09IgogICAgICAgICAgY29udGludWUKICAgICAgICBmaQogICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXSAmJiAhIHZhbGlkYXRlLWhhc2ggIiR7ZmlsZX0iICIke2hhc2h9IjsgdGhlbgogICAgICAgICAgZWNobyAiPT0gSGFzaCB2YWxpZGF0aW9uIG9mICR7dXJsfSBmYWlsZWQuIFJldHJ5aW5nLiA9PSIKICAgICAgICAgIHJtIC1mICIke2ZpbGV9IgogICAgICAgIGVsc2UKICAgICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXTsgdGhlbgogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSAoU0hBMSA9ICR7aGFzaH0pID09IgogICAgICAgICAgZWxzZQogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSA9PSIKICAgICAgICAgIGZpCiAgICAgICAgICByZXR1cm4KICAgICAgICBmaQogICAgICBkb25lCiAgICBkb25lCgogICAgZWNobyAiQWxsIGRvd25sb2FkcyBmYWlsZWQ7IHNsZWVwaW5nIGJlZm9yZSByZXRyeWluZyIKICAgIHNsZWVwIDYwCiAgZG9uZQp9Cgp2YWxpZGF0ZS1oYXNoKCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGV4cGVjdGVkPSIkMiIKICBsb2NhbCBhY3R1YWwKCiAgYWN0dWFsPSQoc2hhMjU2c3VtICR7ZmlsZX0gfCBhd2sgJ3sgcHJpbnQgJDEgfScpIHx8IHRydWUKICBpZiBbWyAiJHthY3R1YWx9IiAhPSAiJHtleHBlY3RlZH0iIF1dOyB0aGVuCiAgICBlY2hvICI9PSAke2ZpbGV9IGNvcnJ1cHRlZCwgaGFzaCAke2FjdHVhbH0gZG9lc24ndCBtYXRjaCBleHBlY3RlZCAke2V4cGVjdGVkfSA9PSIKICAgIHJldHVybiAxCiAgZmkKfQoKZnVuY3Rpb24gc3BsaXQtY29tbWFzKCkgewogIGVjaG8gJDEgfCB0ciAiLCIgIlxuIgp9CgpmdW5jdGlvbiB0cnktZG93bmxvYWQtcmVsZWFzZSgpIHsKICBsb2NhbCAtciBub2RldXBfdXJscz0oICQoc3BsaXQtY29tbWFzICIke05PREVVUF9VUkx9IikgKQogIGlmIFtbIC1uICIke05PREVVUF9IQVNIOi19IiBdXTsgdGhlbgogICAgbG9jYWwgLXIgbm9kZXVwX2hhc2g9IiR7Tk9ERVVQX0hBU0h9IgogIGVsc2UKICAjIFRPRE86IFJlbW92ZT8KICAgIGVjaG8gIkRvd25sb2FkaW5nIHNoYTI1NiAobm90IGZvdW5kIGluIGVudikiCiAgICBkb3dubG9hZC1vci1idXN0IG5vZGV1cC5zaGEyNTYgIiIgIiR7bm9kZXVwX3VybHNbQF0vJS8uc2hhMjU2fSIKICAgIGxvY2FsIC1yIG5vZGV1cF9oYXNoPSQoY2F0IG5vZGV1cC5zaGEyNTYpCiAgZmkKCiAgZWNobyAiRG93bmxvYWRpbmcgbm9kZXVwICgke25vZGV1cF91cmxzW0BdfSkiCiAgZG93bmxvYWQtb3ItYnVzdCBub2RldXAgIiR7bm9kZXVwX2hhc2h9IiAiJHtub2RldXBfdXJsc1tAXX0iCgogIGNobW9kICt4IG5vZGV1cAp9CgpmdW5jdGlvbiBkb3dubG9hZC1yZWxlYXNlKCkgewogIGNhc2UgIiQodW5hbWUgLW0pIiBpbgogIHg4Nl82NCp8aT84Nl82NCp8YW1kNjQqKQogICAgTk9ERVVQX1VSTD0iJHtOT0RFVVBfVVJMfSIKICAgIE5PREVVUF9IQVNIPSIke05PREVVUF9IQVNIfSIKICAgIDs7CiAgKikKICAgIGVjaG8gIlVuc3VwcG9ydGVkIGhvc3QgYXJjaDogJCh1bmFtZSAtbSkiID4mMgogICAgZXhpdCAxCiAgICA7OwogIGVzYWMKCiAgIyBJbiBjYXNlIG9mIGZhaWx1cmUgY2hlY2tpbmcgaW50ZWdyaXR5IG9mIHJlbGVhc2UsIHJldHJ5LgogIGNkICR7SU5TVEFMTF9ESVJ9L2JpbgogIHVudGlsIHRyeS1kb3dubG9hZC1yZWxlYXNlOyBkbwogICAgc2xlZXAgMTUKICAgIGVjaG8gIkNvdWxkbid0IGRvd25sb2FkIHJlbGVhc2UuIFJldHJ5aW5nLi4uIgogIGRvbmUKCiAgZWNobyAiUnVubmluZyBub2RldXAiCiAgIyBXZSBjYW4ndCBydW4gaW4gdGhlIGZvcmVncm91bmQgYmVjYXVzZSBvZiBodHRwczovL2dpdGh1Yi5jb20vZG9ja2VyL2RvY2tlci9pc3N1ZXMvMjM3OTMKICAoIGNkICR7SU5TVEFMTF9ESVJ9L2JpbjsgLi9ub2RldXAgLS1pbnN0YWxsLXN5c3RlbWQtdW5pdCAtLWNvbmY9JHtJTlNUQUxMX0RJUn0vY29uZi9rdWJlX2Vudi55YW1sIC0tdj04ICApCn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKL2Jpbi9zeXN0ZW1kLW1hY2hpbmUtaWQtc2V0dXAgfHwgZWNobyAiZmFpbGVkIHRvIHNldCB1cCBlbnN1cmUgbWFjaGluZS1pZCBjb25maWd1cmVkIgoKZWNobyAiPT0gbm9kZXVwIG5vZGUgY29uZmlnIHN0YXJ0aW5nID09IgplbnN1cmUtaW5zdGFsbC1kaXIKCmNhdCA+IGNvbmYvY2x1c3Rlcl9zcGVjLnlhbWwgPDwgJ19fRU9GX0NMVVNURVJfU1BFQycKY2xvdWRDb25maWc6IG51bGwKY29udGFpbmVyUnVudGltZTogZG9ja2VyCmNvbnRhaW5lcmQ6CiAgc2tpcEluc3RhbGw6IHRydWUKZG9ja2VyOgogIGlwTWFzcTogZmFsc2UKICBpcFRhYmxlczogZmFsc2UKICBsb2dEcml2ZXI6IGpzb24tZmlsZQogIGxvZ0xldmVsOiB3YXJuCiAgbG9nT3B0OgogIC0gbWF4LXNpemU9MTBtCiAgLSBtYXgtZmlsZT01CiAgc3RvcmFnZTogb3ZlcmxheTIsb3ZlcmxheSxhdWZzCiAgdmVyc2lvbjogMTguMDYuMwplbmNyeXB0aW9uQ29uZmlnOiBudWxsCmV0Y2RDbHVzdGVyczoKICBldmVudHM6CiAgICB2ZXJzaW9uOiAzLjIuMjQKICBtYWluOgogICAgdmVyc2lvbjogMy4yLjI0Cmt1YmVBUElTZXJ2ZXI6CiAgYWxsb3dQcml2aWxlZ2VkOiB0cnVlCiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBhcGlTZXJ2ZXJDb3VudDogMwogIGF1dGhvcml6YXRpb25Nb2RlOiBBbHdheXNBbGxvdwogIGJpbmRBZGRyZXNzOiAwLjAuMC4wCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgZW5hYmxlQWRtaXNzaW9uUGx1Z2luczoKICAtIE5hbWVzcGFjZUxpZmVjeWNsZQogIC0gTGltaXRSYW5nZXIKICAtIFNlcnZpY2VBY2NvdW50CiAgLSBQZXJzaXN0ZW50Vm9sdW1lTGFiZWwKICAtIERlZmF1bHRTdG9yYWdlQ2xhc3MKICAtIERlZmF1bHRUb2xlcmF0aW9uU2Vjb25kcwogIC0gTXV0YXRpbmdBZG1pc3Npb25XZWJob29rCiAgLSBWYWxpZGF0aW5nQWRtaXNzaW9uV2ViaG9vawogIC0gTm9kZVJlc3RyaWN0aW9uCiAgLSBSZXNvdXJjZVF1b3RhCiAgZXRjZFNlcnZlcnM6CiAgLSBodHRwOi8vMTI3LjAuMC4xOjQwMDEKICBldGNkU2VydmVyc092ZXJyaWRlczoKICAtIC9ldmVudHMjaHR0cDovLzEyNy4wLjAuMTo0MDAyCiAgaW1hZ2U6IGs4cy5nY3IuaW8va3ViZS1hcGlzZXJ2ZXI6djEuMTIuOQogIGluc2VjdXJlQmluZEFkZHJlc3M6IDEyNy4wLjAuMQogIGluc2VjdXJlUG9ydDogODA4MAogIGt1YmVsZXRQcmVmZXJyZWRBZGRyZXNzVHlwZXM6CiAgLSBJbnRlcm5hbElQCiAgLSBIb3N0bmFtZQogIC0gRXh0ZXJuYWxJUAogIGxvZ0xldmVsOiAyCiAgcmVxdWVzdGhlYWRlckFsbG93ZWROYW1lczoKICAtIGFnZ3JlZ2F0b3IKICByZXF1ZXN0aGVhZGVyRXh0cmFIZWFkZXJQcmVmaXhlczoKICAtIFgtUmVtb3RlLUV4dHJhLQogIHJlcXVlc3RoZWFkZXJHcm91cEhlYWRlcnM6CiAgLSBYLVJlbW90ZS1Hcm91cAogIHJlcXVlc3RoZWFkZXJVc2VybmFtZUhlYWRlcnM6CiAgLSBYLVJlbW90ZS1Vc2VyCiAgc2VjdXJlUG9ydDogNDQzCiAgc2VydmljZUNsdXN0ZXJJUFJhbmdlOiAxMDAuNjQuMC4wLzEzCiAgc3RvcmFnZUJhY2tlbmQ6IGV0Y2QzCmt1YmVDb250cm9sbGVyTWFuYWdlcjoKICBhbGxvY2F0ZU5vZGVDSURSczogdHJ1ZQogIGF0dGFjaERldGFjaFJlY29uY2lsZVN5bmNQZXJpb2Q6IDFtMHMKICBjbG91ZFByb3ZpZGVyOiBhd3MKICBjbHVzdGVyQ0lEUjogMTAwLjk2LjAuMC8xMQogIGNsdXN0ZXJOYW1lOiBsYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20KICBjb25maWd1cmVDbG91ZFJvdXRlczogdHJ1ZQogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtY29udHJvbGxlci1tYW5hZ2VyOnYxLjEyLjkKICBsZWFkZXJFbGVjdGlvbjoKICAgIGxlYWRlckVsZWN0OiB0cnVlCiAgbG9nTGV2ZWw6IDIKICB1c2VTZXJ2aWNlQWNjb3VudENyZWRlbnRpYWxzOiB0cnVlCmt1YmVQcm94eToKICBjbHVzdGVyQ0lEUjogMTAwLjk2LjAuMC8xMQogIGNwdVJlcXVlc3Q6IDEwMG0KICBob3N0bmFtZU92ZXJyaWRlOiAnQGF3cycKICBpbWFnZTogazhzLmdjci5pby9rdWJlLXByb3h5OnYxLjEyLjkKICBsb2dMZXZlbDogMgprdWJlU2NoZWR1bGVyOgogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtc2NoZWR1bGVyOnYxLjEyLjkKICBsZWFkZXJFbGVjdGlvbjoKICAgIGxlYWRlckVsZWN0OiB0cnVlCiAgbG9nTGV2ZWw6IDIKa3ViZWxldDoKICBhbGxvd1ByaXZpbGVnZWQ6IHRydWUKICBhbm9ueW1vdXNBdXRoOiBmYWxzZQogIGNncm91cFJvb3Q6IC8KICBjbG91ZFByb3ZpZGVyOiBhd3MKICBjbHVzdGVyRE5TOiAxMDAuNjQuMC4xMAogIGNsdXN0ZXJEb21haW46IGNsdXN0ZXIubG9jYWwKICBlbmFibGVEZWJ1Z2dpbmdIYW5kbGVyczogdHJ1ZQogIGV2aWN0aW9uSGFyZDogbWVtb3J5LmF2YWlsYWJsZTwxMDBNaSxub2RlZnMuYXZhaWxhYmxlPDEwJSxub2RlZnMuaW5vZGVzRnJlZTw1JSxpbWFnZWZzLmF2YWlsYWJsZTwxMCUsaW1hZ2Vmcy5pbm9kZXNGcmVlPDUlCiAgZmVhdHVyZUdhdGVzOgogICAgRXhwZXJpbWVudGFsQ3JpdGljYWxQb2RBbm5vdGF0aW9uOiAidHJ1ZSIKICBob3N0bmFtZU92ZXJyaWRlOiAnQGF3cycKICBrdWJlY29uZmlnUGF0aDogL3Zhci9saWIva3ViZWxldC9rdWJlY29uZmlnCiAgbG9nTGV2ZWw6IDIKICBuZXR3b3JrUGx1Z2luTVRVOiA5MDAxCiAgbmV0d29ya1BsdWdpbk5hbWU6IGt1YmVuZXQKICBub25NYXNxdWVyYWRlQ0lEUjogMTAwLjY0LjAuMC8xMAogIHBvZEluZnJhQ29udGFpbmVySW1hZ2U6IGs4cy5nY3IuaW8vcGF1c2U6My4yCiAgcG9kTWFuaWZlc3RQYXRoOiAvZXRjL2t1YmVybmV0ZXMvbWFuaWZlc3RzCm1hc3Rlckt1YmVsZXQ6CiAgYWxsb3dQcml2aWxlZ2VkOiB0cnVlCiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9uTWFzcXVlcmFkZUNJRFI6IDEwMC42NC4wLjAvMTAKICBwb2RJbmZyYUNvbnRhaW5lckltYWdlOiBrOHMuZ2NyLmlvL3BhdXNlOjMuMgogIHBvZE1hbmlmZXN0UGF0aDogL2V0Yy9rdWJlcm5ldGVzL21hbmlmZXN0cwogIHJlZ2lzdGVyU2NoZWR1bGFibGU6IGZhbHNlCgpfX0VPRl9DTFVTVEVSX1NQRUMKCmNhdCA+IGNvbmYvaWdfc3BlYy55YW1sIDw8ICdfX0VPRl9JR19TUEVDJwprdWJlbGV0OiBudWxsCm5vZGVMYWJlbHM6IG51bGwKdGFpbnRzOiBudWxsCgpfX0VPRl9JR19TUEVDCgpjYXQgPiBjb25mL2t1YmVfZW52LnlhbWwgPDwgJ19fRU9GX0tVQkVfRU5WJwpBc3NldHM6Ci0gZTkxNGIxNzUzMmM0MTFjYjdjMGNjNDcyMTMxYjYxOTM1ZmI2NmIzMUBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL3JlbGVhc2UvdjEuMTIuOS9iaW4vbGludXgvYW1kNjQva3ViZWxldAotIGFhM2U5Mzg5N2E2OTk5ZDZjN2RlZGJjNDE3OTNjOTBkNDFlZWIwMDBAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjEyLjkvYmluL2xpbnV4L2FtZDY0L2t1YmVjdGwKLSA1MmU5ZDJkZThhNWY5MjczMDdkOTM5NzMwODczNTY1OGVlNDRhYjhkQGh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9rdWJlcm5ldGVzLXJlbGVhc2UvbmV0d29yay1wbHVnaW5zL2NuaS1wbHVnaW5zLWFtZDY0LXYwLjcuNS50Z3oKQ2x1c3Rlck5hbWU6IGxhdW5jaHRlbXBsYXRlcy5leGFtcGxlLmNvbQpDb25maWdCYXNlOiBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL2xhdW5jaHRlbXBsYXRlcy5leGFtcGxlLmNvbQpJbnN0YW5jZUdyb3VwTmFtZTogbWFzdGVyLXVzLXRlc3QtMWEKVGFnczoKLSBfYXV0b21hdGljX3VwZ3JhZGVzCi0gX2F3cwpjaGFubmVsczoKLSBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL2xhdW5jaHRlbXBsYXRlcy5leGFtcGxlLmNvbS9hZGRvbnMvYm9vdHN0cmFwLWNoYW5uZWwueWFtbApldGNkTWFuaWZlc3RzOgotIG1lbWZzOi8vY2x1c3RlcnMuZXhhbXBsZS5jb20vbGF1bmNodGVtcGxhdGVzLmV4YW1wbGUuY29tL21hbmlmZXN0cy9ldGNkL21haW4ueWFtbAotIG1lbWZzOi8vY2x1c3RlcnMuZXhhbXBsZS5jb20vbGF1bmNodGVtcGxhdGVzLmV4YW1wbGUuY29tL21hbmlmZXN0cy9ldGNkL2V2ZW50cy55YW1sCnByb3Rva3ViZUltYWdlOgogIGhhc2g6IDQyYTljNDMyNGZlMjZkNjNjZTExZjNkZDc4MzYzNzFiYzkzZmEwNmNhOGY0Nzk4MDc3MjhmMzc0NmUyNzA2MWIKICBuYW1lOiBwcm90b2t1YmU6MS4xNS4wCiAgc291cmNlczoKICAtIGh0dHBzOi8vYXJ0aWZhY3RzLms4cy5pby9iaW5hcmllcy9rb3BzLzEuMTUuMC9pbWFnZXMvcHJvdG9rdWJlLnRhci5negogIC0gaHR0cHM6Ly9naXRodWIuY29tL2t1YmVybmV0ZXMva29wcy9yZWxlYXNlcy9kb3dubG9hZC92MS4xNS4wL2ltYWdlcy1wcm90b2t1YmUudGFyLmd6CiAgLSBodHRwczovL2t1YmV1cHYyLnMzLmFtYXpvbmF3cy5jb20va29wcy8xLjE1LjAvaW1hZ2VzL3Byb3Rva3ViZS50YXIuZ3oKCl9fRU9GX0tVQkVfRU5WCgpkb3dubG9hZC1yZWxlYXNlCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBkb25lID09Igo= diff --git a/tests/integration/update_cluster/launch_templates/data/aws_launch_template_master-us-test-1b.masters.launchtemplates.example.com_user_data b/tests/integration/update_cluster/launch_templates/data/aws_launch_template_master-us-test-1b.masters.launchtemplates.example.com_user_data index 4689936ce26ac..dcd894648e001 100644 --- a/tests/integration/update_cluster/launch_templates/data/aws_launch_template_master-us-test-1b.masters.launchtemplates.example.com_user_data +++ b/tests/integration/update_cluster/launch_templates/data/aws_launch_template_master-us-test-1b.masters.launchtemplates.example.com_user_data @@ -1 +1 @@ -IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkw9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE1LjAvbGludXgtYW1kNjQtbm9kZXVwLGh0dHBzOi8va3ViZXVwdjIuczMuYW1hem9uYXdzLmNvbS9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0g9OTYwNGVmMTgyNjdhZDdiNWNmNGNlYmJmN2FiNjQ0MjNjZjViYjAzNDJkMTY5YzYwOGFjNjM3NmU2YWYyNmQ4MQoKZXhwb3J0IEFXU19SRUdJT049dXMtdGVzdC0xCgoKCgpmdW5jdGlvbiBlbnN1cmUtaW5zdGFsbC1kaXIoKSB7CiAgSU5TVEFMTF9ESVI9Ii9vcHQva29wcyIKICAjIE9uIENvbnRhaW5lck9TLCB3ZSBpbnN0YWxsIHVuZGVyIC92YXIvbGliL3Rvb2xib3g7IC9vcHQgaXMgcm8gYW5kIG5vZXhlYwogIGlmIFtbIC1kIC92YXIvbGliL3Rvb2xib3ggXV07IHRoZW4KICAgIElOU1RBTExfRElSPSIvdmFyL2xpYi90b29sYm94L2tvcHMiCiAgZmkKICBta2RpciAtcCAke0lOU1RBTExfRElSfS9iaW4KICBta2RpciAtcCAke0lOU1RBTExfRElSfS9jb25mCiAgY2QgJHtJTlNUQUxMX0RJUn0KfQoKIyBSZXRyeSBhIGRvd25sb2FkIHVudGlsIHdlIGdldCBpdC4gYXJnczogbmFtZSwgc2hhLCB1cmwxLCB1cmwyLi4uCmRvd25sb2FkLW9yLWJ1c3QoKSB7CiAgbG9jYWwgLXIgZmlsZT0iJDEiCiAgbG9jYWwgLXIgaGFzaD0iJDIiCiAgc2hpZnQgMgoKICB1cmxzPSggJCogKQogIHdoaWxlIHRydWU7IGRvCiAgICBmb3IgdXJsIGluICIke3VybHNbQF19IjsgZG8KICAgICAgY29tbWFuZHM9KAogICAgICAgICJjdXJsIC1mIC0taXB2NCAtLWNvbXByZXNzZWQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLS1jb21wcmVzc2lvbj1hdXRvIC1PICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dD0yMCAtLXRyaWVzPTYgLS13YWl0PTEwIgogICAgICAgICJjdXJsIC1mIC0taXB2NCAtTG8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0IDIwIC0tcmV0cnkgNiAtLXJldHJ5LWRlbGF5IDEwIgogICAgICAgICJ3Z2V0IC0taW5ldDQtb25seSAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgKQogICAgICBmb3IgY21kIGluICIke2NvbW1hbmRzW0BdfSI7IGRvCiAgICAgICAgZWNobyAiQXR0ZW1wdGluZyBkb3dubG9hZCB3aXRoOiAke2NtZH0ge3VybH0iCiAgICAgICAgaWYgISAoJHtjbWR9ICIke3VybH0iKTsgdGhlbgogICAgICAgICAgZWNobyAiPT0gRG93bmxvYWQgZmFpbGVkIHdpdGggJHtjbWR9ID09IgogICAgICAgICAgY29udGludWUKICAgICAgICBmaQogICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXSAmJiAhIHZhbGlkYXRlLWhhc2ggIiR7ZmlsZX0iICIke2hhc2h9IjsgdGhlbgogICAgICAgICAgZWNobyAiPT0gSGFzaCB2YWxpZGF0aW9uIG9mICR7dXJsfSBmYWlsZWQuIFJldHJ5aW5nLiA9PSIKICAgICAgICAgIHJtIC1mICIke2ZpbGV9IgogICAgICAgIGVsc2UKICAgICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXTsgdGhlbgogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSAoU0hBMSA9ICR7aGFzaH0pID09IgogICAgICAgICAgZWxzZQogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSA9PSIKICAgICAgICAgIGZpCiAgICAgICAgICByZXR1cm4KICAgICAgICBmaQogICAgICBkb25lCiAgICBkb25lCgogICAgZWNobyAiQWxsIGRvd25sb2FkcyBmYWlsZWQ7IHNsZWVwaW5nIGJlZm9yZSByZXRyeWluZyIKICAgIHNsZWVwIDYwCiAgZG9uZQp9Cgp2YWxpZGF0ZS1oYXNoKCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGV4cGVjdGVkPSIkMiIKICBsb2NhbCBhY3R1YWwKCiAgYWN0dWFsPSQoc2hhMjU2c3VtICR7ZmlsZX0gfCBhd2sgJ3sgcHJpbnQgJDEgfScpIHx8IHRydWUKICBpZiBbWyAiJHthY3R1YWx9IiAhPSAiJHtleHBlY3RlZH0iIF1dOyB0aGVuCiAgICBlY2hvICI9PSAke2ZpbGV9IGNvcnJ1cHRlZCwgaGFzaCAke2FjdHVhbH0gZG9lc24ndCBtYXRjaCBleHBlY3RlZCAke2V4cGVjdGVkfSA9PSIKICAgIHJldHVybiAxCiAgZmkKfQoKZnVuY3Rpb24gc3BsaXQtY29tbWFzKCkgewogIGVjaG8gJDEgfCB0ciAiLCIgIlxuIgp9CgpmdW5jdGlvbiB0cnktZG93bmxvYWQtcmVsZWFzZSgpIHsKICBsb2NhbCAtciBub2RldXBfdXJscz0oICQoc3BsaXQtY29tbWFzICIke05PREVVUF9VUkx9IikgKQogIGlmIFtbIC1uICIke05PREVVUF9IQVNIOi19IiBdXTsgdGhlbgogICAgbG9jYWwgLXIgbm9kZXVwX2hhc2g9IiR7Tk9ERVVQX0hBU0h9IgogIGVsc2UKICAjIFRPRE86IFJlbW92ZT8KICAgIGVjaG8gIkRvd25sb2FkaW5nIHNoYTI1NiAobm90IGZvdW5kIGluIGVudikiCiAgICBkb3dubG9hZC1vci1idXN0IG5vZGV1cC5zaGEyNTYgIiIgIiR7bm9kZXVwX3VybHNbQF0vJS8uc2hhMjU2fSIKICAgIGxvY2FsIC1yIG5vZGV1cF9oYXNoPSQoY2F0IG5vZGV1cC5zaGEyNTYpCiAgZmkKCiAgZWNobyAiRG93bmxvYWRpbmcgbm9kZXVwICgke25vZGV1cF91cmxzW0BdfSkiCiAgZG93bmxvYWQtb3ItYnVzdCBub2RldXAgIiR7bm9kZXVwX2hhc2h9IiAiJHtub2RldXBfdXJsc1tAXX0iCgogIGNobW9kICt4IG5vZGV1cAp9CgpmdW5jdGlvbiBkb3dubG9hZC1yZWxlYXNlKCkgewogICMgSW4gY2FzZSBvZiBmYWlsdXJlIGNoZWNraW5nIGludGVncml0eSBvZiByZWxlYXNlLCByZXRyeS4KICBjZCAke0lOU1RBTExfRElSfS9iaW4KICB1bnRpbCB0cnktZG93bmxvYWQtcmVsZWFzZTsgZG8KICAgIHNsZWVwIDE1CiAgICBlY2hvICJDb3VsZG4ndCBkb3dubG9hZCByZWxlYXNlLiBSZXRyeWluZy4uLiIKICBkb25lCgogIGVjaG8gIlJ1bm5pbmcgbm9kZXVwIgogICMgV2UgY2FuJ3QgcnVuIGluIHRoZSBmb3JlZ3JvdW5kIGJlY2F1c2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci9kb2NrZXIvaXNzdWVzLzIzNzkzCiAgKCBjZCAke0lOU1RBTExfRElSfS9iaW47IC4vbm9kZXVwIC0taW5zdGFsbC1zeXN0ZW1kLXVuaXQgLS1jb25mPSR7SU5TVEFMTF9ESVJ9L2NvbmYva3ViZV9lbnYueWFtbCAtLXY9OCAgKQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi9iaW4vc3lzdGVtZC1tYWNoaW5lLWlkLXNldHVwIHx8IGVjaG8gImZhaWxlZCB0byBzZXQgdXAgZW5zdXJlIG1hY2hpbmUtaWQgY29uZmlndXJlZCIKCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBzdGFydGluZyA9PSIKZW5zdXJlLWluc3RhbGwtZGlyCgpjYXQgPiBjb25mL2NsdXN0ZXJfc3BlYy55YW1sIDw8ICdfX0VPRl9DTFVTVEVSX1NQRUMnCmNsb3VkQ29uZmlnOiBudWxsCmNvbnRhaW5lclJ1bnRpbWU6IGRvY2tlcgpjb250YWluZXJkOgogIHNraXBJbnN0YWxsOiB0cnVlCmRvY2tlcjoKICBpcE1hc3E6IGZhbHNlCiAgaXBUYWJsZXM6IGZhbHNlCiAgbG9nRHJpdmVyOiBqc29uLWZpbGUKICBsb2dMZXZlbDogd2FybgogIGxvZ09wdDoKICAtIG1heC1zaXplPTEwbQogIC0gbWF4LWZpbGU9NQogIHN0b3JhZ2U6IG92ZXJsYXkyLG92ZXJsYXksYXVmcwogIHZlcnNpb246IDE4LjA2LjMKZW5jcnlwdGlvbkNvbmZpZzogbnVsbApldGNkQ2x1c3RlcnM6CiAgZXZlbnRzOgogICAgdmVyc2lvbjogMy4yLjI0CiAgbWFpbjoKICAgIHZlcnNpb246IDMuMi4yNAprdWJlQVBJU2VydmVyOgogIGFsbG93UHJpdmlsZWdlZDogdHJ1ZQogIGFub255bW91c0F1dGg6IGZhbHNlCiAgYXBpU2VydmVyQ291bnQ6IDMKICBhdXRob3JpemF0aW9uTW9kZTogQWx3YXlzQWxsb3cKICBiaW5kQWRkcmVzczogMC4wLjAuMAogIGNsb3VkUHJvdmlkZXI6IGF3cwogIGVuYWJsZUFkbWlzc2lvblBsdWdpbnM6CiAgLSBOYW1lc3BhY2VMaWZlY3ljbGUKICAtIExpbWl0UmFuZ2VyCiAgLSBTZXJ2aWNlQWNjb3VudAogIC0gUGVyc2lzdGVudFZvbHVtZUxhYmVsCiAgLSBEZWZhdWx0U3RvcmFnZUNsYXNzCiAgLSBEZWZhdWx0VG9sZXJhdGlvblNlY29uZHMKICAtIE11dGF0aW5nQWRtaXNzaW9uV2ViaG9vawogIC0gVmFsaWRhdGluZ0FkbWlzc2lvbldlYmhvb2sKICAtIE5vZGVSZXN0cmljdGlvbgogIC0gUmVzb3VyY2VRdW90YQogIGV0Y2RTZXJ2ZXJzOgogIC0gaHR0cDovLzEyNy4wLjAuMTo0MDAxCiAgZXRjZFNlcnZlcnNPdmVycmlkZXM6CiAgLSAvZXZlbnRzI2h0dHA6Ly8xMjcuMC4wLjE6NDAwMgogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtYXBpc2VydmVyOnYxLjEyLjkKICBpbnNlY3VyZUJpbmRBZGRyZXNzOiAxMjcuMC4wLjEKICBpbnNlY3VyZVBvcnQ6IDgwODAKICBrdWJlbGV0UHJlZmVycmVkQWRkcmVzc1R5cGVzOgogIC0gSW50ZXJuYWxJUAogIC0gSG9zdG5hbWUKICAtIEV4dGVybmFsSVAKICBsb2dMZXZlbDogMgogIHJlcXVlc3RoZWFkZXJBbGxvd2VkTmFtZXM6CiAgLSBhZ2dyZWdhdG9yCiAgcmVxdWVzdGhlYWRlckV4dHJhSGVhZGVyUHJlZml4ZXM6CiAgLSBYLVJlbW90ZS1FeHRyYS0KICByZXF1ZXN0aGVhZGVyR3JvdXBIZWFkZXJzOgogIC0gWC1SZW1vdGUtR3JvdXAKICByZXF1ZXN0aGVhZGVyVXNlcm5hbWVIZWFkZXJzOgogIC0gWC1SZW1vdGUtVXNlcgogIHNlY3VyZVBvcnQ6IDQ0MwogIHNlcnZpY2VDbHVzdGVySVBSYW5nZTogMTAwLjY0LjAuMC8xMwogIHN0b3JhZ2VCYWNrZW5kOiBldGNkMwprdWJlQ29udHJvbGxlck1hbmFnZXI6CiAgYWxsb2NhdGVOb2RlQ0lEUnM6IHRydWUKICBhdHRhY2hEZXRhY2hSZWNvbmNpbGVTeW5jUGVyaW9kOiAxbTBzCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckNJRFI6IDEwMC45Ni4wLjAvMTEKICBjbHVzdGVyTmFtZTogbGF1bmNodGVtcGxhdGVzLmV4YW1wbGUuY29tCiAgY29uZmlndXJlQ2xvdWRSb3V0ZXM6IHRydWUKICBpbWFnZTogazhzLmdjci5pby9rdWJlLWNvbnRyb2xsZXItbWFuYWdlcjp2MS4xMi45CiAgbGVhZGVyRWxlY3Rpb246CiAgICBsZWFkZXJFbGVjdDogdHJ1ZQogIGxvZ0xldmVsOiAyCiAgdXNlU2VydmljZUFjY291bnRDcmVkZW50aWFsczogdHJ1ZQprdWJlUHJveHk6CiAgY2x1c3RlckNJRFI6IDEwMC45Ni4wLjAvMTEKICBjcHVSZXF1ZXN0OiAxMDBtCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAgaW1hZ2U6IGs4cy5nY3IuaW8va3ViZS1wcm94eTp2MS4xMi45CiAgbG9nTGV2ZWw6IDIKa3ViZVNjaGVkdWxlcjoKICBpbWFnZTogazhzLmdjci5pby9rdWJlLXNjaGVkdWxlcjp2MS4xMi45CiAgbGVhZGVyRWxlY3Rpb246CiAgICBsZWFkZXJFbGVjdDogdHJ1ZQogIGxvZ0xldmVsOiAyCmt1YmVsZXQ6CiAgYWxsb3dQcml2aWxlZ2VkOiB0cnVlCiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9uTWFzcXVlcmFkZUNJRFI6IDEwMC42NC4wLjAvMTAKICBwb2RJbmZyYUNvbnRhaW5lckltYWdlOiBrOHMuZ2NyLmlvL3BhdXNlLWFtZDY0OjMuMgogIHBvZE1hbmlmZXN0UGF0aDogL2V0Yy9rdWJlcm5ldGVzL21hbmlmZXN0cwptYXN0ZXJLdWJlbGV0OgogIGFsbG93UHJpdmlsZWdlZDogdHJ1ZQogIGFub255bW91c0F1dGg6IGZhbHNlCiAgY2dyb3VwUm9vdDogLwogIGNsb3VkUHJvdmlkZXI6IGF3cwogIGNsdXN0ZXJETlM6IDEwMC42NC4wLjEwCiAgY2x1c3RlckRvbWFpbjogY2x1c3Rlci5sb2NhbAogIGVuYWJsZURlYnVnZ2luZ0hhbmRsZXJzOiB0cnVlCiAgZXZpY3Rpb25IYXJkOiBtZW1vcnkuYXZhaWxhYmxlPDEwME1pLG5vZGVmcy5hdmFpbGFibGU8MTAlLG5vZGVmcy5pbm9kZXNGcmVlPDUlLGltYWdlZnMuYXZhaWxhYmxlPDEwJSxpbWFnZWZzLmlub2Rlc0ZyZWU8NSUKICBmZWF0dXJlR2F0ZXM6CiAgICBFeHBlcmltZW50YWxDcml0aWNhbFBvZEFubm90YXRpb246ICJ0cnVlIgogIGhvc3RuYW1lT3ZlcnJpZGU6ICdAYXdzJwogIGt1YmVjb25maWdQYXRoOiAvdmFyL2xpYi9rdWJlbGV0L2t1YmVjb25maWcKICBsb2dMZXZlbDogMgogIG5ldHdvcmtQbHVnaW5NVFU6IDkwMDEKICBuZXR3b3JrUGx1Z2luTmFtZToga3ViZW5ldAogIG5vbk1hc3F1ZXJhZGVDSURSOiAxMDAuNjQuMC4wLzEwCiAgcG9kSW5mcmFDb250YWluZXJJbWFnZTogazhzLmdjci5pby9wYXVzZS1hbWQ2NDozLjIKICBwb2RNYW5pZmVzdFBhdGg6IC9ldGMva3ViZXJuZXRlcy9tYW5pZmVzdHMKICByZWdpc3RlclNjaGVkdWxhYmxlOiBmYWxzZQoKX19FT0ZfQ0xVU1RFUl9TUEVDCgpjYXQgPiBjb25mL2lnX3NwZWMueWFtbCA8PCAnX19FT0ZfSUdfU1BFQycKa3ViZWxldDogbnVsbApub2RlTGFiZWxzOiBudWxsCnRhaW50czogbnVsbAoKX19FT0ZfSUdfU1BFQwoKY2F0ID4gY29uZi9rdWJlX2Vudi55YW1sIDw8ICdfX0VPRl9LVUJFX0VOVicKQXNzZXRzOgotIGU5MTRiMTc1MzJjNDExY2I3YzBjYzQ3MjEzMWI2MTkzNWZiNjZiMzFAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjEyLjkvYmluL2xpbnV4L2FtZDY0L2t1YmVsZXQKLSBhYTNlOTM4OTdhNjk5OWQ2YzdkZWRiYzQxNzkzYzkwZDQxZWViMDAwQGh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9rdWJlcm5ldGVzLXJlbGVhc2UvcmVsZWFzZS92MS4xMi45L2Jpbi9saW51eC9hbWQ2NC9rdWJlY3RsCi0gNTJlOWQyZGU4YTVmOTI3MzA3ZDkzOTczMDg3MzU2NThlZTQ0YWI4ZEBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL25ldHdvcmstcGx1Z2lucy9jbmktcGx1Z2lucy1hbWQ2NC12MC43LjUudGd6CkNsdXN0ZXJOYW1lOiBsYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20KQ29uZmlnQmFzZTogbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9sYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20KSW5zdGFuY2VHcm91cE5hbWU6IG1hc3Rlci11cy10ZXN0LTFiClRhZ3M6Ci0gX2F1dG9tYXRpY191cGdyYWRlcwotIF9hd3MKY2hhbm5lbHM6Ci0gbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9sYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20vYWRkb25zL2Jvb3RzdHJhcC1jaGFubmVsLnlhbWwKZXRjZE1hbmlmZXN0czoKLSBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL2xhdW5jaHRlbXBsYXRlcy5leGFtcGxlLmNvbS9tYW5pZmVzdHMvZXRjZC9tYWluLnlhbWwKLSBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL2xhdW5jaHRlbXBsYXRlcy5leGFtcGxlLmNvbS9tYW5pZmVzdHMvZXRjZC9ldmVudHMueWFtbApwcm90b2t1YmVJbWFnZToKICBoYXNoOiA0MmE5YzQzMjRmZTI2ZDYzY2UxMWYzZGQ3ODM2MzcxYmM5M2ZhMDZjYThmNDc5ODA3NzI4ZjM3NDZlMjcwNjFiCiAgbmFtZTogcHJvdG9rdWJlOjEuMTUuMAogIHNvdXJjZXM6CiAgLSBodHRwczovL2FydGlmYWN0cy5rOHMuaW8vYmluYXJpZXMva29wcy8xLjE1LjAvaW1hZ2VzL3Byb3Rva3ViZS50YXIuZ3oKICAtIGh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzL2tvcHMvcmVsZWFzZXMvZG93bmxvYWQvdjEuMTUuMC9pbWFnZXMtcHJvdG9rdWJlLnRhci5negogIC0gaHR0cHM6Ly9rdWJldXB2Mi5zMy5hbWF6b25hd3MuY29tL2tvcHMvMS4xNS4wL2ltYWdlcy9wcm90b2t1YmUudGFyLmd6CgpfX0VPRl9LVUJFX0VOVgoKZG93bmxvYWQtcmVsZWFzZQplY2hvICI9PSBub2RldXAgbm9kZSBjb25maWcgZG9uZSA9PSIK +IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkw9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE1LjAvbGludXgtYW1kNjQtbm9kZXVwLGh0dHBzOi8va3ViZXVwdjIuczMuYW1hem9uYXdzLmNvbS9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0g9OTYwNGVmMTgyNjdhZDdiNWNmNGNlYmJmN2FiNjQ0MjNjZjViYjAzNDJkMTY5YzYwOGFjNjM3NmU2YWYyNmQ4MQoKZXhwb3J0IEFXU19SRUdJT049dXMtdGVzdC0xCgoKCgpmdW5jdGlvbiBlbnN1cmUtaW5zdGFsbC1kaXIoKSB7CiAgSU5TVEFMTF9ESVI9Ii9vcHQva29wcyIKICAjIE9uIENvbnRhaW5lck9TLCB3ZSBpbnN0YWxsIHVuZGVyIC92YXIvbGliL3Rvb2xib3g7IC9vcHQgaXMgcm8gYW5kIG5vZXhlYwogIGlmIFtbIC1kIC92YXIvbGliL3Rvb2xib3ggXV07IHRoZW4KICAgIElOU1RBTExfRElSPSIvdmFyL2xpYi90b29sYm94L2tvcHMiCiAgZmkKICBta2RpciAtcCAke0lOU1RBTExfRElSfS9iaW4KICBta2RpciAtcCAke0lOU1RBTExfRElSfS9jb25mCiAgY2QgJHtJTlNUQUxMX0RJUn0KfQoKIyBSZXRyeSBhIGRvd25sb2FkIHVudGlsIHdlIGdldCBpdC4gYXJnczogbmFtZSwgc2hhLCB1cmwxLCB1cmwyLi4uCmRvd25sb2FkLW9yLWJ1c3QoKSB7CiAgbG9jYWwgLXIgZmlsZT0iJDEiCiAgbG9jYWwgLXIgaGFzaD0iJDIiCiAgc2hpZnQgMgoKICB1cmxzPSggJCogKQogIHdoaWxlIHRydWU7IGRvCiAgICBmb3IgdXJsIGluICIke3VybHNbQF19IjsgZG8KICAgICAgY29tbWFuZHM9KAogICAgICAgICJjdXJsIC1mIC0taXB2NCAtLWNvbXByZXNzZWQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLS1jb21wcmVzc2lvbj1hdXRvIC1PICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dD0yMCAtLXRyaWVzPTYgLS13YWl0PTEwIgogICAgICAgICJjdXJsIC1mIC0taXB2NCAtTG8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0IDIwIC0tcmV0cnkgNiAtLXJldHJ5LWRlbGF5IDEwIgogICAgICAgICJ3Z2V0IC0taW5ldDQtb25seSAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgKQogICAgICBmb3IgY21kIGluICIke2NvbW1hbmRzW0BdfSI7IGRvCiAgICAgICAgZWNobyAiQXR0ZW1wdGluZyBkb3dubG9hZCB3aXRoOiAke2NtZH0ge3VybH0iCiAgICAgICAgaWYgISAoJHtjbWR9ICIke3VybH0iKTsgdGhlbgogICAgICAgICAgZWNobyAiPT0gRG93bmxvYWQgZmFpbGVkIHdpdGggJHtjbWR9ID09IgogICAgICAgICAgY29udGludWUKICAgICAgICBmaQogICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXSAmJiAhIHZhbGlkYXRlLWhhc2ggIiR7ZmlsZX0iICIke2hhc2h9IjsgdGhlbgogICAgICAgICAgZWNobyAiPT0gSGFzaCB2YWxpZGF0aW9uIG9mICR7dXJsfSBmYWlsZWQuIFJldHJ5aW5nLiA9PSIKICAgICAgICAgIHJtIC1mICIke2ZpbGV9IgogICAgICAgIGVsc2UKICAgICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXTsgdGhlbgogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSAoU0hBMSA9ICR7aGFzaH0pID09IgogICAgICAgICAgZWxzZQogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSA9PSIKICAgICAgICAgIGZpCiAgICAgICAgICByZXR1cm4KICAgICAgICBmaQogICAgICBkb25lCiAgICBkb25lCgogICAgZWNobyAiQWxsIGRvd25sb2FkcyBmYWlsZWQ7IHNsZWVwaW5nIGJlZm9yZSByZXRyeWluZyIKICAgIHNsZWVwIDYwCiAgZG9uZQp9Cgp2YWxpZGF0ZS1oYXNoKCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGV4cGVjdGVkPSIkMiIKICBsb2NhbCBhY3R1YWwKCiAgYWN0dWFsPSQoc2hhMjU2c3VtICR7ZmlsZX0gfCBhd2sgJ3sgcHJpbnQgJDEgfScpIHx8IHRydWUKICBpZiBbWyAiJHthY3R1YWx9IiAhPSAiJHtleHBlY3RlZH0iIF1dOyB0aGVuCiAgICBlY2hvICI9PSAke2ZpbGV9IGNvcnJ1cHRlZCwgaGFzaCAke2FjdHVhbH0gZG9lc24ndCBtYXRjaCBleHBlY3RlZCAke2V4cGVjdGVkfSA9PSIKICAgIHJldHVybiAxCiAgZmkKfQoKZnVuY3Rpb24gc3BsaXQtY29tbWFzKCkgewogIGVjaG8gJDEgfCB0ciAiLCIgIlxuIgp9CgpmdW5jdGlvbiB0cnktZG93bmxvYWQtcmVsZWFzZSgpIHsKICBsb2NhbCAtciBub2RldXBfdXJscz0oICQoc3BsaXQtY29tbWFzICIke05PREVVUF9VUkx9IikgKQogIGlmIFtbIC1uICIke05PREVVUF9IQVNIOi19IiBdXTsgdGhlbgogICAgbG9jYWwgLXIgbm9kZXVwX2hhc2g9IiR7Tk9ERVVQX0hBU0h9IgogIGVsc2UKICAjIFRPRE86IFJlbW92ZT8KICAgIGVjaG8gIkRvd25sb2FkaW5nIHNoYTI1NiAobm90IGZvdW5kIGluIGVudikiCiAgICBkb3dubG9hZC1vci1idXN0IG5vZGV1cC5zaGEyNTYgIiIgIiR7bm9kZXVwX3VybHNbQF0vJS8uc2hhMjU2fSIKICAgIGxvY2FsIC1yIG5vZGV1cF9oYXNoPSQoY2F0IG5vZGV1cC5zaGEyNTYpCiAgZmkKCiAgZWNobyAiRG93bmxvYWRpbmcgbm9kZXVwICgke25vZGV1cF91cmxzW0BdfSkiCiAgZG93bmxvYWQtb3ItYnVzdCBub2RldXAgIiR7bm9kZXVwX2hhc2h9IiAiJHtub2RldXBfdXJsc1tAXX0iCgogIGNobW9kICt4IG5vZGV1cAp9CgpmdW5jdGlvbiBkb3dubG9hZC1yZWxlYXNlKCkgewogIGNhc2UgIiQodW5hbWUgLW0pIiBpbgogIHg4Nl82NCp8aT84Nl82NCp8YW1kNjQqKQogICAgTk9ERVVQX1VSTD0iJHtOT0RFVVBfVVJMfSIKICAgIE5PREVVUF9IQVNIPSIke05PREVVUF9IQVNIfSIKICAgIDs7CiAgKikKICAgIGVjaG8gIlVuc3VwcG9ydGVkIGhvc3QgYXJjaDogJCh1bmFtZSAtbSkiID4mMgogICAgZXhpdCAxCiAgICA7OwogIGVzYWMKCiAgIyBJbiBjYXNlIG9mIGZhaWx1cmUgY2hlY2tpbmcgaW50ZWdyaXR5IG9mIHJlbGVhc2UsIHJldHJ5LgogIGNkICR7SU5TVEFMTF9ESVJ9L2JpbgogIHVudGlsIHRyeS1kb3dubG9hZC1yZWxlYXNlOyBkbwogICAgc2xlZXAgMTUKICAgIGVjaG8gIkNvdWxkbid0IGRvd25sb2FkIHJlbGVhc2UuIFJldHJ5aW5nLi4uIgogIGRvbmUKCiAgZWNobyAiUnVubmluZyBub2RldXAiCiAgIyBXZSBjYW4ndCBydW4gaW4gdGhlIGZvcmVncm91bmQgYmVjYXVzZSBvZiBodHRwczovL2dpdGh1Yi5jb20vZG9ja2VyL2RvY2tlci9pc3N1ZXMvMjM3OTMKICAoIGNkICR7SU5TVEFMTF9ESVJ9L2JpbjsgLi9ub2RldXAgLS1pbnN0YWxsLXN5c3RlbWQtdW5pdCAtLWNvbmY9JHtJTlNUQUxMX0RJUn0vY29uZi9rdWJlX2Vudi55YW1sIC0tdj04ICApCn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKL2Jpbi9zeXN0ZW1kLW1hY2hpbmUtaWQtc2V0dXAgfHwgZWNobyAiZmFpbGVkIHRvIHNldCB1cCBlbnN1cmUgbWFjaGluZS1pZCBjb25maWd1cmVkIgoKZWNobyAiPT0gbm9kZXVwIG5vZGUgY29uZmlnIHN0YXJ0aW5nID09IgplbnN1cmUtaW5zdGFsbC1kaXIKCmNhdCA+IGNvbmYvY2x1c3Rlcl9zcGVjLnlhbWwgPDwgJ19fRU9GX0NMVVNURVJfU1BFQycKY2xvdWRDb25maWc6IG51bGwKY29udGFpbmVyUnVudGltZTogZG9ja2VyCmNvbnRhaW5lcmQ6CiAgc2tpcEluc3RhbGw6IHRydWUKZG9ja2VyOgogIGlwTWFzcTogZmFsc2UKICBpcFRhYmxlczogZmFsc2UKICBsb2dEcml2ZXI6IGpzb24tZmlsZQogIGxvZ0xldmVsOiB3YXJuCiAgbG9nT3B0OgogIC0gbWF4LXNpemU9MTBtCiAgLSBtYXgtZmlsZT01CiAgc3RvcmFnZTogb3ZlcmxheTIsb3ZlcmxheSxhdWZzCiAgdmVyc2lvbjogMTguMDYuMwplbmNyeXB0aW9uQ29uZmlnOiBudWxsCmV0Y2RDbHVzdGVyczoKICBldmVudHM6CiAgICB2ZXJzaW9uOiAzLjIuMjQKICBtYWluOgogICAgdmVyc2lvbjogMy4yLjI0Cmt1YmVBUElTZXJ2ZXI6CiAgYWxsb3dQcml2aWxlZ2VkOiB0cnVlCiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBhcGlTZXJ2ZXJDb3VudDogMwogIGF1dGhvcml6YXRpb25Nb2RlOiBBbHdheXNBbGxvdwogIGJpbmRBZGRyZXNzOiAwLjAuMC4wCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgZW5hYmxlQWRtaXNzaW9uUGx1Z2luczoKICAtIE5hbWVzcGFjZUxpZmVjeWNsZQogIC0gTGltaXRSYW5nZXIKICAtIFNlcnZpY2VBY2NvdW50CiAgLSBQZXJzaXN0ZW50Vm9sdW1lTGFiZWwKICAtIERlZmF1bHRTdG9yYWdlQ2xhc3MKICAtIERlZmF1bHRUb2xlcmF0aW9uU2Vjb25kcwogIC0gTXV0YXRpbmdBZG1pc3Npb25XZWJob29rCiAgLSBWYWxpZGF0aW5nQWRtaXNzaW9uV2ViaG9vawogIC0gTm9kZVJlc3RyaWN0aW9uCiAgLSBSZXNvdXJjZVF1b3RhCiAgZXRjZFNlcnZlcnM6CiAgLSBodHRwOi8vMTI3LjAuMC4xOjQwMDEKICBldGNkU2VydmVyc092ZXJyaWRlczoKICAtIC9ldmVudHMjaHR0cDovLzEyNy4wLjAuMTo0MDAyCiAgaW1hZ2U6IGs4cy5nY3IuaW8va3ViZS1hcGlzZXJ2ZXI6djEuMTIuOQogIGluc2VjdXJlQmluZEFkZHJlc3M6IDEyNy4wLjAuMQogIGluc2VjdXJlUG9ydDogODA4MAogIGt1YmVsZXRQcmVmZXJyZWRBZGRyZXNzVHlwZXM6CiAgLSBJbnRlcm5hbElQCiAgLSBIb3N0bmFtZQogIC0gRXh0ZXJuYWxJUAogIGxvZ0xldmVsOiAyCiAgcmVxdWVzdGhlYWRlckFsbG93ZWROYW1lczoKICAtIGFnZ3JlZ2F0b3IKICByZXF1ZXN0aGVhZGVyRXh0cmFIZWFkZXJQcmVmaXhlczoKICAtIFgtUmVtb3RlLUV4dHJhLQogIHJlcXVlc3RoZWFkZXJHcm91cEhlYWRlcnM6CiAgLSBYLVJlbW90ZS1Hcm91cAogIHJlcXVlc3RoZWFkZXJVc2VybmFtZUhlYWRlcnM6CiAgLSBYLVJlbW90ZS1Vc2VyCiAgc2VjdXJlUG9ydDogNDQzCiAgc2VydmljZUNsdXN0ZXJJUFJhbmdlOiAxMDAuNjQuMC4wLzEzCiAgc3RvcmFnZUJhY2tlbmQ6IGV0Y2QzCmt1YmVDb250cm9sbGVyTWFuYWdlcjoKICBhbGxvY2F0ZU5vZGVDSURSczogdHJ1ZQogIGF0dGFjaERldGFjaFJlY29uY2lsZVN5bmNQZXJpb2Q6IDFtMHMKICBjbG91ZFByb3ZpZGVyOiBhd3MKICBjbHVzdGVyQ0lEUjogMTAwLjk2LjAuMC8xMQogIGNsdXN0ZXJOYW1lOiBsYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20KICBjb25maWd1cmVDbG91ZFJvdXRlczogdHJ1ZQogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtY29udHJvbGxlci1tYW5hZ2VyOnYxLjEyLjkKICBsZWFkZXJFbGVjdGlvbjoKICAgIGxlYWRlckVsZWN0OiB0cnVlCiAgbG9nTGV2ZWw6IDIKICB1c2VTZXJ2aWNlQWNjb3VudENyZWRlbnRpYWxzOiB0cnVlCmt1YmVQcm94eToKICBjbHVzdGVyQ0lEUjogMTAwLjk2LjAuMC8xMQogIGNwdVJlcXVlc3Q6IDEwMG0KICBob3N0bmFtZU92ZXJyaWRlOiAnQGF3cycKICBpbWFnZTogazhzLmdjci5pby9rdWJlLXByb3h5OnYxLjEyLjkKICBsb2dMZXZlbDogMgprdWJlU2NoZWR1bGVyOgogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtc2NoZWR1bGVyOnYxLjEyLjkKICBsZWFkZXJFbGVjdGlvbjoKICAgIGxlYWRlckVsZWN0OiB0cnVlCiAgbG9nTGV2ZWw6IDIKa3ViZWxldDoKICBhbGxvd1ByaXZpbGVnZWQ6IHRydWUKICBhbm9ueW1vdXNBdXRoOiBmYWxzZQogIGNncm91cFJvb3Q6IC8KICBjbG91ZFByb3ZpZGVyOiBhd3MKICBjbHVzdGVyRE5TOiAxMDAuNjQuMC4xMAogIGNsdXN0ZXJEb21haW46IGNsdXN0ZXIubG9jYWwKICBlbmFibGVEZWJ1Z2dpbmdIYW5kbGVyczogdHJ1ZQogIGV2aWN0aW9uSGFyZDogbWVtb3J5LmF2YWlsYWJsZTwxMDBNaSxub2RlZnMuYXZhaWxhYmxlPDEwJSxub2RlZnMuaW5vZGVzRnJlZTw1JSxpbWFnZWZzLmF2YWlsYWJsZTwxMCUsaW1hZ2Vmcy5pbm9kZXNGcmVlPDUlCiAgZmVhdHVyZUdhdGVzOgogICAgRXhwZXJpbWVudGFsQ3JpdGljYWxQb2RBbm5vdGF0aW9uOiAidHJ1ZSIKICBob3N0bmFtZU92ZXJyaWRlOiAnQGF3cycKICBrdWJlY29uZmlnUGF0aDogL3Zhci9saWIva3ViZWxldC9rdWJlY29uZmlnCiAgbG9nTGV2ZWw6IDIKICBuZXR3b3JrUGx1Z2luTVRVOiA5MDAxCiAgbmV0d29ya1BsdWdpbk5hbWU6IGt1YmVuZXQKICBub25NYXNxdWVyYWRlQ0lEUjogMTAwLjY0LjAuMC8xMAogIHBvZEluZnJhQ29udGFpbmVySW1hZ2U6IGs4cy5nY3IuaW8vcGF1c2U6My4yCiAgcG9kTWFuaWZlc3RQYXRoOiAvZXRjL2t1YmVybmV0ZXMvbWFuaWZlc3RzCm1hc3Rlckt1YmVsZXQ6CiAgYWxsb3dQcml2aWxlZ2VkOiB0cnVlCiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9uTWFzcXVlcmFkZUNJRFI6IDEwMC42NC4wLjAvMTAKICBwb2RJbmZyYUNvbnRhaW5lckltYWdlOiBrOHMuZ2NyLmlvL3BhdXNlOjMuMgogIHBvZE1hbmlmZXN0UGF0aDogL2V0Yy9rdWJlcm5ldGVzL21hbmlmZXN0cwogIHJlZ2lzdGVyU2NoZWR1bGFibGU6IGZhbHNlCgpfX0VPRl9DTFVTVEVSX1NQRUMKCmNhdCA+IGNvbmYvaWdfc3BlYy55YW1sIDw8ICdfX0VPRl9JR19TUEVDJwprdWJlbGV0OiBudWxsCm5vZGVMYWJlbHM6IG51bGwKdGFpbnRzOiBudWxsCgpfX0VPRl9JR19TUEVDCgpjYXQgPiBjb25mL2t1YmVfZW52LnlhbWwgPDwgJ19fRU9GX0tVQkVfRU5WJwpBc3NldHM6Ci0gZTkxNGIxNzUzMmM0MTFjYjdjMGNjNDcyMTMxYjYxOTM1ZmI2NmIzMUBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL3JlbGVhc2UvdjEuMTIuOS9iaW4vbGludXgvYW1kNjQva3ViZWxldAotIGFhM2U5Mzg5N2E2OTk5ZDZjN2RlZGJjNDE3OTNjOTBkNDFlZWIwMDBAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjEyLjkvYmluL2xpbnV4L2FtZDY0L2t1YmVjdGwKLSA1MmU5ZDJkZThhNWY5MjczMDdkOTM5NzMwODczNTY1OGVlNDRhYjhkQGh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9rdWJlcm5ldGVzLXJlbGVhc2UvbmV0d29yay1wbHVnaW5zL2NuaS1wbHVnaW5zLWFtZDY0LXYwLjcuNS50Z3oKQ2x1c3Rlck5hbWU6IGxhdW5jaHRlbXBsYXRlcy5leGFtcGxlLmNvbQpDb25maWdCYXNlOiBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL2xhdW5jaHRlbXBsYXRlcy5leGFtcGxlLmNvbQpJbnN0YW5jZUdyb3VwTmFtZTogbWFzdGVyLXVzLXRlc3QtMWIKVGFnczoKLSBfYXV0b21hdGljX3VwZ3JhZGVzCi0gX2F3cwpjaGFubmVsczoKLSBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL2xhdW5jaHRlbXBsYXRlcy5leGFtcGxlLmNvbS9hZGRvbnMvYm9vdHN0cmFwLWNoYW5uZWwueWFtbApldGNkTWFuaWZlc3RzOgotIG1lbWZzOi8vY2x1c3RlcnMuZXhhbXBsZS5jb20vbGF1bmNodGVtcGxhdGVzLmV4YW1wbGUuY29tL21hbmlmZXN0cy9ldGNkL21haW4ueWFtbAotIG1lbWZzOi8vY2x1c3RlcnMuZXhhbXBsZS5jb20vbGF1bmNodGVtcGxhdGVzLmV4YW1wbGUuY29tL21hbmlmZXN0cy9ldGNkL2V2ZW50cy55YW1sCnByb3Rva3ViZUltYWdlOgogIGhhc2g6IDQyYTljNDMyNGZlMjZkNjNjZTExZjNkZDc4MzYzNzFiYzkzZmEwNmNhOGY0Nzk4MDc3MjhmMzc0NmUyNzA2MWIKICBuYW1lOiBwcm90b2t1YmU6MS4xNS4wCiAgc291cmNlczoKICAtIGh0dHBzOi8vYXJ0aWZhY3RzLms4cy5pby9iaW5hcmllcy9rb3BzLzEuMTUuMC9pbWFnZXMvcHJvdG9rdWJlLnRhci5negogIC0gaHR0cHM6Ly9naXRodWIuY29tL2t1YmVybmV0ZXMva29wcy9yZWxlYXNlcy9kb3dubG9hZC92MS4xNS4wL2ltYWdlcy1wcm90b2t1YmUudGFyLmd6CiAgLSBodHRwczovL2t1YmV1cHYyLnMzLmFtYXpvbmF3cy5jb20va29wcy8xLjE1LjAvaW1hZ2VzL3Byb3Rva3ViZS50YXIuZ3oKCl9fRU9GX0tVQkVfRU5WCgpkb3dubG9hZC1yZWxlYXNlCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBkb25lID09Igo= diff --git a/tests/integration/update_cluster/launch_templates/data/aws_launch_template_master-us-test-1c.masters.launchtemplates.example.com_user_data b/tests/integration/update_cluster/launch_templates/data/aws_launch_template_master-us-test-1c.masters.launchtemplates.example.com_user_data index 6f8da3c84f0f0..05e47f64ca536 100644 --- a/tests/integration/update_cluster/launch_templates/data/aws_launch_template_master-us-test-1c.masters.launchtemplates.example.com_user_data +++ b/tests/integration/update_cluster/launch_templates/data/aws_launch_template_master-us-test-1c.masters.launchtemplates.example.com_user_data @@ -1 +1 @@ -IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkw9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE1LjAvbGludXgtYW1kNjQtbm9kZXVwLGh0dHBzOi8va3ViZXVwdjIuczMuYW1hem9uYXdzLmNvbS9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0g9OTYwNGVmMTgyNjdhZDdiNWNmNGNlYmJmN2FiNjQ0MjNjZjViYjAzNDJkMTY5YzYwOGFjNjM3NmU2YWYyNmQ4MQoKZXhwb3J0IEFXU19SRUdJT049dXMtdGVzdC0xCgoKCgpmdW5jdGlvbiBlbnN1cmUtaW5zdGFsbC1kaXIoKSB7CiAgSU5TVEFMTF9ESVI9Ii9vcHQva29wcyIKICAjIE9uIENvbnRhaW5lck9TLCB3ZSBpbnN0YWxsIHVuZGVyIC92YXIvbGliL3Rvb2xib3g7IC9vcHQgaXMgcm8gYW5kIG5vZXhlYwogIGlmIFtbIC1kIC92YXIvbGliL3Rvb2xib3ggXV07IHRoZW4KICAgIElOU1RBTExfRElSPSIvdmFyL2xpYi90b29sYm94L2tvcHMiCiAgZmkKICBta2RpciAtcCAke0lOU1RBTExfRElSfS9iaW4KICBta2RpciAtcCAke0lOU1RBTExfRElSfS9jb25mCiAgY2QgJHtJTlNUQUxMX0RJUn0KfQoKIyBSZXRyeSBhIGRvd25sb2FkIHVudGlsIHdlIGdldCBpdC4gYXJnczogbmFtZSwgc2hhLCB1cmwxLCB1cmwyLi4uCmRvd25sb2FkLW9yLWJ1c3QoKSB7CiAgbG9jYWwgLXIgZmlsZT0iJDEiCiAgbG9jYWwgLXIgaGFzaD0iJDIiCiAgc2hpZnQgMgoKICB1cmxzPSggJCogKQogIHdoaWxlIHRydWU7IGRvCiAgICBmb3IgdXJsIGluICIke3VybHNbQF19IjsgZG8KICAgICAgY29tbWFuZHM9KAogICAgICAgICJjdXJsIC1mIC0taXB2NCAtLWNvbXByZXNzZWQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLS1jb21wcmVzc2lvbj1hdXRvIC1PICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dD0yMCAtLXRyaWVzPTYgLS13YWl0PTEwIgogICAgICAgICJjdXJsIC1mIC0taXB2NCAtTG8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0IDIwIC0tcmV0cnkgNiAtLXJldHJ5LWRlbGF5IDEwIgogICAgICAgICJ3Z2V0IC0taW5ldDQtb25seSAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgKQogICAgICBmb3IgY21kIGluICIke2NvbW1hbmRzW0BdfSI7IGRvCiAgICAgICAgZWNobyAiQXR0ZW1wdGluZyBkb3dubG9hZCB3aXRoOiAke2NtZH0ge3VybH0iCiAgICAgICAgaWYgISAoJHtjbWR9ICIke3VybH0iKTsgdGhlbgogICAgICAgICAgZWNobyAiPT0gRG93bmxvYWQgZmFpbGVkIHdpdGggJHtjbWR9ID09IgogICAgICAgICAgY29udGludWUKICAgICAgICBmaQogICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXSAmJiAhIHZhbGlkYXRlLWhhc2ggIiR7ZmlsZX0iICIke2hhc2h9IjsgdGhlbgogICAgICAgICAgZWNobyAiPT0gSGFzaCB2YWxpZGF0aW9uIG9mICR7dXJsfSBmYWlsZWQuIFJldHJ5aW5nLiA9PSIKICAgICAgICAgIHJtIC1mICIke2ZpbGV9IgogICAgICAgIGVsc2UKICAgICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXTsgdGhlbgogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSAoU0hBMSA9ICR7aGFzaH0pID09IgogICAgICAgICAgZWxzZQogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSA9PSIKICAgICAgICAgIGZpCiAgICAgICAgICByZXR1cm4KICAgICAgICBmaQogICAgICBkb25lCiAgICBkb25lCgogICAgZWNobyAiQWxsIGRvd25sb2FkcyBmYWlsZWQ7IHNsZWVwaW5nIGJlZm9yZSByZXRyeWluZyIKICAgIHNsZWVwIDYwCiAgZG9uZQp9Cgp2YWxpZGF0ZS1oYXNoKCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGV4cGVjdGVkPSIkMiIKICBsb2NhbCBhY3R1YWwKCiAgYWN0dWFsPSQoc2hhMjU2c3VtICR7ZmlsZX0gfCBhd2sgJ3sgcHJpbnQgJDEgfScpIHx8IHRydWUKICBpZiBbWyAiJHthY3R1YWx9IiAhPSAiJHtleHBlY3RlZH0iIF1dOyB0aGVuCiAgICBlY2hvICI9PSAke2ZpbGV9IGNvcnJ1cHRlZCwgaGFzaCAke2FjdHVhbH0gZG9lc24ndCBtYXRjaCBleHBlY3RlZCAke2V4cGVjdGVkfSA9PSIKICAgIHJldHVybiAxCiAgZmkKfQoKZnVuY3Rpb24gc3BsaXQtY29tbWFzKCkgewogIGVjaG8gJDEgfCB0ciAiLCIgIlxuIgp9CgpmdW5jdGlvbiB0cnktZG93bmxvYWQtcmVsZWFzZSgpIHsKICBsb2NhbCAtciBub2RldXBfdXJscz0oICQoc3BsaXQtY29tbWFzICIke05PREVVUF9VUkx9IikgKQogIGlmIFtbIC1uICIke05PREVVUF9IQVNIOi19IiBdXTsgdGhlbgogICAgbG9jYWwgLXIgbm9kZXVwX2hhc2g9IiR7Tk9ERVVQX0hBU0h9IgogIGVsc2UKICAjIFRPRE86IFJlbW92ZT8KICAgIGVjaG8gIkRvd25sb2FkaW5nIHNoYTI1NiAobm90IGZvdW5kIGluIGVudikiCiAgICBkb3dubG9hZC1vci1idXN0IG5vZGV1cC5zaGEyNTYgIiIgIiR7bm9kZXVwX3VybHNbQF0vJS8uc2hhMjU2fSIKICAgIGxvY2FsIC1yIG5vZGV1cF9oYXNoPSQoY2F0IG5vZGV1cC5zaGEyNTYpCiAgZmkKCiAgZWNobyAiRG93bmxvYWRpbmcgbm9kZXVwICgke25vZGV1cF91cmxzW0BdfSkiCiAgZG93bmxvYWQtb3ItYnVzdCBub2RldXAgIiR7bm9kZXVwX2hhc2h9IiAiJHtub2RldXBfdXJsc1tAXX0iCgogIGNobW9kICt4IG5vZGV1cAp9CgpmdW5jdGlvbiBkb3dubG9hZC1yZWxlYXNlKCkgewogICMgSW4gY2FzZSBvZiBmYWlsdXJlIGNoZWNraW5nIGludGVncml0eSBvZiByZWxlYXNlLCByZXRyeS4KICBjZCAke0lOU1RBTExfRElSfS9iaW4KICB1bnRpbCB0cnktZG93bmxvYWQtcmVsZWFzZTsgZG8KICAgIHNsZWVwIDE1CiAgICBlY2hvICJDb3VsZG4ndCBkb3dubG9hZCByZWxlYXNlLiBSZXRyeWluZy4uLiIKICBkb25lCgogIGVjaG8gIlJ1bm5pbmcgbm9kZXVwIgogICMgV2UgY2FuJ3QgcnVuIGluIHRoZSBmb3JlZ3JvdW5kIGJlY2F1c2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci9kb2NrZXIvaXNzdWVzLzIzNzkzCiAgKCBjZCAke0lOU1RBTExfRElSfS9iaW47IC4vbm9kZXVwIC0taW5zdGFsbC1zeXN0ZW1kLXVuaXQgLS1jb25mPSR7SU5TVEFMTF9ESVJ9L2NvbmYva3ViZV9lbnYueWFtbCAtLXY9OCAgKQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi9iaW4vc3lzdGVtZC1tYWNoaW5lLWlkLXNldHVwIHx8IGVjaG8gImZhaWxlZCB0byBzZXQgdXAgZW5zdXJlIG1hY2hpbmUtaWQgY29uZmlndXJlZCIKCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBzdGFydGluZyA9PSIKZW5zdXJlLWluc3RhbGwtZGlyCgpjYXQgPiBjb25mL2NsdXN0ZXJfc3BlYy55YW1sIDw8ICdfX0VPRl9DTFVTVEVSX1NQRUMnCmNsb3VkQ29uZmlnOiBudWxsCmNvbnRhaW5lclJ1bnRpbWU6IGRvY2tlcgpjb250YWluZXJkOgogIHNraXBJbnN0YWxsOiB0cnVlCmRvY2tlcjoKICBpcE1hc3E6IGZhbHNlCiAgaXBUYWJsZXM6IGZhbHNlCiAgbG9nRHJpdmVyOiBqc29uLWZpbGUKICBsb2dMZXZlbDogd2FybgogIGxvZ09wdDoKICAtIG1heC1zaXplPTEwbQogIC0gbWF4LWZpbGU9NQogIHN0b3JhZ2U6IG92ZXJsYXkyLG92ZXJsYXksYXVmcwogIHZlcnNpb246IDE4LjA2LjMKZW5jcnlwdGlvbkNvbmZpZzogbnVsbApldGNkQ2x1c3RlcnM6CiAgZXZlbnRzOgogICAgdmVyc2lvbjogMy4yLjI0CiAgbWFpbjoKICAgIHZlcnNpb246IDMuMi4yNAprdWJlQVBJU2VydmVyOgogIGFsbG93UHJpdmlsZWdlZDogdHJ1ZQogIGFub255bW91c0F1dGg6IGZhbHNlCiAgYXBpU2VydmVyQ291bnQ6IDMKICBhdXRob3JpemF0aW9uTW9kZTogQWx3YXlzQWxsb3cKICBiaW5kQWRkcmVzczogMC4wLjAuMAogIGNsb3VkUHJvdmlkZXI6IGF3cwogIGVuYWJsZUFkbWlzc2lvblBsdWdpbnM6CiAgLSBOYW1lc3BhY2VMaWZlY3ljbGUKICAtIExpbWl0UmFuZ2VyCiAgLSBTZXJ2aWNlQWNjb3VudAogIC0gUGVyc2lzdGVudFZvbHVtZUxhYmVsCiAgLSBEZWZhdWx0U3RvcmFnZUNsYXNzCiAgLSBEZWZhdWx0VG9sZXJhdGlvblNlY29uZHMKICAtIE11dGF0aW5nQWRtaXNzaW9uV2ViaG9vawogIC0gVmFsaWRhdGluZ0FkbWlzc2lvbldlYmhvb2sKICAtIE5vZGVSZXN0cmljdGlvbgogIC0gUmVzb3VyY2VRdW90YQogIGV0Y2RTZXJ2ZXJzOgogIC0gaHR0cDovLzEyNy4wLjAuMTo0MDAxCiAgZXRjZFNlcnZlcnNPdmVycmlkZXM6CiAgLSAvZXZlbnRzI2h0dHA6Ly8xMjcuMC4wLjE6NDAwMgogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtYXBpc2VydmVyOnYxLjEyLjkKICBpbnNlY3VyZUJpbmRBZGRyZXNzOiAxMjcuMC4wLjEKICBpbnNlY3VyZVBvcnQ6IDgwODAKICBrdWJlbGV0UHJlZmVycmVkQWRkcmVzc1R5cGVzOgogIC0gSW50ZXJuYWxJUAogIC0gSG9zdG5hbWUKICAtIEV4dGVybmFsSVAKICBsb2dMZXZlbDogMgogIHJlcXVlc3RoZWFkZXJBbGxvd2VkTmFtZXM6CiAgLSBhZ2dyZWdhdG9yCiAgcmVxdWVzdGhlYWRlckV4dHJhSGVhZGVyUHJlZml4ZXM6CiAgLSBYLVJlbW90ZS1FeHRyYS0KICByZXF1ZXN0aGVhZGVyR3JvdXBIZWFkZXJzOgogIC0gWC1SZW1vdGUtR3JvdXAKICByZXF1ZXN0aGVhZGVyVXNlcm5hbWVIZWFkZXJzOgogIC0gWC1SZW1vdGUtVXNlcgogIHNlY3VyZVBvcnQ6IDQ0MwogIHNlcnZpY2VDbHVzdGVySVBSYW5nZTogMTAwLjY0LjAuMC8xMwogIHN0b3JhZ2VCYWNrZW5kOiBldGNkMwprdWJlQ29udHJvbGxlck1hbmFnZXI6CiAgYWxsb2NhdGVOb2RlQ0lEUnM6IHRydWUKICBhdHRhY2hEZXRhY2hSZWNvbmNpbGVTeW5jUGVyaW9kOiAxbTBzCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckNJRFI6IDEwMC45Ni4wLjAvMTEKICBjbHVzdGVyTmFtZTogbGF1bmNodGVtcGxhdGVzLmV4YW1wbGUuY29tCiAgY29uZmlndXJlQ2xvdWRSb3V0ZXM6IHRydWUKICBpbWFnZTogazhzLmdjci5pby9rdWJlLWNvbnRyb2xsZXItbWFuYWdlcjp2MS4xMi45CiAgbGVhZGVyRWxlY3Rpb246CiAgICBsZWFkZXJFbGVjdDogdHJ1ZQogIGxvZ0xldmVsOiAyCiAgdXNlU2VydmljZUFjY291bnRDcmVkZW50aWFsczogdHJ1ZQprdWJlUHJveHk6CiAgY2x1c3RlckNJRFI6IDEwMC45Ni4wLjAvMTEKICBjcHVSZXF1ZXN0OiAxMDBtCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAgaW1hZ2U6IGs4cy5nY3IuaW8va3ViZS1wcm94eTp2MS4xMi45CiAgbG9nTGV2ZWw6IDIKa3ViZVNjaGVkdWxlcjoKICBpbWFnZTogazhzLmdjci5pby9rdWJlLXNjaGVkdWxlcjp2MS4xMi45CiAgbGVhZGVyRWxlY3Rpb246CiAgICBsZWFkZXJFbGVjdDogdHJ1ZQogIGxvZ0xldmVsOiAyCmt1YmVsZXQ6CiAgYWxsb3dQcml2aWxlZ2VkOiB0cnVlCiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9uTWFzcXVlcmFkZUNJRFI6IDEwMC42NC4wLjAvMTAKICBwb2RJbmZyYUNvbnRhaW5lckltYWdlOiBrOHMuZ2NyLmlvL3BhdXNlLWFtZDY0OjMuMgogIHBvZE1hbmlmZXN0UGF0aDogL2V0Yy9rdWJlcm5ldGVzL21hbmlmZXN0cwptYXN0ZXJLdWJlbGV0OgogIGFsbG93UHJpdmlsZWdlZDogdHJ1ZQogIGFub255bW91c0F1dGg6IGZhbHNlCiAgY2dyb3VwUm9vdDogLwogIGNsb3VkUHJvdmlkZXI6IGF3cwogIGNsdXN0ZXJETlM6IDEwMC42NC4wLjEwCiAgY2x1c3RlckRvbWFpbjogY2x1c3Rlci5sb2NhbAogIGVuYWJsZURlYnVnZ2luZ0hhbmRsZXJzOiB0cnVlCiAgZXZpY3Rpb25IYXJkOiBtZW1vcnkuYXZhaWxhYmxlPDEwME1pLG5vZGVmcy5hdmFpbGFibGU8MTAlLG5vZGVmcy5pbm9kZXNGcmVlPDUlLGltYWdlZnMuYXZhaWxhYmxlPDEwJSxpbWFnZWZzLmlub2Rlc0ZyZWU8NSUKICBmZWF0dXJlR2F0ZXM6CiAgICBFeHBlcmltZW50YWxDcml0aWNhbFBvZEFubm90YXRpb246ICJ0cnVlIgogIGhvc3RuYW1lT3ZlcnJpZGU6ICdAYXdzJwogIGt1YmVjb25maWdQYXRoOiAvdmFyL2xpYi9rdWJlbGV0L2t1YmVjb25maWcKICBsb2dMZXZlbDogMgogIG5ldHdvcmtQbHVnaW5NVFU6IDkwMDEKICBuZXR3b3JrUGx1Z2luTmFtZToga3ViZW5ldAogIG5vbk1hc3F1ZXJhZGVDSURSOiAxMDAuNjQuMC4wLzEwCiAgcG9kSW5mcmFDb250YWluZXJJbWFnZTogazhzLmdjci5pby9wYXVzZS1hbWQ2NDozLjIKICBwb2RNYW5pZmVzdFBhdGg6IC9ldGMva3ViZXJuZXRlcy9tYW5pZmVzdHMKICByZWdpc3RlclNjaGVkdWxhYmxlOiBmYWxzZQoKX19FT0ZfQ0xVU1RFUl9TUEVDCgpjYXQgPiBjb25mL2lnX3NwZWMueWFtbCA8PCAnX19FT0ZfSUdfU1BFQycKa3ViZWxldDogbnVsbApub2RlTGFiZWxzOiBudWxsCnRhaW50czogbnVsbAoKX19FT0ZfSUdfU1BFQwoKY2F0ID4gY29uZi9rdWJlX2Vudi55YW1sIDw8ICdfX0VPRl9LVUJFX0VOVicKQXNzZXRzOgotIGU5MTRiMTc1MzJjNDExY2I3YzBjYzQ3MjEzMWI2MTkzNWZiNjZiMzFAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjEyLjkvYmluL2xpbnV4L2FtZDY0L2t1YmVsZXQKLSBhYTNlOTM4OTdhNjk5OWQ2YzdkZWRiYzQxNzkzYzkwZDQxZWViMDAwQGh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9rdWJlcm5ldGVzLXJlbGVhc2UvcmVsZWFzZS92MS4xMi45L2Jpbi9saW51eC9hbWQ2NC9rdWJlY3RsCi0gNTJlOWQyZGU4YTVmOTI3MzA3ZDkzOTczMDg3MzU2NThlZTQ0YWI4ZEBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL25ldHdvcmstcGx1Z2lucy9jbmktcGx1Z2lucy1hbWQ2NC12MC43LjUudGd6CkNsdXN0ZXJOYW1lOiBsYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20KQ29uZmlnQmFzZTogbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9sYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20KSW5zdGFuY2VHcm91cE5hbWU6IG1hc3Rlci11cy10ZXN0LTFjClRhZ3M6Ci0gX2F1dG9tYXRpY191cGdyYWRlcwotIF9hd3MKY2hhbm5lbHM6Ci0gbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9sYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20vYWRkb25zL2Jvb3RzdHJhcC1jaGFubmVsLnlhbWwKZXRjZE1hbmlmZXN0czoKLSBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL2xhdW5jaHRlbXBsYXRlcy5leGFtcGxlLmNvbS9tYW5pZmVzdHMvZXRjZC9tYWluLnlhbWwKLSBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL2xhdW5jaHRlbXBsYXRlcy5leGFtcGxlLmNvbS9tYW5pZmVzdHMvZXRjZC9ldmVudHMueWFtbApwcm90b2t1YmVJbWFnZToKICBoYXNoOiA0MmE5YzQzMjRmZTI2ZDYzY2UxMWYzZGQ3ODM2MzcxYmM5M2ZhMDZjYThmNDc5ODA3NzI4ZjM3NDZlMjcwNjFiCiAgbmFtZTogcHJvdG9rdWJlOjEuMTUuMAogIHNvdXJjZXM6CiAgLSBodHRwczovL2FydGlmYWN0cy5rOHMuaW8vYmluYXJpZXMva29wcy8xLjE1LjAvaW1hZ2VzL3Byb3Rva3ViZS50YXIuZ3oKICAtIGh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzL2tvcHMvcmVsZWFzZXMvZG93bmxvYWQvdjEuMTUuMC9pbWFnZXMtcHJvdG9rdWJlLnRhci5negogIC0gaHR0cHM6Ly9rdWJldXB2Mi5zMy5hbWF6b25hd3MuY29tL2tvcHMvMS4xNS4wL2ltYWdlcy9wcm90b2t1YmUudGFyLmd6CgpfX0VPRl9LVUJFX0VOVgoKZG93bmxvYWQtcmVsZWFzZQplY2hvICI9PSBub2RldXAgbm9kZSBjb25maWcgZG9uZSA9PSIK +IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkw9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE1LjAvbGludXgtYW1kNjQtbm9kZXVwLGh0dHBzOi8va3ViZXVwdjIuczMuYW1hem9uYXdzLmNvbS9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0g9OTYwNGVmMTgyNjdhZDdiNWNmNGNlYmJmN2FiNjQ0MjNjZjViYjAzNDJkMTY5YzYwOGFjNjM3NmU2YWYyNmQ4MQoKZXhwb3J0IEFXU19SRUdJT049dXMtdGVzdC0xCgoKCgpmdW5jdGlvbiBlbnN1cmUtaW5zdGFsbC1kaXIoKSB7CiAgSU5TVEFMTF9ESVI9Ii9vcHQva29wcyIKICAjIE9uIENvbnRhaW5lck9TLCB3ZSBpbnN0YWxsIHVuZGVyIC92YXIvbGliL3Rvb2xib3g7IC9vcHQgaXMgcm8gYW5kIG5vZXhlYwogIGlmIFtbIC1kIC92YXIvbGliL3Rvb2xib3ggXV07IHRoZW4KICAgIElOU1RBTExfRElSPSIvdmFyL2xpYi90b29sYm94L2tvcHMiCiAgZmkKICBta2RpciAtcCAke0lOU1RBTExfRElSfS9iaW4KICBta2RpciAtcCAke0lOU1RBTExfRElSfS9jb25mCiAgY2QgJHtJTlNUQUxMX0RJUn0KfQoKIyBSZXRyeSBhIGRvd25sb2FkIHVudGlsIHdlIGdldCBpdC4gYXJnczogbmFtZSwgc2hhLCB1cmwxLCB1cmwyLi4uCmRvd25sb2FkLW9yLWJ1c3QoKSB7CiAgbG9jYWwgLXIgZmlsZT0iJDEiCiAgbG9jYWwgLXIgaGFzaD0iJDIiCiAgc2hpZnQgMgoKICB1cmxzPSggJCogKQogIHdoaWxlIHRydWU7IGRvCiAgICBmb3IgdXJsIGluICIke3VybHNbQF19IjsgZG8KICAgICAgY29tbWFuZHM9KAogICAgICAgICJjdXJsIC1mIC0taXB2NCAtLWNvbXByZXNzZWQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLS1jb21wcmVzc2lvbj1hdXRvIC1PICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dD0yMCAtLXRyaWVzPTYgLS13YWl0PTEwIgogICAgICAgICJjdXJsIC1mIC0taXB2NCAtTG8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0IDIwIC0tcmV0cnkgNiAtLXJldHJ5LWRlbGF5IDEwIgogICAgICAgICJ3Z2V0IC0taW5ldDQtb25seSAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgKQogICAgICBmb3IgY21kIGluICIke2NvbW1hbmRzW0BdfSI7IGRvCiAgICAgICAgZWNobyAiQXR0ZW1wdGluZyBkb3dubG9hZCB3aXRoOiAke2NtZH0ge3VybH0iCiAgICAgICAgaWYgISAoJHtjbWR9ICIke3VybH0iKTsgdGhlbgogICAgICAgICAgZWNobyAiPT0gRG93bmxvYWQgZmFpbGVkIHdpdGggJHtjbWR9ID09IgogICAgICAgICAgY29udGludWUKICAgICAgICBmaQogICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXSAmJiAhIHZhbGlkYXRlLWhhc2ggIiR7ZmlsZX0iICIke2hhc2h9IjsgdGhlbgogICAgICAgICAgZWNobyAiPT0gSGFzaCB2YWxpZGF0aW9uIG9mICR7dXJsfSBmYWlsZWQuIFJldHJ5aW5nLiA9PSIKICAgICAgICAgIHJtIC1mICIke2ZpbGV9IgogICAgICAgIGVsc2UKICAgICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXTsgdGhlbgogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSAoU0hBMSA9ICR7aGFzaH0pID09IgogICAgICAgICAgZWxzZQogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSA9PSIKICAgICAgICAgIGZpCiAgICAgICAgICByZXR1cm4KICAgICAgICBmaQogICAgICBkb25lCiAgICBkb25lCgogICAgZWNobyAiQWxsIGRvd25sb2FkcyBmYWlsZWQ7IHNsZWVwaW5nIGJlZm9yZSByZXRyeWluZyIKICAgIHNsZWVwIDYwCiAgZG9uZQp9Cgp2YWxpZGF0ZS1oYXNoKCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGV4cGVjdGVkPSIkMiIKICBsb2NhbCBhY3R1YWwKCiAgYWN0dWFsPSQoc2hhMjU2c3VtICR7ZmlsZX0gfCBhd2sgJ3sgcHJpbnQgJDEgfScpIHx8IHRydWUKICBpZiBbWyAiJHthY3R1YWx9IiAhPSAiJHtleHBlY3RlZH0iIF1dOyB0aGVuCiAgICBlY2hvICI9PSAke2ZpbGV9IGNvcnJ1cHRlZCwgaGFzaCAke2FjdHVhbH0gZG9lc24ndCBtYXRjaCBleHBlY3RlZCAke2V4cGVjdGVkfSA9PSIKICAgIHJldHVybiAxCiAgZmkKfQoKZnVuY3Rpb24gc3BsaXQtY29tbWFzKCkgewogIGVjaG8gJDEgfCB0ciAiLCIgIlxuIgp9CgpmdW5jdGlvbiB0cnktZG93bmxvYWQtcmVsZWFzZSgpIHsKICBsb2NhbCAtciBub2RldXBfdXJscz0oICQoc3BsaXQtY29tbWFzICIke05PREVVUF9VUkx9IikgKQogIGlmIFtbIC1uICIke05PREVVUF9IQVNIOi19IiBdXTsgdGhlbgogICAgbG9jYWwgLXIgbm9kZXVwX2hhc2g9IiR7Tk9ERVVQX0hBU0h9IgogIGVsc2UKICAjIFRPRE86IFJlbW92ZT8KICAgIGVjaG8gIkRvd25sb2FkaW5nIHNoYTI1NiAobm90IGZvdW5kIGluIGVudikiCiAgICBkb3dubG9hZC1vci1idXN0IG5vZGV1cC5zaGEyNTYgIiIgIiR7bm9kZXVwX3VybHNbQF0vJS8uc2hhMjU2fSIKICAgIGxvY2FsIC1yIG5vZGV1cF9oYXNoPSQoY2F0IG5vZGV1cC5zaGEyNTYpCiAgZmkKCiAgZWNobyAiRG93bmxvYWRpbmcgbm9kZXVwICgke25vZGV1cF91cmxzW0BdfSkiCiAgZG93bmxvYWQtb3ItYnVzdCBub2RldXAgIiR7bm9kZXVwX2hhc2h9IiAiJHtub2RldXBfdXJsc1tAXX0iCgogIGNobW9kICt4IG5vZGV1cAp9CgpmdW5jdGlvbiBkb3dubG9hZC1yZWxlYXNlKCkgewogIGNhc2UgIiQodW5hbWUgLW0pIiBpbgogIHg4Nl82NCp8aT84Nl82NCp8YW1kNjQqKQogICAgTk9ERVVQX1VSTD0iJHtOT0RFVVBfVVJMfSIKICAgIE5PREVVUF9IQVNIPSIke05PREVVUF9IQVNIfSIKICAgIDs7CiAgKikKICAgIGVjaG8gIlVuc3VwcG9ydGVkIGhvc3QgYXJjaDogJCh1bmFtZSAtbSkiID4mMgogICAgZXhpdCAxCiAgICA7OwogIGVzYWMKCiAgIyBJbiBjYXNlIG9mIGZhaWx1cmUgY2hlY2tpbmcgaW50ZWdyaXR5IG9mIHJlbGVhc2UsIHJldHJ5LgogIGNkICR7SU5TVEFMTF9ESVJ9L2JpbgogIHVudGlsIHRyeS1kb3dubG9hZC1yZWxlYXNlOyBkbwogICAgc2xlZXAgMTUKICAgIGVjaG8gIkNvdWxkbid0IGRvd25sb2FkIHJlbGVhc2UuIFJldHJ5aW5nLi4uIgogIGRvbmUKCiAgZWNobyAiUnVubmluZyBub2RldXAiCiAgIyBXZSBjYW4ndCBydW4gaW4gdGhlIGZvcmVncm91bmQgYmVjYXVzZSBvZiBodHRwczovL2dpdGh1Yi5jb20vZG9ja2VyL2RvY2tlci9pc3N1ZXMvMjM3OTMKICAoIGNkICR7SU5TVEFMTF9ESVJ9L2JpbjsgLi9ub2RldXAgLS1pbnN0YWxsLXN5c3RlbWQtdW5pdCAtLWNvbmY9JHtJTlNUQUxMX0RJUn0vY29uZi9rdWJlX2Vudi55YW1sIC0tdj04ICApCn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKL2Jpbi9zeXN0ZW1kLW1hY2hpbmUtaWQtc2V0dXAgfHwgZWNobyAiZmFpbGVkIHRvIHNldCB1cCBlbnN1cmUgbWFjaGluZS1pZCBjb25maWd1cmVkIgoKZWNobyAiPT0gbm9kZXVwIG5vZGUgY29uZmlnIHN0YXJ0aW5nID09IgplbnN1cmUtaW5zdGFsbC1kaXIKCmNhdCA+IGNvbmYvY2x1c3Rlcl9zcGVjLnlhbWwgPDwgJ19fRU9GX0NMVVNURVJfU1BFQycKY2xvdWRDb25maWc6IG51bGwKY29udGFpbmVyUnVudGltZTogZG9ja2VyCmNvbnRhaW5lcmQ6CiAgc2tpcEluc3RhbGw6IHRydWUKZG9ja2VyOgogIGlwTWFzcTogZmFsc2UKICBpcFRhYmxlczogZmFsc2UKICBsb2dEcml2ZXI6IGpzb24tZmlsZQogIGxvZ0xldmVsOiB3YXJuCiAgbG9nT3B0OgogIC0gbWF4LXNpemU9MTBtCiAgLSBtYXgtZmlsZT01CiAgc3RvcmFnZTogb3ZlcmxheTIsb3ZlcmxheSxhdWZzCiAgdmVyc2lvbjogMTguMDYuMwplbmNyeXB0aW9uQ29uZmlnOiBudWxsCmV0Y2RDbHVzdGVyczoKICBldmVudHM6CiAgICB2ZXJzaW9uOiAzLjIuMjQKICBtYWluOgogICAgdmVyc2lvbjogMy4yLjI0Cmt1YmVBUElTZXJ2ZXI6CiAgYWxsb3dQcml2aWxlZ2VkOiB0cnVlCiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBhcGlTZXJ2ZXJDb3VudDogMwogIGF1dGhvcml6YXRpb25Nb2RlOiBBbHdheXNBbGxvdwogIGJpbmRBZGRyZXNzOiAwLjAuMC4wCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgZW5hYmxlQWRtaXNzaW9uUGx1Z2luczoKICAtIE5hbWVzcGFjZUxpZmVjeWNsZQogIC0gTGltaXRSYW5nZXIKICAtIFNlcnZpY2VBY2NvdW50CiAgLSBQZXJzaXN0ZW50Vm9sdW1lTGFiZWwKICAtIERlZmF1bHRTdG9yYWdlQ2xhc3MKICAtIERlZmF1bHRUb2xlcmF0aW9uU2Vjb25kcwogIC0gTXV0YXRpbmdBZG1pc3Npb25XZWJob29rCiAgLSBWYWxpZGF0aW5nQWRtaXNzaW9uV2ViaG9vawogIC0gTm9kZVJlc3RyaWN0aW9uCiAgLSBSZXNvdXJjZVF1b3RhCiAgZXRjZFNlcnZlcnM6CiAgLSBodHRwOi8vMTI3LjAuMC4xOjQwMDEKICBldGNkU2VydmVyc092ZXJyaWRlczoKICAtIC9ldmVudHMjaHR0cDovLzEyNy4wLjAuMTo0MDAyCiAgaW1hZ2U6IGs4cy5nY3IuaW8va3ViZS1hcGlzZXJ2ZXI6djEuMTIuOQogIGluc2VjdXJlQmluZEFkZHJlc3M6IDEyNy4wLjAuMQogIGluc2VjdXJlUG9ydDogODA4MAogIGt1YmVsZXRQcmVmZXJyZWRBZGRyZXNzVHlwZXM6CiAgLSBJbnRlcm5hbElQCiAgLSBIb3N0bmFtZQogIC0gRXh0ZXJuYWxJUAogIGxvZ0xldmVsOiAyCiAgcmVxdWVzdGhlYWRlckFsbG93ZWROYW1lczoKICAtIGFnZ3JlZ2F0b3IKICByZXF1ZXN0aGVhZGVyRXh0cmFIZWFkZXJQcmVmaXhlczoKICAtIFgtUmVtb3RlLUV4dHJhLQogIHJlcXVlc3RoZWFkZXJHcm91cEhlYWRlcnM6CiAgLSBYLVJlbW90ZS1Hcm91cAogIHJlcXVlc3RoZWFkZXJVc2VybmFtZUhlYWRlcnM6CiAgLSBYLVJlbW90ZS1Vc2VyCiAgc2VjdXJlUG9ydDogNDQzCiAgc2VydmljZUNsdXN0ZXJJUFJhbmdlOiAxMDAuNjQuMC4wLzEzCiAgc3RvcmFnZUJhY2tlbmQ6IGV0Y2QzCmt1YmVDb250cm9sbGVyTWFuYWdlcjoKICBhbGxvY2F0ZU5vZGVDSURSczogdHJ1ZQogIGF0dGFjaERldGFjaFJlY29uY2lsZVN5bmNQZXJpb2Q6IDFtMHMKICBjbG91ZFByb3ZpZGVyOiBhd3MKICBjbHVzdGVyQ0lEUjogMTAwLjk2LjAuMC8xMQogIGNsdXN0ZXJOYW1lOiBsYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20KICBjb25maWd1cmVDbG91ZFJvdXRlczogdHJ1ZQogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtY29udHJvbGxlci1tYW5hZ2VyOnYxLjEyLjkKICBsZWFkZXJFbGVjdGlvbjoKICAgIGxlYWRlckVsZWN0OiB0cnVlCiAgbG9nTGV2ZWw6IDIKICB1c2VTZXJ2aWNlQWNjb3VudENyZWRlbnRpYWxzOiB0cnVlCmt1YmVQcm94eToKICBjbHVzdGVyQ0lEUjogMTAwLjk2LjAuMC8xMQogIGNwdVJlcXVlc3Q6IDEwMG0KICBob3N0bmFtZU92ZXJyaWRlOiAnQGF3cycKICBpbWFnZTogazhzLmdjci5pby9rdWJlLXByb3h5OnYxLjEyLjkKICBsb2dMZXZlbDogMgprdWJlU2NoZWR1bGVyOgogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtc2NoZWR1bGVyOnYxLjEyLjkKICBsZWFkZXJFbGVjdGlvbjoKICAgIGxlYWRlckVsZWN0OiB0cnVlCiAgbG9nTGV2ZWw6IDIKa3ViZWxldDoKICBhbGxvd1ByaXZpbGVnZWQ6IHRydWUKICBhbm9ueW1vdXNBdXRoOiBmYWxzZQogIGNncm91cFJvb3Q6IC8KICBjbG91ZFByb3ZpZGVyOiBhd3MKICBjbHVzdGVyRE5TOiAxMDAuNjQuMC4xMAogIGNsdXN0ZXJEb21haW46IGNsdXN0ZXIubG9jYWwKICBlbmFibGVEZWJ1Z2dpbmdIYW5kbGVyczogdHJ1ZQogIGV2aWN0aW9uSGFyZDogbWVtb3J5LmF2YWlsYWJsZTwxMDBNaSxub2RlZnMuYXZhaWxhYmxlPDEwJSxub2RlZnMuaW5vZGVzRnJlZTw1JSxpbWFnZWZzLmF2YWlsYWJsZTwxMCUsaW1hZ2Vmcy5pbm9kZXNGcmVlPDUlCiAgZmVhdHVyZUdhdGVzOgogICAgRXhwZXJpbWVudGFsQ3JpdGljYWxQb2RBbm5vdGF0aW9uOiAidHJ1ZSIKICBob3N0bmFtZU92ZXJyaWRlOiAnQGF3cycKICBrdWJlY29uZmlnUGF0aDogL3Zhci9saWIva3ViZWxldC9rdWJlY29uZmlnCiAgbG9nTGV2ZWw6IDIKICBuZXR3b3JrUGx1Z2luTVRVOiA5MDAxCiAgbmV0d29ya1BsdWdpbk5hbWU6IGt1YmVuZXQKICBub25NYXNxdWVyYWRlQ0lEUjogMTAwLjY0LjAuMC8xMAogIHBvZEluZnJhQ29udGFpbmVySW1hZ2U6IGs4cy5nY3IuaW8vcGF1c2U6My4yCiAgcG9kTWFuaWZlc3RQYXRoOiAvZXRjL2t1YmVybmV0ZXMvbWFuaWZlc3RzCm1hc3Rlckt1YmVsZXQ6CiAgYWxsb3dQcml2aWxlZ2VkOiB0cnVlCiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9uTWFzcXVlcmFkZUNJRFI6IDEwMC42NC4wLjAvMTAKICBwb2RJbmZyYUNvbnRhaW5lckltYWdlOiBrOHMuZ2NyLmlvL3BhdXNlOjMuMgogIHBvZE1hbmlmZXN0UGF0aDogL2V0Yy9rdWJlcm5ldGVzL21hbmlmZXN0cwogIHJlZ2lzdGVyU2NoZWR1bGFibGU6IGZhbHNlCgpfX0VPRl9DTFVTVEVSX1NQRUMKCmNhdCA+IGNvbmYvaWdfc3BlYy55YW1sIDw8ICdfX0VPRl9JR19TUEVDJwprdWJlbGV0OiBudWxsCm5vZGVMYWJlbHM6IG51bGwKdGFpbnRzOiBudWxsCgpfX0VPRl9JR19TUEVDCgpjYXQgPiBjb25mL2t1YmVfZW52LnlhbWwgPDwgJ19fRU9GX0tVQkVfRU5WJwpBc3NldHM6Ci0gZTkxNGIxNzUzMmM0MTFjYjdjMGNjNDcyMTMxYjYxOTM1ZmI2NmIzMUBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL3JlbGVhc2UvdjEuMTIuOS9iaW4vbGludXgvYW1kNjQva3ViZWxldAotIGFhM2U5Mzg5N2E2OTk5ZDZjN2RlZGJjNDE3OTNjOTBkNDFlZWIwMDBAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjEyLjkvYmluL2xpbnV4L2FtZDY0L2t1YmVjdGwKLSA1MmU5ZDJkZThhNWY5MjczMDdkOTM5NzMwODczNTY1OGVlNDRhYjhkQGh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9rdWJlcm5ldGVzLXJlbGVhc2UvbmV0d29yay1wbHVnaW5zL2NuaS1wbHVnaW5zLWFtZDY0LXYwLjcuNS50Z3oKQ2x1c3Rlck5hbWU6IGxhdW5jaHRlbXBsYXRlcy5leGFtcGxlLmNvbQpDb25maWdCYXNlOiBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL2xhdW5jaHRlbXBsYXRlcy5leGFtcGxlLmNvbQpJbnN0YW5jZUdyb3VwTmFtZTogbWFzdGVyLXVzLXRlc3QtMWMKVGFnczoKLSBfYXV0b21hdGljX3VwZ3JhZGVzCi0gX2F3cwpjaGFubmVsczoKLSBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL2xhdW5jaHRlbXBsYXRlcy5leGFtcGxlLmNvbS9hZGRvbnMvYm9vdHN0cmFwLWNoYW5uZWwueWFtbApldGNkTWFuaWZlc3RzOgotIG1lbWZzOi8vY2x1c3RlcnMuZXhhbXBsZS5jb20vbGF1bmNodGVtcGxhdGVzLmV4YW1wbGUuY29tL21hbmlmZXN0cy9ldGNkL21haW4ueWFtbAotIG1lbWZzOi8vY2x1c3RlcnMuZXhhbXBsZS5jb20vbGF1bmNodGVtcGxhdGVzLmV4YW1wbGUuY29tL21hbmlmZXN0cy9ldGNkL2V2ZW50cy55YW1sCnByb3Rva3ViZUltYWdlOgogIGhhc2g6IDQyYTljNDMyNGZlMjZkNjNjZTExZjNkZDc4MzYzNzFiYzkzZmEwNmNhOGY0Nzk4MDc3MjhmMzc0NmUyNzA2MWIKICBuYW1lOiBwcm90b2t1YmU6MS4xNS4wCiAgc291cmNlczoKICAtIGh0dHBzOi8vYXJ0aWZhY3RzLms4cy5pby9iaW5hcmllcy9rb3BzLzEuMTUuMC9pbWFnZXMvcHJvdG9rdWJlLnRhci5negogIC0gaHR0cHM6Ly9naXRodWIuY29tL2t1YmVybmV0ZXMva29wcy9yZWxlYXNlcy9kb3dubG9hZC92MS4xNS4wL2ltYWdlcy1wcm90b2t1YmUudGFyLmd6CiAgLSBodHRwczovL2t1YmV1cHYyLnMzLmFtYXpvbmF3cy5jb20va29wcy8xLjE1LjAvaW1hZ2VzL3Byb3Rva3ViZS50YXIuZ3oKCl9fRU9GX0tVQkVfRU5WCgpkb3dubG9hZC1yZWxlYXNlCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBkb25lID09Igo= diff --git a/tests/integration/update_cluster/launch_templates/data/aws_launch_template_nodes.launchtemplates.example.com_user_data b/tests/integration/update_cluster/launch_templates/data/aws_launch_template_nodes.launchtemplates.example.com_user_data index a0c9001a8e11d..5f8194d34e204 100644 --- a/tests/integration/update_cluster/launch_templates/data/aws_launch_template_nodes.launchtemplates.example.com_user_data +++ b/tests/integration/update_cluster/launch_templates/data/aws_launch_template_nodes.launchtemplates.example.com_user_data @@ -1 +1 @@ -IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkw9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE1LjAvbGludXgtYW1kNjQtbm9kZXVwLGh0dHBzOi8va3ViZXVwdjIuczMuYW1hem9uYXdzLmNvbS9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0g9OTYwNGVmMTgyNjdhZDdiNWNmNGNlYmJmN2FiNjQ0MjNjZjViYjAzNDJkMTY5YzYwOGFjNjM3NmU2YWYyNmQ4MQoKZXhwb3J0IEFXU19SRUdJT049dXMtdGVzdC0xCgoKCgpmdW5jdGlvbiBlbnN1cmUtaW5zdGFsbC1kaXIoKSB7CiAgSU5TVEFMTF9ESVI9Ii9vcHQva29wcyIKICAjIE9uIENvbnRhaW5lck9TLCB3ZSBpbnN0YWxsIHVuZGVyIC92YXIvbGliL3Rvb2xib3g7IC9vcHQgaXMgcm8gYW5kIG5vZXhlYwogIGlmIFtbIC1kIC92YXIvbGliL3Rvb2xib3ggXV07IHRoZW4KICAgIElOU1RBTExfRElSPSIvdmFyL2xpYi90b29sYm94L2tvcHMiCiAgZmkKICBta2RpciAtcCAke0lOU1RBTExfRElSfS9iaW4KICBta2RpciAtcCAke0lOU1RBTExfRElSfS9jb25mCiAgY2QgJHtJTlNUQUxMX0RJUn0KfQoKIyBSZXRyeSBhIGRvd25sb2FkIHVudGlsIHdlIGdldCBpdC4gYXJnczogbmFtZSwgc2hhLCB1cmwxLCB1cmwyLi4uCmRvd25sb2FkLW9yLWJ1c3QoKSB7CiAgbG9jYWwgLXIgZmlsZT0iJDEiCiAgbG9jYWwgLXIgaGFzaD0iJDIiCiAgc2hpZnQgMgoKICB1cmxzPSggJCogKQogIHdoaWxlIHRydWU7IGRvCiAgICBmb3IgdXJsIGluICIke3VybHNbQF19IjsgZG8KICAgICAgY29tbWFuZHM9KAogICAgICAgICJjdXJsIC1mIC0taXB2NCAtLWNvbXByZXNzZWQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLS1jb21wcmVzc2lvbj1hdXRvIC1PICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dD0yMCAtLXRyaWVzPTYgLS13YWl0PTEwIgogICAgICAgICJjdXJsIC1mIC0taXB2NCAtTG8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0IDIwIC0tcmV0cnkgNiAtLXJldHJ5LWRlbGF5IDEwIgogICAgICAgICJ3Z2V0IC0taW5ldDQtb25seSAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgKQogICAgICBmb3IgY21kIGluICIke2NvbW1hbmRzW0BdfSI7IGRvCiAgICAgICAgZWNobyAiQXR0ZW1wdGluZyBkb3dubG9hZCB3aXRoOiAke2NtZH0ge3VybH0iCiAgICAgICAgaWYgISAoJHtjbWR9ICIke3VybH0iKTsgdGhlbgogICAgICAgICAgZWNobyAiPT0gRG93bmxvYWQgZmFpbGVkIHdpdGggJHtjbWR9ID09IgogICAgICAgICAgY29udGludWUKICAgICAgICBmaQogICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXSAmJiAhIHZhbGlkYXRlLWhhc2ggIiR7ZmlsZX0iICIke2hhc2h9IjsgdGhlbgogICAgICAgICAgZWNobyAiPT0gSGFzaCB2YWxpZGF0aW9uIG9mICR7dXJsfSBmYWlsZWQuIFJldHJ5aW5nLiA9PSIKICAgICAgICAgIHJtIC1mICIke2ZpbGV9IgogICAgICAgIGVsc2UKICAgICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXTsgdGhlbgogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSAoU0hBMSA9ICR7aGFzaH0pID09IgogICAgICAgICAgZWxzZQogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSA9PSIKICAgICAgICAgIGZpCiAgICAgICAgICByZXR1cm4KICAgICAgICBmaQogICAgICBkb25lCiAgICBkb25lCgogICAgZWNobyAiQWxsIGRvd25sb2FkcyBmYWlsZWQ7IHNsZWVwaW5nIGJlZm9yZSByZXRyeWluZyIKICAgIHNsZWVwIDYwCiAgZG9uZQp9Cgp2YWxpZGF0ZS1oYXNoKCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGV4cGVjdGVkPSIkMiIKICBsb2NhbCBhY3R1YWwKCiAgYWN0dWFsPSQoc2hhMjU2c3VtICR7ZmlsZX0gfCBhd2sgJ3sgcHJpbnQgJDEgfScpIHx8IHRydWUKICBpZiBbWyAiJHthY3R1YWx9IiAhPSAiJHtleHBlY3RlZH0iIF1dOyB0aGVuCiAgICBlY2hvICI9PSAke2ZpbGV9IGNvcnJ1cHRlZCwgaGFzaCAke2FjdHVhbH0gZG9lc24ndCBtYXRjaCBleHBlY3RlZCAke2V4cGVjdGVkfSA9PSIKICAgIHJldHVybiAxCiAgZmkKfQoKZnVuY3Rpb24gc3BsaXQtY29tbWFzKCkgewogIGVjaG8gJDEgfCB0ciAiLCIgIlxuIgp9CgpmdW5jdGlvbiB0cnktZG93bmxvYWQtcmVsZWFzZSgpIHsKICBsb2NhbCAtciBub2RldXBfdXJscz0oICQoc3BsaXQtY29tbWFzICIke05PREVVUF9VUkx9IikgKQogIGlmIFtbIC1uICIke05PREVVUF9IQVNIOi19IiBdXTsgdGhlbgogICAgbG9jYWwgLXIgbm9kZXVwX2hhc2g9IiR7Tk9ERVVQX0hBU0h9IgogIGVsc2UKICAjIFRPRE86IFJlbW92ZT8KICAgIGVjaG8gIkRvd25sb2FkaW5nIHNoYTI1NiAobm90IGZvdW5kIGluIGVudikiCiAgICBkb3dubG9hZC1vci1idXN0IG5vZGV1cC5zaGEyNTYgIiIgIiR7bm9kZXVwX3VybHNbQF0vJS8uc2hhMjU2fSIKICAgIGxvY2FsIC1yIG5vZGV1cF9oYXNoPSQoY2F0IG5vZGV1cC5zaGEyNTYpCiAgZmkKCiAgZWNobyAiRG93bmxvYWRpbmcgbm9kZXVwICgke25vZGV1cF91cmxzW0BdfSkiCiAgZG93bmxvYWQtb3ItYnVzdCBub2RldXAgIiR7bm9kZXVwX2hhc2h9IiAiJHtub2RldXBfdXJsc1tAXX0iCgogIGNobW9kICt4IG5vZGV1cAp9CgpmdW5jdGlvbiBkb3dubG9hZC1yZWxlYXNlKCkgewogICMgSW4gY2FzZSBvZiBmYWlsdXJlIGNoZWNraW5nIGludGVncml0eSBvZiByZWxlYXNlLCByZXRyeS4KICBjZCAke0lOU1RBTExfRElSfS9iaW4KICB1bnRpbCB0cnktZG93bmxvYWQtcmVsZWFzZTsgZG8KICAgIHNsZWVwIDE1CiAgICBlY2hvICJDb3VsZG4ndCBkb3dubG9hZCByZWxlYXNlLiBSZXRyeWluZy4uLiIKICBkb25lCgogIGVjaG8gIlJ1bm5pbmcgbm9kZXVwIgogICMgV2UgY2FuJ3QgcnVuIGluIHRoZSBmb3JlZ3JvdW5kIGJlY2F1c2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci9kb2NrZXIvaXNzdWVzLzIzNzkzCiAgKCBjZCAke0lOU1RBTExfRElSfS9iaW47IC4vbm9kZXVwIC0taW5zdGFsbC1zeXN0ZW1kLXVuaXQgLS1jb25mPSR7SU5TVEFMTF9ESVJ9L2NvbmYva3ViZV9lbnYueWFtbCAtLXY9OCAgKQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi9iaW4vc3lzdGVtZC1tYWNoaW5lLWlkLXNldHVwIHx8IGVjaG8gImZhaWxlZCB0byBzZXQgdXAgZW5zdXJlIG1hY2hpbmUtaWQgY29uZmlndXJlZCIKCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBzdGFydGluZyA9PSIKZW5zdXJlLWluc3RhbGwtZGlyCgpjYXQgPiBjb25mL2NsdXN0ZXJfc3BlYy55YW1sIDw8ICdfX0VPRl9DTFVTVEVSX1NQRUMnCmNsb3VkQ29uZmlnOiBudWxsCmNvbnRhaW5lclJ1bnRpbWU6IGRvY2tlcgpjb250YWluZXJkOgogIHNraXBJbnN0YWxsOiB0cnVlCmRvY2tlcjoKICBpcE1hc3E6IGZhbHNlCiAgaXBUYWJsZXM6IGZhbHNlCiAgbG9nRHJpdmVyOiBqc29uLWZpbGUKICBsb2dMZXZlbDogd2FybgogIGxvZ09wdDoKICAtIG1heC1zaXplPTEwbQogIC0gbWF4LWZpbGU9NQogIHN0b3JhZ2U6IG92ZXJsYXkyLG92ZXJsYXksYXVmcwogIHZlcnNpb246IDE4LjA2LjMKa3ViZVByb3h5OgogIGNsdXN0ZXJDSURSOiAxMDAuOTYuMC4wLzExCiAgY3B1UmVxdWVzdDogMTAwbQogIGhvc3RuYW1lT3ZlcnJpZGU6ICdAYXdzJwogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtcHJveHk6djEuMTIuOQogIGxvZ0xldmVsOiAyCmt1YmVsZXQ6CiAgYWxsb3dQcml2aWxlZ2VkOiB0cnVlCiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9uTWFzcXVlcmFkZUNJRFI6IDEwMC42NC4wLjAvMTAKICBwb2RJbmZyYUNvbnRhaW5lckltYWdlOiBrOHMuZ2NyLmlvL3BhdXNlLWFtZDY0OjMuMgogIHBvZE1hbmlmZXN0UGF0aDogL2V0Yy9rdWJlcm5ldGVzL21hbmlmZXN0cwoKX19FT0ZfQ0xVU1RFUl9TUEVDCgpjYXQgPiBjb25mL2lnX3NwZWMueWFtbCA8PCAnX19FT0ZfSUdfU1BFQycKa3ViZWxldDogbnVsbApub2RlTGFiZWxzOiBudWxsCnRhaW50czogbnVsbAoKX19FT0ZfSUdfU1BFQwoKY2F0ID4gY29uZi9rdWJlX2Vudi55YW1sIDw8ICdfX0VPRl9LVUJFX0VOVicKQXNzZXRzOgotIGU5MTRiMTc1MzJjNDExY2I3YzBjYzQ3MjEzMWI2MTkzNWZiNjZiMzFAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjEyLjkvYmluL2xpbnV4L2FtZDY0L2t1YmVsZXQKLSBhYTNlOTM4OTdhNjk5OWQ2YzdkZWRiYzQxNzkzYzkwZDQxZWViMDAwQGh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9rdWJlcm5ldGVzLXJlbGVhc2UvcmVsZWFzZS92MS4xMi45L2Jpbi9saW51eC9hbWQ2NC9rdWJlY3RsCi0gNTJlOWQyZGU4YTVmOTI3MzA3ZDkzOTczMDg3MzU2NThlZTQ0YWI4ZEBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL25ldHdvcmstcGx1Z2lucy9jbmktcGx1Z2lucy1hbWQ2NC12MC43LjUudGd6CkNsdXN0ZXJOYW1lOiBsYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20KQ29uZmlnQmFzZTogbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9sYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20KSW5zdGFuY2VHcm91cE5hbWU6IG5vZGVzClRhZ3M6Ci0gX2F1dG9tYXRpY191cGdyYWRlcwotIF9hd3MKY2hhbm5lbHM6Ci0gbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9sYXVuY2h0ZW1wbGF0ZXMuZXhhbXBsZS5jb20vYWRkb25zL2Jvb3RzdHJhcC1jaGFubmVsLnlhbWwKCl9fRU9GX0tVQkVfRU5WCgpkb3dubG9hZC1yZWxlYXNlCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBkb25lID09Igo= +IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkw9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE1LjAvbGludXgtYW1kNjQtbm9kZXVwLGh0dHBzOi8va3ViZXVwdjIuczMuYW1hem9uYXdzLmNvbS9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0g9OTYwNGVmMTgyNjdhZDdiNWNmNGNlYmJmN2FiNjQ0MjNjZjViYjAzNDJkMTY5YzYwOGFjNjM3NmU2YWYyNmQ4MQoKZXhwb3J0IEFXU19SRUdJT049dXMtdGVzdC0xCgoKCgpmdW5jdGlvbiBlbnN1cmUtaW5zdGFsbC1kaXIoKSB7CiAgSU5TVEFMTF9ESVI9Ii9vcHQva29wcyIKICAjIE9uIENvbnRhaW5lck9TLCB3ZSBpbnN0YWxsIHVuZGVyIC92YXIvbGliL3Rvb2xib3g7IC9vcHQgaXMgcm8gYW5kIG5vZXhlYwogIGlmIFtbIC1kIC92YXIvbGliL3Rvb2xib3ggXV07IHRoZW4KICAgIElOU1RBTExfRElSPSIvdmFyL2xpYi90b29sYm94L2tvcHMiCiAgZmkKICBta2RpciAtcCAke0lOU1RBTExfRElSfS9iaW4KICBta2RpciAtcCAke0lOU1RBTExfRElSfS9jb25mCiAgY2QgJHtJTlNUQUxMX0RJUn0KfQoKIyBSZXRyeSBhIGRvd25sb2FkIHVudGlsIHdlIGdldCBpdC4gYXJnczogbmFtZSwgc2hhLCB1cmwxLCB1cmwyLi4uCmRvd25sb2FkLW9yLWJ1c3QoKSB7CiAgbG9jYWwgLXIgZmlsZT0iJDEiCiAgbG9jYWwgLXIgaGFzaD0iJDIiCiAgc2hpZnQgMgoKICB1cmxzPSggJCogKQogIHdoaWxlIHRydWU7IGRvCiAgICBmb3IgdXJsIGluICIke3VybHNbQF19IjsgZG8KICAgICAgY29tbWFuZHM9KAogICAgICAgICJjdXJsIC1mIC0taXB2NCAtLWNvbXByZXNzZWQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLS1jb21wcmVzc2lvbj1hdXRvIC1PICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dD0yMCAtLXRyaWVzPTYgLS13YWl0PTEwIgogICAgICAgICJjdXJsIC1mIC0taXB2NCAtTG8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0IDIwIC0tcmV0cnkgNiAtLXJldHJ5LWRlbGF5IDEwIgogICAgICAgICJ3Z2V0IC0taW5ldDQtb25seSAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgKQogICAgICBmb3IgY21kIGluICIke2NvbW1hbmRzW0BdfSI7IGRvCiAgICAgICAgZWNobyAiQXR0ZW1wdGluZyBkb3dubG9hZCB3aXRoOiAke2NtZH0ge3VybH0iCiAgICAgICAgaWYgISAoJHtjbWR9ICIke3VybH0iKTsgdGhlbgogICAgICAgICAgZWNobyAiPT0gRG93bmxvYWQgZmFpbGVkIHdpdGggJHtjbWR9ID09IgogICAgICAgICAgY29udGludWUKICAgICAgICBmaQogICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXSAmJiAhIHZhbGlkYXRlLWhhc2ggIiR7ZmlsZX0iICIke2hhc2h9IjsgdGhlbgogICAgICAgICAgZWNobyAiPT0gSGFzaCB2YWxpZGF0aW9uIG9mICR7dXJsfSBmYWlsZWQuIFJldHJ5aW5nLiA9PSIKICAgICAgICAgIHJtIC1mICIke2ZpbGV9IgogICAgICAgIGVsc2UKICAgICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXTsgdGhlbgogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSAoU0hBMSA9ICR7aGFzaH0pID09IgogICAgICAgICAgZWxzZQogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSA9PSIKICAgICAgICAgIGZpCiAgICAgICAgICByZXR1cm4KICAgICAgICBmaQogICAgICBkb25lCiAgICBkb25lCgogICAgZWNobyAiQWxsIGRvd25sb2FkcyBmYWlsZWQ7IHNsZWVwaW5nIGJlZm9yZSByZXRyeWluZyIKICAgIHNsZWVwIDYwCiAgZG9uZQp9Cgp2YWxpZGF0ZS1oYXNoKCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGV4cGVjdGVkPSIkMiIKICBsb2NhbCBhY3R1YWwKCiAgYWN0dWFsPSQoc2hhMjU2c3VtICR7ZmlsZX0gfCBhd2sgJ3sgcHJpbnQgJDEgfScpIHx8IHRydWUKICBpZiBbWyAiJHthY3R1YWx9IiAhPSAiJHtleHBlY3RlZH0iIF1dOyB0aGVuCiAgICBlY2hvICI9PSAke2ZpbGV9IGNvcnJ1cHRlZCwgaGFzaCAke2FjdHVhbH0gZG9lc24ndCBtYXRjaCBleHBlY3RlZCAke2V4cGVjdGVkfSA9PSIKICAgIHJldHVybiAxCiAgZmkKfQoKZnVuY3Rpb24gc3BsaXQtY29tbWFzKCkgewogIGVjaG8gJDEgfCB0ciAiLCIgIlxuIgp9CgpmdW5jdGlvbiB0cnktZG93bmxvYWQtcmVsZWFzZSgpIHsKICBsb2NhbCAtciBub2RldXBfdXJscz0oICQoc3BsaXQtY29tbWFzICIke05PREVVUF9VUkx9IikgKQogIGlmIFtbIC1uICIke05PREVVUF9IQVNIOi19IiBdXTsgdGhlbgogICAgbG9jYWwgLXIgbm9kZXVwX2hhc2g9IiR7Tk9ERVVQX0hBU0h9IgogIGVsc2UKICAjIFRPRE86IFJlbW92ZT8KICAgIGVjaG8gIkRvd25sb2FkaW5nIHNoYTI1NiAobm90IGZvdW5kIGluIGVudikiCiAgICBkb3dubG9hZC1vci1idXN0IG5vZGV1cC5zaGEyNTYgIiIgIiR7bm9kZXVwX3VybHNbQF0vJS8uc2hhMjU2fSIKICAgIGxvY2FsIC1yIG5vZGV1cF9oYXNoPSQoY2F0IG5vZGV1cC5zaGEyNTYpCiAgZmkKCiAgZWNobyAiRG93bmxvYWRpbmcgbm9kZXVwICgke25vZGV1cF91cmxzW0BdfSkiCiAgZG93bmxvYWQtb3ItYnVzdCBub2RldXAgIiR7bm9kZXVwX2hhc2h9IiAiJHtub2RldXBfdXJsc1tAXX0iCgogIGNobW9kICt4IG5vZGV1cAp9CgpmdW5jdGlvbiBkb3dubG9hZC1yZWxlYXNlKCkgewogIGNhc2UgIiQodW5hbWUgLW0pIiBpbgogIHg4Nl82NCp8aT84Nl82NCp8YW1kNjQqKQogICAgTk9ERVVQX1VSTD0iJHtOT0RFVVBfVVJMfSIKICAgIE5PREVVUF9IQVNIPSIke05PREVVUF9IQVNIfSIKICAgIDs7CiAgKikKICAgIGVjaG8gIlVuc3VwcG9ydGVkIGhvc3QgYXJjaDogJCh1bmFtZSAtbSkiID4mMgogICAgZXhpdCAxCiAgICA7OwogIGVzYWMKCiAgIyBJbiBjYXNlIG9mIGZhaWx1cmUgY2hlY2tpbmcgaW50ZWdyaXR5IG9mIHJlbGVhc2UsIHJldHJ5LgogIGNkICR7SU5TVEFMTF9ESVJ9L2JpbgogIHVudGlsIHRyeS1kb3dubG9hZC1yZWxlYXNlOyBkbwogICAgc2xlZXAgMTUKICAgIGVjaG8gIkNvdWxkbid0IGRvd25sb2FkIHJlbGVhc2UuIFJldHJ5aW5nLi4uIgogIGRvbmUKCiAgZWNobyAiUnVubmluZyBub2RldXAiCiAgIyBXZSBjYW4ndCBydW4gaW4gdGhlIGZvcmVncm91bmQgYmVjYXVzZSBvZiBodHRwczovL2dpdGh1Yi5jb20vZG9ja2VyL2RvY2tlci9pc3N1ZXMvMjM3OTMKICAoIGNkICR7SU5TVEFMTF9ESVJ9L2JpbjsgLi9ub2RldXAgLS1pbnN0YWxsLXN5c3RlbWQtdW5pdCAtLWNvbmY9JHtJTlNUQUxMX0RJUn0vY29uZi9rdWJlX2Vudi55YW1sIC0tdj04ICApCn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKL2Jpbi9zeXN0ZW1kLW1hY2hpbmUtaWQtc2V0dXAgfHwgZWNobyAiZmFpbGVkIHRvIHNldCB1cCBlbnN1cmUgbWFjaGluZS1pZCBjb25maWd1cmVkIgoKZWNobyAiPT0gbm9kZXVwIG5vZGUgY29uZmlnIHN0YXJ0aW5nID09IgplbnN1cmUtaW5zdGFsbC1kaXIKCmNhdCA+IGNvbmYvY2x1c3Rlcl9zcGVjLnlhbWwgPDwgJ19fRU9GX0NMVVNURVJfU1BFQycKY2xvdWRDb25maWc6IG51bGwKY29udGFpbmVyUnVudGltZTogZG9ja2VyCmNvbnRhaW5lcmQ6CiAgc2tpcEluc3RhbGw6IHRydWUKZG9ja2VyOgogIGlwTWFzcTogZmFsc2UKICBpcFRhYmxlczogZmFsc2UKICBsb2dEcml2ZXI6IGpzb24tZmlsZQogIGxvZ0xldmVsOiB3YXJuCiAgbG9nT3B0OgogIC0gbWF4LXNpemU9MTBtCiAgLSBtYXgtZmlsZT01CiAgc3RvcmFnZTogb3ZlcmxheTIsb3ZlcmxheSxhdWZzCiAgdmVyc2lvbjogMTguMDYuMwprdWJlUHJveHk6CiAgY2x1c3RlckNJRFI6IDEwMC45Ni4wLjAvMTEKICBjcHVSZXF1ZXN0OiAxMDBtCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAgaW1hZ2U6IGs4cy5nY3IuaW8va3ViZS1wcm94eTp2MS4xMi45CiAgbG9nTGV2ZWw6IDIKa3ViZWxldDoKICBhbGxvd1ByaXZpbGVnZWQ6IHRydWUKICBhbm9ueW1vdXNBdXRoOiBmYWxzZQogIGNncm91cFJvb3Q6IC8KICBjbG91ZFByb3ZpZGVyOiBhd3MKICBjbHVzdGVyRE5TOiAxMDAuNjQuMC4xMAogIGNsdXN0ZXJEb21haW46IGNsdXN0ZXIubG9jYWwKICBlbmFibGVEZWJ1Z2dpbmdIYW5kbGVyczogdHJ1ZQogIGV2aWN0aW9uSGFyZDogbWVtb3J5LmF2YWlsYWJsZTwxMDBNaSxub2RlZnMuYXZhaWxhYmxlPDEwJSxub2RlZnMuaW5vZGVzRnJlZTw1JSxpbWFnZWZzLmF2YWlsYWJsZTwxMCUsaW1hZ2Vmcy5pbm9kZXNGcmVlPDUlCiAgZmVhdHVyZUdhdGVzOgogICAgRXhwZXJpbWVudGFsQ3JpdGljYWxQb2RBbm5vdGF0aW9uOiAidHJ1ZSIKICBob3N0bmFtZU92ZXJyaWRlOiAnQGF3cycKICBrdWJlY29uZmlnUGF0aDogL3Zhci9saWIva3ViZWxldC9rdWJlY29uZmlnCiAgbG9nTGV2ZWw6IDIKICBuZXR3b3JrUGx1Z2luTVRVOiA5MDAxCiAgbmV0d29ya1BsdWdpbk5hbWU6IGt1YmVuZXQKICBub25NYXNxdWVyYWRlQ0lEUjogMTAwLjY0LjAuMC8xMAogIHBvZEluZnJhQ29udGFpbmVySW1hZ2U6IGs4cy5nY3IuaW8vcGF1c2U6My4yCiAgcG9kTWFuaWZlc3RQYXRoOiAvZXRjL2t1YmVybmV0ZXMvbWFuaWZlc3RzCgpfX0VPRl9DTFVTVEVSX1NQRUMKCmNhdCA+IGNvbmYvaWdfc3BlYy55YW1sIDw8ICdfX0VPRl9JR19TUEVDJwprdWJlbGV0OiBudWxsCm5vZGVMYWJlbHM6IG51bGwKdGFpbnRzOiBudWxsCgpfX0VPRl9JR19TUEVDCgpjYXQgPiBjb25mL2t1YmVfZW52LnlhbWwgPDwgJ19fRU9GX0tVQkVfRU5WJwpBc3NldHM6Ci0gZTkxNGIxNzUzMmM0MTFjYjdjMGNjNDcyMTMxYjYxOTM1ZmI2NmIzMUBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL3JlbGVhc2UvdjEuMTIuOS9iaW4vbGludXgvYW1kNjQva3ViZWxldAotIGFhM2U5Mzg5N2E2OTk5ZDZjN2RlZGJjNDE3OTNjOTBkNDFlZWIwMDBAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjEyLjkvYmluL2xpbnV4L2FtZDY0L2t1YmVjdGwKLSA1MmU5ZDJkZThhNWY5MjczMDdkOTM5NzMwODczNTY1OGVlNDRhYjhkQGh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9rdWJlcm5ldGVzLXJlbGVhc2UvbmV0d29yay1wbHVnaW5zL2NuaS1wbHVnaW5zLWFtZDY0LXYwLjcuNS50Z3oKQ2x1c3Rlck5hbWU6IGxhdW5jaHRlbXBsYXRlcy5leGFtcGxlLmNvbQpDb25maWdCYXNlOiBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL2xhdW5jaHRlbXBsYXRlcy5leGFtcGxlLmNvbQpJbnN0YW5jZUdyb3VwTmFtZTogbm9kZXMKVGFnczoKLSBfYXV0b21hdGljX3VwZ3JhZGVzCi0gX2F3cwpjaGFubmVsczoKLSBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL2xhdW5jaHRlbXBsYXRlcy5leGFtcGxlLmNvbS9hZGRvbnMvYm9vdHN0cmFwLWNoYW5uZWwueWFtbAoKX19FT0ZfS1VCRV9FTlYKCmRvd25sb2FkLXJlbGVhc2UKZWNobyAiPT0gbm9kZXVwIG5vZGUgY29uZmlnIGRvbmUgPT0iCg== diff --git a/tests/integration/update_cluster/minimal-cloudformation/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/minimal-cloudformation/cloudformation.json.extracted.yaml index ed5afea38299b..fe8719bc5cd56 100644 --- a/tests/integration/update_cluster/minimal-cloudformation/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/minimal-cloudformation/cloudformation.json.extracted.yaml @@ -111,6 +111,17 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersminimalexampleco } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -231,7 +242,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersminimalexampleco networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -249,7 +260,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersminimalexampleco networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false @@ -403,6 +414,17 @@ Resources.AWSAutoScalingLaunchConfigurationnodesminimalexamplecom.Properties.Use } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -459,7 +481,7 @@ Resources.AWSAutoScalingLaunchConfigurationnodesminimalexamplecom.Properties.Use networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/minimal-json/data/aws_launch_configuration_master-us-test-1a.masters.minimal-json.example.com_user_data b/tests/integration/update_cluster/minimal-json/data/aws_launch_configuration_master-us-test-1a.masters.minimal-json.example.com_user_data index cb1717403e715..4109cb56548b7 100644 --- a/tests/integration/update_cluster/minimal-json/data/aws_launch_configuration_master-us-test-1a.masters.minimal-json.example.com_user_data +++ b/tests/integration/update_cluster/minimal-json/data/aws_launch_configuration_master-us-test-1a.masters.minimal-json.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -230,7 +241,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -248,7 +259,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/minimal-json/data/aws_launch_configuration_nodes.minimal-json.example.com_user_data b/tests/integration/update_cluster/minimal-json/data/aws_launch_configuration_nodes.minimal-json.example.com_user_data index 477f3b7af193e..8b26703d8f850 100644 --- a/tests/integration/update_cluster/minimal-json/data/aws_launch_configuration_nodes.minimal-json.example.com_user_data +++ b/tests/integration/update_cluster/minimal-json/data/aws_launch_configuration_nodes.minimal-json.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -166,7 +177,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/minimal-tf11/data/aws_launch_configuration_master-us-test-1a.masters.minimal-tf11.example.com_user_data b/tests/integration/update_cluster/minimal-tf11/data/aws_launch_configuration_master-us-test-1a.masters.minimal-tf11.example.com_user_data index dee51265dc715..fa7f1378f43c1 100644 --- a/tests/integration/update_cluster/minimal-tf11/data/aws_launch_configuration_master-us-test-1a.masters.minimal-tf11.example.com_user_data +++ b/tests/integration/update_cluster/minimal-tf11/data/aws_launch_configuration_master-us-test-1a.masters.minimal-tf11.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -230,7 +241,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -248,7 +259,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/minimal-tf11/data/aws_launch_configuration_nodes.minimal-tf11.example.com_user_data b/tests/integration/update_cluster/minimal-tf11/data/aws_launch_configuration_nodes.minimal-tf11.example.com_user_data index 2fd30297580a9..4eac0ad11e30c 100644 --- a/tests/integration/update_cluster/minimal-tf11/data/aws_launch_configuration_nodes.minimal-tf11.example.com_user_data +++ b/tests/integration/update_cluster/minimal-tf11/data/aws_launch_configuration_nodes.minimal-tf11.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -166,7 +177,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/minimal/data/aws_launch_configuration_master-us-test-1a.masters.minimal.example.com_user_data b/tests/integration/update_cluster/minimal/data/aws_launch_configuration_master-us-test-1a.masters.minimal.example.com_user_data index df8263302e48d..7a932d41a0bb9 100644 --- a/tests/integration/update_cluster/minimal/data/aws_launch_configuration_master-us-test-1a.masters.minimal.example.com_user_data +++ b/tests/integration/update_cluster/minimal/data/aws_launch_configuration_master-us-test-1a.masters.minimal.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -230,7 +241,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -248,7 +259,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/minimal/data/aws_launch_configuration_nodes.minimal.example.com_user_data b/tests/integration/update_cluster/minimal/data/aws_launch_configuration_nodes.minimal.example.com_user_data index 8f7382b467262..702da14d1161c 100644 --- a/tests/integration/update_cluster/minimal/data/aws_launch_configuration_nodes.minimal.example.com_user_data +++ b/tests/integration/update_cluster/minimal/data/aws_launch_configuration_nodes.minimal.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -166,7 +177,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/minimal_gce/data/google_compute_instance_template_master-us-test1-a-minimal-gce-example-com_metadata_startup-script b/tests/integration/update_cluster/minimal_gce/data/google_compute_instance_template_master-us-test1-a-minimal-gce-example-com_metadata_startup-script index 16e06e55471f7..37a1de379018e 100644 --- a/tests/integration/update_cluster/minimal_gce/data/google_compute_instance_template_master-us-test1-a-minimal-gce-example-com_metadata_startup-script +++ b/tests/integration/update_cluster/minimal_gce/data/google_compute_instance_template_master-us-test1-a-minimal-gce-example-com_metadata_startup-script @@ -109,6 +109,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -232,7 +243,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -251,7 +262,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/minimal_gce/data/google_compute_instance_template_nodes-minimal-gce-example-com_metadata_startup-script b/tests/integration/update_cluster/minimal_gce/data/google_compute_instance_template_nodes-minimal-gce-example-com_metadata_startup-script index c6f0319ffc84f..b2f3688f2811a 100644 --- a/tests/integration/update_cluster/minimal_gce/data/google_compute_instance_template_nodes-minimal-gce-example-com_metadata_startup-script +++ b/tests/integration/update_cluster/minimal_gce/data/google_compute_instance_template_nodes-minimal-gce-example-com_metadata_startup-script @@ -109,6 +109,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -168,7 +179,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/mixed_instances/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/mixed_instances/cloudformation.json.extracted.yaml index 576993f0c2b3a..c036d5b9c76ea 100644 --- a/tests/integration/update_cluster/mixed_instances/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/mixed_instances/cloudformation.json.extracted.yaml @@ -111,6 +111,17 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersmixedinstancesex } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -232,7 +243,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersmixedinstancesex networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: allowPrivileged: true @@ -251,7 +262,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersmixedinstancesex networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false @@ -405,6 +416,17 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1bmastersmixedinstancesex } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -526,7 +548,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1bmastersmixedinstancesex networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: allowPrivileged: true @@ -545,7 +567,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1bmastersmixedinstancesex networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false @@ -699,6 +721,17 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1cmastersmixedinstancesex } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -820,7 +853,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1cmastersmixedinstancesex networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: allowPrivileged: true @@ -839,7 +872,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1cmastersmixedinstancesex networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false @@ -993,6 +1026,17 @@ Resources.AWSEC2LaunchTemplatenodesmixedinstancesexamplecom.Properties.LaunchTem } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -1050,7 +1094,7 @@ Resources.AWSEC2LaunchTemplatenodesmixedinstancesexamplecom.Properties.LaunchTem networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/mixed_instances/data/aws_launch_configuration_master-us-test-1a.masters.mixedinstances.example.com_user_data b/tests/integration/update_cluster/mixed_instances/data/aws_launch_configuration_master-us-test-1a.masters.mixedinstances.example.com_user_data index 4660759d61d4c..11aa406a93450 100644 --- a/tests/integration/update_cluster/mixed_instances/data/aws_launch_configuration_master-us-test-1a.masters.mixedinstances.example.com_user_data +++ b/tests/integration/update_cluster/mixed_instances/data/aws_launch_configuration_master-us-test-1a.masters.mixedinstances.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -231,7 +242,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: allowPrivileged: true @@ -250,7 +261,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/mixed_instances/data/aws_launch_configuration_master-us-test-1b.masters.mixedinstances.example.com_user_data b/tests/integration/update_cluster/mixed_instances/data/aws_launch_configuration_master-us-test-1b.masters.mixedinstances.example.com_user_data index 4e5be3a16ba4a..de82a4980c892 100644 --- a/tests/integration/update_cluster/mixed_instances/data/aws_launch_configuration_master-us-test-1b.masters.mixedinstances.example.com_user_data +++ b/tests/integration/update_cluster/mixed_instances/data/aws_launch_configuration_master-us-test-1b.masters.mixedinstances.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -231,7 +242,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: allowPrivileged: true @@ -250,7 +261,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/mixed_instances/data/aws_launch_configuration_master-us-test-1c.masters.mixedinstances.example.com_user_data b/tests/integration/update_cluster/mixed_instances/data/aws_launch_configuration_master-us-test-1c.masters.mixedinstances.example.com_user_data index 01bb5c4cd381f..b6bb6a059d79e 100644 --- a/tests/integration/update_cluster/mixed_instances/data/aws_launch_configuration_master-us-test-1c.masters.mixedinstances.example.com_user_data +++ b/tests/integration/update_cluster/mixed_instances/data/aws_launch_configuration_master-us-test-1c.masters.mixedinstances.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -231,7 +242,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: allowPrivileged: true @@ -250,7 +261,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/mixed_instances/data/aws_launch_template_nodes.mixedinstances.example.com_user_data b/tests/integration/update_cluster/mixed_instances/data/aws_launch_template_nodes.mixedinstances.example.com_user_data index 13d4ffb7d619c..57dfd105c2014 100644 --- a/tests/integration/update_cluster/mixed_instances/data/aws_launch_template_nodes.mixedinstances.example.com_user_data +++ b/tests/integration/update_cluster/mixed_instances/data/aws_launch_template_nodes.mixedinstances.example.com_user_data @@ -1 +1 @@ -IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkw9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE1LjAvbGludXgtYW1kNjQtbm9kZXVwLGh0dHBzOi8va3ViZXVwdjIuczMuYW1hem9uYXdzLmNvbS9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0g9OTYwNGVmMTgyNjdhZDdiNWNmNGNlYmJmN2FiNjQ0MjNjZjViYjAzNDJkMTY5YzYwOGFjNjM3NmU2YWYyNmQ4MQoKZXhwb3J0IEFXU19SRUdJT049dXMtdGVzdC0xCgoKCgpmdW5jdGlvbiBlbnN1cmUtaW5zdGFsbC1kaXIoKSB7CiAgSU5TVEFMTF9ESVI9Ii9vcHQva29wcyIKICAjIE9uIENvbnRhaW5lck9TLCB3ZSBpbnN0YWxsIHVuZGVyIC92YXIvbGliL3Rvb2xib3g7IC9vcHQgaXMgcm8gYW5kIG5vZXhlYwogIGlmIFtbIC1kIC92YXIvbGliL3Rvb2xib3ggXV07IHRoZW4KICAgIElOU1RBTExfRElSPSIvdmFyL2xpYi90b29sYm94L2tvcHMiCiAgZmkKICBta2RpciAtcCAke0lOU1RBTExfRElSfS9iaW4KICBta2RpciAtcCAke0lOU1RBTExfRElSfS9jb25mCiAgY2QgJHtJTlNUQUxMX0RJUn0KfQoKIyBSZXRyeSBhIGRvd25sb2FkIHVudGlsIHdlIGdldCBpdC4gYXJnczogbmFtZSwgc2hhLCB1cmwxLCB1cmwyLi4uCmRvd25sb2FkLW9yLWJ1c3QoKSB7CiAgbG9jYWwgLXIgZmlsZT0iJDEiCiAgbG9jYWwgLXIgaGFzaD0iJDIiCiAgc2hpZnQgMgoKICB1cmxzPSggJCogKQogIHdoaWxlIHRydWU7IGRvCiAgICBmb3IgdXJsIGluICIke3VybHNbQF19IjsgZG8KICAgICAgY29tbWFuZHM9KAogICAgICAgICJjdXJsIC1mIC0taXB2NCAtLWNvbXByZXNzZWQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLS1jb21wcmVzc2lvbj1hdXRvIC1PICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dD0yMCAtLXRyaWVzPTYgLS13YWl0PTEwIgogICAgICAgICJjdXJsIC1mIC0taXB2NCAtTG8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0IDIwIC0tcmV0cnkgNiAtLXJldHJ5LWRlbGF5IDEwIgogICAgICAgICJ3Z2V0IC0taW5ldDQtb25seSAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgKQogICAgICBmb3IgY21kIGluICIke2NvbW1hbmRzW0BdfSI7IGRvCiAgICAgICAgZWNobyAiQXR0ZW1wdGluZyBkb3dubG9hZCB3aXRoOiAke2NtZH0ge3VybH0iCiAgICAgICAgaWYgISAoJHtjbWR9ICIke3VybH0iKTsgdGhlbgogICAgICAgICAgZWNobyAiPT0gRG93bmxvYWQgZmFpbGVkIHdpdGggJHtjbWR9ID09IgogICAgICAgICAgY29udGludWUKICAgICAgICBmaQogICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXSAmJiAhIHZhbGlkYXRlLWhhc2ggIiR7ZmlsZX0iICIke2hhc2h9IjsgdGhlbgogICAgICAgICAgZWNobyAiPT0gSGFzaCB2YWxpZGF0aW9uIG9mICR7dXJsfSBmYWlsZWQuIFJldHJ5aW5nLiA9PSIKICAgICAgICAgIHJtIC1mICIke2ZpbGV9IgogICAgICAgIGVsc2UKICAgICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXTsgdGhlbgogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSAoU0hBMSA9ICR7aGFzaH0pID09IgogICAgICAgICAgZWxzZQogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSA9PSIKICAgICAgICAgIGZpCiAgICAgICAgICByZXR1cm4KICAgICAgICBmaQogICAgICBkb25lCiAgICBkb25lCgogICAgZWNobyAiQWxsIGRvd25sb2FkcyBmYWlsZWQ7IHNsZWVwaW5nIGJlZm9yZSByZXRyeWluZyIKICAgIHNsZWVwIDYwCiAgZG9uZQp9Cgp2YWxpZGF0ZS1oYXNoKCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGV4cGVjdGVkPSIkMiIKICBsb2NhbCBhY3R1YWwKCiAgYWN0dWFsPSQoc2hhMjU2c3VtICR7ZmlsZX0gfCBhd2sgJ3sgcHJpbnQgJDEgfScpIHx8IHRydWUKICBpZiBbWyAiJHthY3R1YWx9IiAhPSAiJHtleHBlY3RlZH0iIF1dOyB0aGVuCiAgICBlY2hvICI9PSAke2ZpbGV9IGNvcnJ1cHRlZCwgaGFzaCAke2FjdHVhbH0gZG9lc24ndCBtYXRjaCBleHBlY3RlZCAke2V4cGVjdGVkfSA9PSIKICAgIHJldHVybiAxCiAgZmkKfQoKZnVuY3Rpb24gc3BsaXQtY29tbWFzKCkgewogIGVjaG8gJDEgfCB0ciAiLCIgIlxuIgp9CgpmdW5jdGlvbiB0cnktZG93bmxvYWQtcmVsZWFzZSgpIHsKICBsb2NhbCAtciBub2RldXBfdXJscz0oICQoc3BsaXQtY29tbWFzICIke05PREVVUF9VUkx9IikgKQogIGlmIFtbIC1uICIke05PREVVUF9IQVNIOi19IiBdXTsgdGhlbgogICAgbG9jYWwgLXIgbm9kZXVwX2hhc2g9IiR7Tk9ERVVQX0hBU0h9IgogIGVsc2UKICAjIFRPRE86IFJlbW92ZT8KICAgIGVjaG8gIkRvd25sb2FkaW5nIHNoYTI1NiAobm90IGZvdW5kIGluIGVudikiCiAgICBkb3dubG9hZC1vci1idXN0IG5vZGV1cC5zaGEyNTYgIiIgIiR7bm9kZXVwX3VybHNbQF0vJS8uc2hhMjU2fSIKICAgIGxvY2FsIC1yIG5vZGV1cF9oYXNoPSQoY2F0IG5vZGV1cC5zaGEyNTYpCiAgZmkKCiAgZWNobyAiRG93bmxvYWRpbmcgbm9kZXVwICgke25vZGV1cF91cmxzW0BdfSkiCiAgZG93bmxvYWQtb3ItYnVzdCBub2RldXAgIiR7bm9kZXVwX2hhc2h9IiAiJHtub2RldXBfdXJsc1tAXX0iCgogIGNobW9kICt4IG5vZGV1cAp9CgpmdW5jdGlvbiBkb3dubG9hZC1yZWxlYXNlKCkgewogICMgSW4gY2FzZSBvZiBmYWlsdXJlIGNoZWNraW5nIGludGVncml0eSBvZiByZWxlYXNlLCByZXRyeS4KICBjZCAke0lOU1RBTExfRElSfS9iaW4KICB1bnRpbCB0cnktZG93bmxvYWQtcmVsZWFzZTsgZG8KICAgIHNsZWVwIDE1CiAgICBlY2hvICJDb3VsZG4ndCBkb3dubG9hZCByZWxlYXNlLiBSZXRyeWluZy4uLiIKICBkb25lCgogIGVjaG8gIlJ1bm5pbmcgbm9kZXVwIgogICMgV2UgY2FuJ3QgcnVuIGluIHRoZSBmb3JlZ3JvdW5kIGJlY2F1c2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci9kb2NrZXIvaXNzdWVzLzIzNzkzCiAgKCBjZCAke0lOU1RBTExfRElSfS9iaW47IC4vbm9kZXVwIC0taW5zdGFsbC1zeXN0ZW1kLXVuaXQgLS1jb25mPSR7SU5TVEFMTF9ESVJ9L2NvbmYva3ViZV9lbnYueWFtbCAtLXY9OCAgKQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi9iaW4vc3lzdGVtZC1tYWNoaW5lLWlkLXNldHVwIHx8IGVjaG8gImZhaWxlZCB0byBzZXQgdXAgZW5zdXJlIG1hY2hpbmUtaWQgY29uZmlndXJlZCIKCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBzdGFydGluZyA9PSIKZW5zdXJlLWluc3RhbGwtZGlyCgpjYXQgPiBjb25mL2NsdXN0ZXJfc3BlYy55YW1sIDw8ICdfX0VPRl9DTFVTVEVSX1NQRUMnCmNsb3VkQ29uZmlnOiBudWxsCmNvbnRhaW5lclJ1bnRpbWU6IGRvY2tlcgpjb250YWluZXJkOgogIHNraXBJbnN0YWxsOiB0cnVlCmRvY2tlcjoKICBpcE1hc3E6IGZhbHNlCiAgaXBUYWJsZXM6IGZhbHNlCiAgbG9nRHJpdmVyOiBqc29uLWZpbGUKICBsb2dMZXZlbDogd2FybgogIGxvZ09wdDoKICAtIG1heC1zaXplPTEwbQogIC0gbWF4LWZpbGU9NQogIHN0b3JhZ2U6IG92ZXJsYXkyLG92ZXJsYXksYXVmcwogIHZlcnNpb246IDE4LjA2LjMKa3ViZVByb3h5OgogIGNsdXN0ZXJDSURSOiAxMDAuOTYuMC4wLzExCiAgY3B1UmVxdWVzdDogMTAwbQogIGhvc3RuYW1lT3ZlcnJpZGU6ICdAYXdzJwogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtcHJveHk6djEuMTIuOQogIGxvZ0xldmVsOiAyCmt1YmVsZXQ6CiAgYWxsb3dQcml2aWxlZ2VkOiB0cnVlCiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9uTWFzcXVlcmFkZUNJRFI6IDEwMC42NC4wLjAvMTAKICBwb2RJbmZyYUNvbnRhaW5lckltYWdlOiBrOHMuZ2NyLmlvL3BhdXNlLWFtZDY0OjMuMgogIHBvZE1hbmlmZXN0UGF0aDogL2V0Yy9rdWJlcm5ldGVzL21hbmlmZXN0cwoKX19FT0ZfQ0xVU1RFUl9TUEVDCgpjYXQgPiBjb25mL2lnX3NwZWMueWFtbCA8PCAnX19FT0ZfSUdfU1BFQycKa3ViZWxldDogbnVsbApub2RlTGFiZWxzOiBudWxsCnRhaW50czogbnVsbAoKX19FT0ZfSUdfU1BFQwoKY2F0ID4gY29uZi9rdWJlX2Vudi55YW1sIDw8ICdfX0VPRl9LVUJFX0VOVicKQXNzZXRzOgotIGU5MTRiMTc1MzJjNDExY2I3YzBjYzQ3MjEzMWI2MTkzNWZiNjZiMzFAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjEyLjkvYmluL2xpbnV4L2FtZDY0L2t1YmVsZXQKLSBhYTNlOTM4OTdhNjk5OWQ2YzdkZWRiYzQxNzkzYzkwZDQxZWViMDAwQGh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9rdWJlcm5ldGVzLXJlbGVhc2UvcmVsZWFzZS92MS4xMi45L2Jpbi9saW51eC9hbWQ2NC9rdWJlY3RsCi0gNTJlOWQyZGU4YTVmOTI3MzA3ZDkzOTczMDg3MzU2NThlZTQ0YWI4ZEBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL25ldHdvcmstcGx1Z2lucy9jbmktcGx1Z2lucy1hbWQ2NC12MC43LjUudGd6CkNsdXN0ZXJOYW1lOiBtaXhlZGluc3RhbmNlcy5leGFtcGxlLmNvbQpDb25maWdCYXNlOiBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL21peGVkaW5zdGFuY2VzLmV4YW1wbGUuY29tCkluc3RhbmNlR3JvdXBOYW1lOiBub2RlcwpUYWdzOgotIF9hdXRvbWF0aWNfdXBncmFkZXMKLSBfYXdzCmNoYW5uZWxzOgotIG1lbWZzOi8vY2x1c3RlcnMuZXhhbXBsZS5jb20vbWl4ZWRpbnN0YW5jZXMuZXhhbXBsZS5jb20vYWRkb25zL2Jvb3RzdHJhcC1jaGFubmVsLnlhbWwKCl9fRU9GX0tVQkVfRU5WCgpkb3dubG9hZC1yZWxlYXNlCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBkb25lID09Igo= +IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkw9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE1LjAvbGludXgtYW1kNjQtbm9kZXVwLGh0dHBzOi8va3ViZXVwdjIuczMuYW1hem9uYXdzLmNvbS9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0g9OTYwNGVmMTgyNjdhZDdiNWNmNGNlYmJmN2FiNjQ0MjNjZjViYjAzNDJkMTY5YzYwOGFjNjM3NmU2YWYyNmQ4MQoKZXhwb3J0IEFXU19SRUdJT049dXMtdGVzdC0xCgoKCgpmdW5jdGlvbiBlbnN1cmUtaW5zdGFsbC1kaXIoKSB7CiAgSU5TVEFMTF9ESVI9Ii9vcHQva29wcyIKICAjIE9uIENvbnRhaW5lck9TLCB3ZSBpbnN0YWxsIHVuZGVyIC92YXIvbGliL3Rvb2xib3g7IC9vcHQgaXMgcm8gYW5kIG5vZXhlYwogIGlmIFtbIC1kIC92YXIvbGliL3Rvb2xib3ggXV07IHRoZW4KICAgIElOU1RBTExfRElSPSIvdmFyL2xpYi90b29sYm94L2tvcHMiCiAgZmkKICBta2RpciAtcCAke0lOU1RBTExfRElSfS9iaW4KICBta2RpciAtcCAke0lOU1RBTExfRElSfS9jb25mCiAgY2QgJHtJTlNUQUxMX0RJUn0KfQoKIyBSZXRyeSBhIGRvd25sb2FkIHVudGlsIHdlIGdldCBpdC4gYXJnczogbmFtZSwgc2hhLCB1cmwxLCB1cmwyLi4uCmRvd25sb2FkLW9yLWJ1c3QoKSB7CiAgbG9jYWwgLXIgZmlsZT0iJDEiCiAgbG9jYWwgLXIgaGFzaD0iJDIiCiAgc2hpZnQgMgoKICB1cmxzPSggJCogKQogIHdoaWxlIHRydWU7IGRvCiAgICBmb3IgdXJsIGluICIke3VybHNbQF19IjsgZG8KICAgICAgY29tbWFuZHM9KAogICAgICAgICJjdXJsIC1mIC0taXB2NCAtLWNvbXByZXNzZWQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLS1jb21wcmVzc2lvbj1hdXRvIC1PICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dD0yMCAtLXRyaWVzPTYgLS13YWl0PTEwIgogICAgICAgICJjdXJsIC1mIC0taXB2NCAtTG8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0IDIwIC0tcmV0cnkgNiAtLXJldHJ5LWRlbGF5IDEwIgogICAgICAgICJ3Z2V0IC0taW5ldDQtb25seSAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgKQogICAgICBmb3IgY21kIGluICIke2NvbW1hbmRzW0BdfSI7IGRvCiAgICAgICAgZWNobyAiQXR0ZW1wdGluZyBkb3dubG9hZCB3aXRoOiAke2NtZH0ge3VybH0iCiAgICAgICAgaWYgISAoJHtjbWR9ICIke3VybH0iKTsgdGhlbgogICAgICAgICAgZWNobyAiPT0gRG93bmxvYWQgZmFpbGVkIHdpdGggJHtjbWR9ID09IgogICAgICAgICAgY29udGludWUKICAgICAgICBmaQogICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXSAmJiAhIHZhbGlkYXRlLWhhc2ggIiR7ZmlsZX0iICIke2hhc2h9IjsgdGhlbgogICAgICAgICAgZWNobyAiPT0gSGFzaCB2YWxpZGF0aW9uIG9mICR7dXJsfSBmYWlsZWQuIFJldHJ5aW5nLiA9PSIKICAgICAgICAgIHJtIC1mICIke2ZpbGV9IgogICAgICAgIGVsc2UKICAgICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXTsgdGhlbgogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSAoU0hBMSA9ICR7aGFzaH0pID09IgogICAgICAgICAgZWxzZQogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSA9PSIKICAgICAgICAgIGZpCiAgICAgICAgICByZXR1cm4KICAgICAgICBmaQogICAgICBkb25lCiAgICBkb25lCgogICAgZWNobyAiQWxsIGRvd25sb2FkcyBmYWlsZWQ7IHNsZWVwaW5nIGJlZm9yZSByZXRyeWluZyIKICAgIHNsZWVwIDYwCiAgZG9uZQp9Cgp2YWxpZGF0ZS1oYXNoKCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGV4cGVjdGVkPSIkMiIKICBsb2NhbCBhY3R1YWwKCiAgYWN0dWFsPSQoc2hhMjU2c3VtICR7ZmlsZX0gfCBhd2sgJ3sgcHJpbnQgJDEgfScpIHx8IHRydWUKICBpZiBbWyAiJHthY3R1YWx9IiAhPSAiJHtleHBlY3RlZH0iIF1dOyB0aGVuCiAgICBlY2hvICI9PSAke2ZpbGV9IGNvcnJ1cHRlZCwgaGFzaCAke2FjdHVhbH0gZG9lc24ndCBtYXRjaCBleHBlY3RlZCAke2V4cGVjdGVkfSA9PSIKICAgIHJldHVybiAxCiAgZmkKfQoKZnVuY3Rpb24gc3BsaXQtY29tbWFzKCkgewogIGVjaG8gJDEgfCB0ciAiLCIgIlxuIgp9CgpmdW5jdGlvbiB0cnktZG93bmxvYWQtcmVsZWFzZSgpIHsKICBsb2NhbCAtciBub2RldXBfdXJscz0oICQoc3BsaXQtY29tbWFzICIke05PREVVUF9VUkx9IikgKQogIGlmIFtbIC1uICIke05PREVVUF9IQVNIOi19IiBdXTsgdGhlbgogICAgbG9jYWwgLXIgbm9kZXVwX2hhc2g9IiR7Tk9ERVVQX0hBU0h9IgogIGVsc2UKICAjIFRPRE86IFJlbW92ZT8KICAgIGVjaG8gIkRvd25sb2FkaW5nIHNoYTI1NiAobm90IGZvdW5kIGluIGVudikiCiAgICBkb3dubG9hZC1vci1idXN0IG5vZGV1cC5zaGEyNTYgIiIgIiR7bm9kZXVwX3VybHNbQF0vJS8uc2hhMjU2fSIKICAgIGxvY2FsIC1yIG5vZGV1cF9oYXNoPSQoY2F0IG5vZGV1cC5zaGEyNTYpCiAgZmkKCiAgZWNobyAiRG93bmxvYWRpbmcgbm9kZXVwICgke25vZGV1cF91cmxzW0BdfSkiCiAgZG93bmxvYWQtb3ItYnVzdCBub2RldXAgIiR7bm9kZXVwX2hhc2h9IiAiJHtub2RldXBfdXJsc1tAXX0iCgogIGNobW9kICt4IG5vZGV1cAp9CgpmdW5jdGlvbiBkb3dubG9hZC1yZWxlYXNlKCkgewogIGNhc2UgIiQodW5hbWUgLW0pIiBpbgogIHg4Nl82NCp8aT84Nl82NCp8YW1kNjQqKQogICAgTk9ERVVQX1VSTD0iJHtOT0RFVVBfVVJMfSIKICAgIE5PREVVUF9IQVNIPSIke05PREVVUF9IQVNIfSIKICAgIDs7CiAgKikKICAgIGVjaG8gIlVuc3VwcG9ydGVkIGhvc3QgYXJjaDogJCh1bmFtZSAtbSkiID4mMgogICAgZXhpdCAxCiAgICA7OwogIGVzYWMKCiAgIyBJbiBjYXNlIG9mIGZhaWx1cmUgY2hlY2tpbmcgaW50ZWdyaXR5IG9mIHJlbGVhc2UsIHJldHJ5LgogIGNkICR7SU5TVEFMTF9ESVJ9L2JpbgogIHVudGlsIHRyeS1kb3dubG9hZC1yZWxlYXNlOyBkbwogICAgc2xlZXAgMTUKICAgIGVjaG8gIkNvdWxkbid0IGRvd25sb2FkIHJlbGVhc2UuIFJldHJ5aW5nLi4uIgogIGRvbmUKCiAgZWNobyAiUnVubmluZyBub2RldXAiCiAgIyBXZSBjYW4ndCBydW4gaW4gdGhlIGZvcmVncm91bmQgYmVjYXVzZSBvZiBodHRwczovL2dpdGh1Yi5jb20vZG9ja2VyL2RvY2tlci9pc3N1ZXMvMjM3OTMKICAoIGNkICR7SU5TVEFMTF9ESVJ9L2JpbjsgLi9ub2RldXAgLS1pbnN0YWxsLXN5c3RlbWQtdW5pdCAtLWNvbmY9JHtJTlNUQUxMX0RJUn0vY29uZi9rdWJlX2Vudi55YW1sIC0tdj04ICApCn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKL2Jpbi9zeXN0ZW1kLW1hY2hpbmUtaWQtc2V0dXAgfHwgZWNobyAiZmFpbGVkIHRvIHNldCB1cCBlbnN1cmUgbWFjaGluZS1pZCBjb25maWd1cmVkIgoKZWNobyAiPT0gbm9kZXVwIG5vZGUgY29uZmlnIHN0YXJ0aW5nID09IgplbnN1cmUtaW5zdGFsbC1kaXIKCmNhdCA+IGNvbmYvY2x1c3Rlcl9zcGVjLnlhbWwgPDwgJ19fRU9GX0NMVVNURVJfU1BFQycKY2xvdWRDb25maWc6IG51bGwKY29udGFpbmVyUnVudGltZTogZG9ja2VyCmNvbnRhaW5lcmQ6CiAgc2tpcEluc3RhbGw6IHRydWUKZG9ja2VyOgogIGlwTWFzcTogZmFsc2UKICBpcFRhYmxlczogZmFsc2UKICBsb2dEcml2ZXI6IGpzb24tZmlsZQogIGxvZ0xldmVsOiB3YXJuCiAgbG9nT3B0OgogIC0gbWF4LXNpemU9MTBtCiAgLSBtYXgtZmlsZT01CiAgc3RvcmFnZTogb3ZlcmxheTIsb3ZlcmxheSxhdWZzCiAgdmVyc2lvbjogMTguMDYuMwprdWJlUHJveHk6CiAgY2x1c3RlckNJRFI6IDEwMC45Ni4wLjAvMTEKICBjcHVSZXF1ZXN0OiAxMDBtCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAgaW1hZ2U6IGs4cy5nY3IuaW8va3ViZS1wcm94eTp2MS4xMi45CiAgbG9nTGV2ZWw6IDIKa3ViZWxldDoKICBhbGxvd1ByaXZpbGVnZWQ6IHRydWUKICBhbm9ueW1vdXNBdXRoOiBmYWxzZQogIGNncm91cFJvb3Q6IC8KICBjbG91ZFByb3ZpZGVyOiBhd3MKICBjbHVzdGVyRE5TOiAxMDAuNjQuMC4xMAogIGNsdXN0ZXJEb21haW46IGNsdXN0ZXIubG9jYWwKICBlbmFibGVEZWJ1Z2dpbmdIYW5kbGVyczogdHJ1ZQogIGV2aWN0aW9uSGFyZDogbWVtb3J5LmF2YWlsYWJsZTwxMDBNaSxub2RlZnMuYXZhaWxhYmxlPDEwJSxub2RlZnMuaW5vZGVzRnJlZTw1JSxpbWFnZWZzLmF2YWlsYWJsZTwxMCUsaW1hZ2Vmcy5pbm9kZXNGcmVlPDUlCiAgZmVhdHVyZUdhdGVzOgogICAgRXhwZXJpbWVudGFsQ3JpdGljYWxQb2RBbm5vdGF0aW9uOiAidHJ1ZSIKICBob3N0bmFtZU92ZXJyaWRlOiAnQGF3cycKICBrdWJlY29uZmlnUGF0aDogL3Zhci9saWIva3ViZWxldC9rdWJlY29uZmlnCiAgbG9nTGV2ZWw6IDIKICBuZXR3b3JrUGx1Z2luTVRVOiA5MDAxCiAgbmV0d29ya1BsdWdpbk5hbWU6IGt1YmVuZXQKICBub25NYXNxdWVyYWRlQ0lEUjogMTAwLjY0LjAuMC8xMAogIHBvZEluZnJhQ29udGFpbmVySW1hZ2U6IGs4cy5nY3IuaW8vcGF1c2U6My4yCiAgcG9kTWFuaWZlc3RQYXRoOiAvZXRjL2t1YmVybmV0ZXMvbWFuaWZlc3RzCgpfX0VPRl9DTFVTVEVSX1NQRUMKCmNhdCA+IGNvbmYvaWdfc3BlYy55YW1sIDw8ICdfX0VPRl9JR19TUEVDJwprdWJlbGV0OiBudWxsCm5vZGVMYWJlbHM6IG51bGwKdGFpbnRzOiBudWxsCgpfX0VPRl9JR19TUEVDCgpjYXQgPiBjb25mL2t1YmVfZW52LnlhbWwgPDwgJ19fRU9GX0tVQkVfRU5WJwpBc3NldHM6Ci0gZTkxNGIxNzUzMmM0MTFjYjdjMGNjNDcyMTMxYjYxOTM1ZmI2NmIzMUBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL3JlbGVhc2UvdjEuMTIuOS9iaW4vbGludXgvYW1kNjQva3ViZWxldAotIGFhM2U5Mzg5N2E2OTk5ZDZjN2RlZGJjNDE3OTNjOTBkNDFlZWIwMDBAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjEyLjkvYmluL2xpbnV4L2FtZDY0L2t1YmVjdGwKLSA1MmU5ZDJkZThhNWY5MjczMDdkOTM5NzMwODczNTY1OGVlNDRhYjhkQGh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9rdWJlcm5ldGVzLXJlbGVhc2UvbmV0d29yay1wbHVnaW5zL2NuaS1wbHVnaW5zLWFtZDY0LXYwLjcuNS50Z3oKQ2x1c3Rlck5hbWU6IG1peGVkaW5zdGFuY2VzLmV4YW1wbGUuY29tCkNvbmZpZ0Jhc2U6IG1lbWZzOi8vY2x1c3RlcnMuZXhhbXBsZS5jb20vbWl4ZWRpbnN0YW5jZXMuZXhhbXBsZS5jb20KSW5zdGFuY2VHcm91cE5hbWU6IG5vZGVzClRhZ3M6Ci0gX2F1dG9tYXRpY191cGdyYWRlcwotIF9hd3MKY2hhbm5lbHM6Ci0gbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9taXhlZGluc3RhbmNlcy5leGFtcGxlLmNvbS9hZGRvbnMvYm9vdHN0cmFwLWNoYW5uZWwueWFtbAoKX19FT0ZfS1VCRV9FTlYKCmRvd25sb2FkLXJlbGVhc2UKZWNobyAiPT0gbm9kZXVwIG5vZGUgY29uZmlnIGRvbmUgPT0iCg== diff --git a/tests/integration/update_cluster/mixed_instances_spot/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/mixed_instances_spot/cloudformation.json.extracted.yaml index 576993f0c2b3a..c036d5b9c76ea 100644 --- a/tests/integration/update_cluster/mixed_instances_spot/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/mixed_instances_spot/cloudformation.json.extracted.yaml @@ -111,6 +111,17 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersmixedinstancesex } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -232,7 +243,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersmixedinstancesex networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: allowPrivileged: true @@ -251,7 +262,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersmixedinstancesex networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false @@ -405,6 +416,17 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1bmastersmixedinstancesex } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -526,7 +548,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1bmastersmixedinstancesex networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: allowPrivileged: true @@ -545,7 +567,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1bmastersmixedinstancesex networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false @@ -699,6 +721,17 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1cmastersmixedinstancesex } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -820,7 +853,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1cmastersmixedinstancesex networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: allowPrivileged: true @@ -839,7 +872,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1cmastersmixedinstancesex networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false @@ -993,6 +1026,17 @@ Resources.AWSEC2LaunchTemplatenodesmixedinstancesexamplecom.Properties.LaunchTem } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -1050,7 +1094,7 @@ Resources.AWSEC2LaunchTemplatenodesmixedinstancesexamplecom.Properties.LaunchTem networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_configuration_master-us-test-1a.masters.mixedinstances.example.com_user_data b/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_configuration_master-us-test-1a.masters.mixedinstances.example.com_user_data index 4660759d61d4c..11aa406a93450 100644 --- a/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_configuration_master-us-test-1a.masters.mixedinstances.example.com_user_data +++ b/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_configuration_master-us-test-1a.masters.mixedinstances.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -231,7 +242,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: allowPrivileged: true @@ -250,7 +261,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_configuration_master-us-test-1b.masters.mixedinstances.example.com_user_data b/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_configuration_master-us-test-1b.masters.mixedinstances.example.com_user_data index 4e5be3a16ba4a..de82a4980c892 100644 --- a/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_configuration_master-us-test-1b.masters.mixedinstances.example.com_user_data +++ b/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_configuration_master-us-test-1b.masters.mixedinstances.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -231,7 +242,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: allowPrivileged: true @@ -250,7 +261,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_configuration_master-us-test-1c.masters.mixedinstances.example.com_user_data b/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_configuration_master-us-test-1c.masters.mixedinstances.example.com_user_data index 01bb5c4cd381f..b6bb6a059d79e 100644 --- a/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_configuration_master-us-test-1c.masters.mixedinstances.example.com_user_data +++ b/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_configuration_master-us-test-1c.masters.mixedinstances.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -231,7 +242,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: allowPrivileged: true @@ -250,7 +261,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_template_nodes.mixedinstances.example.com_user_data b/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_template_nodes.mixedinstances.example.com_user_data index 13d4ffb7d619c..57dfd105c2014 100644 --- a/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_template_nodes.mixedinstances.example.com_user_data +++ b/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_template_nodes.mixedinstances.example.com_user_data @@ -1 +1 @@ -IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkw9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE1LjAvbGludXgtYW1kNjQtbm9kZXVwLGh0dHBzOi8va3ViZXVwdjIuczMuYW1hem9uYXdzLmNvbS9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0g9OTYwNGVmMTgyNjdhZDdiNWNmNGNlYmJmN2FiNjQ0MjNjZjViYjAzNDJkMTY5YzYwOGFjNjM3NmU2YWYyNmQ4MQoKZXhwb3J0IEFXU19SRUdJT049dXMtdGVzdC0xCgoKCgpmdW5jdGlvbiBlbnN1cmUtaW5zdGFsbC1kaXIoKSB7CiAgSU5TVEFMTF9ESVI9Ii9vcHQva29wcyIKICAjIE9uIENvbnRhaW5lck9TLCB3ZSBpbnN0YWxsIHVuZGVyIC92YXIvbGliL3Rvb2xib3g7IC9vcHQgaXMgcm8gYW5kIG5vZXhlYwogIGlmIFtbIC1kIC92YXIvbGliL3Rvb2xib3ggXV07IHRoZW4KICAgIElOU1RBTExfRElSPSIvdmFyL2xpYi90b29sYm94L2tvcHMiCiAgZmkKICBta2RpciAtcCAke0lOU1RBTExfRElSfS9iaW4KICBta2RpciAtcCAke0lOU1RBTExfRElSfS9jb25mCiAgY2QgJHtJTlNUQUxMX0RJUn0KfQoKIyBSZXRyeSBhIGRvd25sb2FkIHVudGlsIHdlIGdldCBpdC4gYXJnczogbmFtZSwgc2hhLCB1cmwxLCB1cmwyLi4uCmRvd25sb2FkLW9yLWJ1c3QoKSB7CiAgbG9jYWwgLXIgZmlsZT0iJDEiCiAgbG9jYWwgLXIgaGFzaD0iJDIiCiAgc2hpZnQgMgoKICB1cmxzPSggJCogKQogIHdoaWxlIHRydWU7IGRvCiAgICBmb3IgdXJsIGluICIke3VybHNbQF19IjsgZG8KICAgICAgY29tbWFuZHM9KAogICAgICAgICJjdXJsIC1mIC0taXB2NCAtLWNvbXByZXNzZWQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLS1jb21wcmVzc2lvbj1hdXRvIC1PICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dD0yMCAtLXRyaWVzPTYgLS13YWl0PTEwIgogICAgICAgICJjdXJsIC1mIC0taXB2NCAtTG8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0IDIwIC0tcmV0cnkgNiAtLXJldHJ5LWRlbGF5IDEwIgogICAgICAgICJ3Z2V0IC0taW5ldDQtb25seSAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgKQogICAgICBmb3IgY21kIGluICIke2NvbW1hbmRzW0BdfSI7IGRvCiAgICAgICAgZWNobyAiQXR0ZW1wdGluZyBkb3dubG9hZCB3aXRoOiAke2NtZH0ge3VybH0iCiAgICAgICAgaWYgISAoJHtjbWR9ICIke3VybH0iKTsgdGhlbgogICAgICAgICAgZWNobyAiPT0gRG93bmxvYWQgZmFpbGVkIHdpdGggJHtjbWR9ID09IgogICAgICAgICAgY29udGludWUKICAgICAgICBmaQogICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXSAmJiAhIHZhbGlkYXRlLWhhc2ggIiR7ZmlsZX0iICIke2hhc2h9IjsgdGhlbgogICAgICAgICAgZWNobyAiPT0gSGFzaCB2YWxpZGF0aW9uIG9mICR7dXJsfSBmYWlsZWQuIFJldHJ5aW5nLiA9PSIKICAgICAgICAgIHJtIC1mICIke2ZpbGV9IgogICAgICAgIGVsc2UKICAgICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXTsgdGhlbgogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSAoU0hBMSA9ICR7aGFzaH0pID09IgogICAgICAgICAgZWxzZQogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSA9PSIKICAgICAgICAgIGZpCiAgICAgICAgICByZXR1cm4KICAgICAgICBmaQogICAgICBkb25lCiAgICBkb25lCgogICAgZWNobyAiQWxsIGRvd25sb2FkcyBmYWlsZWQ7IHNsZWVwaW5nIGJlZm9yZSByZXRyeWluZyIKICAgIHNsZWVwIDYwCiAgZG9uZQp9Cgp2YWxpZGF0ZS1oYXNoKCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGV4cGVjdGVkPSIkMiIKICBsb2NhbCBhY3R1YWwKCiAgYWN0dWFsPSQoc2hhMjU2c3VtICR7ZmlsZX0gfCBhd2sgJ3sgcHJpbnQgJDEgfScpIHx8IHRydWUKICBpZiBbWyAiJHthY3R1YWx9IiAhPSAiJHtleHBlY3RlZH0iIF1dOyB0aGVuCiAgICBlY2hvICI9PSAke2ZpbGV9IGNvcnJ1cHRlZCwgaGFzaCAke2FjdHVhbH0gZG9lc24ndCBtYXRjaCBleHBlY3RlZCAke2V4cGVjdGVkfSA9PSIKICAgIHJldHVybiAxCiAgZmkKfQoKZnVuY3Rpb24gc3BsaXQtY29tbWFzKCkgewogIGVjaG8gJDEgfCB0ciAiLCIgIlxuIgp9CgpmdW5jdGlvbiB0cnktZG93bmxvYWQtcmVsZWFzZSgpIHsKICBsb2NhbCAtciBub2RldXBfdXJscz0oICQoc3BsaXQtY29tbWFzICIke05PREVVUF9VUkx9IikgKQogIGlmIFtbIC1uICIke05PREVVUF9IQVNIOi19IiBdXTsgdGhlbgogICAgbG9jYWwgLXIgbm9kZXVwX2hhc2g9IiR7Tk9ERVVQX0hBU0h9IgogIGVsc2UKICAjIFRPRE86IFJlbW92ZT8KICAgIGVjaG8gIkRvd25sb2FkaW5nIHNoYTI1NiAobm90IGZvdW5kIGluIGVudikiCiAgICBkb3dubG9hZC1vci1idXN0IG5vZGV1cC5zaGEyNTYgIiIgIiR7bm9kZXVwX3VybHNbQF0vJS8uc2hhMjU2fSIKICAgIGxvY2FsIC1yIG5vZGV1cF9oYXNoPSQoY2F0IG5vZGV1cC5zaGEyNTYpCiAgZmkKCiAgZWNobyAiRG93bmxvYWRpbmcgbm9kZXVwICgke25vZGV1cF91cmxzW0BdfSkiCiAgZG93bmxvYWQtb3ItYnVzdCBub2RldXAgIiR7bm9kZXVwX2hhc2h9IiAiJHtub2RldXBfdXJsc1tAXX0iCgogIGNobW9kICt4IG5vZGV1cAp9CgpmdW5jdGlvbiBkb3dubG9hZC1yZWxlYXNlKCkgewogICMgSW4gY2FzZSBvZiBmYWlsdXJlIGNoZWNraW5nIGludGVncml0eSBvZiByZWxlYXNlLCByZXRyeS4KICBjZCAke0lOU1RBTExfRElSfS9iaW4KICB1bnRpbCB0cnktZG93bmxvYWQtcmVsZWFzZTsgZG8KICAgIHNsZWVwIDE1CiAgICBlY2hvICJDb3VsZG4ndCBkb3dubG9hZCByZWxlYXNlLiBSZXRyeWluZy4uLiIKICBkb25lCgogIGVjaG8gIlJ1bm5pbmcgbm9kZXVwIgogICMgV2UgY2FuJ3QgcnVuIGluIHRoZSBmb3JlZ3JvdW5kIGJlY2F1c2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci9kb2NrZXIvaXNzdWVzLzIzNzkzCiAgKCBjZCAke0lOU1RBTExfRElSfS9iaW47IC4vbm9kZXVwIC0taW5zdGFsbC1zeXN0ZW1kLXVuaXQgLS1jb25mPSR7SU5TVEFMTF9ESVJ9L2NvbmYva3ViZV9lbnYueWFtbCAtLXY9OCAgKQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi9iaW4vc3lzdGVtZC1tYWNoaW5lLWlkLXNldHVwIHx8IGVjaG8gImZhaWxlZCB0byBzZXQgdXAgZW5zdXJlIG1hY2hpbmUtaWQgY29uZmlndXJlZCIKCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBzdGFydGluZyA9PSIKZW5zdXJlLWluc3RhbGwtZGlyCgpjYXQgPiBjb25mL2NsdXN0ZXJfc3BlYy55YW1sIDw8ICdfX0VPRl9DTFVTVEVSX1NQRUMnCmNsb3VkQ29uZmlnOiBudWxsCmNvbnRhaW5lclJ1bnRpbWU6IGRvY2tlcgpjb250YWluZXJkOgogIHNraXBJbnN0YWxsOiB0cnVlCmRvY2tlcjoKICBpcE1hc3E6IGZhbHNlCiAgaXBUYWJsZXM6IGZhbHNlCiAgbG9nRHJpdmVyOiBqc29uLWZpbGUKICBsb2dMZXZlbDogd2FybgogIGxvZ09wdDoKICAtIG1heC1zaXplPTEwbQogIC0gbWF4LWZpbGU9NQogIHN0b3JhZ2U6IG92ZXJsYXkyLG92ZXJsYXksYXVmcwogIHZlcnNpb246IDE4LjA2LjMKa3ViZVByb3h5OgogIGNsdXN0ZXJDSURSOiAxMDAuOTYuMC4wLzExCiAgY3B1UmVxdWVzdDogMTAwbQogIGhvc3RuYW1lT3ZlcnJpZGU6ICdAYXdzJwogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtcHJveHk6djEuMTIuOQogIGxvZ0xldmVsOiAyCmt1YmVsZXQ6CiAgYWxsb3dQcml2aWxlZ2VkOiB0cnVlCiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9uTWFzcXVlcmFkZUNJRFI6IDEwMC42NC4wLjAvMTAKICBwb2RJbmZyYUNvbnRhaW5lckltYWdlOiBrOHMuZ2NyLmlvL3BhdXNlLWFtZDY0OjMuMgogIHBvZE1hbmlmZXN0UGF0aDogL2V0Yy9rdWJlcm5ldGVzL21hbmlmZXN0cwoKX19FT0ZfQ0xVU1RFUl9TUEVDCgpjYXQgPiBjb25mL2lnX3NwZWMueWFtbCA8PCAnX19FT0ZfSUdfU1BFQycKa3ViZWxldDogbnVsbApub2RlTGFiZWxzOiBudWxsCnRhaW50czogbnVsbAoKX19FT0ZfSUdfU1BFQwoKY2F0ID4gY29uZi9rdWJlX2Vudi55YW1sIDw8ICdfX0VPRl9LVUJFX0VOVicKQXNzZXRzOgotIGU5MTRiMTc1MzJjNDExY2I3YzBjYzQ3MjEzMWI2MTkzNWZiNjZiMzFAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjEyLjkvYmluL2xpbnV4L2FtZDY0L2t1YmVsZXQKLSBhYTNlOTM4OTdhNjk5OWQ2YzdkZWRiYzQxNzkzYzkwZDQxZWViMDAwQGh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9rdWJlcm5ldGVzLXJlbGVhc2UvcmVsZWFzZS92MS4xMi45L2Jpbi9saW51eC9hbWQ2NC9rdWJlY3RsCi0gNTJlOWQyZGU4YTVmOTI3MzA3ZDkzOTczMDg3MzU2NThlZTQ0YWI4ZEBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL25ldHdvcmstcGx1Z2lucy9jbmktcGx1Z2lucy1hbWQ2NC12MC43LjUudGd6CkNsdXN0ZXJOYW1lOiBtaXhlZGluc3RhbmNlcy5leGFtcGxlLmNvbQpDb25maWdCYXNlOiBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL21peGVkaW5zdGFuY2VzLmV4YW1wbGUuY29tCkluc3RhbmNlR3JvdXBOYW1lOiBub2RlcwpUYWdzOgotIF9hdXRvbWF0aWNfdXBncmFkZXMKLSBfYXdzCmNoYW5uZWxzOgotIG1lbWZzOi8vY2x1c3RlcnMuZXhhbXBsZS5jb20vbWl4ZWRpbnN0YW5jZXMuZXhhbXBsZS5jb20vYWRkb25zL2Jvb3RzdHJhcC1jaGFubmVsLnlhbWwKCl9fRU9GX0tVQkVfRU5WCgpkb3dubG9hZC1yZWxlYXNlCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBkb25lID09Igo= +IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkw9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xNS4wL2xpbnV4L2FtZDY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE1LjAvbGludXgtYW1kNjQtbm9kZXVwLGh0dHBzOi8va3ViZXVwdjIuczMuYW1hem9uYXdzLmNvbS9rb3BzLzEuMTUuMC9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0g9OTYwNGVmMTgyNjdhZDdiNWNmNGNlYmJmN2FiNjQ0MjNjZjViYjAzNDJkMTY5YzYwOGFjNjM3NmU2YWYyNmQ4MQoKZXhwb3J0IEFXU19SRUdJT049dXMtdGVzdC0xCgoKCgpmdW5jdGlvbiBlbnN1cmUtaW5zdGFsbC1kaXIoKSB7CiAgSU5TVEFMTF9ESVI9Ii9vcHQva29wcyIKICAjIE9uIENvbnRhaW5lck9TLCB3ZSBpbnN0YWxsIHVuZGVyIC92YXIvbGliL3Rvb2xib3g7IC9vcHQgaXMgcm8gYW5kIG5vZXhlYwogIGlmIFtbIC1kIC92YXIvbGliL3Rvb2xib3ggXV07IHRoZW4KICAgIElOU1RBTExfRElSPSIvdmFyL2xpYi90b29sYm94L2tvcHMiCiAgZmkKICBta2RpciAtcCAke0lOU1RBTExfRElSfS9iaW4KICBta2RpciAtcCAke0lOU1RBTExfRElSfS9jb25mCiAgY2QgJHtJTlNUQUxMX0RJUn0KfQoKIyBSZXRyeSBhIGRvd25sb2FkIHVudGlsIHdlIGdldCBpdC4gYXJnczogbmFtZSwgc2hhLCB1cmwxLCB1cmwyLi4uCmRvd25sb2FkLW9yLWJ1c3QoKSB7CiAgbG9jYWwgLXIgZmlsZT0iJDEiCiAgbG9jYWwgLXIgaGFzaD0iJDIiCiAgc2hpZnQgMgoKICB1cmxzPSggJCogKQogIHdoaWxlIHRydWU7IGRvCiAgICBmb3IgdXJsIGluICIke3VybHNbQF19IjsgZG8KICAgICAgY29tbWFuZHM9KAogICAgICAgICJjdXJsIC1mIC0taXB2NCAtLWNvbXByZXNzZWQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLS1jb21wcmVzc2lvbj1hdXRvIC1PICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dD0yMCAtLXRyaWVzPTYgLS13YWl0PTEwIgogICAgICAgICJjdXJsIC1mIC0taXB2NCAtTG8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0IDIwIC0tcmV0cnkgNiAtLXJldHJ5LWRlbGF5IDEwIgogICAgICAgICJ3Z2V0IC0taW5ldDQtb25seSAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgKQogICAgICBmb3IgY21kIGluICIke2NvbW1hbmRzW0BdfSI7IGRvCiAgICAgICAgZWNobyAiQXR0ZW1wdGluZyBkb3dubG9hZCB3aXRoOiAke2NtZH0ge3VybH0iCiAgICAgICAgaWYgISAoJHtjbWR9ICIke3VybH0iKTsgdGhlbgogICAgICAgICAgZWNobyAiPT0gRG93bmxvYWQgZmFpbGVkIHdpdGggJHtjbWR9ID09IgogICAgICAgICAgY29udGludWUKICAgICAgICBmaQogICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXSAmJiAhIHZhbGlkYXRlLWhhc2ggIiR7ZmlsZX0iICIke2hhc2h9IjsgdGhlbgogICAgICAgICAgZWNobyAiPT0gSGFzaCB2YWxpZGF0aW9uIG9mICR7dXJsfSBmYWlsZWQuIFJldHJ5aW5nLiA9PSIKICAgICAgICAgIHJtIC1mICIke2ZpbGV9IgogICAgICAgIGVsc2UKICAgICAgICAgIGlmIFtbIC1uICIke2hhc2h9IiBdXTsgdGhlbgogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSAoU0hBMSA9ICR7aGFzaH0pID09IgogICAgICAgICAgZWxzZQogICAgICAgICAgICBlY2hvICI9PSBEb3dubG9hZGVkICR7dXJsfSA9PSIKICAgICAgICAgIGZpCiAgICAgICAgICByZXR1cm4KICAgICAgICBmaQogICAgICBkb25lCiAgICBkb25lCgogICAgZWNobyAiQWxsIGRvd25sb2FkcyBmYWlsZWQ7IHNsZWVwaW5nIGJlZm9yZSByZXRyeWluZyIKICAgIHNsZWVwIDYwCiAgZG9uZQp9Cgp2YWxpZGF0ZS1oYXNoKCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGV4cGVjdGVkPSIkMiIKICBsb2NhbCBhY3R1YWwKCiAgYWN0dWFsPSQoc2hhMjU2c3VtICR7ZmlsZX0gfCBhd2sgJ3sgcHJpbnQgJDEgfScpIHx8IHRydWUKICBpZiBbWyAiJHthY3R1YWx9IiAhPSAiJHtleHBlY3RlZH0iIF1dOyB0aGVuCiAgICBlY2hvICI9PSAke2ZpbGV9IGNvcnJ1cHRlZCwgaGFzaCAke2FjdHVhbH0gZG9lc24ndCBtYXRjaCBleHBlY3RlZCAke2V4cGVjdGVkfSA9PSIKICAgIHJldHVybiAxCiAgZmkKfQoKZnVuY3Rpb24gc3BsaXQtY29tbWFzKCkgewogIGVjaG8gJDEgfCB0ciAiLCIgIlxuIgp9CgpmdW5jdGlvbiB0cnktZG93bmxvYWQtcmVsZWFzZSgpIHsKICBsb2NhbCAtciBub2RldXBfdXJscz0oICQoc3BsaXQtY29tbWFzICIke05PREVVUF9VUkx9IikgKQogIGlmIFtbIC1uICIke05PREVVUF9IQVNIOi19IiBdXTsgdGhlbgogICAgbG9jYWwgLXIgbm9kZXVwX2hhc2g9IiR7Tk9ERVVQX0hBU0h9IgogIGVsc2UKICAjIFRPRE86IFJlbW92ZT8KICAgIGVjaG8gIkRvd25sb2FkaW5nIHNoYTI1NiAobm90IGZvdW5kIGluIGVudikiCiAgICBkb3dubG9hZC1vci1idXN0IG5vZGV1cC5zaGEyNTYgIiIgIiR7bm9kZXVwX3VybHNbQF0vJS8uc2hhMjU2fSIKICAgIGxvY2FsIC1yIG5vZGV1cF9oYXNoPSQoY2F0IG5vZGV1cC5zaGEyNTYpCiAgZmkKCiAgZWNobyAiRG93bmxvYWRpbmcgbm9kZXVwICgke25vZGV1cF91cmxzW0BdfSkiCiAgZG93bmxvYWQtb3ItYnVzdCBub2RldXAgIiR7bm9kZXVwX2hhc2h9IiAiJHtub2RldXBfdXJsc1tAXX0iCgogIGNobW9kICt4IG5vZGV1cAp9CgpmdW5jdGlvbiBkb3dubG9hZC1yZWxlYXNlKCkgewogIGNhc2UgIiQodW5hbWUgLW0pIiBpbgogIHg4Nl82NCp8aT84Nl82NCp8YW1kNjQqKQogICAgTk9ERVVQX1VSTD0iJHtOT0RFVVBfVVJMfSIKICAgIE5PREVVUF9IQVNIPSIke05PREVVUF9IQVNIfSIKICAgIDs7CiAgKikKICAgIGVjaG8gIlVuc3VwcG9ydGVkIGhvc3QgYXJjaDogJCh1bmFtZSAtbSkiID4mMgogICAgZXhpdCAxCiAgICA7OwogIGVzYWMKCiAgIyBJbiBjYXNlIG9mIGZhaWx1cmUgY2hlY2tpbmcgaW50ZWdyaXR5IG9mIHJlbGVhc2UsIHJldHJ5LgogIGNkICR7SU5TVEFMTF9ESVJ9L2JpbgogIHVudGlsIHRyeS1kb3dubG9hZC1yZWxlYXNlOyBkbwogICAgc2xlZXAgMTUKICAgIGVjaG8gIkNvdWxkbid0IGRvd25sb2FkIHJlbGVhc2UuIFJldHJ5aW5nLi4uIgogIGRvbmUKCiAgZWNobyAiUnVubmluZyBub2RldXAiCiAgIyBXZSBjYW4ndCBydW4gaW4gdGhlIGZvcmVncm91bmQgYmVjYXVzZSBvZiBodHRwczovL2dpdGh1Yi5jb20vZG9ja2VyL2RvY2tlci9pc3N1ZXMvMjM3OTMKICAoIGNkICR7SU5TVEFMTF9ESVJ9L2JpbjsgLi9ub2RldXAgLS1pbnN0YWxsLXN5c3RlbWQtdW5pdCAtLWNvbmY9JHtJTlNUQUxMX0RJUn0vY29uZi9rdWJlX2Vudi55YW1sIC0tdj04ICApCn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKL2Jpbi9zeXN0ZW1kLW1hY2hpbmUtaWQtc2V0dXAgfHwgZWNobyAiZmFpbGVkIHRvIHNldCB1cCBlbnN1cmUgbWFjaGluZS1pZCBjb25maWd1cmVkIgoKZWNobyAiPT0gbm9kZXVwIG5vZGUgY29uZmlnIHN0YXJ0aW5nID09IgplbnN1cmUtaW5zdGFsbC1kaXIKCmNhdCA+IGNvbmYvY2x1c3Rlcl9zcGVjLnlhbWwgPDwgJ19fRU9GX0NMVVNURVJfU1BFQycKY2xvdWRDb25maWc6IG51bGwKY29udGFpbmVyUnVudGltZTogZG9ja2VyCmNvbnRhaW5lcmQ6CiAgc2tpcEluc3RhbGw6IHRydWUKZG9ja2VyOgogIGlwTWFzcTogZmFsc2UKICBpcFRhYmxlczogZmFsc2UKICBsb2dEcml2ZXI6IGpzb24tZmlsZQogIGxvZ0xldmVsOiB3YXJuCiAgbG9nT3B0OgogIC0gbWF4LXNpemU9MTBtCiAgLSBtYXgtZmlsZT01CiAgc3RvcmFnZTogb3ZlcmxheTIsb3ZlcmxheSxhdWZzCiAgdmVyc2lvbjogMTguMDYuMwprdWJlUHJveHk6CiAgY2x1c3RlckNJRFI6IDEwMC45Ni4wLjAvMTEKICBjcHVSZXF1ZXN0OiAxMDBtCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAgaW1hZ2U6IGs4cy5nY3IuaW8va3ViZS1wcm94eTp2MS4xMi45CiAgbG9nTGV2ZWw6IDIKa3ViZWxldDoKICBhbGxvd1ByaXZpbGVnZWQ6IHRydWUKICBhbm9ueW1vdXNBdXRoOiBmYWxzZQogIGNncm91cFJvb3Q6IC8KICBjbG91ZFByb3ZpZGVyOiBhd3MKICBjbHVzdGVyRE5TOiAxMDAuNjQuMC4xMAogIGNsdXN0ZXJEb21haW46IGNsdXN0ZXIubG9jYWwKICBlbmFibGVEZWJ1Z2dpbmdIYW5kbGVyczogdHJ1ZQogIGV2aWN0aW9uSGFyZDogbWVtb3J5LmF2YWlsYWJsZTwxMDBNaSxub2RlZnMuYXZhaWxhYmxlPDEwJSxub2RlZnMuaW5vZGVzRnJlZTw1JSxpbWFnZWZzLmF2YWlsYWJsZTwxMCUsaW1hZ2Vmcy5pbm9kZXNGcmVlPDUlCiAgZmVhdHVyZUdhdGVzOgogICAgRXhwZXJpbWVudGFsQ3JpdGljYWxQb2RBbm5vdGF0aW9uOiAidHJ1ZSIKICBob3N0bmFtZU92ZXJyaWRlOiAnQGF3cycKICBrdWJlY29uZmlnUGF0aDogL3Zhci9saWIva3ViZWxldC9rdWJlY29uZmlnCiAgbG9nTGV2ZWw6IDIKICBuZXR3b3JrUGx1Z2luTVRVOiA5MDAxCiAgbmV0d29ya1BsdWdpbk5hbWU6IGt1YmVuZXQKICBub25NYXNxdWVyYWRlQ0lEUjogMTAwLjY0LjAuMC8xMAogIHBvZEluZnJhQ29udGFpbmVySW1hZ2U6IGs4cy5nY3IuaW8vcGF1c2U6My4yCiAgcG9kTWFuaWZlc3RQYXRoOiAvZXRjL2t1YmVybmV0ZXMvbWFuaWZlc3RzCgpfX0VPRl9DTFVTVEVSX1NQRUMKCmNhdCA+IGNvbmYvaWdfc3BlYy55YW1sIDw8ICdfX0VPRl9JR19TUEVDJwprdWJlbGV0OiBudWxsCm5vZGVMYWJlbHM6IG51bGwKdGFpbnRzOiBudWxsCgpfX0VPRl9JR19TUEVDCgpjYXQgPiBjb25mL2t1YmVfZW52LnlhbWwgPDwgJ19fRU9GX0tVQkVfRU5WJwpBc3NldHM6Ci0gZTkxNGIxNzUzMmM0MTFjYjdjMGNjNDcyMTMxYjYxOTM1ZmI2NmIzMUBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL3JlbGVhc2UvdjEuMTIuOS9iaW4vbGludXgvYW1kNjQva3ViZWxldAotIGFhM2U5Mzg5N2E2OTk5ZDZjN2RlZGJjNDE3OTNjOTBkNDFlZWIwMDBAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjEyLjkvYmluL2xpbnV4L2FtZDY0L2t1YmVjdGwKLSA1MmU5ZDJkZThhNWY5MjczMDdkOTM5NzMwODczNTY1OGVlNDRhYjhkQGh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9rdWJlcm5ldGVzLXJlbGVhc2UvbmV0d29yay1wbHVnaW5zL2NuaS1wbHVnaW5zLWFtZDY0LXYwLjcuNS50Z3oKQ2x1c3Rlck5hbWU6IG1peGVkaW5zdGFuY2VzLmV4YW1wbGUuY29tCkNvbmZpZ0Jhc2U6IG1lbWZzOi8vY2x1c3RlcnMuZXhhbXBsZS5jb20vbWl4ZWRpbnN0YW5jZXMuZXhhbXBsZS5jb20KSW5zdGFuY2VHcm91cE5hbWU6IG5vZGVzClRhZ3M6Ci0gX2F1dG9tYXRpY191cGdyYWRlcwotIF9hd3MKY2hhbm5lbHM6Ci0gbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9taXhlZGluc3RhbmNlcy5leGFtcGxlLmNvbS9hZGRvbnMvYm9vdHN0cmFwLWNoYW5uZWwueWFtbAoKX19FT0ZfS1VCRV9FTlYKCmRvd25sb2FkLXJlbGVhc2UKZWNobyAiPT0gbm9kZXVwIG5vZGUgY29uZmlnIGRvbmUgPT0iCg== diff --git a/tests/integration/update_cluster/nosshkey-cloudformation/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/nosshkey-cloudformation/cloudformation.json.extracted.yaml index 9348f212091e5..acdd8561344f5 100644 --- a/tests/integration/update_cluster/nosshkey-cloudformation/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/nosshkey-cloudformation/cloudformation.json.extracted.yaml @@ -111,6 +111,17 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersnosshkeyexamplec } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -236,7 +247,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersnosshkeyexamplec networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: allowPrivileged: true @@ -255,7 +266,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersnosshkeyexamplec networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false @@ -406,6 +417,17 @@ Resources.AWSAutoScalingLaunchConfigurationnodesnosshkeyexamplecom.Properties.Us } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -463,7 +485,7 @@ Resources.AWSAutoScalingLaunchConfigurationnodesnosshkeyexamplecom.Properties.Us networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/nosshkey/data/aws_launch_configuration_master-us-test-1a.masters.nosshkey.example.com_user_data b/tests/integration/update_cluster/nosshkey/data/aws_launch_configuration_master-us-test-1a.masters.nosshkey.example.com_user_data index 1b1399d14204e..1233a4a891dbb 100644 --- a/tests/integration/update_cluster/nosshkey/data/aws_launch_configuration_master-us-test-1a.masters.nosshkey.example.com_user_data +++ b/tests/integration/update_cluster/nosshkey/data/aws_launch_configuration_master-us-test-1a.masters.nosshkey.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -236,7 +247,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: allowPrivileged: true @@ -255,7 +266,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/nosshkey/data/aws_launch_configuration_nodes.nosshkey.example.com_user_data b/tests/integration/update_cluster/nosshkey/data/aws_launch_configuration_nodes.nosshkey.example.com_user_data index a138aa2764ca1..d20815fb52ec3 100644 --- a/tests/integration/update_cluster/nosshkey/data/aws_launch_configuration_nodes.nosshkey.example.com_user_data +++ b/tests/integration/update_cluster/nosshkey/data/aws_launch_configuration_nodes.nosshkey.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -167,7 +178,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/private-shared-subnet/data/aws_launch_configuration_master-us-test-1a.masters.private-shared-subnet.example.com_user_data b/tests/integration/update_cluster/private-shared-subnet/data/aws_launch_configuration_master-us-test-1a.masters.private-shared-subnet.example.com_user_data index 11a1b8d405f43..8ec18d40f616a 100644 --- a/tests/integration/update_cluster/private-shared-subnet/data/aws_launch_configuration_master-us-test-1a.masters.private-shared-subnet.example.com_user_data +++ b/tests/integration/update_cluster/private-shared-subnet/data/aws_launch_configuration_master-us-test-1a.masters.private-shared-subnet.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -229,7 +240,7 @@ kubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -246,7 +257,7 @@ masterKubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/private-shared-subnet/data/aws_launch_configuration_nodes.private-shared-subnet.example.com_user_data b/tests/integration/update_cluster/private-shared-subnet/data/aws_launch_configuration_nodes.private-shared-subnet.example.com_user_data index c934032c17426..d45d6f834fee9 100644 --- a/tests/integration/update_cluster/private-shared-subnet/data/aws_launch_configuration_nodes.private-shared-subnet.example.com_user_data +++ b/tests/integration/update_cluster/private-shared-subnet/data/aws_launch_configuration_nodes.private-shared-subnet.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -165,7 +176,7 @@ kubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/privatecalico/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/privatecalico/cloudformation.json.extracted.yaml index 2e068c9f5c67c..92e7c3d11280f 100644 --- a/tests/integration/update_cluster/privatecalico/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/privatecalico/cloudformation.json.extracted.yaml @@ -112,6 +112,17 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersprivatecalicoexa } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -231,7 +242,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersprivatecalicoexa logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -248,7 +259,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersprivatecalicoexa logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false @@ -402,6 +413,17 @@ Resources.AWSAutoScalingLaunchConfigurationnodesprivatecalicoexamplecom.Properti } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -457,7 +479,7 @@ Resources.AWSAutoScalingLaunchConfigurationnodesprivatecalicoexamplecom.Properti logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/privatecalico/data/aws_launch_configuration_master-us-test-1a.masters.privatecalico.example.com_user_data b/tests/integration/update_cluster/privatecalico/data/aws_launch_configuration_master-us-test-1a.masters.privatecalico.example.com_user_data index 623b3e739f7d6..4aa32a414454c 100644 --- a/tests/integration/update_cluster/privatecalico/data/aws_launch_configuration_master-us-test-1a.masters.privatecalico.example.com_user_data +++ b/tests/integration/update_cluster/privatecalico/data/aws_launch_configuration_master-us-test-1a.masters.privatecalico.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -229,7 +240,7 @@ kubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -246,7 +257,7 @@ masterKubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/privatecalico/data/aws_launch_configuration_nodes.privatecalico.example.com_user_data b/tests/integration/update_cluster/privatecalico/data/aws_launch_configuration_nodes.privatecalico.example.com_user_data index 2ba6b5b5f2a73..afbc3d02e0cd1 100644 --- a/tests/integration/update_cluster/privatecalico/data/aws_launch_configuration_nodes.privatecalico.example.com_user_data +++ b/tests/integration/update_cluster/privatecalico/data/aws_launch_configuration_nodes.privatecalico.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -165,7 +176,7 @@ kubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/privatecanal/data/aws_launch_configuration_master-us-test-1a.masters.privatecanal.example.com_user_data b/tests/integration/update_cluster/privatecanal/data/aws_launch_configuration_master-us-test-1a.masters.privatecanal.example.com_user_data index d80979c441a09..985911b0214a3 100644 --- a/tests/integration/update_cluster/privatecanal/data/aws_launch_configuration_master-us-test-1a.masters.privatecanal.example.com_user_data +++ b/tests/integration/update_cluster/privatecanal/data/aws_launch_configuration_master-us-test-1a.masters.privatecanal.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -229,7 +240,7 @@ kubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -246,7 +257,7 @@ masterKubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/privatecanal/data/aws_launch_configuration_nodes.privatecanal.example.com_user_data b/tests/integration/update_cluster/privatecanal/data/aws_launch_configuration_nodes.privatecanal.example.com_user_data index 729fc75fac0c8..d9e9bedc1626b 100644 --- a/tests/integration/update_cluster/privatecanal/data/aws_launch_configuration_nodes.privatecanal.example.com_user_data +++ b/tests/integration/update_cluster/privatecanal/data/aws_launch_configuration_nodes.privatecanal.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -165,7 +176,7 @@ kubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/privatecilium/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/privatecilium/cloudformation.json.extracted.yaml index 2e81d4e85b9df..49578644ff83d 100644 --- a/tests/integration/update_cluster/privatecilium/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/privatecilium/cloudformation.json.extracted.yaml @@ -112,6 +112,17 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersprivateciliumexa } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -231,7 +242,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersprivateciliumexa logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -248,7 +259,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersprivateciliumexa logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false @@ -402,6 +413,17 @@ Resources.AWSAutoScalingLaunchConfigurationnodesprivateciliumexamplecom.Properti } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -457,7 +479,7 @@ Resources.AWSAutoScalingLaunchConfigurationnodesprivateciliumexamplecom.Properti logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/privatecilium/data/aws_launch_configuration_master-us-test-1a.masters.privatecilium.example.com_user_data b/tests/integration/update_cluster/privatecilium/data/aws_launch_configuration_master-us-test-1a.masters.privatecilium.example.com_user_data index 2b66131d0d875..36d15fd38b898 100644 --- a/tests/integration/update_cluster/privatecilium/data/aws_launch_configuration_master-us-test-1a.masters.privatecilium.example.com_user_data +++ b/tests/integration/update_cluster/privatecilium/data/aws_launch_configuration_master-us-test-1a.masters.privatecilium.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -229,7 +240,7 @@ kubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -246,7 +257,7 @@ masterKubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/privatecilium/data/aws_launch_configuration_nodes.privatecilium.example.com_user_data b/tests/integration/update_cluster/privatecilium/data/aws_launch_configuration_nodes.privatecilium.example.com_user_data index b459ecd38b6e5..f9285b44fbdbd 100644 --- a/tests/integration/update_cluster/privatecilium/data/aws_launch_configuration_nodes.privatecilium.example.com_user_data +++ b/tests/integration/update_cluster/privatecilium/data/aws_launch_configuration_nodes.privatecilium.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -165,7 +176,7 @@ kubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/privateciliumadvanced/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/privateciliumadvanced/cloudformation.json.extracted.yaml index c58ad8b2ad7fd..d761e2132b228 100644 --- a/tests/integration/update_cluster/privateciliumadvanced/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/privateciliumadvanced/cloudformation.json.extracted.yaml @@ -112,6 +112,17 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersprivateciliumadv } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -234,7 +245,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersprivateciliumadv logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -251,7 +262,7 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amastersprivateciliumadv logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false @@ -406,6 +417,17 @@ Resources.AWSAutoScalingLaunchConfigurationnodesprivateciliumadvancedexamplecom. } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -462,7 +484,7 @@ Resources.AWSAutoScalingLaunchConfigurationnodesprivateciliumadvancedexamplecom. logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/privateciliumadvanced/data/aws_launch_configuration_master-us-test-1a.masters.privateciliumadvanced.example.com_user_data b/tests/integration/update_cluster/privateciliumadvanced/data/aws_launch_configuration_master-us-test-1a.masters.privateciliumadvanced.example.com_user_data index d20d50af3b9bd..d748cdb774f6f 100644 --- a/tests/integration/update_cluster/privateciliumadvanced/data/aws_launch_configuration_master-us-test-1a.masters.privateciliumadvanced.example.com_user_data +++ b/tests/integration/update_cluster/privateciliumadvanced/data/aws_launch_configuration_master-us-test-1a.masters.privateciliumadvanced.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -232,7 +243,7 @@ kubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -249,7 +260,7 @@ masterKubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/privateciliumadvanced/data/aws_launch_configuration_nodes.privateciliumadvanced.example.com_user_data b/tests/integration/update_cluster/privateciliumadvanced/data/aws_launch_configuration_nodes.privateciliumadvanced.example.com_user_data index 71c089ae00aaa..e6be525b86ff1 100644 --- a/tests/integration/update_cluster/privateciliumadvanced/data/aws_launch_configuration_nodes.privateciliumadvanced.example.com_user_data +++ b/tests/integration/update_cluster/privateciliumadvanced/data/aws_launch_configuration_nodes.privateciliumadvanced.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -166,7 +177,7 @@ kubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/privatedns1/data/aws_launch_configuration_master-us-test-1a.masters.privatedns1.example.com_user_data b/tests/integration/update_cluster/privatedns1/data/aws_launch_configuration_master-us-test-1a.masters.privatedns1.example.com_user_data index db9ca7f024c9b..1d16e3e638aeb 100644 --- a/tests/integration/update_cluster/privatedns1/data/aws_launch_configuration_master-us-test-1a.masters.privatedns1.example.com_user_data +++ b/tests/integration/update_cluster/privatedns1/data/aws_launch_configuration_master-us-test-1a.masters.privatedns1.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -229,7 +240,7 @@ kubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -246,7 +257,7 @@ masterKubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/privatedns1/data/aws_launch_configuration_nodes.privatedns1.example.com_user_data b/tests/integration/update_cluster/privatedns1/data/aws_launch_configuration_nodes.privatedns1.example.com_user_data index 8b14502679cdc..e14c74e2e843f 100644 --- a/tests/integration/update_cluster/privatedns1/data/aws_launch_configuration_nodes.privatedns1.example.com_user_data +++ b/tests/integration/update_cluster/privatedns1/data/aws_launch_configuration_nodes.privatedns1.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -165,7 +176,7 @@ kubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/privatedns2/data/aws_launch_configuration_master-us-test-1a.masters.privatedns2.example.com_user_data b/tests/integration/update_cluster/privatedns2/data/aws_launch_configuration_master-us-test-1a.masters.privatedns2.example.com_user_data index 3b91354f48d27..ddadac626c69e 100644 --- a/tests/integration/update_cluster/privatedns2/data/aws_launch_configuration_master-us-test-1a.masters.privatedns2.example.com_user_data +++ b/tests/integration/update_cluster/privatedns2/data/aws_launch_configuration_master-us-test-1a.masters.privatedns2.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -229,7 +240,7 @@ kubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -246,7 +257,7 @@ masterKubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/privatedns2/data/aws_launch_configuration_nodes.privatedns2.example.com_user_data b/tests/integration/update_cluster/privatedns2/data/aws_launch_configuration_nodes.privatedns2.example.com_user_data index c9581ac1d5bad..687e70c4ede72 100644 --- a/tests/integration/update_cluster/privatedns2/data/aws_launch_configuration_nodes.privatedns2.example.com_user_data +++ b/tests/integration/update_cluster/privatedns2/data/aws_launch_configuration_nodes.privatedns2.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -165,7 +176,7 @@ kubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/privateflannel/data/aws_launch_configuration_master-us-test-1a.masters.privateflannel.example.com_user_data b/tests/integration/update_cluster/privateflannel/data/aws_launch_configuration_master-us-test-1a.masters.privateflannel.example.com_user_data index 67612b814184b..cfaaf1335c30b 100644 --- a/tests/integration/update_cluster/privateflannel/data/aws_launch_configuration_master-us-test-1a.masters.privateflannel.example.com_user_data +++ b/tests/integration/update_cluster/privateflannel/data/aws_launch_configuration_master-us-test-1a.masters.privateflannel.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -229,7 +240,7 @@ kubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -246,7 +257,7 @@ masterKubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/privateflannel/data/aws_launch_configuration_nodes.privateflannel.example.com_user_data b/tests/integration/update_cluster/privateflannel/data/aws_launch_configuration_nodes.privateflannel.example.com_user_data index 35803444040e0..c8ddcf5ed298f 100644 --- a/tests/integration/update_cluster/privateflannel/data/aws_launch_configuration_nodes.privateflannel.example.com_user_data +++ b/tests/integration/update_cluster/privateflannel/data/aws_launch_configuration_nodes.privateflannel.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -165,7 +176,7 @@ kubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/privatekopeio/data/aws_launch_configuration_master-us-test-1a.masters.privatekopeio.example.com_user_data b/tests/integration/update_cluster/privatekopeio/data/aws_launch_configuration_master-us-test-1a.masters.privatekopeio.example.com_user_data index 2862474af849b..3b57556fbfa4e 100644 --- a/tests/integration/update_cluster/privatekopeio/data/aws_launch_configuration_master-us-test-1a.masters.privatekopeio.example.com_user_data +++ b/tests/integration/update_cluster/privatekopeio/data/aws_launch_configuration_master-us-test-1a.masters.privatekopeio.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -229,7 +240,7 @@ kubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -246,7 +257,7 @@ masterKubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/privatekopeio/data/aws_launch_configuration_nodes.privatekopeio.example.com_user_data b/tests/integration/update_cluster/privatekopeio/data/aws_launch_configuration_nodes.privatekopeio.example.com_user_data index 51a5896a1cd30..1dfdffe284d5c 100644 --- a/tests/integration/update_cluster/privatekopeio/data/aws_launch_configuration_nodes.privatekopeio.example.com_user_data +++ b/tests/integration/update_cluster/privatekopeio/data/aws_launch_configuration_nodes.privatekopeio.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -165,7 +176,7 @@ kubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/privateweave/data/aws_launch_configuration_master-us-test-1a.masters.privateweave.example.com_user_data b/tests/integration/update_cluster/privateweave/data/aws_launch_configuration_master-us-test-1a.masters.privateweave.example.com_user_data index 9237b161381a0..7560c7d42c16a 100644 --- a/tests/integration/update_cluster/privateweave/data/aws_launch_configuration_master-us-test-1a.masters.privateweave.example.com_user_data +++ b/tests/integration/update_cluster/privateweave/data/aws_launch_configuration_master-us-test-1a.masters.privateweave.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -229,7 +240,7 @@ kubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -246,7 +257,7 @@ masterKubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/privateweave/data/aws_launch_configuration_nodes.privateweave.example.com_user_data b/tests/integration/update_cluster/privateweave/data/aws_launch_configuration_nodes.privateweave.example.com_user_data index e9ecfbe08c416..95cc85285a868 100644 --- a/tests/integration/update_cluster/privateweave/data/aws_launch_configuration_nodes.privateweave.example.com_user_data +++ b/tests/integration/update_cluster/privateweave/data/aws_launch_configuration_nodes.privateweave.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -165,7 +176,7 @@ kubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/restrict_access/data/aws_launch_configuration_master-us-test-1a.masters.restrictaccess.example.com_user_data b/tests/integration/update_cluster/restrict_access/data/aws_launch_configuration_master-us-test-1a.masters.restrictaccess.example.com_user_data index 7d8e8a5b148da..af7903a3ccc9a 100644 --- a/tests/integration/update_cluster/restrict_access/data/aws_launch_configuration_master-us-test-1a.masters.restrictaccess.example.com_user_data +++ b/tests/integration/update_cluster/restrict_access/data/aws_launch_configuration_master-us-test-1a.masters.restrictaccess.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -230,7 +241,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -248,7 +259,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/restrict_access/data/aws_launch_configuration_nodes.restrictaccess.example.com_user_data b/tests/integration/update_cluster/restrict_access/data/aws_launch_configuration_nodes.restrictaccess.example.com_user_data index 7de3c04b631e0..a1eebec26db50 100644 --- a/tests/integration/update_cluster/restrict_access/data/aws_launch_configuration_nodes.restrictaccess.example.com_user_data +++ b/tests/integration/update_cluster/restrict_access/data/aws_launch_configuration_nodes.restrictaccess.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -166,7 +177,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/shared_subnet/data/aws_launch_configuration_master-us-test-1a.masters.sharedsubnet.example.com_user_data b/tests/integration/update_cluster/shared_subnet/data/aws_launch_configuration_master-us-test-1a.masters.sharedsubnet.example.com_user_data index 139d0d5039b37..b94b220cc7567 100644 --- a/tests/integration/update_cluster/shared_subnet/data/aws_launch_configuration_master-us-test-1a.masters.sharedsubnet.example.com_user_data +++ b/tests/integration/update_cluster/shared_subnet/data/aws_launch_configuration_master-us-test-1a.masters.sharedsubnet.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -230,7 +241,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -248,7 +259,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/shared_subnet/data/aws_launch_configuration_nodes.sharedsubnet.example.com_user_data b/tests/integration/update_cluster/shared_subnet/data/aws_launch_configuration_nodes.sharedsubnet.example.com_user_data index 2fef93facddc7..5724c295c9436 100644 --- a/tests/integration/update_cluster/shared_subnet/data/aws_launch_configuration_nodes.sharedsubnet.example.com_user_data +++ b/tests/integration/update_cluster/shared_subnet/data/aws_launch_configuration_nodes.sharedsubnet.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -166,7 +177,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/shared_vpc/data/aws_launch_configuration_master-us-test-1a.masters.sharedvpc.example.com_user_data b/tests/integration/update_cluster/shared_vpc/data/aws_launch_configuration_master-us-test-1a.masters.sharedvpc.example.com_user_data index 36ba24bd838be..6a48ec5cd1984 100644 --- a/tests/integration/update_cluster/shared_vpc/data/aws_launch_configuration_master-us-test-1a.masters.sharedvpc.example.com_user_data +++ b/tests/integration/update_cluster/shared_vpc/data/aws_launch_configuration_master-us-test-1a.masters.sharedvpc.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -230,7 +241,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -248,7 +259,7 @@ masterKubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/shared_vpc/data/aws_launch_configuration_nodes.sharedvpc.example.com_user_data b/tests/integration/update_cluster/shared_vpc/data/aws_launch_configuration_nodes.sharedvpc.example.com_user_data index 73df408dd34b3..6b6b806d4fd10 100644 --- a/tests/integration/update_cluster/shared_vpc/data/aws_launch_configuration_nodes.sharedvpc.example.com_user_data +++ b/tests/integration/update_cluster/shared_vpc/data/aws_launch_configuration_nodes.sharedvpc.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -166,7 +177,7 @@ kubelet: networkPluginMTU: 9001 networkPluginName: kubenet nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC diff --git a/tests/integration/update_cluster/unmanaged/data/aws_launch_configuration_master-us-test-1a.masters.unmanaged.example.com_user_data b/tests/integration/update_cluster/unmanaged/data/aws_launch_configuration_master-us-test-1a.masters.unmanaged.example.com_user_data index 776e52660d375..45c2749c1718b 100644 --- a/tests/integration/update_cluster/unmanaged/data/aws_launch_configuration_master-us-test-1a.masters.unmanaged.example.com_user_data +++ b/tests/integration/update_cluster/unmanaged/data/aws_launch_configuration_master-us-test-1a.masters.unmanaged.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -229,7 +240,7 @@ kubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests masterKubelet: anonymousAuth: false @@ -246,7 +257,7 @@ masterKubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false diff --git a/tests/integration/update_cluster/unmanaged/data/aws_launch_configuration_nodes.unmanaged.example.com_user_data b/tests/integration/update_cluster/unmanaged/data/aws_launch_configuration_nodes.unmanaged.example.com_user_data index 0dc9c56a5f179..816bc997ad99f 100644 --- a/tests/integration/update_cluster/unmanaged/data/aws_launch_configuration_nodes.unmanaged.example.com_user_data +++ b/tests/integration/update_cluster/unmanaged/data/aws_launch_configuration_nodes.unmanaged.example.com_user_data @@ -110,6 +110,17 @@ function try-download-release() { } function download-release() { + case "$(uname -m)" in + x86_64*|i?86_64*|amd64*) + NODEUP_URL="${NODEUP_URL}" + NODEUP_HASH="${NODEUP_HASH}" + ;; + *) + echo "Unsupported host arch: $(uname -m)" >&2 + exit 1 + ;; + esac + # In case of failure checking integrity of release, retry. cd ${INSTALL_DIR}/bin until try-download-release; do @@ -165,7 +176,7 @@ kubelet: logLevel: 2 networkPluginName: cni nonMasqueradeCIDR: 100.64.0.0/10 - podInfraContainerImage: k8s.gcr.io/pause-amd64:3.2 + podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests __EOF_CLUSTER_SPEC