Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Creates a new package for confluent kafka #13987

Merged
merged 17 commits into from
Mar 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added APKINDEX.tar.gz
Binary file not shown.
95 changes: 95 additions & 0 deletions confluent-kafka.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
#nolint:git-checkout-must-use-github-updates
package:
name: confluent-kafka
# Upstream versioning is too weird that we need to work-around it.
# Release Monitor returns the latest version as `7.7.0-314-ccs` format:
# https://release-monitoring.org/api/v2/versions/?project_id=371656
# In order to make the `update:` section happy:
# 1. We need to transform it by replacing the last `-` with `.` to match
# with the `version:` field.
# 2. Created a new variable `mangled-package-version` to append `-ccs` to the
# version.
version: 7.8.0.3
epoch: 0
description: Community edition of Confluent Kafka.
copyright:
- license: Apache-2.0
dependencies:
runtime:
- bash # Required by kafka - uses shebangs to launch the image.
- confluent-common-docker
- confluent-common-docker-ub
- confluent-common-docker-base
- confluent-docker-utils
- confluent-kafka-images-kafka

environment:
contents:
packages:
- busybox
- ca-certificates-bundle
- curl
- gradle
- openjdk-11
- sbt

var-transforms:
- from: ${{package.version}}
match: '\.(\d+)$'
replace: '-$1-ccs'
to: mangled-package-version

pipeline:
- uses: fetch
with:
expected-sha256: de0bb04e22016a2f4eaba2a1083a3e821167fb8f162165a5631a6315d42cfe08
uri: https://github.com/confluentinc/kafka/archive/refs/tags/v${{vars.mangled-package-version}}.tar.gz

- runs: |
export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8
gradle clean releaseTarGz
nohup /usr/lib/kafka/bin/zookeeper-server-start.sh /usr/lib/kafka/config/zookeeper.properties > ${{targets.destdir}}/usr/lib/kafka/logs/zookeeper.out 2> zookeeper.err < /dev/null &
tar -xzvf core/build/distributions/kafka_*-${{vars.mangled-package-version}}.tgz
mkdir -p ${{targets.destdir}}/usr/lib/kafka/logs
mkdir -p ${{targets.destdir}}/etc/kafka
mkdir -p ${{targets.destdir}}/var/lib/kafka/data
mv kafka_*-${{vars.mangled-package-version}}/bin ${{targets.destdir}}/usr/lib/kafka
mv kafka_*-${{vars.mangled-package-version}}/libs ${{targets.destdir}}/usr/lib/kafka
mv kafka_*-${{vars.mangled-package-version}}/config ${{targets.destdir}}/usr/lib/kafka
# Install required runtime scripts
mkdir -p ${{targets.destdir}}/usr/bin
for file in $(find ./bin -type f -exec grep -lE '^#!(/usr/bin/env |/bin/)' {} \;); do
filename=$(basename "$f")
install -D -m755 "$file" ${{targets.destdir}}/usr/bin/"$filename"
done
# Create a symlink for the kafka libs since upstream images expect it to be in /usr/share/java/kafka:
# https://github.com/confluentinc/kafka/blob/b66558da5d6b33c2fba9f424131575b948e6f611/bin/kafka-run-class.sh#L197
mkdir -p ${{targets.destdir}}/usr/share/java/kafka
# ln -sf /usr/lib/kafka/libs/* ${{targets.destdir}}/usr/share/java/kafka/
# symlink every file in /usr/lib/kafka/libs to /usr/share/java/kafka
for file in "${{targets.destdir}}"/usr/lib/kafka/libs/*; do
ln -sf /usr/lib/kafka/libs/$(basename $file) ${{targets.destdir}}/usr/share/java/kafka/$(basename $file)
done
# /etc/confluent/docker/ensure runs kafka-storage whereas upstream only provides kafka-storage.sh for some reason.
echo "#!/usr/bin/env bash" > ${{targets.destdir}}/usr/bin/kafka-storage
echo "exec \"\$0.sh\" \"\$@\"" >> ${{targets.destdir}}/usr/bin/kafka-storage
chmod +x ${{targets.destdir}}/usr/bin/kafka-storage
# Clean up windows
rm -rf ${{targets.destdir}}/usr/lib/kafka/bin/*.bat
update:
enabled: true
release-monitor:
identifier: 371645
version-transform:
- match: ^(.+)\-(\d+)$
replace: $1.$2
Loading