1. Project Overview & Quickstart (strimzi/bridge)
HTTP bridge for Apache Kafkaยฎ
This project provides a software component which acts as a bridge between HTTP 1.1 (Hypertext Transfer Protocol) and an Apache Kafkaยฎ cluster.
It provides a different way to interact with Apache Kafka because the latter natively supports only a custom (proprietary) protocol.
Thanks to the bridge, all clients which can speak HTTP 1.1 protocol can connect to Apache Kafka cluster in order to send and receive messages to / from topics.
Architectures support
| Architecture | Status | Tested |
|---|---|---|
| amd64 | Supported | yes |
| arm64 | Supported | no |
| ppc64le | Supported | no |
| s390x | Supported | yes |
Community Testing for Linux on IBM Z s390x architecture
Note: This badge represents a community-led initiative and is not officially endorsed by the Strimzi project maintainers.
Running the bridge
On Kubernetes and OpenShift
Use the Strimzi Kafka operator to deploy the Kafka Bridge with HTTP support on Kubernetes and OpenShift.
On bare-metal / VM
Download the ZIP or TAR.GZ file from the GitHub release page and unpack it.
Afterwards, edit the config/application.properties file which contains the configuration.
Once your configuration is ready, start the bridge using:
bin/kafka_bridge_run.sh --config-file config/application.propertiesKafka Bridge releases are also available to download from the Strimzi website.
Kafka Bridge documentation
The Kafka Bridge documentation provides information on getting started with the Kafka Bridge.
The source files for the Kafka Bridge documentation are maintained in the documentation folder.
The documentation is maintained in .adoc files.
The .adoc files for the API reference section (documentation/book/api) are generated from descriptions in the source OpenAPI JSON file (src/main/resources/openapiv2.json), so they must not be edited directly.
If you spot something that needs updating or changing in the Kafka Bridge documentation, you can open an issue or open a PR and contribute directly.
For more information on contributing to the Strimzi documentation, see the Strimzi Documentation Contributor Guide.
Getting help
If you encounter any issues while using Strimzi Kafka Bridge, you can get help through the following methods:
Contributing
You can contribute by:
- Raising any issues you find using Strimzi Kafka Bridge
- Fixing issues by opening Pull Requests
- Improving documentation
- Talking about Strimzi Kafka Bridge
All bugs, tasks or enhancements are tracked as GitHub issues. Issues which
might be a good start for new contributors are marked with "good-start" label.
The Building Strimzi Kafka Bridge guide describes how to build Strimzi Kafka Bridge and how to test your changes before submitting a patch or opening a PR.
If you want to get in touch with us first before contributing, you can use:
Learn more on how you can contribute on our Join Us page.
License
Strimzi Kafka Bridge is licensed under the Apache License, Version 2.0
Container signatures
From the 0.27.0 release, Strimzi Kafka Bridge containers are signed using the cosign tool.
Strimzi currently does not use the keyless signing and the transparency log.
To verify the container, you can copy the following public key into a file:
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAET3OleLR7h0JqatY2KkECXhA9ZAkC
TRnbE23Wb5AzJPnpevvQ1QUEQQ5h/I4GobB7/jkGfqYkt6Ct5WOU2cc6HQ==
-----END PUBLIC KEY-----And use it to verify the signature:
cosign verify --key strimzi.pub quay.io/strimzi/kafka-bridge:latest --insecure-ignore-tlog=trueSoftware Bill of Materials (SBOM)
From the 0.27.0 release, Strimzi Kafka Bridge publishes the software bill of materials (SBOM) of our containers.
The SBOMs are published as an archive with SPDX-JSON and Syft-Table formats signed using cosign.
For releases, they are also pushed into the container registry.
To verify the SBOM signatures, please use the Strimzi public key:
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAET3OleLR7h0JqatY2KkECXhA9ZAkC
TRnbE23Wb5AzJPnpevvQ1QUEQQ5h/I4GobB7/jkGfqYkt6Ct5WOU2cc6HQ==
-----END PUBLIC KEY-----You can use it to verify the signature of the SBOM files with the following command:
cosign verify-blob --key cosign.pub --bundle <SBOM-file>.bundle --insecure-ignore-tlog=true <SBOM-file>2. Official Technical Reference & Guides (strimzi/strimzi.github.io)
Strimzi website
This repository contains the Strimzi website.
Prerequisites
Ruby and Rubygems are needed in order to build the web site.
Install bundler
gem install bundlerBuild
In order to build and serve the web site locally, run :
bundle install
bundle exec jekyll serveWhen running, the website is accessible at localhost:4000.
Build using a container
To avoid needing to install Ruby, you can build and run the web site locally inside a container.
Run the following command:
docker run --rm -v ${PWD}:/srv/jekyll -p 4000:4000 -it jekyll/jekyll jekyll serveThe build can take several minutes to complete.
When it's done, you'll see the message "Server running...".
Note: If you see the error require': cannot load such file -- webrick (LoadError), add the following to the Gemfile:
gem "webrick"If you make this change, be sure not to check it in.
Blog posts
We try to use the following process for blog posts:
You should start by asking us whether your proposed subject is a good fit for the strimzi.io blog.
The aim of this step is to prevent you wasting your time writing a post which isn't going to interest Strimzi users.
If your proposal is not perfect from the off, we might suggest ways to make it more relevent to our audience.
Even if we don't think it will be relevant we might be able to recommend a better site for your proposed content.You write your post and open a PR.
To start a new blog post, just create a new file in the_postssubdirectory and name it<date>-<title>.md.
For the date, you can use the current date (after your blog post is reviewed and approved, we will change it to the actual publishing date when merging the PR).
See this blog post for a detailed overview of the mechanics of writing a blog post.If this is your first blog post, please also add yourself to the authors.yml file.
We'll do a content review, checking for technical accuracy, logical structure etc.
Sometimes this can be an iterative process, but we'll try not to keep you waiting.Once the content is good we'll do a final review pass focussing on things like spelling and grammar.
Don't worry if you're not a native English speaker; our main intent here isn't necessarily perfect English, but to ensure the content is easily understood.
Diagrams
You can include diagrams by adding images to assets/images/posts directory (the filename should start with the date of the post) and linking to them directly.
Alternatively, you can enable Mermaid diagram rendering in you post's markdown.
To do this add mermaid: true to your post's front matter, then tag your diagram code blocks with the mermaid language tag:
---
layout: post
mermaid: true
---
```mermaid
flowchart TD
A --> B
B --> C
``` `Quick starts
Strimzi quick starts provide instructions for evaluating Strimzi using Minikube, Kubernetes kind or Docker Desktop.
The source markdown files for the quick starts are maintained in the quickstarts and /_includes/quickstarts folders.
If you spot something that needs updating or changing in the quick starts, you can open an issue or open a PR and contribute directly.
For more information on contributing to the Strimzi documentation, see the Strimzi Documentation Contributor Guide.
Contributing
You can contribute by:
- Raising any issues you find using Strimzi
- Fixing issues by opening Pull Requests
- Improving documentation
- Talking about Strimzi
All bugs, tasks or enhancements are tracked as GitHub issues.
Issues which might be a good start for new contributors are marked with the "good-start" label.
The Development Guide for Strimzi describes how to build Strimzi and how to test your changes before submitting a patch or opening a PR.
If you want to get in touch with us first before contributing, you can use:
Learn more on how you can contribute on our Join Us page.