7
7
. "github.com/onsi/ginkgo"
8
8
. "github.com/onsi/gomega"
9
9
"github.com/stretchr/testify/require"
10
+ corev1 "k8s.io/api/core/v1"
10
11
11
12
"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions"
12
13
meta "k8s.io/apimachinery/pkg/api/meta"
@@ -18,8 +19,17 @@ import (
18
19
)
19
20
20
21
var _ = Describe ("Operator Condition" , func () {
22
+
23
+ var (
24
+ generatedNamespace corev1.Namespace
25
+ )
26
+
27
+ BeforeEach (func () {
28
+ generatedNamespace = SetupGeneratedTestNamespace (genName ("operator-conditions-e2e-" ))
29
+ })
30
+
21
31
AfterEach (func () {
22
- TearDown ( testNamespace )
32
+ TeardownNamespace ( generatedNamespace . GetName () )
23
33
})
24
34
25
35
It ("OperatorCondition Upgradeable type and overrides" , func () {
@@ -44,9 +54,9 @@ var _ = Describe("Operator Condition", func() {
44
54
strategyB := newNginxInstallStrategy (pkgBStable , nil , nil )
45
55
strategyD := newNginxInstallStrategy (pkgDStable , nil , nil )
46
56
crd := newCRD (genName (pkgA ))
47
- csvA := newCSV (pkgAStable , testNamespace , "" , semver .MustParse ("0.1.0" ), []apiextensions.CustomResourceDefinition {crd }, nil , & strategyA )
48
- csvB := newCSV (pkgBStable , testNamespace , pkgAStable , semver .MustParse ("0.2.0" ), []apiextensions.CustomResourceDefinition {crd }, nil , & strategyB )
49
- csvD := newCSV (pkgDStable , testNamespace , pkgBStable , semver .MustParse ("0.3.0" ), []apiextensions.CustomResourceDefinition {crd }, nil , & strategyD )
57
+ csvA := newCSV (pkgAStable , generatedNamespace . GetName () , "" , semver .MustParse ("0.1.0" ), []apiextensions.CustomResourceDefinition {crd }, nil , & strategyA )
58
+ csvB := newCSV (pkgBStable , generatedNamespace . GetName () , pkgAStable , semver .MustParse ("0.2.0" ), []apiextensions.CustomResourceDefinition {crd }, nil , & strategyB )
59
+ csvD := newCSV (pkgDStable , generatedNamespace . GetName () , pkgBStable , semver .MustParse ("0.3.0" ), []apiextensions.CustomResourceDefinition {crd }, nil , & strategyD )
50
60
51
61
// Create the initial catalogsources
52
62
manifests := []registry.PackageManifest {
@@ -60,15 +70,15 @@ var _ = Describe("Operator Condition", func() {
60
70
}
61
71
62
72
catalog := genName ("catalog-" )
63
- _ , cleanupCatalogSource := createInternalCatalogSource (c , crc , catalog , testNamespace , manifests , []apiextensions.CustomResourceDefinition {crd }, []operatorsv1alpha1.ClusterServiceVersion {csvA })
73
+ _ , cleanupCatalogSource := createInternalCatalogSource (c , crc , catalog , generatedNamespace . GetName () , manifests , []apiextensions.CustomResourceDefinition {crd }, []operatorsv1alpha1.ClusterServiceVersion {csvA })
64
74
defer cleanupCatalogSource ()
65
- _ , err := fetchCatalogSourceOnStatus (crc , catalog , testNamespace , catalogSourceRegistryPodSynced )
75
+ _ , err := fetchCatalogSourceOnStatus (crc , catalog , generatedNamespace . GetName () , catalogSourceRegistryPodSynced )
66
76
subName := genName ("sub-" )
67
- cleanupSub := createSubscriptionForCatalog (crc , testNamespace , subName , catalog , pkgA , stableChannel , pkgAStable , operatorsv1alpha1 .ApprovalAutomatic )
77
+ cleanupSub := createSubscriptionForCatalog (crc , generatedNamespace . GetName () , subName , catalog , pkgA , stableChannel , pkgAStable , operatorsv1alpha1 .ApprovalAutomatic )
68
78
defer cleanupSub ()
69
79
70
80
// Await csvA's success
71
- _ , err = awaitCSV (crc , testNamespace , csvA .GetName (), csvSucceededChecker )
81
+ _ , err = awaitCSV (crc , generatedNamespace . GetName () , csvA .GetName (), csvSucceededChecker )
72
82
require .NoError (GinkgoT (), err )
73
83
74
84
// Get the OperatorCondition for csvA and report that it is not upgradeable
@@ -83,14 +93,14 @@ var _ = Describe("Operator Condition", func() {
83
93
84
94
var currentGen int64
85
95
Eventually (func () error {
86
- cond , err := crc .OperatorsV2 ().OperatorConditions (testNamespace ).Get (context .TODO (), csvA .GetName (), metav1.GetOptions {})
96
+ cond , err := crc .OperatorsV2 ().OperatorConditions (generatedNamespace . GetName () ).Get (context .TODO (), csvA .GetName (), metav1.GetOptions {})
87
97
if err != nil {
88
98
return err
89
99
}
90
100
currentGen = cond .ObjectMeta .GetGeneration ()
91
101
upgradeableFalseCondition .ObservedGeneration = currentGen
92
102
meta .SetStatusCondition (& cond .Spec .Conditions , upgradeableFalseCondition )
93
- _ , err = crc .OperatorsV2 ().OperatorConditions (testNamespace ).Update (context .TODO (), cond , metav1.UpdateOptions {})
103
+ _ , err = crc .OperatorsV2 ().OperatorConditions (generatedNamespace . GetName () ).Update (context .TODO (), cond , metav1.UpdateOptions {})
94
104
return err
95
105
}, pollInterval , pollDuration ).Should (Succeed ())
96
106
@@ -104,14 +114,14 @@ var _ = Describe("Operator Condition", func() {
104
114
DefaultChannelName : stableChannel ,
105
115
},
106
116
}
107
- updateInternalCatalog (GinkgoT (), c , crc , catalog , testNamespace , []apiextensions.CustomResourceDefinition {crd }, []operatorsv1alpha1.ClusterServiceVersion {csvA , csvB }, manifests )
117
+ updateInternalCatalog (GinkgoT (), c , crc , catalog , generatedNamespace . GetName () , []apiextensions.CustomResourceDefinition {crd }, []operatorsv1alpha1.ClusterServiceVersion {csvA , csvB }, manifests )
108
118
109
119
// Attempt to get the catalog source before creating install plan(s)
110
- _ , err = fetchCatalogSourceOnStatus (crc , catalog , testNamespace , catalogSourceRegistryPodSynced )
120
+ _ , err = fetchCatalogSourceOnStatus (crc , catalog , generatedNamespace . GetName () , catalogSourceRegistryPodSynced )
111
121
require .NoError (GinkgoT (), err )
112
122
113
123
// csvB will be in Pending phase due to csvA reports Upgradeable=False condition
114
- fetchedCSV , err := fetchCSV (crc , csvB .GetName (), testNamespace , buildCSVReasonChecker (operatorsv1alpha1 .CSVReasonOperatorConditionNotUpgradeable ))
124
+ fetchedCSV , err := fetchCSV (crc , csvB .GetName (), generatedNamespace . GetName () , buildCSVReasonChecker (operatorsv1alpha1 .CSVReasonOperatorConditionNotUpgradeable ))
115
125
require .NoError (GinkgoT (), err )
116
126
require .Equal (GinkgoT (), fetchedCSV .Status .Phase , operatorsv1alpha1 .CSVPhasePending )
117
127
@@ -124,32 +134,32 @@ var _ = Describe("Operator Condition", func() {
124
134
LastTransitionTime : metav1 .Now (),
125
135
}
126
136
Eventually (func () error {
127
- cond , err = crc .OperatorsV2 ().OperatorConditions (testNamespace ).Get (context .TODO (), csvA .GetName (), metav1.GetOptions {})
137
+ cond , err = crc .OperatorsV2 ().OperatorConditions (generatedNamespace . GetName () ).Get (context .TODO (), csvA .GetName (), metav1.GetOptions {})
128
138
if err != nil || currentGen == cond .ObjectMeta .GetGeneration () {
129
139
return err
130
140
}
131
141
currentGen = cond .ObjectMeta .GetGeneration ()
132
142
upgradeableTrueCondition .ObservedGeneration = cond .ObjectMeta .GetGeneration ()
133
143
meta .SetStatusCondition (& cond .Spec .Conditions , upgradeableTrueCondition )
134
- _ , err = crc .OperatorsV2 ().OperatorConditions (testNamespace ).Update (context .TODO (), cond , metav1.UpdateOptions {})
144
+ _ , err = crc .OperatorsV2 ().OperatorConditions (generatedNamespace . GetName () ).Update (context .TODO (), cond , metav1.UpdateOptions {})
135
145
return err
136
146
}, pollInterval , pollDuration ).Should (Succeed ())
137
147
138
148
// Await csvB's success
139
- _ , err = awaitCSV (crc , testNamespace , csvB .GetName (), csvSucceededChecker )
149
+ _ , err = awaitCSV (crc , generatedNamespace . GetName () , csvB .GetName (), csvSucceededChecker )
140
150
require .NoError (GinkgoT (), err )
141
151
142
152
// Get the OperatorCondition for csvB and purposedly change ObservedGeneration
143
153
// to cause mismatch generation situation
144
154
Eventually (func () error {
145
- cond , err = crc .OperatorsV2 ().OperatorConditions (testNamespace ).Get (context .TODO (), csvB .GetName (), metav1.GetOptions {})
155
+ cond , err = crc .OperatorsV2 ().OperatorConditions (generatedNamespace . GetName () ).Get (context .TODO (), csvB .GetName (), metav1.GetOptions {})
146
156
if err != nil || currentGen == cond .ObjectMeta .GetGeneration () {
147
157
return err
148
158
}
149
159
currentGen = cond .ObjectMeta .GetGeneration ()
150
160
upgradeableTrueCondition .ObservedGeneration = currentGen + 1
151
161
meta .SetStatusCondition (& cond .Status .Conditions , upgradeableTrueCondition )
152
- _ , err = crc .OperatorsV2 ().OperatorConditions (testNamespace ).UpdateStatus (context .TODO (), cond , metav1.UpdateOptions {})
162
+ _ , err = crc .OperatorsV2 ().OperatorConditions (generatedNamespace . GetName () ).UpdateStatus (context .TODO (), cond , metav1.UpdateOptions {})
153
163
return err
154
164
}, pollInterval , pollDuration ).Should (Succeed ())
155
165
@@ -164,31 +174,31 @@ var _ = Describe("Operator Condition", func() {
164
174
},
165
175
}
166
176
167
- updateInternalCatalog (GinkgoT (), c , crc , catalog , testNamespace , []apiextensions.CustomResourceDefinition {crd }, []operatorsv1alpha1.ClusterServiceVersion {csvA , csvB , csvD }, manifests )
177
+ updateInternalCatalog (GinkgoT (), c , crc , catalog , generatedNamespace . GetName () , []apiextensions.CustomResourceDefinition {crd }, []operatorsv1alpha1.ClusterServiceVersion {csvA , csvB , csvD }, manifests )
168
178
// Attempt to get the catalog source before creating install plan(s)
169
- _ , err = fetchCatalogSourceOnStatus (crc , catalog , testNamespace , catalogSourceRegistryPodSynced )
179
+ _ , err = fetchCatalogSourceOnStatus (crc , catalog , generatedNamespace . GetName () , catalogSourceRegistryPodSynced )
170
180
require .NoError (GinkgoT (), err )
171
181
172
182
// CSVD will be in Pending status due to overrides in csvB's condition
173
- fetchedCSV , err = fetchCSV (crc , csvD .GetName (), testNamespace , buildCSVReasonChecker (operatorsv1alpha1 .CSVReasonOperatorConditionNotUpgradeable ))
183
+ fetchedCSV , err = fetchCSV (crc , csvD .GetName (), generatedNamespace . GetName () , buildCSVReasonChecker (operatorsv1alpha1 .CSVReasonOperatorConditionNotUpgradeable ))
174
184
require .NoError (GinkgoT (), err )
175
185
require .Equal (GinkgoT (), fetchedCSV .Status .Phase , operatorsv1alpha1 .CSVPhasePending )
176
186
177
187
// Get the OperatorCondition for csvB and override the upgradeable false condition
178
188
Eventually (func () error {
179
- cond , err = crc .OperatorsV2 ().OperatorConditions (testNamespace ).Get (context .TODO (), csvB .GetName (), metav1.GetOptions {})
189
+ cond , err = crc .OperatorsV2 ().OperatorConditions (generatedNamespace . GetName () ).Get (context .TODO (), csvB .GetName (), metav1.GetOptions {})
180
190
if err != nil {
181
191
return err
182
192
}
183
193
meta .SetStatusCondition (& cond .Spec .Overrides , upgradeableTrueCondition )
184
194
// Update the condition
185
- _ , err = crc .OperatorsV2 ().OperatorConditions (testNamespace ).Update (context .TODO (), cond , metav1.UpdateOptions {})
195
+ _ , err = crc .OperatorsV2 ().OperatorConditions (generatedNamespace . GetName () ).Update (context .TODO (), cond , metav1.UpdateOptions {})
186
196
return err
187
197
}, pollInterval , pollDuration ).Should (Succeed ())
188
198
require .NoError (GinkgoT (), err )
189
199
190
200
require .NoError (GinkgoT (), err )
191
- _ , err = awaitCSV (crc , testNamespace , csvD .GetName (), csvSucceededChecker )
201
+ _ , err = awaitCSV (crc , generatedNamespace . GetName () , csvD .GetName (), csvSucceededChecker )
192
202
require .NoError (GinkgoT (), err )
193
203
})
194
204
})
0 commit comments