X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=xapp_onboarder%2Fxapp_onboarder%2Fhelm_controller%2FxApp_builder.py;h=da9f34aa255765302d2e979dee87a8a0893b33b2;hb=2bf6c2eb9d3fa14c0eae908a77905af6bf43b388;hp=0cd821b6d5a17dae2c48815117f8506ec75fb8d2;hpb=cd4b9aaa9aa6f3f0bfef09c4808315f10a385310;p=it%2Fdev.git diff --git a/xapp_onboarder/xapp_onboarder/helm_controller/xApp_builder.py b/xapp_onboarder/xapp_onboarder/helm_controller/xApp_builder.py index 0cd821b..da9f34a 100644 --- a/xapp_onboarder/xapp_onboarder/helm_controller/xApp_builder.py +++ b/xapp_onboarder/xapp_onboarder/helm_controller/xApp_builder.py @@ -122,14 +122,13 @@ class xApp(): for item in current_node.keys(): if type(current_node.get(item)) is not dict: - current_node[item] = '{{ '+ helm_value_path +'.'+ item + ' | toJson }}' + current_node[item] = '{{ index '+ helm_value_path +' "'+ item + '" | toJson }}' else: new_node_list = node_list.copy() new_node_list.append(item) self.recursive_convert_config_file(new_node_list) - def append_config_to_config_map(self): with open(self.chart_workspace_path + '/' + self.chart_name + '/templates/appconfig.yaml', 'a') as outputfile: self.recursive_convert_config_file() @@ -137,6 +136,7 @@ class xApp(): indented_config_text = indent(config_file_json_text, 4) indented_config_text = re.sub(r"\"{{", '{{', indented_config_text) indented_config_text = re.sub(r"}}\"", '}}', indented_config_text) + indented_config_text = re.sub(r"\\", '', indented_config_text) outputfile.write(" config-file.json: |\n") outputfile.write(indented_config_text) outputfile.write("\n schema.json: |\n") @@ -145,13 +145,27 @@ class xApp(): outputfile.write(indented_schema_text) +# This is a work around for the bronze release to be backward compatible to the previous xapp standard helm template + def write_config_and_schema(self): + os.makedirs(self.chart_workspace_path + '/' + self.chart_name + '/descriptors') + os.makedirs(self.chart_workspace_path + '/' + self.chart_name + '/config') + with open(self.chart_workspace_path + '/' + self.chart_name + '/descriptors/schema.json', 'w') as outfile: + json.dump(self.schema_file, outfile) + with open(self.chart_workspace_path + '/' + self.chart_name + '/config/config-file.json', 'w') as outfile: + json.dump(self.config_file, outfile) + + + def add_probes_to_deployment(self): with open(self.chart_workspace_path + '/' + self.chart_name + '/templates/deployment.yaml', 'a') as outputfile: for probes in ['readinessProbe', 'livenessProbe']: if self.configmap_config_json_file.get(probes): probe_definition = self.configmap_config_json_file.get(probes) - probe_definition_yaml = yaml.dump(probe_definition) + probe_definition_yaml = yaml.dump(probe_definition, width=1000) + + print(probe_definition_yaml) + indented_probe_definition_yaml = indent(probe_definition_yaml, 12) indented_probe_definition_yaml = re.sub(r" \| toJson", '', indented_probe_definition_yaml) indented_probe_definition_yaml = re.sub(r"'", '', indented_probe_definition_yaml) @@ -188,13 +202,19 @@ class xApp(): err.stderr.decode("utf-8") + "\n" + err.stdout.decode("utf-8") + ")", 400) def package_chart(self): + self.write_config_and_schema() self.append_config_to_config_map() self.append_config_to_values_yaml() self.add_probes_to_deployment() self.change_chart_name_version() self.helm_lint() try: - process = subprocess.run([self.helm_client_path, "package", self.chart_workspace_path + "/" + self.chart_name, "-d" + + if settings.HELM_VERSION.startswith("3") == True: + process = subprocess.run([self.helm_client_path, "package", self.chart_workspace_path + "/" + self.chart_name, "-d" + ,self.chart_workspace_path], stdout=PIPE, stderr=PIPE, check=True) + else: + process = subprocess.run([self.helm_client_path, "package", self.chart_workspace_path + "/" + self.chart_name, "-d" ,self.chart_workspace_path,"--save=false"], stdout=PIPE, stderr=PIPE, check=True) except OSError as err: