argoproj / argoproj/argo-workflows

Support artifactRepositoryRef in templates

Open
#6,151 1 comment 7 reactions 0 assignees View on GitHub
area/artifacts
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.