argoproj / argoproj/argo-workflows

Input and output artifacts support artifactRepositoryRef

Open
#7,917 0 comments 13 reactions 0 assignees View on GitHub
area/artifacts
Dominant language
Go
Stars
17k
Forks
3.7k
Avg merge
1d 20h
Merged PRs (30d)
138

Description

# Summary And Use Cases

We have multiple artifact repositories and have them configured in the configMap, like:
```
apiVersion: v1
kind: ConfigMap
metadata:
name: artifact-repositories
data:
art-s3: |
s3:
endpoint: ...
bucket: ...
accessKeySecret: ...
secretKeySecret: ...

art-minio: |
minio:
endpoint: ...
bucket: ...
accessKeySecret: ...
secretKeySecret: ...
```

And then we can reference them in a key-only way in a same workflow :
```
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: artifact-
spec:
artifactRepositoryRef:
configMap: artifact-repositories
key: art-s3

entrypoint: main
templates:
- name: main
steps:
- - name: step1
template: step1
- - name: step2
template: step2

- name: step1
container: ...
outputs:
artifacts:
- name: step1-output
path: /tmp/s1.txt
s3:
key: ... # key only

- name: step2
container: ...
outputs:
artifacts:
- name: step2-output
artifactRepositoryRef: # we want to use another artifact repository in a key-only way
configMap: artifact-repositories
key: minio
minio:
key: ...
```

Since `workflow.spec.artifactRepositoryRef` can only refer to one artifact repository, it is not very convenient and concise when we need to use multiple artifact repositories.

---

**Message from the maintainers**:

Love this enhancement proposal? Give it a 👍. We prioritise the proposals with the most 👍.

Contributor guide

Open the contributing guide

Research direction

Start with workflow.spec.artifactRepositoryRef and the input/output artifact examples in the issue. Trace how repository selection currently works for workflow-level references, then compare it with the proposed per-artifact references. Done means input and output artifacts can select distinct ConfigMap keys while retaining key-only artifact configuration.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kubernetes
Domain
backend, devops
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.