Skip to content

Commit 33f573b

Browse files
committed
simplify using unstructured
1 parent ac05654 commit 33f573b

File tree

2 files changed

+6
-34
lines changed

2 files changed

+6
-34
lines changed

deploy/operator/bundle/manifests/jumpstarter-operator.clusterserviceversion.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ metadata:
1818
}
1919
]
2020
capabilities: Basic Install
21-
createdAt: "2025-12-19T16:12:44Z"
21+
createdAt: "2025-12-21T17:17:29Z"
2222
operators.operatorframework.io/builder: operator-sdk-v1.41.1
2323
operators.operatorframework.io/project_layout: go.kubebuilder.io/v4
2424
name: jumpstarter-operator.v0.8.0
@@ -304,8 +304,8 @@ spec:
304304
- --health-probe-bind-address=:8081
305305
command:
306306
- /manager
307-
image: quay.io/jumpstarter-dev/jumpstarter-operator:latest
308-
imagePullPolicy: IfNotPresent
307+
image: quay.io/evakhoni/jumpstarter-operator:dev
308+
imagePullPolicy: Always
309309
livenessProbe:
310310
httpGet:
311311
path: /healthz

deploy/operator/internal/controller/jumpstarter/endpoints/discovery.go

Lines changed: 3 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"context"
2121

2222
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
23+
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
2324
"k8s.io/apimachinery/pkg/runtime/schema"
2425
"k8s.io/client-go/discovery"
2526
"k8s.io/client-go/dynamic"
@@ -82,41 +83,12 @@ func detectOpenShiftBaseDomain(config *rest.Config) string {
8283
}
8384

8485
// Extract spec.domain from the unstructured object
85-
domain, found, err := unstructuredNestedString(ingressConfig.Object, "spec", "domain")
86-
if err != nil || !found {
86+
domain, found, err := unstructured.NestedString(ingressConfig.Object, "spec", "domain")
87+
if err != nil || !found || domain == "" {
8788
logger.Info("OpenShift ingress config found but spec.domain not available")
8889
return ""
8990
}
9091

9192
logger.Info("Auto-detected OpenShift cluster domain", "domain", domain)
9293
return domain
9394
}
94-
95-
// unstructuredNestedString extracts a nested string from an unstructured object
96-
func unstructuredNestedString(obj map[string]interface{}, fields ...string) (string, bool, error) {
97-
val, found, err := nestedField(obj, fields...)
98-
if !found || err != nil {
99-
return "", found, err
100-
}
101-
s, ok := val.(string)
102-
if !ok {
103-
return "", false, nil
104-
}
105-
return s, true, nil
106-
}
107-
108-
// nestedField extracts a nested field from a map
109-
func nestedField(obj map[string]interface{}, fields ...string) (interface{}, bool, error) {
110-
var val interface{} = obj
111-
for _, field := range fields {
112-
m, ok := val.(map[string]interface{})
113-
if !ok {
114-
return nil, false, nil
115-
}
116-
val, ok = m[field]
117-
if !ok {
118-
return nil, false, nil
119-
}
120-
}
121-
return val, true, nil
122-
}

0 commit comments

Comments
 (0)