commit e9fbe29f113fbbc89867fa951c98daf6dade9ac1 Author: Yuxing Jiang Date: Sat Sep 26 09:53:34 2020 -0400 Preserve quotes in building helm charts RoundTripLoader in ruamel.yaml will omit quotation marks. In some cases, the result by loading a yaml with RoundTripLoader and dumping it out will be unreadable by PYYAML. For example, the pattern: hosts: ["mon-logstash:port"] will be transformed to: hosts: [mon-logstash:port] Currently, the Armada project is using PYYAML. It's better to keep the quotes to allow the following process have to use PYYAML. Tested with rebuild the helm chart with the yaml has the pattern in the example, and the quotation marks are preserved. Change-Id: I7375a1ad498336baa337cca5af8f90028b753110 Partial-Bug: 1896530 Signed-off-by: Yuxing Jiang diff --git a/build-tools/build-helm-charts.sh b/build-tools/build-helm-charts.sh index 9ac1525..fdfe30a 100755 --- a/build-tools/build-helm-charts.sh +++ b/build-tools/build-helm-charts.sh @@ -315,7 +315,7 @@ def merge_yaml(yaml_merged, yaml_new): yaml_out = collections.OrderedDict() for yaml_file in yaml_files: print 'Merging yaml from file: %s' % yaml_file - for document in yaml.load_all(open(yaml_file), Loader=yaml.RoundTripLoader): + for document in yaml.load_all(open(yaml_file), Loader=yaml.RoundTripLoader, preserve_quotes=True): document_name = (document['schema'], document['metadata']['schema'], document['metadata']['name']) if document_name in yaml_out: merge_yaml(yaml_out[document_name], document) diff --git a/build-tools/helm_chart_modify.py b/build-tools/helm_chart_modify.py index cb805fb..4069347 100755 --- a/build-tools/helm_chart_modify.py +++ b/build-tools/helm_chart_modify.py @@ -159,7 +159,8 @@ def main(argv): new_image_dict[name] = image # Load chart into dictionary(s) and then modify any image locations/tags if required - for document in yaml.load_all(open(yaml_file), Loader=yaml.RoundTripLoader): + for document in yaml.load_all( + open(yaml_file), Loader=yaml.RoundTripLoader, preserve_quotes=True): document_name = (document['schema'], document['metadata']['schema'], document['metadata']['name'])