1
2
3
4
5
6
7
8
9
10
11
12
13
|
apiVersion: tekton.dev/v1alpha1
kind: Condition
metadata:
name: file-exists
spec:
params:
- name: "path"
resources:
- name: workspace
type: git
check:
image: alpine
script: 'test -f $(resources.workspace.path)/$(params.path)'
|
apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
name: conditional-pipeline
spec:
resources:
- name: source-repo
type: git
params:
- name: "path"
default: "README.md"
tasks:
- name: if-condition-then-run
conditions:
- conditionRef: "file-exists"
params:
- name: "path"
value: "$(params.path)"
resources:
- name: workspace
resource: source-repo
taskRef:
name: my-task
|
kubectl get pipelineruns.tekton.dev
NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME
cancel-pipelinerun-r-67qsr Unknown Running 51m
|
kubectl patch PipelineRun cancel-pipelinerun-r-67qsr --type=merge -p '{"spec":{"status":"PipelineRunCancelled"}}'
|
kubectl get pipelineruns.tekton.dev
NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME
cancel-pipelinerun-r-67qsr False PipelineRunCancelled 52m 3s
|
---
apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
name: pending-pipelinerun
spec:
params:
- name: pl-param-x
value: "100"
- name: pl-param-y
value: "500"
pipelineRef:
name: pending-pipeline
status: "PipelineRunPending"
|
kubectl get pipelineruns.tekton.dev
NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME
pending-pipelinerun Unknown PipelineRunPending
|
kubectl patch PipelineRun pending-pipelinerun --type=merge -p '{"spec":{"status":""}}'
|
kubectl get pipelineruns.tekton.dev
NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME
pending-pipelinerun Unknown Running 4s
|
kubectl get pipelineruns.tekton.dev
NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME
cancel-pipelinerun Unknown Running 9s
|
kubectl patch PipelineRun cancel-pipelinerun --type=merge -p '{"spec":{"status":"PipelineRunPending"}}'
Error from server (BadRequest): admission webhook "validation.webhook.pipeline.tekton.dev" denied the request: validation failed: invalid value: PipelineRun cannot be Pending after it is started: spec.status
|
apiVersion: v1
kind: ConfigMap
metadata:
name: approve-cm
data:
status: init
|
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: approve-task
spec:
workspaces:
- name: data
params:
- name: timeout
description: The max seconds to approve
type: string
default: "86400"
steps:
- name: sleep-a-while
image: bash:latest
script: |
#!/usr/bin/env bash
end=$((SECONDS+$(params.timeout)))
while [ $SECONDS -lt $end ]; do
name=$(cat "$(workspaces.data.path)"/status)
if [ "$name" = "success" ]
then
echo "approved!"
exit 0
elif [ "$name" = "refused" ]
then
echo "refused!"
exit 1
fi
sleep 2
echo "waiting"
done
echo "too long not to approve"
exit 1
|
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: something
annotations:
description: |
A simple task that do something
spec:
steps:
- name: do-something
image: bash:latest
script: |
#!/usr/bin/env bash
uname -a
---
apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
name: approve-pipeline
spec:
workspaces:
- name: workspace
tasks:
- name: wait-for-approve
workspaces:
- name: data
workspace: workspace
taskRef:
name: approve-task
- name: do-something
taskRef:
name: something
runAfter:
- wait-for-approve
---
apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
name: approve-pipelinerun
spec:
workspaces:
- name: workspace
configmap:
name: approve-cm
pipelineRef:
name: approve-pipeline
|
kubectl patch ConfigMap approve-cm --type=merge -p '{"data":{"status":"success"}}'
|
相关推荐
Service Mesh 在微服务领域已经非常流行,越来越多的公司开始在内部落地,蚂蚁从 Service Mesh 刚出现的时候开始,就一直在这个方向上大力投入,到目前为止,内部的 Mesh 方案已经覆盖数千个应用、数十万容器并且经过了多次大促考验,Service Mesh 带来的业务解耦,平滑升级等优势大大提高了中间件的迭代效率。 在大规模落地以后,我们又遇到了新的问题,本文主要对 Servic
使用 pip 命令安装 Python 包时,默认去 https://pypi.python.org/simple/ 源查找相应的包,下载并安装。但是在内网环境,或者需要发布一些私有包提供给指定用户时,就需要搭建自己的 PyPI Server。本篇主要记录使用 devpi 工具搭建 PyPI Server 源的过程,以及记录一些常用命令。1. PyPI Server 比较 PyPI ServerPy
译者注:这篇文章介绍了 Istio 的 Rust-Based Ztunnel,它是一种基于 Rust 语言的轻量级代理,用于 Istio 的 ambient mesh。在文章中,作者解释了为什么需要一种新的代理,以及 Rust 语言是如何成为最佳选择的。文章还讨论了如何使用 workload xDS 配置来管理工作负载,以及如何查看 ztunnel 日志和 L4 指标。作者表示,Rust-Base
目录 简要概述 环境测试 结果验证 简要概述 Kubernetes pod 结合Ceph rbd块设备的使用,让Docker 数据存储在Ceph,重启Docker或k8s RC重新调度pod 不会引起数据来回迁移。 工作原理无非就是拿到ceph集群的key作为认证,远程rbdmap映射挂载使用。那么就要启用一个基于key的secret资源,之后k8s pod指定要用的rbd就可以了。 环境测试 我
大家好,我是张晋涛。 Kubernetes v1.29 是 2023 年的第三个大版本更新,也是今年的最后一个大版本,包含了 49 项主要的更新。 而今年发布的第一个版本 v1.27 有近 60 项,第二个版本 v1.28 有 46 项。尽管 Kubernetes 已经发布快 10 年了,Kubernetes 的生命力仍然很旺盛! 这个版本中有 19 个增强功能正在进入 Alpha 阶段,19 个
回到顶部