@@ -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