Skip to content

Commit d9a9f57

Browse files
committed
build kafka-opa-plugin from source
1 parent ab869d3 commit d9a9f57

File tree

7 files changed

+48
-9
lines changed

7 files changed

+48
-9
lines changed

conf.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
trino_storage_connector = importlib.import_module("trino.storage-connector.versions")
3737
kafka_testing_tools = importlib.import_module("kafka-testing-tools.versions")
3838
kcat = importlib.import_module("kafka.kcat.versions")
39+
kafka_opa_plugin = importlib.import_module("kafka.kafka-opa-plugin.versions")
3940
testing_tools = importlib.import_module("testing-tools.versions")
4041
zookeeper = importlib.import_module("zookeeper.versions")
4142
tools = importlib.import_module("tools.versions")
@@ -69,6 +70,7 @@
6970
{"name": "trino/storage-connector", "versions": trino_storage_connector.versions},
7071
{"name": "kafka-testing-tools", "versions": kafka_testing_tools.versions},
7172
{"name": "kafka/kcat", "versions": kcat.versions},
73+
{"name": "kafka/kafka-opa-plugin", "versions": kafka_opa_plugin.versions},
7274
{"name": "testing-tools", "versions": testing_tools.versions},
7375
{"name": "zookeeper", "versions": zookeeper.versions},
7476
{"name": "tools", "versions": tools.versions},

kafka/Dockerfile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
# check=error=true
33

44
FROM stackable/image/kafka/kcat AS kcat
5+
FROM stackable/image/kafka/kafka-opa-plugin AS kafka-opa-plugin
56

67
FROM stackable/image/java-devel AS kafka-builder
78

89
ARG PRODUCT
910
ARG SCALA
10-
ARG OPA_AUTHORIZER
1111
ARG JMX_EXPORTER
1212
ARG STACKABLE_USER_UID
1313

@@ -34,10 +34,6 @@ cp build/reports/bom.json /stackable/kafka_${SCALA}-${PRODUCT}.cdx.json
3434
rm -rf /stackable/kafka_${SCALA}-${PRODUCT}/site-docs/
3535
(cd .. && rm -rf ${PRODUCT})
3636

37-
# TODO (@NickLarsenNZ): Compile from source: https://github.com/StyraInc/opa-kafka-plugin
38-
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
40-
4137
# JMX exporter
4238
curl https://repo.stackable.tech/repository/packages/jmx-exporter/jmx_prometheus_javaagent-${JMX_EXPORTER}.jar \
4339
-o /stackable/jmx/jmx_prometheus_javaagent-${JMX_EXPORTER}.jar
@@ -54,6 +50,7 @@ ARG RELEASE
5450
ARG PRODUCT
5551
ARG SCALA
5652
ARG KAFKA_KCAT
53+
ARG KAFKA_KAFKA_OPA_PLUGIN
5754
ARG STACKABLE_USER_UID
5855

5956
LABEL \
@@ -72,6 +69,8 @@ COPY --chown=${STACKABLE_USER_UID}:0 --from=kafka-builder /stackable/jmx/ /stack
7269
COPY --chown=${STACKABLE_USER_UID}:0 --from=kcat /stackable/kcat /stackable/bin/kcat-${KAFKA_KCAT}
7370
COPY --chown=${STACKABLE_USER_UID}:0 --from=kcat /stackable/kcat-${KAFKA_KCAT}-src.tar.gz /stackable
7471
COPY --chown=${STACKABLE_USER_UID}:0 --from=kcat /licenses /licenses
72+
COPY --chown=${STACKABLE_USER_UID}:0 --from=kafka-opa-plugin /stackable/src/kafka/kafka-opa-plugin/patchable-work/worktree/${KAFKA_KAFKA_OPA_PLUGIN}/build/libs/opa-authorizer-${KAFKA_KAFKA_OPA_PLUGIN}-all.jar /stackable/kafka_${SCALA}-${PRODUCT}/libs/opa-authorizer-${KAFKA_KAFKA_OPA_PLUGIN}-all.jar
73+
COPY --chown=${STACKABLE_USER_UID}:0 --from=kafka-opa-plugin /stackable/kafka-opa-plugin-${KAFKA_KAFKA_OPA_PLUGIN}-src.tar.gz /stackable
7574

7675
COPY --chown=${STACKABLE_USER_UID}:0 kafka/licenses /licenses
7776

@@ -101,6 +100,7 @@ chown -h ${STACKABLE_USER_UID}:0 /stackable/kafka
101100
chmod g=u /stackable/bin
102101
chmod g=u /stackable/jmx
103102
chmod g=u /stackable/kafka_${SCALA}-${PRODUCT}
103+
chmod g=u /stackable/kafka_${SCALA}-${PRODUCT}/libs/opa-authorizer-${KAFKA_KAFKA_OPA_PLUGIN}-all.jar
104104
chmod g=u /stackable/*-src.tar.gz
105105
EOF
106106

kafka/kafka-opa-plugin/Dockerfile

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# syntax=docker/dockerfile:1.16.0@sha256:e2dd261f92e4b763d789984f6eab84be66ab4f5f08052316d8eb8f173593acf7
2+
# check=error=true
3+
4+
# FROM stackable/image/opa AS opa
5+
FROM stackable/image/java-devel
6+
7+
ARG PRODUCT
8+
ARG STACKABLE_USER_UID
9+
10+
USER ${STACKABLE_USER_UID}
11+
WORKDIR /stackable
12+
13+
COPY --chown=${STACKABLE_USER_UID}:0 kafka/kafka-opa-plugin/stackable/patches/patchable.toml /stackable/src/kafka/kafka-opa-plugin/stackable/patches/patchable.toml
14+
COPY --chown=${STACKABLE_USER_UID}:0 kafka/kafka-opa-plugin/stackable/patches/${PRODUCT} /stackable/src/kafka/kafka-opa-plugin/stackable/patches/${PRODUCT}
15+
# COPY --chown=${STACKABLE_USER_UID}:0 --from=opa /stackable/opa/opa /usr/local/bin/opa
16+
17+
RUN <<EOF
18+
cd "$(/stackable/patchable --images-repo-root=src checkout kafka/kafka-opa-plugin ${PRODUCT})"
19+
20+
# Create snapshot of the source code including custom patches
21+
tar -czf /stackable/kafka-opa-plugin-${PRODUCT}-src.tar.gz .
22+
23+
# TODO: Try to install gradle via package manager (if possible) instead of fetching it from the internet
24+
# We don't specify "-x test" to skip the tests, as we might bump some Kafka internal dependencies in the future and
25+
# it's a good idea to run the tests in this case.
26+
./gradlew clean shadowJar
27+
EOF
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
mirror = "https://github.com/stackabletech/opa-kafka-plugin"
2+
base = "d2c7851cb66dde7903eb4f0d5fab40f1a3d434a4"
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
upstream = "https://github.com/StyraInc/opa-kafka-plugin"
2+
default-mirror = "https://github.com/stackabletech/opa-kafka-plugin"

kafka/kafka-opa-plugin/versions.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
versions = [
2+
{
3+
"product": "1.5.1",
4+
"java-devel": "11",
5+
},
6+
]

kafka/versions.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"java-devel": "21",
66
"scala": "2.13",
77
"kafka/kcat": "1.7.0",
8-
"opa_authorizer": "1.5.1",
8+
"kafka/kafka-opa-plugin": "1.5.1",
99
"jmx_exporter": "1.3.0",
1010
},
1111
{
@@ -14,7 +14,7 @@
1414
"java-devel": "21",
1515
"scala": "2.13",
1616
"kafka/kcat": "1.7.0",
17-
"opa_authorizer": "1.5.1",
17+
"kafka/kafka-opa-plugin": "1.5.1",
1818
"jmx_exporter": "1.3.0",
1919
},
2020
{
@@ -23,7 +23,7 @@
2323
"java-devel": "21",
2424
"scala": "2.13",
2525
"kafka/kcat": "1.7.0",
26-
"opa_authorizer": "1.5.1",
26+
"kafka/kafka-opa-plugin": "1.5.1",
2727
"jmx_exporter": "1.3.0",
2828
},
2929
{
@@ -32,7 +32,7 @@
3232
"java-devel": "23",
3333
"scala": "2.13",
3434
"kafka/kcat": "1.7.0",
35-
"opa_authorizer": "1.5.1",
35+
"kafka/kafka-opa-plugin": "1.5.1",
3636
"jmx_exporter": "1.3.0",
3737
},
3838
]

0 commit comments

Comments
 (0)