ci(openeuler): improve mirror selection and stabilize CI checks (#13094)

Enable openEuler metalink and clear dnf cache after repo updates so package downloads use refreshed mirror metadata. Keep openeuler24-calico in the main CI matrix with a longer package timeout, and clean up failed pods before running-state checks to reduce transient CI noise.


Made-with: Cursor

Made-with: Cursor

Made-with: Cursor

Made-with: Cursor

Signed-off-by: Kay Yan <kay.yan@daocloud.io>
This commit is contained in:
Kay Yan
2026-03-17 15:59:37 +08:00
committed by GitHub
parent 03d17fea92
commit 3c6d368397
4 changed files with 52 additions and 5 deletions

View File

@@ -57,6 +57,7 @@ pr:
- ubuntu24-kube-router-svc-proxy
- ubuntu24-ha-separate-etcd
- fedora40-flannel-crio-collection-scale
- openeuler24-calico
# This is for flakey test so they don't disrupt the PR worklflow too much.
# Jobs here MUST have a open issue so we don't lose sight of them
@@ -67,7 +68,6 @@ pr-flakey:
matrix:
- TESTCASE:
- flatcar4081-calico # https://github.com/kubernetes-sigs/kubespray/issues/12309
- openeuler24-calico # https://github.com/kubernetes-sigs/kubespray/issues/12877
# The ubuntu24-calico-all-in-one jobs are meant as early stages to prevent running the full CI if something is horribly broken
ubuntu24-calico-all-in-one:

View File

@@ -12,6 +12,10 @@ coreos_locksmithd_disable: false
# Install epel repo on Centos/RHEL
epel_enabled: false
## openEuler specific variables
# Enable metalink for openEuler repos (auto-selects fastest mirror by location)
openeuler_metalink_enabled: false
## Oracle Linux specific variables
# Install public repo on Oracle Linux
use_oracle_public_repo: true

View File

@@ -1,3 +1,43 @@
---
- name: Import Centos boostrap for openEuler
import_tasks: centos.yml
- name: Import CentOS bootstrap for openEuler
ansible.builtin.import_tasks: centos.yml
- name: Get existing openEuler repo sections
ansible.builtin.shell:
cmd: "set -o pipefail && grep '^\\[' /etc/yum.repos.d/openEuler.repo | tr -d '[]'"
executable: /bin/bash
register: _openeuler_repo_sections
changed_when: false
failed_when: false
check_mode: false
become: true
when: openeuler_metalink_enabled
- name: Enable metalink for openEuler repos
community.general.ini_file:
path: /etc/yum.repos.d/openEuler.repo
section: "{{ item.key }}"
option: metalink
value: "{{ item.value }}"
no_extra_spaces: true
mode: "0644"
loop: "{{ _openeuler_metalink_repos | dict2items | selectattr('key', 'in', _openeuler_repo_sections.stdout_lines | default([])) }}"
become: true
when: openeuler_metalink_enabled
register: _openeuler_metalink_result
vars:
_openeuler_metalink_repos:
OS: "https://mirrors.openeuler.org/metalink?repo=$releasever/OS&arch=$basearch"
everything: "https://mirrors.openeuler.org/metalink?repo=$releasever/everything&arch=$basearch"
EPOL: "https://mirrors.openeuler.org/metalink?repo=$releasever/EPOL/main&arch=$basearch"
debuginfo: "https://mirrors.openeuler.org/metalink?repo=$releasever/debuginfo&arch=$basearch"
source: "https://mirrors.openeuler.org/metalink?repo=$releasever&arch=source"
update: "https://mirrors.openeuler.org/metalink?repo=$releasever/update&arch=$basearch"
update-source: "https://mirrors.openeuler.org/metalink?repo=$releasever/update&arch=source"
- name: Clean dnf cache to apply metalink mirror selection
ansible.builtin.command: dnf clean all
become: true
when:
- openeuler_metalink_enabled
- _openeuler_metalink_result.changed

View File

@@ -3,8 +3,11 @@
cloud_image: openeuler-2403
vm_memory: 3072
# Openeuler package mgmt is slow for some reason
pkg_install_timeout: "{{ 10 * 60 }}"
# Use metalink for faster package downloads (auto-selects closest mirror)
openeuler_metalink_enabled: true
# CI package installation takes ~7min; default 5min is too tight, use 15min for margin
pkg_install_timeout: "{{ 15 * 60 }}"
# Work around so the Kubernetes 1.35 tests can pass. We will discuss the openeuler support later.
kubeadm_ignore_preflight_errors: