From a43d1a058491d0255fd732f2f964379f18418356 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sat, 3 Feb 2018 03:15:56 +0100 Subject: deploying manager to k8s works now --- src/flufigut.py | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) (limited to 'src/flufigut.py') 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) -- cgit v1.2.3