From da54f3c0b445180bba2f10236a093c2f7b228170 Mon Sep 17 00:00:00 2001 From: Khizer Rehan Date: Tue, 14 Apr 2026 11:11:08 +0500 Subject: [PATCH] Refactor kubeLB enablement logic to prioritize enforced settings over enabled flags --- .../app/cluster/details/cluster/edit-cluster/component.ts | 8 ++++---- .../app/shared/components/cluster-summary/component.ts | 8 ++++---- modules/web/src/app/wizard/step/cluster/component.ts | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/modules/web/src/app/cluster/details/cluster/edit-cluster/component.ts b/modules/web/src/app/cluster/details/cluster/edit-cluster/component.ts index a07083626e..192db48c58 100644 --- a/modules/web/src/app/cluster/details/cluster/edit-cluster/component.ts +++ b/modules/web/src/app/cluster/details/cluster/edit-cluster/component.ts @@ -511,15 +511,15 @@ export class EditClusterComponent implements OnInit, OnDestroy { } private _isKubeLBEnabled(datacenter: Datacenter, seedSettings: SeedSettings): boolean { - // If enabled is explicitly false at datacenter level, hide regardless of enforced + if (datacenter.spec.kubelb?.enforced) { + return true; + } if (datacenter.spec.kubelb?.enabled === false) { return false; } - // If enforced or enabled at datacenter level, show - if (datacenter.spec.kubelb?.enforced || datacenter.spec.kubelb?.enabled) { + if (datacenter.spec.kubelb?.enabled) { return true; } - // Fall back to seed-level setting return !!seedSettings?.kubelb?.enableForAllDatacenters; } diff --git a/modules/web/src/app/shared/components/cluster-summary/component.ts b/modules/web/src/app/shared/components/cluster-summary/component.ts index 9a5c553016..8bda81ca84 100644 --- a/modules/web/src/app/shared/components/cluster-summary/component.ts +++ b/modules/web/src/app/shared/components/cluster-summary/component.ts @@ -90,14 +90,14 @@ export class ClusterSummaryComponent implements OnInit { } get kubeLBAssignPublicIPWarning(): boolean { - // Check all sources: cluster spec, datacenter enforced/enabled, and seed-level setting - // Respect explicit datacenter disable (enabled === false) const dcKubeLB = this.datacenter?.spec?.kubelb; let isKubeLBActive = !!this.cluster?.spec?.kubelb?.enabled; if (!isKubeLBActive) { - if (dcKubeLB?.enabled === false) { + if (dcKubeLB?.enforced) { + isKubeLBActive = true; + } else if (dcKubeLB?.enabled === false) { isKubeLBActive = false; - } else if (dcKubeLB?.enforced || dcKubeLB?.enabled) { + } else if (dcKubeLB?.enabled) { isKubeLBActive = true; } else { isKubeLBActive = !!this.seedSettings?.kubelb?.enableForAllDatacenters; diff --git a/modules/web/src/app/wizard/step/cluster/component.ts b/modules/web/src/app/wizard/step/cluster/component.ts index c636c6d290..de594dae30 100644 --- a/modules/web/src/app/wizard/step/cluster/component.ts +++ b/modules/web/src/app/wizard/step/cluster/component.ts @@ -1367,15 +1367,15 @@ export class ClusterStepComponent extends StepBase implements OnInit, ControlVal } private _isKubeLBEnabled(datacenter: Datacenter, seedSettings: SeedSettings): boolean { - // If enabled is explicitly false at datacenter level, hide regardless of enforced + if (datacenter.spec.kubelb?.enforced) { + return true; + } if (datacenter.spec.kubelb?.enabled === false) { return false; } - // If enforced or enabled at datacenter level, show - if (datacenter.spec.kubelb?.enforced || datacenter.spec.kubelb?.enabled) { + if (datacenter.spec.kubelb?.enabled) { return true; } - // Fall back to seed-level setting return !!seedSettings?.kubelb?.enableForAllDatacenters; } }