argoproj / argoproj/argo-workflows
Input and output artifacts support artifactRepositoryRef
- 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
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