当前位置: 首页 > news >正文

gitlab 通过变量连接自建K8S

services:- docker:19.03.7-dind- golang:1.17.8-alpine3.15- docker:stable
stages:- package- build and push docker image- deploy
variables:KUBECONFIG: /etc/deploy/config
build:tags:- k8simage: golang:1.17.8-alpine3.15stage: package# 只作用在main分支only:- mainscript:- export GO111MODULE=on- export GOPROXY=https://goproxy.cn- go mod init app- go mod tidy- go build .
docker build:tags:- k8svariables:DOCKER_HOST: tcp://0.0.0.0:2375DOCKER_TLS_CERTDIR: ""image: docker:stablestage: build and push docker image# 只作用在main分支only:- mainscript:- docker build -t test:v01 .deploy:tags:- k8simage: registry.cn-hangzhou.aliyuncs.com/haoshuwei24/kubectl:1.16.6stage: deployscript:- mkdir -p /etc/deploy- echo $kube_config |base64 -d > $KUBECONFIG- kubectl  get pods -n gitlab
KUBECONFIG: /etc/deploy/config 是一个变量定义,在gitlab的ci/cd 控制台配置 ,它指定了将要创建的文件路径。这个变量的目的是为了方便在后续的阶段中使用。
在 deploy 阶段的脚本中,可以看到以下命令:
mkdir -p /etc/deploy
echo $kube_config | base64 -d > $KUBECONFIG
kubectl get pods -n gitlab
这里的目的是将 $kube_config 的值进行 Base64 解码,并将解码后的内容写入到 /etc/deploy/config 文件中.后续的 kubectl 命令就能够使用这个文件来获取正确的 Kubernetes 配置信息。
因此,创建 KUBECONFIG: /etc/deploy/config 变量的目的是为了在后续的部署阶段中使用该文件路径,以便正确设置 Kubernetes 配置并执行相关操作。这样做可以更好地组织代码,并提高可读性和可维护性。

也可以使用以下方法,但是可读性脚差

deploy:tags:- k8simage: registry.cn-hangzhou.aliyuncs.com/haoshuwei24/kubectl:1.16.6stage: deployscript:- echo $kube_config | base64 -d > /tmp/config.yaml- kubectl --kubeconfig /tmp/config.yaml get pods -n gitlab
http://www.lryc.cn/news/209188.html

相关文章:

  • LuatOS-SOC接口文档(air780E)--mcu - 封装mcu一些特殊操作
  • 第14期 | GPTSecurity周报
  • 【数据结构】优先级队列
  • c语言宏相关高级用法
  • 新款模块上线实现SIP模块与扩拨电话之间打点与喊话功能 IP矿用电话模块SV-2800VP
  • 前端开发---在vue项目中使用openLayers
  • C语言之结构体和共用体详解
  • iOS插件
  • Maven第四章:配置文件详解
  • 计算机网络基础一
  • 搜维尔科技:Touch触觉式力反馈设备与Touch X力反馈设备对比分析
  • SAP保持系统长时间在线
  • 威联通NAS进阶玩法之使用Docker搭建个人博客教程
  • 模型对象CSS2DObject始终在画布的左上角(问题解决)
  • LabVIEW开发基于图像处理的车牌检测系统
  • Data Analysis With Python
  • 【Selenium】提高测试爬虫效率:Selenium与多线程的完美结合
  • ElCLib类解析
  • 栈、队列、矩阵的总结
  • PCL 半径滤波剔除噪点
  • Android SurfaceFlinger做Layer合成时,如何与HAL层进行交互
  • 华为eNSP配置专题-策略路由的配置
  • JAVA实现智能停车场管理系统 开源
  • 深入理解Docker之:存储卷相关概念详解和分析
  • Node.js的基本概念node -v 和npm -v 这两个命令的作用
  • mysql bin_log日志恢复数据
  • C++系列之list的模拟实现
  • 什么情况下你会使用AI工具(chatgpt、bard)?
  • 【go】两数求和
  • 软考高项-成本管理