Skip to content

Commit 9391dd3

Browse files
Implement OpenShift Tests Extension (OTE) framework for CNO
Set up the OTE framework and migrate three e2e test cases from openshift-tests-private: - OCP-72817: internalJoinSubnet/internalTransitSwitchSubnet Day 2 config - OCP-51727: ovsdb-server/northd core dump check after node restart - OCP-72028: NBDB sync of join switch/mgmt port IPs for new nodes Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent bea98c0 commit 9391dd3

10 files changed

Lines changed: 1393 additions & 19 deletions

File tree

Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
FROM registry.ci.openshift.org/ocp/builder:rhel-9-golang-1.25-openshift-4.22 AS builder
22
WORKDIR /go/src/github.com/openshift/cluster-network-operator
33
COPY . .
4-
RUN hack/build-go.sh
4+
RUN go mod vendor && hack/build-go.sh && make build-e2e-tests && gzip -9 test/bin/cluster-network-operator-tests-ext
55

66
FROM registry.ci.openshift.org/ocp/4.22:base-rhel9
77
COPY --from=builder /go/src/github.com/openshift/cluster-network-operator/cluster-network-operator /usr/bin/
88
COPY --from=builder /go/src/github.com/openshift/cluster-network-operator/cluster-network-check-endpoints /usr/bin/
99
COPY --from=builder /go/src/github.com/openshift/cluster-network-operator/cluster-network-check-target /usr/bin/
10+
COPY --from=builder /go/src/github.com/openshift/cluster-network-operator/test/bin/cluster-network-operator-tests-ext.gz /usr/bin/cluster-network-operator-tests-ext.gz
1011

1112
COPY manifests /manifests
1213
COPY bindata /bindata

Makefile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,9 @@ clean:
4646
$(RM) cluster-network-operator cluster-network-check-endpoints cluster-network-check-target
4747
.PHONY: clean
4848

49+
.PHONY: build-e2e-tests
50+
build-e2e-tests:
51+
@echo "Building cluster-network-operator-tests-ext binary..."
52+
$(MAKE) -C test build
53+
4954
GO_TEST_PACKAGES :=./pkg/... ./cmd/...

go.mod

Lines changed: 49 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ require (
1515
github.com/spf13/cobra v1.10.2
1616
github.com/spf13/pflag v1.0.10
1717
github.com/stretchr/testify v1.11.1
18-
github.com/vishvananda/netlink v1.1.0
19-
github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae // indirect
18+
github.com/vishvananda/netlink v1.3.1
19+
github.com/vishvananda/netns v0.0.5 // indirect
2020
golang.org/x/net v0.51.0
2121
gopkg.in/yaml.v2 v2.4.0
2222
k8s.io/api v0.35.2
@@ -100,12 +100,16 @@ require (
100100
)
101101

102102
require (
103+
github.com/onsi/ginkgo/v2 v2.28.1
104+
github.com/openshift-eng/openshift-tests-extension v0.0.0-20260521151256-b5a8f7ec8a38
103105
github.com/openshift/api v0.0.0-20260320151444-324a1bcb9f55
104106
github.com/openshift/client-go v0.0.0-20260320040014-4b5fc2cdad98
105107
github.com/openshift/library-go v0.0.0-20260303171201-5d9eb6295ff6
106108
github.com/openshift/machine-config-operator v0.0.1-0.20250724162154-ab14c8e2843b
107109
k8s.io/apiextensions-apiserver v0.35.2
108110
k8s.io/client-go v0.35.2
111+
k8s.io/kubernetes v1.35.2
112+
k8s.io/pod-security-admission v0.35.2
109113
sigs.k8s.io/controller-tools v0.20.1
110114
)
111115

@@ -114,6 +118,7 @@ require (
114118
github.com/Masterminds/semver/v3 v3.4.0 // indirect
115119
github.com/antlr4-go/antlr/v4 v4.13.1 // indirect
116120
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
121+
github.com/distribution/reference v0.6.0 // indirect
117122
github.com/emicklei/go-restful/v3 v3.13.0 // indirect
118123
github.com/evanphx/json-patch/v5 v5.9.11 // indirect
119124
github.com/fatih/color v1.18.0 // indirect
@@ -131,16 +136,21 @@ require (
131136
github.com/go-openapi/swag/stringutils v0.25.5 // indirect
132137
github.com/go-openapi/swag/typeutils v0.25.5 // indirect
133138
github.com/go-openapi/swag/yamlutils v0.25.5 // indirect
139+
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
134140
github.com/gobuffalo/flect v1.0.3 // indirect
135141
github.com/google/btree v1.1.3 // indirect
136142
github.com/google/cel-go v0.27.0 // indirect
137143
github.com/google/gnostic-models v0.7.1 // indirect
138144
github.com/google/pprof v0.0.0-20260115054156-294ebfa9ad83 // indirect
145+
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 // indirect
139146
github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0 // indirect
140147
github.com/kylelemons/godebug v1.1.0 // indirect
141148
github.com/mattn/go-colorable v0.1.14 // indirect
142149
github.com/mattn/go-isatty v0.0.20 // indirect
143-
github.com/onsi/ginkgo/v2 v2.28.1 // indirect
150+
github.com/moby/spdystream v0.5.0 // indirect
151+
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
152+
github.com/opencontainers/go-digest v1.0.0 // indirect
153+
github.com/robfig/cron/v3 v3.0.1 // indirect
144154
github.com/shopspring/decimal v1.3.1 // indirect
145155
github.com/spf13/cast v1.10.0 // indirect
146156
github.com/stretchr/objx v0.5.3 // indirect
@@ -155,9 +165,45 @@ require (
155165
google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect
156166
gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect
157167
k8s.io/apiserver v0.35.2 // indirect
168+
k8s.io/component-helpers v0.35.2 // indirect
169+
k8s.io/controller-manager v0.32.1 // indirect
158170
k8s.io/gengo/v2 v2.0.0-20251215205346-5ee0d033ba5b // indirect
159171
k8s.io/kms v0.35.2 // indirect
160172
k8s.io/kube-aggregator v0.35.1 // indirect
173+
k8s.io/kubectl v0.32.1 // indirect
174+
k8s.io/kubelet v0.32.1 // indirect
161175
sigs.k8s.io/randfill v1.0.0 // indirect
162176
sigs.k8s.io/structured-merge-diff/v6 v6.3.2 // indirect
163177
)
178+
179+
replace (
180+
github.com/onsi/ginkgo/v2 => github.com/openshift/onsi-ginkgo/v2 v2.6.1-0.20260303184444-1cc650aa0565
181+
k8s.io/api => k8s.io/api v0.35.2
182+
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.35.2
183+
k8s.io/apimachinery => k8s.io/apimachinery v0.35.2
184+
k8s.io/apiserver => k8s.io/apiserver v0.35.2
185+
k8s.io/cli-runtime => k8s.io/cli-runtime v0.35.2
186+
k8s.io/client-go => k8s.io/client-go v0.35.2
187+
k8s.io/cloud-provider => k8s.io/cloud-provider v0.35.2
188+
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.35.2
189+
k8s.io/code-generator => k8s.io/code-generator v0.35.2
190+
k8s.io/component-base => k8s.io/component-base v0.35.2
191+
k8s.io/component-helpers => k8s.io/component-helpers v0.35.2
192+
k8s.io/controller-manager => k8s.io/controller-manager v0.35.2
193+
k8s.io/cri-api => k8s.io/cri-api v0.35.2
194+
k8s.io/cri-client => k8s.io/cri-client v0.35.2
195+
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.35.2
196+
k8s.io/dynamic-resource-allocation => k8s.io/dynamic-resource-allocation v0.35.2
197+
k8s.io/endpointslice => k8s.io/endpointslice v0.35.2
198+
k8s.io/externaljwt => k8s.io/externaljwt v0.35.2
199+
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.35.2
200+
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.35.2
201+
k8s.io/kube-proxy => k8s.io/kube-proxy v0.35.2
202+
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.35.2
203+
k8s.io/kubectl => k8s.io/kubectl v0.35.2
204+
k8s.io/kubelet => k8s.io/kubelet v0.35.2
205+
k8s.io/metrics => k8s.io/metrics v0.35.2
206+
k8s.io/mount-utils => k8s.io/mount-utils v0.35.2
207+
k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.35.2
208+
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.35.2
209+
)

0 commit comments

Comments
 (0)