让 kubectl 在 gitlab 中工作 ci
Make kubectl work in gitlab ci
我正在寻找一种在 gitlab 中使用 kubectl 的方法。
到目前为止我有以下脚本:
deploy_to_dev:
stage: deploy
image: docker:dind
environment:
name: dev
script:
- mkdir -p $HOME/.kube
- echo $KUBE_CONFIG | base64 -d > $HOME/.kube/config
- kubectl config view
only:
- develop
但是上面说gitlab不知道kubectl。那么你能指出我正确的方向吗?
您正在使用 docker:dind
没有 kubectl 二进制文件的图像,您应该使用二进制文件自带图像或在过程中下载它
deploy_to_dev:
stage: deploy
image: alpine:3.7
environment:
name: dev
script:
- apk update && apk add --no-cache curl
- curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
- chmod +x ./kubectl && mv ./kubectl /usr/local/bin/kubectl
- mkdir -p $HOME/.kube
- echo -n $KUBE_CONFIG | base64 -d > $HOME/.kube/config
- kubectl config view
only:
- develop
使用预装了 gcloud 和 kubectl 的映像 google/cloud-sdk
。
build:
stage: build
image: google/cloud-sdk
services:
- docker:dind
script:
# Make gcloud available
- source /root/.bashrc
我正在寻找一种在 gitlab 中使用 kubectl 的方法。
到目前为止我有以下脚本:
deploy_to_dev:
stage: deploy
image: docker:dind
environment:
name: dev
script:
- mkdir -p $HOME/.kube
- echo $KUBE_CONFIG | base64 -d > $HOME/.kube/config
- kubectl config view
only:
- develop
但是上面说gitlab不知道kubectl。那么你能指出我正确的方向吗?
您正在使用 docker:dind
没有 kubectl 二进制文件的图像,您应该使用二进制文件自带图像或在过程中下载它
deploy_to_dev:
stage: deploy
image: alpine:3.7
environment:
name: dev
script:
- apk update && apk add --no-cache curl
- curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
- chmod +x ./kubectl && mv ./kubectl /usr/local/bin/kubectl
- mkdir -p $HOME/.kube
- echo -n $KUBE_CONFIG | base64 -d > $HOME/.kube/config
- kubectl config view
only:
- develop
使用预装了 gcloud 和 kubectl 的映像 google/cloud-sdk
。
build:
stage: build
image: google/cloud-sdk
services:
- docker:dind
script:
# Make gcloud available
- source /root/.bashrc