代码之家  ›  专栏  ›  技术社区  ›  Tim Schwalbe

让kubectl在gitlab ci中工作

  •  11
  • Tim Schwalbe  · 技术社区  · 6 年前

    我正在寻找一种在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 回复  |  直到 6 年前
        1
  •  19
  •   jhernandez    6 年前

    您正在使用 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
    
        2
  •  8
  •   Tobias Ernst    5 年前

    使用图像 google/cloud-sdk 其中预装了gcloud和kubectl。

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