Repository: kubernetes/kops (go)

Issue:
Karpenter instance-groups can not rolling-update
/kind bug

**1. What `kops` version are you running? The command `kops version`, will display
 this information.**

Client version: 1.25.0 (git-v1.25.0)

**2. What Kubernetes version are you running? `kubectl version` will print the
 version if a cluster is running or provide the Kubernetes version specified as
 a `kops` flag.**
Client:
```
Client Version: version.Info{Major:"1", Minor:"25", GitVersion:"v1.25.3", GitCommit:"434bfd82814af038ad94d62ebe59b133fcb50506", GitTreeState:"archive", BuildDate:"2022-10-14T11:35:04Z", GoVersion:"go1.19.2", Compiler:"gc", Platform:"linux/amd64"}
Kustomize Version: v4.5.7
```
Server:
```
Server Version: version.Info{Major:"1", Minor:"23+", GitVersion:"v1.23.10-eks-15b7512", GitCommit:"cd6399691d9b1fed9ec20c9c5e82f5993c3f42cb", GitTreeState:"clean", BuildDate:"2022-08-31T19:17:01Z", GoVersion:"go1.17.13", Compiler:"gc", Platform:"linux/amd64"}
```

**3. What cloud provider are you using?**
AWS

**4. What commands did you run?  What is the simplest way to reproduce this issue?**
```
kops-1.25.0 rolling-update cluster --instance-group nodes --yes
```

**5. What happened after the commands executed?**

Using ` manager: Karpenter` on this instance group, binary returns errors:
```
> kops-1.25.0 rolling-update cluster --instance-group nodes --yes
NAME	STATUS		NEEDUPDATE	READY	MIN	TARGET	MAX	NODES
nodes	NeedsUpdate	9		1	0	0	0	10
I1017 11:51:51.768193  440763 instancegroups.go:472] Validating the cluster.
I1017 11:51:59.695100  440763 instancegroups.go:505] Cluster validated.
I1017 11:51:59.695364  440763 instancegroups.go:570] Detaching instance "i-08d296423e6398dd1", node "i-08d296423e6398dd1", in group "nodes".
panic: interface conversion: interface {} is nil, not *autoscaling.Group

goroutine 1 [running]:
k8s.io/kops/upup/pkg/fi/cloudup/awsup.detachInstance({0x53bdbb0?, 0xc0007b8750?}, 0x600f4f9?)
	k8s.io/kops/upup/pkg/fi/cloudup/awsup/aws_cloud.go:748 +0x4f6
k8s.io/kops/upup/pkg/fi/cloudup/awsup.(*awsCloudImplementation).DetachInstance(0xc001cd2390?, 0x3?)
	k8s.io/kops/upup/pkg/fi/cloudup/awsup/aws_cloud.go:739 +0x77
k8s.io/kops/pkg/instancegroups.(*RollingUpdateCluster).detachInstance(0xc000201200, 0xc000522f00)
	k8s.io/kops/pkg/instancegroups/instancegroups.go:575 +0x2b5
k8s.io/kops/pkg/instancegroups.(*RollingUpdateCluster).rollingUpdateInstanceGroup(0xc000201200, 0xc0009d6000, 0x37e11d600)
	k8s.io/kops/pkg/instancegroups/instancegroups.go:159 +0x1125
k8s.io/kops/pkg/instancegroups.(*RollingUpdateCluster).RollingUpdate(0xc000201200, 0xc0012001e0, 0xc0007b8750?)
	k8s.io/kops/pkg/instancegroups/rollingupdate.go:196 +0xa79
main.RunRollingUpdateCluster({0x53999e0?, 0xc00012e008}, 0x0?, {0x53717a0, 0xc000130008}, 0xc000626630)
	k8s.io/kops/cmd/kops/rolling-update_cluster.go:434 +0xf49
main.NewCmdRollingUpdateCluster.func1(0xc0009a7900?, {0xc0006252f0?, 0x3?, 0x3?})
	k8s.io/kops/cmd/kops/rolling-update_cluster.go:176 +0x37
github.com/spf13/cobra.(*Command).execute(0xc0009a7900, {0xc0006252c0, 0x3, 0x3})
	github.com/spf13/cobra@v1.5.0/command.go:872 +0x694
github.com/spf13/cobra.(*Command).ExecuteC(0x7605320)
	github.com/spf13/cobra@v1.5.0/command.go:990 +0x3bd
github.com/spf13/cobra.(*Command).Execute(...)
	github.com/spf13/cobra@v1.5.0/command.go:918
main.Execute()
	k8s.io/kops/cmd/kops/root.go:95 +0x5c
main.main()
	k8s.io/kops/cmd/kops/main.go:20 +0x17

```

The instance group still consider to be an ASG.

**6. What did you expect to happen?**
Karpenter nodes are rolling update without the need to be an ASG.

**7. Please provide your cluster manifest. Execute
  `kops get --name my.example.com -o yaml` to display your cluster manifest.
  You may want to remove your cluster name and other sensitive information.**

```yaml
piVersion: kops.k8s.io/v1alpha2
kind: InstanceGroup
metadata:
  creationTimestamp: "2022-10-17T08:35:19Z"
  generation: 7
  labels:
    kops.k8s.io/cluster: aws-1-kops.us-east-1.preprod.toto.io
  name: nodes
spec:
  additionalUserData:
  - content: |
      #!/bin/sh
      sudo mv /etc/cron.daily/logrotate /etc/cron.hourly/.
    name: move-logrotate-hourly.sh
    type: text/x-shellscript
  - content: |
      #!/bin/sh
      sudo yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r) -y
    name: kernel-header-devel.sh
    type: text/x-shellscript
  - content: |
      #!/bin/sh
      sudo mkdir -p /etc/systemd/logind.conf.d
      cat << EOF > 50-max-delay.conf
      [Login]
      InhibitDelayMaxSec=360
      EOF
      sudo mv 50-max-delay.conf /etc/systemd/logind.conf.d/
      sudo systemctl restart systemd-logind
    name: fix-logind-graceful-node-shutdown.sh
    type: text/x-shellscript
  autoscale: false
  cloudLabels:
    continent: us
    env: preprod
  image: amazon/amzn2-ami-kernel-5.10-hvm-2.0.20220912.1-x86_64-gp2
  instanceProtection: true
  kubelet:
    kubeReserved:
      cpu: 100m
      ephemeral-storage: 1Gi
      memory: 500Mi
    kubeReservedCgroup: /kube-reserved
    systemReserved:
      cpu: 400m
      ephemeral-storage: 1Gi
      memory: 1Gi
    systemReservedCgroup: /system-reserved
  machineType: m6a.4xlarge
  manager: Karpenter
  mixedInstancesPolicy:
    instances:
    - r4.16xlarge
    - m4.4xlarge
    - m5a.4xlarge
    - r6i.xlarge
    - c6i.8xlarge
    - r6a.2xlarge
    - m5a.16xlarge
    - m5a.2xlarge
    - r5.24xlarge
    - m6a.2xlarge
    - r5a.xlarge
    - r5a.2xlarge
    - c4.4xlarge
    - c6i.2xlarge
    - m6i.large
    - c6a.24xlarge
    - r6a.xlarge
    - c6a.16xlarge
    - m6a.large
    - c6i.large
    - m5.8xlarge
    - c6i.4xlarge
    - c4.8xlarge
    - r5.large
    - c4.large
    - m5.xlarge
    - r6i.24xlarge
    - r6a.12xlarge
    - c5a.xlarge
    - r5a.large
    - c5a.4xlarge
    - c5.4xlarge
    - r6i.4xlarge
    - r5a.16xlarge
    - r6a.8xlarge
    - m5.12xlarge
    - c5.xlarge
    - m6i.8xlarge
    - r5a.12xlarge
    - c5a.12xlarge
    - m4.xlarge
    - m5.24xlarge
    - m6i.24xlarge
    - c6i.24xlarge
    - c6a.12xlarge
    - m4.16xlarge
    - c6i.16xlarge
    - c5.24xlarge
    - m6a.4xlarge
    - r5a.4xlarge
    - m4.large
    - m5.4xlarge
    - c5.12xlarge
    - r5.4xlarge
    - m6i.16xlarge
    - r5.16xlarge
    - c6a.8xlarge
    - c5a.24xlarge
    - c5a.2xlarge
    - c5.2xlarge
    - r6i.16xlarge
    - r5.2xlarge
    - r6a.24xlarge
    - c6a.xlarge
    - r5.8xlarge
    - m5.16xlarge
    - m4.2xlarge
    - r6i.12xlarge
    - m5a.8xlarge
    - r5.xlarge
    - c4.xlarge
    - c6a.4xlarge
    - r4.xlarge
    - c5.large
    - r4.2xlarge
    - c5a.16xlarge
    - r6a.4xlarge
    - m6a.16xlarge
    - c5.9xlarge
    - m6i.4xlarge
    - c4.2xlarge
    - m5.large
    - c6a.2xlarge
    - r6a.large
    - r5a.24xlarge
    - m6a.24xlarge
    - r4.8xlarge
    - m5.2xlarge
    - c6i.xlarge
    - r4.large
    - r5a.8xlarge
    - r6i.8xlarge
    - r5.12xlarge
    - m4.10xlarge
    - c5a.8xlarge
    - r6a.16xlarge
    - m6i.xlarge
    - m6a.xlarge
    - c6i.12xlarge
    - m5a.large
    - m5a.12xlarge
    - r4.4xlarge
    - r6i.2xlarge
    - c5a.large
    - c5.18xlarge
    - m5a.24xlarge
    - m6a.8xlarge
    - r6i.large
    - c6a.large
    - m6a.12xlarge
    - m6i.12xlarge
    - m5a.xlarge
    - m6i.2xlarge
    onDemandAboveBase: 0
    onDemandBase: 0
    spotAllocationStrategy: capacity-optimized
  nodeLabels:
    kops.k8s.io/instancegroup: nodes
  role: Node
  rollingUpdate:
    maxSurge: 5
  rootVolumeEncryption: true
  rootVolumeSize: 65
  subnets:
  - nodes-us-east-1a
  - nodes-us-east-1b
  - nodes-us-east-1c
  suspendProcesses:
  - AZRebalance
  tenancy: default
```

Pull request description:
Ensure kOps doesn't surge on karpenter IGs
Fixes #14422

Patch:
diff --git a/pkg/instancegroups/instancegroups.go b/pkg/instancegroups/instancegroups.go
index 9de86c20f7..4e07ab71cf 100644
--- a/pkg/instancegroups/instancegroups.go
+++ b/pkg/instancegroups/instancegroups.go
@@ -131,6 +131,11 @@ func (c *RollingUpdateCluster) rollingUpdateInstanceGroup(group *cloudinstances.
 
 	maxConcurrency := maxSurge + settings.MaxUnavailable.IntValue()
 
+	// Karpenter cannot surge
+	if group.InstanceGroup.Spec.Manager == api.InstanceManagerKarpenter {
+		maxSurge = 0
+	}
+
 	if group.InstanceGroup.Spec.Role == api.InstanceGroupRoleMaster && maxSurge != 0 {
 		// Masters are incapable of surging because they rely on registering themselves through
 		// the local apiserver. That apiserver depends on the local etcd, which relies on being
diff --git a/upup/models/cloudup/resources/addons/snapshot-controller.addons.k8s.io/k8s-1.20.yaml.template b/upup/models/cloudup/resources/addons/snapshot-controller.addons.k8s.io/k8s-1.20.yaml.template
index a81316d776..8d8e897542 100644
--- a/upup/models/cloudup/resources/addons/snapshot-controller.addons.k8s.io/k8s-1.20.yaml.template
+++ b/upup/models/cloudup/resources/addons/snapshot-controller.addons.k8s.io/k8s-1.20.yaml.template
@@ -1074,7 +1074,6 @@ rules:
   resources:
   - volumesnapshotcontents
   verbs:
-  - create
   - get
   - list
   - watch
@@ -1281,4 +1280,4 @@ metadata:
     snapshot.storage.kubernetes.io/is-default-class: "true"
 driver: ebs.csi.aws.com
 deletionPolicy: Delete
-{{ end }}
+{{ end }}
\ No newline at end of file


Test patch:
diff --git a/tests/integration/update_cluster/many-addons-ccm-irsa/data/aws_s3_object_minimal.example.com-addons-bootstrap_content b/tests/integration/update_cluster/many-addons-ccm-irsa/data/aws_s3_object_minimal.example.com-addons-bootstrap_content
index 71ef8089bf..c9add99743 100644
--- a/tests/integration/update_cluster/many-addons-ccm-irsa/data/aws_s3_object_minimal.example.com-addons-bootstrap_content
+++ b/tests/integration/update_cluster/many-addons-ccm-irsa/data/aws_s3_object_minimal.example.com-addons-bootstrap_content
@@ -134,7 +134,7 @@ spec:
     version: 9.99.0
   - id: k8s-1.20
     manifest: snapshot-controller.addons.k8s.io/k8s-1.20.yaml
-    manifestHash: 0ee38c110ae8012a720b23bf9f4f99a977ff813643739f67cc7d9c99d5a66fef
+    manifestHash: afddd701326e01eeb49e71ac389d8f31925bdd618f1767bcf112104338f0264f
     name: snapshot-controller.addons.k8s.io
     needsPKI: true
     selector:
diff --git a/tests/integration/update_cluster/many-addons-ccm-irsa/data/aws_s3_object_minimal.example.com-addons-snapshot-controller.addons.k8s.io-k8s-1.20_content b/tests/integration/update_cluster/many-addons-ccm-irsa/data/aws_s3_object_minimal.example.com-addons-snapshot-controller.addons.k8s.io-k8s-1.20_content
index b9197e965b..1d3c07c480 100644
--- a/tests/integration/update_cluster/many-addons-ccm-irsa/data/aws_s3_object_minimal.example.com-addons-snapshot-controller.addons.k8s.io-k8s-1.20_content
+++ b/tests/integration/update_cluster/many-addons-ccm-irsa/data/aws_s3_object_minimal.example.com-addons-snapshot-controller.addons.k8s.io-k8s-1.20_content
@@ -1111,7 +1111,6 @@ rules:
   resources:
   - volumesnapshotcontents
   verbs:
-  - create
   - get
   - list
   - watch
diff --git a/tests/integration/update_cluster/many-addons-ccm-irsa23/data/aws_s3_object_minimal.example.com-addons-bootstrap_content b/tests/integration/update_cluster/many-addons-ccm-irsa23/data/aws_s3_object_minimal.example.com-addons-bootstrap_content
index b386254245..81dcdaab19 100644
--- a/tests/integration/update_cluster/many-addons-ccm-irsa23/data/aws_s3_object_minimal.example.com-addons-bootstrap_content
+++ b/tests/integration/update_cluster/many-addons-ccm-irsa23/data/aws_s3_object_minimal.example.com-addons-bootstrap_content
@@ -141,7 +141,7 @@ spec:
     version: 9.99.0
   - id: k8s-1.20
     manifest: snapshot-controller.addons.k8s.io/k8s-1.20.yaml
-    manifestHash: 0ee38c110ae8012a720b23bf9f4f99a977ff813643739f67cc7d9c99d5a66fef
+    manifestHash: afddd701326e01eeb49e71ac389d8f31925bdd618f1767bcf112104338f0264f
     name: snapshot-controller.addons.k8s.io
     needsPKI: true
     selector:
diff --git a/tests/integration/update_cluster/many-addons-ccm-irsa23/data/aws_s3_object_minimal.example.com-addons-snapshot-controller.addons.k8s.io-k8s-1.20_content b/tests/integration/update_cluster/many-addons-ccm-irsa23/data/aws_s3_object_minimal.example.com-addons-snapshot-controller.addons.k8s.io-k8s-1.20_content
index b9197e965b..1d3c07c480 100644
--- a/tests/integration/update_cluster/many-addons-ccm-irsa23/data/aws_s3_object_minimal.example.com-addons-snapshot-controller.addons.k8s.io-k8s-1.20_content
+++ b/tests/integration/update_cluster/many-addons-ccm-irsa23/data/aws_s3_object_minimal.example.com-addons-snapshot-controller.addons.k8s.io-k8s-1.20_content
@@ -1111,7 +1111,6 @@ rules:
   resources:
   - volumesnapshotcontents
   verbs:
-  - create
   - get
   - list
   - watch
diff --git a/tests/integration/update_cluster/many-addons-ccm-irsa24/data/aws_s3_object_minimal.example.com-addons-bootstrap_content b/tests/integration/update_cluster/many-addons-ccm-irsa24/data/aws_s3_object_minimal.example.com-addons-bootstrap_content
index 1cc5b7ebe2..e9f7b2a907 100644
--- a/tests/integration/update_cluster/many-addons-ccm-irsa24/data/aws_s3_object_minimal.example.com-addons-bootstrap_content
+++ b/tests/integration/update_cluster/many-addons-ccm-irsa24/data/aws_s3_object_minimal.example.com-addons-bootstrap_content
@@ -141,7 +141,7 @@ spec:
     version: 9.99.0
   - id: k8s-1.20
     manifest: snapshot-controller.addons.k8s.io/k8s-1.20.yaml
-    manifestHash: 0ee38c110ae8012a720b23bf9f4f99a977ff813643739f67cc7d9c99d5a66fef
+    manifestHash: afddd701326e01eeb49e71ac389d8f31925bdd618f1767bcf112104338f0264f
     name: snapshot-controller.addons.k8s.io
     needsPKI: true
     selector:
diff --git a/tests/integration/update_cluster/many-addons-ccm-irsa24/data/aws_s3_object_minimal.example.com-addons-snapshot-controller.addons.k8s.io-k8s-1.20_content b/tests/integration/update_cluster/many-addons-ccm-irsa24/data/aws_s3_object_minimal.example.com-addons-snapshot-controller.addons.k8s.io-k8s-1.20_content
index b9197e965b..1d3c07c480 100644
--- a/tests/integration/update_cluster/many-addons-ccm-irsa24/data/aws_s3_object_minimal.example.com-addons-snapshot-controller.addons.k8s.io-k8s-1.20_content
+++ b/tests/integration/update_cluster/many-addons-ccm-irsa24/data/aws_s3_object_minimal.example.com-addons-snapshot-controller.addons.k8s.io-k8s-1.20_content
@@ -1111,7 +1111,6 @@ rules:
   resources:
   - volumesnapshotcontents
   verbs:
-  - create
   - get
   - list
   - watch
diff --git a/tests/integration/update_cluster/many-addons-ccm-irsa25/data/aws_s3_object_minimal.example.com-addons-bootstrap_content b/tests/integration/update_cluster/many-addons-ccm-irsa25/data/aws_s3_object_minimal.example.com-addons-bootstrap_content
index e239cacf55..d6f03cfe12 100644
--- a/tests/integration/update_cluster/many-addons-ccm-irsa25/data/aws_s3_object_minimal.example.com-addons-bootstrap_content
+++ b/tests/integration/update_cluster/many-addons-ccm-irsa25/data/aws_s3_object_minimal.example.com-addons-bootstrap_content
@@ -141,7 +141,7 @@ spec:
     version: 9.99.0
   - id: k8s-1.20
     manifest: snapshot-controller.addons.k8s.io/k8s-1.20.yaml
-    manifestHash: 0ee38c110ae8012a720b23bf9f4f99a977ff813643739f67cc7d9c99d5a66fef
+    manifestHash: afddd701326e01eeb49e71ac389d8f31925bdd618f1767bcf112104338f0264f
     name: snapshot-controller.addons.k8s.io
     needsPKI: true
     selector:
diff --git a/tests/integration/update_cluster/many-addons-ccm-irsa25/data/aws_s3_object_minimal.example.com-addons-snapshot-controller.addons.k8s.io-k8s-1.20_content b/tests/integration/update_cluster/many-addons-ccm-irsa25/data/aws_s3_object_minimal.example.com-addons-snapshot-controller.addons.k8s.io-k8s-1.20_content
index b9197e965b..1d3c07c480 100644
--- a/tests/integration/update_cluster/many-addons-ccm-irsa25/data/aws_s3_object_minimal.example.com-addons-snapshot-controller.addons.k8s.io-k8s-1.20_content
+++ b/tests/integration/update_cluster/many-addons-ccm-irsa25/data/aws_s3_object_minimal.example.com-addons-snapshot-controller.addons.k8s.io-k8s-1.20_content
@@ -1111,7 +1111,6 @@ rules:
   resources:
   - volumesnapshotcontents
   verbs:
-  - create
   - get
   - list
   - watch
diff --git a/tests/integration/update_cluster/many-addons-ccm-irsa26/data/aws_s3_object_minimal.example.com-addons-bootstrap_content b/tests/integration/update_cluster/many-addons-ccm-irsa26/data/aws_s3_object_minimal.example.com-addons-bootstrap_content
index 0de439704b..a43e94acea 100644
--- a/tests/integration/update_cluster/many-addons-ccm-irsa26/data/aws_s3_object_minimal.example.com-addons-bootstrap_content
+++ b/tests/integration/update_cluster/many-addons-ccm-irsa26/data/aws_s3_object_minimal.example.com-addons-bootstrap_content
@@ -134,7 +134,7 @@ spec:
     version: 9.99.0
   - id: k8s-1.20
     manifest: snapshot-controller.addons.k8s.io/k8s-1.20.yaml
-    manifestHash: 0ee38c110ae8012a720b23bf9f4f99a977ff813643739f67cc7d9c99d5a66fef
+    manifestHash: afddd701326e01eeb49e71ac389d8f31925bdd618f1767bcf112104338f0264f
     name: snapshot-controller.addons.k8s.io
     needsPKI: true
     selector:
diff --git a/tests/integration/update_cluster/many-addons-ccm-irsa26/data/aws_s3_object_minimal.example.com-addons-snapshot-controller.addons.k8s.io-k8s-1.20_content b/tests/integration/update_cluster/many-addons-ccm-irsa26/data/aws_s3_object_minimal.example.com-addons-snapshot-controller.addons.k8s.io-k8s-1.20_content
index b9197e965b..1d3c07c480 100644
--- a/tests/integration/update_cluster/many-addons-ccm-irsa26/data/aws_s3_object_minimal.example.com-addons-snapshot-controller.addons.k8s.io-k8s-1.20_content
+++ b/tests/integration/update_cluster/many-addons-ccm-irsa26/data/aws_s3_object_minimal.example.com-addons-snapshot-controller.addons.k8s.io-k8s-1.20_content
@@ -1111,7 +1111,6 @@ rules:
   resources:
   - volumesnapshotcontents
   verbs:
-  - create
   - get
   - list
   - watch
diff --git a/tests/integration/update_cluster/many-addons-ccm/data/aws_s3_object_minimal.example.com-addons-bootstrap_content b/tests/integration/update_cluster/many-addons-ccm/data/aws_s3_object_minimal.example.com-addons-bootstrap_content
index bcb1bf0a8f..27beacd42d 100644
--- a/tests/integration/update_cluster/many-addons-ccm/data/aws_s3_object_minimal.example.com-addons-bootstrap_content
+++ b/tests/integration/update_cluster/many-addons-ccm/data/aws_s3_object_minimal.example.com-addons-bootstrap_content
@@ -134,7 +134,7 @@ spec:
     version: 9.99.0
   - id: k8s-1.20
     manifest: snapshot-controller.addons.k8s.io/k8s-1.20.yaml
-    manifestHash: 0ee38c110ae8012a720b23bf9f4f99a977ff813643739f67cc7d9c99d5a66fef
+    manifestHash: afddd701326e01eeb49e71ac389d8f31925bdd618f1767bcf112104338f0264f
     name: snapshot-controller.addons.k8s.io
     needsPKI: true
     selector:
diff --git a/tests/integration/update_cluster/many-addons-ccm/data/aws_s3_object_minimal.example.com-addons-snapshot-controller.addons.k8s.io-k8s-1.20_content b/tests/integration/update_cluster/many-addons-ccm/data/aws_s3_object_minimal.example.com-addons-snapshot-controller.addons.k8s.io-k8s-1.20_content
index b9197e965b..1d3c07c480 100644
--- a/tests/integration/update_cluster/many-addons-ccm/data/aws_s3_object_minimal.example.com-addons-snapshot-controller.addons.k8s.io-k8s-1.20_content
+++ b/tests/integration/update_cluster/many-addons-ccm/data/aws_s3_object_minimal.example.com-addons-snapshot-controller.addons.k8s.io-k8s-1.20_content
@@ -1111,7 +1111,6 @@ rules:
   resources:
   - volumesnapshotcontents
   verbs:
-  - create
   - get
   - list
   - watch
diff --git a/tests/integration/update_cluster/many-addons/data/aws_s3_object_minimal.example.com-addons-bootstrap_content b/tests/integration/update_cluster/many-addons/data/aws_s3_object_minimal.example.com-addons-bootstrap_content
index 1400a5cef8..77dd45fef1 100644
--- a/tests/integration/update_cluster/many-addons/data/aws_s3_object_minimal.example.com-addons-bootstrap_content
+++ b/tests/integration/update_cluster/many-addons/data/aws_s3_object_minimal.example.com-addons-bootstrap_content
@@ -127,7 +127,7 @@ spec:
     version: 9.99.0
   - id: k8s-1.20
     manifest: snapshot-controller.addons.k8s.io/k8s-1.20.yaml
-    manifestHash: 0ee38c110ae8012a720b23bf9f4f99a977ff813643739f67cc7d9c99d5a66fef
+    manifestHash: afddd701326e01eeb49e71ac389d8f31925bdd618f1767bcf112104338f0264f
     name: snapshot-controller.addons.k8s.io
     needsPKI: true
     selector:
diff --git a/tests/integration/update_cluster/many-addons/data/aws_s3_object_minimal.example.com-addons-snapshot-controller.addons.k8s.io-k8s-1.20_content b/tests/integration/update_cluster/many-addons/data/aws_s3_object_minimal.example.com-addons-snapshot-controller.addons.k8s.io-k8s-1.20_content
index b9197e965b..1d3c07c480 100644
--- a/tests/integration/update_cluster/many-addons/data/aws_s3_object_minimal.example.com-addons-snapshot-controller.addons.k8s.io-k8s-1.20_content
+++ b/tests/integration/update_cluster/many-addons/data/aws_s3_object_minimal.example.com-addons-snapshot-controller.addons.k8s.io-k8s-1.20_content
@@ -1111,7 +1111,6 @@ rules:
   resources:
   - volumesnapshotcontents
   verbs:
-  - create
   - get
   - list
   - watch