东莞建设网站软件手机百度2020最新版
欢迎关注我的公众号:
目前刚开始写一个月,一共写了18篇原创文章,文章目录如下:
istio多集群探秘,部署了50次多集群后我得出的结论
istio多集群链路追踪,附实操视频
istio防故障利器,你知道几个,istio新手不要读,太难!
istio业务权限控制,原来可以这么玩
istio实现非侵入压缩,微服务之间如何实现压缩
不懂envoyfilter也敢说精通istio系列-http-rbac-不要只会用AuthorizationPolicy配置权限
不懂envoyfilter也敢说精通istio系列-02-http-corsFilter-不要只会vs
不懂envoyfilter也敢说精通istio系列-03-http-csrf filter-再也不用再代码里写csrf逻辑了
不懂envoyfilter也敢说精通istio系列http-jwt_authn-不要只会RequestAuthorization
不懂envoyfilter也敢说精通istio系列-05-fault-filter-故障注入不止是vs
不懂envoyfilter也敢说精通istio系列-06-http-match-配置路由不只是vs
不懂envoyfilter也敢说精通istio系列-07-负载均衡配置不止是dr
不懂envoyfilter也敢说精通istio系列-08-连接池和断路器
不懂envoyfilter也敢说精通istio系列-09-http-route filter
不懂envoyfilter也敢说精通istio系列-network filter-redis proxy
不懂envoyfilter也敢说精通istio系列-network filter-HttpConnectionManager
不懂envoyfilter也敢说精通istio系列-ratelimit-istio ratelimit完全手册
tekton新课发布:ci/cd之tekton实战--其他视频教程-系统/网络/运维-CSDN程序员研修院
什么是TriggerBinding
校验事件并提取相关字段属性
资源详解
例子
triggerBinding/binding.yaml
apiVersion: triggers.tekton.dev/v1alpha1 kind: TriggerBinding metadata:name: binding spec:params:- name: gitrevisionvalue: $(body.head_commit.id)- name: gitrepositoryurlvalue: $(body.repository.url)- name: contenttypevalue: $(header.Content-Type)
表达式
$(body) -> "{"key1": "value1", "key2": {"key3": "value3"}, "key4": ["value4", "value5", "value6"]}" $(body.key1) -> "value1" $(body.key2) -> "{"key3": "value3"}" $(body.key2.key3) -> "value3" $(body.key4[0]) -> "value4" $(body.key4[0:2]) -> "{"value4", "value5"}" # $(header) is replaced by all of the headers from the event. $(header) -> "{"One":["one"], "Two":["one","two","three"]}" $(header.One) -> "one" $(header.one) -> "one" $(header.Two) -> "one two three" $(header.Two[1]) -> "two"
多绑定
triggerBinding/multi-binding.yaml
apiVersion: triggers.tekton.dev/v1alpha1 kind: TriggerBinding metadata:name: event-binding spec:params:- name: gitrevisionvalue: $(body.head_commit.id)- name: gitrepositoryurlvalue: $(body.repository.url) --- apiVersion: triggers.tekton.dev/v1alpha1 kind: TriggerBinding metadata:name: prod-env spec:params:- name: environmentvalue: prod --- apiVersion: triggers.tekton.dev/v1alpha1 kind: TriggerBinding metadata:name: staging-env spec:params:- name: environmentvalue: staging --- apiVersion: triggers.tekton.dev/v1alpha1 kind: EventListener metadata:name: listener spec:triggers:- name: prod-triggerbindings:- ref: event-binding- ref: prod-envtemplate:ref: pipeline-template- name: staging-triggerbindings:- ref: event-binding- ref: staging-envtemplate:ref: pipeline-template
ClusterTriggerBinding
triggerBinding/cluster/message-clusterbinding.yaml
apiVersion: triggers.tekton.dev/v1alpha1 kind: ClusterTriggerBinding metadata:name: message-clusterbinding spec:params:- name: messagevalue: Hello from the Triggers EventListener!
triggerBinding/cluster/pipeline-clusterbinding.yaml
apiVersion: triggers.tekton.dev/v1alpha1 kind: ClusterTriggerBinding metadata:name: pipeline-clusterbinding spec:params:- name: gitrevisionvalue: $(body.head_commit.id)- name: gitrepositoryurlvalue: $(body.repository.url)- name: contenttypevalue: $(header.Content-Type)
triggerBinding/cluster/sa-rbac.yaml
apiVersion: v1 kind: ServiceAccount metadata:name: tekton-triggers-example-sa --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata:name: tekton-triggers-example-minimal rules: # EventListeners need to be able to fetch all namespaced resources - apiGroups: ["triggers.tekton.dev"]resources: ["eventlisteners", "triggerbindings", "triggertemplates", "triggers"]verbs: ["get", "list", "watch"] - apiGroups: [""] # configmaps is needed for updating logging configresources: ["configmaps"]verbs: ["get", "list", "watch"] # Permissions to create resources in associated TriggerTemplates - apiGroups: ["tekton.dev"]resources: ["pipelineruns", "pipelineresources", "taskruns"]verbs: ["create"] - apiGroups: [""]resources: ["serviceaccounts"]verbs: ["impersonate"] - apiGroups: ["policy"]resources: ["podsecuritypolicies"]resourceNames: ["tekton-triggers"]verbs: ["use"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata:name: tekton-triggers-example-binding subjects: - kind: ServiceAccountname: tekton-triggers-example-sa roleRef:apiGroup: rbac.authorization.k8s.iokind: Rolename: tekton-triggers-example-minimal --- kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata:name: tekton-triggers-example-clusterrole rules:# EventListeners need to be able to fetch any clustertriggerbindings - apiGroups: ["triggers.tekton.dev"]resources: ["clustertriggerbindings", "clusterinterceptors"]verbs: ["get", "list", "watch"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata:name: tekton-triggers-example-clusterbinding subjects: - kind: ServiceAccountname: tekton-triggers-example-sanamespace: tekton roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: tekton-triggers-example-clusterrole
triggerBinding/cluster/task-pipeline.yaml
apiVersion: tekton.dev/v1beta1 kind: Task metadata:name: say-hello spec:params:- name: contenttypedescription: The Content-Type of the eventtype: stringresources:inputs:- name: git-sourcetype: gitsteps:- name: say-hiimage: bashcommand: ["bash", "-c"]args:- echo -e 'Hello Triggers!\nContent-Type is $(params.contenttype)' --- apiVersion: tekton.dev/v1beta1 kind: Task metadata:name: say-message spec:params:- name: messagedescription: The message to printdefault: This is the default messagetype: stringresources:inputs:- name: git-sourcetype: gitsteps:- name: say-messageimage: bashcommand: ["bash", "-c"]args:- echo '$(params.message)' --- apiVersion: tekton.dev/v1beta1 kind: Task metadata:name: say-bye spec:resources:inputs:- name: git-sourcetype: gitsteps:- name: say-byeimage: bashcommand: ["bash", "-c"]args:- echo 'Goodbye Triggers!' --- apiVersion: tekton.dev/v1beta1 kind: Pipeline metadata:name: simple-pipeline spec:params:- name: messagedescription: The message to printdefault: This is the default messagetype: string- name: contenttypedescription: The Content-Type of the eventtype: stringresources:- name: git-sourcetype: gittasks:- name: say-hellotaskRef:name: say-helloparams:- name: contenttypevalue: $(params.contenttype)resources:inputs:- name: git-sourceresource: git-source- name: say-messagerunAfter: [say-hello]taskRef:name: say-messageparams:- name: messagevalue: $(params.message)resources:inputs:- name: git-sourceresource: git-source- name: say-byerunAfter: [say-message]taskRef:name: say-byeresources:inputs:- name: git-sourceresource: git-source
triggerBinding/cluster/trigger-template.yaml
apiVersion: triggers.tekton.dev/v1alpha1 kind: TriggerTemplate metadata:name: pipeline-template spec:params:- name: gitrevisiondescription: The git revisiondefault: main- name: gitrepositoryurldescription: The git repository url- name: messagedescription: The message to printdefault: This is the default message- name: contenttypedescription: The Content-Type of the eventresourcetemplates:- apiVersion: tekton.dev/v1beta1kind: PipelineRunmetadata:generateName: simple-pipeline-run-spec:pipelineRef:name: simple-pipelineparams:- name: messagevalue: $(tt.params.message)- name: contenttypevalue: $(tt.params.contenttype)resources:- name: git-sourceresourceSpec:type: gitparams:- name: revisionvalue: $(tt.params.gitrevision)- name: urlvalue: $(tt.params.gitrepositoryurl)
triggerBinding/cluster/listener.yaml
apiVersion: triggers.tekton.dev/v1alpha1 kind: EventListener metadata:name: listener spec:serviceAccountName: tekton-triggers-example-satriggers:- name: foo-trigbindings:- ref: pipeline-clusterbindingkind: ClusterTriggerBinding- ref: message-clusterbindingkind: ClusterTriggerBindingtemplate:ref: pipeline-template
curl -v \ -H 'X-GitHub-Event: pull_request' \ -H 'X-Hub-Signature: sha1=ba0cdc263b3492a74b601d240c27efe81c4720cb' \ -H 'Content-Type: application/json' \ -d '{"action": "opened", "pull_request":{"head":{"sha": "28911bbb5a3e2ea034daf1f6be0a822d50e31e73"}},"repository":{"url": "https://github.com/tektoncd/triggers.git"}}' \ http://10.68.194.93:8080