armada/doc/source/operations/documents/migration-v1-v2.rst

7.0 KiB

v1-v2 Migration

The following migrations must be done when moving from v1 <document_authoring_v1> to v2 <document_authoring_v2> docs.

Chart

change migration
chart_name removed Remove. It was redundant with metadata.name while at the same time not guaranteeing uniqueness. Log messages now reference metadata.name for improved grep-ability.
test as a boolean removed test <test_v2> must now be an object.
timeout removed Use wait.timeout instead.
install removed Remove. Previously unused.
upgrade.post removed Remove.
upgrade.pre.update removed Remove.
upgrade.pre.create removed Remove.
upgrade.pre.delete[*].name removed Remove.
upgrade.pre.delete[*] with type: job no longer deletes cronjobs If you have an item in upgrade.pre.delete and type: job and you also want to delete cronjobs, add another item with type: cronjob and same labels.
dependencies, upgrade.no_hooks, source.subpath now optional Remove as desired.
wait improvements See Wait Improvements.

Wait Improvements

The v2 wait API <wait_v2> includes the following changes.

Breaking changes

  1. wait.resources now defaults to all supported resource type s, currently job, daemonset, statefulset, deployment, and pod, with skip_if_none_found_ (a new option) set to true. The previous default was the equivalent of pods with skip_if_none_found=false, and jobs with skip_if_none_found=true.
  2. type: pod waits now exclude pods owned by other resources, such as controllers, as one should instead wait directly on the controller itself, which per 1. is now the default.
  3. Waits are no longer retried multiple times to attempt to wait for modifications to pods to quiet down. This crutch was only mildly useful before, and now even less so due to 1. and 2. above. If the min_ready for a controller is achieved, there should be no reason not to move on.
  4. wait.native.enabled is now disabled by default. With the above changes, this is no longer useful as a backup mechanism. Having both enabled leads to ambiguity in which wait would fail in each case. More importantly, this must be disabled in order to use the min_ready functionality, otherwise tiller will wait for 100% anyway. So this prevents accidentally leaving it enabled in that case. Also when the tiller native wait times out, this caused the release to be marked FAILED by tiller, which caused it to be purged and re-installed (unless protected), even though the wait criteria may have eventually succeeded, which is already validated by armada on a retry.

New features

Per-resource-type overrides

wait.resources can now be a dict, mapping individual resource types to wait configurations (or lists thereof), such that one can keep the default configuration for the other resource types, and also disable a given resource type, by mapping it to false.

The ability to provide the entire explicit list for wait.resources remains in place as well.

skip_if_none_found

A skip_if_none_found field is also exposed for items/values in wait.resources which causes them to be skipped if no matching resources are found, which is useful for things which may only be dynamically included in the release depending on configuration. When explicitly overriding wait.resources items, this defaults to false, as it is assumed the user likely intends for them to exist in that case.

ChartGroup

change migration
test_charts removed Use the Chart schema's test.enabled <test_v2> instead.

Manifest

No changes.