让kubectl在gitlab ci中工作

时间:2018-02-23 17:40:11

标签: gitlab-ci kubectl

我正在寻找一种在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。所以你能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:5)

您正在使用没有kubectl二进制文件的docker:dind图片,您应该使用二进制文件自带图像或在过程中下载

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

答案 1 :(得分:1)

使用映像google/cloud-sdk,该映像已预安装gcloud和kubectl。

build:
  stage: build
  image: google/cloud-sdk
  services:
  - docker:dind
  script:
  # Make gcloud available
  - source /root/.bashrc