Skip to content

Commit 425f4d0

Browse files
committed
UPSTREAM: <carry>: Add OpenShift tooling, images, configs and docs
1 parent 6f89eb9 commit 425f4d0

23 files changed

+707
-559
lines changed

.ci-operator.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
build_root_image:
22
name: release
33
namespace: openshift
4-
tag: rhel-9-release-golang-1.23-openshift-4.19
4+
tag: rhel-9-release-golang-1.24-nofips-openshift-4.19

.openshift-tests-extension/openshift_payload_hyperkube.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80076,4 +80076,4 @@
8007680076
"source": "openshift:payload:hyperkube",
8007780077
"lifecycle": "blocking"
8007880078
}
80079-
]
80079+
]

DOWNSTREAM_OWNERS

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,17 @@ filters:
88
- deads2k
99
- jerpeter1
1010
- p0lyn0mial
11-
- soltysh
1211
- tkashem
12+
- benluddy
1313

1414
# Approvers are limited to the team that manages rebases and pays the price for carries that are introduced
1515
approvers:
1616
- bertinatto
1717
- deads2k
1818
- jerpeter1
1919
- p0lyn0mial
20-
- soltysh
2120
- tkashem
21+
- benluddy
2222

2323
"^\\.go.(mod|sum)$":
2424
labels:

build/pause/Dockerfile.Rhel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM registry.ci.openshift.org/ocp/builder:rhel-9-golang-1.23-openshift-4.19 AS builder
1+
FROM registry.ci.openshift.org/ocp/builder:rhel-9-golang-1.24-nofips-openshift-4.19 AS builder
22
WORKDIR /go/src/github.com/openshift/kubernetes/build/pause
33
COPY . .
44
RUN mkdir -p bin && \

hack/lib/golang.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ kube::golang::server_targets() {
7979
staging/src/k8s.io/apiextensions-apiserver
8080
cluster/gce/gci/mounter
8181
cmd/watch-termination
82-
openshift-hack/cmd/k8s-tests
8382
openshift-hack/cmd/k8s-tests-ext
8483
)
8584
echo "${targets[@]}"
Lines changed: 216 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,216 @@
1+
package main
2+
3+
import (
4+
et "github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests"
5+
"k8s.io/apimachinery/pkg/util/sets"
6+
)
7+
8+
// filterOutDisabledSpecs returns the specs with those that are disabled removed from the list
9+
func filterOutDisabledSpecs(specs et.ExtensionTestSpecs) et.ExtensionTestSpecs {
10+
var disabledByReason = map[string][]string{
11+
"Alpha": { // alpha features that are not gated
12+
"[Feature:StorageVersionAPI]",
13+
"[Feature:ClusterTrustBundle]",
14+
"[Feature:SELinuxMount]",
15+
"[FeatureGate:SELinuxMount]",
16+
"[Feature:UserNamespacesPodSecurityStandards]",
17+
"[Feature:DynamicResourceAllocation]",
18+
"[Feature:VolumeAttributesClass]", // disabled Beta
19+
"[sig-cli] Kubectl client Kubectl prune with applyset should apply and prune objects", // Alpha feature since k8s 1.27
20+
// 4.19
21+
"[Feature:PodLevelResources]",
22+
"[Feature:PodLogsQuerySplitStreams]",
23+
// 4.20
24+
"[Feature:OffByDefault]",
25+
"[Feature:CBOR]",
26+
},
27+
// tests for features that are not implemented in openshift
28+
"Unimplemented": {
29+
"Monitoring", // Not installed, should be
30+
"Cluster level logging", // Not installed yet
31+
"Kibana", // Not installed
32+
"Ubernetes", // Can't set zone labels today
33+
"kube-ui", // Not installed by default
34+
"Kubernetes Dashboard", // Not installed by default (also probably slow image pull)
35+
"should proxy to cadvisor", // we don't expose cAdvisor port directly for security reasons
36+
"[Feature:BootstrapTokens]", // we don't serve cluster-info configmap
37+
"[Feature:KubeProxyDaemonSetMigration]", // upgrades are run separately
38+
"[Feature:BoundServiceAccountTokenVolume]", // upgrades are run separately
39+
"[Feature:StatefulUpgrade]", // upgrades are run separately
40+
},
41+
// tests that rely on special configuration that we do not yet support
42+
"SpecialConfig": {
43+
// GPU node needs to be available
44+
"[Feature:GPUDevicePlugin]",
45+
"[sig-scheduling] GPUDevicePluginAcrossRecreate [Feature:Recreate]",
46+
47+
"[Feature:LocalStorageCapacityIsolation]", // relies on a separate daemonset?
48+
"[sig-cloud-provider-gcp]", // these test require a different configuration - note that GCE tests from the sig-cluster-lifecycle were moved to the sig-cloud-provider-gcpcluster lifecycle see https://github.com/kubernetes/kubernetes/commit/0b3d50b6dccdc4bbd0b3e411c648b092477d79ac#diff-3b1910d08fb8fd8b32956b5e264f87cb
49+
50+
"kube-dns-autoscaler", // Don't run kube-dns
51+
"should check if Kubernetes master services is included in cluster-info", // Don't run kube-dns
52+
"DNS configMap", // this tests dns federation configuration via configmap, which we don't support yet
53+
54+
"NodeProblemDetector", // requires a non-master node to run on
55+
"Advanced Audit should audit API calls", // expects to be able to call /logs
56+
57+
"Firewall rule should have correct firewall rules for e2e cluster", // Upstream-install specific
58+
59+
// https://bugzilla.redhat.com/show_bug.cgi?id=2079958
60+
"[sig-network] [Feature:Topology Hints] should distribute endpoints evenly",
61+
62+
// Tests require SSH configuration and is part of the parallel suite, which does not create the bastion
63+
// host. Enabling the test would result in the bastion being created for every parallel test execution.
64+
// Given that we have existing oc and WMCO tests that cover this functionality, we can safely disable it.
65+
"[Feature:NodeLogQuery]",
66+
67+
// volumegroupsnapshot in csi-hostpath tests requires changes in the test yaml files,
68+
// which are done by a script upstream. In OCP, we added a separate driver csi-hostpath-groupsnapshot,
69+
// that will not be skipped by any rule here.
70+
"[Driver: csi-hostpath] [Testpattern: (delete policy)] volumegroupsnapshottable [Feature:volumegroupsnapshot]",
71+
},
72+
// tests that are known broken and need to be fixed upstream or in openshift
73+
// always add an issue here
74+
"Broken": {
75+
"mount an API token into pods", // We add 6 secrets, not 1
76+
"ServiceAccounts should ensure a single API token exists", // We create lots of secrets
77+
"unchanging, static URL paths for kubernetes api services", // the test needs to exclude URLs that are not part of conformance (/logs)
78+
"Services should be able to up and down services", // we don't have wget installed on nodes
79+
"KubeProxy should set TCP CLOSE_WAIT timeout", // the test require communication to port 11302 in the cluster nodes
80+
"should check kube-proxy urls", // previously this test was skipped b/c we reported -1 as the number of nodes, now we report proper number and test fails
81+
"SSH", // TRIAGE
82+
"should implement service.kubernetes.io/service-proxy-name", // this is an optional test that requires SSH. sig-network
83+
"recreate nodes and ensure they function upon restart", // https://bugzilla.redhat.com/show_bug.cgi?id=1756428
84+
"[Driver: iscsi]", // https://bugzilla.redhat.com/show_bug.cgi?id=1711627
85+
86+
"RuntimeClass should reject",
87+
88+
"Services should implement service.kubernetes.io/headless", // requires SSH access to function, needs to be refactored
89+
"ClusterDns [Feature:Example] should create pod that uses dns", // doesn't use bindata, not part of kube test binary
90+
"Simple pod should return command exit codes should handle in-cluster config", // kubectl cp doesn't work or is not preserving executable bit, we have this test already
91+
92+
// TODO(node): configure the cri handler for the runtime class to make this work
93+
"should run a Pod requesting a RuntimeClass with a configured handler",
94+
"should reject a Pod requesting a RuntimeClass with conflicting node selector",
95+
"should run a Pod requesting a RuntimeClass with scheduling",
96+
97+
// A fix is in progress: https://github.com/openshift/origin/pull/24709
98+
"Multi-AZ Clusters should spread the pods of a replication controller across zones",
99+
100+
// Upstream assumes all control plane pods are in kube-system namespace and we should revert the change
101+
// https://github.com/kubernetes/kubernetes/commit/176c8e219f4c7b4c15d34b92c50bfa5ba02b3aba#diff-28a3131f96324063dd53e17270d435a3b0b3bd8f806ee0e33295929570eab209R78
102+
"MetricsGrabber should grab all metrics from a Kubelet",
103+
"MetricsGrabber should grab all metrics from API server",
104+
"MetricsGrabber should grab all metrics from a ControllerManager",
105+
"MetricsGrabber should grab all metrics from a Scheduler",
106+
107+
// https://bugzilla.redhat.com/show_bug.cgi?id=1906808
108+
"ServiceAccounts should support OIDC discovery of service account issuer",
109+
110+
// NFS umount is broken in kernels 5.7+
111+
// https://bugzilla.redhat.com/show_bug.cgi?id=1854379
112+
"[sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted",
113+
114+
// https://bugzilla.redhat.com/show_bug.cgi?id=1986306
115+
"[sig-cli] Kubectl client kubectl wait should ignore not found error with --for=delete",
116+
117+
// https://bugzilla.redhat.com/show_bug.cgi?id=1980141
118+
"Netpol NetworkPolicy between server and client should enforce policy to allow traffic only from a pod in a different namespace based on PodSelector and NamespaceSelector",
119+
"Netpol NetworkPolicy between server and client should enforce policy to allow traffic from pods within server namespace based on PodSelector",
120+
"Netpol NetworkPolicy between server and client should enforce policy based on NamespaceSelector with MatchExpressions",
121+
"Netpol NetworkPolicy between server and client should enforce policy based on PodSelector with MatchExpressions",
122+
"Netpol NetworkPolicy between server and client should enforce policy based on PodSelector or NamespaceSelector",
123+
"Netpol NetworkPolicy between server and client should deny ingress from pods on other namespaces",
124+
"Netpol NetworkPolicy between server and client should enforce updated policy",
125+
"Netpol NetworkPolicy between server and client should enforce multiple, stacked policies with overlapping podSelectors",
126+
"Netpol NetworkPolicy between server and client should enforce policy based on any PodSelectors",
127+
"Netpol NetworkPolicy between server and client should enforce policy to allow traffic only from a different namespace, based on NamespaceSelector",
128+
"Netpol [LinuxOnly] NetworkPolicy between server and client using UDP should support a 'default-deny-ingress' policy",
129+
"Netpol [LinuxOnly] NetworkPolicy between server and client using UDP should enforce policy based on Ports",
130+
"Netpol [LinuxOnly] NetworkPolicy between server and client using UDP should enforce policy to allow traffic only from a pod in a different namespace based on PodSelector and NamespaceSelector",
131+
132+
"Topology Hints should distribute endpoints evenly",
133+
134+
// https://bugzilla.redhat.com/show_bug.cgi?id=1908645
135+
"[sig-network] Networking Granular Checks: Services should function for service endpoints using hostNetwork",
136+
"[sig-network] Networking Granular Checks: Services should function for pod-Service(hostNetwork)",
137+
138+
// https://bugzilla.redhat.com/show_bug.cgi?id=1952460
139+
"[sig-network] Firewall rule control plane should not expose well-known ports",
140+
141+
// https://bugzilla.redhat.com/show_bug.cgi?id=1988272
142+
"[sig-network] Networking should provide Internet connection for containers [Feature:Networking-IPv6]",
143+
"[sig-network] Networking should provider Internet connection for containers using DNS",
144+
145+
// https://bugzilla.redhat.com/show_bug.cgi?id=1957894
146+
"[sig-node] Container Runtime blackbox test when running a container with a new image should be able to pull from private registry with secret",
147+
148+
// https://bugzilla.redhat.com/show_bug.cgi?id=1952457
149+
"[sig-node] crictl should be able to run crictl on the node",
150+
151+
// https://bugzilla.redhat.com/show_bug.cgi?id=1953478
152+
"[sig-storage] Dynamic Provisioning Invalid AWS KMS key should report an error and create no PV",
153+
154+
// https://issues.redhat.com/browse/OCPBUGS-34577
155+
"[sig-storage] Multi-AZ Cluster Volumes should schedule pods in the same zones as statically provisioned PVs",
156+
157+
// https://issues.redhat.com/browse/OCPBUGS-34594
158+
"[sig-node] [Feature:PodLifecycleSleepAction] when create a pod with lifecycle hook using sleep action valid prestop hook using sleep action",
159+
160+
// https://issues.redhat.com/browse/OCPBUGS-38839
161+
"[sig-network] Traffic Distribution",
162+
163+
// https://issues.redhat.com/browse/OCPBUGS-45273
164+
"[sig-network] Services should implement NodePort and HealthCheckNodePort correctly when ExternalTrafficPolicy changes",
165+
},
166+
// tests that need to be temporarily disabled while the rebase is in progress.
167+
"RebaseInProgress": {
168+
// https://issues.redhat.com/browse/OCPBUGS-7297
169+
"DNS HostNetwork should resolve DNS of partial qualified names for services on hostNetwork pods with dnsPolicy",
170+
171+
// https://issues.redhat.com/browse/OCPBUGS-45275
172+
"[sig-network] Connectivity Pod Lifecycle should be able to connect to other Pod from a terminating Pod",
173+
174+
// https://issues.redhat.com/browse/OCPBUGS-17194
175+
"[sig-node] ImageCredentialProvider [Feature:KubeletCredentialProviders] should be able to create pod with image credentials fetched from external credential provider",
176+
},
177+
// tests that may work, but we don't support them
178+
"Unsupported": {
179+
"[Driver: rbd]", // OpenShift 4.x does not support Ceph RBD (use CSI instead)
180+
"[Driver: ceph]", // OpenShift 4.x does not support CephFS (use CSI instead)
181+
"[Driver: gluster]", // OpenShift 4.x does not support Gluster
182+
"Volumes GlusterFS", // OpenShift 4.x does not support Gluster
183+
"GlusterDynamicProvisioner", // OpenShift 4.x does not support Gluster
184+
185+
// Also, our CI doesn't support topology, so disable those tests
186+
"[sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (delayed binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies",
187+
"[sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (delayed binding)] topology should provision a volume and schedule a pod with AllowedTopologies",
188+
"[sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (immediate binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies",
189+
"[sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (immediate binding)] topology should provision a volume and schedule a pod with AllowedTopologies",
190+
},
191+
}
192+
193+
var disabledSpecs et.ExtensionTestSpecs
194+
for _, disabledList := range disabledByReason {
195+
var selectFunctions []et.SelectFunction
196+
for _, disabledName := range disabledList {
197+
selectFunctions = append(selectFunctions, et.NameContains(disabledName))
198+
}
199+
200+
disabledSpecs = append(disabledSpecs, specs.SelectAny(selectFunctions)...)
201+
}
202+
203+
disabledNames := sets.New[string]()
204+
for _, disabledSpec := range disabledSpecs {
205+
disabledNames.Insert(disabledSpec.Name)
206+
}
207+
208+
enabledSpecs := specs[:0]
209+
for _, spec := range specs {
210+
if !disabledNames.Has(spec.Name) {
211+
enabledSpecs = append(enabledSpecs, spec)
212+
}
213+
}
214+
215+
return enabledSpecs
216+
}

0 commit comments

Comments
 (0)