Skip to content

Commit 3467966

Browse files
committed
CI: revert to public package mirrors after build
When building images in CI, we use local package mirrors to reduce external network traffic. These mirrors are not necessarily reliable nor are they guaranteed to be accessible outside of the CI environment (although many are). While it is an antipattern to install packages in containers at runtime, the Bifrost container does just that. If the mirrors configured in the image are unavailable, Bifrost deployment can fail. This change fixes the issue by reverting to public package mirrors as a final step of the image build process. Closes-Bug: #1902101 Change-Id: I2592a736206eaec811290e9fbdbf2540c0518ffe (cherry picked from commit 0fc4643)
1 parent a11b99c commit 3467966

File tree

1 file changed

+53
-3
lines changed

1 file changed

+53
-3
lines changed

tests/templates/template_overrides.j2

Lines changed: 53 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,10 @@ RUN echo 'APT::Get::AllowUnauthenticated "true";' > /etc/apt/apt.conf.d/99allow-
2828
{% endraw %}
2929

3030
RUN sed -i \
31-
-e "/^mirrorlist/ d" \
31+
-e "s|^\(mirrorlist.*\)|#\1|" \
3232
-e "s|^#baseurl=http://mirror.centos.org|baseurl=http://{{ nodepool_mirror_host }}|" \
3333
/etc/yum.repos.d/CentOS-*.repo
34+
3435
{% raw %}
3536
{% endblock %}
3637

@@ -45,14 +46,14 @@ RUN sed -i \
4546
{% block base_centos_repo_overrides_post_yum %}
4647
{% endraw %}
4748
&& sed -i \
48-
-e "/^mirrorlist/ d" \
49+
-e "s|^\(mirrorlist.*\)|#\1|" \
4950
-e "s|^#baseurl=http://mirror.centos.org|baseurl=http://{{ nodepool_mirror_host }}|" \
5051
-e "s|^#baseurl=https://mirror.centos.org|baseurl=http://{{ nodepool_mirror_host }}|" \
5152
-e "s|^baseurl=http://mirror.centos.org|baseurl=http://{{ nodepool_mirror_host }}|" \
5253
-e "s|^baseurl=https://mirror.centos.org|baseurl=http://{{ nodepool_mirror_host }}|" \
5354
/etc/yum.repos.d/CentOS-*.repo \
5455
&& sed -i \
55-
-e "/^metalink/ d" \
56+
-e "s|^\(metalink.*\)|#\1|" \
5657
-e "s|^#baseurl=http://download.fedoraproject.org/pub|baseurl=http://{{ nodepool_mirror_host }}|" \
5758
-e "s|^#baseurl=https://download.fedoraproject.org/pub|baseurl=http://{{ nodepool_mirror_host }}|" \
5859
/etc/yum.repos.d/epel*.repo \
@@ -79,4 +80,53 @@ RUN sed -i -e "s|mirror://mirrors.ubuntu.com/mirrors.txt|http://{{ nodepool_mirr
7980
{% raw %}
8081
{% endif %}
8182
{% endblock %}
83+
84+
{# Revert to upstream mirrors after build is complete #}
85+
86+
{% block footer %}
87+
{% endraw %}
88+
89+
ENV PIP_INDEX_URL=
90+
ENV PIP_TRUSTED_HOST=
91+
{% if use_infra_wheels_mirror | default(true) %}
92+
ENV PIP_EXTRA_INDEX_URL=
93+
{% endif %}
94+
95+
RUN if [[ -f /usr/etc/npmrc ]]; then \
96+
unlink /usr/etc/npmrc; \
97+
fi \
98+
&& rm -f /etc/npmrc
99+
100+
{% raw %}
101+
{% if base_package_type == 'rpm' %}
102+
{% endraw %}
103+
RUN sed -i \
104+
-e "s|^#\(mirrorlist.*\)|\1|" \
105+
-e "s|^baseurl=http://{{ nodepool_mirror_host }}|#baseurl=http://mirror.centos.org|" \
106+
/etc/yum.repos.d/CentOS-*.repo \
107+
&& sed -i \
108+
-e "s|^#\(metalink.*\)|\1|" \
109+
-e "s|^baseurl=http://{{ nodepool_mirror_host }}|baseurl=http://download.fedoraproject.org/pub|" \
110+
/etc/yum.repos.d/epel*.repo
111+
{% raw %}
112+
{% elif base_package_type == 'deb' %}
113+
{% endraw %}
114+
RUN rm -f /etc/apt/apt.conf.d/99allow-unauthenticated /etc/apt/apt.conf.d/99allow-insecure-repos
115+
{% raw %}
116+
{% if base_distro == "debian" %}
117+
{% endraw %}
118+
RUN sed -i -e "s|http://{{ nodepool_mirror_host }}|http://deb.debian.org|" \
119+
-e "s|http://{{ nodepool_mirror_host }}|http://security.debian.org|" \
120+
/etc/apt/sources.list
121+
{% raw %}
122+
{% elif base_distro == "ubuntu" %}
123+
{% endraw %}
124+
RUN sed -i -e "s|http://{{ nodepool_mirror_host }}/ubuntu/|mirror://mirrors.ubuntu.com/mirrors.txt|" \
125+
-e "s|http://{{ nodepool_mirror_host }}/ubuntu-cloud-archive|http://ubuntu-cloud.archive.canonical.com/ubuntu|" \
126+
-e "s|http://{{ nodepool_mirror_host }}/ubuntu-ports|http://ports.ubuntu.com|" \
127+
/etc/apt/sources.list
128+
{% raw %}
129+
{% endif %}
130+
{% endif %}
131+
{% endblock %}
82132
{% endraw %}

0 commit comments

Comments
 (0)