summaryrefslogtreecommitdiff
path: root/src/flufigut.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/flufigut.py')
-rwxr-xr-xsrc/flufigut.py14
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)