Browse Source

Merge pull request #3467 from kwoodson/registry_updates

Fixed default variables.  Added a fix to generated secret in env var.
Kenny Woodson 8 years ago
parent
commit
a451a46874

+ 22 - 2
roles/lib_openshift/library/oc_adm_registry.py

@@ -1571,6 +1571,18 @@ spec:
 
         return False
 
+    def get_env_var(self, key):
+        '''return a environment variables '''
+        results = self.get(DeploymentConfig.env_path) or []
+        if not results:
+            return None
+
+        for env_var in results:
+            if env_var['name'] == key:
+                return env_var
+
+        return None
+
     def get_env_vars(self):
         '''return a environment variables '''
         return self.get(DeploymentConfig.env_path) or []
@@ -2354,6 +2366,14 @@ class Registry(OpenShiftCLI):
 
     def add_modifications(self, deploymentconfig):
         ''' update a deployment config with changes '''
+        # The environment variable for REGISTRY_HTTP_SECRET is autogenerated
+        # We should set the generated deploymentconfig to the in memory version
+        # the following modifications will overwrite if needed
+        if self.deploymentconfig:
+            result = self.deploymentconfig.get_env_var('REGISTRY_HTTP_SECRET')
+            if result:
+                deploymentconfig.update_env_var('REGISTRY_HTTP_SECRET', result['value'])
+
         # Currently we know that our deployment of a registry requires a few extra modifications
         # Modification 1
         # we need specific environment variables to be set
@@ -2547,8 +2567,8 @@ def main():
             service_account=dict(default='registry', type='str'),
             mount_host=dict(default=None, type='str'),
             volume_mounts=dict(default=None, type='list'),
-            env_vars=dict(default=None, type='dict'),
-            edits=dict(default=None, type='list'),
+            env_vars=dict(default={}, type='dict'),
+            edits=dict(default=[], type='list'),
             enforce_quota=dict(default=False, type='bool'),
             force=dict(default=False, type='bool'),
             daemonset=dict(default=False, type='bool'),

+ 12 - 0
roles/lib_openshift/library/oc_adm_router.py

@@ -1724,6 +1724,18 @@ spec:
 
         return False
 
+    def get_env_var(self, key):
+        '''return a environment variables '''
+        results = self.get(DeploymentConfig.env_path) or []
+        if not results:
+            return None
+
+        for env_var in results:
+            if env_var['name'] == key:
+                return env_var
+
+        return None
+
     def get_env_vars(self):
         '''return a environment variables '''
         return self.get(DeploymentConfig.env_path) or []

+ 12 - 0
roles/lib_openshift/library/oc_env.py

@@ -1462,6 +1462,18 @@ spec:
 
         return False
 
+    def get_env_var(self, key):
+        '''return a environment variables '''
+        results = self.get(DeploymentConfig.env_path) or []
+        if not results:
+            return None
+
+        for env_var in results:
+            if env_var['name'] == key:
+                return env_var
+
+        return None
+
     def get_env_vars(self):
         '''return a environment variables '''
         return self.get(DeploymentConfig.env_path) or []

+ 12 - 0
roles/lib_openshift/library/oc_scale.py

@@ -1449,6 +1449,18 @@ spec:
 
         return False
 
+    def get_env_var(self, key):
+        '''return a environment variables '''
+        results = self.get(DeploymentConfig.env_path) or []
+        if not results:
+            return None
+
+        for env_var in results:
+            if env_var['name'] == key:
+                return env_var
+
+        return None
+
     def get_env_vars(self):
         '''return a environment variables '''
         return self.get(DeploymentConfig.env_path) or []

+ 2 - 2
roles/lib_openshift/src/ansible/oc_adm_registry.py

@@ -24,8 +24,8 @@ def main():
             service_account=dict(default='registry', type='str'),
             mount_host=dict(default=None, type='str'),
             volume_mounts=dict(default=None, type='list'),
-            env_vars=dict(default=None, type='dict'),
-            edits=dict(default=None, type='list'),
+            env_vars=dict(default={}, type='dict'),
+            edits=dict(default=[], type='list'),
             enforce_quota=dict(default=False, type='bool'),
             force=dict(default=False, type='bool'),
             daemonset=dict(default=False, type='bool'),

+ 8 - 0
roles/lib_openshift/src/class/oc_adm_registry.py

@@ -232,6 +232,14 @@ class Registry(OpenShiftCLI):
 
     def add_modifications(self, deploymentconfig):
         ''' update a deployment config with changes '''
+        # The environment variable for REGISTRY_HTTP_SECRET is autogenerated
+        # We should set the generated deploymentconfig to the in memory version
+        # the following modifications will overwrite if needed
+        if self.deploymentconfig:
+            result = self.deploymentconfig.get_env_var('REGISTRY_HTTP_SECRET')
+            if result:
+                deploymentconfig.update_env_var('REGISTRY_HTTP_SECRET', result['value'])
+
         # Currently we know that our deployment of a registry requires a few extra modifications
         # Modification 1
         # we need specific environment variables to be set

+ 12 - 0
roles/lib_openshift/src/lib/deploymentconfig.py

@@ -105,6 +105,18 @@ spec:
 
         return False
 
+    def get_env_var(self, key):
+        '''return a environment variables '''
+        results = self.get(DeploymentConfig.env_path) or []
+        if not results:
+            return None
+
+        for env_var in results:
+            if env_var['name'] == key:
+                return env_var
+
+        return None
+
     def get_env_vars(self):
         '''return a environment variables '''
         return self.get(DeploymentConfig.env_path) or []