公共配置已经完毕,现在我们开始配置服务的流水线。
每一条流水线由2个部分构成:
配置部署内容如下:
apiVersion: triggers.tekton.dev/v1alpha1
kind: EventListener
metadata:
# 服务名,Kubernertes会自动生成服务 el-service-name
name: service-name
spec:
# 指定生成pipelinerun的sa
serviceAccountName: cicd-sa
triggers:
- name: cicd
interceptors:
- gitlab:
secretRef:
secretName: gitlab-secret
secretKey: secretToken
eventTypes:
- Push Hook
# 定义params
bindings:
# 指定binding
- name: triggerbinding
ref: cicd
# 手动定义params
- name: custombinding
spec:
params:
- name: pathToDockerFile
value: Dockerfile
- name: appName
value: service-name
# 指定template
template:
name: cicd
部署内容如下:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
# 定义名称
name: service-name
spec:
rules:
# 定义域名,要保证Gitlab可访问此域名,且域名指向Kubernetes中
- host: service-name.el.spex.top
http:
paths:
- backend:
# 后端服务为刚刚定义的eventlistener
serviceName: el-service-name
# 默认端口为8080
servicePort: 8080
这样我们就配置好在Kubernetes中的内容了,接下来需要在Gitlab中定义Webhook。
选择Gitlab仓库 → Settings →Webhooks新建Webhook。