TSB Upgrade
This page will walk you through how to upgrade TSB using the tctl
CLI,
rendering the Kubernetes manifests for the different operators and applying them
to the clusters to upgrade using kubectl
.
Before you start, make sure that you have:
✓ Checked the new version’s requirements
✓ Downloaded the new
version of the Tetrate Service Bridge CLI (tctl
)
✓ Synced the Tetrate Service Bridge images
✓ Use organization root instead of tenant root if the cluster was TSB <1.2.
The upgrade procedure between operator-based releases is fairly simple. Once the operator pods are updated with the new release images, the newly spun up operator pods will upgrade all the necessary components to the new version for you.
Management plane
First, create the base manifest which will allow you to update the management plane operator from your private Docker registry:
tctl install manifest management-plane-operator \
--registry <your-docker-registry> \
> managementplaneoperator.yaml
Management namespace name
Starting with TSB 0.9.0 the default management plane namespace name is tsb
as
opposed to tcc
used in older versions. If you installed TSB using an earlier
version than 0.9.0, your management plane probably lives in the tcc
namespace.
You will need to add a --management-namespace tcc
flag to reflect this.
Customization
The managementplaneoperator.yaml file created by the install command can now be used as a base template for your management plane upgrade. If your existing TSB configuration contains specific adjustments on top of the standard configuration, you should copy them over to the new template.
Now, add the manifest to source control or apply it directly to the management plane cluster by using the kubectl client:
kubectl apply -f managementplaneoperator.yaml
After applying the manifest, you will see the new operator running in the tsb
namespace:
kubectl get pod -n tsb
NAME READY STATUS RESTARTS AGE
tsb-operator-management-plane-d4c86f5c8-b2zb5 1/1 Running 0 8s
For more information on the manifest and how to configure it, please review the ManagementPlane resource reference
Control and data planes
To deploy the new control and data plane operators in your application clusters,
you must run tctl install manifest cluster-operators
to retrieve the control plane and data plane operator manifests for the new
version.
tctl install manifest cluster-operators \
--registry <your-docker-registry> \
> clusteroperators.yaml
Customization
The clusteroperators.yaml file can now be used for your cluster upgrade. If your existing control and data planes have specific adjustments on top of the standard configuration, you should copy them over to the template.
Istio Operator
TSB 1.3 will recreate the Istio Operator Custom Resource that is compatible with the version of Istio that comes with it. However, we must manually remove the old operator first.
First, make sure that there are no instances of the old controller running by issuing the following command:
kubectl -n istio-system scale --replicas=0 deploy/istio-operator
Then, patch the Istio Operator so that finalizers are disabled:
kubectl -n istio-system patch iop tsb-istiocontrolplane --patch '{"metadata":{"finalizers":[null]}}' --type merge
Then, scale down tsb-operator-control-plane deployment to 0:
kubectl -n istio-system scale --replicas=0 deploy/tsb-operator-control-plane
Finally, delete the old Istio Operator (tsb-istiocontrolplane)
kubectl -n istio-system delete iop tsb-istiocontrolplane
Applying the Manifest
Now, add the manifest to source control or apply it directly to the appropriate clusters by using the kubectl client:
kubectl apply -f clusteroperators.yaml
For more information on each of these manifests and how to configure them, please check out the following guides: