欢迎关注我的公众号:
目前刚开始写一个月,一共写了18篇原创文章,文章目录如下:
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程序员研修院
什么是PipelineResource
表示pipeline input资源,比如github上的源码,或者pipeline output资源,例如一个容器镜像或者构建生成的jar包等。
资源详解
type
Git Resource
Image Resource
pipelineresource/git/sa.yaml
apiVersion: v1 kind: ServiceAccount metadata: name: test-task-robot-git-ssh secrets: - name: registry-secret
kubectl create secret docker-registry registry-secret \ --docker-server=registry.cn-beijing.aliyuncs.com \ --docker-username=195446040@qq.com \ --docker-password=123456 -n tekton kubectl create clusterrolebinding cluster-admin-test-task --clusterrole=cluster-admin --serviceaccount=tekton:test-task-robot-git-ssh -n tekton
pipelineresource/git/res-image.yaml
apiVersion: tekton.dev/v1alpha1 kind: PipelineResource metadata: name: my-image spec: type: image params: - name: url value: registry.cn-beijing.aliyuncs.com/hxpdocker/testimage
pipelineresource/git/res-git.yaml
apiVersion: tekton.dev/v1alpha1 kind: PipelineResource metadata: name: workspace spec: type: git params: - name: url value: https://codechina.csdn.net/hxpjava1/test.git - name: revision value: master
pipelineresource/git/task-build-push-kaniko.yaml
apiVersion: tekton.dev/v1beta1 kind: Task metadata: name: build-push-kaniko spec: resources: inputs: - name: workspace type: git outputs: - name: builtImage type: image params: - name: pathToDockerFile description: The path to the dockerfile to build default: /workspace/workspace/Dockerfile - name: pathToContext description: The build context used by Kaniko default: /workspace/workspace steps: - name: build-and-push image: registry.us-west-1.aliyuncs.com/hxpapp/kaniko-executor:latest #env: #- name: "DOCKER_CONFIG" # value: "/tekton/home/.docker/" args: - --dockerfile=$(inputs.params.pathToDockerFile) - --destination=$(outputs.resources.builtImage.url) - --context=$(inputs.params.pathToContext) - --oci-layout-path=$(inputs.resources.builtImage.path) securityContext: runAsUser: 0 volumeMounts: - name: kaniko-secret mountPath: /kaniko/.docker/ volumes: - name: kaniko-secret secret: secretName: registry-secret items: - key: .dockerconfigjson path: config.json
pipelineresource/git/task-kubectl-deploy.yaml
apiVersion: tekton.dev/v1beta1 kind: Task metadata: name: kubectl-deploy spec: params: - name: script_body type: string #default: "kubectl apply -f deployment.yaml -n tekton" resources: inputs: - name: image type: image - name: workspace type: git steps: - name: kubectl-deploy image: registry.cn-shanghai.aliyuncs.com/hxpdocker/kubectl:latest script: | $(params.script_body)
pipelineresource/git/pipeline-my.yaml
apiVersion: tekton.dev/v1beta1 kind: Pipeline metadata: name: mypipeline spec: tasks: - name: build-app taskRef: name: build-push-kaniko resources: inputs: - name: workspace resource: workspace outputs: - name: builtImage resource: my-image - name: deploy-app taskRef: name: kubectl-deploy resources: inputs: - name: workspace resource: workspace - name: image resource: my-image from: - build-app params: - name: script_body value: $(params.script_body_pipeline) params: - name: script_body_pipeline type: string resources: - name: workspace type: git - name: my-image type: image
pipelineresource/git/pipelinerun-my.yaml
apiVersion: tekton.dev/v1beta1 kind: PipelineRun metadata: generateName: mypipeline-run spec: serviceAccountName: test-task-robot-git-ssh pipelineRef: name: mypipeline params: - name: script_body_pipeline value: "kubectl apply -f /workspace/workspace/deployment.yaml " resources: - name: workspace resourceRef: name: workspace - name: my-image resourceRef: name: my-image
Pull Request Resource
pipelineresource/pullrequest/basic-user-pass.yaml
apiVersion: v1 kind: Secret metadata: name: basic-user-pass annotations: tekton.dev/git-0: https://github.com # Described below type: kubernetes.io/basic-auth stringData: username: "13567436138" password: "123456"
pipelineresource/pullrequest/build-bot.yaml
apiVersion: v1 kind: ServiceAccount metadata: name: build-bot secrets: - name: basic-user-pass
pipelineresource/pullrequest/res-pr.yaml
apiVersion: tekton.dev/v1alpha1 kind: PipelineResource metadata: name: pr spec: type: pullRequest params: - name: url value: https://github.com/tektoncd/pipeline/pull/3976 - name: provider value: github secrets: - fieldName: authToken secretName: github-secrets secretKey: token
pipelineresource/pullrequest/secret-github.yaml
apiVersion: v1 kind: Secret metadata: name: github-secrets type: Opaque data: token: Z2hwXzgyYm13bjZ6czZ2Y1JQbGp6VlkyN1ZvUFc2WkhMQzNNcERsOQo=
pipelineresource/pullrequest/task-my.yaml
apiVersion: tekton.dev/v1beta1 kind: Task metadata: name: task-my spec: resources: inputs: - name: pr type: pullRequest steps: - name: build-war image: busybox script: | #!/usr/bin/env bash ls /workspace/pr
pipelineresource/pullrequest/taskrun-my.yaml
apiVersion: tekton.dev/v1beta1 kind: TaskRun metadata: generateName: taskrun-my- spec: serviceAccountName: build-bot taskRef: name: task-my resources: inputs: - name: pr resourceRef: name: pr
Cluster Resource
pipelineresource/cluster/res-git.yaml
apiVersion: tekton.dev/v1alpha1 kind: PipelineResource metadata: name: workspace spec: type: git params: - name: url value: https://codechina.csdn.net/hxpjava1/test.git - name: revision value: master
pipelineresource/cluster/res-test-cluster.yaml
apiVersion: tekton.dev/v1alpha1 kind: PipelineResource metadata: name: test-cluster spec: type: cluster params: - name: url value: https://192.168.198.154:6443 - name: cadata value: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUR1RENDQXFDZ0F3SUJBZ0lVQ1NZRVlnZW92QWlvbEhqUzl1V1lKRmdKSW1nd0RRWUpLb1pJaHZjTkFRRUwKQlFBd1lURUxNQWtHQTFVRUJoTUNRMDR4RVRBUEJnTlZCQWdUQ0VoaGJtZGFhRzkxTVFzd0NRWURWUVFIRXdKWQpVekVNTUFvR0ExVUVDaE1EYXpoek1ROHdEUVlEVlFRTEV3WlRlWE4wWlcweEV6QVJCZ05WQkFNVENtdDFZbVZ5CmJtVjBaWE13SUJjTk1qRXdOREF4TURrMU1qQXdXaGdQTWpFeU1UQXpNRGd3T1RVeU1EQmFNR0V4Q3pBSkJnTlYKQkFZVEFrTk9NUkV3RHdZRFZRUUlFd2hJWVc1bldtaHZkVEVMTUFrR0ExVUVCeE1DV0ZNeEREQUtCZ05WQkFvVApBMnM0Y3pFUE1BMEdBMVVFQ3hNR1UzbHpkR1Z0TVJNd0VRWURWUVFERXdwcmRXSmxjbTVsZEdWek1JSUJJakFOCkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXJqVmFmSDR6V0pDaksyRjY5R3VNTytVRmNVS3cKZWQ3enlSaHBhZlR6ZzkzTkZQNUFaSHkwMlJvdWUxWWRtVXpxVjJZczRiaVVLUlRLbFc2NWJQRGxBeklSalFiNApiYS9aYTgxUllpVWZ5ZndaSGpTMjdmQ0xsVGp3WlFIaHJCZS9xYUE4dzdHb0Q0Mm8rT1dXYk9JeVB3c3p4TmJ3CjVxOVFObHJVY3dLV3ZTZnozTGV1ZEVBQmNZWEd4NmppbndOZU5aYkxvM0NCMi9STEw1M0prdk5hTlU5bUltOGUKUlZnTkNOZ3BPWHREeWJJdXQyTTh6SWFERGU0d3dWVzVLLzlIZHMvOTkrUlNrTnJZcnBRYkpVekk3UnZsaGl5Rwppckc4bW5pRTBXQnVSZCtseXJFQ1hZaDBOeFlJSnFjcFViUnBjRXRUaXk3MWdsWitKVVlsVWErb1FRSURBUUFCCm8yWXdaREFPQmdOVkhROEJBZjhFQkFNQ0FRWXdFZ1lEVlIwVEFRSC9CQWd3QmdFQi93SUJBakFkQmdOVkhRNEUKRmdRVWJUS0c1UmR3UE9VMDJFK2sxcW1FSWtJSHZNY3dId1lEVlIwakJCZ3dGb0FVYlRLRzVSZHdQT1UwMkUrawoxcW1FSWtJSHZNY3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSmZMUEo4SVhoV1hzSkR2UnlsQiszQTA3eWVZCnRvZDVGeVpieElPWFA4OUFCb3VvellwclNRYXFSTFIxY0lZeEVDTkx4ZEhQcjQ5VjZZOW1BM016NzAyUjk5bmIKQTY4eXVqMHNtMml5Qmlud0JaSUh3SlY2RllZTWRsdk8zRUE1aXpRSWduSkxCNW1vc0JPYnhMZmV0YUlHTnVEaApGR1ZGZzNhRDk1Y094KzlyenV6amthMFh3T29WRUVNS0I4WHRpMHhLME4xK1RCano2V3MzL0psN2orME5JazVOCjZmUnNLN0Q1NlB4d3VxR1Y2dk41WFJ0N3NhZHNod2tpTnFoL0haekRhTjlxcWRRQnRXVE1LRERsc1VWTTg1WmEKNDVwaElpNHV4dVhuYUhyMkJCeXdjaGEwalYramMyNUFhRFU2bm1HQ0dZZ1NkNWhaYlVJQ2hHR2l5Wnc9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K - name: token value: eyJhbGciOiJSUzI1NiIsImtpZCI6IjV2Ny1kcmNpMXpITzhKRU5aaV9KOGx5OGotLTFPc1hpUDVLQlhhUFJESEkifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJ0ZWt0b24iLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlY3JldC5uYW1lIjoidGVzdC10YXNrLXJvYm90LWdpdC1zc2gtdG9rZW4tamIydGIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoidGVzdC10YXNrLXJvYm90LWdpdC1zc2giLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJhYmQyMTM2My1mMTQyLTRiZjQtOWY1Yy1hMDAwOGI1ZGVkYTYiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6dGVrdG9uOnRlc3QtdGFzay1yb2JvdC1naXQtc3NoIn0.jCuclt66msTO-tw_qVCZYCckATL5wjbvBi7Fui6e5EQRjwUkv6luNrv5C_TTH6EOchfRtW0-QIxvf433USZCMTam06eahfMbtRv2DlrgBIyR3ZdSADh6dRaOlnTKI4COw1GU0UKpayBTM8N7ItQgi4c-JBYdDXy-WEhMhg2L4VPCY5kv4clkUzasHcyWh9lNdu_AKT0OXA5QArNjJXKLGJgYjyhIyPfBCZdMGcS50RZvWb25QXIFIkoQl9MDpMiaFJaAL8kedhhLESDT1KnBG6-C-KEDWVuNNFgKrh_VcU4LEZURv4coDIdPDDuEQ1IUYrO5TpDwngwwTXwTtBZWpA
pipelineresource/cluster/target-cluster-secrets.yaml
apiVersion: v1 kind: Secret metadata: name: target-cluster-secrets data: cadatakey: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUR1RENDQXFDZ0F3SUJBZ0lVQ1NZRVlnZW92QWlvbEhqUzl1V1lKRmdKSW1nd0RRWUpLb1pJaHZjTkFRRUwKQlFBd1lURUxNQWtHQTFVRUJoTUNRMDR4RVRBUEJnTlZCQWdUQ0VoaGJtZGFhRzkxTVFzd0NRWURWUVFIRXdKWQpVekVNTUFvR0ExVUVDaE1EYXpoek1ROHdEUVlEVlFRTEV3WlRlWE4wWlcweEV6QVJCZ05WQkFNVENtdDFZbVZ5CmJtVjBaWE13SUJjTk1qRXdOREF4TURrMU1qQXdXaGdQTWpFeU1UQXpNRGd3T1RVeU1EQmFNR0V4Q3pBSkJnTlYKQkFZVEFrTk9NUkV3RHdZRFZRUUlFd2hJWVc1bldtaHZkVEVMTUFrR0ExVUVCeE1DV0ZNeEREQUtCZ05WQkFvVApBMnM0Y3pFUE1BMEdBMVVFQ3hNR1UzbHpkR1Z0TVJNd0VRWURWUVFERXdwcmRXSmxjbTVsZEdWek1JSUJJakFOCkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXJqVmFmSDR6V0pDaksyRjY5R3VNTytVRmNVS3cKZWQ3enlSaHBhZlR6ZzkzTkZQNUFaSHkwMlJvdWUxWWRtVXpxVjJZczRiaVVLUlRLbFc2NWJQRGxBeklSalFiNApiYS9aYTgxUllpVWZ5ZndaSGpTMjdmQ0xsVGp3WlFIaHJCZS9xYUE4dzdHb0Q0Mm8rT1dXYk9JeVB3c3p4TmJ3CjVxOVFObHJVY3dLV3ZTZnozTGV1ZEVBQmNZWEd4NmppbndOZU5aYkxvM0NCMi9STEw1M0prdk5hTlU5bUltOGUKUlZnTkNOZ3BPWHREeWJJdXQyTTh6SWFERGU0d3dWVzVLLzlIZHMvOTkrUlNrTnJZcnBRYkpVekk3UnZsaGl5Rwppckc4bW5pRTBXQnVSZCtseXJFQ1hZaDBOeFlJSnFjcFViUnBjRXRUaXk3MWdsWitKVVlsVWErb1FRSURBUUFCCm8yWXdaREFPQmdOVkhROEJBZjhFQkFNQ0FRWXdFZ1lEVlIwVEFRSC9CQWd3QmdFQi93SUJBakFkQmdOVkhRNEUKRmdRVWJUS0c1UmR3UE9VMDJFK2sxcW1FSWtJSHZNY3dId1lEVlIwakJCZ3dGb0FVYlRLRzVSZHdQT1UwMkUrawoxcW1FSWtJSHZNY3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSmZMUEo4SVhoV1hzSkR2UnlsQiszQTA3eWVZCnRvZDVGeVpieElPWFA4OUFCb3VvellwclNRYXFSTFIxY0lZeEVDTkx4ZEhQcjQ5VjZZOW1BM016NzAyUjk5bmIKQTY4eXVqMHNtMml5Qmlud0JaSUh3SlY2RllZTWRsdk8zRUE1aXpRSWduSkxCNW1vc0JPYnhMZmV0YUlHTnVEaApGR1ZGZzNhRDk1Y094KzlyenV6amthMFh3T29WRUVNS0I4WHRpMHhLME4xK1RCano2V3MzL0psN2orME5JazVOCjZmUnNLN0Q1NlB4d3VxR1Y2dk41WFJ0N3NhZHNod2tpTnFoL0haekRhTjlxcWRRQnRXVE1LRERsc1VWTTg1WmEKNDVwaElpNHV4dVhuYUhyMkJCeXdjaGEwalYramMyNUFhRFU2bm1HQ0dZZ1NkNWhaYlVJQ2hHR2l5Wnc9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K tokenkey: ZXlKaGJHY2lPaUpTVXpJMU5pSXNJbXRwWkNJNklqVjJOeTFrY21OcE1YcElUemhLUlU1YWFWOUtPR3g1T0dvdExURlBjMWhwVURWTFFsaGhVRkpFU0VraWZRLmV5SnBjM01pT2lKcmRXSmxjbTVsZEdWekwzTmxjblpwWTJWaFkyTnZkVzUwSWl3aWEzVmlaWEp1WlhSbGN5NXBieTl6WlhKMmFXTmxZV05qYjNWdWRDOXVZVzFsYzNCaFkyVWlPaUowWld0MGIyNGlMQ0pyZFdKbGNtNWxkR1Z6TG1sdkwzTmxjblpwWTJWaFkyTnZkVzUwTDNObFkzSmxkQzV1WVcxbElqb2lkR1Z6ZEMxMFlYTnJMWEp2WW05MExXZHBkQzF6YzJndGRHOXJaVzR0YW1JeWRHSWlMQ0pyZFdKbGNtNWxkR1Z6TG1sdkwzTmxjblpwWTJWaFkyTnZkVzUwTDNObGNuWnBZMlV0WVdOamIzVnVkQzV1WVcxbElqb2lkR1Z6ZEMxMFlYTnJMWEp2WW05MExXZHBkQzF6YzJnaUxDSnJkV0psY201bGRHVnpMbWx2TDNObGNuWnBZMlZoWTJOdmRXNTBMM05sY25acFkyVXRZV05qYjNWdWRDNTFhV1FpT2lKaFltUXlNVE0yTXkxbU1UUXlMVFJpWmpRdE9XWTFZeTFoTURBd09HSTFaR1ZrWVRZaUxDSnpkV0lpT2lKemVYTjBaVzA2YzJWeWRtbGpaV0ZqWTI5MWJuUTZkR1ZyZEc5dU9uUmxjM1F0ZEdGemF5MXliMkp2ZEMxbmFYUXRjM05vSW4wLmpDdWNsdDY2bXNUTy10d19xVkNaWUNja0FUTDV3amJ2Qmk3RnVpNmU1RVFSandVa3Y2bHVOcnY1Q19UVEg2RU9jaGZSdFcwLVFJeHZmNDMzVVNaQ01UYW0wNmVhaGZNYnRSdjJEbHJnQkl5UjNaZFNBRGg2ZFJhT2xuVEtJNENPdzFHVTBVS3BheUJUTThON0l0UWdpNGMtSkJZZERYeS1XRWhNaGcyTDRWUENZNWt2NGNsa1V6YXNIY3lXaDlsTmR1X0FLVDBPWEE1UUFyTmpKWEtMR0pnWWp5aEl5UGZCQ1pkTUdjUzUwUlp2V2IyNVFYSUZJa29RbDlNRHBNaWFGSmFBTDhrZWRoaExFU0RUMUtuQkc2LUMtS0VEV1Z1Tk5GZ0tyaF9WY1U0TEVaVVJ2NGNvRElkUEREdUVRMUlVWXJPNVRwRHduZ3d3VFh3VHRCWldwQQ==
pipelineresource/cluster/res-test-cluster2.yaml
apiVersion: tekton.dev/v1alpha1 kind: PipelineResource metadata: name: test-cluster spec: type: cluster params: - name: url value: https://192.168.198.154:6443 secrets: - fieldName: token secretKey: tokenkey secretName: target-cluster-secrets - fieldName: cadata secretKey: cadatakey secretName: target-cluster-secrets
pipelineresource/cluster/task-deploy.yaml
apiVersion: tekton.dev/v1beta1 kind: Task metadata: name: deploy-image spec: resources: inputs: - name: workspace type: git - name: test-cluster type: cluster steps: - name: deploy image: registry.cn-shanghai.aliyuncs.com/hxpdocker/kubectl-without-config:latest script: #!/bin/sh kubectl --kubeconfig /workspace/$(resources.inputs.test-cluster.name)/kubeconfig --context $(resources.inputs.test-cluster.name) apply -f /workspace/workspace/deployment.yaml
Storage Resource
Only blob storage type Google Cloud Storage(gcs) is supported as of now via GCS storage resource
apiVersion: tekton.dev/v1alpha1 kind: PipelineResource metadata: name: wizzbang-storage spec: type: storage params: - name: type value: gcs - name: location value: gs://some-bucket - name: dir value: "y" # This can have any value to be considered "true"
Cloud Event Resource
pipelineresource/event/res-event.yaml
apiVersion: tekton.dev/v1alpha1 kind: PipelineResource metadata: name: event-to-sink spec: type: cloudEvent params: - name: targetURI value: http://sink:8080
pipelineresource/event/task-event.yaml
apiVersion: tekton.dev/v1beta1 kind: Task metadata: name: event spec: resources: outputs: - name: event-to-sink type: cloudEvent steps: - name: hello image: busybox script: #!/bin/sh echo hello
description
pipelineresource/res-description.yaml
apiVersion: tekton.dev/v1alpha1 kind: PipelineResource metadata: name: workspace-java spec: description: test type: git params: - name: url value: https://github.com/skeeto/sample-java-project.git - name: revision value: master
params
pipelineresource/res-params.yaml
apiVersion: tekton.dev/v1alpha1 kind: PipelineResource metadata: name: workspace-java spec: type: git params: - name: url value: https://github.com/skeeto/sample-java-project.git - name: revision value: master
optional
pipelineresource/optional/res-workspace-java.yaml
apiVersion: tekton.dev/v1alpha1 kind: PipelineResource metadata: name: workspace-java spec: type: git params: - name: url value: https://github.com/skeeto/sample-java-project.git - name: revision value: master
pipelineresource/optional/task-optional.yaml
apiVersion: tekton.dev/v1beta1 kind: Task metadata: name: optional spec: resources: inputs: - name: workspace type: git optional: true steps: - name: ls image: busybox command: - ls args: - “/workspace/”
pipelineresource/optional/taskrun-optional.yaml
apiVersion: tekton.dev/v1beta1 kind: TaskRun metadata: generateName: optional- spec: taskRef: name: volume-task
targetPath
pipelineresource/targetPath/res-workspace.yaml
apiVersion: tekton.dev/v1alpha1 kind: PipelineResource metadata: name: workspace-go spec: type: git params: - name: url value: https://github.com/deis/helloworld.git - name: revision value: master
pipelineresource/targetPath/task-go-test.yaml
apiVersion: tekton.dev/v1beta1 kind: Task metadata: name: go-test namespace: default spec: resources: inputs: - name: workspace type: git targetPath: go/src/ steps: - name: unit-tests image: golang command: ["go"] args: - "build" - "helloworld.go" workingDir: "/workspace/go/src/" env: - name: GOPATH value: /workspace/go
tkn task start -f task-go-test.yaml -n tekton