$ <PLATFORM>/twistcli console export kubernetes --service-type LoadBalancer
Since Twistlock objects can be specified with configuration files, we recommend declarative object management for both install and upgrade.
You should have kept good notes when initially installing Twistlock. The configuration options set in twistlock.cfg and the parameters passed to twistcli in the initial install are used to generate working configurations for the upgrade.
You know how you initially installed Twistlock, including all options set in twistcli.cfg and parameters passed to twistcli.
Download the latest Twistlock release to the host where you manage your cluster with kubectl.
If you customized twistlock.cfg, port those changes forward to twistlock.cfg in the latest release. Otherwise, proceed to the next step.
Generate new YAML configuration file for the latest version of Twistlock. Pass the same options to twistcli as you did in the original install. The following example command generates a YAML configuration file for the default basic install.
$ <PLATFORM>/twistcli console export kubernetes --service-type LoadBalancer
If you’re upgrading from 19.03, then you must first delete the old ReplicationController. Starting with 19.07, Twistlock Console is managed by a Deployment controller.
This is a one time step only. After upgrading to 19.07, you no longer need to manually delete the ReplicationContoller when upgrading to newer versions of Twistlock.
$ kubectl delete rc twistlock-console -n twistlock
Update the Twistlock objects.
$ kubectl apply -f twistlock_console.yaml
You can now upgrade your Defender DaemonSet.
Delete the Defender DaemonSet, then rerun the original install procedure.
You know all the parameters passed to twistcli when you initially deployed the Defender DaemonSet. You’ll need them to recreate a working configuration file for your environment.
Delete the Defender DaemonSet.
$ kubectl -n twistlock delete ds twistlock-defender-ds
$ kubectl -n twistlock delete sa twistlock-service
$ kubectl -n twistlock delete secret twistlock-secrets
Determine the Console service’s external IP address.
$ kubectl get service -o wide -n twistlock
Generate a defender.yaml file. Pass the same options to twistcli as you did in the original install. The following example command generates a YAML configuration file for the default install.
The following command connects to Console’s API (specified in --address) as user <ADMIN> (specified in --user), and retrieves a Defender DaemonSet YAML config file according to the configuration options passed to twistcli. The --cluster_address option specifies the address Defender uses to connect to Console, and the value is encoded in the DaemonSet YAML file.
$ <PLATFORM>/twistcli defender export kubernetes \
--address https://yourconsole.example.com:8083 \
--user <ADMIN_USER> \
--cluster-address twistlock-console
<PLATFORM> can be linux or osx.
<ADMIN_USER> is the name of an admin user.
Deploy the Defender DaemonSet.
$ kubectl create -f defender.yaml
Open a browser, navigate to Console, then go to Manage > Defenders > Manage to see a list of deployed Defenders.
Upgrade the DaemonSet Defenders directly from the Console UI.
If you can’t access your cluster with kubectl, then you can upgrade Defender DaemonSets directly from the Console UI.
You’ve created a kubeconfig credential for your cluster so that Twistlock can access it to upgrade the Defender DaemonSet.
Log into Twistlock Console.
Go to Manage > Defenders > Manage.
Click DaemonSets.
For each cluster in the table, click Actions > Upgrade.
The table shows a count of deployed Defenders and their new version number.