shutil.rmtree(self.chart_workspace_path)
os.makedirs(self.chart_workspace_path)
shutil.copytree(resource_filename( 'xapp_onboarder', 'resources/xapp-std'), self.chart_workspace_path + '/' + self.chart_name)
- self.helm_client_path = settings.CHART_WORKSPACE_PATH + '/helm'
self.setup_helm()
def setup_helm(self):
+ self.helm_client_path = 'helm'
+ try:
+ process = subprocess.run([self.helm_client_path], stdout=PIPE, stderr=PIPE, check=True)
+
+ except Exception as err:
+ print(err)
+ self.download_helm()
+ self.helm_client_path = settings.CHART_WORKSPACE_PATH + '/helm'
+
+ def download_helm(self):
if not os.path.isfile(settings.CHART_WORKSPACE_PATH + '/helm'):
log.info("Helm client missing. Trying to download it.")
helm_file_name = "helm-v{}-{}-amd64.tar.gz".format(settings.HELM_VERSION, platform.system().lower())
outputfile.write(indented_probe_definition_yaml)
-
def append_config_to_values_yaml(self):
with open(self.chart_workspace_path + '/' + self.chart_name + '/values.yaml', 'a') as outputfile:
yaml.dump(self.config_file, outputfile, default_flow_style=False)
- def append_env_to_config_map(self):
- with open(self.chart_workspace_path + '/' + self.chart_name + '/templates/appenv.yaml', 'a') as outputfile:
- append = {}
- if settings.DBAAS_MASTER_NAME:
- master_name = settings.DBAAS_MASTER_NAME
- service_host = settings.DBAAS_SERVICE_HOST
- sentinel_port = settings.DBAAS_SERVICE_SENTINEL_PORT
- if not service_host:
- raise xAppError(
- "Internal failure. Cannot find environment variable 'DBAAS_SERVICE_HOST'. (Caused by: Misconfiguration of temp deployment)", 500)
- if not sentinel_port:
- raise xAppError(
- "Internal failure. Cannot find environment variable 'DBAAS_SERVICE_SENTINEL_PORT'. (Caused by: Misconfiguration of temp deployment)", 500)
-
- append['DBAAS_MASTER_NAME'] = master_name
- append['DBAAS_SERVICE_HOST'] = service_host
- append['DBAAS_SERVICE_SENTINEL_PORT'] = sentinel_port
- elif settings.DBAAS_SERVICE_HOST:
- service_host = settings.DBAAS_SERVICE_HOST
- service_port = settings.DBAAS_SERVICE_PORT
- if not service_port:
- raise xAppError(
- "Internal failure. Cannot find environment variable 'DBAAS_SERVICE_PORT'. (Caused by: Misconfiguration of temp deployment)", 500)
- append['DBAAS_SERVICE_HOST'] = service_host
- append['DBAAS_SERVICE_PORT'] = service_port
- else:
- raise xAppError(
- "Internal failure. Cannot find environment variable 'DBAAS_SERVICE_HOST' or 'DBAAS_MASTER_NAME'. (Caused by: Misconfiguration of temp deployment)",
- 500)
- output_yaml = yaml.dump(append)
- indented_output_yaml = indent(output_yaml, 2)
- outputfile.write(indented_output_yaml)
-
-
def change_chart_name_version(self):
with open(self.chart_workspace_path + '/' + self.chart_name + '/Chart.yaml', 'r') as inputfile:
self.chart_yaml = yaml.load(inputfile, Loader=yaml.FullLoader)
def package_chart(self):
self.append_config_to_config_map()
self.append_config_to_values_yaml()
- self.append_env_to_config_map()
self.add_probes_to_deployment()
self.change_chart_name_version()
self.helm_lint()