@@ -31,6 +31,8 @@ import (
3131
3232 "github.com/projectsveltos/addon-controller/controllers"
3333 libsveltosv1beta1 "github.com/projectsveltos/libsveltos/api/v1beta1"
34+ libsveltoscrd "github.com/projectsveltos/libsveltos/lib/crd"
35+ "github.com/projectsveltos/libsveltos/lib/k8s_utils"
3436)
3537
3638var _ = Describe ("Drift Detection Upgrade" , func () {
@@ -107,12 +109,16 @@ var _ = Describe("Drift Detection Upgrade", func() {
107109 }
108110 Expect (addTypeInformationToObject (scheme , capiClusterNotPaused )).To (Succeed ())
109111
112+ resourceSummaryCRD , err := k8s_utils .GetUnstructured (libsveltoscrd .GetResourceSummaryCRDYAML ())
113+ Expect (err ).To (BeNil ())
114+
110115 initObjects := []client.Object {
111116 sveltosClusterPaused ,
112117 sveltosClusterNotReady ,
113118 sveltosClusterReadyAndNotPaused ,
114119 capiClusterPaused ,
115120 capiClusterNotPaused ,
121+ resourceSummaryCRD ,
116122 }
117123
118124 c := fake .NewClientBuilder ().WithScheme (scheme ).WithStatusSubresource (initObjects ... ).
@@ -138,4 +144,51 @@ var _ = Describe("Drift Detection Upgrade", func() {
138144 Expect (err ).To (BeNil ())
139145 Expect (skip ).To (BeFalse ())
140146 })
147+
148+ It ("skipUpgrading skips clusters with no ResourceSummary CRD" , func () {
149+ sveltosClusterReadyAndNotPaused := & libsveltosv1beta1.SveltosCluster {
150+ ObjectMeta : metav1.ObjectMeta {
151+ Name : randomString (),
152+ Namespace : randomString (),
153+ },
154+ Spec : libsveltosv1beta1.SveltosClusterSpec {
155+ Paused : false ,
156+ },
157+ Status : libsveltosv1beta1.SveltosClusterStatus {
158+ Ready : true ,
159+ },
160+ }
161+ Expect (addTypeInformationToObject (scheme , sveltosClusterReadyAndNotPaused )).To (Succeed ())
162+
163+ initialized := true
164+ capiClusterNotPaused := & clusterv1.Cluster {
165+ ObjectMeta : metav1.ObjectMeta {
166+ Name : randomString (),
167+ Namespace : randomString (),
168+ },
169+ Spec : clusterv1.ClusterSpec {},
170+ Status : clusterv1.ClusterStatus {
171+ Initialization : clusterv1.ClusterInitializationStatus {
172+ ControlPlaneInitialized : & initialized ,
173+ },
174+ },
175+ }
176+ Expect (addTypeInformationToObject (scheme , capiClusterNotPaused )).To (Succeed ())
177+
178+ initObjects := []client.Object {
179+ sveltosClusterReadyAndNotPaused ,
180+ capiClusterNotPaused ,
181+ }
182+
183+ c := fake .NewClientBuilder ().WithScheme (scheme ).WithStatusSubresource (initObjects ... ).
184+ WithObjects (initObjects ... ).Build ()
185+
186+ skip , err := controllers .SkipUpgrading (context .TODO (), c , sveltosClusterReadyAndNotPaused , logger )
187+ Expect (err ).To (BeNil ())
188+ Expect (skip ).To (BeTrue ())
189+
190+ skip , err = controllers .SkipUpgrading (context .TODO (), c , capiClusterNotPaused , logger )
191+ Expect (err ).To (BeNil ())
192+ Expect (skip ).To (BeTrue ())
193+ })
141194})
0 commit comments