Skip to content

Commit ef9408f

Browse files
authored
Update dependencies compile against K8s v1.33 (#737)
1 parent fd39d5a commit ef9408f

26 files changed

+513
-322
lines changed

.github/workflows/coherence-matrix.yaml

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ jobs:
3535
matrixName:
3636
- "15.1.1-0-SNAPSHOT"
3737
- "15.1.1-0-SNAPSHOT-Graal"
38-
- "24.09"
39-
- "24.09-Graal"
38+
- "25.03"
39+
- "25.03-Graal"
4040
- "14.1.2-0"
4141
- "14.1.2-0-SNAPSHOT"
4242
- "22.06"
@@ -61,60 +61,60 @@ jobs:
6161
coherenceIsJava8: false
6262
baseImage: "gcr.io/distroless/java17-debian12"
6363

64-
- matrixName: "24.09"
65-
coherenceVersion: "24.09"
66-
coherenceImage: "ghcr.io/oracle/coherence-ce:24.09"
64+
- matrixName: "25.03"
65+
coherenceVersion: "25.03.1"
66+
coherenceImage: "ghcr.io/oracle/coherence-ce:25.03.1"
6767
javaVersion: 17
6868
coherenceIsJava8: false
6969
baseImage: "gcr.io/distroless/java17-debian12"
7070

71-
- matrixName: "24.09-Graal"
72-
coherenceVersion: "24.09"
73-
coherenceImage: "ghcr.io/oracle/coherence-ce:24.09-graal"
71+
- matrixName: "25.03-Graal"
72+
coherenceVersion: "25.03.1"
73+
coherenceImage: "ghcr.io/oracle/coherence-ce:25.03.1-graal"
7474
javaVersion: 17
7575
coherenceIsJava8: false
7676
baseImage: "gcr.io/distroless/java17-debian12"
7777

7878
- matrixName: "14.1.2-0-SNAPSHOT"
79-
coherenceVersion: "14.1.2-0-1-SNAPSHOT"
80-
coherenceImage: "iad.ocir.io/odx-stateservice/test/coherence:14.1.2-0-1-SNAPSHOT"
79+
coherenceVersion: "14.1.2-0-3-SNAPSHOT"
80+
coherenceImage: "iad.ocir.io/odx-stateservice/test/coherence:14.1.2-0-3-SNAPSHOT"
8181
javaVersion: 17
8282
coherenceIsJava8: false
8383
baseImage: "gcr.io/distroless/java17-debian12"
8484

8585
- matrixName: "14.1.2-0"
86-
coherenceVersion: "14.1.2-0-0"
86+
coherenceVersion: "14.1.2-0-2"
8787
javaVersion: 17
8888
coherenceIsJava8: false
89-
coherenceImage: "ghcr.io/oracle/coherence-ce:14.1.2-0-0"
89+
coherenceImage: "ghcr.io/oracle/coherence-ce:14.1.2-0-2"
9090
baseImage: "gcr.io/distroless/java17-debian12"
9191

9292
- matrixName: "22.06"
93-
coherenceVersion: "22.06.10"
94-
coherenceImage: "ghcr.io/oracle/coherence-ce:22.06.10"
93+
coherenceVersion: "22.06.12"
94+
coherenceImage: "ghcr.io/oracle/coherence-ce:22.06.12"
9595
javaVersion: 11
9696
coherenceIsJava8: false
9797
baseImage: "gcr.io/distroless/java11-debian11"
9898

9999
- matrixName: "14.1.1-2206-SNAPSHOT"
100-
coherenceVersion: "14.1.1-2206-11-SNAPSHOT"
101-
coherenceImage: "iad.ocir.io/odx-stateservice/test/coherence:14.1.1-2206-11-SNAPSHOT"
100+
coherenceVersion: "14.1.1-2206-13-SNAPSHOT"
101+
coherenceImage: "iad.ocir.io/odx-stateservice/test/coherence:14.1.1-2206-13-SNAPSHOT"
102102
javaVersion: 11
103103
coherenceIsJava8: false
104104
baseImage: "gcr.io/distroless/java11-debian11"
105105

106106
- matrixName: "14.1.1-0-SNAPSHOT"
107-
coherenceVersion: "14.1.1-0-20-SNAPSHOT"
108-
coherenceImage: "iad.ocir.io/odx-stateservice/test/coherence:14.1.1-0-20-SNAPSHOT"
107+
coherenceVersion: "14.1.1-0-21-SNAPSHOT"
108+
coherenceImage: "iad.ocir.io/odx-stateservice/test/coherence:14.1.1-0-21-SNAPSHOT"
109109
javaVersion: 11
110110
coherenceIsJava8: false
111111
baseImage: "gcr.io/distroless/java11-debian11"
112112

113113
- matrixName: "14.1.1-0"
114-
coherenceVersion: "14.1.1-0-19"
114+
coherenceVersion: "14.1.1-0-20"
115115
javaVersion: 11
116116
coherenceIsJava8: false
117-
coherenceImage: "ghcr.io/oracle/coherence-ce:14.1.1-0-19"
117+
coherenceImage: "ghcr.io/oracle/coherence-ce:14.1.1-0-20"
118118
baseImage: "gcr.io/distroless/java11-debian11"
119119

120120
- matrixName: "14.1.1.0.0"
@@ -132,8 +132,8 @@ jobs:
132132
baseImage: "gcr.io/distroless/java11-debian11"
133133

134134
- matrixName: "12.2.1-4-SNAPSHOT"
135-
coherenceVersion: "12.2.1-4-24-SNAPSHOT"
136-
coherenceImage: "iad.ocir.io/odx-stateservice/test/coherence:12.2.1-4-24-SNAPSHOT"
135+
coherenceVersion: "12.2.1-4-26-SNAPSHOT"
136+
coherenceImage: "iad.ocir.io/odx-stateservice/test/coherence:12.2.1-4-26-SNAPSHOT"
137137
javaVersion: 8
138138
coherenceIsJava8: true
139139
baseImage: "gcr.io/distroless/java11-debian11"
@@ -231,6 +231,10 @@ jobs:
231231
echo "Loading Images to Kind"
232232
make kind-load
233233
make kind-load-compatibility
234+
make remove-all-images
235+
sudo docker image prune --all --force
236+
sudo docker builder prune -a
237+
df -h
234238
echo "Running Coherence Compatibility Tests"
235239
export TEST_LOGS_DIR=build/_output/test-logs/${{ matrix.matrixName }}
236240
make coherence-compatibility-test

.github/workflows/compatibility-tests.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,10 @@ jobs:
163163
shell: bash
164164
run: |
165165
make kind-load
166+
make remove-all-images
167+
sudo docker image prune --all --force
168+
sudo docker builder prune -a
169+
df -h
166170
167171
- name: Compatibility Tests
168172
shell: bash

.github/workflows/prometheus-tests.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,10 @@ jobs:
108108
run: |
109109
make all
110110
make kind-load
111+
make remove-all-images
112+
sudo docker image prune --all --force
113+
sudo docker builder prune -a
114+
df -h
111115
make e2e-prometheus-test
112116
113117
- uses: actions/upload-artifact@v4

Makefile

Lines changed: 54 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ OPERATOR_RELEASE_AMD := $(OPERATOR_RELEASE_REGISTRY)/$(OPERATOR_IMAGE_NAME)
7777
# ----------------------------------------------------------------------------------------------------------------------
7878
# The Coherence version to build against - must be a Java 8 compatible version
7979
COHERENCE_VERSION ?= 21.12.5
80-
COHERENCE_VERSION_LTS ?= 14.1.2-0-1
81-
COHERENCE_CE_LATEST ?= 24.09.2
80+
COHERENCE_VERSION_LTS ?= 14.1.2-0-2
81+
COHERENCE_CE_LATEST ?= 25.03.1
8282

8383
# The default Coherence image the Operator will run if no image is specified
8484
COHERENCE_IMAGE_REGISTRY ?= $(ORACLE_REGISTRY)
@@ -1067,23 +1067,31 @@ $(TOOLS_BIN)/opm: ## Download opm locally if necessary.
10671067

10681068
# The image tag given to the resulting catalog image
10691069
CATALOG_IMAGE_NAME := $(OLM_IMAGE_REGISTRY)/$(OPERATOR_IMAGE_NAME)-catalog
1070-
CATALOG_IMAGE := $(CATALOG_IMAGE_NAME):latest
1070+
CATALOG_TAG ?= latest
1071+
CATALOG_IMAGE := $(CATALOG_IMAGE_NAME):$(CATALOG_TAG)
10711072

10721073
# Build a catalog image by adding bundle images to an empty catalog using the operator package manager tool, 'opm'.
1073-
# This recipe invokes 'opm' in 'semver' bundle add mode. For more information on add modes, see:
1074+
# This is effectively the same thing that will happen in the OpenShift community operator repo
1075+
# This recipe invokes 'opm' in 'basic' bundle add mode. For more information on add modes, see:
10741076
# https://github.com/operator-framework/community-operators/blob/7f1438c/docs/packaging-operator.md#updating-your-existing-operator
1075-
.PHONY: catalog-build
1076-
catalog-build: opm ## Build a catalog image (the bundle image must have been pushed first).
1077+
.PHONY: catalog-prepare
1078+
catalog-prepare: opm $(TOOLS_BIN)/yq ## Build a catalog image (the bundle image must have been pushed first).
10771079
rm -rf catalog || true
10781080
mkdir -p catalog
10791081
rm catalog.Dockerfile || true
10801082
$(OPM) generate dockerfile catalog
1081-
cp $(SCRIPTS_DIR)/olm/olm-catalog-template.yaml $(BUILD_OUTPUT)/olm-catalog-template.yaml
1082-
printf " - Image: $(BUNDLE_IMAGE)" >> $(BUILD_OUTPUT)/olm-catalog-template.yaml
1083-
$(OPM) alpha render-template semver -o yaml < $(BUILD_OUTPUT)/olm-catalog-template.yaml > catalog/operator.yaml
1083+
mkdir -p $(BUILD_OUTPUT)/catalog || true
1084+
cp $(SCRIPTS_DIR)/olm/catalog-template.yaml $(BUILD_OUTPUT)/catalog/catalog-template.yaml
1085+
yq -i e 'select(.schema == "olm.template.basic").entries[] |= select(.schema == "olm.channel" and .name == "stable").entries += [{"name" : "coherence-operator.v$(VERSION)", "replaces": "coherence-operator.v$(PREV_VERSION)"}]' $(BUILD_OUTPUT)/catalog/catalog-template.yaml
1086+
yq -i e 'select(.schema == "olm.template.basic").entries += [{"schema" : "olm.bundle", "image": "$(BUNDLE_IMAGE)"}]' $(BUILD_OUTPUT)/catalog/catalog-template.yaml
1087+
$(OPM) alpha render-template basic -o yaml $(BUILD_OUTPUT)/catalog/catalog-template.yaml > catalog/operator.yaml
10841088
$(OPM) validate catalog
10851089
$(DOCKER_CMD) build --load -f catalog.Dockerfile -t $(CATALOG_IMAGE) .
10861090

1091+
.PHONY: catalog-build
1092+
catalog-build: catalog-prepare ## Build a catalog image (the bundle image must have been pushed first).
1093+
$(DOCKER_CMD) build --load -f catalog.Dockerfile -t $(CATALOG_IMAGE) .
1094+
10871095
# Push the catalog image.
10881096
.PHONY: catalog-push
10891097
catalog-push: catalog-build ## Push a catalog image.
@@ -1129,30 +1137,47 @@ endif
11291137

11301138
.PHONY: olm-undeploy-catalog
11311139
olm-undeploy-catalog: ## Undeploy the Operator Catalog from OLM
1132-
$(KUBECTL_CMD) -n $(CATALOG_SOURCE_NAMESPACE) delete catalogsource coherence-operator-catalog
1133-
1140+
$(KUBECTL_CMD) -n $(CATALOG_SOURCE_NAMESPACE) delete catalogsource coherence-operator-catalog || true
11341141

1135-
.PHONY: wait-for-olm-deploy
1136-
wait-for-olm-deploy: export POD=$(shell $(KUBECTL_CMD) -n $(CATALOG_SOURCE_NAMESPACE) get pod -l olm.catalogSource=coherence-operator-catalog -o name)
1137-
wait-for-olm-deploy: ## Wait for the Operator Catalog to be deployed into OLM
1142+
.PHONY: wait-for-olm-catalog-deploy
1143+
wait-for-olm-catalog-deploy: export POD=$(shell $(KUBECTL_CMD) -n $(CATALOG_SOURCE_NAMESPACE) get pod -l olm.catalogSource=coherence-operator-catalog -o name)
1144+
wait-for-olm-catalog-deploy: ## Wait for the Operator Catalog to be deployed into OLM
11381145
echo "Operator Catalog Source Pods:"
11391146
$(KUBECTL_CMD) -n $(CATALOG_SOURCE_NAMESPACE) get pod -l olm.catalogSource=coherence-operator-catalog
11401147
echo "Waiting for Operator Catalog Source to be ready. Pod: $(POD)"
11411148
$(KUBECTL_CMD) -n $(CATALOG_SOURCE_NAMESPACE) wait --for condition=ready --timeout 480s $(POD)
11421149

11431150
.PHONY: olm-deploy
1144-
olm-deploy: ## Deploy the Operator into the coherence namespace using OLM
1145-
$(KUBECTL_CMD) create ns coherence || true
1146-
$(KUBECTL_CMD) -n coherence apply -f $(SCRIPTS_DIR)/olm/operator-group.yaml
1147-
$(KUBECTL_CMD) -n coherence apply -f $(SCRIPTS_DIR)/olm/operator-subscription.yaml
1151+
olm-deploy: ## Deploy the Operator into the test namespace using OLM
1152+
cp $(SCRIPTS_DIR)/olm/operator-group.yaml $(BUILD_OUTPUT)/catalog/operator-group.yaml
1153+
$(SED) -e 's^NAMESPACE_PLACEHOLDER^$(CATALOG_SOURCE_NAMESPACE)^g' $(BUILD_OUTPUT)/catalog/operator-group.yaml
1154+
cp $(SCRIPTS_DIR)/olm/operator-subscription.yaml $(BUILD_OUTPUT)/catalog/operator-subscription.yaml
1155+
$(SED) -e 's^NAMESPACE_PLACEHOLDER^$(CATALOG_SOURCE_NAMESPACE)^g' $(BUILD_OUTPUT)/catalog/operator-subscription.yaml
1156+
$(KUBECTL_CMD) create ns $(OPERATOR_NAMESPACE) || true
1157+
$(KUBECTL_CMD) -n $(OPERATOR_NAMESPACE) apply -f $(BUILD_OUTPUT)/catalog/operator-group.yaml
1158+
$(KUBECTL_CMD) -n $(OPERATOR_NAMESPACE) apply -f $(BUILD_OUTPUT)/catalog/operator-subscription.yaml
11481159
sleep 10
1149-
$(KUBECTL_CMD) -n coherence get ip
1150-
$(KUBECTL_CMD) -n coherence get csv
1151-
$(KUBECTL_CMD) -n coherence wait --for condition=available deployment/coherence-operator-controller-manager -timeout 480s
1160+
$(KUBECTL_CMD) -n $(OPERATOR_NAMESPACE) get ip
1161+
$(KUBECTL_CMD) -n $(OPERATOR_NAMESPACE) get csv
1162+
$(KUBECTL_CMD) -n $(OPERATOR_NAMESPACE) wait --for condition=available deployment/coherence-operator-controller-manager --timeout 480s
11521163

11531164
.PHONY: olm-undeploy
11541165
olm-undeploy: ## Undeploy the Operator that was installed with OLM
1155-
$(KUBECTL_CMD) -n coherence delete csv coherence-operator.v$(VERSION)
1166+
$(KUBECTL_CMD) -n coherence delete csv coherence-operator.v$(VERSION) || true
1167+
$(KUBECTL_CMD) -n $(OPERATOR_NAMESPACE) apply -f $(BUILD_OUTPUT)/catalog/operator-group.yaml || true
1168+
$(KUBECTL_CMD) -n $(OPERATOR_NAMESPACE) apply -f $(BUILD_OUTPUT)/catalog/operator-subscription.yaml || true
1169+
1170+
.PHONY: olm-e2e-test
1171+
olm-e2e-test: export MF = $(MAKEFLAGS)
1172+
olm-e2e-test: prepare-olm-e2e-test ## Run the Operator end-to-end 'remote' functional tests using an Operator deployed with OLM in k8s
1173+
$(MAKE) run-e2e-test $${MF} \
1174+
; rc=$$? \
1175+
; $(MAKE) olm-undeploy $${MF} \
1176+
; $(MAKE) delete-namespace $${MF} \
1177+
; exit $$rc
1178+
1179+
.PHONY: prepare-olm-e2e-test
1180+
prepare-olm-e2e-test: reset-namespace create-ssl-secrets ensure-pull-secret olm-deploy
11561181

11571182
# ======================================================================================================================
11581183
# Targets to run a local container registry
@@ -2334,29 +2359,26 @@ $(TOOLS_BIN)/yq:
23342359
# ======================================================================================================================
23352360
##@ Cert Manager
23362361

2337-
CERT_MANAGER_VERSION ?= v1.8.0
2338-
# Get latest version...
2339-
# curl -s -H "Accept: application/vnd.github.v3+json" --header $(GH_AUTH) https://api.github.com/repos/cert-manager/cert-manager/releases | jq '.[0].tag_name' | tr -d '"'
2362+
CERT_MANAGER_VERSION ?= v1.17.2
23402363

23412364
.PHONY: install-cmctl
23422365
install-cmctl: $(TOOLS_BIN)/cmctl ## Install the Cert Manager CLI into $(TOOLS_BIN)
23432366

23442367
CMCTL = $(TOOLS_BIN)/cmctl
23452368
$(TOOLS_BIN)/cmctl:
23462369
OS=$(shell go env GOOS) && ARCH=$(shell go env GOARCH) && \
2347-
curl -sSL -o cmctl.tar.gz https://github.com/cert-manager/cert-manager/releases/download/$(CERT_MANAGER_VERSION)/cmctl-$${OS}-$${ARCH}.tar.gz --header $(GH_AUTH)
2348-
tar xzf cmctl.tar.gz
2370+
curl -fsSL -o cmctl https://github.com/cert-manager/cmctl/releases/latest/download/cmctl_${OS}_${ARCH}
2371+
chmod +x cmctl
23492372
mv cmctl $(TOOLS_BIN)
2350-
rm cmctl.tar.gz
23512373

23522374
.PHONY: install-cert-manager
23532375
install-cert-manager: $(TOOLS_BIN)/cmctl ## Install Cert manager into the Kubernetes cluster
2354-
$(KUBECTL_CMD) apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.8.0/cert-manager.yam
2376+
$(KUBECTL_CMD) apply -f https://github.com/cert-manager/cert-manager/releases/download/$(CERT_MANAGER_VERSION)/cert-manager.yaml
23552377
$(CMCTL) check api --wait=10m
23562378

23572379
.PHONY: uninstall-cert-manager
23582380
uninstall-cert-manager: ## Uninstall Cert manager from the Kubernetes cluster
2359-
$(KUBECTL_CMD) delete -f https://github.com/cert-manager/cert-manager/releases/download/$(CERT_MANAGER_VERSION)/cert-manager.yam
2381+
$(KUBECTL_CMD) delete -f https://github.com/cert-manager/cert-manager/releases/download/$(CERT_MANAGER_VERSION)/cert-manager.yaml
23602382

23612383

23622384
# ======================================================================================================================
@@ -2978,7 +3000,8 @@ new-version: ## Update the Operator Version (must be run with NEXT_VERSION=x.y.z
29783000
find config \( -name '*.yaml' -o -name '*.json' \) -exec $(SED) 's/$(subst .,\.,$(VERSION))/$(NEXT_VERSION)/g' {} +
29793001
find helm-charts \( -name '*.yaml' -o -name '*.json' \) -exec $(SED) 's/$(subst .,\.,$(VERSION))/$(NEXT_VERSION)/g' {} +
29803002
$(SED) -e 's/<revision>$(subst .,\.,$(VERSION))<\/revision>/<revision>$(NEXT_VERSION)<\/revision>/g' java/pom.xml
2981-
printf " - Image: $(BUNDLE_IMAGE)" >> $(SCRIPTS_DIR)/olm/olm-catalog-template.yaml
3003+
yq -i e 'select(.schema == "olm.template.basic").entries[] |= select(.schema == "olm.channel" and .name == "stable").entries += [{"name" : "coherence-operator.v$(VERSION)", "replaces": "coherence-operator.v$(PREV_VERSION)"}]' $(SCRIPTS_DIR)/olm/olm-catalog-template.yaml
3004+
yq -i e 'select(.schema == "olm.template.basic").entries += [{"schema" : "olm.bundle", "image": "$(BUNDLE_IMAGE)"}]' $(SCRIPTS_DIR)/olm/olm-catalog-template.yaml
29823005

29833006

29843007
GIT_BRANCH="version-update-$(VERSION)"

config/manifests/bases/coherence-operator.clusterserviceversion.yaml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,45 @@ spec:
3939
displayName: Coherence
4040
kind: Coherence
4141
name: coherence.coherence.oracle.com
42+
resources:
43+
- kind: StatefulSet
44+
name: coherence-cluster
45+
version: v1
46+
specDescriptors:
47+
- description: The desired number of member Pods for the cluster.
48+
displayName: Replicas
49+
path: replicas
50+
statusDescriptors:
51+
- description: The desired number of member Pods for the deployment.
52+
displayName: Replicas
53+
path: replicas
54+
- displayName: ReadyReplicas
55+
path: readyReplicas
56+
x-descriptors:
57+
- urn:alm:descriptor:com.tectonic.ui:readyReplicas
4258
version: v1
4359
- description: |-
4460
CoherenceJob is the top level schema for the CoherenceJob API and custom resource definition (CRD)
4561
for configuring Coherence Job workloads.
4662
displayName: Coherence Job
4763
kind: CoherenceJob
4864
name: coherencejob.coherence.oracle.com
65+
resources:
66+
- kind: Job
67+
name: coherence-job
68+
version: v1
69+
specDescriptors:
70+
- description: The desired number of Pods for the job.
71+
displayName: Replicas
72+
path: replicas
73+
statusDescriptors:
74+
- description: The desired number of Pods for the job.
75+
displayName: Replicas
76+
path: replicas
77+
- displayName: ReadyReplicas
78+
path: readyReplicas
79+
x-descriptors:
80+
- urn:alm:descriptor:com.tectonic.ui:readyReplicas
4981
version: v1
5082
description: |
5183
The Oracle Coherence Kubernetes Operator enables easy management of Coherence clusters in a Kubernetes environment.

0 commit comments

Comments
 (0)