-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Open
Labels
area/apiIndicates an issue or PR that deals with the API.Indicates an issue or PR that deals with the API.help wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.kind/featureCategorizes issue or PR as related to a new feature.Categorizes issue or PR as related to a new feature.
Description
Expected Behavior
When defining parameters for a Task
in my Pipeline
, I would like to use values for the parameters which I defined in a ConfigMap
, instead of hardcoding them in the Pipeline
.
A cool solution would look like the use of ConfigMaps
when defining environment variables in a Pod
, there I am able to do this:
env:
- name: SOME_ENV_VARIABLE
valueFrom:
configMapKeyRef:
name: my-config
key: my-key
if params could work the same way it would be like this:
params:
- name: some-parameter
valueFrom:
configMapKeyRef:
name: pipeline-config
key: some-key
Actual Behavior
If I want to use a ConfigMap
I can only use it on a Step
level, and I can't directly access its values, this becomes an issue in the following Task
:
apiVersion: tekton.dev/v1alpha1
kind: Task
metadata:
name: pmd-test
spec:
inputs:
resources:
- name: git-source-code
type: git
params:
- name: image
type: string
description: The image that will be used in the test
default: rawdee/pmd
- name: command
type: string
description: The command that will be used in the test
default: pmd
- name: args
type: string
description: The args that will be used in the test
default: -language java -dir /workspace/git-source-code -rulesets ./my-rulesets.xml
steps:
- name: test-pmd
image: $(input.params.image)
command: ["$(input.params.command)"]
args: ['$(input.params.args)']
in this example, I want to have the possibility configure the entire Step
based on the ConfigMap
, but currently it would look like this:
apiVersion: tekton.dev/v1alpha1
kind: Task
metadata:
name: pmd-test
spec:
volumes:
- name: config-volume
configMap:
name: pipeline-config
inputs:
resources:
- name: git-source-code
type: git
steps:
- name: test-pmd
volumeMounts:
- name: config-volume
mountPath: /my-path
image: $(cat /my-path/my-image)
command: ["$(cat /my-path/my-command)"]
args: ['$(cat /my-path/my-args)]
Note that this wouldn't work for the image
since I'm only able to use variable substitution there.
imjasonh, cmoulliard, mgreau, lmserrano, xpepermint and 6 more
Metadata
Metadata
Assignees
Labels
area/apiIndicates an issue or PR that deals with the API.Indicates an issue or PR that deals with the API.help wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.kind/featureCategorizes issue or PR as related to a new feature.Categorizes issue or PR as related to a new feature.
Type
Projects
Status
Todo