]> git.apps.os.sepia.ceph.com Git - teuthology.git/commitdiff
task/internal/redhat.py: added container tool login support, 1646/head
authorsunilkumarn417 <sunnagar@redhat.com>
Fri, 14 May 2021 09:08:31 +0000 (14:38 +0530)
committersunilkumarn417 <sunnagar@redhat.com>
Mon, 17 May 2021 17:50:10 +0000 (23:20 +0530)
this task is essential to access monitoring images from
Red Hat registry source.

Signed-off-by: sunilkumarn417 <sunnagar@redhat.com>
teuthology/run.py
teuthology/task/internal/__init__.py
teuthology/task/internal/redhat.py

index 2eb0429fc9955b81343dc0fc68cb8a5bf9636522..00103a2d7a9ada6c94d516316c47fcc9f225c235 100644 (file)
@@ -250,7 +250,8 @@ def get_initial_tasks(lock, config, machine_type):
             {'internal.git_ignore_ssl': None},
             {'internal.setup_cdn_repo': None},
             {'internal.setup_base_repo': None},
-            {'internal.setup_additional_repo': None}
+            {'internal.setup_additional_repo': None},
+            {'internal.setup_container_registry': None}
         ])
         # Install latest kernel task for redhat downstream runs
         if config.get('redhat').get('install_latest_rh_kernel', False):
index e96a9ff8a6b11041f123f2d8fb507544e8fadc92..2b3772e657b7181a142f8f8beb62563a77312660 100644 (file)
@@ -24,7 +24,9 @@ from teuthology.exceptions import ConfigError, VersionNotFoundError
 from teuthology.job_status import get_status, set_status
 from teuthology.orchestra import cluster, remote, run
 # the below import with noqa is to workaround run.py which does not support multilevel submodule import
-from teuthology.task.internal.redhat import setup_cdn_repo, setup_base_repo, setup_additional_repo, setup_stage_cdn  # noqa
+from teuthology.task.internal.redhat import (setup_cdn_repo, setup_base_repo,            # noqa
+                                             setup_additional_repo,                      # noqa
+                                             setup_stage_cdn, setup_container_registry)  # noqa
 
 log = logging.getLogger(__name__)
 
index 381b4098986e2ee1f9443f4b3cf372ddc488ac54..2a1e5e97c7a4f8c86505a42957b0d9b608437106 100644 (file)
@@ -88,6 +88,36 @@ def setup_cdn_repo(ctx, config):
         set_cdn_repo(ctx, config)
     yield
 
+@contextlib.contextmanager
+def setup_container_registry(ctx, config):
+    """
+     setup container registry if setup_container_registry in config
+
+     redhat:
+      setup_container_registry: <registry.io>   # registry-name
+    """
+    if ctx.config.get('redhat').get('setup_container_registry', None):
+        registry = ctx.config['redhat']['setup_container_registry']
+
+        # fetch credentials from teuth_config
+        creds = teuthconfig.get('registries', dict()).get(registry)
+        if not creds:
+            raise ConfigError("Registry not found....")
+
+        # container-tool login
+        for remote in ctx.cluster.remotes.keys():
+            container_tool = "podman"
+            if remote.os.version.startswith('7'):
+                container_tool = "docker"
+
+            remote.run(args=[
+                'sudo', container_tool,
+                'login', registry,
+                '--username', creds['username'],
+                '--password', creds['password'],
+                ]
+            )
+    yield
 
 @contextlib.contextmanager
 def setup_additional_repo(ctx, config):