Skip to content

Commit 4a6b318

Browse files
authored
Move operator condition e2e to one namespace per spec (#2719)
Signed-off-by: perdasilva <[email protected]>
1 parent 2194336 commit 4a6b318

File tree

1 file changed

+34
-24
lines changed

1 file changed

+34
-24
lines changed

test/e2e/operator_condition_e2e_test.go

+34-24
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
. "github.com/onsi/ginkgo"
88
. "github.com/onsi/gomega"
99
"github.com/stretchr/testify/require"
10+
corev1 "k8s.io/api/core/v1"
1011

1112
"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions"
1213
meta "k8s.io/apimachinery/pkg/api/meta"
@@ -18,8 +19,17 @@ import (
1819
)
1920

2021
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+
2131
AfterEach(func() {
22-
TearDown(testNamespace)
32+
TeardownNamespace(generatedNamespace.GetName())
2333
})
2434

2535
It("OperatorCondition Upgradeable type and overrides", func() {
@@ -44,9 +54,9 @@ var _ = Describe("Operator Condition", func() {
4454
strategyB := newNginxInstallStrategy(pkgBStable, nil, nil)
4555
strategyD := newNginxInstallStrategy(pkgDStable, nil, nil)
4656
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)
5060

5161
// Create the initial catalogsources
5262
manifests := []registry.PackageManifest{
@@ -60,15 +70,15 @@ var _ = Describe("Operator Condition", func() {
6070
}
6171

6272
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})
6474
defer cleanupCatalogSource()
65-
_, err := fetchCatalogSourceOnStatus(crc, catalog, testNamespace, catalogSourceRegistryPodSynced)
75+
_, err := fetchCatalogSourceOnStatus(crc, catalog, generatedNamespace.GetName(), catalogSourceRegistryPodSynced)
6676
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)
6878
defer cleanupSub()
6979

7080
// Await csvA's success
71-
_, err = awaitCSV(crc, testNamespace, csvA.GetName(), csvSucceededChecker)
81+
_, err = awaitCSV(crc, generatedNamespace.GetName(), csvA.GetName(), csvSucceededChecker)
7282
require.NoError(GinkgoT(), err)
7383

7484
// Get the OperatorCondition for csvA and report that it is not upgradeable
@@ -83,14 +93,14 @@ var _ = Describe("Operator Condition", func() {
8393

8494
var currentGen int64
8595
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{})
8797
if err != nil {
8898
return err
8999
}
90100
currentGen = cond.ObjectMeta.GetGeneration()
91101
upgradeableFalseCondition.ObservedGeneration = currentGen
92102
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{})
94104
return err
95105
}, pollInterval, pollDuration).Should(Succeed())
96106

@@ -104,14 +114,14 @@ var _ = Describe("Operator Condition", func() {
104114
DefaultChannelName: stableChannel,
105115
},
106116
}
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)
108118

109119
// 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)
111121
require.NoError(GinkgoT(), err)
112122

113123
// 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))
115125
require.NoError(GinkgoT(), err)
116126
require.Equal(GinkgoT(), fetchedCSV.Status.Phase, operatorsv1alpha1.CSVPhasePending)
117127

@@ -124,32 +134,32 @@ var _ = Describe("Operator Condition", func() {
124134
LastTransitionTime: metav1.Now(),
125135
}
126136
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{})
128138
if err != nil || currentGen == cond.ObjectMeta.GetGeneration() {
129139
return err
130140
}
131141
currentGen = cond.ObjectMeta.GetGeneration()
132142
upgradeableTrueCondition.ObservedGeneration = cond.ObjectMeta.GetGeneration()
133143
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{})
135145
return err
136146
}, pollInterval, pollDuration).Should(Succeed())
137147

138148
// Await csvB's success
139-
_, err = awaitCSV(crc, testNamespace, csvB.GetName(), csvSucceededChecker)
149+
_, err = awaitCSV(crc, generatedNamespace.GetName(), csvB.GetName(), csvSucceededChecker)
140150
require.NoError(GinkgoT(), err)
141151

142152
// Get the OperatorCondition for csvB and purposedly change ObservedGeneration
143153
// to cause mismatch generation situation
144154
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{})
146156
if err != nil || currentGen == cond.ObjectMeta.GetGeneration() {
147157
return err
148158
}
149159
currentGen = cond.ObjectMeta.GetGeneration()
150160
upgradeableTrueCondition.ObservedGeneration = currentGen + 1
151161
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{})
153163
return err
154164
}, pollInterval, pollDuration).Should(Succeed())
155165

@@ -164,31 +174,31 @@ var _ = Describe("Operator Condition", func() {
164174
},
165175
}
166176

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)
168178
// 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)
170180
require.NoError(GinkgoT(), err)
171181

172182
// 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))
174184
require.NoError(GinkgoT(), err)
175185
require.Equal(GinkgoT(), fetchedCSV.Status.Phase, operatorsv1alpha1.CSVPhasePending)
176186

177187
// Get the OperatorCondition for csvB and override the upgradeable false condition
178188
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{})
180190
if err != nil {
181191
return err
182192
}
183193
meta.SetStatusCondition(&cond.Spec.Overrides, upgradeableTrueCondition)
184194
// 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{})
186196
return err
187197
}, pollInterval, pollDuration).Should(Succeed())
188198
require.NoError(GinkgoT(), err)
189199

190200
require.NoError(GinkgoT(), err)
191-
_, err = awaitCSV(crc, testNamespace, csvD.GetName(), csvSucceededChecker)
201+
_, err = awaitCSV(crc, generatedNamespace.GetName(), csvD.GetName(), csvSucceededChecker)
192202
require.NoError(GinkgoT(), err)
193203
})
194204
})

0 commit comments

Comments
 (0)