Skip to content

Commit a7753e3

Browse files
authored
Merge pull request #939 from helgi/app_config
ref(scheduler): split out application config handling out of _set_container
2 parents 7ad95e4 + 314fd67 commit a7753e3

1 file changed

Lines changed: 27 additions & 22 deletions

File tree

rootfs/scheduler/__init__.py

Lines changed: 27 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -540,7 +540,30 @@ def run(self, namespace, name, image, entrypoint, command, **kwargs):
540540
# cleanup
541541
self.delete_pod(namespace, name)
542542

543-
def _set_container(self, namespace, container_name, data, **kwargs): # noqa
543+
def set_application_config(self, namespace, env, version):
544+
# env vars are stored in secrets and mapped to env in k8s
545+
try:
546+
labels = {
547+
'version': version,
548+
'type': 'env'
549+
}
550+
551+
# secrets use dns labels for keys, map those properly here
552+
secrets_env = {}
553+
for key, value in env.items():
554+
secrets_env[key.lower().replace('_', '-')] = str(value)
555+
556+
# dictionary sorted by key
557+
secrets_env = OrderedDict(sorted(secrets_env.items(), key=lambda t: t[0]))
558+
559+
secret_name = "{}-{}-env".format(namespace, version)
560+
self.get_secret(namespace, secret_name)
561+
except KubeHTTPException:
562+
self.create_secret(namespace, secret_name, secrets_env, labels=labels)
563+
else:
564+
self.update_secret(namespace, secret_name, secrets_env, labels=labels)
565+
566+
def _set_container(self, namespace, container_name, data, **kwargs):
544567
"""Set app container information (env, healthcheck, etc) on a Pod"""
545568
app_type = kwargs.get('app_type')
546569
mem = kwargs.get('memory', {}).get(app_type)
@@ -561,28 +584,10 @@ def _set_container(self, namespace, container_name, data, **kwargs): # noqa
561584
data['env'] = []
562585

563586
if env:
564-
# env vars are stored in secrets and mapped to env in k8s
565-
try:
566-
labels = {
567-
'version': kwargs.get('version'),
568-
'type': 'env'
569-
}
570-
571-
# secrets use dns labels for keys, map those properly here
572-
secrets_env = {}
573-
for key, value in env.items():
574-
secrets_env[key.lower().replace('_', '-')] = str(value)
575-
576-
# dictionary sorted by key
577-
secrets_env = OrderedDict(sorted(secrets_env.items(), key=lambda t: t[0]))
578-
579-
secret_name = "{}-{}-env".format(namespace, kwargs.get('version'))
580-
self.get_secret(namespace, secret_name)
581-
except KubeHTTPException:
582-
self.create_secret(namespace, secret_name, secrets_env, labels=labels)
583-
else:
584-
self.update_secret(namespace, secret_name, secrets_env, labels=labels)
587+
self.set_application_config(namespace, env, kwargs.get('version'))
585588

589+
# map application configuration (env secret) to env vars
590+
secret_name = "{}-{}-env".format(namespace, kwargs.get('version'))
586591
for key in env.keys():
587592
item = {
588593
"name": key,

0 commit comments

Comments
 (0)