Configuring the Strimzi Cluster Operator

Learn how to configure an existing deployment of the Strimzi Cluster Operator with helm upgrade.

The Strimzi Cluster Operator is deployed when you install Strimzi to your Kubernetes cluster. During installation you can configure the Cluster Operator. If required, you can make configuration updates following installation. This is done with helm upgrade command using the --reuse-values option together with the -f (--values) or --set options.

helm upgrade [***RELEASE***] [***CHART***] \
  --namespace [***NAMESPACE***] \
  (--set '[***KEY***]=[***VALUE***]' | -f [***MY-VALUES.YAML***]) \
  • Ensure that [***RELEASE***] and [***CHART***] are the same as the ones you used during installation. You can use helm list to list currently installed releases and charts.
  • Use --set if you want to update properties directly from the command line. Helm supports various --set options like --set-file, --set-string, and others. You can use any of these options.
  • Use -f (--values) if you want to pass a file containing your configuration updates.
  • The --reuse-values option instructs Helm to merge existing values with new ones. You use this option when you want to update an existing configuration

Configurable properties

The Strimzi Cluster Operator accepts various configuration properties. You can find a comprehensive list of these properties in the Helm chart configuration reference. Alternatively, you can list available properties with helm show readme.
helm show readme [***CHART***]

Configuring watched namespaces

By default, the Strimzi Cluster Operator watches and manages the Kafka clusters that are deployed in the same namespace as the Strimzi Cluster Operator. However, you can configure it to watch selected namespaces or watch all namespaces. This allows you to manage multiple Kafka clusters deployed in different namespaces using a single Strimzi Cluster Operator installation.

If you have a specific list of namespaces that you want the Strimzi Cluster Operator to watch, specify them in the watchNamespaces property. Delimit each namespace with a comma.
helm upgrade [***RELEASE***] [***CHART***] \
  --namespace [***NAMESPACE***] \
  --set 'watchNamespaces={[***NAMESPACE A***],[***NAMESPACE B***]}' \
If you want the Strimzi Cluster Operator to watch all namespaces in your cluster, set watchAnyNamespace to true.
helm upgrade [***RELEASE***] [***CHART***] \
  --namespace [***NAMESPACE***] \
  --set 'watchAnyNamespace=true' \

Increasing Strimzi Cluster Operator memory

If you want a single installation of the Strimzi Cluster Operator to watch and manage more than 20 Kafka clusters, you must increase the memory and heap allocated for the Strimzi Cluster Operator. Otherwise, you will encounter out of memory and heap related errors. To do this, you configure memory-related properties.

To configure the memory allocated to the Strimzi Cluster Operator, set -XX:MinRAMPercentage and -XX:MaxRAMPercentage Java parameters. Additionally, configure resources.limits.memory and resources.requests.memory Helm properties.

The following example contains memory settings recommended by Cloudera for a deployment with more than 20 Kafka clusters. You can fine-tune your setting as needed.

helm upgrade [***RELEASE***] [***CHART***] \
  --namespace [***NAMESPACE***] \
  --set 'extraEnvs[0].name=JAVA_OPTS' \
  --set 'extraEnvs[0].value=-XX:MinRAMPercentage=25 -XX:MaxRAMPercentage=70' \
  --set 'resources.limits.memory=600Mi' \
  --set 'resources.requests.memory=600Mi' \
The default values for the properties configured in the example are as follows.
  • -XX:MinRAMPercentage=15
  • -XX:MaxRAMPercentage=20
  • resources.limits.memory=384Mi
  • resources.requests.memory=384Mi