From b3bac00ba349d592cc8c430c4d286551032fe745 Mon Sep 17 00:00:00 2001 From: Timur Mamyshev Date: Wed, 12 Aug 2026 17:55:54 +0300 Subject: [PATCH 1/2] metallb tests Co-Authored-By: Claude Sonnet 4.6 (1M context) --- ...o-ci-cd-main__cnf-network-phase1-4.20.yaml | 2 +- ...o-ci-cd-main__cnf-network-phase2-4.20.yaml | 3 +- ...o-ci-cd-main__cnf-network-phase2-4.22.yaml | 1 + ...penshift-kni-eco-ci-cd-main-periodics.yaml | 4 +- .../cnf-network/metallb-e2etests/OWNERS | 6 +++ ...l-cnf-network-metallb-e2etests-commands.sh | 48 +++++++++++++++++++ ...network-metallb-e2etests-ref.metadata.json | 12 +++++ ...onal-cnf-network-metallb-e2etests-ref.yaml | 26 ++++++++++ 8 files changed, 98 insertions(+), 4 deletions(-) create mode 100644 ci-operator/step-registry/telcov10n/functional/cnf-network/metallb-e2etests/OWNERS create mode 100644 ci-operator/step-registry/telcov10n/functional/cnf-network/metallb-e2etests/telcov10n-functional-cnf-network-metallb-e2etests-commands.sh create mode 100644 ci-operator/step-registry/telcov10n/functional/cnf-network/metallb-e2etests/telcov10n-functional-cnf-network-metallb-e2etests-ref.metadata.json create mode 100644 ci-operator/step-registry/telcov10n/functional/cnf-network/metallb-e2etests/telcov10n-functional-cnf-network-metallb-e2etests-ref.yaml diff --git a/ci-operator/config/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main__cnf-network-phase1-4.20.yaml b/ci-operator/config/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main__cnf-network-phase1-4.20.yaml index f4bbfae29f039..b5526c3ab9775 100644 --- a/ci-operator/config/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main__cnf-network-phase1-4.20.yaml +++ b/ci-operator/config/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main__cnf-network-phase1-4.20.yaml @@ -20,7 +20,7 @@ tests: - as: cnf-network-functional-tests capabilities: - intranet - cron: 0 20 * * 5 + cron: 0 21 * * 5 restrict_network_access: false steps: env: 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..ed64a67d587ef 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 @@ -5159,7 +5159,7 @@ periodics: secretName: result-aggregator - agent: kubernetes cluster: build07 - cron: 0 20 * * 5 + cron: 0 21 * * 5 decorate: true decoration_config: skip_cloning: true @@ -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 From 23f737b7e8150add2246eeb3ab4d0e6fef8d8597 Mon Sep 17 00:00:00 2001 From: Timur Mamyshev Date: Thu, 13 Aug 2026 11:47:11 +0300 Subject: [PATCH 2/2] periodics --- .../openshift-kni-eco-ci-cd-main__cnf-network-phase1-4.20.yaml | 2 +- .../eco-ci-cd/openshift-kni-eco-ci-cd-main-periodics.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ci-operator/config/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main__cnf-network-phase1-4.20.yaml b/ci-operator/config/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main__cnf-network-phase1-4.20.yaml index b5526c3ab9775..f4bbfae29f039 100644 --- a/ci-operator/config/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main__cnf-network-phase1-4.20.yaml +++ b/ci-operator/config/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main__cnf-network-phase1-4.20.yaml @@ -20,7 +20,7 @@ tests: - as: cnf-network-functional-tests capabilities: - intranet - cron: 0 21 * * 5 + cron: 0 20 * * 5 restrict_network_access: false steps: env: 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 ed64a67d587ef..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 @@ -5159,7 +5159,7 @@ periodics: secretName: result-aggregator - agent: kubernetes cluster: build07 - cron: 0 21 * * 5 + cron: 0 20 * * 5 decorate: true decoration_config: skip_cloning: true