From ce958eb12862e130b22eba0562462f5498839f25 Mon Sep 17 00:00:00 2001 From: Jakub Cechacek Date: Mon, 18 Sep 2023 19:04:38 +0200 Subject: [PATCH] DBZ-6738 Functional bundle can be generated during maven build This uses combination of maven resources plugin to perform property filtering and Fabric8 docker plugin to wire OLM and QOSDK configuration together. --- .gitignore | 3 +- olm/bundles/README.md | 8 ++ pom.xml | 92 ++++++++++++++++++- .../operator/DebeziumCsvMetadata.java | 2 +- 4 files changed, 102 insertions(+), 3 deletions(-) create mode 100644 olm/bundles/README.md diff --git a/.gitignore b/.gitignore index b216644..fa0c1be 100644 --- a/.gitignore +++ b/.gitignore @@ -46,4 +46,5 @@ nb-configuration.xml kubernetes.json # OLM build workspace -olm/ \ No newline at end of file +olm/* +!olm/bundles \ No newline at end of file diff --git a/olm/bundles/README.md b/olm/bundles/README.md new file mode 100644 index 0000000..8174be5 --- /dev/null +++ b/olm/bundles/README.md @@ -0,0 +1,8 @@ +# Debezium Operator OLM Bundle Manifests +For main branch this directory is expected to be empty. For release branches the raw OLM bundle manifests should be located here. + +_Note that such OLM bundle requires further processing and without it the bundle is not usable._ + +To release this bundle follow the instruction is [Operator Bundle Manifests repository](https://github.com/debezium/debezium-operator-manifests). + + diff --git a/pom.xml b/pom.xml index d432987..5a35649 100644 --- a/pom.xml +++ b/pom.xml @@ -24,6 +24,7 @@ UTF-8 17 17 + yyyy-MM-dd'T'HH:mm:ss'Z' ${project.version} @@ -32,6 +33,9 @@ 3.4.0 3.0.0 3.11.0 + 3.3.1 + 0.43.4 + 3.24.2 @@ -44,7 +48,6 @@ false - ${project.artifactId} quay.io debezium operator @@ -52,6 +55,11 @@ debezium-operator ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.x + ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}-nightly + debezium-operator.v${olm.bundle.version} + + ${quarkus.container-image.registry}/${quarkus.container-image.group}/${quarkus.container-image.name}:${quarkus.container-image.tag} + ${maven.build.timestamp} 17 @@ -216,6 +224,7 @@ ${project.parent.version} debezium-${version.debezium.channel} + ${project.parent.version} @@ -226,6 +235,87 @@ debezium-stable,debezium-${version.debezium.channel} + + olmUpdate + + true + + $$ + + + + + org.apache.maven.plugins + maven-resources-plugin + ${version.resources.plugin} + + + copy-olm + package + + copy-resources + + + ${project.basedir}/olm/bundles/${olm.bundle.version} + + + + ${project.build.directory}/bundle/${dollar}{olm.bundle.name} + **/* + true + + + true + + + + + + + + + + + io.fabric8 + docker-maven-plugin + ${version.docker.maven.plugin} + + + + yq + mikefarah/yq:latest + + true + + + ${project.basedir}/olm/bundles/${olm.bundle.version}:/workdir + + + + + ea + -i + .spec.install.spec.deployments[0].spec.template.spec.containers[0].env += [{"name": "QUARKUS_OPERATOR_SDK_NAMESPACES", "valueFrom": {"fieldRef": {"fieldPath": "metadata.annotations['olm.targetNamespaces']"}}}] + manifests/${olm.bundle.name}.clusterserviceversion.yaml + + + + + + + + + wire-olm + package + + start + + + + + + + k8update diff --git a/src/main/java/io/debezium/operator/DebeziumCsvMetadata.java b/src/main/java/io/debezium/operator/DebeziumCsvMetadata.java index 4a61a51..5c2a128 100644 --- a/src/main/java/io/debezium/operator/DebeziumCsvMetadata.java +++ b/src/main/java/io/debezium/operator/DebeziumCsvMetadata.java @@ -89,5 +89,5 @@ "Start it up, point it at your databases, and your apps can start responding " + "to all of the inserts, updates, and deletes that other apps commit to your databases") public class DebeziumCsvMetadata implements SharedCSVMetadata { - public static final String NAME = "debezium-operator"; + public static final String NAME = "${olm.bundle.name}"; }