Skip to content

Commit ed4e43c

Browse files
committed
test/cvo: Skip Proposal tests if the CRD is not installed
With 5687c39 (install: Drop Lightspeed CustomResourceDefinitions (Proposal, etc.), 2026-06-24, #1412) dropping our handling of those CRDs, we need to adjust the test harness to: * Stop asserting the CRDs are installed (that's no longer our job) and... * Make our Proposal-handling testing conditional on someone else (e.g. a step in a CI job's configuration) having installed the Proposal CRD. Avoids [1]: : [Jira:"Cluster Version Operator"] cluster-version-operator should install light speed CRDs correctly expand_less 0s { fail [github.com/openshift/cluster-version-operator/test/cvo/proposal.go:95]: Expected <*errors.StatusError | 0xc000910c80>: customresourcedefinitions.apiextensions.k8s.io "proposals.agentic.openshift.io" not found [1]: https://prow.ci.openshift.org/view/gs/test-platform-results/pr-logs/pull/openshift_cluster-version-operator/1412/pull-ci-openshift-cluster-version-operator-main-e2e-aws-ovn-techpreview/2069909194613460992
1 parent 5687c39 commit ed4e43c

3 files changed

Lines changed: 20 additions & 32 deletions

File tree

.openshift-tests-extension/openshift_payload_cluster-version-operator.json

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -86,16 +86,6 @@
8686
"lifecycle": "blocking",
8787
"environmentSelector": {}
8888
},
89-
{
90-
"name": "[Jira:\"Cluster Version Operator\"] cluster-version-operator should install light speed CRDs correctly",
91-
"labels": {},
92-
"resources": {
93-
"isolation": {}
94-
},
95-
"source": "openshift:payload:cluster-version-operator",
96-
"lifecycle": "blocking",
97-
"environmentSelector": {}
98-
},
9989
{
10090
"name": "[Jira:\"Cluster Version Operator\"] cluster-version-operator should create proposals",
10191
"labels": {

test/cvo/proposal.go

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ import (
1111
ctrlruntimeclient "sigs.k8s.io/controller-runtime/pkg/client"
1212
"sigs.k8s.io/controller-runtime/pkg/client/config"
1313

14-
apiextensionsclientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
15-
kerrors "k8s.io/apimachinery/pkg/api/errors"
1614
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1715
"k8s.io/apimachinery/pkg/util/wait"
1816
"k8s.io/client-go/kubernetes"
@@ -39,12 +37,11 @@ func init() {
3937
var _ = g.Describe(`[Jira:"Cluster Version Operator"] cluster-version-operator`, func() {
4038

4139
var (
42-
c *rest.Config
43-
kubeClient kubernetes.Interface
44-
configClient *configv1client.ConfigV1Client
45-
apiExtensionsClient apiextensionsclientset.Interface
46-
rtClient ctrlruntimeclient.Client
47-
err error
40+
c *rest.Config
41+
kubeClient kubernetes.Interface
42+
configClient *configv1client.ConfigV1Client
43+
rtClient ctrlruntimeclient.Client
44+
err error
4845

4946
ctx = context.Background()
5047
needRecover bool
@@ -63,9 +60,6 @@ var _ = g.Describe(`[Jira:"Cluster Version Operator"] cluster-version-operator`,
6360
configClient, err = configv1client.NewForConfig(c)
6461
o.Expect(err).To(o.BeNil())
6562

66-
apiExtensionsClient, err = apiextensionsclientset.NewForConfig(c)
67-
o.Expect(err).To(o.BeNil())
68-
6963
rtClient, err = ctrlruntimeclient.New(config.GetConfigOrDie(), ctrlruntimeclient.Options{})
7064
o.Expect(err).To(o.BeNil())
7165

@@ -88,20 +82,10 @@ var _ = g.Describe(`[Jira:"Cluster Version Operator"] cluster-version-operator`,
8882
}
8983
})
9084

91-
g.It("should install light speed CRDs correctly", func() {
92-
for _, name := range []string{"proposals.agentic.openshift.io", "agents.agentic.openshift.io", "analysisresults.agentic.openshift.io", "llmproviders.agentic.openshift.io"} {
93-
_, err := apiExtensionsClient.ApiextensionsV1().CustomResourceDefinitions().Get(ctx, name, metav1.GetOptions{})
94-
if util.IsTechPreviewNoUpgrade(ctx, c) {
95-
o.Expect(err).To(o.BeNil())
96-
} else {
97-
o.Expect(kerrors.IsNotFound(err)).To(o.BeTrue())
98-
}
99-
}
100-
})
101-
10285
g.It("should create proposals", g.Label("OTA-1966"), g.Label("Serial"), oteginkgo.Informing(), func() {
10386
o.Expect(util.SkipIfNetworkRestricted(ctx, c, util.FauxinnatiAPIURL)).To(o.BeNil())
10487
util.SkipIfNotTechPreviewNoUpgrade(ctx, c)
88+
util.SkipIfNoProposalAPI(ctx, c, "proposals.agentic.openshift.io")
10589

10690
cv, err := configClient.ClusterVersions().Get(ctx, external.DefaultClusterVersionName, metav1.GetOptions{})
10791
o.Expect(err).NotTo(o.HaveOccurred())

test/util/util.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717

1818
authenticationv1 "k8s.io/api/authentication/v1"
1919
corev1 "k8s.io/api/core/v1"
20+
apiextensionsclientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
2021
apierrors "k8s.io/apimachinery/pkg/api/errors"
2122
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2223
"k8s.io/apimachinery/pkg/labels"
@@ -149,6 +150,19 @@ func SkipIfNotTechPreviewNoUpgrade(ctx context.Context, restConfig *rest.Config)
149150
}
150151
}
151152

153+
// SkipIfNoAPI skips the test if a the cluster does not have a particular CustomResourceDefinition.
154+
func SkipIfNoAPI(ctx context.Context, restConfig *rest.Config, apiName string) {
155+
apiExtensionsClient, err = apiextensionsclientset.NewForConfig(c)
156+
o.Expect(err).To(o.BeNil())
157+
158+
_, err := apiExtensionsClient.ApiextensionsV1().CustomResourceDefinitions().Get(ctx, apiName, metav1.GetOptions{})
159+
if apierrors.IsNotFound(err) {
160+
g.Skipf("This test is skipped because the %s CustomResourceDefinition is not installed", apiName)
161+
} else {
162+
o.Expect(err).To(o.BeNil())
163+
}
164+
}
165+
152166
const (
153167
// fauxinnati mocks Cincinnati Update Graph Server for OpenShift
154168
FauxinnatiAPIURL = "https://fauxinnati-fauxinnati.apps.ota-stage.q2z4.p1.openshiftapps.com/api/upgrades_info/graph"

0 commit comments

Comments
 (0)