aboutsummaryrefslogtreecommitdiff
path: root/kolla/common
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2026-06-18 11:26:13 +0000
committerGerrit Code Review <review@openstack.org>2026-06-18 11:26:13 +0000
commita437f0bd5f406bf1f82dfdf05c4dac16c02573ff (patch)
tree20540a222bfb47d156d8db3616df55f69fab1880 /kolla/common
parentc2a33b186be3c5991c85fdc0fa5172f52e55900a (diff)
parent4e66cc2f5982cdab26e3838411a37ea115fd7ef5 (diff)
downloadkolla-a437f0bd5f406bf1f82dfdf05c4dac16c02573ff.tar.gz
kolla-a437f0bd5f406bf1f82dfdf05c4dac16c02573ff.zip
Merge "kolla-build: Add Docker BuildKit support via docker buildx build"
Diffstat (limited to 'kolla/common')
-rw-r--r--kolla/common/config.py8
-rw-r--r--kolla/common/utils.py15
2 files changed, 23 insertions, 0 deletions
diff --git a/kolla/common/config.py b/kolla/common/config.py
index c4ebcbf3b..b418552f4 100644
--- a/kolla/common/config.py
+++ b/kolla/common/config.py
@@ -171,6 +171,14 @@ _CLI_OPTS = [
help='The Docker namespace name'),
cfg.StrOpt('network_mode', default='host',
help='The network mode for Docker build. Example: host'),
+ cfg.BoolOpt('buildkit', default=True,
+ help='Use Docker BuildKit (docker buildx build) when building '
+ 'images. Requires the docker-buildx-plugin to be '
+ 'installed. Only valid with --engine docker.'),
+ cfg.StrOpt('buildkit-builder', default=None,
+ help='Name of the docker buildx builder instance to use. '
+ 'If unset the currently active builder is used. '
+ 'Only valid with --buildkit.'),
cfg.BoolOpt('cache', default=True,
help='Use the container engine cache when building'),
cfg.StrOpt('patches-path', default=None,
diff --git a/kolla/common/utils.py b/kolla/common/utils.py
index 4ee80768f..485848ba2 100644
--- a/kolla/common/utils.py
+++ b/kolla/common/utils.py
@@ -54,6 +54,21 @@ def make_a_logger(conf=None, image_name=None):
LOG = make_a_logger()
+def check_docker_buildx():
+ try:
+ subprocess.check_output( # nosec
+ ['docker', 'buildx', 'version'], stderr=subprocess.STDOUT)
+ except OSError as ex:
+ if ex.errno == 2:
+ LOG.error('"docker" command is not found.')
+ raise
+ except subprocess.CalledProcessError:
+ LOG.error('"docker buildx" is not available. '
+ 'Install the docker-buildx-plugin or disable BuildKit '
+ 'with "--nobuildkit".')
+ raise
+
+
def get_docker_squash_version():
try: