Skip to main content

Updates

When you installed the Rocket Pad Platform you will have the newest version already. But to keep it up to date we recommend following our updates newsletter to always stay up to date on when new features, patches and security fixes are available.

Install Tools

We use Jsonnet to build our platform. In order to get the platform code updated you will need to install Jsonnet. The easiest way to install Jsonnet is to use GO. For this to work Go needs to be installed.

Install GO

Download and install Go from the official page.

Install Go Jsonnet

Use the go-jsonnet installer to install Jsonnet ll

go install github.com/google/go-jsonnet/cmd/jsonnet@latest

# Run the following command if you also need the Jsonnet linter
go install github.com/google/go-jsonnet/cmd/jsonnet-lint@latest

Update Rocket Pad Platform

Now that all tools are installed we can update the platform code dependencies. In order to do so, navigate into your Rocket Pad Platform cluster bootstrap repository and from there into the /deps folder and open the /deps/jsonnetfile.json.

jsonnetfile.json

This file defines the dependencies of our Rocket Pad Platform code. All dependencies are defined with a source. In that source you will find a "version" element. You can add the newest available version tag in there to update to a fixed version. alternatively add HEAD to follow our main branches and get the newest versions whenever you update the dependencies.

Update dependencies

Now use the update command for Jsonnet to install the newest dependencies:

cd /deps

jb update # Use this to update all dependencies

jb update https://gitlab.com/rocketpadplatforms/platform/base.git # Use an url to only update a specific dependency

Rollout updates

To apply the changes you can now commit and push your the updated /deps folder to you main/master branch. Now wait for Argo CD to detect and sync the changes. If you don't want to wait so long you can go into the Argo CD UI and refresh the bootstrap application.

Bare Metal and Talos based Infrastructure updates

If your system is build on bare-metal infrastructure or other providers that use Talos OS as VM images for bootstrapping you should also update Talos whenever there are new updates available.

Install and configure Talosctl

In order to update talos on a running cluster in a rolling fashion without downtime you need to have talosctl installed and the clusters talosconfig file ready.

curl -sL https://talos.dev/install | sh

export TALOSCONFIG="/PATH/TO/talosconfig"

talosctl config info

Update Talos with talosctl

The Talos OS on a node can be updated with the talosctl tool installed earlier. If you are using custom images (Which you probably do even if you don't know it now!), the image can be build with the Talos Image Factory to include all the needed system extensions.

Now you can use talosctl to update the talos nodes to the desired version with:

talosctl upgrade \
--nodes 10.20.30.40 \
-- image factory.talos.dev/installer/376567988ad370138ad8b2698212367b8edcb69b5fd68c80be1f2ec7d603b4b:v1.7.5 \
-- wait

In the above upgrade command the list of node ips needs to be changed to your cluster node ip addresses and the image to your desired image with the new image version tag. The --wait flag will keep this command running and log the upgrade process until it is done.

note

It is recommended to upgrade one node at a time to prevent any issues while upgrading and allow the cluster to stay operational while updating trough rescheduling pods if possible as well as save in cluster state.

Update Talos with IaC Terraform

If you are using our IaC examples for bootstrapping a Talos based Rocket Pad Platform the used talos image is either defined in the .tfvars file and overwritten, or within the terraform files itself. To update the talos os change the version tag of the installation image url to the newest version:

local.tfvars
talos_install_image = d4cf8602b9d285ede53209d5e8c482372d61d3b9aa850736c2dc65bd8d091cba:v1.7.5

Afterwards run terraform again to rollout the version change and upgrade the talos nodes

Troubleshoot

The talosctl upgrade command can be run with the --wait --debug flags to see logs and debug what is going wrong if an update should fail on one or more nodes.