diff options
| author | Michal Arbet <michal.arbet@ultimum.io> | 2023-09-12 02:28:08 +0200 |
|---|---|---|
| committer | Michal Arbet <michal.arbet@ultimum.io> | 2023-09-21 11:01:21 +0200 |
| commit | b76bd4c6efa22af43d7895a7b5e95c75806d3893 (patch) | |
| tree | f9fcabc48ef5e6badbb0800a98c4cc605886eea9 /kolla/engine_adapter/engine.py | |
| parent | 4871ca4d6b83f6d28d790722eae52de5e56becee (diff) | |
| download | kolla-b76bd4c6efa22af43d7895a7b5e95c75806d3893.tar.gz kolla-b76bd4c6efa22af43d7895a7b5e95c75806d3893.zip | |
Add podman for image building
Add podman as an option to choose for container engine
for kolla-build (--engine podman)
Signed-off-by: Konstantin Yarovoy <konstantin.yarovoy@tietoevry.com>
Co-Authored-By: Michal Arbet <michal.arbet@ultimum.io>
Change-Id: I068c906df97745e397408d8c3ef6af47ee037638
Diffstat (limited to 'kolla/engine_adapter/engine.py')
| -rw-r--r-- | kolla/engine_adapter/engine.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/kolla/engine_adapter/engine.py b/kolla/engine_adapter/engine.py index 95966c18a..dc38f4541 100644 --- a/kolla/engine_adapter/engine.py +++ b/kolla/engine_adapter/engine.py @@ -18,10 +18,17 @@ try: except (ImportError): LOG.debug("Docker python library was not found") +try: + import podman +except (ImportError, ModuleNotFoundError): + LOG.debug("Podman python library was not found") + pass + class Engine(Enum): DOCKER = "docker" + PODMAN = "podman" class UnsupportedEngineError(ValueError): @@ -37,6 +44,9 @@ class UnsupportedEngineError(ValueError): def getEngineException(conf): if conf.engine == Engine.DOCKER.value: return (docker.errors.DockerException) + elif conf.engine == Engine.PODMAN.value: + return (podman.errors.exceptions.APIError, + podman.errors.exceptions.PodmanError) else: raise UnsupportedEngineError(conf.engine) @@ -45,5 +55,15 @@ def getEngineClient(conf): if conf.engine == Engine.DOCKER.value: kwargs_env = docker.utils.kwargs_from_env() return docker.DockerClient(version='auto', **kwargs_env) + elif conf.engine == Engine.PODMAN.value: + client = podman.PodmanClient(base_url=conf.podman_base_url) + try: + client.version() + except podman.errors.exceptions.APIError as e: + e.explanation += (". Check if podman service is active and " + "the address to podman.sock is set correctly " + "through --podman_base_url") + raise e + return client else: raise UnsupportedEngineError(conf.engine) |
