From 28caf07afa4f64a83a38aabd646b836c21b21d72 Mon Sep 17 00:00:00 2001 From: John Gardiner Myers Date: Wed, 29 Jul 2020 16:07:16 -0700 Subject: [PATCH 1/3] Stop using the _automatic_upgrades tag --- upup/pkg/fi/cloudup/tagbuilder.go | 16 ----------- upup/pkg/fi/cloudup/tagbuilder_test.go | 36 ------------------------- upup/pkg/fi/nodeup/command.go | 2 +- upup/pkg/fi/nodeup/nodetasks/package.go | 9 +++---- upup/pkg/fi/nodeup/tags/tags.go | 6 ----- 5 files changed, 4 insertions(+), 65 deletions(-) diff --git a/upup/pkg/fi/cloudup/tagbuilder.go b/upup/pkg/fi/cloudup/tagbuilder.go index 02bd1ab17e104..18408728d41d3 100644 --- a/upup/pkg/fi/cloudup/tagbuilder.go +++ b/upup/pkg/fi/cloudup/tagbuilder.go @@ -29,7 +29,6 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/klog" api "k8s.io/kops/pkg/apis/kops" - "k8s.io/kops/upup/pkg/fi" ) func buildCloudupTags(cluster *api.Cluster) (sets.String, error) { @@ -70,21 +69,6 @@ func buildCloudupTags(cluster *api.Cluster) (sets.String, error) { func buildNodeupTags(cluster *api.Cluster, clusterTags sets.String) (sets.String, error) { tags := sets.NewString() - networking := cluster.Spec.Networking - - if networking == nil { - return nil, fmt.Errorf("Networking is not set, and should not be nil here") - } - - switch fi.StringValue(cluster.Spec.UpdatePolicy) { - case "": // default - tags.Insert("_automatic_upgrades") - case api.UpdatePolicyExternal: - // Skip applying the tag - default: - klog.Warningf("Unrecognized value for UpdatePolicy: %v", fi.StringValue(cluster.Spec.UpdatePolicy)) - } - if clusterTags.Has("_gce") { tags.Insert("_gce") } diff --git a/upup/pkg/fi/cloudup/tagbuilder_test.go b/upup/pkg/fi/cloudup/tagbuilder_test.go index f851c69c1c7b1..e5dd3372b7fc8 100644 --- a/upup/pkg/fi/cloudup/tagbuilder_test.go +++ b/upup/pkg/fi/cloudup/tagbuilder_test.go @@ -210,42 +210,6 @@ func TestBuildTags_KubernetesVersions(t *testing.T) { } } -func TestBuildTags_UpdatePolicy_Nil(t *testing.T) { - c := buildCluster(nil) - - tags, err := buildCloudupTags(c) - if err != nil { - t.Fatalf("buildCloudupTags error: %v", err) - } - - nodeUpTags, err := buildNodeupTags(c, tags) - if err != nil { - t.Fatalf("buildNodeupTags error: %v", err) - } - - if !nodeUpTags.Has("_automatic_upgrades") { - t.Fatal("nodeUpTag _automatic_upgrades not found") - } -} - -func TestBuildTags_UpdatePolicy_None(t *testing.T) { - c := buildCluster(ClusterParams{CloudProvider: "aws", UpdatePolicy: api.UpdatePolicyExternal}) - - tags, err := buildCloudupTags(c) - if err != nil { - t.Fatalf("buildTags error: %v", err) - } - - nodeUpTags, err := buildNodeupTags(c, tags) - if err != nil { - t.Fatalf("buildNodeupTags error: %v", err) - } - - if nodeUpTags.Has("_automatic_upgrades") { - t.Fatal("nodeUpTag _automatic_upgrades found unexpectedly") - } -} - func TestBuildTags_CloudProvider_AWS_Cilium(t *testing.T) { c := buildCluster(nil) diff --git a/upup/pkg/fi/nodeup/command.go b/upup/pkg/fi/nodeup/command.go index 9ea48a97b325b..2c6403b4975cb 100644 --- a/upup/pkg/fi/nodeup/command.go +++ b/upup/pkg/fi/nodeup/command.go @@ -304,7 +304,7 @@ func (c *NodeUpCommand) Run(out io.Writer) error { return fmt.Errorf("unsupported target type %q", c.Target) } - context, err := fi.NewContext(target, nil, cloud, keyStore, secretStore, configBase, checkExisting, taskMap) + context, err := fi.NewContext(target, c.cluster, cloud, keyStore, secretStore, configBase, checkExisting, taskMap) if err != nil { klog.Exitf("error building context: %v", err) } diff --git a/upup/pkg/fi/nodeup/nodetasks/package.go b/upup/pkg/fi/nodeup/nodetasks/package.go index fbf654bf2fafc..92fe2145779b1 100644 --- a/upup/pkg/fi/nodeup/nodetasks/package.go +++ b/upup/pkg/fi/nodeup/nodetasks/package.go @@ -26,6 +26,7 @@ import ( "sync" "k8s.io/klog" + "k8s.io/kops/pkg/apis/kops" "k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi/nodeup/cloudinit" "k8s.io/kops/upup/pkg/fi/nodeup/local" @@ -194,9 +195,7 @@ func (e *Package) findDpkg(c *fi.Context) (*Package, error) { } } - target := c.Target.(*local.LocalTarget) - updates := target.HasTag(tags.TagUpdatePolicyAuto) - if updates || !installed { + if fi.StringValue(c.Cluster.Spec.UpdatePolicy) != kops.UpdatePolicyExternal || !installed { return nil, nil } @@ -244,9 +243,7 @@ func (e *Package) findYum(c *fi.Context) (*Package, error) { healthy = fi.Bool(true) } - target := c.Target.(*local.LocalTarget) - updates := target.HasTag(tags.TagUpdatePolicyAuto) - if updates || !installed { + if fi.StringValue(c.Cluster.Spec.UpdatePolicy) != kops.UpdatePolicyExternal || !installed { return nil, nil } diff --git a/upup/pkg/fi/nodeup/tags/tags.go b/upup/pkg/fi/nodeup/tags/tags.go index a8cdbcc9a5134..c59f6b3dffeda 100644 --- a/upup/pkg/fi/nodeup/tags/tags.go +++ b/upup/pkg/fi/nodeup/tags/tags.go @@ -24,12 +24,6 @@ const ( TagOSRHEL8 = "_rhel8" TagSystemd = "_systemd" - - // Nodes with the "_automatic_upgrade" tag automatically update installed packages - // during bootstrapping and daily for security updates (unless this update would require - // a node reboot). To disable automatic node package updates, set: - // `Cluster.Spec.UpdatePolicy = external` - TagUpdatePolicyAuto = "_automatic_upgrades" ) type HasTags interface { From c2cb6646af118d3f45e6557d55406f664bdbf21c Mon Sep 17 00:00:00 2001 From: John Gardiner Myers Date: Wed, 29 Jul 2020 16:26:55 -0700 Subject: [PATCH 2/3] Remove tags from NodeupConfig --- pkg/apis/nodeup/config.go | 2 - upup/pkg/fi/cloudup/apply_cluster.go | 15 ------- upup/pkg/fi/cloudup/tagbuilder.go | 16 -------- upup/pkg/fi/cloudup/tagbuilder_test.go | 54 -------------------------- upup/pkg/fi/nodeup/command.go | 2 - 5 files changed, 89 deletions(-) diff --git a/pkg/apis/nodeup/config.go b/pkg/apis/nodeup/config.go index dbba9474a0c17..4eb6f1e9bef00 100644 --- a/pkg/apis/nodeup/config.go +++ b/pkg/apis/nodeup/config.go @@ -28,8 +28,6 @@ import ( // Config is the configuration for the nodeup binary type Config struct { - // Tags enable/disable chunks of the model - Tags []string `json:",omitempty"` // Assets are locations where we can find files to be installed // TODO: Remove once everything is in containers? Assets map[architectures.Architecture][]string `json:",omitempty"` diff --git a/upup/pkg/fi/cloudup/apply_cluster.go b/upup/pkg/fi/cloudup/apply_cluster.go index 3892905c183e2..0003b2eebe4b9 100644 --- a/upup/pkg/fi/cloudup/apply_cluster.go +++ b/upup/pkg/fi/cloudup/apply_cluster.go @@ -1172,7 +1172,6 @@ type nodeUpConfigBuilder struct { cluster *kops.Cluster etcdManifests map[kops.InstanceGroupRole][]string images map[kops.InstanceGroupRole]map[architectures.Architecture][]*nodeup.Image - nodeUpTags []string protokubeImage map[kops.InstanceGroupRole]*nodeup.Image } @@ -1184,12 +1183,6 @@ func (c *ApplyClusterCmd) newNodeUpConfigBuilder(assetBuilder *assets.AssetBuild return nil, fmt.Errorf("error parsing config base %q: %v", cluster.Spec.ConfigBase, err) } - // TODO: Remove - clusterTags, err := buildCloudupTags(cluster) - if err != nil { - return nil, err - } - channels := []string{ configBase.Join("addons", "bootstrap-channel.yaml").Path(), } @@ -1198,11 +1191,6 @@ func (c *ApplyClusterCmd) newNodeUpConfigBuilder(assetBuilder *assets.AssetBuild channels = append(channels, cluster.Spec.Addons[i].Manifest) } - nodeUpTags, err := buildNodeupTags(cluster, clusterTags) - if err != nil { - return nil, err - } - useGossip := dns.IsGossipHostname(cluster.Spec.MasterInternalName) etcdManifests := map[kops.InstanceGroupRole][]string{} @@ -1307,7 +1295,6 @@ func (c *ApplyClusterCmd) newNodeUpConfigBuilder(assetBuilder *assets.AssetBuild cluster: cluster, etcdManifests: etcdManifests, images: images, - nodeUpTags: nodeUpTags.List(), protokubeImage: protokubeImage, } return &configBuilder, nil @@ -1327,8 +1314,6 @@ func (n *nodeUpConfigBuilder) BuildConfig(ig *kops.InstanceGroup, apiserverAddit } config := nodeup.NewConfig(cluster, ig) - config.Tags = append(config.Tags, n.nodeUpTags...) - config.Assets = make(map[architectures.Architecture][]string) for _, arch := range architectures.GetSupported() { config.Assets[arch] = []string{} diff --git a/upup/pkg/fi/cloudup/tagbuilder.go b/upup/pkg/fi/cloudup/tagbuilder.go index 18408728d41d3..227be76b80b4a 100644 --- a/upup/pkg/fi/cloudup/tagbuilder.go +++ b/upup/pkg/fi/cloudup/tagbuilder.go @@ -65,19 +65,3 @@ func buildCloudupTags(cluster *api.Cluster) (sets.String, error) { return tags, nil } - -func buildNodeupTags(cluster *api.Cluster, clusterTags sets.String) (sets.String, error) { - tags := sets.NewString() - - if clusterTags.Has("_gce") { - tags.Insert("_gce") - } - if clusterTags.Has("_aws") { - tags.Insert("_aws") - } - if clusterTags.Has("_do") { - tags.Insert("_do") - } - - return tags, nil -} diff --git a/upup/pkg/fi/cloudup/tagbuilder_test.go b/upup/pkg/fi/cloudup/tagbuilder_test.go index e5dd3372b7fc8..3614a531f8570 100644 --- a/upup/pkg/fi/cloudup/tagbuilder_test.go +++ b/upup/pkg/fi/cloudup/tagbuilder_test.go @@ -78,15 +78,6 @@ func TestBuildTags_CloudProvider_AWS_Weave(t *testing.T) { if !tags.Has("_aws") { t.Fatal("tag _aws not found") } - - nodeUpTags, err := buildNodeupTags(c, tags) - if err != nil { - t.Fatalf("buildNodeupTags error: %v", err) - } - - if !nodeUpTags.Has("_aws") { - t.Fatal("nodeUpTag _aws not found") - } } func TestBuildTags_CloudProvider_AWS_Flannel(t *testing.T) { @@ -104,15 +95,6 @@ func TestBuildTags_CloudProvider_AWS_Flannel(t *testing.T) { if !tags.Has("_aws") { t.Fatal("tag _aws not found") } - - nodeUpTags, err := buildNodeupTags(c, tags) - if err != nil { - t.Fatalf("buildNodeupTags error: %v", err) - } - - if !nodeUpTags.Has("_aws") { - t.Fatal("nodeUpTag _aws not found") - } } func TestBuildTags_CloudProvider_AWS_Calico(t *testing.T) { @@ -130,15 +112,6 @@ func TestBuildTags_CloudProvider_AWS_Calico(t *testing.T) { if !tags.Has("_aws") { t.Fatal("tag _aws not found") } - - nodeUpTags, err := buildNodeupTags(c, tags) - if err != nil { - t.Fatalf("buildNodeupTags error: %v", err) - } - - if !nodeUpTags.Has("_aws") { - t.Fatal("nodeUpTag _aws not found") - } } func TestBuildTags_CloudProvider_AWS_Canal(t *testing.T) { @@ -156,15 +129,6 @@ func TestBuildTags_CloudProvider_AWS_Canal(t *testing.T) { if !tags.Has("_aws") { t.Fatal("tag _aws not found") } - - nodeUpTags, err := buildNodeupTags(c, tags) - if err != nil { - t.Fatalf("buildNodeupTags error: %v", err) - } - - if !nodeUpTags.Has("_aws") { - t.Fatal("nodeUpTag _aws not found") - } } func TestBuildTags_CloudProvider_AWS(t *testing.T) { @@ -179,15 +143,6 @@ func TestBuildTags_CloudProvider_AWS(t *testing.T) { if !tags.Has("_aws") { t.Fatal("tag _aws not found") } - - nodeUpTags, err := buildNodeupTags(c, tags) - if err != nil { - t.Fatalf("buildNodeupTags error: %v", err) - } - - if !nodeUpTags.Has("_aws") { - t.Fatal("nodeUpTag _aws not found") - } } func TestBuildTags_KubernetesVersions(t *testing.T) { @@ -225,13 +180,4 @@ func TestBuildTags_CloudProvider_AWS_Cilium(t *testing.T) { if !tags.Has("_aws") { t.Fatal("tag _aws not found") } - - nodeUpTags, err := buildNodeupTags(c, tags) - if err != nil { - t.Fatalf("buildNodeupTags error: %v", err) - } - - if !nodeUpTags.Has("_aws") { - t.Fatal("nodeUpTag _aws not found") - } } diff --git a/upup/pkg/fi/nodeup/command.go b/upup/pkg/fi/nodeup/command.go index 2c6403b4975cb..b6ba1db31e31b 100644 --- a/upup/pkg/fi/nodeup/command.go +++ b/upup/pkg/fi/nodeup/command.go @@ -173,11 +173,9 @@ func (c *NodeUpCommand) Run(out io.Writer) error { distroTags := distribution.BuildTags() nodeTags := sets.NewString() - nodeTags.Insert(c.config.Tags...) nodeTags.Insert(archTags...) nodeTags.Insert(distroTags...) - klog.Infof("Config tags: %v", c.config.Tags) klog.Infof("Arch tags: %v", archTags) klog.Infof("Distro tags: %v", distroTags) From cd2941b56c651284cf6b81a24d5666638f756ca2 Mon Sep 17 00:00:00 2001 From: John Gardiner Myers Date: Wed, 29 Jul 2020 16:29:41 -0700 Subject: [PATCH 3/3] update-expected.sh --- ...-1a.masters.bastionuserdata.example.com_user_data | 3 --- ...plate_nodes.bastionuserdata.example.com_user_data | 3 --- .../complex/cloudformation.json.extracted.yaml | 6 ------ ...-us-test-1a.masters.complex.example.com_user_data | 3 --- ...unch_template_nodes.complex.example.com_user_data | 3 --- .../cloudformation.json.extracted.yaml | 6 ------ ...est-1a.masters.existing-iam.example.com_user_data | 3 --- ...est-1b.masters.existing-iam.example.com_user_data | 3 --- ...est-1c.masters.existing-iam.example.com_user_data | 3 --- ...template_nodes.existing-iam.example.com_user_data | 3 --- .../cloudformation.json.extracted.yaml | 6 ------ ...-test-1a.masters.existingsg.example.com_user_data | 3 --- ...-test-1b.masters.existingsg.example.com_user_data | 3 --- ...-test-1c.masters.existingsg.example.com_user_data | 3 --- ...h_template_nodes.existingsg.example.com_user_data | 3 --- .../externallb/cloudformation.json.extracted.yaml | 6 ------ ...-test-1a.masters.externallb.example.com_user_data | 3 --- ...h_template_nodes.externallb.example.com_user_data | 3 --- ...1a.masters.externalpolicies.example.com_user_data | 3 --- ...late_nodes.externalpolicies.example.com_user_data | 3 --- ...aster-us-test-1a.masters.ha.example.com_user_data | 3 --- ...aster-us-test-1b.masters.ha.example.com_user_data | 3 --- ...aster-us-test-1c.masters.ha.example.com_user_data | 3 --- ...ws_launch_template_nodes.ha.example.com_user_data | 3 --- ...est1-a-ha-gce-example-com_metadata_startup-script | 3 --- ...est1-b-ha-gce-example-com_metadata_startup-script | 3 --- ...est1-c-ha-gce-example-com_metadata_startup-script | 3 --- ..._nodes-ha-gce-example-com_metadata_startup-script | 3 --- .../cloudformation.json.extracted.yaml | 12 ------------ ...-1a.masters.launchtemplates.example.com_user_data | 3 --- ...-1b.masters.launchtemplates.example.com_user_data | 3 --- ...-1c.masters.launchtemplates.example.com_user_data | 3 --- ...ation_nodes.launchtemplates.example.com_user_data | 3 --- .../cloudformation.json.extracted.yaml | 6 ------ ...est-1a.masters.minimal-json.example.com_user_data | 2 +- ...template_nodes.minimal-json.example.com_user_data | 2 +- ...est-1a.masters.minimal-tf11.example.com_user_data | 2 +- ...template_nodes.minimal-tf11.example.com_user_data | 2 +- ...-us-test-1a.masters.minimal.example.com_user_data | 3 --- ...unch_template_nodes.minimal.example.com_user_data | 3 --- ...a-minimal-gce-example-com_metadata_startup-script | 3 --- ...s-minimal-gce-example-com_metadata_startup-script | 3 --- .../cloudformation.json.extracted.yaml | 12 ------------ ...t-1a.masters.mixedinstances.example.com_user_data | 3 --- ...t-1b.masters.mixedinstances.example.com_user_data | 3 --- ...t-1c.masters.mixedinstances.example.com_user_data | 3 --- ...mplate_nodes.mixedinstances.example.com_user_data | 3 --- .../cloudformation.json.extracted.yaml | 12 ------------ ...t-1a.masters.mixedinstances.example.com_user_data | 3 --- ...t-1b.masters.mixedinstances.example.com_user_data | 3 --- ...t-1c.masters.mixedinstances.example.com_user_data | 3 --- ...mplate_nodes.mixedinstances.example.com_user_data | 3 --- ...sters.private-shared-subnet.example.com_user_data | 3 --- ...nodes.private-shared-subnet.example.com_user_data | 3 --- .../privatecalico/cloudformation.json.extracted.yaml | 6 ------ ...st-1a.masters.privatecalico.example.com_user_data | 3 --- ...emplate_nodes.privatecalico.example.com_user_data | 3 --- ...est-1a.masters.privatecanal.example.com_user_data | 3 --- ...template_nodes.privatecanal.example.com_user_data | 3 --- .../privatecilium/cloudformation.json.extracted.yaml | 6 ------ ...st-1a.masters.privatecilium.example.com_user_data | 3 --- ...emplate_nodes.privatecilium.example.com_user_data | 3 --- .../cloudformation.json.extracted.yaml | 6 ------ ...st-1a.masters.privatecilium.example.com_user_data | 3 --- ...emplate_nodes.privatecilium.example.com_user_data | 3 --- .../cloudformation.json.extracted.yaml | 6 ------ ...sters.privateciliumadvanced.example.com_user_data | 3 --- ...nodes.privateciliumadvanced.example.com_user_data | 3 --- ...test-1a.masters.privatedns1.example.com_user_data | 3 --- ..._template_nodes.privatedns1.example.com_user_data | 3 --- ...test-1a.masters.privatedns2.example.com_user_data | 3 --- ..._template_nodes.privatedns2.example.com_user_data | 3 --- ...t-1a.masters.privateflannel.example.com_user_data | 3 --- ...mplate_nodes.privateflannel.example.com_user_data | 3 --- ...st-1a.masters.privatekopeio.example.com_user_data | 3 --- ...emplate_nodes.privatekopeio.example.com_user_data | 3 --- ...est-1a.masters.privateweave.example.com_user_data | 3 --- ...template_nodes.privateweave.example.com_user_data | 3 --- ...est-1a.masters.sharedsubnet.example.com_user_data | 3 --- ...template_nodes.sharedsubnet.example.com_user_data | 3 --- ...s-test-1a.masters.sharedvpc.example.com_user_data | 3 --- ...ch_template_nodes.sharedvpc.example.com_user_data | 3 --- ...s-test-1a.masters.unmanaged.example.com_user_data | 3 --- ...ch_template_nodes.unmanaged.example.com_user_data | 3 --- 84 files changed, 4 insertions(+), 298 deletions(-) diff --git a/tests/integration/update_cluster/bastionadditional_user-data/data/aws_launch_template_master-us-test-1a.masters.bastionuserdata.example.com_user_data b/tests/integration/update_cluster/bastionadditional_user-data/data/aws_launch_template_master-us-test-1a.masters.bastionuserdata.example.com_user_data index f079219755e85..6283688f29ab6 100644 --- a/tests/integration/update_cluster/bastionadditional_user-data/data/aws_launch_template_master-us-test-1a.masters.bastionuserdata.example.com_user_data +++ b/tests/integration/update_cluster/bastionadditional_user-data/data/aws_launch_template_master-us-test-1a.masters.bastionuserdata.example.com_user_data @@ -309,9 +309,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/bastionuserdata.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/bastionadditional_user-data/data/aws_launch_template_nodes.bastionuserdata.example.com_user_data b/tests/integration/update_cluster/bastionadditional_user-data/data/aws_launch_template_nodes.bastionuserdata.example.com_user_data index 5579b333984c2..11e03fee87ba6 100644 --- a/tests/integration/update_cluster/bastionadditional_user-data/data/aws_launch_template_nodes.bastionuserdata.example.com_user_data +++ b/tests/integration/update_cluster/bastionadditional_user-data/data/aws_launch_template_nodes.bastionuserdata.example.com_user_data @@ -235,9 +235,6 @@ KubeletConfig: nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/bastionuserdata.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/complex/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/complex/cloudformation.json.extracted.yaml index 98d9a86a71d40..91cc77b660fe5 100644 --- a/tests/integration/update_cluster/complex/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/complex/cloudformation.json.extracted.yaml @@ -324,9 +324,6 @@ Resources.AWSEC2LaunchTemplatemasterustest1amasterscomplexexamplecom.Properties. podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/complex.example.com/addons/bootstrap-channel.yaml etcdManifests: @@ -595,9 +592,6 @@ Resources.AWSEC2LaunchTemplatenodescomplexexamplecom.Properties.LaunchTemplateDa nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/complex.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/complex/data/aws_launch_template_master-us-test-1a.masters.complex.example.com_user_data b/tests/integration/update_cluster/complex/data/aws_launch_template_master-us-test-1a.masters.complex.example.com_user_data index 6f2a9daba599d..5ad191361d3ae 100644 --- a/tests/integration/update_cluster/complex/data/aws_launch_template_master-us-test-1a.masters.complex.example.com_user_data +++ b/tests/integration/update_cluster/complex/data/aws_launch_template_master-us-test-1a.masters.complex.example.com_user_data @@ -323,9 +323,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/complex.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/complex/data/aws_launch_template_nodes.complex.example.com_user_data b/tests/integration/update_cluster/complex/data/aws_launch_template_nodes.complex.example.com_user_data index c308953b33a2d..031aed81c3aec 100644 --- a/tests/integration/update_cluster/complex/data/aws_launch_template_nodes.complex.example.com_user_data +++ b/tests/integration/update_cluster/complex/data/aws_launch_template_nodes.complex.example.com_user_data @@ -237,9 +237,6 @@ KubeletConfig: nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/complex.example.com/addons/bootstrap-channel.yaml 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 44ccbb7f83c7e..5854121d98435 100644 --- a/tests/integration/update_cluster/containerd-cloudformation/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/containerd-cloudformation/cloudformation.json.extracted.yaml @@ -303,9 +303,6 @@ Resources.AWSEC2LaunchTemplatemasterustest1amasterscontainerdexamplecom.Properti nonMasqueradeCIDR: 100.64.0.0/10 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/containerd.example.com/addons/bootstrap-channel.yaml etcdManifests: @@ -547,9 +544,6 @@ Resources.AWSEC2LaunchTemplatenodescontainerdexamplecom.Properties.LaunchTemplat node-role.kubernetes.io/node: "" nonMasqueradeCIDR: 100.64.0.0/10 podManifestPath: /etc/kubernetes/manifests - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/containerd.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/existing_iam/data/aws_launch_template_master-us-test-1a.masters.existing-iam.example.com_user_data b/tests/integration/update_cluster/existing_iam/data/aws_launch_template_master-us-test-1a.masters.existing-iam.example.com_user_data index 47a30b5c82243..ed47b81b2f37a 100644 --- a/tests/integration/update_cluster/existing_iam/data/aws_launch_template_master-us-test-1a.masters.existing-iam.example.com_user_data +++ b/tests/integration/update_cluster/existing_iam/data/aws_launch_template_master-us-test-1a.masters.existing-iam.example.com_user_data @@ -312,9 +312,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://tests/existing-iam.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/existing_iam/data/aws_launch_template_master-us-test-1b.masters.existing-iam.example.com_user_data b/tests/integration/update_cluster/existing_iam/data/aws_launch_template_master-us-test-1b.masters.existing-iam.example.com_user_data index 6728a7cb4f276..adce54372ba42 100644 --- a/tests/integration/update_cluster/existing_iam/data/aws_launch_template_master-us-test-1b.masters.existing-iam.example.com_user_data +++ b/tests/integration/update_cluster/existing_iam/data/aws_launch_template_master-us-test-1b.masters.existing-iam.example.com_user_data @@ -312,9 +312,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://tests/existing-iam.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/existing_iam/data/aws_launch_template_master-us-test-1c.masters.existing-iam.example.com_user_data b/tests/integration/update_cluster/existing_iam/data/aws_launch_template_master-us-test-1c.masters.existing-iam.example.com_user_data index 9e3a1c546ac62..fdbd3d4ebd5f1 100644 --- a/tests/integration/update_cluster/existing_iam/data/aws_launch_template_master-us-test-1c.masters.existing-iam.example.com_user_data +++ b/tests/integration/update_cluster/existing_iam/data/aws_launch_template_master-us-test-1c.masters.existing-iam.example.com_user_data @@ -312,9 +312,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://tests/existing-iam.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/existing_iam/data/aws_launch_template_nodes.existing-iam.example.com_user_data b/tests/integration/update_cluster/existing_iam/data/aws_launch_template_nodes.existing-iam.example.com_user_data index 4cd03740ac0e8..b1e79825a7dbb 100644 --- a/tests/integration/update_cluster/existing_iam/data/aws_launch_template_nodes.existing-iam.example.com_user_data +++ b/tests/integration/update_cluster/existing_iam/data/aws_launch_template_nodes.existing-iam.example.com_user_data @@ -228,9 +228,6 @@ KubeletConfig: nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests -Tags: -- _automatic_upgrades -- _aws channels: - memfs://tests/existing-iam.example.com/addons/bootstrap-channel.yaml 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 3963bdb5d6d5e..b7a8d99afab6a 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 @@ -313,9 +313,6 @@ Resources.AWSEC2LaunchTemplatemasterustest1amastersminimalexamplecom.Properties. podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/minimal.example.com/addons/bootstrap-channel.yaml etcdManifests: @@ -564,9 +561,6 @@ Resources.AWSEC2LaunchTemplatenodesminimalexamplecom.Properties.LaunchTemplateDa nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/minimal.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/existing_sg/data/aws_launch_template_master-us-test-1a.masters.existingsg.example.com_user_data b/tests/integration/update_cluster/existing_sg/data/aws_launch_template_master-us-test-1a.masters.existingsg.example.com_user_data index 2d0d300de9e8f..9ab270be75549 100644 --- a/tests/integration/update_cluster/existing_sg/data/aws_launch_template_master-us-test-1a.masters.existingsg.example.com_user_data +++ b/tests/integration/update_cluster/existing_sg/data/aws_launch_template_master-us-test-1a.masters.existingsg.example.com_user_data @@ -312,9 +312,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/existingsg.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/existing_sg/data/aws_launch_template_master-us-test-1b.masters.existingsg.example.com_user_data b/tests/integration/update_cluster/existing_sg/data/aws_launch_template_master-us-test-1b.masters.existingsg.example.com_user_data index 7b7f5b037586e..ab6337be6044f 100644 --- a/tests/integration/update_cluster/existing_sg/data/aws_launch_template_master-us-test-1b.masters.existingsg.example.com_user_data +++ b/tests/integration/update_cluster/existing_sg/data/aws_launch_template_master-us-test-1b.masters.existingsg.example.com_user_data @@ -312,9 +312,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/existingsg.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/existing_sg/data/aws_launch_template_master-us-test-1c.masters.existingsg.example.com_user_data b/tests/integration/update_cluster/existing_sg/data/aws_launch_template_master-us-test-1c.masters.existingsg.example.com_user_data index 4897e14ef3aca..0a3812310c2d7 100644 --- a/tests/integration/update_cluster/existing_sg/data/aws_launch_template_master-us-test-1c.masters.existingsg.example.com_user_data +++ b/tests/integration/update_cluster/existing_sg/data/aws_launch_template_master-us-test-1c.masters.existingsg.example.com_user_data @@ -312,9 +312,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/existingsg.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/existing_sg/data/aws_launch_template_nodes.existingsg.example.com_user_data b/tests/integration/update_cluster/existing_sg/data/aws_launch_template_nodes.existingsg.example.com_user_data index 59df02f95245a..3e3e03ffa6164 100644 --- a/tests/integration/update_cluster/existing_sg/data/aws_launch_template_nodes.existingsg.example.com_user_data +++ b/tests/integration/update_cluster/existing_sg/data/aws_launch_template_nodes.existingsg.example.com_user_data @@ -228,9 +228,6 @@ KubeletConfig: nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/existingsg.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/externallb/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/externallb/cloudformation.json.extracted.yaml index 280e8e3812547..a1039134395f1 100644 --- a/tests/integration/update_cluster/externallb/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/externallb/cloudformation.json.extracted.yaml @@ -313,9 +313,6 @@ Resources.AWSEC2LaunchTemplatemasterustest1amastersexternallbexamplecom.Properti podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/externallb.example.com/addons/bootstrap-channel.yaml etcdManifests: @@ -564,9 +561,6 @@ Resources.AWSEC2LaunchTemplatenodesexternallbexamplecom.Properties.LaunchTemplat nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/externallb.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/externallb/data/aws_launch_template_master-us-test-1a.masters.externallb.example.com_user_data b/tests/integration/update_cluster/externallb/data/aws_launch_template_master-us-test-1a.masters.externallb.example.com_user_data index 2e5614461e91e..0196bc41c16c0 100644 --- a/tests/integration/update_cluster/externallb/data/aws_launch_template_master-us-test-1a.masters.externallb.example.com_user_data +++ b/tests/integration/update_cluster/externallb/data/aws_launch_template_master-us-test-1a.masters.externallb.example.com_user_data @@ -312,9 +312,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/externallb.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/externallb/data/aws_launch_template_nodes.externallb.example.com_user_data b/tests/integration/update_cluster/externallb/data/aws_launch_template_nodes.externallb.example.com_user_data index 173ebb7eb8249..c2c61fbf87729 100644 --- a/tests/integration/update_cluster/externallb/data/aws_launch_template_nodes.externallb.example.com_user_data +++ b/tests/integration/update_cluster/externallb/data/aws_launch_template_nodes.externallb.example.com_user_data @@ -228,9 +228,6 @@ KubeletConfig: nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/externallb.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/externalpolicies/data/aws_launch_template_master-us-test-1a.masters.externalpolicies.example.com_user_data b/tests/integration/update_cluster/externalpolicies/data/aws_launch_template_master-us-test-1a.masters.externalpolicies.example.com_user_data index e188f33a5381b..a0ae9a5e9d1e2 100644 --- a/tests/integration/update_cluster/externalpolicies/data/aws_launch_template_master-us-test-1a.masters.externalpolicies.example.com_user_data +++ b/tests/integration/update_cluster/externalpolicies/data/aws_launch_template_master-us-test-1a.masters.externalpolicies.example.com_user_data @@ -314,9 +314,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/externalpolicies.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/externalpolicies/data/aws_launch_template_nodes.externalpolicies.example.com_user_data b/tests/integration/update_cluster/externalpolicies/data/aws_launch_template_nodes.externalpolicies.example.com_user_data index ac200370787d3..95c5735b664bf 100644 --- a/tests/integration/update_cluster/externalpolicies/data/aws_launch_template_nodes.externalpolicies.example.com_user_data +++ b/tests/integration/update_cluster/externalpolicies/data/aws_launch_template_nodes.externalpolicies.example.com_user_data @@ -228,9 +228,6 @@ KubeletConfig: nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/externalpolicies.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/ha/data/aws_launch_template_master-us-test-1a.masters.ha.example.com_user_data b/tests/integration/update_cluster/ha/data/aws_launch_template_master-us-test-1a.masters.ha.example.com_user_data index 31bd5634c232c..61bf93e7ad84f 100644 --- a/tests/integration/update_cluster/ha/data/aws_launch_template_master-us-test-1a.masters.ha.example.com_user_data +++ b/tests/integration/update_cluster/ha/data/aws_launch_template_master-us-test-1a.masters.ha.example.com_user_data @@ -312,9 +312,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://tests/ha.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/ha/data/aws_launch_template_master-us-test-1b.masters.ha.example.com_user_data b/tests/integration/update_cluster/ha/data/aws_launch_template_master-us-test-1b.masters.ha.example.com_user_data index 2176d79e2a894..397c7a4aeff29 100644 --- a/tests/integration/update_cluster/ha/data/aws_launch_template_master-us-test-1b.masters.ha.example.com_user_data +++ b/tests/integration/update_cluster/ha/data/aws_launch_template_master-us-test-1b.masters.ha.example.com_user_data @@ -312,9 +312,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://tests/ha.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/ha/data/aws_launch_template_master-us-test-1c.masters.ha.example.com_user_data b/tests/integration/update_cluster/ha/data/aws_launch_template_master-us-test-1c.masters.ha.example.com_user_data index 0d98fe223d842..02460ca172038 100644 --- a/tests/integration/update_cluster/ha/data/aws_launch_template_master-us-test-1c.masters.ha.example.com_user_data +++ b/tests/integration/update_cluster/ha/data/aws_launch_template_master-us-test-1c.masters.ha.example.com_user_data @@ -312,9 +312,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://tests/ha.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/ha/data/aws_launch_template_nodes.ha.example.com_user_data b/tests/integration/update_cluster/ha/data/aws_launch_template_nodes.ha.example.com_user_data index 8cac063ff81b6..aaf2ce040958e 100644 --- a/tests/integration/update_cluster/ha/data/aws_launch_template_nodes.ha.example.com_user_data +++ b/tests/integration/update_cluster/ha/data/aws_launch_template_nodes.ha.example.com_user_data @@ -228,9 +228,6 @@ KubeletConfig: nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests -Tags: -- _automatic_upgrades -- _aws channels: - memfs://tests/ha.example.com/addons/bootstrap-channel.yaml 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 8f78e3abfba9b..34ea2e6da4065 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 @@ -318,9 +318,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _gce channels: - memfs://tests/ha-gce.example.com/addons/bootstrap-channel.yaml etcdManifests: 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 a72a081bccfbb..2ab0d0dd3138f 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 @@ -318,9 +318,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _gce channels: - memfs://tests/ha-gce.example.com/addons/bootstrap-channel.yaml etcdManifests: 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 4842f20f2ba80..35fbf8944ece6 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 @@ -318,9 +318,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _gce channels: - memfs://tests/ha-gce.example.com/addons/bootstrap-channel.yaml etcdManifests: 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 35216e99ef302..159b322d80ca9 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 @@ -233,9 +233,6 @@ KubeletConfig: nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests -Tags: -- _automatic_upgrades -- _gce channels: - memfs://tests/ha-gce.example.com/addons/bootstrap-channel.yaml 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 067e88b9986ad..d81c075fc7f07 100644 --- a/tests/integration/update_cluster/launch_templates/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/launch_templates/cloudformation.json.extracted.yaml @@ -316,9 +316,6 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1amasterslaunchtemplatese podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/launchtemplates.example.com/addons/bootstrap-channel.yaml etcdManifests: @@ -654,9 +651,6 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1bmasterslaunchtemplatese podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/launchtemplates.example.com/addons/bootstrap-channel.yaml etcdManifests: @@ -992,9 +986,6 @@ Resources.AWSAutoScalingLaunchConfigurationmasterustest1cmasterslaunchtemplatese podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/launchtemplates.example.com/addons/bootstrap-channel.yaml etcdManifests: @@ -1245,9 +1236,6 @@ Resources.AWSAutoScalingLaunchConfigurationnodeslaunchtemplatesexamplecom.Proper nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/launchtemplates.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/launch_templates/data/aws_launch_configuration_master-us-test-1a.masters.launchtemplates.example.com_user_data b/tests/integration/update_cluster/launch_templates/data/aws_launch_configuration_master-us-test-1a.masters.launchtemplates.example.com_user_data index cdbfde0926b30..ce0c146769764 100644 --- a/tests/integration/update_cluster/launch_templates/data/aws_launch_configuration_master-us-test-1a.masters.launchtemplates.example.com_user_data +++ b/tests/integration/update_cluster/launch_templates/data/aws_launch_configuration_master-us-test-1a.masters.launchtemplates.example.com_user_data @@ -315,9 +315,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/launchtemplates.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/launch_templates/data/aws_launch_configuration_master-us-test-1b.masters.launchtemplates.example.com_user_data b/tests/integration/update_cluster/launch_templates/data/aws_launch_configuration_master-us-test-1b.masters.launchtemplates.example.com_user_data index e67371157d47c..a2fe42abfadfc 100644 --- a/tests/integration/update_cluster/launch_templates/data/aws_launch_configuration_master-us-test-1b.masters.launchtemplates.example.com_user_data +++ b/tests/integration/update_cluster/launch_templates/data/aws_launch_configuration_master-us-test-1b.masters.launchtemplates.example.com_user_data @@ -315,9 +315,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/launchtemplates.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/launch_templates/data/aws_launch_configuration_master-us-test-1c.masters.launchtemplates.example.com_user_data b/tests/integration/update_cluster/launch_templates/data/aws_launch_configuration_master-us-test-1c.masters.launchtemplates.example.com_user_data index e3b4ab9c44e10..a8f6aaa98d06f 100644 --- a/tests/integration/update_cluster/launch_templates/data/aws_launch_configuration_master-us-test-1c.masters.launchtemplates.example.com_user_data +++ b/tests/integration/update_cluster/launch_templates/data/aws_launch_configuration_master-us-test-1c.masters.launchtemplates.example.com_user_data @@ -315,9 +315,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/launchtemplates.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/launch_templates/data/aws_launch_configuration_nodes.launchtemplates.example.com_user_data b/tests/integration/update_cluster/launch_templates/data/aws_launch_configuration_nodes.launchtemplates.example.com_user_data index c4d69c9642446..65fb5af45ee5b 100644 --- a/tests/integration/update_cluster/launch_templates/data/aws_launch_configuration_nodes.launchtemplates.example.com_user_data +++ b/tests/integration/update_cluster/launch_templates/data/aws_launch_configuration_nodes.launchtemplates.example.com_user_data @@ -230,9 +230,6 @@ KubeletConfig: nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/launchtemplates.example.com/addons/bootstrap-channel.yaml 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 3963bdb5d6d5e..b7a8d99afab6a 100644 --- a/tests/integration/update_cluster/minimal-cloudformation/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/minimal-cloudformation/cloudformation.json.extracted.yaml @@ -313,9 +313,6 @@ Resources.AWSEC2LaunchTemplatemasterustest1amastersminimalexamplecom.Properties. podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/minimal.example.com/addons/bootstrap-channel.yaml etcdManifests: @@ -564,9 +561,6 @@ Resources.AWSEC2LaunchTemplatenodesminimalexamplecom.Properties.LaunchTemplateDa nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/minimal.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/minimal-json/data/aws_launch_template_master-us-test-1a.masters.minimal-json.example.com_user_data b/tests/integration/update_cluster/minimal-json/data/aws_launch_template_master-us-test-1a.masters.minimal-json.example.com_user_data index 31c676f0895f5..cd2a556ca5c9e 100644 --- a/tests/integration/update_cluster/minimal-json/data/aws_launch_template_master-us-test-1a.masters.minimal-json.example.com_user_data +++ b/tests/integration/update_cluster/minimal-json/data/aws_launch_template_master-us-test-1a.masters.minimal-json.example.com_user_data @@ -1 +1 @@ -IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkxfQU1ENjQ9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xOS4wLWFscGhhLjEvbGludXgvYW1kNjQvbm9kZXVwLGh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzL2tvcHMvcmVsZWFzZXMvZG93bmxvYWQvdjEuMTkuMC1hbHBoYS4xL2xpbnV4LWFtZDY0LW5vZGV1cCxodHRwczovL2t1YmV1cHYyLnMzLmFtYXpvbmF3cy5jb20va29wcy8xLjE5LjAtYWxwaGEuMS9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0hfQU1ENjQ9ZGVmZjExNzlmODBiZDY1MjMyYWYzMGMyNTJhMmI1ZjM5MGIxNjBiYmZlOTk5MDYzN2MwZWM4OGQ3NmNkZDY0NwpOT0RFVVBfVVJMX0FSTTY0PWh0dHBzOi8vYXJ0aWZhY3RzLms4cy5pby9iaW5hcmllcy9rb3BzLzEuMTkuMC1hbHBoYS4xL2xpbnV4L2FybTY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE5LjAtYWxwaGEuMS9saW51eC1hcm02NC1ub2RldXAsaHR0cHM6Ly9rdWJldXB2Mi5zMy5hbWF6b25hd3MuY29tL2tvcHMvMS4xOS4wLWFscGhhLjEvbGludXgvYXJtNjQvbm9kZXVwCk5PREVVUF9IQVNIX0FSTTY0PTMwMGJmYWRlMDI0ZWRlNGZlODk5NmM5ZWU2MzkzZTk3NDYzYmVhNGVhZmZkMDg3NjMxMDcxMGRjZGViYmY4ZDMKCmV4cG9ydCBBV1NfUkVHSU9OPXVzLXRlc3QtMQoKCgoKZnVuY3Rpb24gZW5zdXJlLWluc3RhbGwtZGlyKCkgewogIElOU1RBTExfRElSPSIvb3B0L2tvcHMiCiAgIyBPbiBDb250YWluZXJPUywgd2UgaW5zdGFsbCB1bmRlciAvdmFyL2xpYi90b29sYm94OyAvb3B0IGlzIHJvIGFuZCBub2V4ZWMKICBpZiBbWyAtZCAvdmFyL2xpYi90b29sYm94IF1dOyB0aGVuCiAgICBJTlNUQUxMX0RJUj0iL3Zhci9saWIvdG9vbGJveC9rb3BzIgogIGZpCiAgbWtkaXIgLXAgJHtJTlNUQUxMX0RJUn0vYmluCiAgbWtkaXIgLXAgJHtJTlNUQUxMX0RJUn0vY29uZgogIGNkICR7SU5TVEFMTF9ESVJ9Cn0KCiMgUmV0cnkgYSBkb3dubG9hZCB1bnRpbCB3ZSBnZXQgaXQuIGFyZ3M6IG5hbWUsIHNoYSwgdXJsMSwgdXJsMi4uLgpkb3dubG9hZC1vci1idXN0KCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGhhc2g9IiQyIgogIHNoaWZ0IDIKCiAgdXJscz0oICQqICkKICB3aGlsZSB0cnVlOyBkbwogICAgZm9yIHVybCBpbiAiJHt1cmxzW0BdfSI7IGRvCiAgICAgIGNvbW1hbmRzPSgKICAgICAgICAiY3VybCAtZiAtLWlwdjQgLS1jb21wcmVzc2VkIC1MbyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQgMjAgLS1yZXRyeSA2IC0tcmV0cnktZGVsYXkgMTAiCiAgICAgICAgIndnZXQgLS1pbmV0NC1vbmx5IC0tY29tcHJlc3Npb249YXV0byAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgICAiY3VybCAtZiAtLWlwdjQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLU8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0PTIwIC0tdHJpZXM9NiAtLXdhaXQ9MTAiCiAgICAgICkKICAgICAgZm9yIGNtZCBpbiAiJHtjb21tYW5kc1tAXX0iOyBkbwogICAgICAgIGVjaG8gIkF0dGVtcHRpbmcgZG93bmxvYWQgd2l0aDogJHtjbWR9IHt1cmx9IgogICAgICAgIGlmICEgKCR7Y21kfSAiJHt1cmx9Iik7IHRoZW4KICAgICAgICAgIGVjaG8gIj09IERvd25sb2FkIGZhaWxlZCB3aXRoICR7Y21kfSA9PSIKICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgZmkKICAgICAgICBpZiBbWyAtbiAiJHtoYXNofSIgXV0gJiYgISB2YWxpZGF0ZS1oYXNoICIke2ZpbGV9IiAiJHtoYXNofSI7IHRoZW4KICAgICAgICAgIGVjaG8gIj09IEhhc2ggdmFsaWRhdGlvbiBvZiAke3VybH0gZmFpbGVkLiBSZXRyeWluZy4gPT0iCiAgICAgICAgICBybSAtZiAiJHtmaWxlfSIKICAgICAgICBlbHNlCiAgICAgICAgICBpZiBbWyAtbiAiJHtoYXNofSIgXV07IHRoZW4KICAgICAgICAgICAgZWNobyAiPT0gRG93bmxvYWRlZCAke3VybH0gKFNIQTEgPSAke2hhc2h9KSA9PSIKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgZWNobyAiPT0gRG93bmxvYWRlZCAke3VybH0gPT0iCiAgICAgICAgICBmaQogICAgICAgICAgcmV0dXJuCiAgICAgICAgZmkKICAgICAgZG9uZQogICAgZG9uZQoKICAgIGVjaG8gIkFsbCBkb3dubG9hZHMgZmFpbGVkOyBzbGVlcGluZyBiZWZvcmUgcmV0cnlpbmciCiAgICBzbGVlcCA2MAogIGRvbmUKfQoKdmFsaWRhdGUtaGFzaCgpIHsKICBsb2NhbCAtciBmaWxlPSIkMSIKICBsb2NhbCAtciBleHBlY3RlZD0iJDIiCiAgbG9jYWwgYWN0dWFsCgogIGFjdHVhbD0kKHNoYTI1NnN1bSAke2ZpbGV9IHwgYXdrICd7IHByaW50ICQxIH0nKSB8fCB0cnVlCiAgaWYgW1sgIiR7YWN0dWFsfSIgIT0gIiR7ZXhwZWN0ZWR9IiBdXTsgdGhlbgogICAgZWNobyAiPT0gJHtmaWxlfSBjb3JydXB0ZWQsIGhhc2ggJHthY3R1YWx9IGRvZXNuJ3QgbWF0Y2ggZXhwZWN0ZWQgJHtleHBlY3RlZH0gPT0iCiAgICByZXR1cm4gMQogIGZpCn0KCmZ1bmN0aW9uIHNwbGl0LWNvbW1hcygpIHsKICBlY2hvICQxIHwgdHIgIiwiICJcbiIKfQoKZnVuY3Rpb24gdHJ5LWRvd25sb2FkLXJlbGVhc2UoKSB7CiAgbG9jYWwgLXIgbm9kZXVwX3VybHM9KCAkKHNwbGl0LWNvbW1hcyAiJHtOT0RFVVBfVVJMfSIpICkKICBpZiBbWyAtbiAiJHtOT0RFVVBfSEFTSDotfSIgXV07IHRoZW4KICAgIGxvY2FsIC1yIG5vZGV1cF9oYXNoPSIke05PREVVUF9IQVNIfSIKICBlbHNlCiAgIyBUT0RPOiBSZW1vdmU/CiAgICBlY2hvICJEb3dubG9hZGluZyBzaGEyNTYgKG5vdCBmb3VuZCBpbiBlbnYpIgogICAgZG93bmxvYWQtb3ItYnVzdCBub2RldXAuc2hhMjU2ICIiICIke25vZGV1cF91cmxzW0BdLyUvLnNoYTI1Nn0iCiAgICBsb2NhbCAtciBub2RldXBfaGFzaD0kKGNhdCBub2RldXAuc2hhMjU2KQogIGZpCgogIGVjaG8gIkRvd25sb2FkaW5nIG5vZGV1cCAoJHtub2RldXBfdXJsc1tAXX0pIgogIGRvd25sb2FkLW9yLWJ1c3Qgbm9kZXVwICIke25vZGV1cF9oYXNofSIgIiR7bm9kZXVwX3VybHNbQF19IgoKICBjaG1vZCAreCBub2RldXAKfQoKZnVuY3Rpb24gZG93bmxvYWQtcmVsZWFzZSgpIHsKICBjYXNlICIkKHVuYW1lIC1tKSIgaW4KICB4ODZfNjQqfGk/ODZfNjQqfGFtZDY0KikKICAgIE5PREVVUF9VUkw9IiR7Tk9ERVVQX1VSTF9BTUQ2NH0iCiAgICBOT0RFVVBfSEFTSD0iJHtOT0RFVVBfSEFTSF9BTUQ2NH0iCiAgICA7OwogIGFhcmNoNjQqfGFybTY0KikKICAgIE5PREVVUF9VUkw9IiR7Tk9ERVVQX1VSTF9BUk02NH0iCiAgICBOT0RFVVBfSEFTSD0iJHtOT0RFVVBfSEFTSF9BUk02NH0iCiAgICA7OwogICopCiAgICBlY2hvICJVbnN1cHBvcnRlZCBob3N0IGFyY2g6ICQodW5hbWUgLW0pIiA+JjIKICAgIGV4aXQgMQogICAgOzsKICBlc2FjCgogICMgSW4gY2FzZSBvZiBmYWlsdXJlIGNoZWNraW5nIGludGVncml0eSBvZiByZWxlYXNlLCByZXRyeS4KICBjZCAke0lOU1RBTExfRElSfS9iaW4KICB1bnRpbCB0cnktZG93bmxvYWQtcmVsZWFzZTsgZG8KICAgIHNsZWVwIDE1CiAgICBlY2hvICJDb3VsZG4ndCBkb3dubG9hZCByZWxlYXNlLiBSZXRyeWluZy4uLiIKICBkb25lCgogIGVjaG8gIlJ1bm5pbmcgbm9kZXVwIgogICMgV2UgY2FuJ3QgcnVuIGluIHRoZSBmb3JlZ3JvdW5kIGJlY2F1c2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci9kb2NrZXIvaXNzdWVzLzIzNzkzCiAgKCBjZCAke0lOU1RBTExfRElSfS9iaW47IC4vbm9kZXVwIC0taW5zdGFsbC1zeXN0ZW1kLXVuaXQgLS1jb25mPSR7SU5TVEFMTF9ESVJ9L2NvbmYva3ViZV9lbnYueWFtbCAtLXY9OCAgKQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi9iaW4vc3lzdGVtZC1tYWNoaW5lLWlkLXNldHVwIHx8IGVjaG8gImZhaWxlZCB0byBzZXQgdXAgZW5zdXJlIG1hY2hpbmUtaWQgY29uZmlndXJlZCIKCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBzdGFydGluZyA9PSIKZW5zdXJlLWluc3RhbGwtZGlyCgpjYXQgPiBjb25mL2NsdXN0ZXJfc3BlYy55YW1sIDw8ICdfX0VPRl9DTFVTVEVSX1NQRUMnCmNsb3VkQ29uZmlnOiBudWxsCmNvbnRhaW5lclJ1bnRpbWU6IGRvY2tlcgpjb250YWluZXJkOgogIHNraXBJbnN0YWxsOiB0cnVlCmRvY2tlcjoKICBpcE1hc3E6IGZhbHNlCiAgaXBUYWJsZXM6IGZhbHNlCiAgbG9nRHJpdmVyOiBqc29uLWZpbGUKICBsb2dMZXZlbDogaW5mbwogIGxvZ09wdDoKICAtIG1heC1zaXplPTEwbQogIC0gbWF4LWZpbGU9NQogIHN0b3JhZ2U6IG92ZXJsYXkyLG92ZXJsYXksYXVmcwogIHZlcnNpb246IDE4LjA2LjMKZW5jcnlwdGlvbkNvbmZpZzogbnVsbApldGNkQ2x1c3RlcnM6CiAgZXZlbnRzOgogICAgdmVyc2lvbjogMy4zLjEwCiAgbWFpbjoKICAgIHZlcnNpb246IDMuMy4xMAprdWJlQVBJU2VydmVyOgogIGFsbG93UHJpdmlsZWdlZDogdHJ1ZQogIGFub255bW91c0F1dGg6IGZhbHNlCiAgYXBpU2VydmVyQ291bnQ6IDEKICBhdXRob3JpemF0aW9uTW9kZTogQWx3YXlzQWxsb3cKICBiaW5kQWRkcmVzczogMC4wLjAuMAogIGNsb3VkUHJvdmlkZXI6IGF3cwogIGVuYWJsZUFkbWlzc2lvblBsdWdpbnM6CiAgLSBOYW1lc3BhY2VMaWZlY3ljbGUKICAtIExpbWl0UmFuZ2VyCiAgLSBTZXJ2aWNlQWNjb3VudAogIC0gUGVyc2lzdGVudFZvbHVtZUxhYmVsCiAgLSBEZWZhdWx0U3RvcmFnZUNsYXNzCiAgLSBEZWZhdWx0VG9sZXJhdGlvblNlY29uZHMKICAtIE11dGF0aW5nQWRtaXNzaW9uV2ViaG9vawogIC0gVmFsaWRhdGluZ0FkbWlzc2lvbldlYmhvb2sKICAtIE5vZGVSZXN0cmljdGlvbgogIC0gUmVzb3VyY2VRdW90YQogIGV0Y2RTZXJ2ZXJzOgogIC0gaHR0cDovLzEyNy4wLjAuMTo0MDAxCiAgZXRjZFNlcnZlcnNPdmVycmlkZXM6CiAgLSAvZXZlbnRzI2h0dHA6Ly8xMjcuMC4wLjE6NDAwMgogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtYXBpc2VydmVyOnYxLjE0LjAKICBpbnNlY3VyZUJpbmRBZGRyZXNzOiAxMjcuMC4wLjEKICBpbnNlY3VyZVBvcnQ6IDgwODAKICBrdWJlbGV0UHJlZmVycmVkQWRkcmVzc1R5cGVzOgogIC0gSW50ZXJuYWxJUAogIC0gSG9zdG5hbWUKICAtIEV4dGVybmFsSVAKICBsb2dMZXZlbDogMgogIHJlcXVlc3RoZWFkZXJBbGxvd2VkTmFtZXM6CiAgLSBhZ2dyZWdhdG9yCiAgcmVxdWVzdGhlYWRlckV4dHJhSGVhZGVyUHJlZml4ZXM6CiAgLSBYLVJlbW90ZS1FeHRyYS0KICByZXF1ZXN0aGVhZGVyR3JvdXBIZWFkZXJzOgogIC0gWC1SZW1vdGUtR3JvdXAKICByZXF1ZXN0aGVhZGVyVXNlcm5hbWVIZWFkZXJzOgogIC0gWC1SZW1vdGUtVXNlcgogIHNlY3VyZVBvcnQ6IDQ0MwogIHNlcnZpY2VDbHVzdGVySVBSYW5nZTogMTAwLjY0LjAuMC8xMwogIHN0b3JhZ2VCYWNrZW5kOiBldGNkMwprdWJlQ29udHJvbGxlck1hbmFnZXI6CiAgYWxsb2NhdGVOb2RlQ0lEUnM6IHRydWUKICBhdHRhY2hEZXRhY2hSZWNvbmNpbGVTeW5jUGVyaW9kOiAxbTBzCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckNJRFI6IDEwMC45Ni4wLjAvMTEKICBjbHVzdGVyTmFtZTogbWluaW1hbC1qc29uLmV4YW1wbGUuY29tCiAgY29uZmlndXJlQ2xvdWRSb3V0ZXM6IHRydWUKICBpbWFnZTogazhzLmdjci5pby9rdWJlLWNvbnRyb2xsZXItbWFuYWdlcjp2MS4xNC4wCiAgbGVhZGVyRWxlY3Rpb246CiAgICBsZWFkZXJFbGVjdDogdHJ1ZQogIGxvZ0xldmVsOiAyCiAgdXNlU2VydmljZUFjY291bnRDcmVkZW50aWFsczogdHJ1ZQprdWJlUHJveHk6CiAgY2x1c3RlckNJRFI6IDEwMC45Ni4wLjAvMTEKICBjcHVSZXF1ZXN0OiAxMDBtCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAgaW1hZ2U6IGs4cy5nY3IuaW8va3ViZS1wcm94eTp2MS4xNC4wCiAgbG9nTGV2ZWw6IDIKa3ViZVNjaGVkdWxlcjoKICBpbWFnZTogazhzLmdjci5pby9rdWJlLXNjaGVkdWxlcjp2MS4xNC4wCiAgbGVhZGVyRWxlY3Rpb246CiAgICBsZWFkZXJFbGVjdDogdHJ1ZQogIGxvZ0xldmVsOiAyCmt1YmVsZXQ6CiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9uTWFzcXVlcmFkZUNJRFI6IDEwMC42NC4wLjAvMTAKICBwb2RJbmZyYUNvbnRhaW5lckltYWdlOiBrOHMuZ2NyLmlvL3BhdXNlOjMuMgogIHBvZE1hbmlmZXN0UGF0aDogL2V0Yy9rdWJlcm5ldGVzL21hbmlmZXN0cwptYXN0ZXJLdWJlbGV0OgogIGFub255bW91c0F1dGg6IGZhbHNlCiAgY2dyb3VwUm9vdDogLwogIGNsb3VkUHJvdmlkZXI6IGF3cwogIGNsdXN0ZXJETlM6IDEwMC42NC4wLjEwCiAgY2x1c3RlckRvbWFpbjogY2x1c3Rlci5sb2NhbAogIGVuYWJsZURlYnVnZ2luZ0hhbmRsZXJzOiB0cnVlCiAgZXZpY3Rpb25IYXJkOiBtZW1vcnkuYXZhaWxhYmxlPDEwME1pLG5vZGVmcy5hdmFpbGFibGU8MTAlLG5vZGVmcy5pbm9kZXNGcmVlPDUlLGltYWdlZnMuYXZhaWxhYmxlPDEwJSxpbWFnZWZzLmlub2Rlc0ZyZWU8NSUKICBmZWF0dXJlR2F0ZXM6CiAgICBFeHBlcmltZW50YWxDcml0aWNhbFBvZEFubm90YXRpb246ICJ0cnVlIgogIGhvc3RuYW1lT3ZlcnJpZGU6ICdAYXdzJwogIGt1YmVjb25maWdQYXRoOiAvdmFyL2xpYi9rdWJlbGV0L2t1YmVjb25maWcKICBsb2dMZXZlbDogMgogIG5ldHdvcmtQbHVnaW5NVFU6IDkwMDEKICBuZXR3b3JrUGx1Z2luTmFtZToga3ViZW5ldAogIG5vbk1hc3F1ZXJhZGVDSURSOiAxMDAuNjQuMC4wLzEwCiAgcG9kSW5mcmFDb250YWluZXJJbWFnZTogazhzLmdjci5pby9wYXVzZTozLjIKICBwb2RNYW5pZmVzdFBhdGg6IC9ldGMva3ViZXJuZXRlcy9tYW5pZmVzdHMKICByZWdpc3RlclNjaGVkdWxhYmxlOiBmYWxzZQoKX19FT0ZfQ0xVU1RFUl9TUEVDCgpjYXQgPiBjb25mL2lnX3NwZWMueWFtbCA8PCAnX19FT0ZfSUdfU1BFQycKe30KCl9fRU9GX0lHX1NQRUMKCmNhdCA+IGNvbmYva3ViZV9lbnYueWFtbCA8PCAnX19FT0ZfS1VCRV9FTlYnCkFzc2V0czoKICBhbWQ2NDoKICAtIGMzYjczNmZkMGYwMDM3NjVjMTJkOTlmMmM5OTVhODM2OWU2MjQxZjRAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjE0LjAvYmluL2xpbnV4L2FtZDY0L2t1YmVsZXQKICAtIDdlM2EzZWE2NjMxNTNmOTAwY2JkNTI5MDBhMzljOTFmYTlmMzM0YmVAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjE0LjAvYmluL2xpbnV4L2FtZDY0L2t1YmVjdGwKICAtIDNjYTE1YzBhMThlZTgzMDUyMGNmM2E5NTQwOGJlODI2Y2JkMjU1YTE1MzVhMzhlMGJlOTYwOGIyNWFkOGJmNjRAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9uZXR3b3JrLXBsdWdpbnMvY25pLXBsdWdpbnMtYW1kNjQtdjAuNy41LnRnegogIGFybTY0OgogIC0gZGYzOGUwNDU3NjAyNjM5MzA1NWNjYzc3YzBkY2U3MzYxMjk5NjU2MUBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL3JlbGVhc2UvdjEuMTQuMC9iaW4vbGludXgvYXJtNjQva3ViZWxldAogIC0gMDFjMmI2YjQzZDM2YjZiZmFmYzgwYTM3MzczOTFjMTllYmZiOGFkNUBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL3JlbGVhc2UvdjEuMTQuMC9iaW4vbGludXgvYXJtNjQva3ViZWN0bAogIC0gN2ZlYzkxYWY3OGU5NTQ4ZGYzMDZmMGVjNDNiZWE1MjdjOGMxMGNjM2E5NjgyYzMzZTk3MWM4NTIyYTdmY2RlZEBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL25ldHdvcmstcGx1Z2lucy9jbmktcGx1Z2lucy1hcm02NC12MC43LjUudGd6CkNsdXN0ZXJOYW1lOiBtaW5pbWFsLWpzb24uZXhhbXBsZS5jb20KQ29uZmlnQmFzZTogbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9taW5pbWFsLWpzb24uZXhhbXBsZS5jb20KSW5zdGFuY2VHcm91cE5hbWU6IG1hc3Rlci11cy10ZXN0LTFhCkluc3RhbmNlR3JvdXBSb2xlOiBNYXN0ZXIKS3ViZWxldENvbmZpZzoKICBhbm9ueW1vdXNBdXRoOiBmYWxzZQogIGNncm91cFJvb3Q6IC8KICBjbG91ZFByb3ZpZGVyOiBhd3MKICBjbHVzdGVyRE5TOiAxMDAuNjQuMC4xMAogIGNsdXN0ZXJEb21haW46IGNsdXN0ZXIubG9jYWwKICBlbmFibGVEZWJ1Z2dpbmdIYW5kbGVyczogdHJ1ZQogIGV2aWN0aW9uSGFyZDogbWVtb3J5LmF2YWlsYWJsZTwxMDBNaSxub2RlZnMuYXZhaWxhYmxlPDEwJSxub2RlZnMuaW5vZGVzRnJlZTw1JSxpbWFnZWZzLmF2YWlsYWJsZTwxMCUsaW1hZ2Vmcy5pbm9kZXNGcmVlPDUlCiAgZmVhdHVyZUdhdGVzOgogICAgRXhwZXJpbWVudGFsQ3JpdGljYWxQb2RBbm5vdGF0aW9uOiAidHJ1ZSIKICBob3N0bmFtZU92ZXJyaWRlOiAnQGF3cycKICBrdWJlY29uZmlnUGF0aDogL3Zhci9saWIva3ViZWxldC9rdWJlY29uZmlnCiAgbG9nTGV2ZWw6IDIKICBuZXR3b3JrUGx1Z2luTVRVOiA5MDAxCiAgbmV0d29ya1BsdWdpbk5hbWU6IGt1YmVuZXQKICBub2RlTGFiZWxzOgogICAga3ViZXJuZXRlcy5pby9yb2xlOiBtYXN0ZXIKICAgIG5vZGUtcm9sZS5rdWJlcm5ldGVzLmlvL21hc3RlcjogIiIKICBub25NYXNxdWVyYWRlQ0lEUjogMTAwLjY0LjAuMC8xMAogIHBvZEluZnJhQ29udGFpbmVySW1hZ2U6IGs4cy5nY3IuaW8vcGF1c2U6My4yCiAgcG9kTWFuaWZlc3RQYXRoOiAvZXRjL2t1YmVybmV0ZXMvbWFuaWZlc3RzCiAgcmVnaXN0ZXJTY2hlZHVsYWJsZTogZmFsc2UKVGFnczoKLSBfYXV0b21hdGljX3VwZ3JhZGVzCi0gX2F3cwpjaGFubmVsczoKLSBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL21pbmltYWwtanNvbi5leGFtcGxlLmNvbS9hZGRvbnMvYm9vdHN0cmFwLWNoYW5uZWwueWFtbApldGNkTWFuaWZlc3RzOgotIG1lbWZzOi8vY2x1c3RlcnMuZXhhbXBsZS5jb20vbWluaW1hbC1qc29uLmV4YW1wbGUuY29tL21hbmlmZXN0cy9ldGNkL21haW4ueWFtbAotIG1lbWZzOi8vY2x1c3RlcnMuZXhhbXBsZS5jb20vbWluaW1hbC1qc29uLmV4YW1wbGUuY29tL21hbmlmZXN0cy9ldGNkL2V2ZW50cy55YW1sCnByb3Rva3ViZUltYWdlOgogIGhhc2g6IDIxMzExNmM1MTBkNmYzZWVlY2UwZmNhYWZmNWYxNjg2MDkyODhhZDc3MDUzNjVkODM5YTgxM2Y1Y2M4YWRlYjQKICBuYW1lOiBwcm90b2t1YmU6MS4xOS4wLWFscGhhLjEKICBzb3VyY2VzOgogIC0gaHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xOS4wLWFscGhhLjEvaW1hZ2VzL3Byb3Rva3ViZS50YXIuZ3oKICAtIGh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzL2tvcHMvcmVsZWFzZXMvZG93bmxvYWQvdjEuMTkuMC1hbHBoYS4xL2ltYWdlcy1wcm90b2t1YmUudGFyLmd6CiAgLSBodHRwczovL2t1YmV1cHYyLnMzLmFtYXpvbmF3cy5jb20va29wcy8xLjE5LjAtYWxwaGEuMS9pbWFnZXMvcHJvdG9rdWJlLnRhci5negoKX19FT0ZfS1VCRV9FTlYKCmRvd25sb2FkLXJlbGVhc2UKZWNobyAiPT0gbm9kZXVwIG5vZGUgY29uZmlnIGRvbmUgPT0iCg== +IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkxfQU1ENjQ9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xOS4wLWFscGhhLjEvbGludXgvYW1kNjQvbm9kZXVwLGh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzL2tvcHMvcmVsZWFzZXMvZG93bmxvYWQvdjEuMTkuMC1hbHBoYS4xL2xpbnV4LWFtZDY0LW5vZGV1cCxodHRwczovL2t1YmV1cHYyLnMzLmFtYXpvbmF3cy5jb20va29wcy8xLjE5LjAtYWxwaGEuMS9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0hfQU1ENjQ9ZGVmZjExNzlmODBiZDY1MjMyYWYzMGMyNTJhMmI1ZjM5MGIxNjBiYmZlOTk5MDYzN2MwZWM4OGQ3NmNkZDY0NwpOT0RFVVBfVVJMX0FSTTY0PWh0dHBzOi8vYXJ0aWZhY3RzLms4cy5pby9iaW5hcmllcy9rb3BzLzEuMTkuMC1hbHBoYS4xL2xpbnV4L2FybTY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE5LjAtYWxwaGEuMS9saW51eC1hcm02NC1ub2RldXAsaHR0cHM6Ly9rdWJldXB2Mi5zMy5hbWF6b25hd3MuY29tL2tvcHMvMS4xOS4wLWFscGhhLjEvbGludXgvYXJtNjQvbm9kZXVwCk5PREVVUF9IQVNIX0FSTTY0PTMwMGJmYWRlMDI0ZWRlNGZlODk5NmM5ZWU2MzkzZTk3NDYzYmVhNGVhZmZkMDg3NjMxMDcxMGRjZGViYmY4ZDMKCmV4cG9ydCBBV1NfUkVHSU9OPXVzLXRlc3QtMQoKCgoKZnVuY3Rpb24gZW5zdXJlLWluc3RhbGwtZGlyKCkgewogIElOU1RBTExfRElSPSIvb3B0L2tvcHMiCiAgIyBPbiBDb250YWluZXJPUywgd2UgaW5zdGFsbCB1bmRlciAvdmFyL2xpYi90b29sYm94OyAvb3B0IGlzIHJvIGFuZCBub2V4ZWMKICBpZiBbWyAtZCAvdmFyL2xpYi90b29sYm94IF1dOyB0aGVuCiAgICBJTlNUQUxMX0RJUj0iL3Zhci9saWIvdG9vbGJveC9rb3BzIgogIGZpCiAgbWtkaXIgLXAgJHtJTlNUQUxMX0RJUn0vYmluCiAgbWtkaXIgLXAgJHtJTlNUQUxMX0RJUn0vY29uZgogIGNkICR7SU5TVEFMTF9ESVJ9Cn0KCiMgUmV0cnkgYSBkb3dubG9hZCB1bnRpbCB3ZSBnZXQgaXQuIGFyZ3M6IG5hbWUsIHNoYSwgdXJsMSwgdXJsMi4uLgpkb3dubG9hZC1vci1idXN0KCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGhhc2g9IiQyIgogIHNoaWZ0IDIKCiAgdXJscz0oICQqICkKICB3aGlsZSB0cnVlOyBkbwogICAgZm9yIHVybCBpbiAiJHt1cmxzW0BdfSI7IGRvCiAgICAgIGNvbW1hbmRzPSgKICAgICAgICAiY3VybCAtZiAtLWlwdjQgLS1jb21wcmVzc2VkIC1MbyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQgMjAgLS1yZXRyeSA2IC0tcmV0cnktZGVsYXkgMTAiCiAgICAgICAgIndnZXQgLS1pbmV0NC1vbmx5IC0tY29tcHJlc3Npb249YXV0byAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgICAiY3VybCAtZiAtLWlwdjQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLU8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0PTIwIC0tdHJpZXM9NiAtLXdhaXQ9MTAiCiAgICAgICkKICAgICAgZm9yIGNtZCBpbiAiJHtjb21tYW5kc1tAXX0iOyBkbwogICAgICAgIGVjaG8gIkF0dGVtcHRpbmcgZG93bmxvYWQgd2l0aDogJHtjbWR9IHt1cmx9IgogICAgICAgIGlmICEgKCR7Y21kfSAiJHt1cmx9Iik7IHRoZW4KICAgICAgICAgIGVjaG8gIj09IERvd25sb2FkIGZhaWxlZCB3aXRoICR7Y21kfSA9PSIKICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgZmkKICAgICAgICBpZiBbWyAtbiAiJHtoYXNofSIgXV0gJiYgISB2YWxpZGF0ZS1oYXNoICIke2ZpbGV9IiAiJHtoYXNofSI7IHRoZW4KICAgICAgICAgIGVjaG8gIj09IEhhc2ggdmFsaWRhdGlvbiBvZiAke3VybH0gZmFpbGVkLiBSZXRyeWluZy4gPT0iCiAgICAgICAgICBybSAtZiAiJHtmaWxlfSIKICAgICAgICBlbHNlCiAgICAgICAgICBpZiBbWyAtbiAiJHtoYXNofSIgXV07IHRoZW4KICAgICAgICAgICAgZWNobyAiPT0gRG93bmxvYWRlZCAke3VybH0gKFNIQTEgPSAke2hhc2h9KSA9PSIKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgZWNobyAiPT0gRG93bmxvYWRlZCAke3VybH0gPT0iCiAgICAgICAgICBmaQogICAgICAgICAgcmV0dXJuCiAgICAgICAgZmkKICAgICAgZG9uZQogICAgZG9uZQoKICAgIGVjaG8gIkFsbCBkb3dubG9hZHMgZmFpbGVkOyBzbGVlcGluZyBiZWZvcmUgcmV0cnlpbmciCiAgICBzbGVlcCA2MAogIGRvbmUKfQoKdmFsaWRhdGUtaGFzaCgpIHsKICBsb2NhbCAtciBmaWxlPSIkMSIKICBsb2NhbCAtciBleHBlY3RlZD0iJDIiCiAgbG9jYWwgYWN0dWFsCgogIGFjdHVhbD0kKHNoYTI1NnN1bSAke2ZpbGV9IHwgYXdrICd7IHByaW50ICQxIH0nKSB8fCB0cnVlCiAgaWYgW1sgIiR7YWN0dWFsfSIgIT0gIiR7ZXhwZWN0ZWR9IiBdXTsgdGhlbgogICAgZWNobyAiPT0gJHtmaWxlfSBjb3JydXB0ZWQsIGhhc2ggJHthY3R1YWx9IGRvZXNuJ3QgbWF0Y2ggZXhwZWN0ZWQgJHtleHBlY3RlZH0gPT0iCiAgICByZXR1cm4gMQogIGZpCn0KCmZ1bmN0aW9uIHNwbGl0LWNvbW1hcygpIHsKICBlY2hvICQxIHwgdHIgIiwiICJcbiIKfQoKZnVuY3Rpb24gdHJ5LWRvd25sb2FkLXJlbGVhc2UoKSB7CiAgbG9jYWwgLXIgbm9kZXVwX3VybHM9KCAkKHNwbGl0LWNvbW1hcyAiJHtOT0RFVVBfVVJMfSIpICkKICBpZiBbWyAtbiAiJHtOT0RFVVBfSEFTSDotfSIgXV07IHRoZW4KICAgIGxvY2FsIC1yIG5vZGV1cF9oYXNoPSIke05PREVVUF9IQVNIfSIKICBlbHNlCiAgIyBUT0RPOiBSZW1vdmU/CiAgICBlY2hvICJEb3dubG9hZGluZyBzaGEyNTYgKG5vdCBmb3VuZCBpbiBlbnYpIgogICAgZG93bmxvYWQtb3ItYnVzdCBub2RldXAuc2hhMjU2ICIiICIke25vZGV1cF91cmxzW0BdLyUvLnNoYTI1Nn0iCiAgICBsb2NhbCAtciBub2RldXBfaGFzaD0kKGNhdCBub2RldXAuc2hhMjU2KQogIGZpCgogIGVjaG8gIkRvd25sb2FkaW5nIG5vZGV1cCAoJHtub2RldXBfdXJsc1tAXX0pIgogIGRvd25sb2FkLW9yLWJ1c3Qgbm9kZXVwICIke25vZGV1cF9oYXNofSIgIiR7bm9kZXVwX3VybHNbQF19IgoKICBjaG1vZCAreCBub2RldXAKfQoKZnVuY3Rpb24gZG93bmxvYWQtcmVsZWFzZSgpIHsKICBjYXNlICIkKHVuYW1lIC1tKSIgaW4KICB4ODZfNjQqfGk/ODZfNjQqfGFtZDY0KikKICAgIE5PREVVUF9VUkw9IiR7Tk9ERVVQX1VSTF9BTUQ2NH0iCiAgICBOT0RFVVBfSEFTSD0iJHtOT0RFVVBfSEFTSF9BTUQ2NH0iCiAgICA7OwogIGFhcmNoNjQqfGFybTY0KikKICAgIE5PREVVUF9VUkw9IiR7Tk9ERVVQX1VSTF9BUk02NH0iCiAgICBOT0RFVVBfSEFTSD0iJHtOT0RFVVBfSEFTSF9BUk02NH0iCiAgICA7OwogICopCiAgICBlY2hvICJVbnN1cHBvcnRlZCBob3N0IGFyY2g6ICQodW5hbWUgLW0pIiA+JjIKICAgIGV4aXQgMQogICAgOzsKICBlc2FjCgogICMgSW4gY2FzZSBvZiBmYWlsdXJlIGNoZWNraW5nIGludGVncml0eSBvZiByZWxlYXNlLCByZXRyeS4KICBjZCAke0lOU1RBTExfRElSfS9iaW4KICB1bnRpbCB0cnktZG93bmxvYWQtcmVsZWFzZTsgZG8KICAgIHNsZWVwIDE1CiAgICBlY2hvICJDb3VsZG4ndCBkb3dubG9hZCByZWxlYXNlLiBSZXRyeWluZy4uLiIKICBkb25lCgogIGVjaG8gIlJ1bm5pbmcgbm9kZXVwIgogICMgV2UgY2FuJ3QgcnVuIGluIHRoZSBmb3JlZ3JvdW5kIGJlY2F1c2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci9kb2NrZXIvaXNzdWVzLzIzNzkzCiAgKCBjZCAke0lOU1RBTExfRElSfS9iaW47IC4vbm9kZXVwIC0taW5zdGFsbC1zeXN0ZW1kLXVuaXQgLS1jb25mPSR7SU5TVEFMTF9ESVJ9L2NvbmYva3ViZV9lbnYueWFtbCAtLXY9OCAgKQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi9iaW4vc3lzdGVtZC1tYWNoaW5lLWlkLXNldHVwIHx8IGVjaG8gImZhaWxlZCB0byBzZXQgdXAgZW5zdXJlIG1hY2hpbmUtaWQgY29uZmlndXJlZCIKCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBzdGFydGluZyA9PSIKZW5zdXJlLWluc3RhbGwtZGlyCgpjYXQgPiBjb25mL2NsdXN0ZXJfc3BlYy55YW1sIDw8ICdfX0VPRl9DTFVTVEVSX1NQRUMnCmNsb3VkQ29uZmlnOiBudWxsCmNvbnRhaW5lclJ1bnRpbWU6IGRvY2tlcgpjb250YWluZXJkOgogIHNraXBJbnN0YWxsOiB0cnVlCmRvY2tlcjoKICBpcE1hc3E6IGZhbHNlCiAgaXBUYWJsZXM6IGZhbHNlCiAgbG9nRHJpdmVyOiBqc29uLWZpbGUKICBsb2dMZXZlbDogaW5mbwogIGxvZ09wdDoKICAtIG1heC1zaXplPTEwbQogIC0gbWF4LWZpbGU9NQogIHN0b3JhZ2U6IG92ZXJsYXkyLG92ZXJsYXksYXVmcwogIHZlcnNpb246IDE4LjA2LjMKZW5jcnlwdGlvbkNvbmZpZzogbnVsbApldGNkQ2x1c3RlcnM6CiAgZXZlbnRzOgogICAgdmVyc2lvbjogMy4zLjEwCiAgbWFpbjoKICAgIHZlcnNpb246IDMuMy4xMAprdWJlQVBJU2VydmVyOgogIGFsbG93UHJpdmlsZWdlZDogdHJ1ZQogIGFub255bW91c0F1dGg6IGZhbHNlCiAgYXBpU2VydmVyQ291bnQ6IDEKICBhdXRob3JpemF0aW9uTW9kZTogQWx3YXlzQWxsb3cKICBiaW5kQWRkcmVzczogMC4wLjAuMAogIGNsb3VkUHJvdmlkZXI6IGF3cwogIGVuYWJsZUFkbWlzc2lvblBsdWdpbnM6CiAgLSBOYW1lc3BhY2VMaWZlY3ljbGUKICAtIExpbWl0UmFuZ2VyCiAgLSBTZXJ2aWNlQWNjb3VudAogIC0gUGVyc2lzdGVudFZvbHVtZUxhYmVsCiAgLSBEZWZhdWx0U3RvcmFnZUNsYXNzCiAgLSBEZWZhdWx0VG9sZXJhdGlvblNlY29uZHMKICAtIE11dGF0aW5nQWRtaXNzaW9uV2ViaG9vawogIC0gVmFsaWRhdGluZ0FkbWlzc2lvbldlYmhvb2sKICAtIE5vZGVSZXN0cmljdGlvbgogIC0gUmVzb3VyY2VRdW90YQogIGV0Y2RTZXJ2ZXJzOgogIC0gaHR0cDovLzEyNy4wLjAuMTo0MDAxCiAgZXRjZFNlcnZlcnNPdmVycmlkZXM6CiAgLSAvZXZlbnRzI2h0dHA6Ly8xMjcuMC4wLjE6NDAwMgogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtYXBpc2VydmVyOnYxLjE0LjAKICBpbnNlY3VyZUJpbmRBZGRyZXNzOiAxMjcuMC4wLjEKICBpbnNlY3VyZVBvcnQ6IDgwODAKICBrdWJlbGV0UHJlZmVycmVkQWRkcmVzc1R5cGVzOgogIC0gSW50ZXJuYWxJUAogIC0gSG9zdG5hbWUKICAtIEV4dGVybmFsSVAKICBsb2dMZXZlbDogMgogIHJlcXVlc3RoZWFkZXJBbGxvd2VkTmFtZXM6CiAgLSBhZ2dyZWdhdG9yCiAgcmVxdWVzdGhlYWRlckV4dHJhSGVhZGVyUHJlZml4ZXM6CiAgLSBYLVJlbW90ZS1FeHRyYS0KICByZXF1ZXN0aGVhZGVyR3JvdXBIZWFkZXJzOgogIC0gWC1SZW1vdGUtR3JvdXAKICByZXF1ZXN0aGVhZGVyVXNlcm5hbWVIZWFkZXJzOgogIC0gWC1SZW1vdGUtVXNlcgogIHNlY3VyZVBvcnQ6IDQ0MwogIHNlcnZpY2VDbHVzdGVySVBSYW5nZTogMTAwLjY0LjAuMC8xMwogIHN0b3JhZ2VCYWNrZW5kOiBldGNkMwprdWJlQ29udHJvbGxlck1hbmFnZXI6CiAgYWxsb2NhdGVOb2RlQ0lEUnM6IHRydWUKICBhdHRhY2hEZXRhY2hSZWNvbmNpbGVTeW5jUGVyaW9kOiAxbTBzCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckNJRFI6IDEwMC45Ni4wLjAvMTEKICBjbHVzdGVyTmFtZTogbWluaW1hbC1qc29uLmV4YW1wbGUuY29tCiAgY29uZmlndXJlQ2xvdWRSb3V0ZXM6IHRydWUKICBpbWFnZTogazhzLmdjci5pby9rdWJlLWNvbnRyb2xsZXItbWFuYWdlcjp2MS4xNC4wCiAgbGVhZGVyRWxlY3Rpb246CiAgICBsZWFkZXJFbGVjdDogdHJ1ZQogIGxvZ0xldmVsOiAyCiAgdXNlU2VydmljZUFjY291bnRDcmVkZW50aWFsczogdHJ1ZQprdWJlUHJveHk6CiAgY2x1c3RlckNJRFI6IDEwMC45Ni4wLjAvMTEKICBjcHVSZXF1ZXN0OiAxMDBtCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAgaW1hZ2U6IGs4cy5nY3IuaW8va3ViZS1wcm94eTp2MS4xNC4wCiAgbG9nTGV2ZWw6IDIKa3ViZVNjaGVkdWxlcjoKICBpbWFnZTogazhzLmdjci5pby9rdWJlLXNjaGVkdWxlcjp2MS4xNC4wCiAgbGVhZGVyRWxlY3Rpb246CiAgICBsZWFkZXJFbGVjdDogdHJ1ZQogIGxvZ0xldmVsOiAyCmt1YmVsZXQ6CiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9uTWFzcXVlcmFkZUNJRFI6IDEwMC42NC4wLjAvMTAKICBwb2RJbmZyYUNvbnRhaW5lckltYWdlOiBrOHMuZ2NyLmlvL3BhdXNlOjMuMgogIHBvZE1hbmlmZXN0UGF0aDogL2V0Yy9rdWJlcm5ldGVzL21hbmlmZXN0cwptYXN0ZXJLdWJlbGV0OgogIGFub255bW91c0F1dGg6IGZhbHNlCiAgY2dyb3VwUm9vdDogLwogIGNsb3VkUHJvdmlkZXI6IGF3cwogIGNsdXN0ZXJETlM6IDEwMC42NC4wLjEwCiAgY2x1c3RlckRvbWFpbjogY2x1c3Rlci5sb2NhbAogIGVuYWJsZURlYnVnZ2luZ0hhbmRsZXJzOiB0cnVlCiAgZXZpY3Rpb25IYXJkOiBtZW1vcnkuYXZhaWxhYmxlPDEwME1pLG5vZGVmcy5hdmFpbGFibGU8MTAlLG5vZGVmcy5pbm9kZXNGcmVlPDUlLGltYWdlZnMuYXZhaWxhYmxlPDEwJSxpbWFnZWZzLmlub2Rlc0ZyZWU8NSUKICBmZWF0dXJlR2F0ZXM6CiAgICBFeHBlcmltZW50YWxDcml0aWNhbFBvZEFubm90YXRpb246ICJ0cnVlIgogIGhvc3RuYW1lT3ZlcnJpZGU6ICdAYXdzJwogIGt1YmVjb25maWdQYXRoOiAvdmFyL2xpYi9rdWJlbGV0L2t1YmVjb25maWcKICBsb2dMZXZlbDogMgogIG5ldHdvcmtQbHVnaW5NVFU6IDkwMDEKICBuZXR3b3JrUGx1Z2luTmFtZToga3ViZW5ldAogIG5vbk1hc3F1ZXJhZGVDSURSOiAxMDAuNjQuMC4wLzEwCiAgcG9kSW5mcmFDb250YWluZXJJbWFnZTogazhzLmdjci5pby9wYXVzZTozLjIKICBwb2RNYW5pZmVzdFBhdGg6IC9ldGMva3ViZXJuZXRlcy9tYW5pZmVzdHMKICByZWdpc3RlclNjaGVkdWxhYmxlOiBmYWxzZQoKX19FT0ZfQ0xVU1RFUl9TUEVDCgpjYXQgPiBjb25mL2lnX3NwZWMueWFtbCA8PCAnX19FT0ZfSUdfU1BFQycKe30KCl9fRU9GX0lHX1NQRUMKCmNhdCA+IGNvbmYva3ViZV9lbnYueWFtbCA8PCAnX19FT0ZfS1VCRV9FTlYnCkFzc2V0czoKICBhbWQ2NDoKICAtIGMzYjczNmZkMGYwMDM3NjVjMTJkOTlmMmM5OTVhODM2OWU2MjQxZjRAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjE0LjAvYmluL2xpbnV4L2FtZDY0L2t1YmVsZXQKICAtIDdlM2EzZWE2NjMxNTNmOTAwY2JkNTI5MDBhMzljOTFmYTlmMzM0YmVAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjE0LjAvYmluL2xpbnV4L2FtZDY0L2t1YmVjdGwKICAtIDNjYTE1YzBhMThlZTgzMDUyMGNmM2E5NTQwOGJlODI2Y2JkMjU1YTE1MzVhMzhlMGJlOTYwOGIyNWFkOGJmNjRAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9uZXR3b3JrLXBsdWdpbnMvY25pLXBsdWdpbnMtYW1kNjQtdjAuNy41LnRnegogIGFybTY0OgogIC0gZGYzOGUwNDU3NjAyNjM5MzA1NWNjYzc3YzBkY2U3MzYxMjk5NjU2MUBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL3JlbGVhc2UvdjEuMTQuMC9iaW4vbGludXgvYXJtNjQva3ViZWxldAogIC0gMDFjMmI2YjQzZDM2YjZiZmFmYzgwYTM3MzczOTFjMTllYmZiOGFkNUBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL3JlbGVhc2UvdjEuMTQuMC9iaW4vbGludXgvYXJtNjQva3ViZWN0bAogIC0gN2ZlYzkxYWY3OGU5NTQ4ZGYzMDZmMGVjNDNiZWE1MjdjOGMxMGNjM2E5NjgyYzMzZTk3MWM4NTIyYTdmY2RlZEBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL25ldHdvcmstcGx1Z2lucy9jbmktcGx1Z2lucy1hcm02NC12MC43LjUudGd6CkNsdXN0ZXJOYW1lOiBtaW5pbWFsLWpzb24uZXhhbXBsZS5jb20KQ29uZmlnQmFzZTogbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9taW5pbWFsLWpzb24uZXhhbXBsZS5jb20KSW5zdGFuY2VHcm91cE5hbWU6IG1hc3Rlci11cy10ZXN0LTFhCkluc3RhbmNlR3JvdXBSb2xlOiBNYXN0ZXIKS3ViZWxldENvbmZpZzoKICBhbm9ueW1vdXNBdXRoOiBmYWxzZQogIGNncm91cFJvb3Q6IC8KICBjbG91ZFByb3ZpZGVyOiBhd3MKICBjbHVzdGVyRE5TOiAxMDAuNjQuMC4xMAogIGNsdXN0ZXJEb21haW46IGNsdXN0ZXIubG9jYWwKICBlbmFibGVEZWJ1Z2dpbmdIYW5kbGVyczogdHJ1ZQogIGV2aWN0aW9uSGFyZDogbWVtb3J5LmF2YWlsYWJsZTwxMDBNaSxub2RlZnMuYXZhaWxhYmxlPDEwJSxub2RlZnMuaW5vZGVzRnJlZTw1JSxpbWFnZWZzLmF2YWlsYWJsZTwxMCUsaW1hZ2Vmcy5pbm9kZXNGcmVlPDUlCiAgZmVhdHVyZUdhdGVzOgogICAgRXhwZXJpbWVudGFsQ3JpdGljYWxQb2RBbm5vdGF0aW9uOiAidHJ1ZSIKICBob3N0bmFtZU92ZXJyaWRlOiAnQGF3cycKICBrdWJlY29uZmlnUGF0aDogL3Zhci9saWIva3ViZWxldC9rdWJlY29uZmlnCiAgbG9nTGV2ZWw6IDIKICBuZXR3b3JrUGx1Z2luTVRVOiA5MDAxCiAgbmV0d29ya1BsdWdpbk5hbWU6IGt1YmVuZXQKICBub2RlTGFiZWxzOgogICAga3ViZXJuZXRlcy5pby9yb2xlOiBtYXN0ZXIKICAgIG5vZGUtcm9sZS5rdWJlcm5ldGVzLmlvL21hc3RlcjogIiIKICBub25NYXNxdWVyYWRlQ0lEUjogMTAwLjY0LjAuMC8xMAogIHBvZEluZnJhQ29udGFpbmVySW1hZ2U6IGs4cy5nY3IuaW8vcGF1c2U6My4yCiAgcG9kTWFuaWZlc3RQYXRoOiAvZXRjL2t1YmVybmV0ZXMvbWFuaWZlc3RzCiAgcmVnaXN0ZXJTY2hlZHVsYWJsZTogZmFsc2UKY2hhbm5lbHM6Ci0gbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9taW5pbWFsLWpzb24uZXhhbXBsZS5jb20vYWRkb25zL2Jvb3RzdHJhcC1jaGFubmVsLnlhbWwKZXRjZE1hbmlmZXN0czoKLSBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL21pbmltYWwtanNvbi5leGFtcGxlLmNvbS9tYW5pZmVzdHMvZXRjZC9tYWluLnlhbWwKLSBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL21pbmltYWwtanNvbi5leGFtcGxlLmNvbS9tYW5pZmVzdHMvZXRjZC9ldmVudHMueWFtbApwcm90b2t1YmVJbWFnZToKICBoYXNoOiAyMTMxMTZjNTEwZDZmM2VlZWNlMGZjYWFmZjVmMTY4NjA5Mjg4YWQ3NzA1MzY1ZDgzOWE4MTNmNWNjOGFkZWI0CiAgbmFtZTogcHJvdG9rdWJlOjEuMTkuMC1hbHBoYS4xCiAgc291cmNlczoKICAtIGh0dHBzOi8vYXJ0aWZhY3RzLms4cy5pby9iaW5hcmllcy9rb3BzLzEuMTkuMC1hbHBoYS4xL2ltYWdlcy9wcm90b2t1YmUudGFyLmd6CiAgLSBodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE5LjAtYWxwaGEuMS9pbWFnZXMtcHJvdG9rdWJlLnRhci5negogIC0gaHR0cHM6Ly9rdWJldXB2Mi5zMy5hbWF6b25hd3MuY29tL2tvcHMvMS4xOS4wLWFscGhhLjEvaW1hZ2VzL3Byb3Rva3ViZS50YXIuZ3oKCl9fRU9GX0tVQkVfRU5WCgpkb3dubG9hZC1yZWxlYXNlCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBkb25lID09Igo= diff --git a/tests/integration/update_cluster/minimal-json/data/aws_launch_template_nodes.minimal-json.example.com_user_data b/tests/integration/update_cluster/minimal-json/data/aws_launch_template_nodes.minimal-json.example.com_user_data index bfbb0e3cf8c33..83deb2dfde396 100644 --- a/tests/integration/update_cluster/minimal-json/data/aws_launch_template_nodes.minimal-json.example.com_user_data +++ b/tests/integration/update_cluster/minimal-json/data/aws_launch_template_nodes.minimal-json.example.com_user_data @@ -1 +1 @@ -IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkxfQU1ENjQ9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xOS4wLWFscGhhLjEvbGludXgvYW1kNjQvbm9kZXVwLGh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzL2tvcHMvcmVsZWFzZXMvZG93bmxvYWQvdjEuMTkuMC1hbHBoYS4xL2xpbnV4LWFtZDY0LW5vZGV1cCxodHRwczovL2t1YmV1cHYyLnMzLmFtYXpvbmF3cy5jb20va29wcy8xLjE5LjAtYWxwaGEuMS9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0hfQU1ENjQ9ZGVmZjExNzlmODBiZDY1MjMyYWYzMGMyNTJhMmI1ZjM5MGIxNjBiYmZlOTk5MDYzN2MwZWM4OGQ3NmNkZDY0NwpOT0RFVVBfVVJMX0FSTTY0PWh0dHBzOi8vYXJ0aWZhY3RzLms4cy5pby9iaW5hcmllcy9rb3BzLzEuMTkuMC1hbHBoYS4xL2xpbnV4L2FybTY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE5LjAtYWxwaGEuMS9saW51eC1hcm02NC1ub2RldXAsaHR0cHM6Ly9rdWJldXB2Mi5zMy5hbWF6b25hd3MuY29tL2tvcHMvMS4xOS4wLWFscGhhLjEvbGludXgvYXJtNjQvbm9kZXVwCk5PREVVUF9IQVNIX0FSTTY0PTMwMGJmYWRlMDI0ZWRlNGZlODk5NmM5ZWU2MzkzZTk3NDYzYmVhNGVhZmZkMDg3NjMxMDcxMGRjZGViYmY4ZDMKCmV4cG9ydCBBV1NfUkVHSU9OPXVzLXRlc3QtMQoKCgoKZnVuY3Rpb24gZW5zdXJlLWluc3RhbGwtZGlyKCkgewogIElOU1RBTExfRElSPSIvb3B0L2tvcHMiCiAgIyBPbiBDb250YWluZXJPUywgd2UgaW5zdGFsbCB1bmRlciAvdmFyL2xpYi90b29sYm94OyAvb3B0IGlzIHJvIGFuZCBub2V4ZWMKICBpZiBbWyAtZCAvdmFyL2xpYi90b29sYm94IF1dOyB0aGVuCiAgICBJTlNUQUxMX0RJUj0iL3Zhci9saWIvdG9vbGJveC9rb3BzIgogIGZpCiAgbWtkaXIgLXAgJHtJTlNUQUxMX0RJUn0vYmluCiAgbWtkaXIgLXAgJHtJTlNUQUxMX0RJUn0vY29uZgogIGNkICR7SU5TVEFMTF9ESVJ9Cn0KCiMgUmV0cnkgYSBkb3dubG9hZCB1bnRpbCB3ZSBnZXQgaXQuIGFyZ3M6IG5hbWUsIHNoYSwgdXJsMSwgdXJsMi4uLgpkb3dubG9hZC1vci1idXN0KCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGhhc2g9IiQyIgogIHNoaWZ0IDIKCiAgdXJscz0oICQqICkKICB3aGlsZSB0cnVlOyBkbwogICAgZm9yIHVybCBpbiAiJHt1cmxzW0BdfSI7IGRvCiAgICAgIGNvbW1hbmRzPSgKICAgICAgICAiY3VybCAtZiAtLWlwdjQgLS1jb21wcmVzc2VkIC1MbyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQgMjAgLS1yZXRyeSA2IC0tcmV0cnktZGVsYXkgMTAiCiAgICAgICAgIndnZXQgLS1pbmV0NC1vbmx5IC0tY29tcHJlc3Npb249YXV0byAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgICAiY3VybCAtZiAtLWlwdjQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLU8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0PTIwIC0tdHJpZXM9NiAtLXdhaXQ9MTAiCiAgICAgICkKICAgICAgZm9yIGNtZCBpbiAiJHtjb21tYW5kc1tAXX0iOyBkbwogICAgICAgIGVjaG8gIkF0dGVtcHRpbmcgZG93bmxvYWQgd2l0aDogJHtjbWR9IHt1cmx9IgogICAgICAgIGlmICEgKCR7Y21kfSAiJHt1cmx9Iik7IHRoZW4KICAgICAgICAgIGVjaG8gIj09IERvd25sb2FkIGZhaWxlZCB3aXRoICR7Y21kfSA9PSIKICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgZmkKICAgICAgICBpZiBbWyAtbiAiJHtoYXNofSIgXV0gJiYgISB2YWxpZGF0ZS1oYXNoICIke2ZpbGV9IiAiJHtoYXNofSI7IHRoZW4KICAgICAgICAgIGVjaG8gIj09IEhhc2ggdmFsaWRhdGlvbiBvZiAke3VybH0gZmFpbGVkLiBSZXRyeWluZy4gPT0iCiAgICAgICAgICBybSAtZiAiJHtmaWxlfSIKICAgICAgICBlbHNlCiAgICAgICAgICBpZiBbWyAtbiAiJHtoYXNofSIgXV07IHRoZW4KICAgICAgICAgICAgZWNobyAiPT0gRG93bmxvYWRlZCAke3VybH0gKFNIQTEgPSAke2hhc2h9KSA9PSIKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgZWNobyAiPT0gRG93bmxvYWRlZCAke3VybH0gPT0iCiAgICAgICAgICBmaQogICAgICAgICAgcmV0dXJuCiAgICAgICAgZmkKICAgICAgZG9uZQogICAgZG9uZQoKICAgIGVjaG8gIkFsbCBkb3dubG9hZHMgZmFpbGVkOyBzbGVlcGluZyBiZWZvcmUgcmV0cnlpbmciCiAgICBzbGVlcCA2MAogIGRvbmUKfQoKdmFsaWRhdGUtaGFzaCgpIHsKICBsb2NhbCAtciBmaWxlPSIkMSIKICBsb2NhbCAtciBleHBlY3RlZD0iJDIiCiAgbG9jYWwgYWN0dWFsCgogIGFjdHVhbD0kKHNoYTI1NnN1bSAke2ZpbGV9IHwgYXdrICd7IHByaW50ICQxIH0nKSB8fCB0cnVlCiAgaWYgW1sgIiR7YWN0dWFsfSIgIT0gIiR7ZXhwZWN0ZWR9IiBdXTsgdGhlbgogICAgZWNobyAiPT0gJHtmaWxlfSBjb3JydXB0ZWQsIGhhc2ggJHthY3R1YWx9IGRvZXNuJ3QgbWF0Y2ggZXhwZWN0ZWQgJHtleHBlY3RlZH0gPT0iCiAgICByZXR1cm4gMQogIGZpCn0KCmZ1bmN0aW9uIHNwbGl0LWNvbW1hcygpIHsKICBlY2hvICQxIHwgdHIgIiwiICJcbiIKfQoKZnVuY3Rpb24gdHJ5LWRvd25sb2FkLXJlbGVhc2UoKSB7CiAgbG9jYWwgLXIgbm9kZXVwX3VybHM9KCAkKHNwbGl0LWNvbW1hcyAiJHtOT0RFVVBfVVJMfSIpICkKICBpZiBbWyAtbiAiJHtOT0RFVVBfSEFTSDotfSIgXV07IHRoZW4KICAgIGxvY2FsIC1yIG5vZGV1cF9oYXNoPSIke05PREVVUF9IQVNIfSIKICBlbHNlCiAgIyBUT0RPOiBSZW1vdmU/CiAgICBlY2hvICJEb3dubG9hZGluZyBzaGEyNTYgKG5vdCBmb3VuZCBpbiBlbnYpIgogICAgZG93bmxvYWQtb3ItYnVzdCBub2RldXAuc2hhMjU2ICIiICIke25vZGV1cF91cmxzW0BdLyUvLnNoYTI1Nn0iCiAgICBsb2NhbCAtciBub2RldXBfaGFzaD0kKGNhdCBub2RldXAuc2hhMjU2KQogIGZpCgogIGVjaG8gIkRvd25sb2FkaW5nIG5vZGV1cCAoJHtub2RldXBfdXJsc1tAXX0pIgogIGRvd25sb2FkLW9yLWJ1c3Qgbm9kZXVwICIke25vZGV1cF9oYXNofSIgIiR7bm9kZXVwX3VybHNbQF19IgoKICBjaG1vZCAreCBub2RldXAKfQoKZnVuY3Rpb24gZG93bmxvYWQtcmVsZWFzZSgpIHsKICBjYXNlICIkKHVuYW1lIC1tKSIgaW4KICB4ODZfNjQqfGk/ODZfNjQqfGFtZDY0KikKICAgIE5PREVVUF9VUkw9IiR7Tk9ERVVQX1VSTF9BTUQ2NH0iCiAgICBOT0RFVVBfSEFTSD0iJHtOT0RFVVBfSEFTSF9BTUQ2NH0iCiAgICA7OwogIGFhcmNoNjQqfGFybTY0KikKICAgIE5PREVVUF9VUkw9IiR7Tk9ERVVQX1VSTF9BUk02NH0iCiAgICBOT0RFVVBfSEFTSD0iJHtOT0RFVVBfSEFTSF9BUk02NH0iCiAgICA7OwogICopCiAgICBlY2hvICJVbnN1cHBvcnRlZCBob3N0IGFyY2g6ICQodW5hbWUgLW0pIiA+JjIKICAgIGV4aXQgMQogICAgOzsKICBlc2FjCgogICMgSW4gY2FzZSBvZiBmYWlsdXJlIGNoZWNraW5nIGludGVncml0eSBvZiByZWxlYXNlLCByZXRyeS4KICBjZCAke0lOU1RBTExfRElSfS9iaW4KICB1bnRpbCB0cnktZG93bmxvYWQtcmVsZWFzZTsgZG8KICAgIHNsZWVwIDE1CiAgICBlY2hvICJDb3VsZG4ndCBkb3dubG9hZCByZWxlYXNlLiBSZXRyeWluZy4uLiIKICBkb25lCgogIGVjaG8gIlJ1bm5pbmcgbm9kZXVwIgogICMgV2UgY2FuJ3QgcnVuIGluIHRoZSBmb3JlZ3JvdW5kIGJlY2F1c2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci9kb2NrZXIvaXNzdWVzLzIzNzkzCiAgKCBjZCAke0lOU1RBTExfRElSfS9iaW47IC4vbm9kZXVwIC0taW5zdGFsbC1zeXN0ZW1kLXVuaXQgLS1jb25mPSR7SU5TVEFMTF9ESVJ9L2NvbmYva3ViZV9lbnYueWFtbCAtLXY9OCAgKQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi9iaW4vc3lzdGVtZC1tYWNoaW5lLWlkLXNldHVwIHx8IGVjaG8gImZhaWxlZCB0byBzZXQgdXAgZW5zdXJlIG1hY2hpbmUtaWQgY29uZmlndXJlZCIKCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBzdGFydGluZyA9PSIKZW5zdXJlLWluc3RhbGwtZGlyCgpjYXQgPiBjb25mL2NsdXN0ZXJfc3BlYy55YW1sIDw8ICdfX0VPRl9DTFVTVEVSX1NQRUMnCmNsb3VkQ29uZmlnOiBudWxsCmNvbnRhaW5lclJ1bnRpbWU6IGRvY2tlcgpjb250YWluZXJkOgogIHNraXBJbnN0YWxsOiB0cnVlCmRvY2tlcjoKICBpcE1hc3E6IGZhbHNlCiAgaXBUYWJsZXM6IGZhbHNlCiAgbG9nRHJpdmVyOiBqc29uLWZpbGUKICBsb2dMZXZlbDogaW5mbwogIGxvZ09wdDoKICAtIG1heC1zaXplPTEwbQogIC0gbWF4LWZpbGU9NQogIHN0b3JhZ2U6IG92ZXJsYXkyLG92ZXJsYXksYXVmcwogIHZlcnNpb246IDE4LjA2LjMKa3ViZVByb3h5OgogIGNsdXN0ZXJDSURSOiAxMDAuOTYuMC4wLzExCiAgY3B1UmVxdWVzdDogMTAwbQogIGhvc3RuYW1lT3ZlcnJpZGU6ICdAYXdzJwogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtcHJveHk6djEuMTQuMAogIGxvZ0xldmVsOiAyCmt1YmVsZXQ6CiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9uTWFzcXVlcmFkZUNJRFI6IDEwMC42NC4wLjAvMTAKICBwb2RJbmZyYUNvbnRhaW5lckltYWdlOiBrOHMuZ2NyLmlvL3BhdXNlOjMuMgogIHBvZE1hbmlmZXN0UGF0aDogL2V0Yy9rdWJlcm5ldGVzL21hbmlmZXN0cwoKX19FT0ZfQ0xVU1RFUl9TUEVDCgpjYXQgPiBjb25mL2lnX3NwZWMueWFtbCA8PCAnX19FT0ZfSUdfU1BFQycKe30KCl9fRU9GX0lHX1NQRUMKCmNhdCA+IGNvbmYva3ViZV9lbnYueWFtbCA8PCAnX19FT0ZfS1VCRV9FTlYnCkFzc2V0czoKICBhbWQ2NDoKICAtIGMzYjczNmZkMGYwMDM3NjVjMTJkOTlmMmM5OTVhODM2OWU2MjQxZjRAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjE0LjAvYmluL2xpbnV4L2FtZDY0L2t1YmVsZXQKICAtIDdlM2EzZWE2NjMxNTNmOTAwY2JkNTI5MDBhMzljOTFmYTlmMzM0YmVAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjE0LjAvYmluL2xpbnV4L2FtZDY0L2t1YmVjdGwKICAtIDNjYTE1YzBhMThlZTgzMDUyMGNmM2E5NTQwOGJlODI2Y2JkMjU1YTE1MzVhMzhlMGJlOTYwOGIyNWFkOGJmNjRAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9uZXR3b3JrLXBsdWdpbnMvY25pLXBsdWdpbnMtYW1kNjQtdjAuNy41LnRnegogIGFybTY0OgogIC0gZGYzOGUwNDU3NjAyNjM5MzA1NWNjYzc3YzBkY2U3MzYxMjk5NjU2MUBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL3JlbGVhc2UvdjEuMTQuMC9iaW4vbGludXgvYXJtNjQva3ViZWxldAogIC0gMDFjMmI2YjQzZDM2YjZiZmFmYzgwYTM3MzczOTFjMTllYmZiOGFkNUBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL3JlbGVhc2UvdjEuMTQuMC9iaW4vbGludXgvYXJtNjQva3ViZWN0bAogIC0gN2ZlYzkxYWY3OGU5NTQ4ZGYzMDZmMGVjNDNiZWE1MjdjOGMxMGNjM2E5NjgyYzMzZTk3MWM4NTIyYTdmY2RlZEBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL25ldHdvcmstcGx1Z2lucy9jbmktcGx1Z2lucy1hcm02NC12MC43LjUudGd6CkNsdXN0ZXJOYW1lOiBtaW5pbWFsLWpzb24uZXhhbXBsZS5jb20KQ29uZmlnQmFzZTogbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9taW5pbWFsLWpzb24uZXhhbXBsZS5jb20KSW5zdGFuY2VHcm91cE5hbWU6IG5vZGVzCkluc3RhbmNlR3JvdXBSb2xlOiBOb2RlCkt1YmVsZXRDb25maWc6CiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9kZUxhYmVsczoKICAgIGt1YmVybmV0ZXMuaW8vcm9sZTogbm9kZQogICAgbm9kZS1yb2xlLmt1YmVybmV0ZXMuaW8vbm9kZTogIiIKICBub25NYXNxdWVyYWRlQ0lEUjogMTAwLjY0LjAuMC8xMAogIHBvZEluZnJhQ29udGFpbmVySW1hZ2U6IGs4cy5nY3IuaW8vcGF1c2U6My4yCiAgcG9kTWFuaWZlc3RQYXRoOiAvZXRjL2t1YmVybmV0ZXMvbWFuaWZlc3RzClRhZ3M6Ci0gX2F1dG9tYXRpY191cGdyYWRlcwotIF9hd3MKY2hhbm5lbHM6Ci0gbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9taW5pbWFsLWpzb24uZXhhbXBsZS5jb20vYWRkb25zL2Jvb3RzdHJhcC1jaGFubmVsLnlhbWwKCl9fRU9GX0tVQkVfRU5WCgpkb3dubG9hZC1yZWxlYXNlCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBkb25lID09Igo= +IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkxfQU1ENjQ9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xOS4wLWFscGhhLjEvbGludXgvYW1kNjQvbm9kZXVwLGh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzL2tvcHMvcmVsZWFzZXMvZG93bmxvYWQvdjEuMTkuMC1hbHBoYS4xL2xpbnV4LWFtZDY0LW5vZGV1cCxodHRwczovL2t1YmV1cHYyLnMzLmFtYXpvbmF3cy5jb20va29wcy8xLjE5LjAtYWxwaGEuMS9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0hfQU1ENjQ9ZGVmZjExNzlmODBiZDY1MjMyYWYzMGMyNTJhMmI1ZjM5MGIxNjBiYmZlOTk5MDYzN2MwZWM4OGQ3NmNkZDY0NwpOT0RFVVBfVVJMX0FSTTY0PWh0dHBzOi8vYXJ0aWZhY3RzLms4cy5pby9iaW5hcmllcy9rb3BzLzEuMTkuMC1hbHBoYS4xL2xpbnV4L2FybTY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE5LjAtYWxwaGEuMS9saW51eC1hcm02NC1ub2RldXAsaHR0cHM6Ly9rdWJldXB2Mi5zMy5hbWF6b25hd3MuY29tL2tvcHMvMS4xOS4wLWFscGhhLjEvbGludXgvYXJtNjQvbm9kZXVwCk5PREVVUF9IQVNIX0FSTTY0PTMwMGJmYWRlMDI0ZWRlNGZlODk5NmM5ZWU2MzkzZTk3NDYzYmVhNGVhZmZkMDg3NjMxMDcxMGRjZGViYmY4ZDMKCmV4cG9ydCBBV1NfUkVHSU9OPXVzLXRlc3QtMQoKCgoKZnVuY3Rpb24gZW5zdXJlLWluc3RhbGwtZGlyKCkgewogIElOU1RBTExfRElSPSIvb3B0L2tvcHMiCiAgIyBPbiBDb250YWluZXJPUywgd2UgaW5zdGFsbCB1bmRlciAvdmFyL2xpYi90b29sYm94OyAvb3B0IGlzIHJvIGFuZCBub2V4ZWMKICBpZiBbWyAtZCAvdmFyL2xpYi90b29sYm94IF1dOyB0aGVuCiAgICBJTlNUQUxMX0RJUj0iL3Zhci9saWIvdG9vbGJveC9rb3BzIgogIGZpCiAgbWtkaXIgLXAgJHtJTlNUQUxMX0RJUn0vYmluCiAgbWtkaXIgLXAgJHtJTlNUQUxMX0RJUn0vY29uZgogIGNkICR7SU5TVEFMTF9ESVJ9Cn0KCiMgUmV0cnkgYSBkb3dubG9hZCB1bnRpbCB3ZSBnZXQgaXQuIGFyZ3M6IG5hbWUsIHNoYSwgdXJsMSwgdXJsMi4uLgpkb3dubG9hZC1vci1idXN0KCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGhhc2g9IiQyIgogIHNoaWZ0IDIKCiAgdXJscz0oICQqICkKICB3aGlsZSB0cnVlOyBkbwogICAgZm9yIHVybCBpbiAiJHt1cmxzW0BdfSI7IGRvCiAgICAgIGNvbW1hbmRzPSgKICAgICAgICAiY3VybCAtZiAtLWlwdjQgLS1jb21wcmVzc2VkIC1MbyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQgMjAgLS1yZXRyeSA2IC0tcmV0cnktZGVsYXkgMTAiCiAgICAgICAgIndnZXQgLS1pbmV0NC1vbmx5IC0tY29tcHJlc3Npb249YXV0byAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgICAiY3VybCAtZiAtLWlwdjQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLU8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0PTIwIC0tdHJpZXM9NiAtLXdhaXQ9MTAiCiAgICAgICkKICAgICAgZm9yIGNtZCBpbiAiJHtjb21tYW5kc1tAXX0iOyBkbwogICAgICAgIGVjaG8gIkF0dGVtcHRpbmcgZG93bmxvYWQgd2l0aDogJHtjbWR9IHt1cmx9IgogICAgICAgIGlmICEgKCR7Y21kfSAiJHt1cmx9Iik7IHRoZW4KICAgICAgICAgIGVjaG8gIj09IERvd25sb2FkIGZhaWxlZCB3aXRoICR7Y21kfSA9PSIKICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgZmkKICAgICAgICBpZiBbWyAtbiAiJHtoYXNofSIgXV0gJiYgISB2YWxpZGF0ZS1oYXNoICIke2ZpbGV9IiAiJHtoYXNofSI7IHRoZW4KICAgICAgICAgIGVjaG8gIj09IEhhc2ggdmFsaWRhdGlvbiBvZiAke3VybH0gZmFpbGVkLiBSZXRyeWluZy4gPT0iCiAgICAgICAgICBybSAtZiAiJHtmaWxlfSIKICAgICAgICBlbHNlCiAgICAgICAgICBpZiBbWyAtbiAiJHtoYXNofSIgXV07IHRoZW4KICAgICAgICAgICAgZWNobyAiPT0gRG93bmxvYWRlZCAke3VybH0gKFNIQTEgPSAke2hhc2h9KSA9PSIKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgZWNobyAiPT0gRG93bmxvYWRlZCAke3VybH0gPT0iCiAgICAgICAgICBmaQogICAgICAgICAgcmV0dXJuCiAgICAgICAgZmkKICAgICAgZG9uZQogICAgZG9uZQoKICAgIGVjaG8gIkFsbCBkb3dubG9hZHMgZmFpbGVkOyBzbGVlcGluZyBiZWZvcmUgcmV0cnlpbmciCiAgICBzbGVlcCA2MAogIGRvbmUKfQoKdmFsaWRhdGUtaGFzaCgpIHsKICBsb2NhbCAtciBmaWxlPSIkMSIKICBsb2NhbCAtciBleHBlY3RlZD0iJDIiCiAgbG9jYWwgYWN0dWFsCgogIGFjdHVhbD0kKHNoYTI1NnN1bSAke2ZpbGV9IHwgYXdrICd7IHByaW50ICQxIH0nKSB8fCB0cnVlCiAgaWYgW1sgIiR7YWN0dWFsfSIgIT0gIiR7ZXhwZWN0ZWR9IiBdXTsgdGhlbgogICAgZWNobyAiPT0gJHtmaWxlfSBjb3JydXB0ZWQsIGhhc2ggJHthY3R1YWx9IGRvZXNuJ3QgbWF0Y2ggZXhwZWN0ZWQgJHtleHBlY3RlZH0gPT0iCiAgICByZXR1cm4gMQogIGZpCn0KCmZ1bmN0aW9uIHNwbGl0LWNvbW1hcygpIHsKICBlY2hvICQxIHwgdHIgIiwiICJcbiIKfQoKZnVuY3Rpb24gdHJ5LWRvd25sb2FkLXJlbGVhc2UoKSB7CiAgbG9jYWwgLXIgbm9kZXVwX3VybHM9KCAkKHNwbGl0LWNvbW1hcyAiJHtOT0RFVVBfVVJMfSIpICkKICBpZiBbWyAtbiAiJHtOT0RFVVBfSEFTSDotfSIgXV07IHRoZW4KICAgIGxvY2FsIC1yIG5vZGV1cF9oYXNoPSIke05PREVVUF9IQVNIfSIKICBlbHNlCiAgIyBUT0RPOiBSZW1vdmU/CiAgICBlY2hvICJEb3dubG9hZGluZyBzaGEyNTYgKG5vdCBmb3VuZCBpbiBlbnYpIgogICAgZG93bmxvYWQtb3ItYnVzdCBub2RldXAuc2hhMjU2ICIiICIke25vZGV1cF91cmxzW0BdLyUvLnNoYTI1Nn0iCiAgICBsb2NhbCAtciBub2RldXBfaGFzaD0kKGNhdCBub2RldXAuc2hhMjU2KQogIGZpCgogIGVjaG8gIkRvd25sb2FkaW5nIG5vZGV1cCAoJHtub2RldXBfdXJsc1tAXX0pIgogIGRvd25sb2FkLW9yLWJ1c3Qgbm9kZXVwICIke25vZGV1cF9oYXNofSIgIiR7bm9kZXVwX3VybHNbQF19IgoKICBjaG1vZCAreCBub2RldXAKfQoKZnVuY3Rpb24gZG93bmxvYWQtcmVsZWFzZSgpIHsKICBjYXNlICIkKHVuYW1lIC1tKSIgaW4KICB4ODZfNjQqfGk/ODZfNjQqfGFtZDY0KikKICAgIE5PREVVUF9VUkw9IiR7Tk9ERVVQX1VSTF9BTUQ2NH0iCiAgICBOT0RFVVBfSEFTSD0iJHtOT0RFVVBfSEFTSF9BTUQ2NH0iCiAgICA7OwogIGFhcmNoNjQqfGFybTY0KikKICAgIE5PREVVUF9VUkw9IiR7Tk9ERVVQX1VSTF9BUk02NH0iCiAgICBOT0RFVVBfSEFTSD0iJHtOT0RFVVBfSEFTSF9BUk02NH0iCiAgICA7OwogICopCiAgICBlY2hvICJVbnN1cHBvcnRlZCBob3N0IGFyY2g6ICQodW5hbWUgLW0pIiA+JjIKICAgIGV4aXQgMQogICAgOzsKICBlc2FjCgogICMgSW4gY2FzZSBvZiBmYWlsdXJlIGNoZWNraW5nIGludGVncml0eSBvZiByZWxlYXNlLCByZXRyeS4KICBjZCAke0lOU1RBTExfRElSfS9iaW4KICB1bnRpbCB0cnktZG93bmxvYWQtcmVsZWFzZTsgZG8KICAgIHNsZWVwIDE1CiAgICBlY2hvICJDb3VsZG4ndCBkb3dubG9hZCByZWxlYXNlLiBSZXRyeWluZy4uLiIKICBkb25lCgogIGVjaG8gIlJ1bm5pbmcgbm9kZXVwIgogICMgV2UgY2FuJ3QgcnVuIGluIHRoZSBmb3JlZ3JvdW5kIGJlY2F1c2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci9kb2NrZXIvaXNzdWVzLzIzNzkzCiAgKCBjZCAke0lOU1RBTExfRElSfS9iaW47IC4vbm9kZXVwIC0taW5zdGFsbC1zeXN0ZW1kLXVuaXQgLS1jb25mPSR7SU5TVEFMTF9ESVJ9L2NvbmYva3ViZV9lbnYueWFtbCAtLXY9OCAgKQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi9iaW4vc3lzdGVtZC1tYWNoaW5lLWlkLXNldHVwIHx8IGVjaG8gImZhaWxlZCB0byBzZXQgdXAgZW5zdXJlIG1hY2hpbmUtaWQgY29uZmlndXJlZCIKCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBzdGFydGluZyA9PSIKZW5zdXJlLWluc3RhbGwtZGlyCgpjYXQgPiBjb25mL2NsdXN0ZXJfc3BlYy55YW1sIDw8ICdfX0VPRl9DTFVTVEVSX1NQRUMnCmNsb3VkQ29uZmlnOiBudWxsCmNvbnRhaW5lclJ1bnRpbWU6IGRvY2tlcgpjb250YWluZXJkOgogIHNraXBJbnN0YWxsOiB0cnVlCmRvY2tlcjoKICBpcE1hc3E6IGZhbHNlCiAgaXBUYWJsZXM6IGZhbHNlCiAgbG9nRHJpdmVyOiBqc29uLWZpbGUKICBsb2dMZXZlbDogaW5mbwogIGxvZ09wdDoKICAtIG1heC1zaXplPTEwbQogIC0gbWF4LWZpbGU9NQogIHN0b3JhZ2U6IG92ZXJsYXkyLG92ZXJsYXksYXVmcwogIHZlcnNpb246IDE4LjA2LjMKa3ViZVByb3h5OgogIGNsdXN0ZXJDSURSOiAxMDAuOTYuMC4wLzExCiAgY3B1UmVxdWVzdDogMTAwbQogIGhvc3RuYW1lT3ZlcnJpZGU6ICdAYXdzJwogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtcHJveHk6djEuMTQuMAogIGxvZ0xldmVsOiAyCmt1YmVsZXQ6CiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9uTWFzcXVlcmFkZUNJRFI6IDEwMC42NC4wLjAvMTAKICBwb2RJbmZyYUNvbnRhaW5lckltYWdlOiBrOHMuZ2NyLmlvL3BhdXNlOjMuMgogIHBvZE1hbmlmZXN0UGF0aDogL2V0Yy9rdWJlcm5ldGVzL21hbmlmZXN0cwoKX19FT0ZfQ0xVU1RFUl9TUEVDCgpjYXQgPiBjb25mL2lnX3NwZWMueWFtbCA8PCAnX19FT0ZfSUdfU1BFQycKe30KCl9fRU9GX0lHX1NQRUMKCmNhdCA+IGNvbmYva3ViZV9lbnYueWFtbCA8PCAnX19FT0ZfS1VCRV9FTlYnCkFzc2V0czoKICBhbWQ2NDoKICAtIGMzYjczNmZkMGYwMDM3NjVjMTJkOTlmMmM5OTVhODM2OWU2MjQxZjRAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjE0LjAvYmluL2xpbnV4L2FtZDY0L2t1YmVsZXQKICAtIDdlM2EzZWE2NjMxNTNmOTAwY2JkNTI5MDBhMzljOTFmYTlmMzM0YmVAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjE0LjAvYmluL2xpbnV4L2FtZDY0L2t1YmVjdGwKICAtIDNjYTE1YzBhMThlZTgzMDUyMGNmM2E5NTQwOGJlODI2Y2JkMjU1YTE1MzVhMzhlMGJlOTYwOGIyNWFkOGJmNjRAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9uZXR3b3JrLXBsdWdpbnMvY25pLXBsdWdpbnMtYW1kNjQtdjAuNy41LnRnegogIGFybTY0OgogIC0gZGYzOGUwNDU3NjAyNjM5MzA1NWNjYzc3YzBkY2U3MzYxMjk5NjU2MUBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL3JlbGVhc2UvdjEuMTQuMC9iaW4vbGludXgvYXJtNjQva3ViZWxldAogIC0gMDFjMmI2YjQzZDM2YjZiZmFmYzgwYTM3MzczOTFjMTllYmZiOGFkNUBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL3JlbGVhc2UvdjEuMTQuMC9iaW4vbGludXgvYXJtNjQva3ViZWN0bAogIC0gN2ZlYzkxYWY3OGU5NTQ4ZGYzMDZmMGVjNDNiZWE1MjdjOGMxMGNjM2E5NjgyYzMzZTk3MWM4NTIyYTdmY2RlZEBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL25ldHdvcmstcGx1Z2lucy9jbmktcGx1Z2lucy1hcm02NC12MC43LjUudGd6CkNsdXN0ZXJOYW1lOiBtaW5pbWFsLWpzb24uZXhhbXBsZS5jb20KQ29uZmlnQmFzZTogbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9taW5pbWFsLWpzb24uZXhhbXBsZS5jb20KSW5zdGFuY2VHcm91cE5hbWU6IG5vZGVzCkluc3RhbmNlR3JvdXBSb2xlOiBOb2RlCkt1YmVsZXRDb25maWc6CiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9kZUxhYmVsczoKICAgIGt1YmVybmV0ZXMuaW8vcm9sZTogbm9kZQogICAgbm9kZS1yb2xlLmt1YmVybmV0ZXMuaW8vbm9kZTogIiIKICBub25NYXNxdWVyYWRlQ0lEUjogMTAwLjY0LjAuMC8xMAogIHBvZEluZnJhQ29udGFpbmVySW1hZ2U6IGs4cy5nY3IuaW8vcGF1c2U6My4yCiAgcG9kTWFuaWZlc3RQYXRoOiAvZXRjL2t1YmVybmV0ZXMvbWFuaWZlc3RzCmNoYW5uZWxzOgotIG1lbWZzOi8vY2x1c3RlcnMuZXhhbXBsZS5jb20vbWluaW1hbC1qc29uLmV4YW1wbGUuY29tL2FkZG9ucy9ib290c3RyYXAtY2hhbm5lbC55YW1sCgpfX0VPRl9LVUJFX0VOVgoKZG93bmxvYWQtcmVsZWFzZQplY2hvICI9PSBub2RldXAgbm9kZSBjb25maWcgZG9uZSA9PSIK diff --git a/tests/integration/update_cluster/minimal-tf11/data/aws_launch_template_master-us-test-1a.masters.minimal-tf11.example.com_user_data b/tests/integration/update_cluster/minimal-tf11/data/aws_launch_template_master-us-test-1a.masters.minimal-tf11.example.com_user_data index b24f16058f95a..8b963c7e4c65e 100644 --- a/tests/integration/update_cluster/minimal-tf11/data/aws_launch_template_master-us-test-1a.masters.minimal-tf11.example.com_user_data +++ b/tests/integration/update_cluster/minimal-tf11/data/aws_launch_template_master-us-test-1a.masters.minimal-tf11.example.com_user_data @@ -1 +1 @@ -IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkxfQU1ENjQ9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xOS4wLWFscGhhLjEvbGludXgvYW1kNjQvbm9kZXVwLGh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzL2tvcHMvcmVsZWFzZXMvZG93bmxvYWQvdjEuMTkuMC1hbHBoYS4xL2xpbnV4LWFtZDY0LW5vZGV1cCxodHRwczovL2t1YmV1cHYyLnMzLmFtYXpvbmF3cy5jb20va29wcy8xLjE5LjAtYWxwaGEuMS9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0hfQU1ENjQ9ZGVmZjExNzlmODBiZDY1MjMyYWYzMGMyNTJhMmI1ZjM5MGIxNjBiYmZlOTk5MDYzN2MwZWM4OGQ3NmNkZDY0NwpOT0RFVVBfVVJMX0FSTTY0PWh0dHBzOi8vYXJ0aWZhY3RzLms4cy5pby9iaW5hcmllcy9rb3BzLzEuMTkuMC1hbHBoYS4xL2xpbnV4L2FybTY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE5LjAtYWxwaGEuMS9saW51eC1hcm02NC1ub2RldXAsaHR0cHM6Ly9rdWJldXB2Mi5zMy5hbWF6b25hd3MuY29tL2tvcHMvMS4xOS4wLWFscGhhLjEvbGludXgvYXJtNjQvbm9kZXVwCk5PREVVUF9IQVNIX0FSTTY0PTMwMGJmYWRlMDI0ZWRlNGZlODk5NmM5ZWU2MzkzZTk3NDYzYmVhNGVhZmZkMDg3NjMxMDcxMGRjZGViYmY4ZDMKCmV4cG9ydCBBV1NfUkVHSU9OPXVzLXRlc3QtMQoKCgoKZnVuY3Rpb24gZW5zdXJlLWluc3RhbGwtZGlyKCkgewogIElOU1RBTExfRElSPSIvb3B0L2tvcHMiCiAgIyBPbiBDb250YWluZXJPUywgd2UgaW5zdGFsbCB1bmRlciAvdmFyL2xpYi90b29sYm94OyAvb3B0IGlzIHJvIGFuZCBub2V4ZWMKICBpZiBbWyAtZCAvdmFyL2xpYi90b29sYm94IF1dOyB0aGVuCiAgICBJTlNUQUxMX0RJUj0iL3Zhci9saWIvdG9vbGJveC9rb3BzIgogIGZpCiAgbWtkaXIgLXAgJHtJTlNUQUxMX0RJUn0vYmluCiAgbWtkaXIgLXAgJHtJTlNUQUxMX0RJUn0vY29uZgogIGNkICR7SU5TVEFMTF9ESVJ9Cn0KCiMgUmV0cnkgYSBkb3dubG9hZCB1bnRpbCB3ZSBnZXQgaXQuIGFyZ3M6IG5hbWUsIHNoYSwgdXJsMSwgdXJsMi4uLgpkb3dubG9hZC1vci1idXN0KCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGhhc2g9IiQyIgogIHNoaWZ0IDIKCiAgdXJscz0oICQqICkKICB3aGlsZSB0cnVlOyBkbwogICAgZm9yIHVybCBpbiAiJHt1cmxzW0BdfSI7IGRvCiAgICAgIGNvbW1hbmRzPSgKICAgICAgICAiY3VybCAtZiAtLWlwdjQgLS1jb21wcmVzc2VkIC1MbyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQgMjAgLS1yZXRyeSA2IC0tcmV0cnktZGVsYXkgMTAiCiAgICAgICAgIndnZXQgLS1pbmV0NC1vbmx5IC0tY29tcHJlc3Npb249YXV0byAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgICAiY3VybCAtZiAtLWlwdjQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLU8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0PTIwIC0tdHJpZXM9NiAtLXdhaXQ9MTAiCiAgICAgICkKICAgICAgZm9yIGNtZCBpbiAiJHtjb21tYW5kc1tAXX0iOyBkbwogICAgICAgIGVjaG8gIkF0dGVtcHRpbmcgZG93bmxvYWQgd2l0aDogJHtjbWR9IHt1cmx9IgogICAgICAgIGlmICEgKCR7Y21kfSAiJHt1cmx9Iik7IHRoZW4KICAgICAgICAgIGVjaG8gIj09IERvd25sb2FkIGZhaWxlZCB3aXRoICR7Y21kfSA9PSIKICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgZmkKICAgICAgICBpZiBbWyAtbiAiJHtoYXNofSIgXV0gJiYgISB2YWxpZGF0ZS1oYXNoICIke2ZpbGV9IiAiJHtoYXNofSI7IHRoZW4KICAgICAgICAgIGVjaG8gIj09IEhhc2ggdmFsaWRhdGlvbiBvZiAke3VybH0gZmFpbGVkLiBSZXRyeWluZy4gPT0iCiAgICAgICAgICBybSAtZiAiJHtmaWxlfSIKICAgICAgICBlbHNlCiAgICAgICAgICBpZiBbWyAtbiAiJHtoYXNofSIgXV07IHRoZW4KICAgICAgICAgICAgZWNobyAiPT0gRG93bmxvYWRlZCAke3VybH0gKFNIQTEgPSAke2hhc2h9KSA9PSIKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgZWNobyAiPT0gRG93bmxvYWRlZCAke3VybH0gPT0iCiAgICAgICAgICBmaQogICAgICAgICAgcmV0dXJuCiAgICAgICAgZmkKICAgICAgZG9uZQogICAgZG9uZQoKICAgIGVjaG8gIkFsbCBkb3dubG9hZHMgZmFpbGVkOyBzbGVlcGluZyBiZWZvcmUgcmV0cnlpbmciCiAgICBzbGVlcCA2MAogIGRvbmUKfQoKdmFsaWRhdGUtaGFzaCgpIHsKICBsb2NhbCAtciBmaWxlPSIkMSIKICBsb2NhbCAtciBleHBlY3RlZD0iJDIiCiAgbG9jYWwgYWN0dWFsCgogIGFjdHVhbD0kKHNoYTI1NnN1bSAke2ZpbGV9IHwgYXdrICd7IHByaW50ICQxIH0nKSB8fCB0cnVlCiAgaWYgW1sgIiR7YWN0dWFsfSIgIT0gIiR7ZXhwZWN0ZWR9IiBdXTsgdGhlbgogICAgZWNobyAiPT0gJHtmaWxlfSBjb3JydXB0ZWQsIGhhc2ggJHthY3R1YWx9IGRvZXNuJ3QgbWF0Y2ggZXhwZWN0ZWQgJHtleHBlY3RlZH0gPT0iCiAgICByZXR1cm4gMQogIGZpCn0KCmZ1bmN0aW9uIHNwbGl0LWNvbW1hcygpIHsKICBlY2hvICQxIHwgdHIgIiwiICJcbiIKfQoKZnVuY3Rpb24gdHJ5LWRvd25sb2FkLXJlbGVhc2UoKSB7CiAgbG9jYWwgLXIgbm9kZXVwX3VybHM9KCAkKHNwbGl0LWNvbW1hcyAiJHtOT0RFVVBfVVJMfSIpICkKICBpZiBbWyAtbiAiJHtOT0RFVVBfSEFTSDotfSIgXV07IHRoZW4KICAgIGxvY2FsIC1yIG5vZGV1cF9oYXNoPSIke05PREVVUF9IQVNIfSIKICBlbHNlCiAgIyBUT0RPOiBSZW1vdmU/CiAgICBlY2hvICJEb3dubG9hZGluZyBzaGEyNTYgKG5vdCBmb3VuZCBpbiBlbnYpIgogICAgZG93bmxvYWQtb3ItYnVzdCBub2RldXAuc2hhMjU2ICIiICIke25vZGV1cF91cmxzW0BdLyUvLnNoYTI1Nn0iCiAgICBsb2NhbCAtciBub2RldXBfaGFzaD0kKGNhdCBub2RldXAuc2hhMjU2KQogIGZpCgogIGVjaG8gIkRvd25sb2FkaW5nIG5vZGV1cCAoJHtub2RldXBfdXJsc1tAXX0pIgogIGRvd25sb2FkLW9yLWJ1c3Qgbm9kZXVwICIke25vZGV1cF9oYXNofSIgIiR7bm9kZXVwX3VybHNbQF19IgoKICBjaG1vZCAreCBub2RldXAKfQoKZnVuY3Rpb24gZG93bmxvYWQtcmVsZWFzZSgpIHsKICBjYXNlICIkKHVuYW1lIC1tKSIgaW4KICB4ODZfNjQqfGk/ODZfNjQqfGFtZDY0KikKICAgIE5PREVVUF9VUkw9IiR7Tk9ERVVQX1VSTF9BTUQ2NH0iCiAgICBOT0RFVVBfSEFTSD0iJHtOT0RFVVBfSEFTSF9BTUQ2NH0iCiAgICA7OwogIGFhcmNoNjQqfGFybTY0KikKICAgIE5PREVVUF9VUkw9IiR7Tk9ERVVQX1VSTF9BUk02NH0iCiAgICBOT0RFVVBfSEFTSD0iJHtOT0RFVVBfSEFTSF9BUk02NH0iCiAgICA7OwogICopCiAgICBlY2hvICJVbnN1cHBvcnRlZCBob3N0IGFyY2g6ICQodW5hbWUgLW0pIiA+JjIKICAgIGV4aXQgMQogICAgOzsKICBlc2FjCgogICMgSW4gY2FzZSBvZiBmYWlsdXJlIGNoZWNraW5nIGludGVncml0eSBvZiByZWxlYXNlLCByZXRyeS4KICBjZCAke0lOU1RBTExfRElSfS9iaW4KICB1bnRpbCB0cnktZG93bmxvYWQtcmVsZWFzZTsgZG8KICAgIHNsZWVwIDE1CiAgICBlY2hvICJDb3VsZG4ndCBkb3dubG9hZCByZWxlYXNlLiBSZXRyeWluZy4uLiIKICBkb25lCgogIGVjaG8gIlJ1bm5pbmcgbm9kZXVwIgogICMgV2UgY2FuJ3QgcnVuIGluIHRoZSBmb3JlZ3JvdW5kIGJlY2F1c2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci9kb2NrZXIvaXNzdWVzLzIzNzkzCiAgKCBjZCAke0lOU1RBTExfRElSfS9iaW47IC4vbm9kZXVwIC0taW5zdGFsbC1zeXN0ZW1kLXVuaXQgLS1jb25mPSR7SU5TVEFMTF9ESVJ9L2NvbmYva3ViZV9lbnYueWFtbCAtLXY9OCAgKQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi9iaW4vc3lzdGVtZC1tYWNoaW5lLWlkLXNldHVwIHx8IGVjaG8gImZhaWxlZCB0byBzZXQgdXAgZW5zdXJlIG1hY2hpbmUtaWQgY29uZmlndXJlZCIKCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBzdGFydGluZyA9PSIKZW5zdXJlLWluc3RhbGwtZGlyCgpjYXQgPiBjb25mL2NsdXN0ZXJfc3BlYy55YW1sIDw8ICdfX0VPRl9DTFVTVEVSX1NQRUMnCmNsb3VkQ29uZmlnOiBudWxsCmNvbnRhaW5lclJ1bnRpbWU6IGRvY2tlcgpjb250YWluZXJkOgogIHNraXBJbnN0YWxsOiB0cnVlCmRvY2tlcjoKICBpcE1hc3E6IGZhbHNlCiAgaXBUYWJsZXM6IGZhbHNlCiAgbG9nRHJpdmVyOiBqc29uLWZpbGUKICBsb2dMZXZlbDogaW5mbwogIGxvZ09wdDoKICAtIG1heC1zaXplPTEwbQogIC0gbWF4LWZpbGU9NQogIHN0b3JhZ2U6IG92ZXJsYXkyLG92ZXJsYXksYXVmcwogIHZlcnNpb246IDE4LjA2LjMKZW5jcnlwdGlvbkNvbmZpZzogbnVsbApldGNkQ2x1c3RlcnM6CiAgZXZlbnRzOgogICAgdmVyc2lvbjogMy4zLjEwCiAgbWFpbjoKICAgIHZlcnNpb246IDMuMy4xMAprdWJlQVBJU2VydmVyOgogIGFsbG93UHJpdmlsZWdlZDogdHJ1ZQogIGFub255bW91c0F1dGg6IGZhbHNlCiAgYXBpU2VydmVyQ291bnQ6IDEKICBhdXRob3JpemF0aW9uTW9kZTogQWx3YXlzQWxsb3cKICBiaW5kQWRkcmVzczogMC4wLjAuMAogIGNsb3VkUHJvdmlkZXI6IGF3cwogIGVuYWJsZUFkbWlzc2lvblBsdWdpbnM6CiAgLSBOYW1lc3BhY2VMaWZlY3ljbGUKICAtIExpbWl0UmFuZ2VyCiAgLSBTZXJ2aWNlQWNjb3VudAogIC0gUGVyc2lzdGVudFZvbHVtZUxhYmVsCiAgLSBEZWZhdWx0U3RvcmFnZUNsYXNzCiAgLSBEZWZhdWx0VG9sZXJhdGlvblNlY29uZHMKICAtIE11dGF0aW5nQWRtaXNzaW9uV2ViaG9vawogIC0gVmFsaWRhdGluZ0FkbWlzc2lvbldlYmhvb2sKICAtIE5vZGVSZXN0cmljdGlvbgogIC0gUmVzb3VyY2VRdW90YQogIGV0Y2RTZXJ2ZXJzOgogIC0gaHR0cDovLzEyNy4wLjAuMTo0MDAxCiAgZXRjZFNlcnZlcnNPdmVycmlkZXM6CiAgLSAvZXZlbnRzI2h0dHA6Ly8xMjcuMC4wLjE6NDAwMgogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtYXBpc2VydmVyOnYxLjE0LjAKICBpbnNlY3VyZUJpbmRBZGRyZXNzOiAxMjcuMC4wLjEKICBpbnNlY3VyZVBvcnQ6IDgwODAKICBrdWJlbGV0UHJlZmVycmVkQWRkcmVzc1R5cGVzOgogIC0gSW50ZXJuYWxJUAogIC0gSG9zdG5hbWUKICAtIEV4dGVybmFsSVAKICBsb2dMZXZlbDogMgogIHJlcXVlc3RoZWFkZXJBbGxvd2VkTmFtZXM6CiAgLSBhZ2dyZWdhdG9yCiAgcmVxdWVzdGhlYWRlckV4dHJhSGVhZGVyUHJlZml4ZXM6CiAgLSBYLVJlbW90ZS1FeHRyYS0KICByZXF1ZXN0aGVhZGVyR3JvdXBIZWFkZXJzOgogIC0gWC1SZW1vdGUtR3JvdXAKICByZXF1ZXN0aGVhZGVyVXNlcm5hbWVIZWFkZXJzOgogIC0gWC1SZW1vdGUtVXNlcgogIHNlY3VyZVBvcnQ6IDQ0MwogIHNlcnZpY2VDbHVzdGVySVBSYW5nZTogMTAwLjY0LjAuMC8xMwogIHN0b3JhZ2VCYWNrZW5kOiBldGNkMwprdWJlQ29udHJvbGxlck1hbmFnZXI6CiAgYWxsb2NhdGVOb2RlQ0lEUnM6IHRydWUKICBhdHRhY2hEZXRhY2hSZWNvbmNpbGVTeW5jUGVyaW9kOiAxbTBzCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckNJRFI6IDEwMC45Ni4wLjAvMTEKICBjbHVzdGVyTmFtZTogbWluaW1hbC10ZjExLmV4YW1wbGUuY29tCiAgY29uZmlndXJlQ2xvdWRSb3V0ZXM6IHRydWUKICBpbWFnZTogazhzLmdjci5pby9rdWJlLWNvbnRyb2xsZXItbWFuYWdlcjp2MS4xNC4wCiAgbGVhZGVyRWxlY3Rpb246CiAgICBsZWFkZXJFbGVjdDogdHJ1ZQogIGxvZ0xldmVsOiAyCiAgdXNlU2VydmljZUFjY291bnRDcmVkZW50aWFsczogdHJ1ZQprdWJlUHJveHk6CiAgY2x1c3RlckNJRFI6IDEwMC45Ni4wLjAvMTEKICBjcHVSZXF1ZXN0OiAxMDBtCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAgaW1hZ2U6IGs4cy5nY3IuaW8va3ViZS1wcm94eTp2MS4xNC4wCiAgbG9nTGV2ZWw6IDIKa3ViZVNjaGVkdWxlcjoKICBpbWFnZTogazhzLmdjci5pby9rdWJlLXNjaGVkdWxlcjp2MS4xNC4wCiAgbGVhZGVyRWxlY3Rpb246CiAgICBsZWFkZXJFbGVjdDogdHJ1ZQogIGxvZ0xldmVsOiAyCmt1YmVsZXQ6CiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9uTWFzcXVlcmFkZUNJRFI6IDEwMC42NC4wLjAvMTAKICBwb2RJbmZyYUNvbnRhaW5lckltYWdlOiBrOHMuZ2NyLmlvL3BhdXNlOjMuMgogIHBvZE1hbmlmZXN0UGF0aDogL2V0Yy9rdWJlcm5ldGVzL21hbmlmZXN0cwptYXN0ZXJLdWJlbGV0OgogIGFub255bW91c0F1dGg6IGZhbHNlCiAgY2dyb3VwUm9vdDogLwogIGNsb3VkUHJvdmlkZXI6IGF3cwogIGNsdXN0ZXJETlM6IDEwMC42NC4wLjEwCiAgY2x1c3RlckRvbWFpbjogY2x1c3Rlci5sb2NhbAogIGVuYWJsZURlYnVnZ2luZ0hhbmRsZXJzOiB0cnVlCiAgZXZpY3Rpb25IYXJkOiBtZW1vcnkuYXZhaWxhYmxlPDEwME1pLG5vZGVmcy5hdmFpbGFibGU8MTAlLG5vZGVmcy5pbm9kZXNGcmVlPDUlLGltYWdlZnMuYXZhaWxhYmxlPDEwJSxpbWFnZWZzLmlub2Rlc0ZyZWU8NSUKICBmZWF0dXJlR2F0ZXM6CiAgICBFeHBlcmltZW50YWxDcml0aWNhbFBvZEFubm90YXRpb246ICJ0cnVlIgogIGhvc3RuYW1lT3ZlcnJpZGU6ICdAYXdzJwogIGt1YmVjb25maWdQYXRoOiAvdmFyL2xpYi9rdWJlbGV0L2t1YmVjb25maWcKICBsb2dMZXZlbDogMgogIG5ldHdvcmtQbHVnaW5NVFU6IDkwMDEKICBuZXR3b3JrUGx1Z2luTmFtZToga3ViZW5ldAogIG5vbk1hc3F1ZXJhZGVDSURSOiAxMDAuNjQuMC4wLzEwCiAgcG9kSW5mcmFDb250YWluZXJJbWFnZTogazhzLmdjci5pby9wYXVzZTozLjIKICBwb2RNYW5pZmVzdFBhdGg6IC9ldGMva3ViZXJuZXRlcy9tYW5pZmVzdHMKICByZWdpc3RlclNjaGVkdWxhYmxlOiBmYWxzZQoKX19FT0ZfQ0xVU1RFUl9TUEVDCgpjYXQgPiBjb25mL2lnX3NwZWMueWFtbCA8PCAnX19FT0ZfSUdfU1BFQycKe30KCl9fRU9GX0lHX1NQRUMKCmNhdCA+IGNvbmYva3ViZV9lbnYueWFtbCA8PCAnX19FT0ZfS1VCRV9FTlYnCkFzc2V0czoKICBhbWQ2NDoKICAtIGMzYjczNmZkMGYwMDM3NjVjMTJkOTlmMmM5OTVhODM2OWU2MjQxZjRAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjE0LjAvYmluL2xpbnV4L2FtZDY0L2t1YmVsZXQKICAtIDdlM2EzZWE2NjMxNTNmOTAwY2JkNTI5MDBhMzljOTFmYTlmMzM0YmVAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjE0LjAvYmluL2xpbnV4L2FtZDY0L2t1YmVjdGwKICAtIDNjYTE1YzBhMThlZTgzMDUyMGNmM2E5NTQwOGJlODI2Y2JkMjU1YTE1MzVhMzhlMGJlOTYwOGIyNWFkOGJmNjRAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9uZXR3b3JrLXBsdWdpbnMvY25pLXBsdWdpbnMtYW1kNjQtdjAuNy41LnRnegogIGFybTY0OgogIC0gZGYzOGUwNDU3NjAyNjM5MzA1NWNjYzc3YzBkY2U3MzYxMjk5NjU2MUBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL3JlbGVhc2UvdjEuMTQuMC9iaW4vbGludXgvYXJtNjQva3ViZWxldAogIC0gMDFjMmI2YjQzZDM2YjZiZmFmYzgwYTM3MzczOTFjMTllYmZiOGFkNUBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL3JlbGVhc2UvdjEuMTQuMC9iaW4vbGludXgvYXJtNjQva3ViZWN0bAogIC0gN2ZlYzkxYWY3OGU5NTQ4ZGYzMDZmMGVjNDNiZWE1MjdjOGMxMGNjM2E5NjgyYzMzZTk3MWM4NTIyYTdmY2RlZEBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL25ldHdvcmstcGx1Z2lucy9jbmktcGx1Z2lucy1hcm02NC12MC43LjUudGd6CkNsdXN0ZXJOYW1lOiBtaW5pbWFsLXRmMTEuZXhhbXBsZS5jb20KQ29uZmlnQmFzZTogbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9taW5pbWFsLXRmMTEuZXhhbXBsZS5jb20KSW5zdGFuY2VHcm91cE5hbWU6IG1hc3Rlci11cy10ZXN0LTFhCkluc3RhbmNlR3JvdXBSb2xlOiBNYXN0ZXIKS3ViZWxldENvbmZpZzoKICBhbm9ueW1vdXNBdXRoOiBmYWxzZQogIGNncm91cFJvb3Q6IC8KICBjbG91ZFByb3ZpZGVyOiBhd3MKICBjbHVzdGVyRE5TOiAxMDAuNjQuMC4xMAogIGNsdXN0ZXJEb21haW46IGNsdXN0ZXIubG9jYWwKICBlbmFibGVEZWJ1Z2dpbmdIYW5kbGVyczogdHJ1ZQogIGV2aWN0aW9uSGFyZDogbWVtb3J5LmF2YWlsYWJsZTwxMDBNaSxub2RlZnMuYXZhaWxhYmxlPDEwJSxub2RlZnMuaW5vZGVzRnJlZTw1JSxpbWFnZWZzLmF2YWlsYWJsZTwxMCUsaW1hZ2Vmcy5pbm9kZXNGcmVlPDUlCiAgZmVhdHVyZUdhdGVzOgogICAgRXhwZXJpbWVudGFsQ3JpdGljYWxQb2RBbm5vdGF0aW9uOiAidHJ1ZSIKICBob3N0bmFtZU92ZXJyaWRlOiAnQGF3cycKICBrdWJlY29uZmlnUGF0aDogL3Zhci9saWIva3ViZWxldC9rdWJlY29uZmlnCiAgbG9nTGV2ZWw6IDIKICBuZXR3b3JrUGx1Z2luTVRVOiA5MDAxCiAgbmV0d29ya1BsdWdpbk5hbWU6IGt1YmVuZXQKICBub2RlTGFiZWxzOgogICAga3ViZXJuZXRlcy5pby9yb2xlOiBtYXN0ZXIKICAgIG5vZGUtcm9sZS5rdWJlcm5ldGVzLmlvL21hc3RlcjogIiIKICBub25NYXNxdWVyYWRlQ0lEUjogMTAwLjY0LjAuMC8xMAogIHBvZEluZnJhQ29udGFpbmVySW1hZ2U6IGs4cy5nY3IuaW8vcGF1c2U6My4yCiAgcG9kTWFuaWZlc3RQYXRoOiAvZXRjL2t1YmVybmV0ZXMvbWFuaWZlc3RzCiAgcmVnaXN0ZXJTY2hlZHVsYWJsZTogZmFsc2UKVGFnczoKLSBfYXV0b21hdGljX3VwZ3JhZGVzCi0gX2F3cwpjaGFubmVsczoKLSBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL21pbmltYWwtdGYxMS5leGFtcGxlLmNvbS9hZGRvbnMvYm9vdHN0cmFwLWNoYW5uZWwueWFtbApldGNkTWFuaWZlc3RzOgotIG1lbWZzOi8vY2x1c3RlcnMuZXhhbXBsZS5jb20vbWluaW1hbC10ZjExLmV4YW1wbGUuY29tL21hbmlmZXN0cy9ldGNkL21haW4ueWFtbAotIG1lbWZzOi8vY2x1c3RlcnMuZXhhbXBsZS5jb20vbWluaW1hbC10ZjExLmV4YW1wbGUuY29tL21hbmlmZXN0cy9ldGNkL2V2ZW50cy55YW1sCnByb3Rva3ViZUltYWdlOgogIGhhc2g6IDIxMzExNmM1MTBkNmYzZWVlY2UwZmNhYWZmNWYxNjg2MDkyODhhZDc3MDUzNjVkODM5YTgxM2Y1Y2M4YWRlYjQKICBuYW1lOiBwcm90b2t1YmU6MS4xOS4wLWFscGhhLjEKICBzb3VyY2VzOgogIC0gaHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xOS4wLWFscGhhLjEvaW1hZ2VzL3Byb3Rva3ViZS50YXIuZ3oKICAtIGh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzL2tvcHMvcmVsZWFzZXMvZG93bmxvYWQvdjEuMTkuMC1hbHBoYS4xL2ltYWdlcy1wcm90b2t1YmUudGFyLmd6CiAgLSBodHRwczovL2t1YmV1cHYyLnMzLmFtYXpvbmF3cy5jb20va29wcy8xLjE5LjAtYWxwaGEuMS9pbWFnZXMvcHJvdG9rdWJlLnRhci5negoKX19FT0ZfS1VCRV9FTlYKCmRvd25sb2FkLXJlbGVhc2UKZWNobyAiPT0gbm9kZXVwIG5vZGUgY29uZmlnIGRvbmUgPT0iCg== +IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkxfQU1ENjQ9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xOS4wLWFscGhhLjEvbGludXgvYW1kNjQvbm9kZXVwLGh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzL2tvcHMvcmVsZWFzZXMvZG93bmxvYWQvdjEuMTkuMC1hbHBoYS4xL2xpbnV4LWFtZDY0LW5vZGV1cCxodHRwczovL2t1YmV1cHYyLnMzLmFtYXpvbmF3cy5jb20va29wcy8xLjE5LjAtYWxwaGEuMS9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0hfQU1ENjQ9ZGVmZjExNzlmODBiZDY1MjMyYWYzMGMyNTJhMmI1ZjM5MGIxNjBiYmZlOTk5MDYzN2MwZWM4OGQ3NmNkZDY0NwpOT0RFVVBfVVJMX0FSTTY0PWh0dHBzOi8vYXJ0aWZhY3RzLms4cy5pby9iaW5hcmllcy9rb3BzLzEuMTkuMC1hbHBoYS4xL2xpbnV4L2FybTY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE5LjAtYWxwaGEuMS9saW51eC1hcm02NC1ub2RldXAsaHR0cHM6Ly9rdWJldXB2Mi5zMy5hbWF6b25hd3MuY29tL2tvcHMvMS4xOS4wLWFscGhhLjEvbGludXgvYXJtNjQvbm9kZXVwCk5PREVVUF9IQVNIX0FSTTY0PTMwMGJmYWRlMDI0ZWRlNGZlODk5NmM5ZWU2MzkzZTk3NDYzYmVhNGVhZmZkMDg3NjMxMDcxMGRjZGViYmY4ZDMKCmV4cG9ydCBBV1NfUkVHSU9OPXVzLXRlc3QtMQoKCgoKZnVuY3Rpb24gZW5zdXJlLWluc3RhbGwtZGlyKCkgewogIElOU1RBTExfRElSPSIvb3B0L2tvcHMiCiAgIyBPbiBDb250YWluZXJPUywgd2UgaW5zdGFsbCB1bmRlciAvdmFyL2xpYi90b29sYm94OyAvb3B0IGlzIHJvIGFuZCBub2V4ZWMKICBpZiBbWyAtZCAvdmFyL2xpYi90b29sYm94IF1dOyB0aGVuCiAgICBJTlNUQUxMX0RJUj0iL3Zhci9saWIvdG9vbGJveC9rb3BzIgogIGZpCiAgbWtkaXIgLXAgJHtJTlNUQUxMX0RJUn0vYmluCiAgbWtkaXIgLXAgJHtJTlNUQUxMX0RJUn0vY29uZgogIGNkICR7SU5TVEFMTF9ESVJ9Cn0KCiMgUmV0cnkgYSBkb3dubG9hZCB1bnRpbCB3ZSBnZXQgaXQuIGFyZ3M6IG5hbWUsIHNoYSwgdXJsMSwgdXJsMi4uLgpkb3dubG9hZC1vci1idXN0KCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGhhc2g9IiQyIgogIHNoaWZ0IDIKCiAgdXJscz0oICQqICkKICB3aGlsZSB0cnVlOyBkbwogICAgZm9yIHVybCBpbiAiJHt1cmxzW0BdfSI7IGRvCiAgICAgIGNvbW1hbmRzPSgKICAgICAgICAiY3VybCAtZiAtLWlwdjQgLS1jb21wcmVzc2VkIC1MbyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQgMjAgLS1yZXRyeSA2IC0tcmV0cnktZGVsYXkgMTAiCiAgICAgICAgIndnZXQgLS1pbmV0NC1vbmx5IC0tY29tcHJlc3Npb249YXV0byAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgICAiY3VybCAtZiAtLWlwdjQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLU8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0PTIwIC0tdHJpZXM9NiAtLXdhaXQ9MTAiCiAgICAgICkKICAgICAgZm9yIGNtZCBpbiAiJHtjb21tYW5kc1tAXX0iOyBkbwogICAgICAgIGVjaG8gIkF0dGVtcHRpbmcgZG93bmxvYWQgd2l0aDogJHtjbWR9IHt1cmx9IgogICAgICAgIGlmICEgKCR7Y21kfSAiJHt1cmx9Iik7IHRoZW4KICAgICAgICAgIGVjaG8gIj09IERvd25sb2FkIGZhaWxlZCB3aXRoICR7Y21kfSA9PSIKICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgZmkKICAgICAgICBpZiBbWyAtbiAiJHtoYXNofSIgXV0gJiYgISB2YWxpZGF0ZS1oYXNoICIke2ZpbGV9IiAiJHtoYXNofSI7IHRoZW4KICAgICAgICAgIGVjaG8gIj09IEhhc2ggdmFsaWRhdGlvbiBvZiAke3VybH0gZmFpbGVkLiBSZXRyeWluZy4gPT0iCiAgICAgICAgICBybSAtZiAiJHtmaWxlfSIKICAgICAgICBlbHNlCiAgICAgICAgICBpZiBbWyAtbiAiJHtoYXNofSIgXV07IHRoZW4KICAgICAgICAgICAgZWNobyAiPT0gRG93bmxvYWRlZCAke3VybH0gKFNIQTEgPSAke2hhc2h9KSA9PSIKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgZWNobyAiPT0gRG93bmxvYWRlZCAke3VybH0gPT0iCiAgICAgICAgICBmaQogICAgICAgICAgcmV0dXJuCiAgICAgICAgZmkKICAgICAgZG9uZQogICAgZG9uZQoKICAgIGVjaG8gIkFsbCBkb3dubG9hZHMgZmFpbGVkOyBzbGVlcGluZyBiZWZvcmUgcmV0cnlpbmciCiAgICBzbGVlcCA2MAogIGRvbmUKfQoKdmFsaWRhdGUtaGFzaCgpIHsKICBsb2NhbCAtciBmaWxlPSIkMSIKICBsb2NhbCAtciBleHBlY3RlZD0iJDIiCiAgbG9jYWwgYWN0dWFsCgogIGFjdHVhbD0kKHNoYTI1NnN1bSAke2ZpbGV9IHwgYXdrICd7IHByaW50ICQxIH0nKSB8fCB0cnVlCiAgaWYgW1sgIiR7YWN0dWFsfSIgIT0gIiR7ZXhwZWN0ZWR9IiBdXTsgdGhlbgogICAgZWNobyAiPT0gJHtmaWxlfSBjb3JydXB0ZWQsIGhhc2ggJHthY3R1YWx9IGRvZXNuJ3QgbWF0Y2ggZXhwZWN0ZWQgJHtleHBlY3RlZH0gPT0iCiAgICByZXR1cm4gMQogIGZpCn0KCmZ1bmN0aW9uIHNwbGl0LWNvbW1hcygpIHsKICBlY2hvICQxIHwgdHIgIiwiICJcbiIKfQoKZnVuY3Rpb24gdHJ5LWRvd25sb2FkLXJlbGVhc2UoKSB7CiAgbG9jYWwgLXIgbm9kZXVwX3VybHM9KCAkKHNwbGl0LWNvbW1hcyAiJHtOT0RFVVBfVVJMfSIpICkKICBpZiBbWyAtbiAiJHtOT0RFVVBfSEFTSDotfSIgXV07IHRoZW4KICAgIGxvY2FsIC1yIG5vZGV1cF9oYXNoPSIke05PREVVUF9IQVNIfSIKICBlbHNlCiAgIyBUT0RPOiBSZW1vdmU/CiAgICBlY2hvICJEb3dubG9hZGluZyBzaGEyNTYgKG5vdCBmb3VuZCBpbiBlbnYpIgogICAgZG93bmxvYWQtb3ItYnVzdCBub2RldXAuc2hhMjU2ICIiICIke25vZGV1cF91cmxzW0BdLyUvLnNoYTI1Nn0iCiAgICBsb2NhbCAtciBub2RldXBfaGFzaD0kKGNhdCBub2RldXAuc2hhMjU2KQogIGZpCgogIGVjaG8gIkRvd25sb2FkaW5nIG5vZGV1cCAoJHtub2RldXBfdXJsc1tAXX0pIgogIGRvd25sb2FkLW9yLWJ1c3Qgbm9kZXVwICIke25vZGV1cF9oYXNofSIgIiR7bm9kZXVwX3VybHNbQF19IgoKICBjaG1vZCAreCBub2RldXAKfQoKZnVuY3Rpb24gZG93bmxvYWQtcmVsZWFzZSgpIHsKICBjYXNlICIkKHVuYW1lIC1tKSIgaW4KICB4ODZfNjQqfGk/ODZfNjQqfGFtZDY0KikKICAgIE5PREVVUF9VUkw9IiR7Tk9ERVVQX1VSTF9BTUQ2NH0iCiAgICBOT0RFVVBfSEFTSD0iJHtOT0RFVVBfSEFTSF9BTUQ2NH0iCiAgICA7OwogIGFhcmNoNjQqfGFybTY0KikKICAgIE5PREVVUF9VUkw9IiR7Tk9ERVVQX1VSTF9BUk02NH0iCiAgICBOT0RFVVBfSEFTSD0iJHtOT0RFVVBfSEFTSF9BUk02NH0iCiAgICA7OwogICopCiAgICBlY2hvICJVbnN1cHBvcnRlZCBob3N0IGFyY2g6ICQodW5hbWUgLW0pIiA+JjIKICAgIGV4aXQgMQogICAgOzsKICBlc2FjCgogICMgSW4gY2FzZSBvZiBmYWlsdXJlIGNoZWNraW5nIGludGVncml0eSBvZiByZWxlYXNlLCByZXRyeS4KICBjZCAke0lOU1RBTExfRElSfS9iaW4KICB1bnRpbCB0cnktZG93bmxvYWQtcmVsZWFzZTsgZG8KICAgIHNsZWVwIDE1CiAgICBlY2hvICJDb3VsZG4ndCBkb3dubG9hZCByZWxlYXNlLiBSZXRyeWluZy4uLiIKICBkb25lCgogIGVjaG8gIlJ1bm5pbmcgbm9kZXVwIgogICMgV2UgY2FuJ3QgcnVuIGluIHRoZSBmb3JlZ3JvdW5kIGJlY2F1c2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci9kb2NrZXIvaXNzdWVzLzIzNzkzCiAgKCBjZCAke0lOU1RBTExfRElSfS9iaW47IC4vbm9kZXVwIC0taW5zdGFsbC1zeXN0ZW1kLXVuaXQgLS1jb25mPSR7SU5TVEFMTF9ESVJ9L2NvbmYva3ViZV9lbnYueWFtbCAtLXY9OCAgKQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi9iaW4vc3lzdGVtZC1tYWNoaW5lLWlkLXNldHVwIHx8IGVjaG8gImZhaWxlZCB0byBzZXQgdXAgZW5zdXJlIG1hY2hpbmUtaWQgY29uZmlndXJlZCIKCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBzdGFydGluZyA9PSIKZW5zdXJlLWluc3RhbGwtZGlyCgpjYXQgPiBjb25mL2NsdXN0ZXJfc3BlYy55YW1sIDw8ICdfX0VPRl9DTFVTVEVSX1NQRUMnCmNsb3VkQ29uZmlnOiBudWxsCmNvbnRhaW5lclJ1bnRpbWU6IGRvY2tlcgpjb250YWluZXJkOgogIHNraXBJbnN0YWxsOiB0cnVlCmRvY2tlcjoKICBpcE1hc3E6IGZhbHNlCiAgaXBUYWJsZXM6IGZhbHNlCiAgbG9nRHJpdmVyOiBqc29uLWZpbGUKICBsb2dMZXZlbDogaW5mbwogIGxvZ09wdDoKICAtIG1heC1zaXplPTEwbQogIC0gbWF4LWZpbGU9NQogIHN0b3JhZ2U6IG92ZXJsYXkyLG92ZXJsYXksYXVmcwogIHZlcnNpb246IDE4LjA2LjMKZW5jcnlwdGlvbkNvbmZpZzogbnVsbApldGNkQ2x1c3RlcnM6CiAgZXZlbnRzOgogICAgdmVyc2lvbjogMy4zLjEwCiAgbWFpbjoKICAgIHZlcnNpb246IDMuMy4xMAprdWJlQVBJU2VydmVyOgogIGFsbG93UHJpdmlsZWdlZDogdHJ1ZQogIGFub255bW91c0F1dGg6IGZhbHNlCiAgYXBpU2VydmVyQ291bnQ6IDEKICBhdXRob3JpemF0aW9uTW9kZTogQWx3YXlzQWxsb3cKICBiaW5kQWRkcmVzczogMC4wLjAuMAogIGNsb3VkUHJvdmlkZXI6IGF3cwogIGVuYWJsZUFkbWlzc2lvblBsdWdpbnM6CiAgLSBOYW1lc3BhY2VMaWZlY3ljbGUKICAtIExpbWl0UmFuZ2VyCiAgLSBTZXJ2aWNlQWNjb3VudAogIC0gUGVyc2lzdGVudFZvbHVtZUxhYmVsCiAgLSBEZWZhdWx0U3RvcmFnZUNsYXNzCiAgLSBEZWZhdWx0VG9sZXJhdGlvblNlY29uZHMKICAtIE11dGF0aW5nQWRtaXNzaW9uV2ViaG9vawogIC0gVmFsaWRhdGluZ0FkbWlzc2lvbldlYmhvb2sKICAtIE5vZGVSZXN0cmljdGlvbgogIC0gUmVzb3VyY2VRdW90YQogIGV0Y2RTZXJ2ZXJzOgogIC0gaHR0cDovLzEyNy4wLjAuMTo0MDAxCiAgZXRjZFNlcnZlcnNPdmVycmlkZXM6CiAgLSAvZXZlbnRzI2h0dHA6Ly8xMjcuMC4wLjE6NDAwMgogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtYXBpc2VydmVyOnYxLjE0LjAKICBpbnNlY3VyZUJpbmRBZGRyZXNzOiAxMjcuMC4wLjEKICBpbnNlY3VyZVBvcnQ6IDgwODAKICBrdWJlbGV0UHJlZmVycmVkQWRkcmVzc1R5cGVzOgogIC0gSW50ZXJuYWxJUAogIC0gSG9zdG5hbWUKICAtIEV4dGVybmFsSVAKICBsb2dMZXZlbDogMgogIHJlcXVlc3RoZWFkZXJBbGxvd2VkTmFtZXM6CiAgLSBhZ2dyZWdhdG9yCiAgcmVxdWVzdGhlYWRlckV4dHJhSGVhZGVyUHJlZml4ZXM6CiAgLSBYLVJlbW90ZS1FeHRyYS0KICByZXF1ZXN0aGVhZGVyR3JvdXBIZWFkZXJzOgogIC0gWC1SZW1vdGUtR3JvdXAKICByZXF1ZXN0aGVhZGVyVXNlcm5hbWVIZWFkZXJzOgogIC0gWC1SZW1vdGUtVXNlcgogIHNlY3VyZVBvcnQ6IDQ0MwogIHNlcnZpY2VDbHVzdGVySVBSYW5nZTogMTAwLjY0LjAuMC8xMwogIHN0b3JhZ2VCYWNrZW5kOiBldGNkMwprdWJlQ29udHJvbGxlck1hbmFnZXI6CiAgYWxsb2NhdGVOb2RlQ0lEUnM6IHRydWUKICBhdHRhY2hEZXRhY2hSZWNvbmNpbGVTeW5jUGVyaW9kOiAxbTBzCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckNJRFI6IDEwMC45Ni4wLjAvMTEKICBjbHVzdGVyTmFtZTogbWluaW1hbC10ZjExLmV4YW1wbGUuY29tCiAgY29uZmlndXJlQ2xvdWRSb3V0ZXM6IHRydWUKICBpbWFnZTogazhzLmdjci5pby9rdWJlLWNvbnRyb2xsZXItbWFuYWdlcjp2MS4xNC4wCiAgbGVhZGVyRWxlY3Rpb246CiAgICBsZWFkZXJFbGVjdDogdHJ1ZQogIGxvZ0xldmVsOiAyCiAgdXNlU2VydmljZUFjY291bnRDcmVkZW50aWFsczogdHJ1ZQprdWJlUHJveHk6CiAgY2x1c3RlckNJRFI6IDEwMC45Ni4wLjAvMTEKICBjcHVSZXF1ZXN0OiAxMDBtCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAgaW1hZ2U6IGs4cy5nY3IuaW8va3ViZS1wcm94eTp2MS4xNC4wCiAgbG9nTGV2ZWw6IDIKa3ViZVNjaGVkdWxlcjoKICBpbWFnZTogazhzLmdjci5pby9rdWJlLXNjaGVkdWxlcjp2MS4xNC4wCiAgbGVhZGVyRWxlY3Rpb246CiAgICBsZWFkZXJFbGVjdDogdHJ1ZQogIGxvZ0xldmVsOiAyCmt1YmVsZXQ6CiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9uTWFzcXVlcmFkZUNJRFI6IDEwMC42NC4wLjAvMTAKICBwb2RJbmZyYUNvbnRhaW5lckltYWdlOiBrOHMuZ2NyLmlvL3BhdXNlOjMuMgogIHBvZE1hbmlmZXN0UGF0aDogL2V0Yy9rdWJlcm5ldGVzL21hbmlmZXN0cwptYXN0ZXJLdWJlbGV0OgogIGFub255bW91c0F1dGg6IGZhbHNlCiAgY2dyb3VwUm9vdDogLwogIGNsb3VkUHJvdmlkZXI6IGF3cwogIGNsdXN0ZXJETlM6IDEwMC42NC4wLjEwCiAgY2x1c3RlckRvbWFpbjogY2x1c3Rlci5sb2NhbAogIGVuYWJsZURlYnVnZ2luZ0hhbmRsZXJzOiB0cnVlCiAgZXZpY3Rpb25IYXJkOiBtZW1vcnkuYXZhaWxhYmxlPDEwME1pLG5vZGVmcy5hdmFpbGFibGU8MTAlLG5vZGVmcy5pbm9kZXNGcmVlPDUlLGltYWdlZnMuYXZhaWxhYmxlPDEwJSxpbWFnZWZzLmlub2Rlc0ZyZWU8NSUKICBmZWF0dXJlR2F0ZXM6CiAgICBFeHBlcmltZW50YWxDcml0aWNhbFBvZEFubm90YXRpb246ICJ0cnVlIgogIGhvc3RuYW1lT3ZlcnJpZGU6ICdAYXdzJwogIGt1YmVjb25maWdQYXRoOiAvdmFyL2xpYi9rdWJlbGV0L2t1YmVjb25maWcKICBsb2dMZXZlbDogMgogIG5ldHdvcmtQbHVnaW5NVFU6IDkwMDEKICBuZXR3b3JrUGx1Z2luTmFtZToga3ViZW5ldAogIG5vbk1hc3F1ZXJhZGVDSURSOiAxMDAuNjQuMC4wLzEwCiAgcG9kSW5mcmFDb250YWluZXJJbWFnZTogazhzLmdjci5pby9wYXVzZTozLjIKICBwb2RNYW5pZmVzdFBhdGg6IC9ldGMva3ViZXJuZXRlcy9tYW5pZmVzdHMKICByZWdpc3RlclNjaGVkdWxhYmxlOiBmYWxzZQoKX19FT0ZfQ0xVU1RFUl9TUEVDCgpjYXQgPiBjb25mL2lnX3NwZWMueWFtbCA8PCAnX19FT0ZfSUdfU1BFQycKe30KCl9fRU9GX0lHX1NQRUMKCmNhdCA+IGNvbmYva3ViZV9lbnYueWFtbCA8PCAnX19FT0ZfS1VCRV9FTlYnCkFzc2V0czoKICBhbWQ2NDoKICAtIGMzYjczNmZkMGYwMDM3NjVjMTJkOTlmMmM5OTVhODM2OWU2MjQxZjRAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjE0LjAvYmluL2xpbnV4L2FtZDY0L2t1YmVsZXQKICAtIDdlM2EzZWE2NjMxNTNmOTAwY2JkNTI5MDBhMzljOTFmYTlmMzM0YmVAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjE0LjAvYmluL2xpbnV4L2FtZDY0L2t1YmVjdGwKICAtIDNjYTE1YzBhMThlZTgzMDUyMGNmM2E5NTQwOGJlODI2Y2JkMjU1YTE1MzVhMzhlMGJlOTYwOGIyNWFkOGJmNjRAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9uZXR3b3JrLXBsdWdpbnMvY25pLXBsdWdpbnMtYW1kNjQtdjAuNy41LnRnegogIGFybTY0OgogIC0gZGYzOGUwNDU3NjAyNjM5MzA1NWNjYzc3YzBkY2U3MzYxMjk5NjU2MUBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL3JlbGVhc2UvdjEuMTQuMC9iaW4vbGludXgvYXJtNjQva3ViZWxldAogIC0gMDFjMmI2YjQzZDM2YjZiZmFmYzgwYTM3MzczOTFjMTllYmZiOGFkNUBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL3JlbGVhc2UvdjEuMTQuMC9iaW4vbGludXgvYXJtNjQva3ViZWN0bAogIC0gN2ZlYzkxYWY3OGU5NTQ4ZGYzMDZmMGVjNDNiZWE1MjdjOGMxMGNjM2E5NjgyYzMzZTk3MWM4NTIyYTdmY2RlZEBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL25ldHdvcmstcGx1Z2lucy9jbmktcGx1Z2lucy1hcm02NC12MC43LjUudGd6CkNsdXN0ZXJOYW1lOiBtaW5pbWFsLXRmMTEuZXhhbXBsZS5jb20KQ29uZmlnQmFzZTogbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9taW5pbWFsLXRmMTEuZXhhbXBsZS5jb20KSW5zdGFuY2VHcm91cE5hbWU6IG1hc3Rlci11cy10ZXN0LTFhCkluc3RhbmNlR3JvdXBSb2xlOiBNYXN0ZXIKS3ViZWxldENvbmZpZzoKICBhbm9ueW1vdXNBdXRoOiBmYWxzZQogIGNncm91cFJvb3Q6IC8KICBjbG91ZFByb3ZpZGVyOiBhd3MKICBjbHVzdGVyRE5TOiAxMDAuNjQuMC4xMAogIGNsdXN0ZXJEb21haW46IGNsdXN0ZXIubG9jYWwKICBlbmFibGVEZWJ1Z2dpbmdIYW5kbGVyczogdHJ1ZQogIGV2aWN0aW9uSGFyZDogbWVtb3J5LmF2YWlsYWJsZTwxMDBNaSxub2RlZnMuYXZhaWxhYmxlPDEwJSxub2RlZnMuaW5vZGVzRnJlZTw1JSxpbWFnZWZzLmF2YWlsYWJsZTwxMCUsaW1hZ2Vmcy5pbm9kZXNGcmVlPDUlCiAgZmVhdHVyZUdhdGVzOgogICAgRXhwZXJpbWVudGFsQ3JpdGljYWxQb2RBbm5vdGF0aW9uOiAidHJ1ZSIKICBob3N0bmFtZU92ZXJyaWRlOiAnQGF3cycKICBrdWJlY29uZmlnUGF0aDogL3Zhci9saWIva3ViZWxldC9rdWJlY29uZmlnCiAgbG9nTGV2ZWw6IDIKICBuZXR3b3JrUGx1Z2luTVRVOiA5MDAxCiAgbmV0d29ya1BsdWdpbk5hbWU6IGt1YmVuZXQKICBub2RlTGFiZWxzOgogICAga3ViZXJuZXRlcy5pby9yb2xlOiBtYXN0ZXIKICAgIG5vZGUtcm9sZS5rdWJlcm5ldGVzLmlvL21hc3RlcjogIiIKICBub25NYXNxdWVyYWRlQ0lEUjogMTAwLjY0LjAuMC8xMAogIHBvZEluZnJhQ29udGFpbmVySW1hZ2U6IGs4cy5nY3IuaW8vcGF1c2U6My4yCiAgcG9kTWFuaWZlc3RQYXRoOiAvZXRjL2t1YmVybmV0ZXMvbWFuaWZlc3RzCiAgcmVnaXN0ZXJTY2hlZHVsYWJsZTogZmFsc2UKY2hhbm5lbHM6Ci0gbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9taW5pbWFsLXRmMTEuZXhhbXBsZS5jb20vYWRkb25zL2Jvb3RzdHJhcC1jaGFubmVsLnlhbWwKZXRjZE1hbmlmZXN0czoKLSBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL21pbmltYWwtdGYxMS5leGFtcGxlLmNvbS9tYW5pZmVzdHMvZXRjZC9tYWluLnlhbWwKLSBtZW1mczovL2NsdXN0ZXJzLmV4YW1wbGUuY29tL21pbmltYWwtdGYxMS5leGFtcGxlLmNvbS9tYW5pZmVzdHMvZXRjZC9ldmVudHMueWFtbApwcm90b2t1YmVJbWFnZToKICBoYXNoOiAyMTMxMTZjNTEwZDZmM2VlZWNlMGZjYWFmZjVmMTY4NjA5Mjg4YWQ3NzA1MzY1ZDgzOWE4MTNmNWNjOGFkZWI0CiAgbmFtZTogcHJvdG9rdWJlOjEuMTkuMC1hbHBoYS4xCiAgc291cmNlczoKICAtIGh0dHBzOi8vYXJ0aWZhY3RzLms4cy5pby9iaW5hcmllcy9rb3BzLzEuMTkuMC1hbHBoYS4xL2ltYWdlcy9wcm90b2t1YmUudGFyLmd6CiAgLSBodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE5LjAtYWxwaGEuMS9pbWFnZXMtcHJvdG9rdWJlLnRhci5negogIC0gaHR0cHM6Ly9rdWJldXB2Mi5zMy5hbWF6b25hd3MuY29tL2tvcHMvMS4xOS4wLWFscGhhLjEvaW1hZ2VzL3Byb3Rva3ViZS50YXIuZ3oKCl9fRU9GX0tVQkVfRU5WCgpkb3dubG9hZC1yZWxlYXNlCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBkb25lID09Igo= diff --git a/tests/integration/update_cluster/minimal-tf11/data/aws_launch_template_nodes.minimal-tf11.example.com_user_data b/tests/integration/update_cluster/minimal-tf11/data/aws_launch_template_nodes.minimal-tf11.example.com_user_data index 4c4a21c4fe8b0..657c340c3cbbd 100644 --- a/tests/integration/update_cluster/minimal-tf11/data/aws_launch_template_nodes.minimal-tf11.example.com_user_data +++ b/tests/integration/update_cluster/minimal-tf11/data/aws_launch_template_nodes.minimal-tf11.example.com_user_data @@ -1 +1 @@ -IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkxfQU1ENjQ9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xOS4wLWFscGhhLjEvbGludXgvYW1kNjQvbm9kZXVwLGh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzL2tvcHMvcmVsZWFzZXMvZG93bmxvYWQvdjEuMTkuMC1hbHBoYS4xL2xpbnV4LWFtZDY0LW5vZGV1cCxodHRwczovL2t1YmV1cHYyLnMzLmFtYXpvbmF3cy5jb20va29wcy8xLjE5LjAtYWxwaGEuMS9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0hfQU1ENjQ9ZGVmZjExNzlmODBiZDY1MjMyYWYzMGMyNTJhMmI1ZjM5MGIxNjBiYmZlOTk5MDYzN2MwZWM4OGQ3NmNkZDY0NwpOT0RFVVBfVVJMX0FSTTY0PWh0dHBzOi8vYXJ0aWZhY3RzLms4cy5pby9iaW5hcmllcy9rb3BzLzEuMTkuMC1hbHBoYS4xL2xpbnV4L2FybTY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE5LjAtYWxwaGEuMS9saW51eC1hcm02NC1ub2RldXAsaHR0cHM6Ly9rdWJldXB2Mi5zMy5hbWF6b25hd3MuY29tL2tvcHMvMS4xOS4wLWFscGhhLjEvbGludXgvYXJtNjQvbm9kZXVwCk5PREVVUF9IQVNIX0FSTTY0PTMwMGJmYWRlMDI0ZWRlNGZlODk5NmM5ZWU2MzkzZTk3NDYzYmVhNGVhZmZkMDg3NjMxMDcxMGRjZGViYmY4ZDMKCmV4cG9ydCBBV1NfUkVHSU9OPXVzLXRlc3QtMQoKCgoKZnVuY3Rpb24gZW5zdXJlLWluc3RhbGwtZGlyKCkgewogIElOU1RBTExfRElSPSIvb3B0L2tvcHMiCiAgIyBPbiBDb250YWluZXJPUywgd2UgaW5zdGFsbCB1bmRlciAvdmFyL2xpYi90b29sYm94OyAvb3B0IGlzIHJvIGFuZCBub2V4ZWMKICBpZiBbWyAtZCAvdmFyL2xpYi90b29sYm94IF1dOyB0aGVuCiAgICBJTlNUQUxMX0RJUj0iL3Zhci9saWIvdG9vbGJveC9rb3BzIgogIGZpCiAgbWtkaXIgLXAgJHtJTlNUQUxMX0RJUn0vYmluCiAgbWtkaXIgLXAgJHtJTlNUQUxMX0RJUn0vY29uZgogIGNkICR7SU5TVEFMTF9ESVJ9Cn0KCiMgUmV0cnkgYSBkb3dubG9hZCB1bnRpbCB3ZSBnZXQgaXQuIGFyZ3M6IG5hbWUsIHNoYSwgdXJsMSwgdXJsMi4uLgpkb3dubG9hZC1vci1idXN0KCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGhhc2g9IiQyIgogIHNoaWZ0IDIKCiAgdXJscz0oICQqICkKICB3aGlsZSB0cnVlOyBkbwogICAgZm9yIHVybCBpbiAiJHt1cmxzW0BdfSI7IGRvCiAgICAgIGNvbW1hbmRzPSgKICAgICAgICAiY3VybCAtZiAtLWlwdjQgLS1jb21wcmVzc2VkIC1MbyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQgMjAgLS1yZXRyeSA2IC0tcmV0cnktZGVsYXkgMTAiCiAgICAgICAgIndnZXQgLS1pbmV0NC1vbmx5IC0tY29tcHJlc3Npb249YXV0byAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgICAiY3VybCAtZiAtLWlwdjQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLU8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0PTIwIC0tdHJpZXM9NiAtLXdhaXQ9MTAiCiAgICAgICkKICAgICAgZm9yIGNtZCBpbiAiJHtjb21tYW5kc1tAXX0iOyBkbwogICAgICAgIGVjaG8gIkF0dGVtcHRpbmcgZG93bmxvYWQgd2l0aDogJHtjbWR9IHt1cmx9IgogICAgICAgIGlmICEgKCR7Y21kfSAiJHt1cmx9Iik7IHRoZW4KICAgICAgICAgIGVjaG8gIj09IERvd25sb2FkIGZhaWxlZCB3aXRoICR7Y21kfSA9PSIKICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgZmkKICAgICAgICBpZiBbWyAtbiAiJHtoYXNofSIgXV0gJiYgISB2YWxpZGF0ZS1oYXNoICIke2ZpbGV9IiAiJHtoYXNofSI7IHRoZW4KICAgICAgICAgIGVjaG8gIj09IEhhc2ggdmFsaWRhdGlvbiBvZiAke3VybH0gZmFpbGVkLiBSZXRyeWluZy4gPT0iCiAgICAgICAgICBybSAtZiAiJHtmaWxlfSIKICAgICAgICBlbHNlCiAgICAgICAgICBpZiBbWyAtbiAiJHtoYXNofSIgXV07IHRoZW4KICAgICAgICAgICAgZWNobyAiPT0gRG93bmxvYWRlZCAke3VybH0gKFNIQTEgPSAke2hhc2h9KSA9PSIKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgZWNobyAiPT0gRG93bmxvYWRlZCAke3VybH0gPT0iCiAgICAgICAgICBmaQogICAgICAgICAgcmV0dXJuCiAgICAgICAgZmkKICAgICAgZG9uZQogICAgZG9uZQoKICAgIGVjaG8gIkFsbCBkb3dubG9hZHMgZmFpbGVkOyBzbGVlcGluZyBiZWZvcmUgcmV0cnlpbmciCiAgICBzbGVlcCA2MAogIGRvbmUKfQoKdmFsaWRhdGUtaGFzaCgpIHsKICBsb2NhbCAtciBmaWxlPSIkMSIKICBsb2NhbCAtciBleHBlY3RlZD0iJDIiCiAgbG9jYWwgYWN0dWFsCgogIGFjdHVhbD0kKHNoYTI1NnN1bSAke2ZpbGV9IHwgYXdrICd7IHByaW50ICQxIH0nKSB8fCB0cnVlCiAgaWYgW1sgIiR7YWN0dWFsfSIgIT0gIiR7ZXhwZWN0ZWR9IiBdXTsgdGhlbgogICAgZWNobyAiPT0gJHtmaWxlfSBjb3JydXB0ZWQsIGhhc2ggJHthY3R1YWx9IGRvZXNuJ3QgbWF0Y2ggZXhwZWN0ZWQgJHtleHBlY3RlZH0gPT0iCiAgICByZXR1cm4gMQogIGZpCn0KCmZ1bmN0aW9uIHNwbGl0LWNvbW1hcygpIHsKICBlY2hvICQxIHwgdHIgIiwiICJcbiIKfQoKZnVuY3Rpb24gdHJ5LWRvd25sb2FkLXJlbGVhc2UoKSB7CiAgbG9jYWwgLXIgbm9kZXVwX3VybHM9KCAkKHNwbGl0LWNvbW1hcyAiJHtOT0RFVVBfVVJMfSIpICkKICBpZiBbWyAtbiAiJHtOT0RFVVBfSEFTSDotfSIgXV07IHRoZW4KICAgIGxvY2FsIC1yIG5vZGV1cF9oYXNoPSIke05PREVVUF9IQVNIfSIKICBlbHNlCiAgIyBUT0RPOiBSZW1vdmU/CiAgICBlY2hvICJEb3dubG9hZGluZyBzaGEyNTYgKG5vdCBmb3VuZCBpbiBlbnYpIgogICAgZG93bmxvYWQtb3ItYnVzdCBub2RldXAuc2hhMjU2ICIiICIke25vZGV1cF91cmxzW0BdLyUvLnNoYTI1Nn0iCiAgICBsb2NhbCAtciBub2RldXBfaGFzaD0kKGNhdCBub2RldXAuc2hhMjU2KQogIGZpCgogIGVjaG8gIkRvd25sb2FkaW5nIG5vZGV1cCAoJHtub2RldXBfdXJsc1tAXX0pIgogIGRvd25sb2FkLW9yLWJ1c3Qgbm9kZXVwICIke25vZGV1cF9oYXNofSIgIiR7bm9kZXVwX3VybHNbQF19IgoKICBjaG1vZCAreCBub2RldXAKfQoKZnVuY3Rpb24gZG93bmxvYWQtcmVsZWFzZSgpIHsKICBjYXNlICIkKHVuYW1lIC1tKSIgaW4KICB4ODZfNjQqfGk/ODZfNjQqfGFtZDY0KikKICAgIE5PREVVUF9VUkw9IiR7Tk9ERVVQX1VSTF9BTUQ2NH0iCiAgICBOT0RFVVBfSEFTSD0iJHtOT0RFVVBfSEFTSF9BTUQ2NH0iCiAgICA7OwogIGFhcmNoNjQqfGFybTY0KikKICAgIE5PREVVUF9VUkw9IiR7Tk9ERVVQX1VSTF9BUk02NH0iCiAgICBOT0RFVVBfSEFTSD0iJHtOT0RFVVBfSEFTSF9BUk02NH0iCiAgICA7OwogICopCiAgICBlY2hvICJVbnN1cHBvcnRlZCBob3N0IGFyY2g6ICQodW5hbWUgLW0pIiA+JjIKICAgIGV4aXQgMQogICAgOzsKICBlc2FjCgogICMgSW4gY2FzZSBvZiBmYWlsdXJlIGNoZWNraW5nIGludGVncml0eSBvZiByZWxlYXNlLCByZXRyeS4KICBjZCAke0lOU1RBTExfRElSfS9iaW4KICB1bnRpbCB0cnktZG93bmxvYWQtcmVsZWFzZTsgZG8KICAgIHNsZWVwIDE1CiAgICBlY2hvICJDb3VsZG4ndCBkb3dubG9hZCByZWxlYXNlLiBSZXRyeWluZy4uLiIKICBkb25lCgogIGVjaG8gIlJ1bm5pbmcgbm9kZXVwIgogICMgV2UgY2FuJ3QgcnVuIGluIHRoZSBmb3JlZ3JvdW5kIGJlY2F1c2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci9kb2NrZXIvaXNzdWVzLzIzNzkzCiAgKCBjZCAke0lOU1RBTExfRElSfS9iaW47IC4vbm9kZXVwIC0taW5zdGFsbC1zeXN0ZW1kLXVuaXQgLS1jb25mPSR7SU5TVEFMTF9ESVJ9L2NvbmYva3ViZV9lbnYueWFtbCAtLXY9OCAgKQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi9iaW4vc3lzdGVtZC1tYWNoaW5lLWlkLXNldHVwIHx8IGVjaG8gImZhaWxlZCB0byBzZXQgdXAgZW5zdXJlIG1hY2hpbmUtaWQgY29uZmlndXJlZCIKCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBzdGFydGluZyA9PSIKZW5zdXJlLWluc3RhbGwtZGlyCgpjYXQgPiBjb25mL2NsdXN0ZXJfc3BlYy55YW1sIDw8ICdfX0VPRl9DTFVTVEVSX1NQRUMnCmNsb3VkQ29uZmlnOiBudWxsCmNvbnRhaW5lclJ1bnRpbWU6IGRvY2tlcgpjb250YWluZXJkOgogIHNraXBJbnN0YWxsOiB0cnVlCmRvY2tlcjoKICBpcE1hc3E6IGZhbHNlCiAgaXBUYWJsZXM6IGZhbHNlCiAgbG9nRHJpdmVyOiBqc29uLWZpbGUKICBsb2dMZXZlbDogaW5mbwogIGxvZ09wdDoKICAtIG1heC1zaXplPTEwbQogIC0gbWF4LWZpbGU9NQogIHN0b3JhZ2U6IG92ZXJsYXkyLG92ZXJsYXksYXVmcwogIHZlcnNpb246IDE4LjA2LjMKa3ViZVByb3h5OgogIGNsdXN0ZXJDSURSOiAxMDAuOTYuMC4wLzExCiAgY3B1UmVxdWVzdDogMTAwbQogIGhvc3RuYW1lT3ZlcnJpZGU6ICdAYXdzJwogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtcHJveHk6djEuMTQuMAogIGxvZ0xldmVsOiAyCmt1YmVsZXQ6CiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9uTWFzcXVlcmFkZUNJRFI6IDEwMC42NC4wLjAvMTAKICBwb2RJbmZyYUNvbnRhaW5lckltYWdlOiBrOHMuZ2NyLmlvL3BhdXNlOjMuMgogIHBvZE1hbmlmZXN0UGF0aDogL2V0Yy9rdWJlcm5ldGVzL21hbmlmZXN0cwoKX19FT0ZfQ0xVU1RFUl9TUEVDCgpjYXQgPiBjb25mL2lnX3NwZWMueWFtbCA8PCAnX19FT0ZfSUdfU1BFQycKe30KCl9fRU9GX0lHX1NQRUMKCmNhdCA+IGNvbmYva3ViZV9lbnYueWFtbCA8PCAnX19FT0ZfS1VCRV9FTlYnCkFzc2V0czoKICBhbWQ2NDoKICAtIGMzYjczNmZkMGYwMDM3NjVjMTJkOTlmMmM5OTVhODM2OWU2MjQxZjRAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjE0LjAvYmluL2xpbnV4L2FtZDY0L2t1YmVsZXQKICAtIDdlM2EzZWE2NjMxNTNmOTAwY2JkNTI5MDBhMzljOTFmYTlmMzM0YmVAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjE0LjAvYmluL2xpbnV4L2FtZDY0L2t1YmVjdGwKICAtIDNjYTE1YzBhMThlZTgzMDUyMGNmM2E5NTQwOGJlODI2Y2JkMjU1YTE1MzVhMzhlMGJlOTYwOGIyNWFkOGJmNjRAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9uZXR3b3JrLXBsdWdpbnMvY25pLXBsdWdpbnMtYW1kNjQtdjAuNy41LnRnegogIGFybTY0OgogIC0gZGYzOGUwNDU3NjAyNjM5MzA1NWNjYzc3YzBkY2U3MzYxMjk5NjU2MUBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL3JlbGVhc2UvdjEuMTQuMC9iaW4vbGludXgvYXJtNjQva3ViZWxldAogIC0gMDFjMmI2YjQzZDM2YjZiZmFmYzgwYTM3MzczOTFjMTllYmZiOGFkNUBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL3JlbGVhc2UvdjEuMTQuMC9iaW4vbGludXgvYXJtNjQva3ViZWN0bAogIC0gN2ZlYzkxYWY3OGU5NTQ4ZGYzMDZmMGVjNDNiZWE1MjdjOGMxMGNjM2E5NjgyYzMzZTk3MWM4NTIyYTdmY2RlZEBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL25ldHdvcmstcGx1Z2lucy9jbmktcGx1Z2lucy1hcm02NC12MC43LjUudGd6CkNsdXN0ZXJOYW1lOiBtaW5pbWFsLXRmMTEuZXhhbXBsZS5jb20KQ29uZmlnQmFzZTogbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9taW5pbWFsLXRmMTEuZXhhbXBsZS5jb20KSW5zdGFuY2VHcm91cE5hbWU6IG5vZGVzCkluc3RhbmNlR3JvdXBSb2xlOiBOb2RlCkt1YmVsZXRDb25maWc6CiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9kZUxhYmVsczoKICAgIGt1YmVybmV0ZXMuaW8vcm9sZTogbm9kZQogICAgbm9kZS1yb2xlLmt1YmVybmV0ZXMuaW8vbm9kZTogIiIKICBub25NYXNxdWVyYWRlQ0lEUjogMTAwLjY0LjAuMC8xMAogIHBvZEluZnJhQ29udGFpbmVySW1hZ2U6IGs4cy5nY3IuaW8vcGF1c2U6My4yCiAgcG9kTWFuaWZlc3RQYXRoOiAvZXRjL2t1YmVybmV0ZXMvbWFuaWZlc3RzClRhZ3M6Ci0gX2F1dG9tYXRpY191cGdyYWRlcwotIF9hd3MKY2hhbm5lbHM6Ci0gbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9taW5pbWFsLXRmMTEuZXhhbXBsZS5jb20vYWRkb25zL2Jvb3RzdHJhcC1jaGFubmVsLnlhbWwKCl9fRU9GX0tVQkVfRU5WCgpkb3dubG9hZC1yZWxlYXNlCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBkb25lID09Igo= +IyEvYmluL2Jhc2gKIyBDb3B5cmlnaHQgMjAxNiBUaGUgS3ViZXJuZXRlcyBBdXRob3JzIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiMKIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgpzZXQgLW8gZXJyZXhpdApzZXQgLW8gbm91bnNldApzZXQgLW8gcGlwZWZhaWwKCk5PREVVUF9VUkxfQU1ENjQ9aHR0cHM6Ly9hcnRpZmFjdHMuazhzLmlvL2JpbmFyaWVzL2tvcHMvMS4xOS4wLWFscGhhLjEvbGludXgvYW1kNjQvbm9kZXVwLGh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzL2tvcHMvcmVsZWFzZXMvZG93bmxvYWQvdjEuMTkuMC1hbHBoYS4xL2xpbnV4LWFtZDY0LW5vZGV1cCxodHRwczovL2t1YmV1cHYyLnMzLmFtYXpvbmF3cy5jb20va29wcy8xLjE5LjAtYWxwaGEuMS9saW51eC9hbWQ2NC9ub2RldXAKTk9ERVVQX0hBU0hfQU1ENjQ9ZGVmZjExNzlmODBiZDY1MjMyYWYzMGMyNTJhMmI1ZjM5MGIxNjBiYmZlOTk5MDYzN2MwZWM4OGQ3NmNkZDY0NwpOT0RFVVBfVVJMX0FSTTY0PWh0dHBzOi8vYXJ0aWZhY3RzLms4cy5pby9iaW5hcmllcy9rb3BzLzEuMTkuMC1hbHBoYS4xL2xpbnV4L2FybTY0L25vZGV1cCxodHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy9rb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjE5LjAtYWxwaGEuMS9saW51eC1hcm02NC1ub2RldXAsaHR0cHM6Ly9rdWJldXB2Mi5zMy5hbWF6b25hd3MuY29tL2tvcHMvMS4xOS4wLWFscGhhLjEvbGludXgvYXJtNjQvbm9kZXVwCk5PREVVUF9IQVNIX0FSTTY0PTMwMGJmYWRlMDI0ZWRlNGZlODk5NmM5ZWU2MzkzZTk3NDYzYmVhNGVhZmZkMDg3NjMxMDcxMGRjZGViYmY4ZDMKCmV4cG9ydCBBV1NfUkVHSU9OPXVzLXRlc3QtMQoKCgoKZnVuY3Rpb24gZW5zdXJlLWluc3RhbGwtZGlyKCkgewogIElOU1RBTExfRElSPSIvb3B0L2tvcHMiCiAgIyBPbiBDb250YWluZXJPUywgd2UgaW5zdGFsbCB1bmRlciAvdmFyL2xpYi90b29sYm94OyAvb3B0IGlzIHJvIGFuZCBub2V4ZWMKICBpZiBbWyAtZCAvdmFyL2xpYi90b29sYm94IF1dOyB0aGVuCiAgICBJTlNUQUxMX0RJUj0iL3Zhci9saWIvdG9vbGJveC9rb3BzIgogIGZpCiAgbWtkaXIgLXAgJHtJTlNUQUxMX0RJUn0vYmluCiAgbWtkaXIgLXAgJHtJTlNUQUxMX0RJUn0vY29uZgogIGNkICR7SU5TVEFMTF9ESVJ9Cn0KCiMgUmV0cnkgYSBkb3dubG9hZCB1bnRpbCB3ZSBnZXQgaXQuIGFyZ3M6IG5hbWUsIHNoYSwgdXJsMSwgdXJsMi4uLgpkb3dubG9hZC1vci1idXN0KCkgewogIGxvY2FsIC1yIGZpbGU9IiQxIgogIGxvY2FsIC1yIGhhc2g9IiQyIgogIHNoaWZ0IDIKCiAgdXJscz0oICQqICkKICB3aGlsZSB0cnVlOyBkbwogICAgZm9yIHVybCBpbiAiJHt1cmxzW0BdfSI7IGRvCiAgICAgIGNvbW1hbmRzPSgKICAgICAgICAiY3VybCAtZiAtLWlwdjQgLS1jb21wcmVzc2VkIC1MbyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQgMjAgLS1yZXRyeSA2IC0tcmV0cnktZGVsYXkgMTAiCiAgICAgICAgIndnZXQgLS1pbmV0NC1vbmx5IC0tY29tcHJlc3Npb249YXV0byAtTyAiJHtmaWxlfSIgLS1jb25uZWN0LXRpbWVvdXQ9MjAgLS10cmllcz02IC0td2FpdD0xMCIKICAgICAgICAiY3VybCAtZiAtLWlwdjQgLUxvICIke2ZpbGV9IiAtLWNvbm5lY3QtdGltZW91dCAyMCAtLXJldHJ5IDYgLS1yZXRyeS1kZWxheSAxMCIKICAgICAgICAid2dldCAtLWluZXQ0LW9ubHkgLU8gIiR7ZmlsZX0iIC0tY29ubmVjdC10aW1lb3V0PTIwIC0tdHJpZXM9NiAtLXdhaXQ9MTAiCiAgICAgICkKICAgICAgZm9yIGNtZCBpbiAiJHtjb21tYW5kc1tAXX0iOyBkbwogICAgICAgIGVjaG8gIkF0dGVtcHRpbmcgZG93bmxvYWQgd2l0aDogJHtjbWR9IHt1cmx9IgogICAgICAgIGlmICEgKCR7Y21kfSAiJHt1cmx9Iik7IHRoZW4KICAgICAgICAgIGVjaG8gIj09IERvd25sb2FkIGZhaWxlZCB3aXRoICR7Y21kfSA9PSIKICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgZmkKICAgICAgICBpZiBbWyAtbiAiJHtoYXNofSIgXV0gJiYgISB2YWxpZGF0ZS1oYXNoICIke2ZpbGV9IiAiJHtoYXNofSI7IHRoZW4KICAgICAgICAgIGVjaG8gIj09IEhhc2ggdmFsaWRhdGlvbiBvZiAke3VybH0gZmFpbGVkLiBSZXRyeWluZy4gPT0iCiAgICAgICAgICBybSAtZiAiJHtmaWxlfSIKICAgICAgICBlbHNlCiAgICAgICAgICBpZiBbWyAtbiAiJHtoYXNofSIgXV07IHRoZW4KICAgICAgICAgICAgZWNobyAiPT0gRG93bmxvYWRlZCAke3VybH0gKFNIQTEgPSAke2hhc2h9KSA9PSIKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgZWNobyAiPT0gRG93bmxvYWRlZCAke3VybH0gPT0iCiAgICAgICAgICBmaQogICAgICAgICAgcmV0dXJuCiAgICAgICAgZmkKICAgICAgZG9uZQogICAgZG9uZQoKICAgIGVjaG8gIkFsbCBkb3dubG9hZHMgZmFpbGVkOyBzbGVlcGluZyBiZWZvcmUgcmV0cnlpbmciCiAgICBzbGVlcCA2MAogIGRvbmUKfQoKdmFsaWRhdGUtaGFzaCgpIHsKICBsb2NhbCAtciBmaWxlPSIkMSIKICBsb2NhbCAtciBleHBlY3RlZD0iJDIiCiAgbG9jYWwgYWN0dWFsCgogIGFjdHVhbD0kKHNoYTI1NnN1bSAke2ZpbGV9IHwgYXdrICd7IHByaW50ICQxIH0nKSB8fCB0cnVlCiAgaWYgW1sgIiR7YWN0dWFsfSIgIT0gIiR7ZXhwZWN0ZWR9IiBdXTsgdGhlbgogICAgZWNobyAiPT0gJHtmaWxlfSBjb3JydXB0ZWQsIGhhc2ggJHthY3R1YWx9IGRvZXNuJ3QgbWF0Y2ggZXhwZWN0ZWQgJHtleHBlY3RlZH0gPT0iCiAgICByZXR1cm4gMQogIGZpCn0KCmZ1bmN0aW9uIHNwbGl0LWNvbW1hcygpIHsKICBlY2hvICQxIHwgdHIgIiwiICJcbiIKfQoKZnVuY3Rpb24gdHJ5LWRvd25sb2FkLXJlbGVhc2UoKSB7CiAgbG9jYWwgLXIgbm9kZXVwX3VybHM9KCAkKHNwbGl0LWNvbW1hcyAiJHtOT0RFVVBfVVJMfSIpICkKICBpZiBbWyAtbiAiJHtOT0RFVVBfSEFTSDotfSIgXV07IHRoZW4KICAgIGxvY2FsIC1yIG5vZGV1cF9oYXNoPSIke05PREVVUF9IQVNIfSIKICBlbHNlCiAgIyBUT0RPOiBSZW1vdmU/CiAgICBlY2hvICJEb3dubG9hZGluZyBzaGEyNTYgKG5vdCBmb3VuZCBpbiBlbnYpIgogICAgZG93bmxvYWQtb3ItYnVzdCBub2RldXAuc2hhMjU2ICIiICIke25vZGV1cF91cmxzW0BdLyUvLnNoYTI1Nn0iCiAgICBsb2NhbCAtciBub2RldXBfaGFzaD0kKGNhdCBub2RldXAuc2hhMjU2KQogIGZpCgogIGVjaG8gIkRvd25sb2FkaW5nIG5vZGV1cCAoJHtub2RldXBfdXJsc1tAXX0pIgogIGRvd25sb2FkLW9yLWJ1c3Qgbm9kZXVwICIke25vZGV1cF9oYXNofSIgIiR7bm9kZXVwX3VybHNbQF19IgoKICBjaG1vZCAreCBub2RldXAKfQoKZnVuY3Rpb24gZG93bmxvYWQtcmVsZWFzZSgpIHsKICBjYXNlICIkKHVuYW1lIC1tKSIgaW4KICB4ODZfNjQqfGk/ODZfNjQqfGFtZDY0KikKICAgIE5PREVVUF9VUkw9IiR7Tk9ERVVQX1VSTF9BTUQ2NH0iCiAgICBOT0RFVVBfSEFTSD0iJHtOT0RFVVBfSEFTSF9BTUQ2NH0iCiAgICA7OwogIGFhcmNoNjQqfGFybTY0KikKICAgIE5PREVVUF9VUkw9IiR7Tk9ERVVQX1VSTF9BUk02NH0iCiAgICBOT0RFVVBfSEFTSD0iJHtOT0RFVVBfSEFTSF9BUk02NH0iCiAgICA7OwogICopCiAgICBlY2hvICJVbnN1cHBvcnRlZCBob3N0IGFyY2g6ICQodW5hbWUgLW0pIiA+JjIKICAgIGV4aXQgMQogICAgOzsKICBlc2FjCgogICMgSW4gY2FzZSBvZiBmYWlsdXJlIGNoZWNraW5nIGludGVncml0eSBvZiByZWxlYXNlLCByZXRyeS4KICBjZCAke0lOU1RBTExfRElSfS9iaW4KICB1bnRpbCB0cnktZG93bmxvYWQtcmVsZWFzZTsgZG8KICAgIHNsZWVwIDE1CiAgICBlY2hvICJDb3VsZG4ndCBkb3dubG9hZCByZWxlYXNlLiBSZXRyeWluZy4uLiIKICBkb25lCgogIGVjaG8gIlJ1bm5pbmcgbm9kZXVwIgogICMgV2UgY2FuJ3QgcnVuIGluIHRoZSBmb3JlZ3JvdW5kIGJlY2F1c2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci9kb2NrZXIvaXNzdWVzLzIzNzkzCiAgKCBjZCAke0lOU1RBTExfRElSfS9iaW47IC4vbm9kZXVwIC0taW5zdGFsbC1zeXN0ZW1kLXVuaXQgLS1jb25mPSR7SU5TVEFMTF9ESVJ9L2NvbmYva3ViZV9lbnYueWFtbCAtLXY9OCAgKQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi9iaW4vc3lzdGVtZC1tYWNoaW5lLWlkLXNldHVwIHx8IGVjaG8gImZhaWxlZCB0byBzZXQgdXAgZW5zdXJlIG1hY2hpbmUtaWQgY29uZmlndXJlZCIKCmVjaG8gIj09IG5vZGV1cCBub2RlIGNvbmZpZyBzdGFydGluZyA9PSIKZW5zdXJlLWluc3RhbGwtZGlyCgpjYXQgPiBjb25mL2NsdXN0ZXJfc3BlYy55YW1sIDw8ICdfX0VPRl9DTFVTVEVSX1NQRUMnCmNsb3VkQ29uZmlnOiBudWxsCmNvbnRhaW5lclJ1bnRpbWU6IGRvY2tlcgpjb250YWluZXJkOgogIHNraXBJbnN0YWxsOiB0cnVlCmRvY2tlcjoKICBpcE1hc3E6IGZhbHNlCiAgaXBUYWJsZXM6IGZhbHNlCiAgbG9nRHJpdmVyOiBqc29uLWZpbGUKICBsb2dMZXZlbDogaW5mbwogIGxvZ09wdDoKICAtIG1heC1zaXplPTEwbQogIC0gbWF4LWZpbGU9NQogIHN0b3JhZ2U6IG92ZXJsYXkyLG92ZXJsYXksYXVmcwogIHZlcnNpb246IDE4LjA2LjMKa3ViZVByb3h5OgogIGNsdXN0ZXJDSURSOiAxMDAuOTYuMC4wLzExCiAgY3B1UmVxdWVzdDogMTAwbQogIGhvc3RuYW1lT3ZlcnJpZGU6ICdAYXdzJwogIGltYWdlOiBrOHMuZ2NyLmlvL2t1YmUtcHJveHk6djEuMTQuMAogIGxvZ0xldmVsOiAyCmt1YmVsZXQ6CiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9uTWFzcXVlcmFkZUNJRFI6IDEwMC42NC4wLjAvMTAKICBwb2RJbmZyYUNvbnRhaW5lckltYWdlOiBrOHMuZ2NyLmlvL3BhdXNlOjMuMgogIHBvZE1hbmlmZXN0UGF0aDogL2V0Yy9rdWJlcm5ldGVzL21hbmlmZXN0cwoKX19FT0ZfQ0xVU1RFUl9TUEVDCgpjYXQgPiBjb25mL2lnX3NwZWMueWFtbCA8PCAnX19FT0ZfSUdfU1BFQycKe30KCl9fRU9GX0lHX1NQRUMKCmNhdCA+IGNvbmYva3ViZV9lbnYueWFtbCA8PCAnX19FT0ZfS1VCRV9FTlYnCkFzc2V0czoKICBhbWQ2NDoKICAtIGMzYjczNmZkMGYwMDM3NjVjMTJkOTlmMmM5OTVhODM2OWU2MjQxZjRAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjE0LjAvYmluL2xpbnV4L2FtZDY0L2t1YmVsZXQKICAtIDdlM2EzZWE2NjMxNTNmOTAwY2JkNTI5MDBhMzljOTFmYTlmMzM0YmVAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9yZWxlYXNlL3YxLjE0LjAvYmluL2xpbnV4L2FtZDY0L2t1YmVjdGwKICAtIDNjYTE1YzBhMThlZTgzMDUyMGNmM2E5NTQwOGJlODI2Y2JkMjU1YTE1MzVhMzhlMGJlOTYwOGIyNWFkOGJmNjRAaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2t1YmVybmV0ZXMtcmVsZWFzZS9uZXR3b3JrLXBsdWdpbnMvY25pLXBsdWdpbnMtYW1kNjQtdjAuNy41LnRnegogIGFybTY0OgogIC0gZGYzOGUwNDU3NjAyNjM5MzA1NWNjYzc3YzBkY2U3MzYxMjk5NjU2MUBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL3JlbGVhc2UvdjEuMTQuMC9iaW4vbGludXgvYXJtNjQva3ViZWxldAogIC0gMDFjMmI2YjQzZDM2YjZiZmFmYzgwYTM3MzczOTFjMTllYmZiOGFkNUBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL3JlbGVhc2UvdjEuMTQuMC9iaW4vbGludXgvYXJtNjQva3ViZWN0bAogIC0gN2ZlYzkxYWY3OGU5NTQ4ZGYzMDZmMGVjNDNiZWE1MjdjOGMxMGNjM2E5NjgyYzMzZTk3MWM4NTIyYTdmY2RlZEBodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20va3ViZXJuZXRlcy1yZWxlYXNlL25ldHdvcmstcGx1Z2lucy9jbmktcGx1Z2lucy1hcm02NC12MC43LjUudGd6CkNsdXN0ZXJOYW1lOiBtaW5pbWFsLXRmMTEuZXhhbXBsZS5jb20KQ29uZmlnQmFzZTogbWVtZnM6Ly9jbHVzdGVycy5leGFtcGxlLmNvbS9taW5pbWFsLXRmMTEuZXhhbXBsZS5jb20KSW5zdGFuY2VHcm91cE5hbWU6IG5vZGVzCkluc3RhbmNlR3JvdXBSb2xlOiBOb2RlCkt1YmVsZXRDb25maWc6CiAgYW5vbnltb3VzQXV0aDogZmFsc2UKICBjZ3JvdXBSb290OiAvCiAgY2xvdWRQcm92aWRlcjogYXdzCiAgY2x1c3RlckROUzogMTAwLjY0LjAuMTAKICBjbHVzdGVyRG9tYWluOiBjbHVzdGVyLmxvY2FsCiAgZW5hYmxlRGVidWdnaW5nSGFuZGxlcnM6IHRydWUKICBldmljdGlvbkhhcmQ6IG1lbW9yeS5hdmFpbGFibGU8MTAwTWksbm9kZWZzLmF2YWlsYWJsZTwxMCUsbm9kZWZzLmlub2Rlc0ZyZWU8NSUsaW1hZ2Vmcy5hdmFpbGFibGU8MTAlLGltYWdlZnMuaW5vZGVzRnJlZTw1JQogIGZlYXR1cmVHYXRlczoKICAgIEV4cGVyaW1lbnRhbENyaXRpY2FsUG9kQW5ub3RhdGlvbjogInRydWUiCiAgaG9zdG5hbWVPdmVycmlkZTogJ0Bhd3MnCiAga3ViZWNvbmZpZ1BhdGg6IC92YXIvbGliL2t1YmVsZXQva3ViZWNvbmZpZwogIGxvZ0xldmVsOiAyCiAgbmV0d29ya1BsdWdpbk1UVTogOTAwMQogIG5ldHdvcmtQbHVnaW5OYW1lOiBrdWJlbmV0CiAgbm9kZUxhYmVsczoKICAgIGt1YmVybmV0ZXMuaW8vcm9sZTogbm9kZQogICAgbm9kZS1yb2xlLmt1YmVybmV0ZXMuaW8vbm9kZTogIiIKICBub25NYXNxdWVyYWRlQ0lEUjogMTAwLjY0LjAuMC8xMAogIHBvZEluZnJhQ29udGFpbmVySW1hZ2U6IGs4cy5nY3IuaW8vcGF1c2U6My4yCiAgcG9kTWFuaWZlc3RQYXRoOiAvZXRjL2t1YmVybmV0ZXMvbWFuaWZlc3RzCmNoYW5uZWxzOgotIG1lbWZzOi8vY2x1c3RlcnMuZXhhbXBsZS5jb20vbWluaW1hbC10ZjExLmV4YW1wbGUuY29tL2FkZG9ucy9ib290c3RyYXAtY2hhbm5lbC55YW1sCgpfX0VPRl9LVUJFX0VOVgoKZG93bmxvYWQtcmVsZWFzZQplY2hvICI9PSBub2RldXAgbm9kZSBjb25maWcgZG9uZSA9PSIK diff --git a/tests/integration/update_cluster/minimal/data/aws_launch_template_master-us-test-1a.masters.minimal.example.com_user_data b/tests/integration/update_cluster/minimal/data/aws_launch_template_master-us-test-1a.masters.minimal.example.com_user_data index b20276f848dfe..cd7a47afa072f 100644 --- a/tests/integration/update_cluster/minimal/data/aws_launch_template_master-us-test-1a.masters.minimal.example.com_user_data +++ b/tests/integration/update_cluster/minimal/data/aws_launch_template_master-us-test-1a.masters.minimal.example.com_user_data @@ -312,9 +312,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/minimal.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/minimal/data/aws_launch_template_nodes.minimal.example.com_user_data b/tests/integration/update_cluster/minimal/data/aws_launch_template_nodes.minimal.example.com_user_data index a23bf48181989..ea7f8190da879 100644 --- a/tests/integration/update_cluster/minimal/data/aws_launch_template_nodes.minimal.example.com_user_data +++ b/tests/integration/update_cluster/minimal/data/aws_launch_template_nodes.minimal.example.com_user_data @@ -228,9 +228,6 @@ KubeletConfig: nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/minimal.example.com/addons/bootstrap-channel.yaml 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 ffe36e7b75a29..291a4bfe521f7 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 @@ -318,9 +318,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _gce channels: - memfs://tests/minimal-gce.example.com/addons/bootstrap-channel.yaml etcdManifests: 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 a66048e8d5587..45d05c73472cc 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 @@ -233,9 +233,6 @@ KubeletConfig: nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests -Tags: -- _automatic_upgrades -- _gce channels: - memfs://tests/minimal-gce.example.com/addons/bootstrap-channel.yaml 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 f44c3d48dfcb4..4b21910ca85d2 100644 --- a/tests/integration/update_cluster/mixed_instances/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/mixed_instances/cloudformation.json.extracted.yaml @@ -316,9 +316,6 @@ Resources.AWSEC2LaunchTemplatemasterustest1amastersmixedinstancesexamplecom.Prop podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/mixedinstances.example.com/addons/bootstrap-channel.yaml etcdManifests: @@ -654,9 +651,6 @@ Resources.AWSEC2LaunchTemplatemasterustest1bmastersmixedinstancesexamplecom.Prop podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/mixedinstances.example.com/addons/bootstrap-channel.yaml etcdManifests: @@ -992,9 +986,6 @@ Resources.AWSEC2LaunchTemplatemasterustest1cmastersmixedinstancesexamplecom.Prop podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/mixedinstances.example.com/addons/bootstrap-channel.yaml etcdManifests: @@ -1245,9 +1236,6 @@ Resources.AWSEC2LaunchTemplatenodesmixedinstancesexamplecom.Properties.LaunchTem nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/mixedinstances.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/mixed_instances/data/aws_launch_template_master-us-test-1a.masters.mixedinstances.example.com_user_data b/tests/integration/update_cluster/mixed_instances/data/aws_launch_template_master-us-test-1a.masters.mixedinstances.example.com_user_data index b346deec772c2..051fde8eda7df 100644 --- a/tests/integration/update_cluster/mixed_instances/data/aws_launch_template_master-us-test-1a.masters.mixedinstances.example.com_user_data +++ b/tests/integration/update_cluster/mixed_instances/data/aws_launch_template_master-us-test-1a.masters.mixedinstances.example.com_user_data @@ -315,9 +315,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/mixedinstances.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/mixed_instances/data/aws_launch_template_master-us-test-1b.masters.mixedinstances.example.com_user_data b/tests/integration/update_cluster/mixed_instances/data/aws_launch_template_master-us-test-1b.masters.mixedinstances.example.com_user_data index 6a7b37dc51db2..c00dab344c1d0 100644 --- a/tests/integration/update_cluster/mixed_instances/data/aws_launch_template_master-us-test-1b.masters.mixedinstances.example.com_user_data +++ b/tests/integration/update_cluster/mixed_instances/data/aws_launch_template_master-us-test-1b.masters.mixedinstances.example.com_user_data @@ -315,9 +315,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/mixedinstances.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/mixed_instances/data/aws_launch_template_master-us-test-1c.masters.mixedinstances.example.com_user_data b/tests/integration/update_cluster/mixed_instances/data/aws_launch_template_master-us-test-1c.masters.mixedinstances.example.com_user_data index b6275ff6ab93e..eae46f3d441de 100644 --- a/tests/integration/update_cluster/mixed_instances/data/aws_launch_template_master-us-test-1c.masters.mixedinstances.example.com_user_data +++ b/tests/integration/update_cluster/mixed_instances/data/aws_launch_template_master-us-test-1c.masters.mixedinstances.example.com_user_data @@ -315,9 +315,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/mixedinstances.example.com/addons/bootstrap-channel.yaml etcdManifests: 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 ea048e2dc073f..c740e09b4922f 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 @@ -230,9 +230,6 @@ KubeletConfig: nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/mixedinstances.example.com/addons/bootstrap-channel.yaml 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 f44c3d48dfcb4..4b21910ca85d2 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 @@ -316,9 +316,6 @@ Resources.AWSEC2LaunchTemplatemasterustest1amastersmixedinstancesexamplecom.Prop podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/mixedinstances.example.com/addons/bootstrap-channel.yaml etcdManifests: @@ -654,9 +651,6 @@ Resources.AWSEC2LaunchTemplatemasterustest1bmastersmixedinstancesexamplecom.Prop podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/mixedinstances.example.com/addons/bootstrap-channel.yaml etcdManifests: @@ -992,9 +986,6 @@ Resources.AWSEC2LaunchTemplatemasterustest1cmastersmixedinstancesexamplecom.Prop podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/mixedinstances.example.com/addons/bootstrap-channel.yaml etcdManifests: @@ -1245,9 +1236,6 @@ Resources.AWSEC2LaunchTemplatenodesmixedinstancesexamplecom.Properties.LaunchTem nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/mixedinstances.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_template_master-us-test-1a.masters.mixedinstances.example.com_user_data b/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_template_master-us-test-1a.masters.mixedinstances.example.com_user_data index b346deec772c2..051fde8eda7df 100644 --- a/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_template_master-us-test-1a.masters.mixedinstances.example.com_user_data +++ b/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_template_master-us-test-1a.masters.mixedinstances.example.com_user_data @@ -315,9 +315,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/mixedinstances.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_template_master-us-test-1b.masters.mixedinstances.example.com_user_data b/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_template_master-us-test-1b.masters.mixedinstances.example.com_user_data index 6a7b37dc51db2..c00dab344c1d0 100644 --- a/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_template_master-us-test-1b.masters.mixedinstances.example.com_user_data +++ b/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_template_master-us-test-1b.masters.mixedinstances.example.com_user_data @@ -315,9 +315,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/mixedinstances.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_template_master-us-test-1c.masters.mixedinstances.example.com_user_data b/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_template_master-us-test-1c.masters.mixedinstances.example.com_user_data index b6275ff6ab93e..eae46f3d441de 100644 --- a/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_template_master-us-test-1c.masters.mixedinstances.example.com_user_data +++ b/tests/integration/update_cluster/mixed_instances_spot/data/aws_launch_template_master-us-test-1c.masters.mixedinstances.example.com_user_data @@ -315,9 +315,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/mixedinstances.example.com/addons/bootstrap-channel.yaml etcdManifests: 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 ea048e2dc073f..c740e09b4922f 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 @@ -230,9 +230,6 @@ KubeletConfig: nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/mixedinstances.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/private-shared-subnet/data/aws_launch_template_master-us-test-1a.masters.private-shared-subnet.example.com_user_data b/tests/integration/update_cluster/private-shared-subnet/data/aws_launch_template_master-us-test-1a.masters.private-shared-subnet.example.com_user_data index cac179b571a4a..d96be3c54e3ca 100644 --- a/tests/integration/update_cluster/private-shared-subnet/data/aws_launch_template_master-us-test-1a.masters.private-shared-subnet.example.com_user_data +++ b/tests/integration/update_cluster/private-shared-subnet/data/aws_launch_template_master-us-test-1a.masters.private-shared-subnet.example.com_user_data @@ -309,9 +309,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/private-shared-subnet.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/private-shared-subnet/data/aws_launch_template_nodes.private-shared-subnet.example.com_user_data b/tests/integration/update_cluster/private-shared-subnet/data/aws_launch_template_nodes.private-shared-subnet.example.com_user_data index 73da74828b3b7..eb266314432fa 100644 --- a/tests/integration/update_cluster/private-shared-subnet/data/aws_launch_template_nodes.private-shared-subnet.example.com_user_data +++ b/tests/integration/update_cluster/private-shared-subnet/data/aws_launch_template_nodes.private-shared-subnet.example.com_user_data @@ -226,9 +226,6 @@ KubeletConfig: nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/private-shared-subnet.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/privatecalico/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/privatecalico/cloudformation.json.extracted.yaml index 880e339292623..796f4f702bce0 100644 --- a/tests/integration/update_cluster/privatecalico/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/privatecalico/cloudformation.json.extracted.yaml @@ -311,9 +311,6 @@ Resources.AWSEC2LaunchTemplatemasterustest1amastersprivatecalicoexamplecom.Prope podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/privatecalico.example.com/addons/bootstrap-channel.yaml etcdManifests: @@ -560,9 +557,6 @@ Resources.AWSEC2LaunchTemplatenodesprivatecalicoexamplecom.Properties.LaunchTemp nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/privatecalico.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/privatecalico/data/aws_launch_template_master-us-test-1a.masters.privatecalico.example.com_user_data b/tests/integration/update_cluster/privatecalico/data/aws_launch_template_master-us-test-1a.masters.privatecalico.example.com_user_data index 93ab932cbbe30..614cea21cee8c 100644 --- a/tests/integration/update_cluster/privatecalico/data/aws_launch_template_master-us-test-1a.masters.privatecalico.example.com_user_data +++ b/tests/integration/update_cluster/privatecalico/data/aws_launch_template_master-us-test-1a.masters.privatecalico.example.com_user_data @@ -309,9 +309,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/privatecalico.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/privatecalico/data/aws_launch_template_nodes.privatecalico.example.com_user_data b/tests/integration/update_cluster/privatecalico/data/aws_launch_template_nodes.privatecalico.example.com_user_data index 10e6972c06956..d14e0ca4fad11 100644 --- a/tests/integration/update_cluster/privatecalico/data/aws_launch_template_nodes.privatecalico.example.com_user_data +++ b/tests/integration/update_cluster/privatecalico/data/aws_launch_template_nodes.privatecalico.example.com_user_data @@ -226,9 +226,6 @@ KubeletConfig: nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/privatecalico.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/privatecanal/data/aws_launch_template_master-us-test-1a.masters.privatecanal.example.com_user_data b/tests/integration/update_cluster/privatecanal/data/aws_launch_template_master-us-test-1a.masters.privatecanal.example.com_user_data index 8310147bf38ed..477e1efc04060 100644 --- a/tests/integration/update_cluster/privatecanal/data/aws_launch_template_master-us-test-1a.masters.privatecanal.example.com_user_data +++ b/tests/integration/update_cluster/privatecanal/data/aws_launch_template_master-us-test-1a.masters.privatecanal.example.com_user_data @@ -309,9 +309,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/privatecanal.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/privatecanal/data/aws_launch_template_nodes.privatecanal.example.com_user_data b/tests/integration/update_cluster/privatecanal/data/aws_launch_template_nodes.privatecanal.example.com_user_data index b324abd117da6..71832e9e27521 100644 --- a/tests/integration/update_cluster/privatecanal/data/aws_launch_template_nodes.privatecanal.example.com_user_data +++ b/tests/integration/update_cluster/privatecanal/data/aws_launch_template_nodes.privatecanal.example.com_user_data @@ -226,9 +226,6 @@ KubeletConfig: nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/privatecanal.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/privatecilium/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/privatecilium/cloudformation.json.extracted.yaml index 420cbc15b24ae..364eaa3211f53 100644 --- a/tests/integration/update_cluster/privatecilium/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/privatecilium/cloudformation.json.extracted.yaml @@ -311,9 +311,6 @@ Resources.AWSEC2LaunchTemplatemasterustest1amastersprivateciliumexamplecom.Prope podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/privatecilium.example.com/addons/bootstrap-channel.yaml etcdManifests: @@ -560,9 +557,6 @@ Resources.AWSEC2LaunchTemplatenodesprivateciliumexamplecom.Properties.LaunchTemp nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/privatecilium.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/privatecilium/data/aws_launch_template_master-us-test-1a.masters.privatecilium.example.com_user_data b/tests/integration/update_cluster/privatecilium/data/aws_launch_template_master-us-test-1a.masters.privatecilium.example.com_user_data index be9b7a28405ce..d7dd3c018f1ff 100644 --- a/tests/integration/update_cluster/privatecilium/data/aws_launch_template_master-us-test-1a.masters.privatecilium.example.com_user_data +++ b/tests/integration/update_cluster/privatecilium/data/aws_launch_template_master-us-test-1a.masters.privatecilium.example.com_user_data @@ -309,9 +309,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/privatecilium.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/privatecilium/data/aws_launch_template_nodes.privatecilium.example.com_user_data b/tests/integration/update_cluster/privatecilium/data/aws_launch_template_nodes.privatecilium.example.com_user_data index 8b8c7278b51c8..e8f1129a43460 100644 --- a/tests/integration/update_cluster/privatecilium/data/aws_launch_template_nodes.privatecilium.example.com_user_data +++ b/tests/integration/update_cluster/privatecilium/data/aws_launch_template_nodes.privatecilium.example.com_user_data @@ -226,9 +226,6 @@ KubeletConfig: nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/privatecilium.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/privatecilium2/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/privatecilium2/cloudformation.json.extracted.yaml index 420cbc15b24ae..364eaa3211f53 100644 --- a/tests/integration/update_cluster/privatecilium2/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/privatecilium2/cloudformation.json.extracted.yaml @@ -311,9 +311,6 @@ Resources.AWSEC2LaunchTemplatemasterustest1amastersprivateciliumexamplecom.Prope podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/privatecilium.example.com/addons/bootstrap-channel.yaml etcdManifests: @@ -560,9 +557,6 @@ Resources.AWSEC2LaunchTemplatenodesprivateciliumexamplecom.Properties.LaunchTemp nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/privatecilium.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/privatecilium2/data/aws_launch_template_master-us-test-1a.masters.privatecilium.example.com_user_data b/tests/integration/update_cluster/privatecilium2/data/aws_launch_template_master-us-test-1a.masters.privatecilium.example.com_user_data index be9b7a28405ce..d7dd3c018f1ff 100644 --- a/tests/integration/update_cluster/privatecilium2/data/aws_launch_template_master-us-test-1a.masters.privatecilium.example.com_user_data +++ b/tests/integration/update_cluster/privatecilium2/data/aws_launch_template_master-us-test-1a.masters.privatecilium.example.com_user_data @@ -309,9 +309,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/privatecilium.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/privatecilium2/data/aws_launch_template_nodes.privatecilium.example.com_user_data b/tests/integration/update_cluster/privatecilium2/data/aws_launch_template_nodes.privatecilium.example.com_user_data index 8b8c7278b51c8..e8f1129a43460 100644 --- a/tests/integration/update_cluster/privatecilium2/data/aws_launch_template_nodes.privatecilium.example.com_user_data +++ b/tests/integration/update_cluster/privatecilium2/data/aws_launch_template_nodes.privatecilium.example.com_user_data @@ -226,9 +226,6 @@ KubeletConfig: nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/privatecilium.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/privateciliumadvanced/cloudformation.json.extracted.yaml b/tests/integration/update_cluster/privateciliumadvanced/cloudformation.json.extracted.yaml index f4fe31f6216df..114c6a1075cdd 100644 --- a/tests/integration/update_cluster/privateciliumadvanced/cloudformation.json.extracted.yaml +++ b/tests/integration/update_cluster/privateciliumadvanced/cloudformation.json.extracted.yaml @@ -314,9 +314,6 @@ Resources.AWSEC2LaunchTemplatemasterustest1amastersprivateciliumadvancedexamplec podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/privateciliumadvanced.example.com/addons/bootstrap-channel.yaml etcdManifests: @@ -565,9 +562,6 @@ Resources.AWSEC2LaunchTemplatenodesprivateciliumadvancedexamplecom.Properties.La nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests - Tags: - - _automatic_upgrades - - _aws channels: - memfs://clusters.example.com/privateciliumadvanced.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/privateciliumadvanced/data/aws_launch_template_master-us-test-1a.masters.privateciliumadvanced.example.com_user_data b/tests/integration/update_cluster/privateciliumadvanced/data/aws_launch_template_master-us-test-1a.masters.privateciliumadvanced.example.com_user_data index 21f8f7650f463..9db5b475f3d91 100644 --- a/tests/integration/update_cluster/privateciliumadvanced/data/aws_launch_template_master-us-test-1a.masters.privateciliumadvanced.example.com_user_data +++ b/tests/integration/update_cluster/privateciliumadvanced/data/aws_launch_template_master-us-test-1a.masters.privateciliumadvanced.example.com_user_data @@ -312,9 +312,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/privateciliumadvanced.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/privateciliumadvanced/data/aws_launch_template_nodes.privateciliumadvanced.example.com_user_data b/tests/integration/update_cluster/privateciliumadvanced/data/aws_launch_template_nodes.privateciliumadvanced.example.com_user_data index b271f8a5d2572..d30bdd100b14e 100644 --- a/tests/integration/update_cluster/privateciliumadvanced/data/aws_launch_template_nodes.privateciliumadvanced.example.com_user_data +++ b/tests/integration/update_cluster/privateciliumadvanced/data/aws_launch_template_nodes.privateciliumadvanced.example.com_user_data @@ -227,9 +227,6 @@ KubeletConfig: nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/privateciliumadvanced.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/privatedns1/data/aws_launch_template_master-us-test-1a.masters.privatedns1.example.com_user_data b/tests/integration/update_cluster/privatedns1/data/aws_launch_template_master-us-test-1a.masters.privatedns1.example.com_user_data index 8adb779a90ac7..0a895278a3d0f 100644 --- a/tests/integration/update_cluster/privatedns1/data/aws_launch_template_master-us-test-1a.masters.privatedns1.example.com_user_data +++ b/tests/integration/update_cluster/privatedns1/data/aws_launch_template_master-us-test-1a.masters.privatedns1.example.com_user_data @@ -309,9 +309,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/privatedns1.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/privatedns1/data/aws_launch_template_nodes.privatedns1.example.com_user_data b/tests/integration/update_cluster/privatedns1/data/aws_launch_template_nodes.privatedns1.example.com_user_data index 1251c63afea58..7ecfd3ecc9ac2 100644 --- a/tests/integration/update_cluster/privatedns1/data/aws_launch_template_nodes.privatedns1.example.com_user_data +++ b/tests/integration/update_cluster/privatedns1/data/aws_launch_template_nodes.privatedns1.example.com_user_data @@ -226,9 +226,6 @@ KubeletConfig: nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/privatedns1.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/privatedns2/data/aws_launch_template_master-us-test-1a.masters.privatedns2.example.com_user_data b/tests/integration/update_cluster/privatedns2/data/aws_launch_template_master-us-test-1a.masters.privatedns2.example.com_user_data index 6dd9f18c2d18f..228e7d39263a3 100644 --- a/tests/integration/update_cluster/privatedns2/data/aws_launch_template_master-us-test-1a.masters.privatedns2.example.com_user_data +++ b/tests/integration/update_cluster/privatedns2/data/aws_launch_template_master-us-test-1a.masters.privatedns2.example.com_user_data @@ -309,9 +309,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/privatedns2.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/privatedns2/data/aws_launch_template_nodes.privatedns2.example.com_user_data b/tests/integration/update_cluster/privatedns2/data/aws_launch_template_nodes.privatedns2.example.com_user_data index ad06652a6078d..92d75fd872408 100644 --- a/tests/integration/update_cluster/privatedns2/data/aws_launch_template_nodes.privatedns2.example.com_user_data +++ b/tests/integration/update_cluster/privatedns2/data/aws_launch_template_nodes.privatedns2.example.com_user_data @@ -226,9 +226,6 @@ KubeletConfig: nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/privatedns2.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/privateflannel/data/aws_launch_template_master-us-test-1a.masters.privateflannel.example.com_user_data b/tests/integration/update_cluster/privateflannel/data/aws_launch_template_master-us-test-1a.masters.privateflannel.example.com_user_data index b9a99a00abb67..a65215c1ce25f 100644 --- a/tests/integration/update_cluster/privateflannel/data/aws_launch_template_master-us-test-1a.masters.privateflannel.example.com_user_data +++ b/tests/integration/update_cluster/privateflannel/data/aws_launch_template_master-us-test-1a.masters.privateflannel.example.com_user_data @@ -309,9 +309,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/privateflannel.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/privateflannel/data/aws_launch_template_nodes.privateflannel.example.com_user_data b/tests/integration/update_cluster/privateflannel/data/aws_launch_template_nodes.privateflannel.example.com_user_data index 5e0fc7e36a537..19fc3868b2265 100644 --- a/tests/integration/update_cluster/privateflannel/data/aws_launch_template_nodes.privateflannel.example.com_user_data +++ b/tests/integration/update_cluster/privateflannel/data/aws_launch_template_nodes.privateflannel.example.com_user_data @@ -226,9 +226,6 @@ KubeletConfig: nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/privateflannel.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/privatekopeio/data/aws_launch_template_master-us-test-1a.masters.privatekopeio.example.com_user_data b/tests/integration/update_cluster/privatekopeio/data/aws_launch_template_master-us-test-1a.masters.privatekopeio.example.com_user_data index ee492d37cf9d5..7109207dd5f8d 100644 --- a/tests/integration/update_cluster/privatekopeio/data/aws_launch_template_master-us-test-1a.masters.privatekopeio.example.com_user_data +++ b/tests/integration/update_cluster/privatekopeio/data/aws_launch_template_master-us-test-1a.masters.privatekopeio.example.com_user_data @@ -309,9 +309,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/privatekopeio.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/privatekopeio/data/aws_launch_template_nodes.privatekopeio.example.com_user_data b/tests/integration/update_cluster/privatekopeio/data/aws_launch_template_nodes.privatekopeio.example.com_user_data index 1c0b5acf19b3b..2b444a37fde03 100644 --- a/tests/integration/update_cluster/privatekopeio/data/aws_launch_template_nodes.privatekopeio.example.com_user_data +++ b/tests/integration/update_cluster/privatekopeio/data/aws_launch_template_nodes.privatekopeio.example.com_user_data @@ -226,9 +226,6 @@ KubeletConfig: nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/privatekopeio.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/privateweave/data/aws_launch_template_master-us-test-1a.masters.privateweave.example.com_user_data b/tests/integration/update_cluster/privateweave/data/aws_launch_template_master-us-test-1a.masters.privateweave.example.com_user_data index b358edae65c42..f55ddc246543d 100644 --- a/tests/integration/update_cluster/privateweave/data/aws_launch_template_master-us-test-1a.masters.privateweave.example.com_user_data +++ b/tests/integration/update_cluster/privateweave/data/aws_launch_template_master-us-test-1a.masters.privateweave.example.com_user_data @@ -309,9 +309,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/privateweave.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/privateweave/data/aws_launch_template_nodes.privateweave.example.com_user_data b/tests/integration/update_cluster/privateweave/data/aws_launch_template_nodes.privateweave.example.com_user_data index d85160cce6feb..b6e6a397a05e3 100644 --- a/tests/integration/update_cluster/privateweave/data/aws_launch_template_nodes.privateweave.example.com_user_data +++ b/tests/integration/update_cluster/privateweave/data/aws_launch_template_nodes.privateweave.example.com_user_data @@ -226,9 +226,6 @@ KubeletConfig: nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/privateweave.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/shared_subnet/data/aws_launch_template_master-us-test-1a.masters.sharedsubnet.example.com_user_data b/tests/integration/update_cluster/shared_subnet/data/aws_launch_template_master-us-test-1a.masters.sharedsubnet.example.com_user_data index b6918421237e4..bb28cdfba0913 100644 --- a/tests/integration/update_cluster/shared_subnet/data/aws_launch_template_master-us-test-1a.masters.sharedsubnet.example.com_user_data +++ b/tests/integration/update_cluster/shared_subnet/data/aws_launch_template_master-us-test-1a.masters.sharedsubnet.example.com_user_data @@ -312,9 +312,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/sharedsubnet.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/shared_subnet/data/aws_launch_template_nodes.sharedsubnet.example.com_user_data b/tests/integration/update_cluster/shared_subnet/data/aws_launch_template_nodes.sharedsubnet.example.com_user_data index 10cac082e5f42..e1ec9c3d04d7c 100644 --- a/tests/integration/update_cluster/shared_subnet/data/aws_launch_template_nodes.sharedsubnet.example.com_user_data +++ b/tests/integration/update_cluster/shared_subnet/data/aws_launch_template_nodes.sharedsubnet.example.com_user_data @@ -228,9 +228,6 @@ KubeletConfig: nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/sharedsubnet.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/shared_vpc/data/aws_launch_template_master-us-test-1a.masters.sharedvpc.example.com_user_data b/tests/integration/update_cluster/shared_vpc/data/aws_launch_template_master-us-test-1a.masters.sharedvpc.example.com_user_data index f6a45a206c70b..924775093df3c 100644 --- a/tests/integration/update_cluster/shared_vpc/data/aws_launch_template_master-us-test-1a.masters.sharedvpc.example.com_user_data +++ b/tests/integration/update_cluster/shared_vpc/data/aws_launch_template_master-us-test-1a.masters.sharedvpc.example.com_user_data @@ -312,9 +312,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/sharedvpc.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/shared_vpc/data/aws_launch_template_nodes.sharedvpc.example.com_user_data b/tests/integration/update_cluster/shared_vpc/data/aws_launch_template_nodes.sharedvpc.example.com_user_data index f61cfa07c34e1..4aa34613dd095 100644 --- a/tests/integration/update_cluster/shared_vpc/data/aws_launch_template_nodes.sharedvpc.example.com_user_data +++ b/tests/integration/update_cluster/shared_vpc/data/aws_launch_template_nodes.sharedvpc.example.com_user_data @@ -228,9 +228,6 @@ KubeletConfig: nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/sharedvpc.example.com/addons/bootstrap-channel.yaml diff --git a/tests/integration/update_cluster/unmanaged/data/aws_launch_template_master-us-test-1a.masters.unmanaged.example.com_user_data b/tests/integration/update_cluster/unmanaged/data/aws_launch_template_master-us-test-1a.masters.unmanaged.example.com_user_data index 48cf1a17ead77..de036a036eb70 100644 --- a/tests/integration/update_cluster/unmanaged/data/aws_launch_template_master-us-test-1a.masters.unmanaged.example.com_user_data +++ b/tests/integration/update_cluster/unmanaged/data/aws_launch_template_master-us-test-1a.masters.unmanaged.example.com_user_data @@ -309,9 +309,6 @@ KubeletConfig: podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests registerSchedulable: false -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/unmanaged.example.com/addons/bootstrap-channel.yaml etcdManifests: diff --git a/tests/integration/update_cluster/unmanaged/data/aws_launch_template_nodes.unmanaged.example.com_user_data b/tests/integration/update_cluster/unmanaged/data/aws_launch_template_nodes.unmanaged.example.com_user_data index 26b58bf7d8df9..2aa3dae56f2c7 100644 --- a/tests/integration/update_cluster/unmanaged/data/aws_launch_template_nodes.unmanaged.example.com_user_data +++ b/tests/integration/update_cluster/unmanaged/data/aws_launch_template_nodes.unmanaged.example.com_user_data @@ -226,9 +226,6 @@ KubeletConfig: nonMasqueradeCIDR: 100.64.0.0/10 podInfraContainerImage: k8s.gcr.io/pause:3.2 podManifestPath: /etc/kubernetes/manifests -Tags: -- _automatic_upgrades -- _aws channels: - memfs://clusters.example.com/unmanaged.example.com/addons/bootstrap-channel.yaml