Skip to content

Commit a945009

Browse files
committed
helm: preserve cert-manager overlay labels in comparison
Signed-off-by: danish9039 <danishsiddiqui040@gmail.com>
1 parent 7088454 commit a945009

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

tests/helm_kustomize_compare.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,17 @@
66
from typing import Dict, List, Tuple, Any
77
import re
88

9+
CERT_MANAGER_KUBEFLOW_RESOURCES = {
10+
("ClusterIssuer", "kubeflow-self-signing-issuer"),
11+
("NetworkPolicy", "cert-manager-webhook"),
12+
("NetworkPolicy", "default-allow-same-namespace-cert-manager"),
13+
}
14+
15+
CERT_MANAGER_KUBEFLOW_LABELS = {
16+
"app.kubernetes.io/component",
17+
"app.kubernetes.io/name",
18+
}
19+
920
def load_manifests(file_path: str) -> List[Dict]:
1021
"""Load YAML manifests from file."""
1122
with open(file_path, 'r') as f:
@@ -110,6 +121,9 @@ def normalize_manifest(manifest: Dict, component: str = "katib") -> Dict:
110121

111122
# Clean Helm-specific metadata
112123
normalized = clean_helm_metadata(normalized, component)
124+
125+
if component == "cert-manager":
126+
preserve_cert_manager_kubeflow_labels(manifest, normalized)
113127

114128
# Normalize Kustomize hash references
115129
normalized = normalize_kustomize_refs(normalized)
@@ -158,6 +172,24 @@ def remove_empty_values(obj):
158172

159173
return remove_empty_values(normalized)
160174

175+
def preserve_cert_manager_kubeflow_labels(original: Dict, normalized: Dict) -> None:
176+
"""Keep labels that are intentionally added by cert-manager's Kubeflow overlay."""
177+
kind = original.get("kind", "")
178+
name = original.get("metadata", {}).get("name", "")
179+
180+
if (kind, name) not in CERT_MANAGER_KUBEFLOW_RESOURCES:
181+
return
182+
183+
labels = original.get("metadata", {}).get("labels", {})
184+
preserved_labels = {
185+
key: value
186+
for key, value in labels.items()
187+
if key in CERT_MANAGER_KUBEFLOW_LABELS
188+
}
189+
190+
if preserved_labels:
191+
normalized.setdefault("metadata", {}).setdefault("labels", {}).update(preserved_labels)
192+
161193
def get_resource_key(manifest: Dict, component: str = "katib") -> str:
162194
"""Generate a unique key for the resource."""
163195
kind = manifest.get('kind', 'Unknown')

0 commit comments

Comments
 (0)