Skip to content

Commit e58459d

Browse files
committed
fix(helmbroker): avoid addonValues error
1 parent 8c530c7 commit e58459d

2 files changed

Lines changed: 22 additions & 11 deletions

File tree

rootfs/helmbroker/tasks.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ def provision(instance_id: str, details: ProvisionDetails):
3030
]
3131
helm(instance_id, *args)
3232
values_file = os.path.join(get_plan_path(instance_id), "values.yaml")
33-
addon_values_file = dump_addon_values(details.service_id, instance_id)
3433
args = [
3534
"install",
3635
details.context["instance_name"],
@@ -42,12 +41,14 @@ def provision(instance_id: str, details: ProvisionDetails):
4241
"--timeout",
4342
"25m0s",
4443
"-f",
45-
addon_values_file,
46-
"-f",
4744
values_file,
4845
"--set",
4946
f"fullnameOverride=helmbroker-{details.context['instance_name']}"
5047
]
48+
addon_values_file = dump_addon_values(details.service_id, instance_id)
49+
if addon_values_file:
50+
args.insert(9, "-f")
51+
args.insert(10, addon_values_file)
5152
logger.debug(f"helm install parameters :{details.parameters}")
5253
args = format_paras_to_helm_args(instance_id, details.parameters, args)
5354
logger.debug(f"helm install args:{args}")
@@ -83,7 +84,6 @@ def update(instance_id: str, details: UpdateDetails):
8384
dump_instance_meta(instance_id, data)
8485
chart_path = get_chart_path(instance_id)
8586
values_file = os.path.join(get_plan_path(instance_id), "values.yaml")
86-
addon_values_file = dump_addon_values(details.service_id, instance_id)
8787
args = [
8888
"upgrade",
8989
details.context["instance_name"],
@@ -96,12 +96,14 @@ def update(instance_id: str, details: UpdateDetails):
9696
"25m0s",
9797
"--reuse-values",
9898
"-f",
99-
addon_values_file,
100-
"-f",
10199
values_file,
102100
"--set",
103101
f"fullnameOverride=helmbroker-{details.context['instance_name']}"
104102
]
103+
addon_values_file = dump_addon_values(details.service_id, instance_id)
104+
if addon_values_file:
105+
args.insert(10, "-f")
106+
args.insert(11, addon_values_file)
105107
paras = data['details']['parameters']
106108
logger.debug(f"helm upgrade parameters: {paras}")
107109
args = format_paras_to_helm_args(instance_id, paras, args)

rootfs/helmbroker/utils.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,12 @@
66
import time
77
import base64
88
import copy
9+
import logging
910

1011
from jsonschema import validate
1112
from .config import INSTANCES_PATH, ADDONS_PATH, CONFIG_PATH
1213

14+
logger = logging.getLogger(__name__)
1315

1416
REGISTRY_CONFIG_SUFFIX = '.config/helm/registry.json'
1517
REPOSITORY_CACHE_SUFFIX = '.cache/helm/repository'
@@ -162,12 +164,19 @@ def dump_addon_values(service_id, instance_id):
162164
instance_path = get_instance_path(instance_id)
163165
file = f"{instance_path}/addon-values-{timestamp}.yaml"
164166
service = _get_addon_meta(service_id)
165-
with open(file, "w") as f:
167+
logger.debug(f"dump_addon_values service: {service}")
168+
if not os.path.exists(f'{CONFIG_PATH}/addon-values'):
169+
return None
170+
with open(file, "w") as fw:
166171
with open(f'{CONFIG_PATH}/addon-values', 'r') as f:
167-
addon_values = yaml.load(f.read(), Loader=yaml.Loader)
168-
f.write(yaml.dump(
169-
addon_values.get(service["name"], {}).get(service["version"], {}) # noqa
170-
))
172+
addons_values = yaml.load(f.read(), Loader=yaml.Loader)
173+
logger.debug(f"dump_addon_values addons_values: {addons_values}")
174+
addon_values = addons_values.get(service["name"], {}).\
175+
get(service["version"], {})
176+
logger.debug(f"dump_addon_values addon_values: {addon_values}")
177+
if not addon_values:
178+
return None
179+
fw.write(yaml.dump(addon_values))
171180
return file
172181

173182

0 commit comments

Comments
 (0)