首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在gitlab ci上工作过一次?

在gitlab ci上工作过一次?
EN

DevOps用户
提问于 2018-04-10 21:27:26
回答 1查看 700关注 0票数 2

我正在设置一个管道,该管道编译和构建新的坞映像,然后将这些映像部署到测试kubernetes集群。

我用的是弹壳机。

我需要设置我的kubectl客户机来指向测试kubernetes集群。(即)设置群集和上下文)。

据我所知-我只需要运行一次。是否有一种方法可以让它运行一次,就像.gitlab-ci.yaml中定义的那样?还是应该每次在before_script中重复设置步骤?

EN

回答 1

DevOps用户

发布于 2018-04-16 07:24:04

我也处理过同样的问题。一些人建议使用Gitlab组“机密”和before_script。因为我知道我也要部署,而且我的跑步者需要其他工具,比如"helm",所以我做了我自己的码头容器。我仍然在base64编码组中为集群保留配置,但是我在dockerfile中这样设置它。

代码语言:javascript
运行
AI代码解释
复制
ENV kube_config=$kube_config
RUN echo -n ${kube_config} | base64 -d > ~/.kube/config

现在,只需为gitlab运行程序设置一个环境变量,以指向您的新映像。

代码语言:javascript
运行
AI代码解释
复制
KUBERNETES_IMAGE: registry.gitlab.com/MY_USERNAME/MY_REPO_NAME/MY_IMAGE_NAME:latest

别忘了测试你的新容器!

代码语言:javascript
运行
AI代码解释
复制
stages:
  - build
  - test
  - release

variables:
  CONTAINER_TEST_IMAGE: $CI_REGISTRY_IMAGE/gitlab_runner:$CI_COMMIT_REF_NAME
  CONTAINER_RELEASE_IMAGE: $CI_REGISTRY_IMAGE/gitlab_runner:latest

before_script:
  - apt-get update && apt-get install docker.io -y
  - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY

Build Image:
  stage: build
  script:
    - docker build --build-arg kube_config=${kube_config} -t ${CONTAINER_TEST_IMAGE} .
    - docker push ${CONTAINER_TEST_IMAGE}
  except:
    - master

Test Kubectl:
  stage: test
  script:
    - docker pull ${CONTAINER_TEST_IMAGE}
    - docker run --rm ${CONTAINER_TEST_IMAGE} kubectl get deployments -n kube-system
  except:
    - master

Test Helm:
  stage: test
  script:
    - docker pull ${CONTAINER_TEST_IMAGE}
    - docker run --rm ${CONTAINER_TEST_IMAGE} helm ls
  except:
    - master

Test Docker:
  stage: test
  script:
    - docker pull ${CONTAINER_TEST_IMAGE}
    - docker run --rm -v /var/run/docker.sock:/var/run/docker.sock ${CONTAINER_TEST_IMAGE} docker images
  except:
    - master

release-image:
  stage: release
  script:
    - docker pull $CONTAINER_TEST_IMAGE
    - docker tag $CONTAINER_TEST_IMAGE $CONTAINER_RELEASE_IMAGE
    - docker push $CONTAINER_RELEASE_IMAGE
  only:
    - master

编辑:错过了这部分。我正在使用shell运行程序。

所以,我所说的文章可能与此无关。然而,我认为直接在集群上构建和部署gitlab运行程序有一些好处。

票数 3
EN
页面原文内容由DevOps提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://devops.stackexchange.com/questions/3857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文