diff options
author | Christian Pointner <equinox@spreadspace.org> | 2018-02-04 01:25:46 +0100 |
---|---|---|
committer | Christian Pointner <equinox@spreadspace.org> | 2018-02-04 01:25:46 +0100 |
commit | a2a8c79f2d0dcd23d688c8c1bef3b703c35b3c6f (patch) | |
tree | aa1a7093d822c8d364117541635ea58bd167f6e7 /src/flufigut.py | |
parent | fix feeder name (diff) |
seperate paswords for each work
Diffstat (limited to 'src/flufigut.py')
-rwxr-xr-x | src/flufigut.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/flufigut.py b/src/flufigut.py index 2e2923d..0f8ae4a 100755 --- a/src/flufigut.py +++ b/src/flufigut.py @@ -33,8 +33,10 @@ import os import sys import yaml import jinja2 +import crypt import kubernetes import time +import base64 # helper functions ############################################ # @@ -564,6 +566,14 @@ class Planet: planet_xml = template.render(globals=self._desc.globals, atmosphere=self.atmosphere, flow=self.flow) return planet_xml + "\n" + def htpasswd(self): + salt = rand_string(6) + out = "%s:%s\n" % (self._desc.globals['admin']['username'], crypt.crypt(self._desc.globals['admin']['password'], salt)) + for _, worker in self.workers.items(): + salt = rand_string(6) + out += "%s:%s\n" % (worker['name'], crypt.crypt(worker['password'], salt)) + return out.encode('utf-8') + # kubernetes handling ############################# # @@ -608,6 +618,10 @@ class K8sDeployment: cm['data']['planet.xml'] = self._planet.toXML(template_dir) v1.create_namespaced_config_map(self._namespace, cm) + secret = self.__generate_object(tmpl_env, 'flumotion-manager-secret.yml') + secret['data']['htpasswd'] = base64.b64encode(self._planet.htpasswd()).decode('ascii') + v1.create_namespaced_secret(self._namespace, secret) + deploy = self.__generate_object(tmpl_env, 'flumotion-manager-deploy.yml') appsV1.create_namespaced_deployment(self._namespace, deploy) |