Skip to content

Commit 802e16b

Browse files
authored
feat: update nstemplateset revisions status (codeready-toolchain#1137)
* check for ttr refs in nstemplateset status
1 parent 394d3f8 commit 802e16b

File tree

3 files changed

+36
-7
lines changed

3 files changed

+36
-7
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module github.com/codeready-toolchain/toolchain-e2e
22

33
require (
44
github.com/codeready-toolchain/api v0.0.0-20250313170542-4e3c4147cb80
5-
github.com/codeready-toolchain/toolchain-common v0.0.0-20250313203311-0bce6563576f
5+
github.com/codeready-toolchain/toolchain-common v0.0.0-20250326132010-67676aa6ae2c
66
github.com/davecgh/go-spew v1.1.1
77
github.com/fatih/color v1.16.0
88
github.com/ghodss/yaml v1.0.0

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vc
3232
github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA=
3333
github.com/codeready-toolchain/api v0.0.0-20250313170542-4e3c4147cb80 h1:wh41dZ7VkyClQWiMJbMypku6xTxtxNZTgQJUAcodgUo=
3434
github.com/codeready-toolchain/api v0.0.0-20250313170542-4e3c4147cb80/go.mod h1:shTTQ+bYWinbdF/oK+ly4DO5jdXtIASZ+uPZElsmsKg=
35-
github.com/codeready-toolchain/toolchain-common v0.0.0-20250313203311-0bce6563576f h1:qBUZ/xBNgDMf5Y0tObJ85/9GcDSgtUf8WFfCrNSxaZ4=
36-
github.com/codeready-toolchain/toolchain-common v0.0.0-20250313203311-0bce6563576f/go.mod h1:0dopWh1MWi9eg2d5RAd4uSUmXfDMqz4Yk2oNPHF15+Y=
35+
github.com/codeready-toolchain/toolchain-common v0.0.0-20250326132010-67676aa6ae2c h1:qLhRZbJ6FkSim7QM8JNb7ruJWAMJ/I9LsktofzxMUOg=
36+
github.com/codeready-toolchain/toolchain-common v0.0.0-20250326132010-67676aa6ae2c/go.mod h1:Rd64iFrlcocihpLq4qIsCMkjN/1invHHaU1AMq19OWA=
3737
github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
3838
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
3939
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=

testsupport/tiers/nstemplateset.go

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"testing"
99

1010
toolchainv1alpha1 "github.com/codeready-toolchain/api/api/v1alpha1"
11+
"github.com/codeready-toolchain/toolchain-common/pkg/utils"
1112
"github.com/codeready-toolchain/toolchain-e2e/testsupport/wait"
1213
"github.com/davecgh/go-spew/spew"
1314
"github.com/stretchr/testify/require"
@@ -19,9 +20,9 @@ func VerifyNSTemplateSet(t *testing.T, hostAwait *wait.HostAwaitility, memberAwa
1920

2021
var err error
2122
if space.Spec.DisableInheritance {
22-
nsTmplSet, err = memberAwait.WaitForNSTmplSet(t, nsTmplSet.Name, UntilNSTemplateSetHasTemplateRefs(expectedTemplateRefs))
23+
nsTmplSet, err = memberAwait.WaitForNSTmplSet(t, nsTmplSet.Name, UntilNSTemplateSetHasTemplateRefs(expectedTemplateRefs), UntilNSTemplateSetHasStatusTemplateRefs())
2324
} else {
24-
nsTmplSet, err = memberAwait.WaitForNSTmplSet(t, nsTmplSet.Name, UntilNSTemplateSetHasTemplateRefs(expectedTemplateRefs), wait.UntilNSTemplateSetHasAnySpaceRoles())
25+
nsTmplSet, err = memberAwait.WaitForNSTmplSet(t, nsTmplSet.Name, UntilNSTemplateSetHasTemplateRefs(expectedTemplateRefs), wait.UntilNSTemplateSetHasAnySpaceRoles(), UntilNSTemplateSetHasStatusTemplateRefs())
2526
}
2627
require.NoError(t, err)
2728

@@ -119,8 +120,8 @@ func getExpectedProvisionedNamespaces(namespaces []string) []toolchainv1alpha1.S
119120
func UntilNSTemplateSetHasTemplateRefs(expectedRevisions TemplateRefs) wait.NSTemplateSetWaitCriterion {
120121
return wait.NSTemplateSetWaitCriterion{
121122
Match: func(actual *toolchainv1alpha1.NSTemplateSet) bool {
122-
if expectedRevisions.ClusterResources == nil ||
123-
actual.Spec.ClusterResources == nil ||
123+
if (expectedRevisions.ClusterResources == nil && actual.Spec.ClusterResources != nil) ||
124+
(expectedRevisions.ClusterResources != nil && actual.Spec.ClusterResources == nil) ||
124125
*expectedRevisions.ClusterResources != actual.Spec.ClusterResources.TemplateRef {
125126
return false
126127
}
@@ -142,6 +143,34 @@ func UntilNSTemplateSetHasTemplateRefs(expectedRevisions TemplateRefs) wait.NSTe
142143
}
143144
}
144145

146+
// UntilNSTemplateSetHasStatusTemplateRefs checks if the NSTemplateTier has the expected template refs in the Status
147+
func UntilNSTemplateSetHasStatusTemplateRefs() wait.NSTemplateSetWaitCriterion {
148+
return wait.NSTemplateSetWaitCriterion{
149+
Match: func(actual *toolchainv1alpha1.NSTemplateSet) bool {
150+
// check that the status was updated with the expected template ref.
151+
if (actual.Status.ClusterResources == nil && actual.Spec.ClusterResources != nil) ||
152+
(actual.Status.ClusterResources != nil && actual.Spec.ClusterResources == nil) ||
153+
actual.Status.ClusterResources.TemplateRef != actual.Spec.ClusterResources.TemplateRef {
154+
return false
155+
}
156+
if !reflect.DeepEqual(actual.Status.Namespaces, actual.Spec.Namespaces) {
157+
return false
158+
}
159+
// check expected feature toggles, if any
160+
featureAnnotation, featureAnnotationFound := actual.Annotations[toolchainv1alpha1.FeatureToggleNameAnnotationKey]
161+
if featureAnnotationFound {
162+
if !reflect.DeepEqual(utils.SplitCommaSeparatedList(featureAnnotation), actual.Status.FeatureToggles) {
163+
return false
164+
}
165+
}
166+
return reflect.DeepEqual(actual.Status.SpaceRoles, actual.Status.SpaceRoles)
167+
},
168+
Diff: func(actual *toolchainv1alpha1.NSTemplateSet) string {
169+
return fmt.Sprintf("expected NSTemplateSet '%s' to match the following cluster/namespace/spacerole/feature toggles revisions: %s\nbut it contained: %s", actual.Name, spew.Sdump(actual.Spec), spew.Sdump(actual.Status))
170+
},
171+
}
172+
}
173+
145174
func IsSpaceRoleSubset(superset map[string]string, subset []toolchainv1alpha1.NSTemplateSetSpaceRole) bool {
146175
checkset := make(map[string]bool)
147176
for _, element := range subset {

0 commit comments

Comments
 (0)