From 230cd19497f855ca670383158cd39dbdde53e8a6 Mon Sep 17 00:00:00 2001 From: Kay Yan Date: Wed, 9 Sep 2026 15:32:34 +0800 Subject: [PATCH] fix(openeuler): add configurable openeuler_repo_baseurl for faster mirrors (#13134) Add openeuler_repo_baseurl variable to override the default baseurl (repo.openeuler.org) with a faster mirror. CI uses Huawei Cloud CDN, reducing package installation from >900s timeout to ~2min. Signed-off-by: Kay Yan --- roles/bootstrap_os/defaults/main.yml | 4 ++++ roles/bootstrap_os/tasks/openEuler.yml | 9 +++++++++ tests/files/openeuler24-calico.yml | 4 ++-- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/roles/bootstrap_os/defaults/main.yml b/roles/bootstrap_os/defaults/main.yml index f061a6fa8..18a7fa4c0 100644 --- a/roles/bootstrap_os/defaults/main.yml +++ b/roles/bootstrap_os/defaults/main.yml @@ -15,6 +15,10 @@ epel_enabled: false ## openEuler specific variables # Enable metalink for openEuler repos (auto-selects fastest mirror by location) openeuler_metalink_enabled: false +# Override the default baseurl host for openEuler repos. +# Used as fallback when metalink is unavailable (502/timeout). +# Default repo.openeuler.org (Hong Kong) is slow from many CI/cloud environments. +openeuler_repo_baseurl: "" ## Oracle Linux specific variables # Install public repo on Oracle Linux diff --git a/roles/bootstrap_os/tasks/openEuler.yml b/roles/bootstrap_os/tasks/openEuler.yml index e72627acf..a006e40be 100644 --- a/roles/bootstrap_os/tasks/openEuler.yml +++ b/roles/bootstrap_os/tasks/openEuler.yml @@ -54,6 +54,15 @@ update: "https://mirrors.openeuler.org/metalink?repo={{ _openeuler_releasever }}/update&arch=$basearch" update-source: "https://mirrors.openeuler.org/metalink?repo={{ _openeuler_releasever }}/update&arch=source" +- name: Override baseurl to a faster mirror (fallback when metalink is unavailable) + ansible.builtin.replace: + path: /etc/yum.repos.d/openEuler.repo + regexp: 'baseurl=http://repo\.openeuler\.org/' + replace: "baseurl={{ openeuler_repo_baseurl }}/" + mode: "0644" + become: true + when: openeuler_repo_baseurl != "" + - name: Clean dnf metadata cache to apply metalink mirror selection ansible.builtin.command: dnf clean metadata become: true diff --git a/tests/files/openeuler24-calico.yml b/tests/files/openeuler24-calico.yml index 69465b33c..19e4d46a5 100644 --- a/tests/files/openeuler24-calico.yml +++ b/tests/files/openeuler24-calico.yml @@ -3,8 +3,8 @@ cloud_image: openeuler-2403 vm_memory: 3072 -# Use metalink for faster package downloads (auto-selects closest mirror) -openeuler_metalink_enabled: true +# Use Huawei Cloud CDN instead of the default repo.openeuler.org (unreachable from Oracle Cloud CI) +openeuler_repo_baseurl: "https://repo.huaweicloud.com/openeuler" # CI package installation takes ~7min; default 5min is too tight, use 15min for margin pkg_install_timeout: "{{ 15 * 60 }}"