summaryrefslogtreecommitdiff
path: root/src/flufigut.py
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2018-02-03 03:15:56 +0100
committerChristian Pointner <equinox@spreadspace.org>2018-02-03 03:15:56 +0100
commita43d1a058491d0255fd732f2f964379f18418356 (patch)
treec97bc7414e86afb4f1e4a254d2659efb4655d39e /src/flufigut.py
parentcreating and removing worspaces works now (diff)
deploying manager to k8s works now
Diffstat (limited to 'src/flufigut.py')
-rwxr-xr-xsrc/flufigut.py26
1 files changed, 20 insertions, 6 deletions
diff --git a/src/flufigut.py b/src/flufigut.py
index 31f4ff2..9c95c97 100755
--- a/src/flufigut.py
+++ b/src/flufigut.py
@@ -518,7 +518,7 @@ class Planet:
def toXML(self, template_dir, output_file):
loader = jinja2.FileSystemLoader(os.path.join(template_dir, self._desc.globals['templates'], 'flumotion'))
env = jinja2.Environment(loader=loader, line_statement_prefix='%%')
- template = env.get_template('planet.xml')
+ template = env.get_template('planet.xml.j2')
planet_xml = template.render(globals=self._desc.globals, atmosphere=self.atmosphere, flow=self.flow)
with open(output_file, 'wb') as f:
@@ -551,15 +551,30 @@ class K8sDeployment:
def __delete_namespace(self, v1):
try:
opts = kubernetes.client.V1DeleteOptions()
- v1.delete_namespace(self._namespace, opts)
+ v1.delete_namespace(self._namespace, opts, grace_period_seconds=0)
except kubernetes.client.rest.ApiException as e:
if e.status == 404:
pass
- def deploy(self):
+ def __gen_object(self, tmpl_env, template_file):
+ tmpl = tmpl_env.get_template(template_file + '.j2')
+ object_yaml = tmpl.render(namespace=self._namespace, desc=self._desc, planet=self._planet)
+ return yaml.load(object_yaml)
+
+ def deploy(self, template_dir):
v1 = kubernetes.client.CoreV1Api()
+ appsV1 = kubernetes.client.AppsV1Api()
self.__create_namespace(v1)
- pass
+
+ loader = jinja2.FileSystemLoader(os.path.join(template_dir, self._desc.globals['templates'], 'kubernetes'))
+ tmpl_env = jinja2.Environment(loader=loader, line_statement_prefix='%%')
+
+ v1.create_namespaced_service(self._namespace, self.__gen_object(tmpl_env, 'flumotion-manager-svc.yml'))
+ # TODO: add planet.xml from self._planet
+ v1.create_namespaced_config_map(self._namespace, self.__gen_object(tmpl_env, 'flumotion-manager-cm.yml'))
+ appsV1.create_namespaced_deployment(self._namespace, self.__gen_object(tmpl_env, 'flumotion-manager-deploy.yml'))
+
+ # TODO: add workers
def wipe(self):
v1 = kubernetes.client.CoreV1Api()
@@ -628,9 +643,8 @@ if __name__ == '__main__':
# print("****************************************************")
k8s = K8sDeployment(d, p)
- k8s.deploy()
- time.sleep(5)
k8s.wipe()
+ k8s.deploy('../templates')
except Exception as e:
print("ERROR: while running app: %s" % e)