Skip to content
Snippets Groups Projects
Commit 42d5592d authored by Martin Welss's avatar Martin Welss
Browse files

update python scripts

parent af162ee1
No related branches found
No related tags found
No related merge requests found
...@@ -9,7 +9,7 @@ from kubernetes import client, config ...@@ -9,7 +9,7 @@ from kubernetes import client, config
import base64 import base64
from pathlib import Path from pathlib import Path
from urllib.parse import urlparse from urllib.parse import urlparse
import traceback
class DockerInfo: class DockerInfo:
def __init__(self): def __init__(self):
...@@ -106,16 +106,15 @@ class Deployment: ...@@ -106,16 +106,15 @@ class Deployment:
p=re.compile(env_entry['docker_image_pattern']) p=re.compile(env_entry['docker_image_pattern'])
if(p.match(image)): if(p.match(image)):
print(f"set env {env_entry['name']} on image {image}") print(f"set env {env_entry['name']} on image {image}")
if container['env'] is None: if not 'env' in container:
container['env']=[] container['env']=[]
container['env'].append({'name': env_entry['name'], 'value': env_entry['value']}) container['env'].append({'name': env_entry['name'], 'value': env_entry['value']})
with open(deployment_file_name, "w") as f: with open(deployment_file_name, "w") as f:
yaml.dump(doc, f) yaml.dump(doc, f)
except Exception as e: except Exception:
# if we process a file that is not a deployment - warn print("ERROR: set_image_env encountered incompatible input file", deployment_file_name)
print("WARNING: set_image_env encountered incompatible input file", deployment_file_name) print(traceback.format_exc())
print(e)
def set_port(self, file_name, port): def set_port(self, file_name, port):
...@@ -210,6 +209,26 @@ class Deployment: ...@@ -210,6 +209,26 @@ class Deployment:
return file_service_web_ui return file_service_web_ui
def create_debug_port_service_yaml(self, file_service):
print("file_name of service yaml =", file_service)
with open(file_service) as f:
doc = yaml.safe_load(f)
port_name = "debugport"
target_port = 7687
name = (doc['metadata']['name']) + "debugport"
doc['metadata']['name'] = name
doc['spec']['ports'][0]['name'] = port_name
doc['spec']['ports'][0]['targetPort'] = target_port
assert file_service.endswith('.yaml')
file_service_debug_port = file_service[:-5] + '_debug_port.yaml'
with open(file_service_debug_port, "w") as f:
yaml.dump(doc, f)
return file_service_debug_port
def get_namespaces(self): def get_namespaces(self):
process = subprocess.run(['kubectl', 'get', 'namespaces'], check=True, process = subprocess.run(['kubectl', 'get', 'namespaces'], check=True,
stdout=subprocess.PIPE, stdout=subprocess.PIPE,
...@@ -259,6 +278,7 @@ class KubernetesSecret: ...@@ -259,6 +278,7 @@ class KubernetesSecret:
config.load_kube_config() config.load_kube_config()
self.api_instance = client.CoreV1Api() self.api_instance = client.CoreV1Api()
self.namespace = namespace self.namespace = namespace
def _get_secret_data(self, path_docker_config): def _get_secret_data(self, path_docker_config):
with open(path_docker_config) as docker_config_file: with open(path_docker_config) as docker_config_file:
docker_config_json = docker_config_file.read() docker_config_json = docker_config_file.read()
...@@ -292,8 +312,6 @@ class KubernetesSecret: ...@@ -292,8 +312,6 @@ class KubernetesSecret:
def _create_secret(self, secret): def _create_secret(self, secret):
# api_instance = client.CoreV1Api()
api_response = self.api_instance.create_namespaced_secret( api_response = self.api_instance.create_namespaced_secret(
namespace=self.namespace, namespace=self.namespace,
body=secret, body=secret,
...@@ -302,22 +320,21 @@ class KubernetesSecret: ...@@ -302,22 +320,21 @@ class KubernetesSecret:
def create_secret(self, path_docker_config, name_secret="my-secret"): def create_secret(self, path_docker_config, name_secret="my-secret"):
secret = self._get_secret(path_docker_config, name_secret) secret = self._get_secret(path_docker_config, name_secret)
self._create_secret(secret) self._create_secret(secret)
def apply_yamls(image_pull_policy, deployment): def apply_yamls(image_pull_policy, deployment):
yaml_files = glob.glob(deployment.get_deployment_dir() + "/*.yaml") yaml_files = glob.glob(deployment.get_deployment_dir() + "/*.yaml")
for yaml_file in yaml_files: for yaml_file in yaml_files:
if yaml_file.endswith('webui.yaml'): if yaml_file.endswith('webui.yaml') or yaml_file.endswith('debug_port.yaml'):
continue continue
if deployment.is_service(yaml_file): if deployment.is_service(yaml_file):
yaml_file_web_ui = deployment.create_web_ui_service_yaml(yaml_file) yaml_file_web_ui = deployment.create_web_ui_service_yaml(yaml_file)
deployment.apply_yaml(file_name=yaml_file_web_ui, image_pull_policy=image_pull_policy) deployment.apply_yaml(file_name=yaml_file_web_ui, image_pull_policy=image_pull_policy)
yaml_file_debug_port = deployment.create_debug_port_service_yaml(yaml_file)
deployment.apply_yaml(file_name=yaml_file_debug_port, image_pull_policy=image_pull_policy)
deployment.apply_yaml(file_name=yaml_file, image_pull_policy=image_pull_policy) deployment.apply_yaml(file_name=yaml_file, image_pull_policy=image_pull_policy)
print(deployment.port_mapping) print(deployment.port_mapping)
...@@ -392,4 +409,4 @@ def main(): ...@@ -392,4 +409,4 @@ def main():
if __name__ == '__main__': if __name__ == '__main__':
main() main()
\ No newline at end of file
...@@ -123,8 +123,7 @@ class Jupyter: ...@@ -123,8 +123,7 @@ class Jupyter:
def _get_pod_name_jupyter(self): def _get_pod_name_jupyter(self):
#ToDo Define final image name. #ToDo Define final image name.
self.logger.info("_get_pod_name_jupyter()") self.logger.info("_get_pod_name_jupyter()")
JUPYTER_IMAGES = ["registry.gitlab.cc-asp.fraunhofer.de/recognaize-acumos/jupyter-connect:latest", \ JUPYTER_IMAGES = ["cicd.ai4eu-dev.eu/graphene/jupyter-connect:1.1","cicd.ai4eu-dev.eu/graphene/jupyter-connect:latest"]
"hub.cc-asp.fraunhofer.de/recognaize-acumos/jupyter-connect", "hub.cc-asp.fraunhofer.de/recognaize-acumos/jupyter-connect:latest"]
image_names, container_names_yaml = self.__get_image_container_names() image_names, container_names_yaml = self.__get_image_container_names()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment