argoproj / argoproj/argo-workflows
Support artifactRepositoryRef in templates
- Dominant language
- Go
- Stars
- 17k
- Forks
- 3.7k
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 138
Description
# Summary
A artifactRepositoryRef can currently only be set on Workflow level. It allows to define a specific artifact store per workflow. It cannot be used to define a specific artifact repository per template. In the template context the full artifact repo configuration has to be set.
My suggestion is to support artifactRepositoryRef in templates.
:warning: pseudo config :warning:
```
[...]
outputs:
artifacts:
- name: message
path: /tmp
artifactRepositoryRef:
configMap: my-cm
key: my-key
```
# Use Cases
My main use case currently is to separate the archiveLogs (main logs) and general output artifacts into a different artifact stores (s3 buckets). As said, it is possible already but I have to add the full s3 bucket config for each object I want to store in a different bucket which is kind of messy.
There are also other use cases in my mind mainly just cause it’s easier to set s3 bucket permissions than s3 object permission. So in my case it's mainly a data security thing.
---
**Message from the maintainers**:
Impacted by this bug? Give it a 👍. We prioritise the issues with the most 👍.
Contributor guide
Research direction
Start by tracing how artifactRepositoryRef is handled at the Workflow level and how template output artifacts currently receive repository configuration. The change is complete when a template output artifact accepts the shown configMap and key reference and uses that repository instead of requiring the full configuration; add or update coverage for this template-level behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100