mirror of
https://github.com/tektoncd/catalog.git
synced 2024-11-22 06:02:51 +00:00
149d291f64
Changes include: - adds version label - adds a minimum pipeline versions supported by the task - adds tags for task - modified description to add a summary This patch moves the kubectl files to the task directory and renames the yaml file and the directory - The yaml filename and the directory is changed to match the resource name - Modifies the path for install task command in readme file Issue: #386 Signed-off-by: Shiv Verma <shverma@redhat.com> |
||
---|---|---|
.. | ||
clusterrole.yaml | ||
clusterrolebinding.yaml | ||
kubectl-deploy-pod.yaml | ||
README.md | ||
taskrun-delete.yaml | ||
taskrun.yaml |
Kubectl
This Task deploys (or delete) a Kubernates resource (pod). It uses
kubectl
for that.
Install the Task
kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/v1beta1/task/kubectl-deploy-pod/0.1/kubectl-deploy-pod.yaml
Install ClusterRole
CAUTION: The clusterrole.yaml
is just a sample, should be modified based on real requirements to avoid potential security issues.
kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/v1beta1/kubectl/clusterrole.yaml
Install ClusterRolebinding
kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/v1beta1/kubectl/clusterrolebinding.yaml
Inputs
Parameters
- action: The action to perform to the resource, support
get
,create
,apply
,delete
,replace
,patch
. - manifest: The content of the resource to deploy.
- success-condition/failure-condition: SuccessCondition and failureCondition are optional expressions which are evaluated upon every update of the resource. If failureCondition is ever evaluated to true, the step is considered failed. Likewise, if successCondition is ever evaluated to true the step is considered successful. It uses kubernetes label selection syntax and can be applied against any field of the resource (not just labels). Multiple AND conditions can be represented by comma delimited expressions. For more details, see: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/.
- merge-strategy: The strategy used to merge a patch, defaults to
strategic
, supportedstrategic
,merge
andjson
. - output: Extracted from fields of the resource, only support jsonpath. Should define as a
yaml
array(array even if only one item):
- name: output
value: |
- name: job-name
valueFrom: '{.metadata.name}'
- name: job-namespace
valueFrom: '{.metadata.namespace}'
The extracted value will be write to/tekton/results/$(name)
.
- set-ownerreference: Set the
ownerReferences
for the resource as pod ofstep
, default to false.
Usage
This TaskRun runs the Task to deploy the given Kubernetes resource.
apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
name: kubectl-deploy-pod
spec:
taskRef:
name: kubectl-deploy-pod
params:
- name: action
value: create
- name: success-condition
value: status.phase == Running
- name: failure-condition
value: status.phase in (Failed, Error)
- name: output
value: |
- name: job-name
valueFrom: '{.metadata.name}'
- name: job-namespace
valueFrom: '{.metadata.namespace}'
- name: set-ownerreference
value: "true"
- name: manifest
value: |
apiVersion: v1
kind: Pod
metadata:
generateName: myapp-pod-
labels:
app: myapp
spec:
containers:
- name: myapp-container
image: docker
command: ['sh', '-c', 'echo Hello Kubernetes! && sleep 30']