Skip to content

Annotations and Labels used by Argo CD

Every key on this page has a stable anchor, so you can link directly to an individual annotation or label. For example #sync-wave for argocd.argoproj.io/sync-wave, or #notice-severity for notice.argocd.argoproj.io/severity.

Annotations

Annotation key Target resource(s) Summary
argocd.argoproj.io/application-set-refresh ApplicationSet Requests a refresh of an ApplicationSet.
argocd.argoproj.io/client-side-apply-migration-manager Application Sets the field manager used for client-side apply migration.
argocd.argoproj.io/compare-options any Configures how current state is compared to desired state.
argocd.argoproj.io/deletion-approved Application Confirms a pruning or deletion that requires manual approval.
argocd.argoproj.io/hook any Configures a resource hook.
argocd.argoproj.io/hook-delete-policy any Sets a resource hook's deletion policy.
argocd.argoproj.io/hydrate Application Requests (re-)hydration of an Application's dry source.
argocd.argoproj.io/hydrate-timestamp Application Identifies a particular hydration request. Not set manually.
argocd.argoproj.io/ignore-default-links any Suppresses autogenerated links in the UI.
argocd.argoproj.io/ignore-healthcheck any Excludes an immediate child resource from Application health.
argocd.argoproj.io/ignore-resource-updates any Ignores updates to the resource.
argocd.argoproj.io/ignore-restart-policy Pod Assesses a Never/OnFailure Pod like a long-running Pod.
argocd.argoproj.io/installation-id any Identifies the Argo CD instance managing the resource.
argocd.argoproj.io/managed-by-url Application URL of the Argo CD instance managing the Application.
argocd.argoproj.io/manifest-generate-paths Application Limits which repository paths trigger a refresh.
argocd.argoproj.io/refresh Application Requests a refresh of an Application.
argocd.argoproj.io/refresh-timestamp Application Identifies a particular refresh request. Not set manually.
argocd.argoproj.io/skip-reconcile Application, Cluster Secret Skips reconciliation.
argocd.argoproj.io/sync-options any Settings that determine how resources are synced.
argocd.argoproj.io/sync-wave any Orders resources within a sync.
argocd.argoproj.io/tracking-id any Used by Argo CD to track the resources it manages.
link.argocd.argoproj.io/{name} any Adds a link to the resource in the Argo CD UI.
notice.argocd.argoproj.io/content Application Text of a per-application notice banner.
notice.argocd.argoproj.io/severity Application Banner/icon styling for the notice.
notice.argocd.argoproj.io/url Application Makes the notice link to a URL.
notice.argocd.argoproj.io/permanent Application Makes the notice non-dismissible.
notice.argocd.argoproj.io/icon Application Overrides the notice's default icon.
notice.argocd.argoproj.io/scope Application Restricts where the notice is shown.
pref.argocd.argoproj.io/default-pod-sort Application Sets the Application's default grouping mechanism.
pref.argocd.argoproj.io/default-view Application Sets the Application's default view mode.

argocd.argoproj.io/application-set-refresh

  • Target resource(s): ApplicationSet
  • Possible values: "true"

Added when an ApplicationSet is requested to be refreshed by a webhook. The ApplicationSet controller will remove this annotation at the end of reconciliation.

argocd.argoproj.io/client-side-apply-migration-manager

  • Target resource(s): Application
  • Possible values: a field manager name (default kubectl-client-side-apply)

Specifies a custom field manager to use for client-side apply migration during a server-side apply sync. Useful when another operator owns fields that Argo CD should take over. Must be set on the Application; it has no effect on the resources the Application manages. See client-side apply migration docs.

argocd.argoproj.io/compare-options

Configures how an app's current state is compared to its desired state.

argocd.argoproj.io/deletion-approved

  • Target resource(s): Application
  • Possible values: an RFC3339 timestamp

Confirms a pruning or deletion that was made to require manual approval via the Prune=confirm or Delete=confirm sync options. Normally set for you by the Argo CD UI or CLI rather than by hand. See resource pruning with confirmation and resource deletion with confirmation.

argocd.argoproj.io/hook

Used to configure resource hooks.

argocd.argoproj.io/hook-delete-policy

Used to set a resource hook's deletion policy.

argocd.argoproj.io/hydrate

  • Target resource(s): Application
  • Possible values: normal, hard

Indicates that an Application's dry source needs to be (re-)hydrated. Removed by the application controller once consumed, unless a newer hydration request arrived while it was processing this one (see hydrate-timestamp below). Value "hard" forces hydration even if the dry source revision hasn't changed; "normal" forces a check for dry source changes, hydration only runs if a change is found. Only used when spec.sourceHydrator is configured.

argocd.argoproj.io/hydrate-timestamp

  • Target resource(s): Application
  • Possible values: an RFC3339Nano timestamp

Set together with hydrate to identify a particular hydration request. Lets the application controller detect that a new hydration request arrived while the current one was still being processed, so that request isn't dropped. Removed together with hydrate once consumed. Not meant to be set manually.

  • Target resource(s): any
  • Possible values: "true", "false"

Do not add autogenerated links to the Argo CD UI from this resource. This only disables links generated from the resource spec; it does not disable link.argocd.argoproj.io/{name}. See external URL docs for details.

argocd.argoproj.io/ignore-healthcheck

  • Target resource(s): any
  • Possible values: "true"

Set on an Application's immediate child resource to exclude that resource's health from the Application's overall health. See ignoring child resource health check docs.

argocd.argoproj.io/ignore-resource-updates

  • Target resource(s): any
  • Possible values: "true", "false"

Used by Argo CD to ignore resource updates. See reconcile docs for details.

argocd.argoproj.io/ignore-restart-policy

  • Target resource(s): Pod
  • Possible values: "true"

Assesses the health of a running Pod with a restartPolicy of Never or OnFailure like a long-running Pod instead of considering it "Progressing" until completion. Has no effect on hook Pods. See resource health docs for details.

argocd.argoproj.io/installation-id

  • Target resource(s): any
  • Possible values: the configured installation ID

Added to every managed resource when installationID is set in the Argo CD ConfigMap. It lets several Argo CD instances manage the same cluster — including Applications with the same name — without conflicting. See resource tracking docs.

argocd.argoproj.io/managed-by-url

  • Target resource(s): Application
  • Possible values: a valid http(s) URL

Specifies the URL of the Argo CD instance managing the application. Used to correctly link to applications managed by a different Argo CD instance. See managed-by-url docs for details.

argocd.argoproj.io/manifest-generate-paths

Used to avoid unnecessary Application refreshes, especially in mono-repos. On Applications with spec.sourceHydrator, also controls whether dry-source commits trigger hydration; see source hydrator docs for git note implications.

argocd.argoproj.io/refresh

  • Target resource(s): Application
  • Possible values: normal, hard

Indicates that app needs to be refreshed. Removed by application controller after app is refreshed, unless a newer refresh request arrived while it was processing this one (see refresh-timestamp below). Value "hard" means manifest cache and target cluster state cache should be invalidated before refresh.

argocd.argoproj.io/refresh-timestamp

  • Target resource(s): Application
  • Possible values: an RFC3339Nano timestamp

Set together with refresh to identify a particular refresh request. Lets the application controller detect that a new refresh request arrived while the current one was still being processed, so that request isn't dropped. Removed together with refresh once consumed. Not meant to be set manually.

argocd.argoproj.io/skip-reconcile

  • Target resource(s): Application, Cluster Secret
  • Possible values: "true"

On an Application, skips reconciliation for that app. On a cluster secret, skips reconciliation for all apps targeting that cluster. See skip reconcile docs.

argocd.argoproj.io/sync-options

Provides a variety of settings to determine how an Application's resources are synced.

argocd.argoproj.io/sync-wave

  • Target resource(s): any
  • Possible values: an integer (default 0)

Orders the resource within a sync. Resources are applied in ascending wave order, and Argo CD waits for each wave to become healthy before starting the next. See sync waves docs.

argocd.argoproj.io/tracking-id

  • Target resource(s): any
  • Possible values: any

Used by Argo CD to track resources it manages. See resource tracking docs for details.

  • Target resource(s): any
  • Possible values: an http(s) URL, optionally prefixed with a title and |

Adds a link to the Argo CD UI for the resource. The key suffix is an arbitrary unique identifier, so a resource may carry several of these. See external URL docs for details.

notice.argocd.argoproj.io/content

  • Target resource(s): Application
  • Possible values: plain text (truncated at 500 chars)

Enables a per-application notice banner on the details page and an icon on the application list/tile. See application notice docs.

notice.argocd.argoproj.io/severity

  • Target resource(s): Application
  • Possible values: info, warning, critical (default info)

Selects the predefined banner/icon styling for the notice.

notice.argocd.argoproj.io/url

  • Target resource(s): Application
  • Possible values: an http(s) URL

If set, the notice banner text and icon link to this URL.

notice.argocd.argoproj.io/permanent

  • Target resource(s): Application
  • Possible values: "true", "false" (default false)

When true, the notice banner cannot be dismissed by users.

notice.argocd.argoproj.io/icon

  • Target resource(s): Application
  • Possible values: an allowlisted FontAwesome class (e.g. fa-bell)

Overrides the severity-derived default icon. Unknown values fall back to the severity default.

notice.argocd.argoproj.io/scope

  • Target resource(s): Application
  • Possible values: banner, icon, both (default both)

Restricts where the notice is shown: details-page banner only, list/tile icon only, or both.

pref.argocd.argoproj.io/default-pod-sort

Sets the Application's default grouping mechanism.

pref.argocd.argoproj.io/default-view

Sets the Application's default view mode (e.g. tree or list).

Labels

Label key Target resource(s) Summary
argocd.argoproj.io/auto-label-cluster-info Cluster Secret Opts the cluster secret into dynamic cluster-info labels.
argocd.argoproj.io/instance any Recommended tracking label.
argocd.argoproj.io/kubernetes-version Cluster Secret The cluster's Kubernetes version. Set by Argo CD.
argocd.argoproj.io/secret-type Secret Identifies Secrets used by Argo CD.

argocd.argoproj.io/auto-label-cluster-info

  • Target resource(s): Cluster Secret
  • Possible values: "true"

When true, the controller dynamically labels the cluster secret with information about the cluster — currently just kubernetes-version. See the cluster generator docs for an example of selecting clusters on that label.

argocd.argoproj.io/instance

  • Target resource(s): any
  • Possible values: any

Recommended tracking label to avoid conflicts with other tools which use app.kubernetes.io/instance.

argocd.argoproj.io/kubernetes-version

  • Target resource(s): Cluster Secret
  • Possible values: a Kubernetes version, e.g. 1.30

The Kubernetes version of the cluster the secret points at. Set by Argo CD, and only present when auto-label-cluster-info is enabled on the secret. Not meant to be set manually.

argocd.argoproj.io/secret-type

  • Target resource(s): Secret
  • Possible values: cluster, repository, repo-creds, scm-creds

Identifies certain types of Secrets used by Argo CD. See the Declarative Setup docs for details about the first three, and AppSet-in-any-namespace docs for the last one.