From 0d9477de3899886165eae2b3a06ef316bebf59d8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rados=C5=82aw=20Piliszek?= <radoslaw.piliszek@gmail.com>
Date: Fri, 10 Sep 2021 18:30:25 +0000
Subject: [PATCH] Switch default images source to quay.io

Docs adapted to match.
Removed the unsupported-for-quay option to set up
a pull-through cache.

Closes-Bug: #1942134
Change-Id: If5a26b1ba4bf35bc29306c24f608396dbf5e3371
---
 ansible/group_vars/all.yml                    |  4 +-
 .../bootstrap-servers.rst                     |  4 +-
 .../logging-and-monitoring/monasca-guide.rst  |  2 +-
 doc/source/user/multinode.rst                 | 53 +++----------------
 doc/source/user/quickstart.rst                |  3 +-
 doc/source/user/troubleshooting.rst           | 16 ------
 ...witch-images-to-quay-d4640afca6862eee.yaml | 11 ++++
 7 files changed, 25 insertions(+), 68 deletions(-)
 create mode 100644 releasenotes/notes/switch-images-to-quay-d4640afca6862eee.yaml

diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml
index a90aeb89c9..b45c22c59d 100644
--- a/ansible/group_vars/all.yml
+++ b/ansible/group_vars/all.yml
@@ -109,8 +109,8 @@ database_max_pool_size: 1
 # Docker options
 ####################
 docker_registry_email:
-docker_registry:
-docker_namespace: "kolla"
+docker_registry: "quay.io"
+docker_namespace: "openstack.kolla"
 docker_registry_username:
 # Please read the docs carefully before applying docker_registry_insecure.
 docker_registry_insecure: "no"
diff --git a/doc/source/reference/deployment-and-bootstrapping/bootstrap-servers.rst b/doc/source/reference/deployment-and-bootstrapping/bootstrap-servers.rst
index f7e8f9fd28..8c1ee6da44 100644
--- a/doc/source/reference/deployment-and-bootstrapping/bootstrap-servers.rst
+++ b/doc/source/reference/deployment-and-bootstrapping/bootstrap-servers.rst
@@ -165,8 +165,8 @@ The ``docker_runtime_directory`` variable is optional. If set, it defines the
 runtime (``data-root``) directory for Docker.
 
 The ``docker_registry`` variable, which is not set by default, defines the
-address of the Docker registry. If the variable is not set, Dockerhub will be
-used.
+address of the Docker registry. If the variable is not set,
+`Quay.io <https://quay.io/organization/openstack.kolla>`__ will be used.
 
 The ``docker_registry_insecure`` variable, which defaults to ``false``,
 defines whether to configure ``docker_registry`` as an insecure registry.
diff --git a/doc/source/reference/logging-and-monitoring/monasca-guide.rst b/doc/source/reference/logging-and-monitoring/monasca-guide.rst
index 937138950d..2c04f7bdb0 100644
--- a/doc/source/reference/logging-and-monitoring/monasca-guide.rst
+++ b/doc/source/reference/logging-and-monitoring/monasca-guide.rst
@@ -160,7 +160,7 @@ Building images
 
 To build any custom images required by Monasca see the instructions in the
 Kolla repo: `kolla/doc/source/admin/template-override/monasca.rst`. The
-remaining images may be pulled from Docker Hub, but if you need to build
+remaining images may be pulled from a public registry, but if you need to build
 them manually you can use the following commands:
 
 .. code-block:: console
diff --git a/doc/source/user/multinode.rst b/doc/source/user/multinode.rst
index 78121ed219..4fa43022d7 100644
--- a/doc/source/user/multinode.rst
+++ b/doc/source/user/multinode.rst
@@ -9,23 +9,13 @@ Multinode Deployment of Kolla
 Deploy a registry
 =================
 
-A Docker registry is a locally hosted registry that replaces the need to pull
-from the Docker Hub to get images. Kolla can function with or without a local
-registry, however for a multinode deployment some type of registry is
-mandatory.  Only one registry must be deployed, although HA features exist for
-registry services.
+A Docker registry is a locally-hosted registry that replaces the need to pull
+from a public registry to get images. Kolla can function with or without
+a local registry, however for a multinode deployment some type of local
+registry is recommended. Only one registry instance needs to be deployed,
+although HA features exist for registry services.
 
-The Docker registry prior to version 2.3 has extremely bad performance because
-all container data is pushed for every image rather than taking advantage of
-Docker layering to optimize push operations. For more information reference
-`pokey registry <https://github.com/docker/docker/issues/14018>`__.  The Kolla
-community recommends using registry 2.3 or later.
-
-The registry may be configured either as a local registry with support for
-storing images, or as a pull-through cache for Docker hub.
-
-Option 1: local registry
-------------------------
+A very simple registry may be deployed on the current host as follows:
 
 .. code-block:: console
 
@@ -46,36 +36,7 @@ IP address and port on which the registry is listening:
 .. code-block:: yaml
 
    docker_registry: 192.168.1.100:4000
-
-Option 2: registry mirror
--------------------------
-
-The Docker registry can be configured as a pull through cache to proxy the
-official Kolla images hosted in Docker Hub. In order to configure the local
-registry as a pull through cache, pass the environment variable
-``REGISTRY_PROXY_REMOTEURL`` through to the registry container.  Pushing to a
-registry configured as a pull-through cache is unsupported.  For more
-information, Reference the `Docker Documentation
-<https://docs.docker.com/registry/configuration/>`__.
-
-.. code-block:: console
-
-   docker run -d \
-    --name registry \
-    --restart=always \
-    -p 4000:5000 \
-    -v registry:/var/lib/registry \
-    -e REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io \
-    registry:2
-
-Edit ``globals.yml`` and add the following, where ``192.168.1.100:4000`` is the
-IP address and port on which the registry is listening:
-
-.. code-block:: yaml
-
-   docker_custom_config:
-     registry-mirrors:
-       - http://192.168.1.100:4000
+   docker_registry_insecure: yes
 
 .. _edit-inventory:
 
diff --git a/doc/source/user/quickstart.rst b/doc/source/user/quickstart.rst
index 0a954bc418..cb13560bf2 100644
--- a/doc/source/user/quickstart.rst
+++ b/doc/source/user/quickstart.rst
@@ -357,7 +357,8 @@ There are a few options that are required to deploy Kolla Ansible:
 * Image options
 
   User has to specify images that are going to be used for our deployment.
-  In this guide `DockerHub <https://hub.docker.com/u/kolla/>`__ provided
+  In this guide
+  `Quay.io <https://quay.io/organization/openstack.kolla>`__-provided,
   pre-built images are going to be used. To learn more about building
   mechanism, please refer :kolla-doc:`Building Container Images
   <admin/image-building.html>`.
diff --git a/doc/source/user/troubleshooting.rst b/doc/source/user/troubleshooting.rst
index 013b735f93..d00a94ca74 100644
--- a/doc/source/user/troubleshooting.rst
+++ b/doc/source/user/troubleshooting.rst
@@ -10,22 +10,6 @@ Failures
 If Kolla fails, often it is caused by a CTRL-C during the deployment
 process or a problem in the ``globals.yml`` configuration.
 
-.. note::
-
-   In some countries like China, Kolla might fail due to unable to pull images
-   from `Docker Hub <https://hub.docker.com/u/kolla/>`__. There is a workround
-   to solve this issue:
-
-   .. code-block:: console
-
-      mkdir -p /etc/docker
-      tee /etc/docker/daemon.json <<-'EOF'
-      {
-        "registry-mirrors": ["https://registry.docker-cn.com"]
-      }
-      EOF
-      systemctl restart docker
-
 To correct the problem where Operators have a misconfigured environment,
 the Kolla community has added a precheck feature which ensures the
 deployment targets are in a state where Kolla may deploy to them. To
diff --git a/releasenotes/notes/switch-images-to-quay-d4640afca6862eee.yaml b/releasenotes/notes/switch-images-to-quay-d4640afca6862eee.yaml
new file mode 100644
index 0000000000..968bf8e4d7
--- /dev/null
+++ b/releasenotes/notes/switch-images-to-quay-d4640afca6862eee.yaml
@@ -0,0 +1,11 @@
+---
+upgrade:
+  - |
+    Switches default images source (``docker_registry``) to ``quay.io``.
+    The ``docker_namespace`` is also changed to ``openstack.kolla`` to match.
+    This is to make the default experience better, especially for users in
+    China, those deploying more than once and/or beyond the all-in-one (AIO)
+    environment used for development, testing and evaluation.
+    Do note for multinode and production deployments it is still recommended
+    to use a local registry as docs suggest.
+    `LP#1942134 <https://launchpad.net/bugs/1942134>`__