Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions cmd/kops/integration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -855,6 +855,7 @@ func TestManyAddonsCCMIRSA(t *testing.T) {

func TestManyAddonsGCE(t *testing.T) {
newIntegrationTest("minimal.example.com", "many-addons-gce").
withStartupScript().
withAddons(
certManagerAddon,
clusterAutoscalerAddon,
Expand Down
12 changes: 9 additions & 3 deletions pkg/model/gcemodel/autoscalinggroup.go
Original file line number Diff line number Diff line change
Expand Up @@ -132,10 +132,16 @@ func (b *AutoscalingGroupModelBuilder) buildInstanceTemplate(c *fi.CloudupModelB
}

if startupScript != nil {
if !fi.ValueOf(b.Cluster.Spec.CloudProvider.GCE.UseStartupScript) {
// Use "user-data" instead of "startup-script", for compatibility with cloud-init
// GCE doesn't bundle cloud-init on every OS unless cloud-init is present in the upstream distribution
// So far, thats only true for COS and Ubuntu
switch {
case fi.ValueOf(b.Cluster.Spec.CloudProvider.GCE.UseStartupScript):
t.Metadata["startup-script"] = startupScript
case strings.HasPrefix(ig.Spec.Image, "cos-cloud/"):
t.Metadata["user-data"] = startupScript
case strings.HasPrefix(ig.Spec.Image, "ubuntu-os-cloud/"):
t.Metadata["user-data"] = startupScript
} else {
default:
t.Metadata["startup-script"] = startupScript
}
}
Expand Down
54 changes: 26 additions & 28 deletions tests/integration/update_cluster/many-addons-gce/in-v1alpha2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,46 +18,45 @@ spec:
cloudProvider: gce
configBase: memfs://tests/minimal.example.com
etcdClusters:
- cpuRequest: 200m
etcdMembers:
- instanceGroup: master-us-test1-a
name: a
memoryRequest: 100Mi
name: main
- cpuRequest: 100m
etcdMembers:
- instanceGroup: master-us-test1-a
name: a
memoryRequest: 100Mi
name: events
- cpuRequest: 200m
etcdMembers:
- instanceGroup: master-us-test1-a
name: a
memoryRequest: 100Mi
name: main
- cpuRequest: 100m
etcdMembers:
- instanceGroup: master-us-test1-a
name: a
memoryRequest: 100Mi
name: events
iam:
allowContainerRegistry: true
legacy: false
kubelet:
anonymousAuth: false
kubernetesApiAccess:
- 0.0.0.0/0
- ::/0
- 0.0.0.0/0
- ::/0
kubernetesVersion: v1.32.0
masterPublicName: api.minimal.example.com
networking:
cni: {}
nonMasqueradeCIDR: 100.64.0.0/10
project: testproject
sshAccess:
- 0.0.0.0/0
- ::/0
- 0.0.0.0/0
- ::/0
subnets:
- cidr: 10.0.16.0/20
name: us-test1
region: us-test1
type: Public
- cidr: 10.0.16.0/20
name: us-test1
region: us-test1
type: Public
topology:
dns:
type: Public

---

apiVersion: kops.k8s.io/v1alpha2
kind: InstanceGroup
metadata:
Expand All @@ -66,18 +65,17 @@ metadata:
kops.k8s.io/cluster: minimal.example.com
name: master-us-test1-a
spec:
image: ubuntu-os-cloud/ubuntu-2004-focal-v20221018
image: debian-cloud/debian-12-bookworm-v20251014
machineType: e2-medium
maxSize: 1
minSize: 1
role: Master
subnets:
- us-test1
- us-test1
zones:
- us-test1-a
- us-test1-a

---

apiVersion: kops.k8s.io/v1alpha2
kind: InstanceGroup
metadata:
Expand All @@ -86,12 +84,12 @@ metadata:
kops.k8s.io/cluster: minimal.example.com
name: nodes
spec:
image: ubuntu-os-cloud/ubuntu-2004-focal-v20221018
image: debian-cloud/debian-12-bookworm-v20251014
machineType: e2-medium
maxSize: 1
minSize: 1
role: Node
subnets:
- us-test1
- us-test1
zones:
- us-test1-a
- us-test1-a
Original file line number Diff line number Diff line change
Expand Up @@ -470,7 +470,7 @@ resource "google_compute_instance_template" "master-us-test1-a-minimal-example-c
provisioned_iops = 0
provisioned_throughput = 0
source = ""
source_image = "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20221018"
source_image = "https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-12-bookworm-v20251014"
type = "PERSISTENT"
}
labels = {
Expand All @@ -487,7 +487,7 @@ resource "google_compute_instance_template" "master-us-test1-a-minimal-example-c
"cluster-name" = "minimal.example.com"
"kops-k8s-io-instance-group-name" = "master-us-test1-a"
"ssh-keys" = "admin: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCtWu40XQo8dczLsCq0OWV+hxm9uV3WxeH9Kgh4sMzQxNtoU1pvW0XdjpkBesRKGoolfWeCLXWxpyQb1IaiMkKoz7MdhQ/6UKjMjP66aFWWp3pwD0uj0HuJ7tq4gKHKRYGTaZIRWpzUiANBrjugVgA+Sd7E/mYwc/DMXkIyRZbvhQ=="
"user-data" = file("${path.module}/data/google_compute_instance_template_master-us-test1-a-minimal-example-com_metadata_user-data")
"startup-script" = file("${path.module}/data/google_compute_instance_template_master-us-test1-a-minimal-example-com_metadata_startup-script")
}
name_prefix = "master-us-test1-a-minimal-e8ua4m-"
network_interface {
Expand Down Expand Up @@ -524,7 +524,7 @@ resource "google_compute_instance_template" "nodes-minimal-example-com" {
provisioned_iops = 0
provisioned_throughput = 0
source = ""
source_image = "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20221018"
source_image = "https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-12-bookworm-v20251014"
type = "PERSISTENT"
}
labels = {
Expand All @@ -541,7 +541,7 @@ resource "google_compute_instance_template" "nodes-minimal-example-com" {
"kops-k8s-io-instance-group-name" = "nodes"
"kube-env" = "AUTOSCALER_ENV_VARS: os_distribution=ubuntu;arch=amd64;os=linux"
"ssh-keys" = "admin: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCtWu40XQo8dczLsCq0OWV+hxm9uV3WxeH9Kgh4sMzQxNtoU1pvW0XdjpkBesRKGoolfWeCLXWxpyQb1IaiMkKoz7MdhQ/6UKjMjP66aFWWp3pwD0uj0HuJ7tq4gKHKRYGTaZIRWpzUiANBrjugVgA+Sd7E/mYwc/DMXkIyRZbvhQ=="
"user-data" = file("${path.module}/data/google_compute_instance_template_nodes-minimal-example-com_metadata_user-data")
"startup-script" = file("${path.module}/data/google_compute_instance_template_nodes-minimal-example-com_metadata_startup-script")
}
name_prefix = "nodes-minimal-example-com-"
network_interface {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,44 +16,43 @@ spec:
cloudProvider: gce
configBase: memfs://tests/minimal-gce.example.com
etcdClusters:
- cpuRequest: 200m
etcdMembers:
- instanceGroup: master-us-test1-a
name: a
memoryRequest: 100Mi
name: main
- cpuRequest: 100m
etcdMembers:
- instanceGroup: master-us-test1-a
name: a
memoryRequest: 100Mi
name: events
- cpuRequest: 200m
etcdMembers:
- instanceGroup: master-us-test1-a
name: a
memoryRequest: 100Mi
name: main
- cpuRequest: 100m
etcdMembers:
- instanceGroup: master-us-test1-a
name: a
memoryRequest: 100Mi
name: events
iam:
legacy: false
kubelet:
anonymousAuth: false
kubernetesApiAccess:
- 0.0.0.0/0
- ::/0
- 0.0.0.0/0
- ::/0
kubernetesVersion: v1.32.0
masterPublicName: api.minimal-gce.example.com
networking:
cni: {}
nonMasqueradeCIDR: 100.64.0.0/10
project: testproject
sshAccess:
- 0.0.0.0/0
- ::/0
- 0.0.0.0/0
- ::/0
subnets:
- name: us-test1
region: us-test1
type: Private
- name: us-test1
region: us-test1
type: Private
topology:
dns:
type: None

---

apiVersion: kops.k8s.io/v1alpha2
kind: InstanceGroup
metadata:
Expand All @@ -62,18 +61,17 @@ metadata:
kops.k8s.io/cluster: minimal-gce.example.com
name: master-us-test1-a
spec:
image: ubuntu-os-cloud/ubuntu-2004-focal-v20221018
image: cos-cloud/cos-121-18867-294-2
machineType: e2-medium
maxSize: 1
minSize: 1
role: Master
subnets:
- us-test1
- us-test1
zones:
- us-test1-a
- us-test1-a

---

apiVersion: kops.k8s.io/v1alpha2
kind: InstanceGroup
metadata:
Expand All @@ -82,12 +80,12 @@ metadata:
kops.k8s.io/cluster: minimal-gce.example.com
name: nodes
spec:
image: ubuntu-os-cloud/ubuntu-2004-focal-v20221018
image: cos-cloud/cos-121-18867-294-2
machineType: e2-medium
maxSize: 2
minSize: 2
role: Node
subnets:
- us-test1
- us-test1
zones:
- us-test1-a
- us-test1-a
Original file line number Diff line number Diff line change
Expand Up @@ -510,7 +510,7 @@ resource "google_compute_instance_template" "master-us-test1-a-minimal-gce-examp
provisioned_iops = 0
provisioned_throughput = 0
source = ""
source_image = "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20221018"
source_image = "https://www.googleapis.com/compute/v1/projects/cos-cloud/global/images/cos-121-18867-294-2"
type = "PERSISTENT"
}
labels = {
Expand Down Expand Up @@ -562,7 +562,7 @@ resource "google_compute_instance_template" "nodes-minimal-gce-example-com" {
provisioned_iops = 0
provisioned_throughput = 0
source = ""
source_image = "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20221018"
source_image = "https://www.googleapis.com/compute/v1/projects/cos-cloud/global/images/cos-121-18867-294-2"
type = "PERSISTENT"
}
labels = {
Expand All @@ -577,7 +577,7 @@ resource "google_compute_instance_template" "nodes-minimal-gce-example-com" {
metadata = {
"cluster-name" = "minimal-gce.example.com"
"kops-k8s-io-instance-group-name" = "nodes"
"kube-env" = "AUTOSCALER_ENV_VARS: os_distribution=ubuntu;arch=amd64;os=linux"
"kube-env" = "AUTOSCALER_ENV_VARS: os_distribution=cos;arch=amd64;os=linux"
"ssh-keys" = "admin: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCtWu40XQo8dczLsCq0OWV+hxm9uV3WxeH9Kgh4sMzQxNtoU1pvW0XdjpkBesRKGoolfWeCLXWxpyQb1IaiMkKoz7MdhQ/6UKjMjP66aFWWp3pwD0uj0HuJ7tq4gKHKRYGTaZIRWpzUiANBrjugVgA+Sd7E/mYwc/DMXkIyRZbvhQ=="
"user-data" = file("${path.module}/data/google_compute_instance_template_nodes-minimal-gce-example-com_metadata_user-data")
}
Expand Down
Loading