Upgrade Confluent Platform

When you upgrade Confluent Platform from one version to another, we recommend that you perform the upgrade process separate from making other changes to your clusters, such as scaling up, changing configuration, or rotating credentials.

Upgrade considerations

Manually create role bindings for the License topic

In deployments where all the following conditions are met, you need to manually apply the internal role bindings to Schema Registry and the Standalone REST Proxy for the License topics:

  • Running CFK 2.2.x
  • Upgrading Confluent Platform to 7.0.2
  • Have Confluent Platform RBAC enabled

The ConfluentRolebinding CR for Schema Registry:

apiVersion: platform.confluent.io/v1beta1
kind: ConfluentRolebinding
metadata:
  name: internal-rolebinding-sr
spec:
  kafkaRestClassRef:
    name: <name of your KafkaRestClass>
    namespace: <namespace of your KafkaRestClass>
  role: ResourceOwner
  principal:
    name: <your user name used to bootstrap Schema Registry>
    type: user
  resourcePatterns:
  - name: _confluent-command
    patternType: LITERAL
    resourceType: Topic

Your user name used to bootstrap Schema Registry is the same user specified for spec.dependencies.mds.authentication in SchemaRegistry CR.

The ConfluentRolebinding CR for REST Proxy:

apiVersion: platform.confluent.io/v1beta1
kind: ConfluentRolebinding
metadata:
  name: internal-rolebinding-krp
spec:
  kafkaRestClassRef:
    name: <name of your KafkaRestClass>
    namespace: <namespace of your KafkaRestClass>
  role: ResourceOwner
  principal:
    name: <your user name used to bootstrap Kafka Rest Proxy>
    type: user
  resourcePatterns:
  - name: _confluent-command
    patternType: LITERAL
    resourceType: Topic

Your user name used to bootstrap REST Proxy is the same user specified for spec.dependencies.mds.authentication in KafkaRestProxy CR.

Upgrade Confluent Platform

Upgrade each Confluent Platform component as below.

  1. In the component CR, update the component image.

    CFK uses the following Confluent Platform component images:

    • confluentinc/cp-server-connect
    • confluentinc/cp-enterprise-control-center
    • confluentinc/cp-server
    • confluentinc/cp-ksqldb-server
    • confluentinc/cp-enterprise-replicator
    • confluentinc/cp-schema-registry
    • confluentinc/cp-zookeeper

    The tag is the Confluent Platform release you want to upgrade to.

    spec:
      image:
        application: <component image>:<tag>
    

    For example, to upgrade Kafka to 7.0.1:

    spec:
      image:
        application: confluentinc/cp-server:7.0.1
    
  2. In the same component CR, update the CFK init container image. The image tag is the version of CFK, 2.2.0:

    spec:
      image:
        init: confluentinc/confluent-init-container:2.2.0-1
    
  3. Apply any custom setting changes for the version you are upgrading to, using the configOverrides property in the component CR.

    For example, CFK sets the Kafka properties, inter.broker.protocol.version and log.message.format.version, to 2.6. To use the new features introduced in Kafka, you need to update the properties to the corresponding version as described in the Confluent Platform Upgrade Guide. Both properties must be set to the same version.

    For upgrading Kafka to 6.2.0, set the following in the Kafka CR:

    spec:
      configOverrides:
        server:
          - inter.broker.protocol.version=2.8
          - log.message.format.version=2.8
    

    Note that there are certain configurations that cannot be updated on deployed clusters. See Upgrades and updates for this list.

    Alternatively, you can perform this step after the upgrade.

  4. Upgrade the component.

    kubectl apply -f <component CR> --name <namespace>