This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch v1-10-test
in repository https://gitbox.apache.org/repos/asf/airflow.git

commit f9517a7f565ba32404e82ba8c0fc3ca723b01fb9
Author: Jarek Potiuk <[email protected]>
AuthorDate: Tue Sep 29 11:45:37 2020 +0200

    Optionally tags image when building with Breeze (#11181)
    
    Breeze tags the image based on the default python version,
    branch, type of the image, but you might want to tag the image
    in the same command especially in automated cases of building
    the image via CI scripts or security teams that tag the imge
    based on external factors (build time, person etc.).
    
    This is part of #11171 which makes the image easier to build in
    corporate environments.
    
    (cherry picked from commit c9a34d2ef9ccf6c18b379bbcb81b9381027eb803)
---
 BREEZE.rst                              | 115 +++++++++++++++++---------------
 breeze                                  |  52 +++++++++------
 breeze-complete                         |   2 +-
 scripts/ci/libraries/_build_images.sh   |  10 +++
 scripts/ci/libraries/_initialization.sh |   3 +
 5 files changed, 106 insertions(+), 76 deletions(-)

diff --git a/BREEZE.rst b/BREEZE.rst
index b998a87..9cf824b 100644
--- a/BREEZE.rst
+++ b/BREEZE.rst
@@ -1166,21 +1166,21 @@ This is the current syntax for  `./breeze <./breeze>`_:
 
   Flags:
 
-  -p, --python <PYTHON_MAJOR_MINOR_VERSION>
+  -p, --python PYTHON_MAJOR_MINOR_VERSION
           Python version used for the image. This is always major/minor 
version.
 
           One of:
 
                  2.7 3.5 3.6 3.7 3.8
 
-  -a, --install-airflow-version <INSTALL_AIRFLOW_VERSION>
+  -a, --install-airflow-version INSTALL_AIRFLOW_VERSION
           If specified, installs Airflow directly from PIP released version. 
This happens at
           image building time in production image and at container entering 
time for CI image. One of:
 
                  1.10.12 1.10.11 1.10.10 1.10.9 1.10.8 1.10.7 1.10.6 1.10.5 
1.10.4 1.10.3 1.10.2
                  master v1-10-test
 
-  -t, --install-airflow-reference <INSTALL_AIRFLOW_REFERENCE>
+  -t, --install-airflow-reference INSTALL_AIRFLOW_REFERENCE
           If specified, installs Airflow directly from reference in GitHub. 
This happens at
           image building time in production image and at container entering 
time for CI image.
 
@@ -1197,7 +1197,7 @@ This is the current syntax for  `./breeze <./breeze>`_:
           images are pulled by default only for the first time you run the
           environment, later the locally build images are used as cache.
 
-  -E, --extras
+  -E, --extras EXTRAS
           Extras to pass to build images The default are different for CI and 
production images:
 
           CI image:
@@ -1207,16 +1207,19 @@ This is the current syntax for  `./breeze <./breeze>`_:
                  
async,aws,azure,celery,dask,elasticsearch,gcp,kubernetes,mysql,postgres,redis,slack,
                  ssh,statsd,virtualenv
 
-  --additional-extras
+  --image-tag TAG
+          Additional tag in the image.
+
+  --additional-extras ADDITIONAL_EXTRAS
           Additional extras to pass to build images The default is no 
additional extras.
 
-  --additional-python-deps
+  --additional-python-deps ADDITIONAL_PYTHON_DEPS
           Additional python dependencies to use when building the images.
 
-  --additional-dev-deps
+  --additional-dev-deps ADDITIONAL_DEV_DEPS
           Additional apt dev dependencies to use when building the images.
 
-  --additional-runtime-deps
+  --additional-runtime-deps ADDITIONAL_RUNTIME_DEPS
           Additional apt runtime dependencies to use when building the images.
 
   --disable-pip-cache
@@ -1260,24 +1263,24 @@ This is the current syntax for  `./breeze <./breeze>`_:
           This strategy is used by default for both Production and CI images 
for the scheduled
           (nightly) builds in CI.
 
-  -D, --dockerhub-user
+  -D, --dockerhub-user DOCKERHUB_USER
           DockerHub user used to pull, push and build images. Default: apache.
 
-  -H, --dockerhub-repo
+  -H, --dockerhub-repo DOCKERHUB_REPO
           DockerHub repository used to pull, push, build images. Default: 
airflow.
 
-  -c, --github-registry
+  -c, --github-registry GITHUB_REGISTRY
           If GitHub registry is enabled, pulls and pushes are done from the 
GitHub registry not
           DockerHub. You need to be logged in to the registry in order to be 
able to pull/push from
           and you need to be committer to push to Apache Airflow' GitHub 
registry.
 
-  -g, --github-repository
+  -g, --github-repository GITHUB_REPOSITORY
           GitHub repository used to pull, push images when cache is used.
           Default: apache/airflow.
 
           If you use this flag, automatically --github-registry flag is 
enabled.
 
-  -s, --github-image-id <COMMIT_SHA>|<RUN_ID>
+  -s, --github-image-id COMMIT_SHA|RUN_ID
           <RUN_ID> or <COMMIT_SHA> of the image. Images in GitHub registry are 
stored with those
           to be able to easily find the image for particular CI runs. Once you 
know the
           <RUN_ID> or <COMMIT_SHA>, you can specify it in github-image-id flag 
and Breeze will
@@ -1311,7 +1314,7 @@ This is the current syntax for  `./breeze <./breeze>`_:
 
   Flags:
 
-  -p, --python <PYTHON_MAJOR_MINOR_VERSION>
+  -p, --python PYTHON_MAJOR_MINOR_VERSION
           Python version used for the image. This is always major/minor 
version.
 
           One of:
@@ -1362,7 +1365,7 @@ This is the current syntax for  `./breeze <./breeze>`_:
 
   Flags:
 
-  -p, --python <PYTHON_MAJOR_MINOR_VERSION>
+  -p, --python PYTHON_MAJOR_MINOR_VERSION
           Python version used for the image. This is always major/minor 
version.
 
           One of:
@@ -1413,24 +1416,24 @@ This is the current syntax for  `./breeze <./breeze>`_:
 
   Flags:
 
-  -D, --dockerhub-user
+  -D, --dockerhub-user DOCKERHUB_USER
           DockerHub user used to pull, push and build images. Default: apache.
 
-  -H, --dockerhub-repo
+  -H, --dockerhub-repo DOCKERHUB_REPO
           DockerHub repository used to pull, push, build images. Default: 
airflow.
 
-  -c, --github-registry
+  -c, --github-registry GITHUB_REGISTRY
           If GitHub registry is enabled, pulls and pushes are done from the 
GitHub registry not
           DockerHub. You need to be logged in to the registry in order to be 
able to pull/push from
           and you need to be committer to push to Apache Airflow' GitHub 
registry.
 
-  -g, --github-repository
+  -g, --github-repository GITHUB_REPOSITORY
           GitHub repository used to pull, push images when cache is used.
           Default: apache/airflow.
 
           If you use this flag, automatically --github-registry flag is 
enabled.
 
-  -s, --github-image-id <COMMIT_SHA>|<RUN_ID>
+  -s, --github-image-id COMMIT_SHA|RUN_ID
           <RUN_ID> or <COMMIT_SHA> of the image. Images in GitHub registry are 
stored with those
           to be able to easily find the image for particular CI runs. Once you 
know the
           <RUN_ID> or <COMMIT_SHA>, you can specify it in github-image-id flag 
and Breeze will
@@ -1466,7 +1469,7 @@ This is the current syntax for  `./breeze <./breeze>`_:
 
   Flags:
 
-  -p, --python <PYTHON_MAJOR_MINOR_VERSION>
+  -p, --python PYTHON_MAJOR_MINOR_VERSION
           Python version used for the image. This is always major/minor 
version.
 
           One of:
@@ -1581,14 +1584,14 @@ This is the current syntax for  `./breeze <./breeze>`_:
 
   Flags:
 
-  -p, --python <PYTHON_MAJOR_MINOR_VERSION>
+  -p, --python PYTHON_MAJOR_MINOR_VERSION
           Python version used for the image. This is always major/minor 
version.
 
           One of:
 
                  2.7 3.5 3.6 3.7 3.8
 
-  -b, --backend <BACKEND>
+  -b, --backend BACKEND
           Backend to use for tests - it determines which database is used.
           One of:
 
@@ -1596,12 +1599,12 @@ This is the current syntax for  `./breeze <./breeze>`_:
 
           Default: sqlite
 
-  --postgres-version <POSTGRES_VERSION>
+  --postgres-version POSTGRES_VERSION
           Postgres version used. One of:
 
                  9.6 10
 
-  --mysql-version <MYSQL_VERSION>
+  --mysql-version MYSQL_VERSION
           Mysql version used. One of:
 
                  5.6 5.7
@@ -1634,7 +1637,7 @@ This is the current syntax for  `./breeze <./breeze>`_:
 
   Flags:
 
-  -p, --python <PYTHON_MAJOR_MINOR_VERSION>
+  -p, --python PYTHON_MAJOR_MINOR_VERSION
           Python version used for the image. This is always major/minor 
version.
 
           One of:
@@ -1651,7 +1654,7 @@ This is the current syntax for  `./breeze <./breeze>`_:
           images are pulled by default only for the first time you run the
           environment, later the locally build images are used as cache.
 
-  -E, --extras
+  -E, --extras EXTRAS
           Extras to pass to build images The default are different for CI and 
production images:
 
           CI image:
@@ -1661,16 +1664,19 @@ This is the current syntax for  `./breeze <./breeze>`_:
                  
async,aws,azure,celery,dask,elasticsearch,gcp,kubernetes,mysql,postgres,redis,slack,
                  ssh,statsd,virtualenv
 
-  --additional-extras
+  --image-tag TAG
+          Additional tag in the image.
+
+  --additional-extras ADDITIONAL_EXTRAS
           Additional extras to pass to build images The default is no 
additional extras.
 
-  --additional-python-deps
+  --additional-python-deps ADDITIONAL_PYTHON_DEPS
           Additional python dependencies to use when building the images.
 
-  --additional-dev-deps
+  --additional-dev-deps ADDITIONAL_DEV_DEPS
           Additional apt dev dependencies to use when building the images.
 
-  --additional-runtime-deps
+  --additional-runtime-deps ADDITIONAL_RUNTIME_DEPS
           Additional apt runtime dependencies to use when building the images.
 
   --disable-pip-cache
@@ -1810,7 +1816,7 @@ This is the current syntax for  `./breeze <./breeze>`_:
   
****************************************************************************************************
    Choose Airflow variant
 
-  -p, --python <PYTHON_MAJOR_MINOR_VERSION>
+  -p, --python PYTHON_MAJOR_MINOR_VERSION
           Python version used for the image. This is always major/minor 
version.
 
           One of:
@@ -1820,7 +1826,7 @@ This is the current syntax for  `./breeze <./breeze>`_:
   
****************************************************************************************************
    Choose backend to run for Airflow
 
-  -b, --backend <BACKEND>
+  -b, --backend BACKEND
           Backend to use for tests - it determines which database is used.
           One of:
 
@@ -1828,12 +1834,12 @@ This is the current syntax for  `./breeze <./breeze>`_:
 
           Default: sqlite
 
-  --postgres-version <POSTGRES_VERSION>
+  --postgres-version POSTGRES_VERSION
           Postgres version used. One of:
 
                  9.6 10
 
-  --mysql-version <MYSQL_VERSION>
+  --mysql-version MYSQL_VERSION
           Mysql version used. One of:
 
                  5.6 5.7
@@ -1854,7 +1860,7 @@ This is the current syntax for  `./breeze <./breeze>`_:
           ready to start Airflow webserver/scheduler/worker. Without the 
switch, the database
           does not have any tables and you need to run reset db manually.
 
-  -i, --integration <INTEGRATION>
+  -i, --integration INTEGRATION
           Integration to start during tests - it determines which integrations 
are started
           for integration tests. There can be more than one integration 
started, or all to
           start all integrations. Selected integrations are not saved for 
future execution.
@@ -1865,7 +1871,7 @@ This is the current syntax for  `./breeze <./breeze>`_:
   --rbac-ui
           Enable RBAC UI.
 
-  --init-script <INIT_SCRIPT_FILE>
+  --init-script INIT_SCRIPT_FILE
           Initialization script name - Sourced from 
files/airflow-breeze-config. Default value
           init.sh. It will be executed after the environment is configured and 
started.
 
@@ -1883,7 +1889,7 @@ This is the current syntax for  `./breeze <./breeze>`_:
 
   Configuration for the KinD Kubernetes cluster and tests:
 
-  -K, --kubernetes-mode <KUBERNETES_MODE>
+  -K, --kubernetes-mode KUBERNETES_MODE
           Kubernetes mode - only used in case one of kind-cluster commands is 
used.
           One of:
 
@@ -1891,7 +1897,7 @@ This is the current syntax for  `./breeze <./breeze>`_:
 
           Default: image
 
-  -V, --kubernetes-version <KUBERNETES_VERSION>
+  -V, --kubernetes-version KUBERNETES_VERSION
           Kubernetes version - only used in case one of kind-cluster commands 
is used.
           One of:
 
@@ -1899,7 +1905,7 @@ This is the current syntax for  `./breeze <./breeze>`_:
 
           Default: v1.18.6
 
-  --kind-version <KIND_VERSION>
+  --kind-version KIND_VERSION
           Kind version - only used in case one of kind-cluster commands is 
used.
           One of:
 
@@ -1907,7 +1913,7 @@ This is the current syntax for  `./breeze <./breeze>`_:
 
           Default: v0.8.0
 
-  --helm-version <HELM_VERSION>
+  --helm-version HELM_VERSION
           Helm version - only used in case one of kind-cluster commands is 
used.
           One of:
 
@@ -1937,14 +1943,14 @@ This is the current syntax for  `./breeze <./breeze>`_:
   
****************************************************************************************************
    Choose different Airflow version to install or run
 
-  -a, --install-airflow-version <INSTALL_AIRFLOW_VERSION>
+  -a, --install-airflow-version INSTALL_AIRFLOW_VERSION
           If specified, installs Airflow directly from PIP released version. 
This happens at
           image building time in production image and at container entering 
time for CI image. One of:
 
                  1.10.12 1.10.11 1.10.10 1.10.9 1.10.8 1.10.7 1.10.6 1.10.5 
1.10.4 1.10.3 1.10.2
                  master v1-10-test
 
-  -t, --install-airflow-reference <INSTALL_AIRFLOW_REFERENCE>
+  -t, --install-airflow-reference INSTALL_AIRFLOW_REFERENCE
           If specified, installs Airflow directly from reference in GitHub. 
This happens at
           image building time in production image and at container entering 
time for CI image.
 
@@ -1968,7 +1974,7 @@ This is the current syntax for  `./breeze <./breeze>`_:
           images are pulled by default only for the first time you run the
           environment, later the locally build images are used as cache.
 
-  -E, --extras
+  -E, --extras EXTRAS
           Extras to pass to build images The default are different for CI and 
production images:
 
           CI image:
@@ -1978,16 +1984,19 @@ This is the current syntax for  `./breeze <./breeze>`_:
                  
async,aws,azure,celery,dask,elasticsearch,gcp,kubernetes,mysql,postgres,redis,slack,
                  ssh,statsd,virtualenv
 
-  --additional-extras
+  --image-tag TAG
+          Additional tag in the image.
+
+  --additional-extras ADDITIONAL_EXTRAS
           Additional extras to pass to build images The default is no 
additional extras.
 
-  --additional-python-deps
+  --additional-python-deps ADDITIONAL_PYTHON_DEPS
           Additional python dependencies to use when building the images.
 
-  --additional-dev-deps
+  --additional-dev-deps ADDITIONAL_DEV_DEPS
           Additional apt dev dependencies to use when building the images.
 
-  --additional-runtime-deps
+  --additional-runtime-deps ADDITIONAL_RUNTIME_DEPS
           Additional apt runtime dependencies to use when building the images.
 
   --disable-pip-cache
@@ -2034,24 +2043,24 @@ This is the current syntax for  `./breeze <./breeze>`_:
   
****************************************************************************************************
    Flags for pulling/pushing Docker images (both CI and production)
 
-  -D, --dockerhub-user
+  -D, --dockerhub-user DOCKERHUB_USER
           DockerHub user used to pull, push and build images. Default: apache.
 
-  -H, --dockerhub-repo
+  -H, --dockerhub-repo DOCKERHUB_REPO
           DockerHub repository used to pull, push, build images. Default: 
airflow.
 
-  -c, --github-registry
+  -c, --github-registry GITHUB_REGISTRY
           If GitHub registry is enabled, pulls and pushes are done from the 
GitHub registry not
           DockerHub. You need to be logged in to the registry in order to be 
able to pull/push from
           and you need to be committer to push to Apache Airflow' GitHub 
registry.
 
-  -g, --github-repository
+  -g, --github-repository GITHUB_REPOSITORY
           GitHub repository used to pull, push images when cache is used.
           Default: apache/airflow.
 
           If you use this flag, automatically --github-registry flag is 
enabled.
 
-  -s, --github-image-id <COMMIT_SHA>|<RUN_ID>
+  -s, --github-image-id COMMIT_SHA|RUN_ID
           <RUN_ID> or <COMMIT_SHA> of the image. Images in GitHub registry are 
stored with those
           to be able to easily find the image for particular CI runs. Once you 
know the
           <RUN_ID> or <COMMIT_SHA>, you can specify it in github-image-id flag 
and Breeze will
diff --git a/breeze b/breeze
index 3b802d4..af62f0a 100755
--- a/breeze
+++ b/breeze
@@ -965,6 +965,11 @@ function breeze::parse_arguments() {
             echo "Install MySQL client: ${INSTALL_MYSQL_CLIENT}"
             shift
             ;;
+        --image-tag)
+            export IMAGE_TAG="${2}"
+            echo "Tag to add to the image: ${IMAGE_TAG}"
+            shift 2
+            ;;
         -D | --dockerhub-user)
             export DOCKERHUB_USER="${2}"
             echo "Dockerhub user ${DOCKERHUB_USER}"
@@ -1838,7 +1843,7 @@ Run '${CMDNAME} flags' to see all applicable flags.
 
#######################################################################################################
 function breeze::flag_airflow_variants() {
     echo "
--p, --python <PYTHON_MAJOR_MINOR_VERSION>
+-p, --python PYTHON_MAJOR_MINOR_VERSION
         Python version used for the image. This is always major/minor version.
 
         One of:
@@ -1861,7 +1866,7 @@ ${FORMATTED_PYTHON_MAJOR_MINOR_VERSIONS}
 
#######################################################################################################
 function breeze::flag_backend_variants() {
     echo "
--b, --backend <BACKEND>
+-b, --backend BACKEND
         Backend to use for tests - it determines which database is used.
         One of:
 
@@ -1869,12 +1874,12 @@ ${FORMATTED_BACKENDS}
 
         Default: ${_breeze_default_backend:=}
 
---postgres-version <POSTGRES_VERSION>
+--postgres-version POSTGRES_VERSION
         Postgres version used. One of:
 
 ${FORMATTED_POSTGRES_VERSIONS}
 
---mysql-version <MYSQL_VERSION>
+--mysql-version MYSQL_VERSION
         Mysql version used. One of:
 
 ${FORMATTED_MYSQL_VERSIONS}
@@ -1915,7 +1920,7 @@ function breeze::flag_breeze_actions() {
         ready to start Airflow webserver/scheduler/worker. Without the switch, 
the database
         does not have any tables and you need to run reset db manually.
 
--i, --integration <INTEGRATION>
+-i, --integration INTEGRATION
         Integration to start during tests - it determines which integrations 
are started
         for integration tests. There can be more than one integration started, 
or all to
         start all integrations. Selected integrations are not saved for future 
execution.
@@ -1926,7 +1931,7 @@ ${FORMATTED_INTEGRATIONS}
 --rbac-ui
         Enable RBAC UI.
 
---init-script <INIT_SCRIPT_FILE>
+--init-script INIT_SCRIPT_FILE
         Initialization script name - Sourced from files/airflow-breeze-config. 
Default value
         init.sh. It will be executed after the environment is configured and 
started.
 
@@ -1951,7 +1956,7 @@ function breeze::flag_kubernetes_configuration() {
     echo "
 Configuration for the KinD Kubernetes cluster and tests:
 
--K, --kubernetes-mode <KUBERNETES_MODE>
+-K, --kubernetes-mode KUBERNETES_MODE
         Kubernetes mode - only used in case one of kind-cluster commands is 
used.
         One of:
 
@@ -1959,7 +1964,7 @@ ${FORMATTED_KUBERNETES_MODES}
 
         Default: ${_breeze_default_kubernetes_mode:=}
 
--V, --kubernetes-version <KUBERNETES_VERSION>
+-V, --kubernetes-version KUBERNETES_VERSION
         Kubernetes version - only used in case one of kind-cluster commands is 
used.
         One of:
 
@@ -1967,7 +1972,7 @@ ${FORMATTED_KUBERNETES_VERSIONS}
 
         Default: ${_breeze_default_kubernetes_version:=}
 
---kind-version <KIND_VERSION>
+--kind-version KIND_VERSION
         Kind version - only used in case one of kind-cluster commands is used.
         One of:
 
@@ -1975,7 +1980,7 @@ ${FORMATTED_KIND_VERSIONS}
 
         Default: ${_breeze_default_kind_version:=}
 
---helm-version <HELM_VERSION>
+--helm-version HELM_VERSION
         Helm version - only used in case one of kind-cluster commands is used.
         One of:
 
@@ -2014,13 +2019,13 @@ function breeze::flag_local_file_mounting() {
 
#######################################################################################################
 function breeze::flag_choose_different_airflow_version() {
     echo "
--a, --install-airflow-version <INSTALL_AIRFLOW_VERSION>
+-a, --install-airflow-version INSTALL_AIRFLOW_VERSION
         If specified, installs Airflow directly from PIP released version. 
This happens at
         image building time in production image and at container entering time 
for CI image. One of:
 
 ${FORMATTED_INSTALL_AIRFLOW_VERSIONS}
 
--t, --install-airflow-reference <INSTALL_AIRFLOW_REFERENCE>
+-t, --install-airflow-reference INSTALL_AIRFLOW_REFERENCE
         If specified, installs Airflow directly from reference in GitHub. This 
happens at
         image building time in production image and at container entering time 
for CI image.
 "
@@ -2117,7 +2122,7 @@ function breeze::flag_build_docker_images() {
         images are pulled by default only for the first time you run the
         environment, later the locally build images are used as cache.
 
--E, --extras
+-E, --extras EXTRAS
         Extras to pass to build images The default are different for CI and 
production images:
 
         CI image:
@@ -2126,16 +2131,19 @@ ${FORMATTED_DEFAULT_CI_EXTRAS}
         Production image:
 ${FORMATTED_DEFAULT_PROD_EXTRAS}
 
---additional-extras
+--image-tag TAG
+        Additional tag in the image.
+
+--additional-extras ADDITIONAL_EXTRAS
         Additional extras to pass to build images The default is no additional 
extras.
 
---additional-python-deps
+--additional-python-deps ADDITIONAL_PYTHON_DEPS
         Additional python dependencies to use when building the images.
 
---additional-dev-deps
+--additional-dev-deps ADDITIONAL_DEV_DEPS
         Additional apt dev dependencies to use when building the images.
 
---additional-runtime-deps
+--additional-runtime-deps ADDITIONAL_RUNTIME_DEPS
         Additional apt runtime dependencies to use when building the images.
 
 --disable-pip-cache
@@ -2197,24 +2205,24 @@ ${FORMATTED_DEFAULT_PROD_EXTRAS}
 
#######################################################################################################
 function breeze::flag_pull_push_docker_images() {
     echo "
--D, --dockerhub-user
+-D, --dockerhub-user DOCKERHUB_USER
         DockerHub user used to pull, push and build images. Default: 
${_breeze_default_dockerhub_user:=}.
 
--H, --dockerhub-repo
+-H, --dockerhub-repo DOCKERHUB_REPO
         DockerHub repository used to pull, push, build images. Default: 
${_breeze_default_dockerhub_repo:=}.
 
--c, --github-registry
+-c, --github-registry GITHUB_REGISTRY
         If GitHub registry is enabled, pulls and pushes are done from the 
GitHub registry not
         DockerHub. You need to be logged in to the registry in order to be 
able to pull/push from
         and you need to be committer to push to Apache Airflow' GitHub 
registry.
 
--g, --github-repository
+-g, --github-repository GITHUB_REPOSITORY
         GitHub repository used to pull, push images when cache is used.
         Default: ${_breeze_default_github_repository:=}.
 
         If you use this flag, automatically --github-registry flag is enabled.
 
--s, --github-image-id <COMMIT_SHA>|<RUN_ID>
+-s, --github-image-id COMMIT_SHA|RUN_ID
         <RUN_ID> or <COMMIT_SHA> of the image. Images in GitHub registry are 
stored with those
         to be able to easily find the image for particular CI runs. Once you 
know the
         <RUN_ID> or <COMMIT_SHA>, you can specify it in github-image-id flag 
and Breeze will
diff --git a/breeze-complete b/breeze-complete
index 5a09334..7ac46c8 100644
--- a/breeze-complete
+++ b/breeze-complete
@@ -134,7 +134,7 @@ force-build-images force-pull-images production-image 
extras: force-clean-images
 build-cache-local build-cache-pulled build-cache-disabled disable-pip-cache
 dockerhub-user: dockerhub-repo: github-registry github-repository: 
github-image-id:
 postgres-version: mysql-version:
-additional-extras: additional-python-deps: additional-dev-deps: 
additional-runtime-deps:
+additional-extras: additional-python-deps: additional-dev-deps: 
additional-runtime-deps: image-tag:
 disable-mysql-client-installation
 load-default-connections load-example-dags
 "
diff --git a/scripts/ci/libraries/_build_images.sh 
b/scripts/ci/libraries/_build_images.sh
index 76abff1..a80616d 100644
--- a/scripts/ci/libraries/_build_images.sh
+++ b/scripts/ci/libraries/_build_images.sh
@@ -570,8 +570,13 @@ Docker building ${AIRFLOW_CI_IMAGE}.
         . -f Dockerfile.ci
     set -u
     if [[ -n "${DEFAULT_CI_IMAGE=}" ]]; then
+        echo "Tagging additionally image ${AIRFLOW_CI_IMAGE} with 
${DEFAULT_CI_IMAGE}"
         docker tag "${AIRFLOW_CI_IMAGE}" "${DEFAULT_CI_IMAGE}"
     fi
+    if [[ -n "${IMAGE_TAG:=}" ]]; then
+        echo "Tagging additionally image ${AIRFLOW_CI_IMAGE} with ${IMAGE_TAG}"
+        docker tag "${AIRFLOW_CI_IMAGE}" "${IMAGE_TAG}"
+    fi
     if [[ -n ${SPIN_PID=} ]]; then
         kill -HUP "${SPIN_PID}" || true
         wait "${SPIN_PID}" || true
@@ -718,8 +723,13 @@ function build_images::build_prod_images() {
         . -f Dockerfile
     set -u
     if [[ -n "${DEFAULT_PROD_IMAGE:=}" ]]; then
+        echo "Tagging additionally image ${AIRFLOW_PROD_IMAGE} with 
${DEFAULT_PROD_IMAGE}"
         docker tag "${AIRFLOW_PROD_IMAGE}" "${DEFAULT_PROD_IMAGE}"
     fi
+    if [[ -n "${IMAGE_TAG:=}" ]]; then
+        echo "Tagging additionally image ${AIRFLOW_PROD_IMAGE} with 
${IMAGE_TAG}"
+        docker tag "${AIRFLOW_PROD_IMAGE}" "${IMAGE_TAG}"
+    fi
 }
 
 # Waits for image tag to appear in GitHub Registry, pulls it and tags with the 
target tag
diff --git a/scripts/ci/libraries/_initialization.sh 
b/scripts/ci/libraries/_initialization.sh
index 7155d29..eb56560 100644
--- a/scripts/ci/libraries/_initialization.sh
+++ b/scripts/ci/libraries/_initialization.sh
@@ -325,6 +325,8 @@ function initialization::initialize_image_build_variables() 
{
     export 
AIRFLOW_PRE_CACHED_PIP_PACKAGES="${AIRFLOW_PRE_CACHED_PIP_PACKAGES:="true"}"
     # by default install mysql client
     export INSTALL_MYSQL_CLIENT=${INSTALL_MYSQL_CLIENT:="true"}
+    # additional tag for the image
+    export IMAGE_TAG=${IMAGE_TAG:=""}
 }
 
 # Determine version suffixes used to build backport packages
@@ -644,6 +646,7 @@ function initialization::make_constants_read_only() {
     readonly ADDITIONAL_DEV_DEPS
     readonly ADDITIONAL_RUNTIME_DEPS
     readonly AIRFLOW_PRE_CACHED_PIP_PACKAGES
+    readonly IMAGE_TAG
 
     readonly DOCKERHUB_USER
     readonly DOCKERHUB_REPO

Reply via email to