我试图在GitLab上使用Kubernetes设置自动部署。我在项目设置中成功启用了Kubernetes集成。
嗯,集成图标是绿色的,当我点击"测试设置"我看到"我们向提供的网址发送了一个请求":
我的部署环境是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服务没有太多好运。我错过了什么吗?
答案 0 :(得分:13)
事实证明,除非您配置并引用了环境,否则部署变量将不会实现。
以下是使用.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"
答案 1 :(得分:-1)
答案:GitLab Kuberneteas integration未正确设置
你说:
我点击了"测试设置"按钮和GitLab向我展示了 - "我们向提供的网址"
发送了一个请求
你能否详细说明或提供一些"审查的"图象?