Speedscale Operator v2 introduces new management methods for inventory, capture, and replays. It is not backwards compatible with Speedscale Operator v1.
To upgrade to Speedscale Operator v2, follow these steps.
Confirming current version
To validate you are running Speedscale Operator v1, run the following command:
If your client and cluster version are below v0.12.0, then you are running Operator v1 and may proceed.
Remove Speedscale Containers from Existing Workloads
Before starting the upgrade process, you must remove the Speedscale proxy sidecar and init containers.
To do so, annotate your workloads with
sidecar.speedscale.com/remove: "true". You may use
kubectl annotate, or some other automation tool to accomplish this.
As an example with
kubectl annotate deployment/<your deployment> sidecar.speedscale.com/remove=true
To update all workloads in a namespace:
kubectl annotate --namespace=<your namespace> <workload type> --all sidecar.speedscale.com/remove=true
You will need to get the latest speedctl client to perform the upgrade:
Next, you will need to edit your
~/.speedscale/config.yaml and update the
container_type value to
With the move to Operator v2, the Speedscale annotations have changed. Please see the table of annotation changes for a complete list.
Once you have removed Speedscale from existing workloads, your process for upgrading depends on how you manage your Kubernetes environments.
- Run the Upgrade Wizard
If you use
speedctl to manage your enviroment, you may begin the upgrade wizard,
which will remove the operator v1 installation and replace it with operator v2.
speedctl upgrade operator
If you are using a GitOps engine to manage your Kubernetes resources, you will need to update your git repository with the new manifests.
- Regardless of how your GitOps engine works, you must save the contents of the Speedscale certificates in your cluster prior to upgrading. If the secrets are currently in git, no action is needed. To save the secrets locally, you can run
kubectl -n speedscale get secrets speedscale-certs -o yaml > speedscale-certs.yaml
- Generate new operator manifests, but don’t push them to git yet:
speedctl deploy operator -e $(kubectl config current-context) > speedscale-operator.yaml
- Replace the
dataentry of the
speedscale-operator.yamlwith the data of the certs you saved in step 1.
- If your workloads are stored with Speedscale annotations, be sure to review the changed annotations before proceeding.
- Commit the contents of speedscale-operator.yaml to git
If your GitOps engine does not delete resources when removed from git, run
kubectl delete mutatingwebhookconfiguration.admissionregistration.k8s.io speed-operator-mutating-webhook-configuration
Check that the deployment was successful
Once your deployment has been upgraded, run the following to ensure the Speedscale control plane is healthy:
speedctl check operator
Add Speedscale to Your Desired Workloads
You may now install Speedscale on your target workload. You may use the
speedctl install wizard, or a GitOps tool.