From 4ad010a5a60811135b43b9ac9d16c8cf01d781dc Mon Sep 17 00:00:00 2001
From: Mark Goddard <mark@stackhpc.com>
Date: Wed, 21 Apr 2021 12:00:52 +0100
Subject: [PATCH] CI: switch to quay.io for container images

Based on the discussions from recent Kolla meetings [1][2][3],
we established that, to avoid the DockerHub pull limit issues
in our CI, we will try using quay.io.

The images have already been published via Kolla CI
for master/Wallaby [4] and Victoria [5].

This change applies only to CI.
The user-facing move is yet to be discussed.

[1] http://eavesdrop.openstack.org/meetings/kolla/2021/kolla.2021-03-17-15.00.log.html#l-102
[2] http://eavesdrop.openstack.org/meetings/kolla/2021/kolla.2021-03-24-15.00.log.html#l-137
[3] http://eavesdrop.openstack.org/meetings/kolla/2021/kolla.2021-03-31-15.01.log.html#l-50
[4] https://review.opendev.org/c/openstack/kolla/+/781130
[5] https://review.opendev.org/c/openstack/kolla/+/781899

See related Kolla Ansible change
I22e11a994801447526ac26fc2815a1679876225e

Change-Id: Id6690dc9a486af0ed7d42555d84cf77d6de0b6af
---
 playbooks/kayobe-overcloud-base/globals.yml.j2   |  4 ++++
 playbooks/kayobe-overcloud-base/overrides.yml.j2 |  3 +++
 playbooks/kayobe-overcloud-base/pre.yml          |  1 -
 .../kayobe-overcloud-upgrade-base/globals.yml.j2 | 16 ++++++++++++++++
 .../overrides.yml.j2                             |  3 +++
 playbooks/kayobe-overcloud-upgrade-base/pre.yml  |  5 +++++
 playbooks/kayobe-overcloud-upgrade-base/run.yml  |  5 +++++
 playbooks/kayobe-seed-base/globals.yml.j2        |  3 +++
 playbooks/kayobe-seed-base/overrides.yml.j2      |  3 +++
 playbooks/kayobe-seed-base/pre.yml               |  5 +++++
 .../kayobe-seed-upgrade-base/globals.yml.j2      |  3 +++
 .../kayobe-seed-upgrade-base/overrides.yml.j2    |  3 +++
 playbooks/kayobe-seed-upgrade-base/pre.yml       |  5 +++++
 playbooks/kayobe-seed-upgrade-base/run.yml       |  5 +++++
 14 files changed, 63 insertions(+), 1 deletion(-)
 create mode 100644 playbooks/kayobe-overcloud-upgrade-base/globals.yml.j2
 create mode 100644 playbooks/kayobe-seed-base/globals.yml.j2
 create mode 100644 playbooks/kayobe-seed-upgrade-base/globals.yml.j2

diff --git a/playbooks/kayobe-overcloud-base/globals.yml.j2 b/playbooks/kayobe-overcloud-base/globals.yml.j2
index e0903653..deacd817 100644
--- a/playbooks/kayobe-overcloud-base/globals.yml.j2
+++ b/playbooks/kayobe-overcloud-base/globals.yml.j2
@@ -1,4 +1,7 @@
 ---
+# Use HTTPS opendev quay.io registry proxy.
+docker_registry_insecure: no
+
 # Most development environments will use nested virtualisation, and we can't
 # guarantee that nested KVM support is available. Use QEMU as a lowest common
 # denominator.
@@ -7,6 +10,7 @@ nova_compute_virt_type: qemu
 # Reduce the control plane's memory footprint by limiting the number of worker
 # processes to one per-service.
 openstack_service_workers: "1"
+openstack_service_rpc_workers: "1"
 
 {% if tls_enabled %}
 # TLS
diff --git a/playbooks/kayobe-overcloud-base/overrides.yml.j2 b/playbooks/kayobe-overcloud-base/overrides.yml.j2
index 700370b7..e617dc2c 100644
--- a/playbooks/kayobe-overcloud-base/overrides.yml.j2
+++ b/playbooks/kayobe-overcloud-base/overrides.yml.j2
@@ -15,6 +15,9 @@ docker_registry_mirrors:
 
 kolla_base_distro: "{{ ansible_distribution | lower }}"
 kolla_install_type: "{{ 'source' if ansible_distribution == 'Ubuntu' else 'binary' }}"
+kolla_docker_namespace: "openstack.kolla"
+# use the published images from a site mirror of quay.io
+kolla_docker_registry: "{{ zuul_site_mirror_fqdn }}:4447"
 kolla_source_url: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/openstack/kolla'].src_dir }}"
 kolla_source_version: "{{ zuul.projects['opendev.org/openstack/kolla'].checkout }}"
 kolla_ansible_source_url: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/openstack/kolla-ansible'].src_dir }}"
diff --git a/playbooks/kayobe-overcloud-base/pre.yml b/playbooks/kayobe-overcloud-base/pre.yml
index 2a2276eb..2694c758 100644
--- a/playbooks/kayobe-overcloud-base/pre.yml
+++ b/playbooks/kayobe-overcloud-base/pre.yml
@@ -24,7 +24,6 @@
       template:
         src: globals.yml.j2
         dest: "{{ kayobe_config_src_dir }}/etc/kayobe/kolla/globals.yml"
-      when: tls_enabled
 
     - name: Ensure kayobe is installed
       shell:
diff --git a/playbooks/kayobe-overcloud-upgrade-base/globals.yml.j2 b/playbooks/kayobe-overcloud-upgrade-base/globals.yml.j2
new file mode 100644
index 00000000..8a00c306
--- /dev/null
+++ b/playbooks/kayobe-overcloud-upgrade-base/globals.yml.j2
@@ -0,0 +1,16 @@
+---
+# Use HTTPS opendev quay.io registry proxy.
+docker_registry_insecure: no
+
+# Most development environments will use nested virtualisation, and we can't
+# guarantee that nested KVM support is available. Use QEMU as a lowest common
+# denominator.
+nova_compute_virt_type: qemu
+
+# Reduce the control plane's memory footprint by limiting the number of worker
+# processes to one per-service.
+openstack_service_workers: "1"
+openstack_service_rpc_workers: "1"
+
+# TODO(priteau): Remove me once binary images with wallaby packages are available
+nova_install_type: "source"
diff --git a/playbooks/kayobe-overcloud-upgrade-base/overrides.yml.j2 b/playbooks/kayobe-overcloud-upgrade-base/overrides.yml.j2
index 40e43cb1..9d4d3266 100644
--- a/playbooks/kayobe-overcloud-upgrade-base/overrides.yml.j2
+++ b/playbooks/kayobe-overcloud-upgrade-base/overrides.yml.j2
@@ -7,6 +7,9 @@ disable_selinux_do_reboot: false
 docker_registry_mirrors:
   - "http://{{ zuul_site_mirror_fqdn }}:8082/"
 
+kolla_docker_namespace: "openstack.kolla"
+# use the published images from a site mirror of quay.io
+kolla_docker_registry: "{{ zuul_site_mirror_fqdn }}:4447"
 {% if not is_previous_release | default(false) %}
 kolla_source_url: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/openstack/kolla'].src_dir }}"
 kolla_source_version: "{{ zuul.projects['opendev.org/openstack/kolla'].checkout }}"
diff --git a/playbooks/kayobe-overcloud-upgrade-base/pre.yml b/playbooks/kayobe-overcloud-upgrade-base/pre.yml
index 021eaa4a..c04afe67 100644
--- a/playbooks/kayobe-overcloud-upgrade-base/pre.yml
+++ b/playbooks/kayobe-overcloud-upgrade-base/pre.yml
@@ -19,3 +19,8 @@
         dest: "{{ previous_kayobe_config_src_dir }}/etc/kayobe/zz-overrides.yml"
       vars:
         is_previous_release: true
+
+    - name: Ensure kolla-ansible globals.yml override config file exists
+      template:
+        src: globals.yml.j2
+        dest: "{{ previous_kayobe_config_src_dir }}/etc/kayobe/kolla/globals.yml"
diff --git a/playbooks/kayobe-overcloud-upgrade-base/run.yml b/playbooks/kayobe-overcloud-upgrade-base/run.yml
index 701d3526..eed568aa 100644
--- a/playbooks/kayobe-overcloud-upgrade-base/run.yml
+++ b/playbooks/kayobe-overcloud-upgrade-base/run.yml
@@ -50,6 +50,11 @@
         src: overrides.yml.j2
         dest: "{{ kayobe_config_src_dir }}/etc/kayobe/zz-overrides.yml"
 
+    - name: Ensure kolla-ansible globals.yml override config file exists
+      template:
+        src: globals.yml.j2
+        dest: "{{ kayobe_config_src_dir }}/etc/kayobe/kolla/globals.yml"
+
     # Perform a smoke test against the previous release.
 
     - block:
diff --git a/playbooks/kayobe-seed-base/globals.yml.j2 b/playbooks/kayobe-seed-base/globals.yml.j2
new file mode 100644
index 00000000..82a51b60
--- /dev/null
+++ b/playbooks/kayobe-seed-base/globals.yml.j2
@@ -0,0 +1,3 @@
+---
+# Use HTTPS opendev quay.io registry proxy.
+docker_registry_insecure: no
diff --git a/playbooks/kayobe-seed-base/overrides.yml.j2 b/playbooks/kayobe-seed-base/overrides.yml.j2
index 3103c2a3..4d0420f2 100644
--- a/playbooks/kayobe-seed-base/overrides.yml.j2
+++ b/playbooks/kayobe-seed-base/overrides.yml.j2
@@ -7,6 +7,9 @@ disable_selinux_do_reboot: false
 docker_registry_mirrors:
   - "http://{{ zuul_site_mirror_fqdn }}:8082/"
 
+kolla_docker_namespace: "openstack.kolla"
+# use the published images from a site mirror of quay.io
+kolla_docker_registry: "{{ zuul_site_mirror_fqdn }}:4447"
 kolla_source_url: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/openstack/kolla'].src_dir }}"
 kolla_source_version: "{{ zuul.projects['opendev.org/openstack/kolla'].checkout }}"
 kolla_ansible_source_url: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/openstack/kolla-ansible'].src_dir }}"
diff --git a/playbooks/kayobe-seed-base/pre.yml b/playbooks/kayobe-seed-base/pre.yml
index 08e2e628..8062ff5a 100644
--- a/playbooks/kayobe-seed-base/pre.yml
+++ b/playbooks/kayobe-seed-base/pre.yml
@@ -20,6 +20,11 @@
         src: overrides.yml.j2
         dest: "{{ kayobe_config_src_dir }}/etc/kayobe/zz-overrides.yml"
 
+    - name: Ensure kolla-ansible globals.yml override config file exists
+      template:
+        src: globals.yml.j2
+        dest: "{{ kayobe_config_src_dir }}/etc/kayobe/kolla/globals.yml"
+
     - name: Ensure bifrost overrides directory exists
       file:
         path: "{{ kayobe_config_src_dir }}/etc/kayobe/kolla/config/bifrost"
diff --git a/playbooks/kayobe-seed-upgrade-base/globals.yml.j2 b/playbooks/kayobe-seed-upgrade-base/globals.yml.j2
new file mode 100644
index 00000000..82a51b60
--- /dev/null
+++ b/playbooks/kayobe-seed-upgrade-base/globals.yml.j2
@@ -0,0 +1,3 @@
+---
+# Use HTTPS opendev quay.io registry proxy.
+docker_registry_insecure: no
diff --git a/playbooks/kayobe-seed-upgrade-base/overrides.yml.j2 b/playbooks/kayobe-seed-upgrade-base/overrides.yml.j2
index 8cd2d737..750a32a7 100644
--- a/playbooks/kayobe-seed-upgrade-base/overrides.yml.j2
+++ b/playbooks/kayobe-seed-upgrade-base/overrides.yml.j2
@@ -7,6 +7,9 @@ disable_selinux_do_reboot: false
 docker_registry_mirrors:
   - "http://{{ zuul_site_mirror_fqdn }}:8082/"
 
+kolla_docker_namespace: "openstack.kolla"
+# use the published images from a site mirror of quay.io
+kolla_docker_registry: "{{ zuul_site_mirror_fqdn }}:4447"
 {% if not is_previous_release | default(false) %}
 kolla_source_url: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/openstack/kolla'].src_dir }}"
 kolla_source_version: "{{ zuul.projects['opendev.org/openstack/kolla'].checkout }}"
diff --git a/playbooks/kayobe-seed-upgrade-base/pre.yml b/playbooks/kayobe-seed-upgrade-base/pre.yml
index 3987a024..43f1af60 100644
--- a/playbooks/kayobe-seed-upgrade-base/pre.yml
+++ b/playbooks/kayobe-seed-upgrade-base/pre.yml
@@ -20,6 +20,11 @@
       vars:
         is_previous_release: true
 
+    - name: Ensure kolla-ansible globals.yml override config file exists
+      template:
+        src: globals.yml.j2
+        dest: "{{ previous_kayobe_config_src_dir }}/etc/kayobe/kolla/globals.yml"
+
     - name: Ensure bifrost overrides directory exists
       file:
         path: "{{ previous_kayobe_config_src_dir }}/etc/kayobe/kolla/config/bifrost"
diff --git a/playbooks/kayobe-seed-upgrade-base/run.yml b/playbooks/kayobe-seed-upgrade-base/run.yml
index a2ce9f90..59696cfc 100644
--- a/playbooks/kayobe-seed-upgrade-base/run.yml
+++ b/playbooks/kayobe-seed-upgrade-base/run.yml
@@ -43,6 +43,11 @@
         src: overrides.yml.j2
         dest: "{{ kayobe_config_src_dir }}/etc/kayobe/zz-overrides.yml"
 
+    - name: Ensure kolla-ansible globals.yml override config file exists
+      template:
+        src: globals.yml.j2
+        dest: "{{ kayobe_config_src_dir }}/etc/kayobe/kolla/globals.yml"
+
     # TODO(mgoddard): Perform a smoke test against the previous release.
 
     - block:
-- 
GitLab