DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
...
Several other Apache projects, like Flink, Spark, Solr, have already released Docker Official Images, with download figures ranging from 50 million to over 1 billion. These numbers highlight the significant demand among users. Also the Docker Official Images are always the top 1 search result, irrespective of the number of downloads. This visibility guarantees that over time, a larger number of users will opt for Docker images provided by the Apache Kafka community. The support from these Apache projects indicates that we can achieve similar success with Apache Kafka.
Post-support, the Dockerfile for Apache Kafka will continue to be managed by the Apache Kafka community and undergo review by Docker. The Docker community will oversee the images' maintenance, aligning them with Docker's quality standards. Adopting this approach, means that the build and release process for the official Docker image will be managed by Docker Hub, while the dockerfiles will be maintained by the Apache Kafka community.
Public Interfaces
- There will be a new additional artifact i.e. Official Kafka docker image for every Apache Kafka release.
Add public documentation in Official Docker Image Repo.
...
There will be a docker official image as an additional artifact for every Apache Kafka release. The docker files for the same will be maintained by the Apache Kafka community, but the images will be maintained by the Docker community.
This docker official image, like the existing OSS sponsored images, will consist of JVM based Kafka and will have support for Linux based AMD and ARM architectures.
Extend Update the Apache release process to publish the new docker image to official DockerHubinclude release of docker official image.
Compatibility, Deprecation, and Migration Plan
...
Initial Setup:
Establish a new directory,
docker/docker_official_images, within trunk to keep Docker Official Image assets.Ensure dockerfile is compliant as per Docker Official Images guidelines.
Release Candidate (RC) Preparation:
RM would have generated and pushed Apache Kafka's Release Candidate tarball to apache sftp server hosted in home.apache.org by release.py script.
For all subsequent steps - the above Release Candidate tarball URL will be used.
Docker Image Preparation via GitHub Actions:
Implement an automated GitHub Actions workflow to:
Generate a version-specific folder, following the
major_version.minor_version.patch_version-rcnaming scheme, under thedocker/docker_official_imagesdirectory directory, for housing static Dockerfile and scripts.With each new RC, this folder will be overwritten.
This folder will contain all static files necessary for creating the docker image.
The github actions workflow generates this folder which can be downloaded and verified.
The RM checks if there is already a folder with the same name in trunk. If yes, he deletes this, and put this folder under the
docker/docker_official_imagesdirectory directory in his fork of the kafka repo, and merges this change into the official kafka repo by raising a PR. To make this step more automated, we will do the same via a script that takes in the local path of the downloaded artifact as an input.
Review and Integration:
- A PR will be raised by RM which will contain the RC docker official image.
Upon PR approval and merge, RM will cherry-pick the changes into the designated branch.
Docker Build and Release Testing:
Perform Docker build tests to ensure image integrity. The dockerfiles for the same will be used from the specific folder in the
docker/docker_official_imagesdirectory directory.Start the Voting for RC, which will include the Docker image, docker sanity tests report and docker official image source folder.
In case any docker image specific issue is detected, that will be evaluated by the community, if it’s a release blocker or not.
Once the vote passes, run the Docker release pipeline to publish RC images to the Docker Hub open-source software (OSS) sponsored images. The image will be pushed to OSS sponsored
apache/kafkawith the version as tag.
Iterative RC Updates:
Repeat steps 2 through 5 for subsequent RCs, ensuring the repository contains the latest RC.
Final Release Promotion:
Upon final release approval, run the Docker promote pipeline from the RC branch to the OSS Docker Hub. The latest
major_version.minor_version.patch_versionimage will now be available on the OSS Docker Hub.
Post-Release Maintenance:
Return to the trunk to perform maintenance tasks:
Remove unsupported version folders from the
docker_official_imagesdirectory to maintain repository cleanliness.Remove the -rc identifier from the
major_version.minor_version.patch_version-rcfolder. This serves as the new source of truth for the DOI. Ensure that the folder of the version being released does not have the -rc tag at the end.- Cherry pick the updated folder name commit to release branch.
Docker Hub Submission:
- Run a script in trunk to automate the creation of a PR template for the Docker Hub official images library submission.
Submit the final PR to Docker Hub’s official images repository. Following PR approval, the Kafka Docker image becomes officially available.
...