Manage AppSets on Akuity Platform (AKP) for configuring finalizer
Why Finalizers Work in OSS Argo CD but Require Extra Config on Akuity's Managed Platform
When managing ApplicationSet resources on the Akuity Platform (AKP), you might notice that setting the resources-finalizer.argocd.argoproj.io finalizer doesn't prevent deletion of generated Applications as it does in open source Argo CD (OSS).
This explains why this happens and how to fix it.
Problem Statement
You have a valid ApplicationSet like the following:
apiVersion: argoproj.io/v1alpha1kind: ApplicationSetmetadata: name: kube-prometheus-stack namespace: argocd finalizers: - resources-finalizer.argocd.argoproj.iospec: syncPolicy: applicationsSync: create-update goTemplate: true generators: - list: elements: - name: foo template: metadata: name: '-kube-prometheus-stack' spec: project: default sources: - chart: kube-prometheus-stack repoURL: https://prometheus-community.github.io/helm-charts targetRevision: 58.4.0 helm: releaseName: kube-prometheus-stack valuesObject: {} destination: namespace: monitoring name: '' syncPolicy: automated: prune: true selfHeal: true syncOptions: - CreateNamespace=true - ServerSideApply=true
In OSS Argo CD, the finalizer prevents the generated Application from being deleted if the ApplicationSet is removed. But on AKP, this safeguard doesn't work by default.
Root Cause
On the Akuity Platform:
-
A default syncPolicy is enforced at the platform level.
-
The
Allow Overrideflag is set tofalseby default.
This means that even though you've defined a finalizer in your ApplicationSet, AKP does not allow the generated Applications to inherit or respect this setting—unless explicitly permitted.
Solution
To make the resources-finalizer.argocd.argoproj.io work as expected:
-
Go to the Akuity UI.
-
Navigate to your
ApplicationSetsettings. -
Enable the "Allow Override" option.
-
Save and redeploy the ApplicationSet.
This will allow the AppSet template's sync policy and metadata (including finalizers) to override the platform defaults.
This behavior is a safeguard in Akuity to enforce platform-level policies, but it can interfere with advanced use cases like custom finalizers. Enabling Allow Override on a per-ApplicationSet basis restores expected behavior from OSS Argo CD.
Note: It has been fixed in the most recent release of Akuity Platform. By default the global sync policy is empty which allows application overrides by default(1:1 w/ OSS).
Reference:
- https://docs.akuity.io/argo-cd/settings/features/declarative-management#allow-override