让 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