summaryrefslogtreecommitdiffstats
path: root/VNFs/DPPD-PROX/helper-scripts/rapid/k8sdeployment.py
diff options
context:
space:
mode:
authorYury Kylulin <yury.kylulin@intel.com>2020-12-10 11:40:29 +0300
committerYury Kylulin <yury.kylulin@intel.com>2020-12-10 12:40:07 +0300
commit919872a6ee1ddfd9105879175a1649c1444be8c3 (patch)
treed76fbe69a233652b9286435078bd4848083b8673 /VNFs/DPPD-PROX/helper-scripts/rapid/k8sdeployment.py
parentd5801e449ca4c7115c2c11bf164bcce7b149917c (diff)
Moving to python 3 for kubernetes scripts
Move to python version 3 in all scripts for kubernetes environment. Streamline file names to match existing libraries. Signed-off-by: Yury Kylulin <yury.kylulin@intel.com> Change-Id: Id875f4240a87ab600b445cb9a7fd97ec1335f88a
Diffstat (limited to 'VNFs/DPPD-PROX/helper-scripts/rapid/k8sdeployment.py')
-rw-r--r--VNFs/DPPD-PROX/helper-scripts/rapid/k8sdeployment.py196
1 files changed, 0 insertions, 196 deletions
diff --git a/VNFs/DPPD-PROX/helper-scripts/rapid/k8sdeployment.py b/VNFs/DPPD-PROX/helper-scripts/rapid/k8sdeployment.py
deleted file mode 100644
index 5e921d46..00000000
--- a/VNFs/DPPD-PROX/helper-scripts/rapid/k8sdeployment.py
+++ /dev/null
@@ -1,196 +0,0 @@
-#!/usr/bin/env python2.7
-
-##
-## Copyright (c) 2019-2020 Intel Corporation
-##
-## Licensed under the Apache License, Version 2.0 (the "License");
-## you may not use this file except in compliance with the License.
-## You may obtain a copy of the License at
-##
-## http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-##
-
-import sys
-from kubernetes import client, config
-import ConfigParser
-import logging
-from logging import handlers
-
-from pod import Pod
-
-class K8sDeployment:
- """Deployment class to create containers for test execution in Kubernetes
- environment.
- """
- LOG_FILE_NAME = "createrapidk8s.log"
- SSH_PRIVATE_KEY = "./rapid_rsa_key"
- SSH_USER = "centos"
-
- POD_YAML_TEMPLATE_FILE_NAME = "pod-rapid.yaml"
-
- _log = None
- _create_config = None
- _runtime_config = None
- _total_number_of_pods = 0
- _pods = []
-
- def __init__(self):
- # Configure logger
- self._log = logging.getLogger("k8srapid")
- self._log.setLevel(logging.DEBUG)
-
- console_formatter = logging.Formatter("%(message)s")
- console_handler = logging.StreamHandler(sys.stdout)
- console_handler.setLevel(logging.DEBUG)
- console_handler.setFormatter(console_formatter)
-
- file_formatter = logging.Formatter("%(asctime)s - "
- "%(levelname)s - "
- "%(message)s")
- file_handler = logging.handlers.RotatingFileHandler(self.LOG_FILE_NAME,
- backupCount=10)
- file_handler.setLevel(logging.DEBUG)
- file_handler.setFormatter(file_formatter)
-
- self._log.addHandler(file_handler)
- self._log.addHandler(console_handler)
-
- # Initialize k8s plugin
- config.load_kube_config()
- Pod.k8s_CoreV1Api = client.CoreV1Api()
-
- def load_create_config(self, config_file_name):
- """Read and parse configuration file for the test environment.
- """
- self._log.info("Loading configuration file %s", config_file_name)
- self._create_config = ConfigParser.RawConfigParser()
- try:
- self._create_config.read(config_file_name)
- except Exception as e:
- self._log.error("Failed to read config file!\n%s\n" % e)
- return -1
-
- # Now parse config file content
- # Parse [DEFAULT] section
- if self._create_config.has_option("DEFAULT", "total_number_of_pods"):
- self._total_number_of_pods = self._create_config.getint(
- "DEFAULT", "total_number_of_pods")
- else:
- self._log.error("No option total_number_of_pods in DEFAULT section")
- return -1
-
- self._log.debug("Total number of pods %d" % self._total_number_of_pods)
-
- # Parse [PODx] sections
- for i in range(1, int(self._total_number_of_pods) + 1):
- # Search for POD name
- if self._create_config.has_option("POD%d" % i,
- "name"):
- pod_name = self._create_config.get(
- "POD%d" % i, "name")
- else:
- pod_name = "pod-rapid-%d" % i
-
- # Search for POD hostname
- if self._create_config.has_option("POD%d" % i,
- "nodeSelector_hostname"):
- pod_nodeselector_hostname = self._create_config.get(
- "POD%d" % i, "nodeSelector_hostname")
- else:
- pod_nodeselector_hostname = None
-
- # Search for POD dataplane static IP
- if self._create_config.has_option("POD%d" % i,
- "dp_ip"):
- pod_dp_ip = self._create_config.get(
- "POD%d" % i, "dp_ip")
- else:
- pod_dp_ip = None
-
- pod = Pod(pod_name)
- pod.set_nodeselector(pod_nodeselector_hostname)
- pod.set_dp_ip(pod_dp_ip)
- pod.set_id(i)
-
- # Add POD to the list of PODs which need to be created
- self._pods.append(pod)
-
- return 0
-
- def create_pods(self):
- """ Create test PODs and wait for them to start.
- Collect information for tests to run.
- """
- self._log.info("Creating PODs...")
-
- # Create PODs using template from yaml file
- for pod in self._pods:
- self._log.info("Creating POD %s...", pod.get_name())
- pod.create_from_yaml(K8sDeployment.POD_YAML_TEMPLATE_FILE_NAME)
-
- # Wait for PODs to start
- for pod in self._pods:
- pod.wait_for_start()
-
- # Collect information from started PODs for test execution
- for pod in self._pods:
- pod.set_ssh_credentials(K8sDeployment.SSH_USER, K8sDeployment.SSH_PRIVATE_KEY)
- pod.get_sriov_dev_mac()
-
- def save_runtime_config(self, config_file_name):
- self._log.info("Saving config %s for runrapid script...",
- config_file_name)
- self._runtime_config = ConfigParser.RawConfigParser()
-
- # Section [DEFAULT]
-# self._runtime_config.set("DEFAULT",
-# "total_number_of_test_machines",
-# self._total_number_of_pods)
-
- # Section [ssh]
- self._runtime_config.add_section("ssh")
- self._runtime_config.set("ssh",
- "key",
- K8sDeployment.SSH_PRIVATE_KEY)
- self._runtime_config.set("ssh",
- "user",
- K8sDeployment.SSH_USER)
-
- # Section [rapid]
- self._runtime_config.add_section("rapid")
- self._runtime_config.set("rapid",
- "total_number_of_machines",
- self._total_number_of_pods)
-
- # Export information about each pod
- # Sections [Mx]
- for pod in self._pods:
- self._runtime_config.add_section("M%d" % pod.get_id())
- self._runtime_config.set("M%d" % pod.get_id(),
- "admin_ip", pod.get_admin_ip())
- self._runtime_config.set("M%d" % pod.get_id(),
- "dp_mac1", pod.get_dp_mac())
- self._runtime_config.set("M%d" % pod.get_id(),
- "dp_pci_dev", pod.get_dp_pci_dev())
- self._runtime_config.set("M%d" % pod.get_id(),
- "dp_ip1", pod.get_dp_ip())
-
- # Section [Varia]
- self._runtime_config.add_section("Varia")
- self._runtime_config.set("Varia",
- "vim",
- "kubernetes")
-
- # Write runtime config file
- with open(config_file_name, "w") as file:
- self._runtime_config.write(file)
-
- def delete_pods(self):
- for pod in self._pods:
- pod.terminate()