@@ -14,7 +14,6 @@ import (
1414 "github.com/aws/aws-sdk-go/aws/awserr"
1515 "github.com/aws/aws-sdk-go/service/ec2"
1616
17- opv1 "github.com/openshift/api/operator/v1"
1817 exutil "github.com/openshift/origin/test/extended/util"
1918
2019 configv1 "github.com/openshift/api/config/v1"
@@ -38,7 +37,7 @@ const (
3837 resourceExhaustionTimeout = 15 * time .Minute
3938)
4039
41- // This is [Serial] because it modifies ClusterCSIDriver and attaches/detaches ENIs to worker nodes.
40+ // This is [Serial] because it scales down operators and attaches/detaches ENIs to worker nodes.
4241var _ = g .Describe ("[sig-storage][OCPFeature:MutableCSINodeAllocatableCount][Serial][Driver: ebs.csi.aws.com]" , g .Ordered , func () {
4342 defer g .GinkgoRecover ()
4443 var (
@@ -49,6 +48,9 @@ var _ = g.Describe("[sig-storage][OCPFeature:MutableCSINodeAllocatableCount][Ser
4948 targetWorkerNode string
5049 ec2Client * ec2.EC2
5150 originalAllocatableCount int32
51+ originalCVOReplicas * int32
52+ // originalCSOOpReplicas *int32
53+ // originalEBSOperatorReplicas *int32
5254 )
5355
5456 g .BeforeAll (func () {
@@ -75,18 +77,58 @@ var _ = g.Describe("[sig-storage][OCPFeature:MutableCSINodeAllocatableCount][Ser
7577 g .Skip ("MutableCSINodeAllocatableCount tests are not supported on MicroShift" )
7678 }
7779
78- g .By ("Setting ClusterCSIDriver managementState to Unmanaged" )
80+ g .By ("Scaling down cluster-version-operator, cluster-storage-operator, and aws-ebs-csi-driver-operator" )
81+
82+ // Scale down cluster-version-operator
83+ cvoDeployment , err := oc .AdminKubeClient ().AppsV1 ().Deployments ("openshift-cluster-version" ).Get (ctx , "cluster-version-operator" , metav1.GetOptions {})
84+ o .Expect (err ).NotTo (o .HaveOccurred (), "failed to get cluster-version-operator deployment" )
85+ originalCVOReplicas = cvoDeployment .Spec .Replicas
86+ err = retry .RetryOnConflict (retry .DefaultRetry , func () error {
87+ deployment , err := oc .AdminKubeClient ().AppsV1 ().Deployments ("openshift-cluster-version" ).Get (ctx , "cluster-version-operator" , metav1.GetOptions {})
88+ if err != nil {
89+ return err
90+ }
91+ zero := int32 (0 )
92+ deployment .Spec .Replicas = & zero
93+ _ , err = oc .AdminKubeClient ().AppsV1 ().Deployments ("openshift-cluster-version" ).Update (ctx , deployment , metav1.UpdateOptions {})
94+ return err
95+ })
96+ o .Expect (err ).NotTo (o .HaveOccurred (), "failed to scale down cluster-version-operator" )
97+ e2e .Logf ("Successfully scaled down cluster-version-operator" )
98+
99+ // Scale down cluster-storage-operator
100+ // csoDeployment, err := oc.AdminKubeClient().AppsV1().Deployments("openshift-cluster-storage-operator").Get(ctx, "cluster-storage-operator", metav1.GetOptions{})
101+ // o.Expect(err).NotTo(o.HaveOccurred(), "failed to get cluster-storage-operator deployment")
102+ // originalCSOOpReplicas = csoDeployment.Spec.Replicas
103+ err = retry .RetryOnConflict (retry .DefaultRetry , func () error {
104+ deployment , err := oc .AdminKubeClient ().AppsV1 ().Deployments ("openshift-cluster-storage-operator" ).Get (ctx , "cluster-storage-operator" , metav1.GetOptions {})
105+ if err != nil {
106+ return err
107+ }
108+ zero := int32 (0 )
109+ deployment .Spec .Replicas = & zero
110+ _ , err = oc .AdminKubeClient ().AppsV1 ().Deployments ("openshift-cluster-storage-operator" ).Update (ctx , deployment , metav1.UpdateOptions {})
111+ return err
112+ })
113+ o .Expect (err ).NotTo (o .HaveOccurred (), "failed to scale down cluster-storage-operator" )
114+ e2e .Logf ("Successfully scaled down cluster-storage-operator" )
115+
116+ // Scale down aws-ebs-csi-driver-operator
117+ // ebsOperatorDeployment, err := oc.AdminKubeClient().AppsV1().Deployments("openshift-cluster-csi-drivers").Get(ctx, "aws-ebs-csi-driver-operator", metav1.GetOptions{})
118+ // o.Expect(err).NotTo(o.HaveOccurred(), "failed to get aws-ebs-csi-driver-operator deployment")
119+ // originalEBSOperatorReplicas = ebsOperatorDeployment.Spec.Replicas
79120 err = retry .RetryOnConflict (retry .DefaultRetry , func () error {
80- clusterCSIDriver , err := oc .AdminOperatorClient ().OperatorV1 ().ClusterCSIDrivers ( ).Get (ctx , ebsCSIDriverName , metav1.GetOptions {})
121+ deployment , err := oc .AdminKubeClient ().AppsV1 ().Deployments ( "openshift-cluster-csi-drivers" ).Get (ctx , "aws-ebs-csi-driver-operator" , metav1.GetOptions {})
81122 if err != nil {
82123 return err
83124 }
84- clusterCSIDriver .Spec .ManagementState = opv1 .Unmanaged
85- _ , err = oc .AdminOperatorClient ().OperatorV1 ().ClusterCSIDrivers ().Update (ctx , clusterCSIDriver , metav1.UpdateOptions {})
125+ zero := int32 (0 )
126+ deployment .Spec .Replicas = & zero
127+ _ , err = oc .AdminKubeClient ().AppsV1 ().Deployments ("openshift-cluster-csi-drivers" ).Update (ctx , deployment , metav1.UpdateOptions {})
86128 return err
87129 })
88- o .Expect (err ).NotTo (o .HaveOccurred (), "failed to update ClusterCSIDriver managementState " )
89- e2e .Logf ("Successfully set ClusterCSIDriver managementState to Unmanaged " )
130+ o .Expect (err ).NotTo (o .HaveOccurred (), "failed to scale down aws-ebs-csi-driver-operator " )
131+ e2e .Logf ("Successfully scaled down aws-ebs-csi-driver-operator " )
90132
91133 // Get AWS credentials
92134 exutil .GetAwsCredentialFromCluster (oc )
@@ -97,21 +139,52 @@ var _ = g.Describe("[sig-storage][OCPFeature:MutableCSINodeAllocatableCount][Ser
97139 })
98140
99141 g .AfterAll (func () {
100- g .By ("Recover ClusterCSIDriver managementState to Managed" )
101- err := retry .RetryOnConflict (retry .DefaultRetry , func () error {
102- clusterCSIDriver , err := oc .AdminOperatorClient ().OperatorV1 ().ClusterCSIDrivers ().Get (ctx , ebsCSIDriverName , metav1.GetOptions {})
103- if err != nil {
142+ g .By ("Restoring operator replica counts" )
143+
144+ // Restore cluster-version-operator, it will automatically restore other operators
145+ if originalCVOReplicas != nil {
146+ err := retry .RetryOnConflict (retry .DefaultRetry , func () error {
147+ deployment , err := oc .AdminKubeClient ().AppsV1 ().Deployments ("openshift-cluster-version" ).Get (ctx , "cluster-version-operator" , metav1.GetOptions {})
148+ if err != nil {
149+ return err
150+ }
151+ deployment .Spec .Replicas = originalCVOReplicas
152+ _ , err = oc .AdminKubeClient ().AppsV1 ().Deployments ("openshift-cluster-version" ).Update (ctx , deployment , metav1.UpdateOptions {})
104153 return err
105- }
106- if clusterCSIDriver .Spec .ManagementState == opv1 .Managed {
107- return nil
108- }
109- clusterCSIDriver .Spec .ManagementState = opv1 .Unmanaged
110- _ , err = oc .AdminOperatorClient ().OperatorV1 ().ClusterCSIDrivers ().Update (ctx , clusterCSIDriver , metav1.UpdateOptions {})
111- return err
112- })
113- o .Expect (err ).NotTo (o .HaveOccurred (), "failed to recover ClusterCSIDriver managementState" )
114- e2e .Logf ("Successfully recover ClusterCSIDriver managementState to Managed" )
154+ })
155+ o .Expect (err ).NotTo (o .HaveOccurred (), "failed to restore cluster-version-operator" )
156+ e2e .Logf ("Successfully restored cluster-version-operator" )
157+ }
158+
159+ // // Restore cluster-storage-operator
160+ // if originalCSOOpReplicas != nil {
161+ // err := retry.RetryOnConflict(retry.DefaultRetry, func() error {
162+ // deployment, err := oc.AdminKubeClient().AppsV1().Deployments("openshift-cluster-storage-operator").Get(ctx, "cluster-storage-operator", metav1.GetOptions{})
163+ // if err != nil {
164+ // return err
165+ // }
166+ // deployment.Spec.Replicas = originalCSOOpReplicas
167+ // _, err = oc.AdminKubeClient().AppsV1().Deployments("openshift-cluster-storage-operator").Update(ctx, deployment, metav1.UpdateOptions{})
168+ // return err
169+ // })
170+ // o.Expect(err).NotTo(o.HaveOccurred(), "failed to restore cluster-storage-operator")
171+ // e2e.Logf("Successfully restored cluster-storage-operator")
172+ // }
173+
174+ // // Restore aws-ebs-csi-driver-operator
175+ // if originalEBSOperatorReplicas != nil {
176+ // err := retry.RetryOnConflict(retry.DefaultRetry, func() error {
177+ // deployment, err := oc.AdminKubeClient().AppsV1().Deployments("openshift-cluster-csi-drivers").Get(ctx, "aws-ebs-csi-driver-operator", metav1.GetOptions{})
178+ // if err != nil {
179+ // return err
180+ // }
181+ // deployment.Spec.Replicas = originalEBSOperatorReplicas
182+ // _, err = oc.AdminKubeClient().AppsV1().Deployments("openshift-cluster-csi-drivers").Update(ctx, deployment, metav1.UpdateOptions{})
183+ // return err
184+ // })
185+ // o.Expect(err).NotTo(o.HaveOccurred(), "failed to restore aws-ebs-csi-driver-operator")
186+ // e2e.Logf("Successfully restored aws-ebs-csi-driver-operator")
187+ // }
115188 })
116189
117190 g .BeforeEach (func () {
0 commit comments