GitLab-CI Kubernetes变量没有设置?

时间:2017-05-17 13:56:18

标签: kubernetes gitlab-ci

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

嗯,集成图标是绿色的,当我点击"测试设置"我看到"我们向提供的网址发送了一个请求":

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服务没有太多好运。我错过了什么吗?

2 个答案:

答案 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向我展示了 - "我们向提供的网址"

发送了一个请求

你能否详细说明或提供一些"审查的"图象?