Initially setting up Octopus to interact with your Argo CD instance(s) can be complex, and the best way to accomplish your desired outcomes may not be immediately obvious.
The following explores how best to use Octopus for various Argo CD Application shapes.
Global Constraints
There are a number of use cases which Octopus cannot support due to data access.
- Octopus will not update “pinned”
TargetRevisionsin yourApplication.yaml- Octopus will only update content in the repositories referenced by your application- If your application specifies a constant
TargetRevision, Octopus will treat it as a branch - and fail to push back to your repository.
- If your application specifies a constant
- Octopus cannot update the content of Helm Sources which directly reference a chart from a Helm Repository or OCI feed - these are effectively static content.
- However, if your application is represented as a Helm Chart in a directory, Octopus can update the directory content in the applications repository.
- Octopus can create Pull Requests for GitHub, GitLab and Azure Devops based repositories.
- At this time, only vendor-hosted repositories of these providers are available (eg .github.com//, .gitlab.com//).
- Please let us know which other providers you would like to see supported.
- Octopus requires Argo CD version of 2.14.0 or above to support applications with multiple sources (corresponding to the introduction of named sources in Argo CD)
- Applications with a single source can be updated in all versions of Argo CD.
Update Argo Image Tags
The Update Argo Image Tags step’s behavior changes based on the content of the application’s repository:
| Repository Content | Behavior |
|---|---|
| Yaml Manifests | Will recursively update image-tag fields in k8s resource files |
| Kustomize | Will replace image tag values in the kustomize.yaml file |
| Helm Chart | Will update image-tag fields specified in the values.yaml file, requires helm-annotations |
Update Argo Manifest Step
The Update Argo Manifest step’s behavior is agnostic of the application source repository content. Regardless of the content of the source repository, the step is responsible for writing the populated templates to the path specified in the Argo CD application source.
Help us continuously improve
Please let us know if you have any feedback about this page.
Page updated on Monday, September 15, 2025