|
|
---
kind: pipeline
type: docker
name: default
volumes:
- name: gopath
host:
path: /usr/local/path/gopath
steps:
- name: golang-build
image: golang
volumes:
- name: gopath
path: /go
commands:
- export GOPROXY=https://goproxy.cn
- go mod init test-drone
- go mod tidy
- CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o test-drone
when:
target: [ "" ]
- name: docker-push
image: plugins/docker
settings:
username: tjqmhu
password: tjqm4912
repo: registry.cn-hangzhou.aliyuncs.com/huvipg/test-drone
dockerfile: Dockerfile
registry: https://registry.cn-hangzhou.aliyuncs.com
tags: ${DRONE_BUILD_NUMBER}
when:
target: [ "" ]
- name: rancher-deploy
image: busybox # 直接用busybox
commands:
- curl --location --request PUT 'https://121.40.194.123:8443/v3/project/c-wh6tz:p-vwfqk/workloads/deployment:default:test-drone' \
--header 'Authorization: Bearer token-j24z5:fwbzktwzs4kqf8p4pzsfn92thzms76vrglghh2khmdxkr6svm57796' \
--header 'Content-Type: application/javascript' \
--data-raw '{
"hostIPC": false,
"hostNetwork": false,
"hostPID": false,
"paused": false,
"annotations": {
"cattle.io/timestamp": "2021-11-27T09:15:56Z"
},
"baseType": "workload",
"containers": [
{
"initContainer": false,
"restartCount": 0,
"stdin": true,
"stdinOnce": false,
"tty": true,
"allowPrivilegeEscalation": false,
"image": "registry.cn-hangzhou.aliyuncs.com/huvipg/test-drone:${DRONE_BUILD_NUMBER}",
"imagePullPolicy": "Always",
"name": "test-drone",
"ports": [
{
"containerPort": 8080,
"dnsName": "test-drone-nodeport",
"hostPort": 0,
"kind": "NodePort",
"name": "8080tcp300001",
"protocol": "TCP",
"sourcePort": 30000,
"type": "/v3/project/schemas/containerPort"
}
],
"privileged": false,
"readOnly": false,
"resources": {
"type": "/v3/project/schemas/resourceRequirements",
"requests": { },
"limits": { }
},
"runAsNonRoot": false,
"terminationMessagePath": "/dev/termination-log",
"terminationMessagePolicy": "File",
"type": "container",
"environmentFrom": [ ],
"capAdd": [ ],
"capDrop": [ ],
"livenessProbe": null,
"volumeMounts": [ ]
}
],
"created": "2021-11-27T09:08:05Z",
"createdTS": 1638004085000,
"creatorId": null,
"deploymentConfig": {
"maxSurge": 1,
"maxUnavailable": 0,
"minReadySeconds": 0,
"progressDeadlineSeconds": 600,
"revisionHistoryLimit": 10,
"strategy": "RollingUpdate"
},
"deploymentStatus": {
"availableReplicas": 1,
"conditions": [
{
"lastTransitionTime": "2021-11-27T09:08:12Z",
"lastTransitionTimeTS": 1638004092000,
"lastUpdateTime": "2021-11-27T09:08:12Z",
"lastUpdateTimeTS": 1638004092000,
"message": "Deployment has minimum availability.",
"reason": "MinimumReplicasAvailable",
"status": "True",
"type": "Available"
},
{
"lastTransitionTime": "2021-11-27T09:08:05Z",
"lastTransitionTimeTS": 1638004085000,
"lastUpdateTime": "2021-11-27T09:08:12Z",
"lastUpdateTimeTS": 1638004092000,
"message": "ReplicaSet \"test-drone-6d46b7f96d\" has successfully progressed.",
"reason": "NewReplicaSetAvailable",
"status": "True",
"type": "Progressing"
}
],
"observedGeneration": 2,
"readyReplicas": 1,
"replicas": 1,
"type": "/v3/project/schemas/deploymentStatus",
"unavailableReplicas": 0,
"updatedReplicas": 1
},
"dnsPolicy": "ClusterFirst",
"id": "deployment:default:test-drone",
"imagePullSecrets": [
{
"name": "aliyun-docker",
"type": "/v3/project/schemas/localObjectReference"
}
],
"labels": {
"workload.user.cattle.io/workloadselector": "deployment-default-test-drone"
},
"name": "test-drone",
"namespaceId": "default",
"projectId": "c-wh6tz:p-vwfqk",
"restartPolicy": "Always",
"scale": 1,
"scheduling": {
"scheduler": "default-scheduler",
"node": { }
},
"selector": {
"matchLabels": {
"workload.user.cattle.io/workloadselector": "deployment-default-test-drone"
},
"type": "/v3/project/schemas/labelSelector"
},
"state": "active",
"terminationGracePeriodSeconds": 30,
"transitioning": "no",
"transitioningMessage": "",
"type": "deployment",
"uuid": "94091e03-986e-4809-9b46-12b6716b4a7f",
"workloadAnnotations": {
"deployment.kubernetes.io/revision": "1",
"field.cattle.io/creatorId": "user-7wt8c"
},
"workloadLabels": {
"cattle.io/creator": "norman",
"workload.user.cattle.io/workloadselector": "deployment-default-test-drone"
},
"publicEndpoints": [
{
"addresses": [
"172.26.40.69"
],
"allNodes": true,
"ingressId": null,
"nodeId": null,
"podId": null,
"port": 30000,
"protocol": "TCP",
"serviceId": "default:test-drone-nodeport",
"type": "publicEndpoint"
}
],
"volumes": [ ]
}'
# # drone-rancher插件,利用此插件来启动rancher
# image: pelotech/drone-rancher
# settings:
# # rancher-server地址
# url: 'https://121.40.194.123:8443'
# access_key: token-qqrhk
# secret_key: fwbzktwzs4kqf8p4pzsfn92thzms76vrglghh2khmdxkr6svm57796
# service: pre/default
# # 为了使rancher能拉取到私有镜像, 需要在rancher控制面板"基础架构->镜像库"添加这个私有镜像库
# docker_image: registry.cn-hangzhou.aliyuncs.com/huvipg/test-drone:20
# - name: run
# image: pelotech/drone-rancher
# url: https://121.40.194.123:8443
# access_key: token-j24z5
# secret_key: fwbzktwzs4kqf8p4pzsfn92thzms76vrglghh2khmdxkr6svm57796
# service: default/test-drone
# docker_image: registry.cn-hangzhou.aliyuncs.com/huvipg/test-drone:20
# - name: rancher-deploy
# image: peloton/drone-rancher
# url: https://121.40.194.123:8443/
# access_key: token-qqrhk
# secret_key: wt46cz8x8xqz5t7x27htzdc46tscvpnzwzlj9gp99j2cbdrqhtcj25
# service: default/drone-test
# # 为了使rancher能拉取到私有镜像, 需要在rancher控制面板"基础架构->镜像库"添加这个私有镜像库
# docker_image: registry.cn-hangzhou.aliyuncs.com/huvipg/test-drone:${DRONE_BUILD_NUMBER} # 镜像地址及版本号
# start_first: true # 先启动新服务, 后停止原服务. 如果为false则先关闭原服务再启动
# confirm: true
# timeout: 100 # 如果rancher没在这个时间内升级成功则报错, 服务大小等差异会导致升级时间不一样, 可根据自己业务修改超时时间.
# image: pelotech/drone-rancher # drone-rancher插件,利用此插件来启动rancher
# settings:
# url: 'http://121.40.194.123:8082/v3'
# access_key: token-qqrhk
# secret_key: wt46cz8x8xqz5t7x27htzdc46tscvpnzwzlj9gp99j2cbdrqhtcj25
# service: registry.cn-hangzhou.aliyuncs.com
# docker_image: registry.cn-hangzhou.aliyuncs.com/huvipg/test-drone:${DRONE_BUILD_NUMBER} # 镜像地址及版本号
# start_first: false
# confirm: true
# timeout: 301
# ## 使用参数推送稳定镜像
# - name: deployment-replace-prod
# image: repository.241210.com/repository/base/kubectl:4
# commands:
# - sed -i 's!IMAGE_PATH:IMAGE_TAG!'${IMAGE}'!g' deployment.yaml
# when:
# target: [ "pre","prod" ]
#
# - name: deploy-prod
# image: repository.241210.com/repository/base/kubectl:4
# commands:
# - kubectl --kubeconfig /kube/${CI_BUILD_TARGET} apply -f deployment.yaml
# when:
# target: [ "pre","prod" ]
|