Skip to content

Commit a562aa5

Browse files
committed
chore(helmbroker): add addonValues
1 parent b2ab86c commit a562aa5

4 files changed

Lines changed: 25 additions & 3 deletions

File tree

charts/helmbroker/templates/helmbroker-cm.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,6 @@ data:
1313
- name: {{ .name }}
1414
url: {{ .url }}
1515
{{- end }}
16+
addon-values: |
17+
{{- (tpl .Values.addonValues $) | nindent 4 }}
1618
{{- end }}

charts/helmbroker/values.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ celery:
5858
extraMatchLabels:
5959
app: "drycc-helmbroker-celery"
6060

61+
# Default override of addon values
62+
addonValues: {}
63+
6164
persistence:
6265
enabled: true
6366
accessMode: ReadWriteMany

rootfs/helmbroker/tasks.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from .celery import app
1111
from .utils import get_plan_path, get_chart_path, get_cred_value, \
1212
InstanceLock, dump_instance_meta, dump_binding_meta, load_instance_meta, \
13-
get_instance_file, helm, format_paras_to_helm_args
13+
get_instance_file, helm, dump_addon_values, format_paras_to_helm_args
1414

1515
logger = logging.getLogger(__name__)
1616

@@ -30,6 +30,7 @@ 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)
3334
args = [
3435
"install",
3536
details.context["instance_name"],
@@ -41,6 +42,8 @@ def provision(instance_id: str, details: ProvisionDetails):
4142
"--timeout",
4243
"25m0s",
4344
"-f",
45+
addon_values_file,
46+
"-f",
4447
values_file,
4548
"--set",
4649
f"fullnameOverride=helmbroker-{details.context['instance_name']}"
@@ -80,6 +83,7 @@ def update(instance_id: str, details: UpdateDetails):
8083
dump_instance_meta(instance_id, data)
8184
chart_path = get_chart_path(instance_id)
8285
values_file = os.path.join(get_plan_path(instance_id), "values.yaml")
86+
addon_values_file = dump_addon_values(details.service_id, instance_id)
8387
args = [
8488
"upgrade",
8589
details.context["instance_name"],
@@ -92,6 +96,8 @@ def update(instance_id: str, details: UpdateDetails):
9296
"25m0s",
9397
"--reuse-values",
9498
"-f",
99+
addon_values_file,
100+
"-f",
95101
values_file,
96102
"--set",
97103
f"fullnameOverride=helmbroker-{details.context['instance_name']}"

rootfs/helmbroker/utils.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import copy
99

1010
from jsonschema import validate
11-
from .config import INSTANCES_PATH, ADDONS_PATH
11+
from .config import INSTANCES_PATH, ADDONS_PATH, CONFIG_PATH
1212

1313

1414
REGISTRY_CONFIG_SUFFIX = '.config/helm/registry.json'
@@ -43,7 +43,7 @@ def helm(instance_id, *args, output_type="text"):
4343
"--repository-config",
4444
os.path.join(instance_path, REPOSITORY_CONFIG_SUFFIX),
4545
])
46-
return command("helm", *args, output_type=output_type)
46+
return command("helm", *new_args, output_type=output_type)
4747

4848

4949
INSTANCE_META_SCHEMA = {
@@ -102,6 +102,17 @@ def dump_raw_values(instance_id, data):
102102
return file
103103

104104

105+
def dump_addon_values(service_id, instance_id):
106+
timestamp = time.time()
107+
instance_path = get_instance_path(instance_id)
108+
file = f"{instance_path}/addon-values-{timestamp}.yaml"
109+
with open(file, "w") as f:
110+
with open(f'{CONFIG_PATH}/addon-values', 'r') as f:
111+
addon_values = yaml.load(f.read(), Loader=yaml.Loader)
112+
f.write(yaml.dump(addon_values.get(service_id, {})))
113+
return file
114+
115+
105116
BINDING_META_SCHEMA = {
106117
"type": "object",
107118
"properties": {

0 commit comments

Comments
 (0)