+
+
+class K8sVims(Vims):
+ """Deploy vIMS via kubectl as proposed by clearwater-docker
+
+ It leverages unofficial Clearwater dockers as proposed in the
+ documentation.
+
+ See https://github.com/Metaswitch/clearwater-docker for more details
+ """
+
+ __logger = logging.getLogger(__name__)
+
+ def deploy_vnf(self):
+ """Deploy vIMS via kubectl as proposed by clearwater-docker
+
+ See https://github.com/Metaswitch/clearwater-docker for more details
+ """
+ assert self.namespace
+ for deployment in self.deployment_list:
+ with open(pkg_resources.resource_filename(
+ 'functest_kubernetes',
+ 'ims/{}-depl.yaml'.format(deployment))) as yfile:
+ template = Template(yfile.read())
+ body = yaml.safe_load(template.render(
+ dockerhub_repo=os.getenv(
+ "DOCKERHUB_REPO", self.dockerhub_repo),
+ quay_repo=os.getenv(
+ "QUAY_REPO", self.quay_repo)))
+ resp = self.appsv1.create_namespaced_deployment(
+ body=body, namespace=self.namespace)
+ self.__logger.info("Deployment %s created", resp.metadata.name)
+ self.__logger.debug(
+ "create_namespaced_deployment: %s", resp)
+ for service in self.deployment_list:
+ with open(pkg_resources.resource_filename(
+ 'functest_kubernetes',
+ 'ims/{}-svc.yaml'.format(service))) as yfile:
+ body = yaml.safe_load(yfile)
+ resp = self.corev1.create_namespaced_service(
+ body=body, namespace=self.namespace)
+ self.__logger.info("Service %s created", resp.metadata.name)
+ self.__logger.debug(
+ "create_namespaced_service: %s", resp)
+
+ def clean(self):