kubernetes - 尚未设置GitLab-CI Kubernetes变量吗?

标签 kubernetes gitlab-ci

我正在尝试在GitLab上使用Kubernetes设置自动部署。我已经在项目设置中成功启用了Kubernetes集成。

好吧,集成图标为绿色,当我单击“测试设置”时,我看到“我们向提供的URL发送了请求”:

Kubernetes Integration

我的部署环境是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/

相关文章:

gitlab - 如何将 GitLab 变量扩展与 YAML anchor 结合起来?

kubernetes - Kubernetes Prometheues运算符与Helm图表之间的区别

kubernetes - kubectl等待--for =条件=完成-超时= 30s

reactjs - 具有多阶段 dockerfile 的多个 gitlab-ci 阶段

GitLab-CI:仅在创建分支时运行作业

gitlab - 如何使用预制的 config.toml 注册/重新注册 Gitlab Runner?

docker - 如何在Kubernetes中定义网络

amazon-web-services - 将 awslogs 与 kubernetes 一起使用 'natively'

kubernetes - Docker nuget 连接超时

amazon-web-services - Gitlab 运行程序无法运行 aws 命令