You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by po...@apache.org on 2020/10/03 19:48:22 UTC
[airflow] 09/14: Optionally tags image when building with Breeze
(#11181)
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 <ja...@polidea.com>
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