Upgrade

Upgrade from 1.x to 2.x controller

2 minute read

This document covers the key points to bear in mind while performing the controller upgrade from 1.x to 2.x series.

Key Changes

  • the CLI has been renamed from redskyctl to stormforge
  • the controller namespace has changed from redsky-system to stormforge-system
  • the CRD group identifiers have changed from redskyops.dev to optimize.stormforge.io
  • the experiments CRD has changed from v1beta1 to v1beta2
  • experiments are now required to have scenario and application labels

Action Items

CRD Changes

With the group and CRD version changes, all existing experiments, applications, and trials will need to be updated. This can be accomplished via stormforge fix -f <file.yaml>.

CLI Changes

Most of the CLI functionality remains the same between both commands. The major differences come into play when bootstrapping a cluster with Optimize. The new CLI, stormforge, will bootstrap the controller and related resources under the stormforge-system namespace.

With the change in namespace, this means that both versions of the controller can be deployed simultaneously. When operating with both 1.x and 2.x versions of Optimize you will need to use the fully qualified CRD name.

For 2.x series, kubectl get experiments.optimize.stormforge.io. For 1.x series, kubectl get experiments.redskyops.dev. Using the short name ( experiments, trials ) will return inconsistent results.

Lastly, if you made use of shell completions you will need to refresh the completions for the new CLI. This can be accomplished by stormforge completion {shell}.

Upgrade Instructions

We recommend removing the 1.x series of the controller prior to installing 2.x.

Remove 1.x Installation

redskyctl reset

This will remove all the resources associated with the 1.x series of Optimize. This includes the controller, controller related resources, and any experiments or trials in the cluster.

Install 2.x CLI and Controller

Follow the installation instructions.

Migrate Existing Experiments

Existing experiments and applications will need to be migrated to the new group names and versions. This can be accomplished via stormforge fix -f <file.yaml>.

Required Labels

With the 2.x series of Optimize, we now require the use of the following labels:

  • stormforge.io/application: myapp
  • stormforge.io/scenario: myscenario

This should be handled by stormforge fix, but if you require more fine grained control you can edit these labels. They will directly impact how the results are grouped in the UI.

Last modified August 12, 2021