From 8b913e921f723abd306da773bef681d6c051c575 Mon Sep 17 00:00:00 2001 From: kasun Date: Sat, 20 Jun 2026 02:51:09 +0200 Subject: [PATCH] added longhorn pod deletion policy for stateful apps --- 03-k8s-infra/index.ts | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/03-k8s-infra/index.ts b/03-k8s-infra/index.ts index 7e8bef3..2fb978f 100644 --- a/03-k8s-infra/index.ts +++ b/03-k8s-infra/index.ts @@ -122,7 +122,7 @@ new k8s.apiextensions.CustomResource( // ── Longhorn ────────────────────────────────────────────────────────────── -new k8s.helm.v3.Release( +const longhornRelease = new k8s.helm.v3.Release( "longhorn", { name: "longhorn", @@ -140,6 +140,23 @@ new k8s.helm.v3.Release( opts(), ); +new k8s.apiextensions.CustomResource( + "longhorn-pod-deletion-policy", + { + apiVersion: "longhorn.io/v1beta2", + kind: "Setting", + metadata: { + name: "pod-deletion-policy-when-node-is-down", + namespace: "longhorn-system", + }, + value: "delete-pod-and-force-delete-pod", + }, + { + provider: k8sProvider, + dependsOn: [longhornRelease], + }, +); + // ── kube-vip ──────────── const kubeVipNamespace = "kube-system"; @@ -336,7 +353,9 @@ const kubeVipPool = new k8s.core.v1.ConfigMap( "kube-vip-pool", { metadata: { name: "kubevip", namespace: kubeVipNamespace }, - data: { "range-global": pulumi.interpolate`${kubeVipAddress}-${kubeVipAddress}` }, + data: { + "range-global": pulumi.interpolate`${kubeVipAddress}-${kubeVipAddress}`, + }, }, opts(), ); @@ -387,4 +406,3 @@ new k8s.core.v1.ServicePatch( }, opts({ dependsOn: [kubeVip, kubeVipCloudProvider] }), ); -