- Operate Private Cloud
- Migrate
Migrate to StreamNative Pulsar Distribution
Starting March 31st, 2024, access to the StreamNative Pulsar distribution will require a valid StreamNative subscription. As a result, StreamNative Pulsar images such as streamnative/private-cloud, streamnative/sn-platform and streamnative/sn-platform-slim will require a license key to run; otherwise, the component will fail to start.
For StreamNative Private Cloud users, the license key for sn-operator can also be used for the StreamNative Pulsar images. The sn-operator automatically activate the StreamNative Pulsar images with the imported license key. This documentation provides comprehensive guidance on migrating to StreamNative Pulsar images.
Prerequisites
- For Pulsar Operators users, you need to follow Upgrade from Pulsar Operators to shift the StreamNative Operator.
sn-operatorchart:0.1.1or higher
Migrate to StreamNative Pulsar images
Migrate from CRD manifests
Create a PulsarCoordinator manifest:
apiVersion: k8s.streamnative.io/v1alpha1
kind: PulsarCoordinator
metadata:
name: private-cloud
namespace: pulsar
spec:
image: streamnative/private-cloud:3.2.1.3
Add k8s.streamnative.io/coordinator-name label on ZooKeeperCluster, BookKeeperCluster, PulsarBroker and PulsarProxy manifests:
apiVersion: zookeeper.streamnative.io/v1alpha1
kind: ZooKeeperCluster
metadata:
name: private-cloud
namespace: pulsar
labels:
k8s.streamnative.io/coordinator-name: private-cloud
---
apiVersion: bookkeeper.streamnative.io/v1alpha1
kind: BookKeeperCluster
metadata:
name: private-cloud
namespace: pulsar
labels:
k8s.streamnative.io/coordinator-name: private-cloud
---
apiVersion: pulsar.streamnative.io/v1alpha1
kind: PulsarBroker
metadata:
name: private-cloud
namespace: pulsar
labels:
k8s.streamnative.io/coordinator-name: private-cloud
---
apiVersion: pulsar.streamnative.io/v1alpha1
kind: PulsarProxy
metadata:
name: private-cloud
namespace: pulsar
labels:
k8s.streamnative.io/coordinator-name: private-cloud
After applying these configurations on your manifests, you should see a Secret called private-cloud-sn-license under your Kubernetes namespace. This Secret will be mounted by your Pulsar cluster to activate.
Migrate from StreamNative Platform Chart
Create a PulsarCoordinator manifest, and the PulsarCoordinator object's metadata.name should be same with the PulsarBroker object. You can run below commands to get the PulsarBroker object name:
kubectl get pulsarbroker -n snp
NAME REPLICAS READY REPLICAS DESIRED IMAGE AGE
snp-sn-platform-slim 1 1 streamnative/sn-platform-slim:3.0.3.5 16m
After getting the PulsarBroker object name, Create the PulsarCoordinator like below:
apiVersion: k8s.streamnative.io/v1alpha1
kind: PulsarCoordinator
metadata:
name: <Your PulsarBroker object name>
namespace: <Your Pulsar cluster installed namespace>
spec:
# Make sure to disable the toolSet CR object to avoid conflict
toolSet:
enabled: false
Add k8s.streamnative.io/coordinator-name label on zookeeper.zooKeeperCluster.labels, bookkeeper.bookKeeperCluster.labels, broker.pulsarBroker.labels and proxy.pulsarProxy.labels:
zookeeper:
# zooKeeperCluster indicates the setup for the CR(CustomResource) of the ZooKeeperCluster
zooKeeperCluster:
# labels that will be added on the ZooKeeperCluster CR only.
labels:
k8s.streamnative.io/coordinator-name: <Your PulsarCoordinator object name>
bookkeeper:
# bookKeeperCluster indicates the setup for the CR(CustomResource) of the BookKeeperCluster
bookKeeperCluster:
# labels that will be added on the BookKeeperCluster CR only.
labels:
k8s.streamnative.io/coordinator-name: <Your PulsarCoordinator object name>
broker:
# pulsarBroker indicates the setup for the CR(CustomResource) of the PulsarBroker
pulsarBroker:
# labels that will be added on the PulsarBroker CR only.
labels:
k8s.streamnative.io/coordinator-name: <Your PulsarCoordinator object name>
proxy:
# pulsarProxy indicates the setup for the CR(CustomResource) of the PulsarProxy
pulsarProxy:
# labels that will be added on the PulsarProxy CR only.
labels:
k8s.streamnative.io/coordinator-name: <Your PulsarCoordinator object name>
After updating configuration, run the helm upgrade to update your StreamNative Platform.