github.com/argoproj/argo-cd@v1.8.7/docs/user-guide/tracking_strategies.md (about) 1 # Tracking and Deployment Strategies 2 3 An Argo CD application spec provides several different ways of tracking Kubernetes resource manifests. 4 5 In all tracking strategies, the app has the option to sync automatically. If [auto-sync](auto_sync.md) 6 is configured, the new resources manifests will be applied automatically -- as soon as a difference 7 is detected. 8 9 !!! note 10 In all tracking strategies, any [parameter overrides](parameters.md) take precedence over the Git state. 11 12 ## Helm 13 14 For Helm, all versions are [Semantic Versions](https://semver.org/). As a result, you can either version ranges: 15 16 | Use Case | How | Examples | 17 |-|-|-| 18 | Pin to a version (e.g. in production) | Use the version number | `1.2.0` | 19 | Track patches (e.g. in pre-production) | Use a range | `1.2.*` or `>=1.2.0 <1.3.0` | 20 | Track minor releases (e.g. in QA) | Use a range | `1.*` or `>=1.0.0 <2.0.0` | 21 | Use the latest (e.g. in local development) | Use star range | `*` or `>=0.0.0` | 22 23 [Read about version ranges](https://www.telerik.com/blogs/the-mystical-magical-semver-ranges-used-by-npm-bower) 24 25 ## Git 26 27 For Git, all versions are Git references: 28 29 | Use Case | How | Notes | 30 |-|-|-| 31 | Pin to a version (e.g. in production) | Either (a) tag the commit with (e.g. `v1.2.0`) and use that tag, or (b) using commit SHA. | See [commit pinning](#commit-pinning). | 32 | Track patches (e.g. in pre-production) | Tag/re-tag the commit, e.g. (e.g. `v1.2`) and use that tag. | See [tag tracking](#tag-tracking) | 33 | Track minor releases (e.g. in QA) | Re-tag the commit as (e.g. `v1`) and use that tag. | See [tag tracking](#tag-tracking) | 34 | Use the latest (e.g. in local development) | Use `HEAD` or `master` (assuming `master` is your master branch). | See [HEAD / Branch Tracking](#head-branch-tracking) | 35 36 37 ### HEAD / Branch Tracking 38 39 If a branch name, or a symbolic reference (like HEAD) is specified, Argo CD will continually compare 40 live state against the resource manifests defined at the tip of the specified branch or the 41 resolved commit of the symbolic reference. 42 43 To redeploy an app, makes a changes to your manifests, commit/push to the branch/symbolic reference. They will then detected by Argo CD. 44 45 ### Tag Tracking 46 47 If a tag is specified, the manifests at the specified Git tag will be used to perform the sync 48 comparison. This provides some advantages over branch tracking in that a tag is generally considered 49 more stable, and less frequently updated, with some manual judgement of what constitutes a tag. 50 51 To redeploy an app, the user uses Git to change the meaning of a tag by retagging it to a 52 different commit SHA. Argo CD will detect the new meaning of the tag when performing the 53 comparison/sync. 54 55 ### Commit Pinning 56 57 If a Git commit SHA is specified, the app is effectively pinned to the manifests defined at 58 the specified commit. This is the most restrictive of the techniques and is typically used to 59 control production environments. 60 61 Since commit SHAs cannot change meaning, the only way to change the live state of an app 62 which is pinned to a commit, is by updating the tracking revision in the application to a different 63 commit containing the new manifests. Note that [parameter overrides](parameters.md) can still be set 64 on an app which is pinned to a revision. 65