diff --git a/ci-operator/config/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main__cnf-network-phase2-4.20.yaml b/ci-operator/config/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main__cnf-network-phase2-4.20.yaml index 46b018664cac1..a12c37f97e4cb 100644 --- a/ci-operator/config/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main__cnf-network-phase2-4.20.yaml +++ b/ci-operator/config/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main__cnf-network-phase2-4.20.yaml @@ -20,7 +20,7 @@ tests: - as: cnf-network-functional-tests capabilities: - intranet - cron: 0 23 31 2 * + cron: 0 22 31 2 * restrict_network_access: false steps: env: @@ -43,6 +43,7 @@ tests: - ref: telcov10n-functional-cnf-network-gather-artifacts-from-bastion test: - ref: telcov10n-functional-cnf-network-eco-gotests + - ref: telcov10n-functional-cnf-network-metallb-e2etests zz_generated_metadata: branch: main org: openshift-kni diff --git a/ci-operator/config/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main__cnf-network-phase2-4.22.yaml b/ci-operator/config/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main__cnf-network-phase2-4.22.yaml index e855b2d7e27fe..10248d1218f47 100644 --- a/ci-operator/config/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main__cnf-network-phase2-4.22.yaml +++ b/ci-operator/config/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main__cnf-network-phase2-4.22.yaml @@ -43,6 +43,7 @@ tests: - ref: telcov10n-functional-cnf-network-gather-artifacts-from-bastion test: - ref: telcov10n-functional-cnf-network-eco-gotests + - ref: telcov10n-functional-cnf-network-metallb-e2etests zz_generated_metadata: branch: main org: openshift-kni diff --git a/ci-operator/jobs/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main-periodics.yaml b/ci-operator/jobs/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main-periodics.yaml index 66121a776c486..68ade2645342b 100644 --- a/ci-operator/jobs/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main-periodics.yaml +++ b/ci-operator/jobs/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main-periodics.yaml @@ -5815,7 +5815,7 @@ periodics: secretName: result-aggregator - agent: kubernetes cluster: build07 - cron: 0 23 31 2 * + cron: 0 22 31 2 * decorate: true decoration_config: skip_cloning: true diff --git a/ci-operator/step-registry/telcov10n/functional/cnf-network/metallb-e2etests/OWNERS b/ci-operator/step-registry/telcov10n/functional/cnf-network/metallb-e2etests/OWNERS new file mode 100644 index 0000000000000..89fa480d16307 --- /dev/null +++ b/ci-operator/step-registry/telcov10n/functional/cnf-network/metallb-e2etests/OWNERS @@ -0,0 +1,6 @@ +approvers: +- natifridman +- shaior +- kononovn +- eifrach +- timurmp diff --git a/ci-operator/step-registry/telcov10n/functional/cnf-network/metallb-e2etests/telcov10n-functional-cnf-network-metallb-e2etests-commands.sh b/ci-operator/step-registry/telcov10n/functional/cnf-network/metallb-e2etests/telcov10n-functional-cnf-network-metallb-e2etests-commands.sh new file mode 100644 index 0000000000000..5041d391674bc --- /dev/null +++ b/ci-operator/step-registry/telcov10n/functional/cnf-network/metallb-e2etests/telcov10n-functional-cnf-network-metallb-e2etests-commands.sh @@ -0,0 +1,48 @@ +#!/bin/bash +set -e +set -o pipefail + +PROJECT_DIR="/tmp" + +echo "Checking if the job should be skipped..." +if [ -f "${SHARED_DIR}/skip.txt" ]; then + echo "Detected skip.txt file — skipping the job" + exit 0 +fi + +echo "Set CLUSTER_NAME env var" +if [[ -f "${SHARED_DIR}/cluster_name" ]]; then + CLUSTER_NAME=$(cat "${SHARED_DIR}/cluster_name") +fi +export CLUSTER_NAME=${CLUSTER_NAME} +echo "CLUSTER_NAME=${CLUSTER_NAME}" + +echo "Set bastion SSH configuration" +cat /var/group_variables/common/all/ansible_ssh_private_key > "${PROJECT_DIR}/temp_ssh_key" +chmod 600 "${PROJECT_DIR}/temp_ssh_key" +BASTION_IP=$(cat /var/host_variables/"${CLUSTER_NAME}"/bastion/ansible_host) +BASTION_USER=$(cat /var/group_variables/common/all/ansible_user) + +echo "Run MetalLB deploy playbook" +cd /eco-ci-cd +ansible-playbook ./playbooks/cnf/deploy-run-metallb-tests-script.yaml \ + -i ./inventories/cnf/run-tests.yaml \ + --extra-vars "kubeconfig=/home/telcov10n/project/generated/${CLUSTER_NAME}/auth/kubeconfig \ + metallb_repo=${METALLB_REPO} \ + frr_image=${FRR_IMAGE} \ + ipv4_service_range=${IPV4_SERVICE_RANGE} \ + ipv6_service_range=${IPV6_SERVICE_RANGE}" + +echo "Run MetalLB e2e tests via SSH" +ssh -o ServerAliveInterval=60 -o ServerAliveCountMax=3 -o StrictHostKeyChecking=no \ + "${BASTION_USER}@${BASTION_IP}" -i "${PROJECT_DIR}/temp_ssh_key" \ + "sudo /tmp/metallb/metallb-tests-run.sh || true" + +echo "Gather JUnit report from bastion" +mkdir -p "${ARTIFACT_DIR}/junit_metallb" +scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \ + -i "${PROJECT_DIR}/temp_ssh_key" \ + "${BASTION_USER}@${BASTION_IP}":/tmp/metallbreport/junit-report.xml \ + "${ARTIFACT_DIR}/junit_metallb/junit-report.xml" + +rm -f "${PROJECT_DIR}/temp_ssh_key" diff --git a/ci-operator/step-registry/telcov10n/functional/cnf-network/metallb-e2etests/telcov10n-functional-cnf-network-metallb-e2etests-ref.metadata.json b/ci-operator/step-registry/telcov10n/functional/cnf-network/metallb-e2etests/telcov10n-functional-cnf-network-metallb-e2etests-ref.metadata.json new file mode 100644 index 0000000000000..04dd1b201c564 --- /dev/null +++ b/ci-operator/step-registry/telcov10n/functional/cnf-network/metallb-e2etests/telcov10n-functional-cnf-network-metallb-e2etests-ref.metadata.json @@ -0,0 +1,12 @@ +{ + "path": "telcov10n/functional/cnf-network/metallb-e2etests/telcov10n-functional-cnf-network-metallb-e2etests-ref.yaml", + "owners": { + "approvers": [ + "natifridman", + "shaior", + "kononovn", + "eifrach", + "timurmp" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/telcov10n/functional/cnf-network/metallb-e2etests/telcov10n-functional-cnf-network-metallb-e2etests-ref.yaml b/ci-operator/step-registry/telcov10n/functional/cnf-network/metallb-e2etests/telcov10n-functional-cnf-network-metallb-e2etests-ref.yaml new file mode 100644 index 0000000000000..22b8d8aa6f2a5 --- /dev/null +++ b/ci-operator/step-registry/telcov10n/functional/cnf-network/metallb-e2etests/telcov10n-functional-cnf-network-metallb-e2etests-ref.yaml @@ -0,0 +1,26 @@ +ref: + as: telcov10n-functional-cnf-network-metallb-e2etests + from: src + commands: telcov10n-functional-cnf-network-metallb-e2etests-commands.sh + grace_period: 10s + timeout: 4h0m0s + resources: + requests: + cpu: 100m + memory: 200Mi + env: + - name: CLUSTER_NAME + default: "" + documentation: BM Cluster name + - name: METALLB_REPO + default: https://github.com/openshift/metallb.git + documentation: MetalLB git repository URL + - name: FRR_IMAGE + default: quay.io/frrouting/frr:8.5.3 + documentation: FRR container image used by the MetalLB ginkgo test suite + - name: IPV4_SERVICE_RANGE + default: 192.168.10.0/24 + documentation: IPv4 address range for MetalLB service allocation during tests + - name: IPV6_SERVICE_RANGE + default: fc00:f853:0ccd:e799::/124 + documentation: IPv6 address range for MetalLB service allocation during tests