
Armada has previously named template files relative to the `templates` dir, whereas the Helm CLI names them relative to the chart root. This causes `include`s of these templates to fail. This change fixes this, for armada/Chart/v2 docs only, since it is a breaking change, as some charts may have already aligned with the existing Armada behavior. When updating a release previously deployed with armada/Chart/v1, the fixed template names alone will not cause the release to be updated, as the diff logic accounts for this. Change-Id: I243073ca4c2e1edbcb0d8f649475f568fc7c818f
8.0 KiB
8.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. |
upgrade.no_hooks moved to
upgrade.options.no_hooks , and now optional |
Remove as desired, otherwise move to the new location. |
source.subpath now optional, deafults to no
subpath. |
Remove as desired. |
Template naming for template files aligned with Helm CLI. | If a chart was relying on Armada's previous misaligned template
naming, where it was omitting the templates/ prefix, such
as via include argument, that argument will need to be
updated. This could also theoretically affect whether the file is
ignored, if the old or new name is in .helmignore
(unlikely). The fixed template names alone will not cause a release to
be updated, as the diff logic accounts for this. |
wait improvements |
See Wait Improvements. |
Wait Improvements
The v2 wait API <wait_v2>
includes the following
changes.
Breaking changes
wait.resources
now defaults to all supported resource types, currentlyjob
,daemonset
,statefulset
,deployment
, andpod
, withrequired
(a new option) set tofalse
. The previous default was the equivalent of pods withrequired=true
, and jobs withrequired=false
.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.- Waits are no longer retried due to resources having been modified. This was mildly useful before as an indicator of whether all targeted resources were accounted for, but with 1. and 2. above, we are now tracking top-level resources directly included in the release, rather than generated resources, such as controller-owned pods, so there is no need to wait for them to come into existence.
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 themin_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.
required
A required
field is also exposed for items/values in
wait.resources
.
allow_async_updates
An allow_async_updates
field is added to daemonset and
statefulset type items/values in wait.resources
.
ChartGroup
change | migration |
---|---|
test_charts removed |
Use the Chart schema's test.enabled <test_v2> instead. |
Manifest
No changes.