我正在将GoCD视为用于将Kubernetes应用程序部署到多个集群的管道/交付工具。
当前遇到一个非常基本的问题:在GoCD任务中运行kubectl
命令的推荐方法是什么?
是否在安装了kubectl的情况下创建自定义GoCD代理映像?是否有任何插件可以简化这一过程?
答案 0 :(得分:0)
由于尚未收到任何答复:是的,您需要将go-agent
和kubectl
安装在同一台计算机或同一容器中。
请参见documentation for installing go-agent和docker 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