Documentation Index
Fetch the complete documentation index at: https://docs.streamnative.io/llms.txt
Use this file to discover all available pages before exploring further.
StreamNative Operator supports seamless upgrades to newer versions while maintaining the existing Pulsar cluster state and configuration.
Since version 0.12.x, we have aligned the sn-operator helm chart version with the sn-operator version, this will make it easier for the sn-operator helm chart to represent sn-operator versions.
This document demonstrates how to upgrade StreamNative Operator to a newer version.
Please check your license first:
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Secret
metadata:
# This label is a required field for the sn-operator to detect the license.
labels:
cloud.streamnative.io/type: "license"
name: sn-license
namespace: sn-system
type: Opaque
stringData:
license: "Your license token"
EOF
If you do not have any valid license, you can contact StreamNative to apply for a free trial.
To upgrade to sn-operator under the Helm installation, follow below steps.
- Apply the StreamNative Operator CRDs
kubectl apply -f https://raw.githubusercontent.com/streamnative/private-cloud/refs/heads/branch-0.17.0/charts/sn-operator/crds/bookkeeper.streamnative.io_bookkeeperclusters.yaml --server-side --force-conflicts
kubectl apply -f https://raw.githubusercontent.com/streamnative/private-cloud/refs/heads/branch-0.17.0/charts/sn-operator/crds/k8s.streamnative.io_agentfunctions.yaml --server-side --force-conflicts
kubectl apply -f https://raw.githubusercontent.com/streamnative/private-cloud/refs/heads/branch-0.17.0/charts/sn-operator/crds/k8s.streamnative.io_apikeys.yaml --server-side --force-conflicts
kubectl apply -f https://raw.githubusercontent.com/streamnative/private-cloud/refs/heads/branch-0.17.0/charts/sn-operator/crds/k8s.streamnative.io_connections.yaml --server-side --force-conflicts
kubectl apply -f https://raw.githubusercontent.com/streamnative/private-cloud/refs/heads/branch-0.17.0/charts/sn-operator/crds/k8s.streamnative.io_connectorcatalogs.yaml --server-side --force-conflicts
kubectl apply -f https://raw.githubusercontent.com/streamnative/private-cloud/refs/heads/branch-0.17.0/charts/sn-operator/crds/k8s.streamnative.io_consoles.yaml --server-side --force-conflicts
kubectl apply -f https://raw.githubusercontent.com/streamnative/private-cloud/refs/heads/branch-0.17.0/charts/sn-operator/crds/k8s.streamnative.io_coordinators.yaml --server-side --force-conflicts
kubectl apply -f https://raw.githubusercontent.com/streamnative/private-cloud/refs/heads/branch-0.17.0/charts/sn-operator/crds/k8s.streamnative.io_kafkaclusters.yaml --server-side --force-conflicts
kubectl apply -f https://raw.githubusercontent.com/streamnative/private-cloud/refs/heads/branch-0.17.0/charts/sn-operator/crds/k8s.streamnative.io_kafkaconnects.yaml --server-side --force-conflicts
kubectl apply -f https://raw.githubusercontent.com/streamnative/private-cloud/refs/heads/branch-0.17.0/charts/sn-operator/crds/k8s.streamnative.io_kafkarestproxies.yaml --server-side --force-conflicts
kubectl apply -f https://raw.githubusercontent.com/streamnative/private-cloud/refs/heads/branch-0.17.0/charts/sn-operator/crds/k8s.streamnative.io_mqttproxies.yaml --server-side --force-conflicts
kubectl apply -f https://raw.githubusercontent.com/streamnative/private-cloud/refs/heads/branch-0.17.0/charts/sn-operator/crds/k8s.streamnative.io_oxiaclusters.yaml --server-side --force-conflicts
kubectl apply -f https://raw.githubusercontent.com/streamnative/private-cloud/refs/heads/branch-0.17.0/charts/sn-operator/crds/k8s.streamnative.io_oxianamespaces.yaml --server-side --force-conflicts
kubectl apply -f https://raw.githubusercontent.com/streamnative/private-cloud/refs/heads/branch-0.17.0/charts/sn-operator/crds/k8s.streamnative.io_pfsqlclusters.yaml --server-side --force-conflicts
kubectl apply -f https://raw.githubusercontent.com/streamnative/private-cloud/refs/heads/branch-0.17.0/charts/sn-operator/crds/k8s.streamnative.io_pulsarcoordinators.yaml --server-side --force-conflicts
kubectl apply -f https://raw.githubusercontent.com/streamnative/private-cloud/refs/heads/branch-0.17.0/charts/sn-operator/crds/k8s.streamnative.io_snschemaregistries.yaml --server-side --force-conflicts
kubectl apply -f https://raw.githubusercontent.com/streamnative/private-cloud/refs/heads/branch-0.17.0/charts/sn-operator/crds/k8s.streamnative.io_storagecatalogs.yaml --server-side --force-conflicts
kubectl apply -f https://raw.githubusercontent.com/streamnative/private-cloud/refs/heads/branch-0.17.0/charts/sn-operator/crds/k8s.streamnative.io_unilinks.yaml --server-side --force-conflicts
kubectl apply -f https://raw.githubusercontent.com/streamnative/private-cloud/refs/heads/branch-0.17.0/charts/sn-operator/crds/k8s.streamnative.io_unilinkschemas.yaml --server-side --force-conflicts
kubectl apply -f https://raw.githubusercontent.com/streamnative/private-cloud/refs/heads/branch-0.17.0/charts/sn-operator/crds/pulsar.streamnative.io_pulsarbrokerrevisions.yaml --server-side --force-conflicts
kubectl apply -f https://raw.githubusercontent.com/streamnative/private-cloud/refs/heads/branch-0.17.0/charts/sn-operator/crds/pulsar.streamnative.io_pulsarbrokers.yaml --server-side --force-conflicts
kubectl apply -f https://raw.githubusercontent.com/streamnative/private-cloud/refs/heads/branch-0.17.0/charts/sn-operator/crds/pulsar.streamnative.io_pulsarfunctionsworkers.yaml --server-side --force-conflicts
kubectl apply -f https://raw.githubusercontent.com/streamnative/private-cloud/refs/heads/branch-0.17.0/charts/sn-operator/crds/pulsar.streamnative.io_pulsarproxies.yaml --server-side --force-conflicts
kubectl apply -f https://raw.githubusercontent.com/streamnative/private-cloud/refs/heads/branch-0.17.0/charts/sn-operator/crds/zookeeper.streamnative.io_zookeeperclusters.yaml --server-side --force-conflicts
- Install the StreamNative Operator through Helm
helm upgrade --install sn-operator streamnative/sn-operator -n sn-system
OLM will automatically handle the upgrade process, you don’t need to do anything. Available channels are alpha, beta, and stable - for production environments, use the stable channel.
Post-Upgrade Verification
After completing the upgrade, perform the following verification steps:
1. Check Operator Status
# Verify operator is running
kubectl get pods -n sn-system
# Check operator logs for any errors
kubectl logs -f -n sn-system deployment/sn-operator