Skip to content

Commit 4a31ba1

Browse files
committed
chore(controller): support image pull secrets by ptype
1 parent e0d34eb commit 4a31ba1

2 files changed

Lines changed: 13 additions & 13 deletions

File tree

rootfs/api/models/app.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -626,12 +626,12 @@ def autoscale(self, proc_type, autoscale):
626626
# let the user know about any other errors
627627
raise ServiceUnavailable(str(e)) from e
628628

629-
def image_pull_secret(self, namespace, registry, image):
629+
def image_pull_secret(self, namespace, ptype, registry, image):
630630
"""
631631
Take registry information and set as an imagePullSecret for an RC / Deployment
632632
http://kubernetes.io/docs/user-guide/images/#specifying-imagepullsecrets-on-a-pod
633633
"""
634-
docker_config, name, create = self._get_private_registry_config(image, registry)
634+
docker_config, name, create = self._get_private_registry_config(ptype, image, registry)
635635
if create is None:
636636
return
637637
elif create:
@@ -1122,8 +1122,8 @@ def _build_env_vars(self, release, ptype):
11221122
default_env['PORT'] = port
11231123
return default_env
11241124

1125-
def _get_private_registry_config(self, image, registry=None):
1126-
name = settings.REGISTRY_SECRET_PREFIX
1125+
def _get_private_registry_config(self, ptype, image, registry=None):
1126+
name = settings.REGISTRY_SECRET_PREFIX + '-' + ptype
11271127
if registry:
11281128
# try to get the hostname information
11291129
hostname = registry.get('hostname', None)
@@ -1209,7 +1209,7 @@ def _gather_app_settings(self, release, app_settings, ptype, replicas, volumes=N
12091209
registry = config.registry.get(ptype, {})
12101210
# create image pull secret if needed
12111211
image_pull_secret_name = self.image_pull_secret(
1212-
self.id, registry, release.get_deploy_image(ptype))
1212+
self.id, ptype, registry, release.get_deploy_image(ptype))
12131213

12141214
# only web is routable
12151215
# https://www.drycc.cc/applications/managing-app-processes/#default-process-types

rootfs/api/tests/test_app.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -543,24 +543,24 @@ def test_list_ordering(self, mock_requests):
543543
self.assertEqual(apps[3]['id'], 'zulu')
544544

545545
def test_get_private_registry_config(self, mock_requests):
546-
registry = {'username': 'test', 'password': 'test'}
546+
registry = {"web": {'username': 'test', 'password': 'test'}}
547547
auth = bytes('{}:{}'.format("test", "test"), 'UTF-8')
548548
encAuth = base64.b64encode(auth).decode(encoding='UTF-8')
549549
image = 'test/test'
550550

551-
docker_config, name, create = App()._get_private_registry_config(image, registry)
551+
docker_config, name, create = App()._get_private_registry_config("web", image, registry.get("web", {})) # noqa
552552
dockerConfig = json.loads(docker_config)
553553
expected = {"https://index.docker.io/v1/": {"auth": encAuth}}
554554
self.assertEqual(dockerConfig.get('auths'), expected)
555-
self.assertEqual(name, "private-registry")
555+
self.assertEqual(name, "private-registry-web")
556556
self.assertEqual(create, True)
557557

558558
image = "quay.io/test/test"
559-
docker_config, name, create = App()._get_private_registry_config(image, registry)
559+
docker_config, name, create = App()._get_private_registry_config("web", image, registry.get("web", {})) # noqa
560560
dockerConfig = json.loads(docker_config)
561561
expected = {"quay.io": {"auth": encAuth}}
562562
self.assertEqual(dockerConfig.get('auths'), expected)
563-
self.assertEqual(name, "private-registry")
563+
self.assertEqual(name, "private-registry-web")
564564
self.assertEqual(create, True)
565565

566566
@override_settings(REGISTRY_LOCATION="off-cluster")
@@ -569,20 +569,20 @@ def test_get_private_registry_config_off_cluster(self, mock_requests):
569569
auth = bytes('{}:{}'.format("test", "test"), 'UTF-8')
570570
encAuth = base64.b64encode(auth).decode(encoding='UTF-8')
571571
image = "test.com/test/test"
572-
docker_config, name, create = App()._get_private_registry_config(image, registry)
572+
docker_config, name, create = App()._get_private_registry_config("web", image, registry.get("web", {})) # noqa
573573
dockerConfig = json.loads(docker_config)
574574
expected = {"https://index.docker.io/v1/": {
575575
"auth": encAuth
576576
}}
577577
self.assertEqual(dockerConfig.get('auths'), expected)
578-
self.assertEqual(name, "private-registry-off-cluster")
578+
self.assertEqual(name, "private-registry-web-off-cluster")
579579
self.assertEqual(create, True)
580580

581581
@override_settings(REGISTRY_LOCATION="ecra")
582582
def test_get_private_registry_config_bad_registry_location(self, mock_requests):
583583
registry = {}
584584
image = "test.com/test/test"
585-
docker_config, name, create = App()._get_private_registry_config(image, registry)
585+
docker_config, name, create = App()._get_private_registry_config("web", image, registry)
586586
self.assertEqual(docker_config, None)
587587
self.assertEqual(name, None)
588588
self.assertEqual(create, None)

0 commit comments

Comments
 (0)