We are really happy to announce the new Strimzi 0.4.0 release with a lot of fixes and interesting new features!

Enhanced configuration

Until the previous release, just a few parameters were exposed through the cluster config map so that the Kafka brokers and Zookeeper nodes configurations were limited. With this release, the kafka-config (doc) and the zookeeper-config (doc) fields were added in order to allow the user to define a full configuration through a JSON string. Here’s an example of the kafka-config field:

{
  "num.partitions": 1,
  "default.replication.factor": 3,
  "log.retention.hours": 168,
}

It’s possible to do the same within the Kafka Connect config map using the connect-config field (doc).

{
  "bootstrap.servers": "my-cluster-kafka:9092",
  "group.id": "my-connect-cluster"
}

Resources usage configuration

It’s now possible to specify the Kubernetes/OpenShift resource requests and limits in terms of CPU and memory usage related to the containers running the cluster nodes. The kafka-resources and zookeeper-resources fields (doc) can be used to describe such information using a JSON string. Here’s an example:

{
  "requests": {
    "cpu": "1",
    "memory": "2Gi"
  },
  "limits": {
    "cpu": "1",
    "memory": "2Gi"
  }
}

These settings can be even specified for the Topic Operator using the resources field within the topic-operator-config field available in the cluster config map; in the same way, the resources field is used for the Kafka Connect deployment in the related config map.

It’s also possible to configure JVM options through kafka-jvmOptions and zookeeper-jvmOptions fields (doc) like the ones for specifying the initial and maximum heap size, as described in the following example.

{
  "-Xmx": "2g",
  "-Xms": "2g"
}

The Kafka Connect config map provides the same configuration through the jvmOptions (doc) field as well.

New Kafka version

The Strimzi Docker images are now based on the 1.1.0 release of Apache Kafka.

Conclusion

This release represents a step forward with some new interesting and powerful features other than bug fixes. Furthermore, because Strimzi is an evolving project, there are some backwards incompatible changes as well; for having more information about them you can refer to the release changes log.

What are you waiting for? Engage the community and help us to improve the Strimzi project for running your cluster on Kubernetes/OpenShift!