Gitlab Runner CI/CD"/>
Rancher Gitlab Runner CI/CD
Rancher Gitlab Runner CI/CD
获取Kubernetes
配置信息
Gitlab
中添加Kubernetes
集群
CA Certificate
不需要填写RBAC-enabled cluster
、GitLab-managed cluster
不要勾选(坑)
示例
.gitlab-ci.yml 示例
image: docker:19.03services:- name: docker:19.03-dindvariables:DOCKER_HOST: tcp://docker:2375# This will instruct Docker not to start over TLS.DOCKER_TLS_CERTDIR: ""stages:- gradle-build- docker-build# - review- deploygradle-build:stage: gradle-buildimage: gradle:6.8-jdk8cache:paths:- .gradle/wrapper- .gradle/cachesbefore_script:- export GRADLE_USER_HOME=`pwd`/.gradlescript:- gradle :provider-example-service:build -x testartifacts:paths:- ${PROJECT_JAR_PATH}# 只在develop分支生效only:- developdocker-build:stage: docker-buildscript:- docker build -t ${HARBOR_HOST}/${HARBOR_PROJECT}/${CI_PROJECT_NAME}:latest .- docker tag ${HARBOR_HOST}/${HARBOR_PROJECT}/${CI_PROJECT_NAME}:latest ${HARBOR_HOST}/${HARBOR_PROJECT}/${CI_PROJECT_NAME}:${CI_PIPELINE_ID}- docker login ${HARBOR_HOST} -u ${HARBOR_USERNAME} -p ${HARBOR_PASSWORD}- docker push ${HARBOR_HOST}/${HARBOR_PROJECT}/${CI_PROJECT_NAME}:latest- docker push ${HARBOR_HOST}/${HARBOR_PROJECT}/${CI_PROJECT_NAME}:${CI_PIPELINE_ID}kubernetes-deploy:stage: deployimage:name: bitnami/kubectl:1.2environment:name: developmentkubernetes:namespace: ${KUBE_NAMESPACE}script:- |cat deployment.yaml | \sed -e "s@{{POD_PORT}}@${PROJECT_PORT}@g" \-e "s@{{POD_NAME}}@${CI_PROJECT_NAME}@g" \-e "s@{{NAMESPACE}}@${KUBE_NAMESPACE}@g" \-e "s@{{IMAGE}}@${HARBOR_HOST}/${HARBOR_PROJECT}/${CI_PROJECT_NAME}:${CI_PIPELINE_ID}@g" \-e "s@{{IMAGE_PULL_SECRETS}}@${IMAGE_PULL_SECRETS}@g" | \kubectl apply -f -
environment: name
需与Gitlab
中创建的Kubernetes cluster
Environment scope
相同
deployment.yaml 示例
apiVersion: v1
kind: Service
metadata:name: {{POD_NAME}}namespace: {{NAMESPACE}}
spec:selector:app: {{POD_NAME}}type: ClusterIPports:- name: {{POD_PORT}}tcp{{POD_PORT}}1port: {{POD_PORT}}protocol: TCPtargetPort: {{POD_PORT}}
---
apiVersion: apps/v1
kind: Deployment
metadata:name: {{POD_NAME}}namespace: {{NAMESPACE}}labels:app: {{POD_NAME}}
spec:replicas: 1selector:matchLabels:app: {{POD_NAME}}strategy:rollingUpdate:maxSurge: 1maxUnavailable: 0type: RollingUpdatetemplate:metadata:labels:app: {{POD_NAME}}spec:containers:- image: {{IMAGE}}imagePullPolicy: Alwaysname: {{POD_NAME}}ports:- containerPort: {{POD_PORT}}name: {{POD_PORT}}tcp{{POD_PORT}}1protocol: TCPdnsPolicy: ClusterFirstimagePullSecrets:- name: {{IMAGE_PULL_SECRETS}}restartPolicy: Always
环境变量配置
更多推荐
Rancher Gitlab Runner CI/CD
发布评论