Skip to content

Commit aed4a44

Browse files
authored
Update operator-sdk to 1.42.0, go to 1.26 and other dependencies (#835)
* Update operator-sdk to 1.42.0 and dependencies * Update RCO and OLO modules
1 parent 4dd0777 commit aed4a44

33 files changed

Lines changed: 576 additions & 145 deletions

Makefile

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# - use the VERSION as arg of the bundle target (e.g make bundle VERSION=0.0.2)
55
# - use environment variables to overwrite this value (e.g export VERSION=0.0.2)
66
VERSION ?= 1.6.0
7-
OPERATOR_SDK_RELEASE_VERSION ?= v1.39.2
7+
OPERATOR_SDK_RELEASE_VERSION ?= v1.42.0
88
LIBERTY_VERSION ?= 26.0.0.2
99

1010
# CHANNELS define the bundle channels used in the bundle.
@@ -155,18 +155,25 @@ kustomize: $(KUSTOMIZE) ## Download kustomize locally if necessary.
155155
$(KUSTOMIZE): $(LOCALBIN)
156156
test -s $(LOCALBIN)/kustomize || GOBIN=$(LOCALBIN) GO111MODULE=on go install sigs.k8s.io/kustomize/kustomize/v5@v$(KUSTOMIZE_VERSION)
157157

158-
CONTROLLER_TOOLS_VERSION ?= 0.16.5
158+
CONTROLLER_TOOLS_VERSION ?= 0.18.0
159159
.PHONY: controller-gen
160160
controller-gen: $(CONTROLLER_GEN) ## Download controller-gen locally if necessary.
161161
$(CONTROLLER_GEN): $(LOCALBIN)
162162
test -s $(LOCALBIN)/controller-gen && $(LOCALBIN)/controller-gen --version | grep -q $(CONTROLLER_TOOLS_VERSION) || GOBIN=$(LOCALBIN) go install sigs.k8s.io/controller-tools/cmd/controller-gen@v$(CONTROLLER_TOOLS_VERSION)
163163

164164
# ENVTEST_K8S_VERSION refers to the version of kubebuilder assets to be downloaded by envtest binary.
165-
ENVTEST_K8S_VERSION = 1.31.0
165+
ENVTEST_VERSION := $(shell go list -m -f "{{ .Version }}" sigs.k8s.io/controller-runtime | awk -F'[v.]' '{printf "release-%d.%d", $$2, $$3}')
166+
ENVTEST_K8S_VERSION := $(shell go list -m -f "{{ .Version }}" k8s.io/api | awk -F'[v.]' '{printf "1.%d", $$3}')
167+
166168
.PHONY: envtest
167169
envtest: $(ENVTEST) ## Download envtest-setup locally if necessary.
168170
$(ENVTEST): $(LOCALBIN)
169-
test -s $(LOCALBIN)/setup-envtest || GOBIN=$(LOCALBIN) go install sigs.k8s.io/controller-runtime/tools/setup-envtest@latest
171+
test -s $(LOCALBIN)/setup-envtest || GOBIN=$(LOCALBIN) go install sigs.k8s.io/controller-runtime/tools/setup-envtest@$(ENVTEST_VERSION)
172+
173+
.PHONY: setup-envtest
174+
setup-envtest: envtest
175+
@$(ENVTEST) use $(ENVTEST_K8S_VERSION) --bin-dir $(LOCALBIN) -p path || { \
176+
echo "Error setting up envtest"; exit 1; }
170177

171178
.PHONY: setup
172179
setup: ## Ensure Operator SDK is installed.

bundle.Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ LABEL operators.operatorframework.io.bundle.metadata.v1=metadata/
77
LABEL operators.operatorframework.io.bundle.package.v1=ibm-websphere-liberty
88
LABEL operators.operatorframework.io.bundle.channels.v1=v1.6
99
LABEL operators.operatorframework.io.bundle.channel.default.v1=v1.6
10-
LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.39.2
10+
LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.42.0
1111
LABEL operators.operatorframework.io.metrics.mediatype.v1=metrics+v1
1212
LABEL operators.operatorframework.io.metrics.project_layout=go.kubebuilder.io/v4
1313

bundle/manifests/ibm-websphere-liberty.clusterserviceversion.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ metadata:
1111
"name": "websphereliberty-app-sample"
1212
},
1313
"spec": {
14-
"applicationImage": "icr.io/appcafe/open-liberty/samples/getting-started@sha256:80a28b6a71ec02369cc13f621e4c3cca0d63b1977be76e15dabbfba48411107f",
14+
"applicationImage": "icr.io/appcafe/open-liberty/samples/getting-started@sha256:c069799108639810d59a0747c044272585dea7e324ef0e9f1550048a637a8680",
1515
"expose": true,
1616
"license": {
1717
"accept": false,
@@ -67,12 +67,12 @@ metadata:
6767
capabilities: Auto Pilot
6868
categories: Application Runtime
6969
containerImage: icr.io/cpopen/websphere-liberty-operator:daily
70-
createdAt: "2026-03-03T20:41:58Z"
70+
createdAt: "2026-03-04T15:14:28Z"
7171
description: Deploy and manage containerized Liberty applications
7272
features.operators.openshift.io/disconnected: "true"
7373
olm.skipRange: '>=1.0.0 <1.6.0'
7474
operators.openshift.io/infrastructure-features: '["disconnected"]'
75-
operators.operatorframework.io/builder: operator-sdk-v1.39.2
75+
operators.operatorframework.io/builder: operator-sdk-v1.42.0
7676
operators.operatorframework.io/project_layout: go.kubebuilder.io/v4
7777
repository: https://github.com/WASdev/websphere-liberty-operator
7878
support: IBM
@@ -1019,7 +1019,7 @@ spec:
10191019
fieldRef:
10201020
fieldPath: metadata.annotations['olm.targetNamespaces']
10211021
- name: RELATED_IMAGE_LIBERTY_SAMPLE_APP
1022-
value: icr.io/appcafe/open-liberty/samples/getting-started@sha256:80a28b6a71ec02369cc13f621e4c3cca0d63b1977be76e15dabbfba48411107f
1022+
value: icr.io/appcafe/open-liberty/samples/getting-started@sha256:c069799108639810d59a0747c044272585dea7e324ef0e9f1550048a637a8680
10231023
- name: RELATED_IMAGE_WEBSPHERE_LIBERTY_OPERATOR
10241024
value: icr.io/cpopen/websphere-liberty-operator:daily
10251025
image: icr.io/cpopen/websphere-liberty-operator:daily
@@ -1315,7 +1315,7 @@ spec:
13151315
provider:
13161316
name: IBM
13171317
relatedImages:
1318-
- image: icr.io/appcafe/open-liberty/samples/getting-started@sha256:80a28b6a71ec02369cc13f621e4c3cca0d63b1977be76e15dabbfba48411107f
1318+
- image: icr.io/appcafe/open-liberty/samples/getting-started@sha256:c069799108639810d59a0747c044272585dea7e324ef0e9f1550048a637a8680
13191319
name: liberty-sample-app
13201320
- image: icr.io/cpopen/websphere-liberty-operator:daily
13211321
name: websphere-liberty-operator

bundle/manifests/liberty.websphere.ibm.com_webspherelibertyapplications.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
22
kind: CustomResourceDefinition
33
metadata:
44
annotations:
5-
controller-gen.kubebuilder.io/version: v0.16.5
5+
controller-gen.kubebuilder.io/version: v0.18.0
66
creationTimestamp: null
77
labels:
88
app.kubernetes.io/instance: websphere-liberty-operator

bundle/manifests/liberty.websphere.ibm.com_webspherelibertydumps.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
22
kind: CustomResourceDefinition
33
metadata:
44
annotations:
5-
controller-gen.kubebuilder.io/version: v0.16.5
5+
controller-gen.kubebuilder.io/version: v0.18.0
66
creationTimestamp: null
77
labels:
88
app.kubernetes.io/instance: websphere-liberty-operator

bundle/manifests/liberty.websphere.ibm.com_webspherelibertyperformancedata.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
22
kind: CustomResourceDefinition
33
metadata:
44
annotations:
5-
controller-gen.kubebuilder.io/version: v0.16.5
5+
controller-gen.kubebuilder.io/version: v0.18.0
66
creationTimestamp: null
77
labels:
88
app.kubernetes.io/instance: websphere-liberty-operator

bundle/manifests/liberty.websphere.ibm.com_webspherelibertytraces.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
22
kind: CustomResourceDefinition
33
metadata:
44
annotations:
5-
controller-gen.kubebuilder.io/version: v0.16.5
5+
controller-gen.kubebuilder.io/version: v0.18.0
66
creationTimestamp: null
77
labels:
88
app.kubernetes.io/instance: websphere-liberty-operator

bundle/metadata/annotations.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ annotations:
66
operators.operatorframework.io.bundle.package.v1: ibm-websphere-liberty
77
operators.operatorframework.io.bundle.channels.v1: v1.6
88
operators.operatorframework.io.bundle.channel.default.v1: v1.6
9-
operators.operatorframework.io.metrics.builder: operator-sdk-v1.39.2
9+
operators.operatorframework.io.metrics.builder: operator-sdk-v1.42.0
1010
operators.operatorframework.io.metrics.mediatype.v1: metrics+v1
1111
operators.operatorframework.io.metrics.project_layout: go.kubebuilder.io/v4
1212

cmd/main.go

Lines changed: 94 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,17 +79,69 @@ func main() {
7979
flag.BoolVar(&enableLeaderElection, "enable-leader-election", false,
8080
"Enable leader election for controller manager. "+
8181
"Enabling this will ensure there is only one active controller manager.")
82-
flag.Parse()
8382

84-
utils.CreateConfigMap(controller.OperatorName)
83+
// var metricsCertPath, metricsCertName, metricsCertKey string
84+
// var webhookCertPath, webhookCertName, webhookCertKey string
85+
// var secureMetrics bool
86+
// var enableHTTP2 bool
87+
// var tlsOpts []func(*tls.Config)
88+
// flag.BoolVar(&secureMetrics, "metrics-secure", true,
89+
// "If set, the metrics endpoint is served securely via HTTPS. Use --metrics-secure=false to use HTTP instead.")
90+
// flag.StringVar(&webhookCertPath, "webhook-cert-path", "", "The directory that contains the webhook certificate.")
91+
// flag.StringVar(&webhookCertName, "webhook-cert-name", "tls.crt", "The name of the webhook certificate file.")
92+
// flag.StringVar(&webhookCertKey, "webhook-cert-key", "tls.key", "The name of the webhook key file.")
93+
// flag.StringVar(&metricsCertPath, "metrics-cert-path", "",
94+
// "The directory that contains the metrics server certificate.")
95+
// flag.StringVar(&metricsCertName, "metrics-cert-name", "tls.crt", "The name of the metrics server certificate file.")
96+
// flag.StringVar(&metricsCertKey, "metrics-cert-key", "tls.key", "The name of the metrics server key file.")
97+
// flag.BoolVar(&enableHTTP2, "enable-http2", false,
98+
// "If set, HTTP/2 will be enabled for the metrics and webhook servers")
8599

86100
opts := zap.Options{
87101
Level: common.LevelFunc,
88102
StacktraceLevel: common.StackLevelFunc,
89103
Development: true,
90104
}
105+
// opts.BindFlags(flag.CommandLine)
106+
flag.Parse()
107+
108+
utils.CreateConfigMap(controller.OperatorName)
91109
ctrl.SetLogger(zap.New(zap.UseFlagOptions(&opts)))
92110

111+
// disableHTTP2 := func(c *tls.Config) {
112+
// setupLog.Info("disabling http/2")
113+
// c.NextProtos = []string{"http/1.1"}
114+
// }
115+
116+
// if !enableHTTP2 {
117+
// tlsOpts = append(tlsOpts, disableHTTP2)
118+
// }
119+
120+
// // Create watchers for metrics and webhooks certificates
121+
// var metricsCertWatcher, webhookCertWatcher *certwatcher.CertWatcher
122+
123+
// // Initial webhook TLS options
124+
// webhookTLSOpts := tlsOpts
125+
126+
// if len(webhookCertPath) > 0 {
127+
// setupLog.Info("Initializing webhook certificate watcher using provided certificates",
128+
// "webhook-cert-path", webhookCertPath, "webhook-cert-name", webhookCertName, "webhook-cert-key", webhookCertKey)
129+
130+
// var err error
131+
// webhookCertWatcher, err = certwatcher.New(
132+
// filepath.Join(webhookCertPath, webhookCertName),
133+
// filepath.Join(webhookCertPath, webhookCertKey),
134+
// )
135+
// if err != nil {
136+
// setupLog.Error(err, "Failed to initialize webhook certificate watcher")
137+
// os.Exit(1)
138+
// }
139+
140+
// webhookTLSOpts = append(webhookTLSOpts, func(config *tls.Config) {
141+
// config.GetCertificate = webhookCertWatcher.GetCertificate
142+
// })
143+
// }
144+
93145
// see https://github.com/operator-framework/operator-sdk/issues/1813
94146
leaseDuration := 30 * time.Second
95147
renewDeadline := 20 * time.Second
@@ -102,8 +154,33 @@ func main() {
102154

103155
metricsServerOptions := metricsserver.Options{
104156
BindAddress: metricsAddr,
157+
// SecureServing: secureMetrics,
158+
// TLSOpts: tlsOpts,
105159
}
106160

161+
// if secureMetrics {
162+
// metricsServerOptions.FilterProvider = filters.WithAuthenticationAndAuthorization
163+
// }
164+
165+
// if len(metricsCertPath) > 0 {
166+
// setupLog.Info("Initializing metrics certificate watcher using provided certificates",
167+
// "metrics-cert-path", metricsCertPath, "metrics-cert-name", metricsCertName, "metrics-cert-key", metricsCertKey)
168+
169+
// var err error
170+
// metricsCertWatcher, err = certwatcher.New(
171+
// filepath.Join(metricsCertPath, metricsCertName),
172+
// filepath.Join(metricsCertPath, metricsCertKey),
173+
// )
174+
// if err != nil {
175+
// setupLog.Error(err, "to initialize metrics certificate watcher", "error", err)
176+
// os.Exit(1)
177+
// }
178+
179+
// metricsServerOptions.TLSOpts = append(metricsServerOptions.TLSOpts, func(config *tls.Config) {
180+
// config.GetCertificate = metricsCertWatcher.GetCertificate
181+
// })
182+
// }
183+
107184
mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{
108185
Scheme: scheme,
109186
Metrics: metricsServerOptions,
@@ -162,6 +239,21 @@ func main() {
162239
os.Exit(1)
163240
}
164241
// +kubebuilder:scaffold:builder
242+
// if metricsCertWatcher != nil {
243+
// setupLog.Info("Adding metrics certificate watcher to manager")
244+
// if err := mgr.Add(metricsCertWatcher); err != nil {
245+
// setupLog.Error(err, "unable to add metrics certificate watcher to manager")
246+
// os.Exit(1)
247+
// }
248+
// }
249+
250+
// if webhookCertWatcher != nil {
251+
// setupLog.Info("Adding webhook certificate watcher to manager")
252+
// if err := mgr.Add(webhookCertWatcher); err != nil {
253+
// setupLog.Error(err, "unable to add webhook certificate watcher to manager")
254+
// os.Exit(1)
255+
// }
256+
// }
165257

166258
if err := mgr.AddHealthzCheck("healthz", healthz.Ping); err != nil {
167259
setupLog.Error(err, "unable to set up health check")
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# The following manifests contain a self-signed issuer CR and a metrics certificate CR.
2+
# More document can be found at https://docs.cert-manager.io
3+
apiVersion: cert-manager.io/v1
4+
kind: Certificate
5+
metadata:
6+
name: metrics-certs # this name should match the one appeared in kustomizeconfig.yaml
7+
namespace: system
8+
spec:
9+
dnsNames:
10+
# SERVICE_NAME and SERVICE_NAMESPACE will be substituted by kustomize
11+
# replacements in the config/default/kustomization.yaml file.
12+
- SERVICE_NAME.SERVICE_NAMESPACE.svc
13+
issuerRef:
14+
kind: Issuer
15+
name: selfsigned-issuer
16+
secretName: metrics-server-cert

0 commit comments

Comments
 (0)