我正在尝试在GitLab上使用Kubernetes设置自动部署。我已经在项目设置中成功启用了Kubernetes集成。
好吧,集成图标为绿色,当我单击“测试设置”时,我看到“我们向提供的URL发送了请求”:
我的部署环境是Google容器引擎。
这是我的gitlab-ci.yml
配置中的自动部署部分:
deploy:
image: registry.gitlab.com/gitlab-examples/kubernetes-deploy
stage: deploy
script:
- export
- echo CI_PROJECT_ID=$CI_PROJECT_ID
- echo KUBE_URL=$KUBE_URL
- echo KUBE_CA_PEM_FILE=$KUBE_CA_PEM_FILE
- echo KUBE_TOKEN=$KUBE_TOKEN
- echo KUBE_NAMESPACE=$KUBE_NAMESPACE
- kubectl config set-cluster "$CI_PROJECT_ID" --server="$KUBE_URL" --certificate-authority="$KUBE_CA_PEM_FILE"
- kubectl config set-credentials "$CI_PROJECT_ID" --token="$KUBE_TOKEN"
- kubectl config set-context "$CI_PROJECT_ID" --cluster="$CI_PROJECT_ID" --user="$CI_PROJECT_ID" --namespace="$KUBE_NAMESPACE"
- kubectl config use-context "$CI_PROJECT_ID"
当我查看结果时,部署阶段失败。这是因为所有
KUBE
变量都是空的。到目前为止,我对Kubernetes服务的运气还不够。我想念什么吗?
最佳答案
事实证明,除非您配置并引用了环境,否则部署变量将不会实现。
这是带有.gitlab-ci.yaml
关键字的environment
文件的外观:
deploy:
image: registry.gitlab.com/gitlab-examples/kubernetes-deploy
stage: deploy
environment: production
script:
- export
- echo CI_PROJECT_ID=$CI_PROJECT_ID
- echo KUBE_URL=$KUBE_URL
- echo KUBE_CA_PEM_FILE=$KUBE_CA_PEM_FILE
- echo KUBE_TOKEN=$KUBE_TOKEN
- echo KUBE_NAMESPACE=$KUBE_NAMESPACE
- kubectl config set-cluster "$CI_PROJECT_ID" --server="$KUBE_URL" --certificate-authority="$KUBE_CA_PEM_FILE"
- kubectl config set-credentials "$CI_PROJECT_ID" --token="$KUBE_TOKEN"
- kubectl config set-context "$CI_PROJECT_ID" --cluster="$CI_PROJECT_ID" --user="$CI_PROJECT_ID" --namespace="$KUBE_NAMESPACE"
- kubectl config use-context "$CI_PROJECT_ID"
关于kubernetes - 尚未设置GitLab-CI Kubernetes变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44026971/