在GoCD任务中运行kubectl的最佳方法是什么?

时间:2019-09-15 19:18:49

标签: go-cd

我正在将GoCD视为用于将Kubernetes应用程序部署到多个集群的管道/交付工具。

当前遇到一个非常基本的问题:在GoCD任务中运行kubectl命令的推荐方法是什么?

是否在安装了kubectl的情况下创建自定义GoCD代理映像?是否有任何插件可以简化这一过程?

2 个答案:

答案 0 :(得分:0)

由于尚未收到任何答复:是的,您需要将go-agentkubectl安装在同一台计算机或同一容器中。

请参见documentation for installing go-agentdocker elastic agents plugin

答案 1 :(得分:0)

我使用Dockerfile来做到这一点。对于使用GCP,但如果不使用它,则可以删除“ gcloud”部分。

FROM gocd/gocd-agent-alpine-3.9:v19.12.0

USER root

# begin - gcloud
RUN \
  apk add --update make ca-certificates openssl python && \
  update-ca-certificates && \
  wget https://dl.google.com/dl/cloudsdk/release/google-cloud-sdk.tar.gz && \
  tar zxf google-cloud-sdk.tar.gz && \
  ./google-cloud-sdk/install.sh --usage-reporting=false && \
  ./google-cloud-sdk/bin/gcloud --quiet components update && \
  rm -f google-cloud-sdk.tar.gz
# end - gcloud

# begin - kubectl
RUN apk update && apk add curl git
RUN curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.15.1/bin/linux/amd64/kubectl
RUN chmod u+x kubectl && mv kubectl /bin/kubectl
# end - kubectl

# begin - docker
RUN apk add docker
# end - docker

USER go
ENV PATH $PATH:/google-cloud-sdk/bin