From 8b913e921f723abd306da773bef681d6c051c575 Mon Sep 17 00:00:00 2001 From: kasun Date: Sat, 20 Jun 2026 02:51:09 +0200 Subject: [PATCH 1/2] 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] }), ); - -- 2.54.0 From 3b1c2f4901fde8334ce4003efc61252503b741b6 Mon Sep 17 00:00:00 2001 From: kasun Date: Sat, 20 Jun 2026 03:14:46 +0200 Subject: [PATCH 2/2] replaced deletion policy with param --- 03-k8s-infra/index.ts | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/03-k8s-infra/index.ts b/03-k8s-infra/index.ts index 2fb978f..b0ccd60 100644 --- a/03-k8s-infra/index.ts +++ b/03-k8s-infra/index.ts @@ -122,7 +122,7 @@ new k8s.apiextensions.CustomResource( // ── Longhorn ────────────────────────────────────────────────────────────── -const longhornRelease = new k8s.helm.v3.Release( + new k8s.helm.v3.Release( "longhorn", { name: "longhorn", @@ -134,29 +134,13 @@ const longhornRelease = new k8s.helm.v3.Release( values: { defaultSettings: { defaultReplicaCount: 3, + podDeletionPolicyWhenNodeIsDown: "delete-pod-and-force-delete-pod", }, }, }, 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"; -- 2.54.0