Skip to content

Commit c7ea49b

Browse files
committed
feat: add auto-detect for OpenShift platform
Signed-off-by: Kevin Conner <[email protected]>
1 parent aff4cee commit c7ea49b

File tree

12 files changed

+94
-47
lines changed

12 files changed

+94
-47
lines changed

.github/workflows/main.yml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -237,8 +237,6 @@ jobs:
237237
run: make dev-images && cat config/default/images.env
238238

239239
- name: Deploy operator container
240-
env:
241-
OPENSHIFT: false
242240
run: make deploy
243241

244242
- name: Wait for operator to be ready
@@ -338,7 +336,6 @@ jobs:
338336
env:
339337
TEST_BASE_CATALOG: registry.redhat.io/redhat/redhat-operator-index:${{ vars.OLM_INDEX_VERSION }}
340338
TEST_TARGET_CATALOG: ${{ env.CATALOG_IMG }}
341-
OPENSHIFT: false
342339
run: go test -p 1 ./test/e2e/... -tags=upgrade -timeout 20m
343340

344341
- name: Archive test artifacts
@@ -403,8 +400,6 @@ jobs:
403400
run: make dev-images && cat config/default/images.env
404401

405402
- name: Deploy operator container
406-
env:
407-
OPENSHIFT: false
408403
run: make deploy
409404

410405
- name: Wait for operator to be ready
@@ -499,7 +494,6 @@ jobs:
499494
- name: Run tests
500495
env:
501496
TEST_MANAGER_IMAGE: ${{ env.IMG }}
502-
OPENSHIFT: false
503497
run: make install && go test ./test/e2e/... -tags=custom_install -p 1 -timeout 20m
504498

505499
- name: Archive test artifacts
@@ -582,8 +576,6 @@ jobs:
582576
run: make dev-images generate && cat config/default/images.env
583577

584578
- name: Deploy operator container
585-
env:
586-
OPENSHIFT: false
587579
run: make deploy
588580

589581
- name: Wait for operator to be ready

Makefile

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,12 +83,7 @@ CONTAINER_TOOL ?= docker
8383
SHELL = /usr/bin/env bash -o pipefail
8484
.SHELLFLAGS = -ec
8585

86-
OPENSHIFT ?= true
87-
88-
CONFIG_DEFAULT=config/env/kubernetes
89-
ifeq ($(OPENSHIFT), true)
90-
CONFIG_DEFAULT=config/env/openshift
91-
endif
86+
CONFIG_DEFAULT=config/default
9287

9388
.PHONY: all
9489
all: build

cmd/main.go

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import (
2020
"crypto/tls"
2121
"flag"
2222
"os"
23-
"strconv"
2423

2524
appconfig "github.com/securesign/operator/internal/config"
2625
"github.com/securesign/operator/internal/controller"
@@ -102,6 +101,7 @@ func main() {
102101
"If set, HTTP/2 will be enabled for the metrics and webhook servers")
103102
flag.Int64Var(&appconfig.CreateTreeDeadline, "create-tree-deadline", appconfig.CreateTreeDeadline, "The time allowance (in seconds) for the create tree job to run before failing.")
104103
utils.BoolFlagOrEnv(&appconfig.Openshift, "openshift", "OPENSHIFT", false, "Enable to ensures the operator applies OpenShift specific configurations.")
104+
utils.StringFlagOrEnv(&appconfig.OpenshiftAPIServerName, "openshift-apiserver-name", "OPENSHIFT_APISERVER_NAME", "openshift-apiserver", "The OpenShift API Server name.")
105105
utils.RelatedImageFlag("trillian-log-signer-image", images.TrillianLogSigner, "The image used for trillian log signer.")
106106
utils.RelatedImageFlag("trillian-log-server-image", images.TrillianServer, "The image used for trillian log server.")
107107
utils.RelatedImageFlag("trillian-db-image", images.TrillianDb, "The image used for trillian's database.")
@@ -126,6 +126,18 @@ func main() {
126126

127127
ctrl.SetLogger(klog.NewKlogr())
128128

129+
if !utils.IsFlagProvided("openshift", "OPENSHIFT") {
130+
openshift, err := kubernetes.DetectOpenShiftPlatform(setupLog, appconfig.OpenshiftAPIServerName)
131+
if err != nil {
132+
setupLog.Info("Platform auto-detection failed, falling back to kubernetes", "error", err)
133+
openshift = false
134+
}
135+
appconfig.Openshift = openshift
136+
setupLog.Info("Platform auto-detected", "openshift", appconfig.Openshift)
137+
} else {
138+
setupLog.Info("Platform explicitly configured via flag/env", "openshift", appconfig.Openshift)
139+
}
140+
129141
// if the enable-http2 flag is false (the default), http/2 should be disabled
130142
// due to its vulnerabilities. More specifically, disabling http/2 will
131143
// prevent from being vulnerable to the HTTP/2 Stream Cancelation and
@@ -222,8 +234,6 @@ func main() {
222234
os.Exit(1)
223235
}
224236

225-
setupLog.WithName("IsOpenshift").Info(strconv.FormatBool(appconfig.Openshift))
226-
227237
setupLog.Info("starting manager")
228238
if err := mgr.Start(ctrl.SetupSignalHandler()); err != nil {
229239
setupLog.Error(err, "problem running manager")

config/env/kubernetes/kustomization.yaml

Lines changed: 0 additions & 5 deletions
This file was deleted.

config/env/openshift/kustomization.yaml

Lines changed: 0 additions & 11 deletions
This file was deleted.

config/env/openshift/manager_openshift_patch.yaml

Lines changed: 0 additions & 12 deletions
This file was deleted.

config/rbac/role.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,14 @@ rules:
6868
- persistentvolumeclaims/finalizers
6969
verbs:
7070
- update
71+
- apiGroups:
72+
- apiregistration.k8s.io
73+
resources:
74+
- apiservices
75+
verbs:
76+
- get
77+
- list
78+
- watch
7179
- apiGroups:
7280
- apps
7381
resources:

go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ require (
2323
k8s.io/apimachinery v0.34.1
2424
k8s.io/client-go v0.34.1
2525
k8s.io/klog/v2 v2.130.1
26+
k8s.io/kube-aggregator v0.34.1
2627
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4
2728
sigs.k8s.io/controller-runtime v0.22.3
2829
sigs.k8s.io/yaml v1.6.0

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,8 @@ k8s.io/client-go v0.34.1 h1:ZUPJKgXsnKwVwmKKdPfw4tB58+7/Ik3CrjOEhsiZ7mY=
243243
k8s.io/client-go v0.34.1/go.mod h1:kA8v0FP+tk6sZA0yKLRG67LWjqufAoSHA2xVGKw9Of8=
244244
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
245245
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
246+
k8s.io/kube-aggregator v0.34.1 h1:WNLV0dVNoFKmuyvdWLd92iDSyD/TSTjqwaPj0U9XAEU=
247+
k8s.io/kube-aggregator v0.34.1/go.mod h1:RU8j+5ERfp0h+gIvWtxRPfsa5nK7rboDm8RST8BJfYQ=
246248
k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 h1:Y3gxNAuB0OBLImH611+UDZcmKS3g6CthxToOb37KgwE=
247249
k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912/go.mod h1:kdmbQkyfwUagLfXIad1y2TdrjPFWp2Q89B3qkRwf/pQ=
248250
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 h1:SjGebBtkBqHFOli+05xYbK8YF1Dzkbzn+gDM4X9T4Ck=

internal/config/config.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package config
22

33
var (
4-
CreateTreeDeadline int64 = 1200
5-
Openshift bool
4+
CreateTreeDeadline int64 = 1200
5+
Openshift bool
6+
OpenshiftAPIServerName string
67
)

0 commit comments

Comments
 (0)