Skip to content

Commit 3d3bf26

Browse files
committed
feat: support custom product versions
1 parent fcdb3dc commit 3d3bf26

1 file changed

Lines changed: 23 additions & 10 deletions

File tree

kafka/Dockerfile

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ FROM stackable/image/kafka/kcat AS kcat
66
FROM stackable/image/java-devel AS kafka-builder
77

88
ARG PRODUCT
9+
ARG RELEASE
910
ARG SCALA
1011
ARG OPA_AUTHORIZER
1112
ARG JMX_EXPORTER
@@ -21,22 +22,34 @@ COPY --chown=${STACKABLE_USER_UID}:0 kafka/stackable/patches/${PRODUCT} /stackab
2122
RUN <<EOF
2223
cd "$(/stackable/patchable --images-repo-root=src checkout kafka ${PRODUCT})"
2324

25+
ORIGINAL_VERSION="${PRODUCT}"
26+
NEW_VERSION="${PRODUCT}-stackable${RELEASE}"
27+
28+
# The comment in gradle.properties mentions to update the version in all of these files
29+
sed -i "s/version=${ORIGINAL_VERSION}/version=${NEW_VERSION}/g" gradle.properties
30+
sed -i "s/__version__ = '${ORIGINAL_VERSION}'/__version__ = '${NEW_VERSION}'/g" tests/kafkatest/__init__.py
31+
sed -i 's/DEV_VERSION = KafkaVersion("'${ORIGINAL_VERSION}'/DEV_VERSION = KafkaVersion("'${NEW_VERSION}'/g' tests/kafkatest/version.py
32+
sed -i 's/DEFAULT_FIX_VERSION = os.environ.get("DEFAULT_FIX_VERSION", "'${ORIGINAL_VERSION}'")/DEFAULT_FIX_VERSION = os.environ.get("DEFAULT_FIX_VERSION", "'${NEW_VERSION}'")/g' kafka-merge-pr.py
33+
sed -i "s/<kafka.version>${ORIGINAL_VERSION}<\/kafka.version>/<kafka.version>${NEW_VERSION}<\/kafka.version>/g" streams/quickstart/java/src/main/resources/archetype-resources/pom.xml
34+
sed -i "s/<version>${ORIGINAL_VERSION}<\/version>/<version>${NEW_VERSION}<\/version>/g" streams/quickstart/pom.xml
35+
sed -i "s/<version>${ORIGINAL_VERSION}<\/version>/<version>${NEW_VERSION}<\/version>/g" streams/quickstart/java/pom.xml
36+
2437
# Create snapshot of the source code including custom patches
25-
tar -czf /stackable/kafka-${PRODUCT}-src.tar.gz .
38+
tar -czf /stackable/kafka-${NEW_VERSION}-src.tar.gz .
2639

2740
# TODO: Try to install gradle via package manager (if possible) instead of fetching it from the internet
2841
# We don't specify "-x test" to skip the tests, as we might bump some Kafka internal dependencies in the future and
2942
# it's a good idea to run the tests in this case.
3043
./gradlew clean releaseTarGz
3144
./gradlew cyclonedxBom
32-
tar -xf core/build/distributions/kafka_${SCALA}-${PRODUCT}.tgz -C /stackable
33-
cp build/reports/bom.json /stackable/kafka_${SCALA}-${PRODUCT}.cdx.json
34-
rm -rf /stackable/kafka_${SCALA}-${PRODUCT}/site-docs/
45+
tar -xf core/build/distributions/kafka_${SCALA}-${NEW_VERSION}.tgz -C /stackable
46+
cp build/reports/bom.json /stackable/kafka_${SCALA}-${NEW_VERSION}.cdx.json
47+
rm -rf /stackable/kafka_${SCALA}-${NEW_VERSION}/site-docs/
3548
(cd .. && rm -rf ${PRODUCT})
3649

3750
# TODO (@NickLarsenNZ): Compile from source: https://github.com/StyraInc/opa-kafka-plugin
3851
curl https://repo.stackable.tech/repository/packages/kafka-opa-authorizer/opa-authorizer-${OPA_AUTHORIZER}-all.jar \
39-
-o /stackable/kafka_${SCALA}-${PRODUCT}/libs/opa-authorizer-${OPA_AUTHORIZER}-all.jar
52+
-o /stackable/kafka_${SCALA}-${NEW_VERSION}/libs/opa-authorizer-${OPA_AUTHORIZER}-all.jar
4053

4154
# JMX exporter
4255
curl https://repo.stackable.tech/repository/packages/jmx-exporter/jmx_prometheus_javaagent-${JMX_EXPORTER}.jar \
@@ -65,9 +78,9 @@ LABEL \
6578
summary="The Stackable image for Apache Kafka." \
6679
description="This image is deployed by the Stackable Operator for Apache Kafka."
6780

68-
COPY --chown=${STACKABLE_USER_UID}:0 --from=kafka-builder /stackable/kafka_${SCALA}-${PRODUCT} /stackable/kafka_${SCALA}-${PRODUCT}
69-
COPY --chown=${STACKABLE_USER_UID}:0 --from=kafka-builder /stackable/kafka_${SCALA}-${PRODUCT}.cdx.json /stackable/kafka_${SCALA}-${PRODUCT}/kafka_${SCALA}-${PRODUCT}.cdx.json
70-
COPY --chown=${STACKABLE_USER_UID}:0 --from=kafka-builder /stackable/kafka-${PRODUCT}-src.tar.gz /stackable
81+
COPY --chown=${STACKABLE_USER_UID}:0 --from=kafka-builder /stackable/kafka_${SCALA}-${PRODUCT}-stackable${RELEASE} /stackable/kafka_${SCALA}-${PRODUCT}-stackable${RELEASE}
82+
COPY --chown=${STACKABLE_USER_UID}:0 --from=kafka-builder /stackable/kafka_${SCALA}-${PRODUCT}-stackable${RELEASE}.cdx.json /stackable/kafka_${SCALA}-${PRODUCT}-stackable${RELEASE}/kafka_${SCALA}-${PRODUCT}-stackable${RELEASE}.cdx.json
83+
COPY --chown=${STACKABLE_USER_UID}:0 --from=kafka-builder /stackable/kafka-${PRODUCT}-stackable${RELEASE}-src.tar.gz /stackable
7184
COPY --chown=${STACKABLE_USER_UID}:0 --from=kafka-builder /stackable/jmx/ /stackable/jmx/
7285
COPY --chown=${STACKABLE_USER_UID}:0 --from=kcat /stackable/kcat /stackable/bin/kcat-${KAFKA_KCAT}
7386
COPY --chown=${STACKABLE_USER_UID}:0 --from=kcat /stackable/kcat-${KAFKA_KCAT}-src.tar.gz /stackable
@@ -94,13 +107,13 @@ chown -h ${STACKABLE_USER_UID}:0 /stackable/bin/kcat
94107
# kcat was located in /stackable/kcat - legacy
95108
ln -s /stackable/bin/kcat /stackable/kcat
96109
chown -h ${STACKABLE_USER_UID}:0 /stackable/kcat
97-
ln -s /stackable/kafka_${SCALA}-${PRODUCT} /stackable/kafka
110+
ln -s /stackable/kafka_${SCALA}-${PRODUCT}-stackable${RELEASE} /stackable/kafka
98111
chown -h ${STACKABLE_USER_UID}:0 /stackable/kafka
99112

100113
# fix missing permissions
101114
chmod g=u /stackable/bin
102115
chmod g=u /stackable/jmx
103-
chmod g=u /stackable/kafka_${SCALA}-${PRODUCT}
116+
chmod g=u /stackable/kafka_${SCALA}-${PRODUCT}-stackable${RELEASE}
104117
chmod g=u /stackable/*-src.tar.gz
105118
EOF
106119

0 commit comments

Comments
 (0)