Skip to content

Upgrading from ApplicationSet controller v0.2.0 to v0.3.0.

When moving from ApplicationSet v0.2.0 to v0.3.0, there are a couple of behaviour changes to be aware of.

Cluster generator: {{name}} parameter value will no longer be normalized, but existing behaviour is preserved in a new {{nameNormalized}} parameter

The Cluster generator {{name}} parameter has now reverted to it's original behaviour: the cluster name within Argo CD will no longer be normalized. The {{name}} parameter generated by the Cluster generator within the ApplicationSet will now be passed unmodified to the ApplicationSet template.

A new parameter, {{nameNormalized}} has been introduced which preserves the 0.2.0 behaviour. This allows you to choose which behaviour you wish to use in your ApplicationSet, based on the context in which it is used: either using the parameter as defined, or in a normalized form (which allows it to be used in the name field of a Application resource.)

If your Argo CD cluster names are already valid, no change is required. However, to preserve the v0.2.0 behaviour of your ApplicationSet, replace {{name}} with {{nameNormalized}} within your ApplicationSet template.

More information about this change is available from the issue.

If an ApplicationSet generates an invalid Application, the valid generated Applications will now be processed

The responsibility of the ApplicationSet controller is to convert an ApplicationSet resource into one or more Application resources. However, with the previous releases, if at least one of the generated Application resources was invalid (eg it failed the internal validation logic), none of the generated Applications would be processed (they would not be neither created nor modified).

With the latest ApplicationSet release, if a generator generates invalid Applications, those invalid generated Applications will still be skipped, but the valid generated Applications will now be processed (created/modified).

Thus no ApplicationSet resource changes are required by this upgrade, but it is worth keeping in mind that your ApplicationSets which were previously blocked by a failing Application may no longer be blocked. This change might cause valid Applications to now be created/modified, whereas previously they were prevented from being processed.