Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CNTRLPLANE-249 Build CI to cover Cilium CNI test for HCP on kubevirt #63263

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -125,23 +125,6 @@ tests:
minimum_interval: 168h
steps:
cluster_profile: hypershift
env:
TEST_SKIPS: Netpol NetworkPolicy between server and client should allow egress
access to server in CIDR block \[Feature:NetworkPolicy\] \[Suite:openshift/conformance/parallel\]
\[Suite:k8s\]\| Netpol NetworkPolicy between server and client should ensure
an IP overlapping both IPBlock.CIDR and IPBlock.Except is allowed \[Feature:NetworkPolicy\]
\[Suite:openshift/conformance/parallel\] \[Suite:k8s\]\| Services should serve
endpoints on same port and different protocols \[Conformance\] \[Suite:openshift/conformance/parallel/minimal\]
\[Suite:k8s\]\| Netpol NetworkPolicy between server and client should enforce
except clause while egress access to server in CIDR block \[Feature:NetworkPolicy\]
\[Suite:openshift/conformance/parallel\] \[Suite:k8s\]\| Unidling \[apigroup:apps.openshift.io\]\[apigroup:route.openshift.io\]
should work with UDP \[Suite:openshift/conformance/parallel\]\| Unidling with
Deployments \[apigroup:route.openshift.io\] should work with TCP (when fully
idled) \[Suite:openshift/conformance/parallel\]\| Unidling \[apigroup:apps.openshift.io\]\[apigroup:route.openshift.io\]
should work with TCP (when fully idled) \[Suite:openshift/conformance/parallel\]\|
Unidling with Deployments \[apigroup:route.openshift.io\] should work with
UDP \[Suite:openshift/conformance/parallel\]\| DNS should answer queries using
the local DNS endpoint \[Suite:openshift/conformance/parallel\]
workflow: hypershift-aws-conformance-cilium
- as: e2e-powervs-ovn
cron: 0 8 * * *
Expand Down Expand Up @@ -179,6 +162,16 @@ tests:
ODF_OPERATOR_SUB_SOURCE: redhat-operators-v4-17
REDHAT_OPERATORS_INDEX_TAG: v4.17
workflow: hypershift-kubevirt-baremetalds-conformance
- as: e2e-kubevirt-metal-conformance-cilium
minimum_interval: 168h
steps:
cluster_profile: equinix-ocp-hcp
env:
LVM_OPERATOR_SUB_CHANNEL: stable-4.19
ODF_OPERATOR_SUB_CHANNEL: stable-4.18
ODF_OPERATOR_SUB_SOURCE: redhat-operators-v4-18
REDHAT_OPERATORS_INDEX_TAG: v4.18
workflow: hypershift-kubevirt-baremetalds-conformance-cilium
- as: e2e-kubevirt-metal-ovn-disconnected
cron: 0 8 * * *
steps:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1101,6 +1101,81 @@ periodics:
- name: result-aggregator
secret:
secretName: result-aggregator
- agent: kubernetes
cluster: build11
decorate: true
decoration_config:
skip_cloning: true
extra_refs:
- base_ref: release-4.19
org: openshift
repo: hypershift
labels:
ci-operator.openshift.io/cloud: equinix-ocp-metal
ci-operator.openshift.io/cloud-cluster-profile: equinix-ocp-hcp
ci-operator.openshift.io/variant: periodics
ci.openshift.io/generator: prowgen
job-release: "4.19"
pj-rehearse.openshift.io/can-be-rehearsed: "true"
minimum_interval: 168h
name: periodic-ci-openshift-hypershift-release-4.19-periodics-e2e-kubevirt-metal-conformance-cilium
spec:
containers:
- args:
- --gcs-upload-secret=/secrets/gcs/service-account.json
- --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson
- --lease-server-credentials-file=/etc/boskos/credentials
- --report-credentials-file=/etc/report/credentials
- --secret-dir=/secrets/ci-pull-credentials
- --target=e2e-kubevirt-metal-conformance-cilium
- --variant=periodics
command:
- ci-operator
image: ci-operator:latest
imagePullPolicy: Always
name: ""
resources:
requests:
cpu: 10m
volumeMounts:
- mountPath: /etc/boskos
name: boskos
readOnly: true
- mountPath: /secrets/ci-pull-credentials
name: ci-pull-credentials
readOnly: true
- mountPath: /secrets/gcs
name: gcs-credentials
readOnly: true
- mountPath: /secrets/manifest-tool
name: manifest-tool-local-pusher
readOnly: true
- mountPath: /etc/pull-secret
name: pull-secret
readOnly: true
- mountPath: /etc/report
name: result-aggregator
readOnly: true
serviceAccountName: ci-operator
volumes:
- name: boskos
secret:
items:
- key: credentials
path: credentials
secretName: boskos-credentials
- name: ci-pull-credentials
secret:
secretName: ci-pull-credentials
- name: manifest-tool-local-pusher
secret:
secretName: manifest-tool-local-pusher
- name: pull-secret
secret:
secretName: registry-pull-credentials
- name: result-aggregator
secret:
secretName: result-aggregator
- agent: kubernetes
cluster: build11
cron: 0 4 * * *
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,4 +96,3 @@ spec:
' | envsubst > /tmp/ciliumconfig.json

oc apply -f /tmp/ciliumconfig.json
oc wait --for=condition=Ready pod -n cilium --all --timeout=5m
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ oc wait clusteroperators --all --for=condition=Progressing=False --timeout=30m
oc wait clusteroperators --all --for=condition=Degraded=False --timeout=30m
oc wait clusterversion/version --for=condition=Available=True --timeout=30m

oc wait --for=condition=Ready pod -n cilium --all --timeout=5m

echo "Performing Cilium connectivity tests"
trap "dump_connectivity_test_namespace; cleanup_connectivity_test" EXIT
oc apply -f - <<EOF
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,22 @@ workflow:
steps:
env:
HYPERSHIFT_NETWORK_TYPE: "Other" # Required for Cilium.
TEST_SKIPS: Netpol NetworkPolicy between server and client should allow egress
access to server in CIDR block \[Feature:NetworkPolicy\] \[Suite:openshift/conformance/parallel\]
\[Suite:k8s\]\| Netpol NetworkPolicy between server and client should ensure
an IP overlapping both IPBlock.CIDR and IPBlock.Except is allowed \[Feature:NetworkPolicy\]
\[Suite:openshift/conformance/parallel\] \[Suite:k8s\]\| Services should serve
endpoints on same port and different protocols \[Conformance\] \[Suite:openshift/conformance/parallel/minimal\]
\[Suite:k8s\]\| Netpol NetworkPolicy between server and client should enforce
except clause while egress access to server in CIDR block \[Feature:NetworkPolicy\]
\[Suite:openshift/conformance/parallel\] \[Suite:k8s\]\| Unidling \[apigroup:apps.openshift.io\]\[apigroup:route.openshift.io\]
should work with UDP \[Suite:openshift/conformance/parallel\]\| Unidling with
Deployments \[apigroup:route.openshift.io\] should work with TCP (when fully
idled) \[Suite:openshift/conformance/parallel\]\| Unidling \[apigroup:apps.openshift.io\]\[apigroup:route.openshift.io\]
should work with TCP (when fully idled) \[Suite:openshift/conformance/parallel\]\|
Unidling with Deployments \[apigroup:route.openshift.io\] should work with
UDP \[Suite:openshift/conformance/parallel\]\| DNS should answer queries using
the local DNS endpoint \[Suite:openshift/conformance/parallel\]
post:
- chain: hypershift-dump
- chain: hypershift-aws-destroy
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"path": "hypershift/kubevirt/baremetalds/conformance-cilium/hypershift-kubevirt-baremetalds-conformance-cilium-workflow.yaml",
"owners": {
"approvers": [
"davidvossel",
"nirarg",
"nunnatsa",
"qinqon",
"orenc1",
"LiangquanLi930"
],
"reviewers": [
"davidvossel",
"nirarg",
"nunnatsa",
"qinqon",
"orenc1",
"LiangquanLi930"
]
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
workflow:
as: hypershift-kubevirt-baremetalds-conformance-cilium
documentation: |-
Executes tests against a new ephemeral HyperShift cluster with Cilium CNI.
Administrative access to the control plane is provided via the `KUBECONFIG`
environment variable.

Learn more about HyperShift here: https://github.com/openshift/hypershift

Track HyperShift's development here: https://issues.redhat.com/projects/HOSTEDCP
steps:
post:
- chain: hypershift-dump
- chain: gather-core-dump
- chain: hypershift-kubevirt-destroy
- chain: baremetalds-ipi-post
test:
- chain: hypershift-conformance
pre:
- chain: baremetalds-ipi-pre
- ref: enable-qe-catalogsource
- chain: hypershift-kubevirt-baremetalds-lvm
- chain: hypershift-kubevirt-baremetalds-metallb
- chain: hypershift-kubevirt-baremetalds-odf
- ref: hypershift-kubevirt-install
- ref: hypershift-install
- ref: hypershift-kubevirt-create
- ref: hypershift-kubevirt-baremetalds-proxy
- ref: cucushift-hypershift-extended-cilium
- ref: cucushift-hypershift-extended-cilium-health-check
env:
HYPERSHIFT_NETWORK_TYPE: "Other" # Required for Cilium.
METALLB_OPERATOR_SUB_SOURCE: qe-app-registry
LOCAL_STORAGE_OPERATOR_SUB_SOURCE: qe-app-registry
LVM_OPERATOR_SUB_CHANNEL: stable-4.19
LVM_OPERATOR_SUB_SOURCE: qe-app-registry
LVM_OPERATOR_SUB_INSTALL_NAMESPACE: openshift-lvm-storage
ODF_OPERATOR_SUB_SOURCE: redhat-operators-v4-18
ETCD_STORAGE_CLASS: lvms-vg1
TEST_SKIPS: Netpol NetworkPolicy between server and client should allow egress
access to server in CIDR block\| Netpol NetworkPolicy between server and client
should ensure an IP overlapping both IPBlock.CIDR and IPBlock.Except is allowed\|
Services should serve endpoints on same port and different protocols\|
Netpol NetworkPolicy between server and client should enforce
except clause while egress access to server in CIDR block\| Unidling
\[apigroup:apps.openshift.io\]\[apigroup:route.openshift.io\]
should work with UDP\| Unidling with Deployments \[apigroup:route.openshift.io\]
should work with TCP (when fully idled)\| Unidling
\[apigroup:apps.openshift.io\]\[apigroup:route.openshift.io\] should work with
TCP (when fully idled)\| Unidling with Deployments \[apigroup:route.openshift.io\]
should work with UDP\| DNS should answer queries using the local DNS
endpoint\|\[Feature:bond\]\| StatefulSet Basic\| StatefulSet Non-retain
PACKET_OS: rocky_9
DEVSCRIPTS_CONFIG: |
IP_STACK=v4
NETWORK_TYPE=OVNKubernetes
NUM_WORKERS=0
NUM_MASTERS=3
MASTER_VCPU=16
MASTER_MEMORY=81920
VM_EXTRADISKS=true
VM_EXTRADISKS_LIST="vda vdb"
VM_EXTRADISKS_SIZE=250G
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,9 @@ if [[ -f "${SHARED_DIR}/GPU_DEVICE_NAME" ]]; then
EXTRA_ARGS="${EXTRA_ARGS} --host-device-name $(cat "${SHARED_DIR}/GPU_DEVICE_NAME"),count:2"
fi

if [[ -n "${HYPERSHIFT_NETWORK_TYPE}" ]]; then
EXTRA_ARGS="${EXTRA_ARGS} --network-type=${HYPERSHIFT_NETWORK_TYPE}"
fi

echo "$(date) Creating HyperShift guest cluster ${CLUSTER_NAME}"
# Workaround for: https://issues.redhat.com/browse/OCPBUGS-42867
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ ref:
- name: HYPERSHIFT_NODE_CPU_CORES
default: "4"
documentation: "The number of CPU cores that will be assigned for the kubevirt hosted cluster's nodes."
- name: HYPERSHIFT_NETWORK_TYPE
default: ""
documentation: "Specifies the cluster SDN provider."
- name: RUN_HOSTEDCLUSTER_CREATION
default: "true"
documentation: |-
Expand Down