Skip to content

Commit 21b30a1

Browse files
authored
fix(k8s): share one PVC across multi-role ExApp Deployments (#97)
Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
1 parent 66c7a27 commit 21b30a1

1 file changed

Lines changed: 9 additions & 4 deletions

File tree

haproxy_agent.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,9 @@ def exapp_container_name(self) -> str:
155155
@computed_field
156156
@property
157157
def exapp_container_volume(self) -> str:
158-
return f"{self.exapp_container_name}_data"
158+
# Role-agnostic multirole K8s Deployments share one PVC and mount it at the same path as APP_PERSISTENT_STORAGE
159+
base = f"nc_app_{self.instance_id}_{self.name}" if self.instance_id else f"nc_app_{self.name}"
160+
return f"{base}_data"
159161

160162
@computed_field
161163
@property
@@ -2548,6 +2550,9 @@ async def k8s_exapp_create(request: web.Request):
25482550
payload = await _parse_json_payload(request, CreateExAppPayload)
25492551
deployment_name = payload.exapp_k8s_name
25502552
pvc_name = payload.exapp_k8s_volume_name
2553+
base_exapp_name = _sanitize_k8s_name(
2554+
f"nc_app_{payload.instance_id}_{payload.name}" if payload.instance_id else f"nc_app_{payload.name}"
2555+
)
25512556

25522557
LOGGER.info("Creating K8s resources for '%s' (ns=%s).", payload.name, K8S_NAMESPACE)
25532558

@@ -2557,9 +2562,9 @@ async def k8s_exapp_create(request: web.Request):
25572562
"metadata": {
25582563
"name": pvc_name,
25592564
"labels": {
2560-
"app": deployment_name,
2561-
"app.kubernetes.io/name": deployment_name,
2562-
"app.kubernetes.io/component": "exapp",
2565+
"app.kubernetes.io/name": base_exapp_name,
2566+
"app.kubernetes.io/part-of": base_exapp_name,
2567+
"app.kubernetes.io/component": "exapp-data",
25632568
},
25642569
},
25652570
"spec": {

0 commit comments

Comments
 (0)