KubeSphere内网环境实践GO项目流水线
kubesphere官方给出的流水线都是在公网环境下,并对接github、dockerhub等环境。本文在内网实践部署,代码库使用内网部署的gitlab,镜像仓库使用harbor。
1. 环境准备
1.1 部署kubesphere环境
参考官方文档完成:
本文使用到的版本如下:
KubeSphere 版本 : v3.4.1
kubernetes 版本: v1.23.15
操作系统版本:Ubuntu 20.04.2 LTS
1.2 部署kubesphere devops环境
devops作为kubesphere的扩展组件使用,需要在扩容组件中安装kubesphere。
1.3 devops用户指南完成基本的项目和人员创建
并创建对应的项目和人员账号。本文记录流水线配置的关键点,配置步骤主题参考kubesphere官方文档:
- Devops用户指南:https://www.kubesphere.io/zh/docs/v4.1/11-use-extensions/01-devops/
- 构建和部署 Go 项目:https://www.kubesphere.io/zh/docs/v3.3/devops-user-guide/examples/go-project-pipeline/
2. 代码导入私有仓库并修改
官方给出的go示例项目代码库地址:https://github.com/yuswift/devops-go-sample.git,这里将代码库导入到本地部署的gitlab环境,可以离线下载然后导入(通过git操作),或者通过gitlab导入项目的功能完成(gitlab需要联网)。
导入完成后对于代码库内容进行必要的修改。
2.1 dockerfile修改
修改代码仓库根路径下的dockerfile文件,主要修改构建的基础镜像,此处指向内网的harbor仓库,需要提前在harbor仓库中上传golang:1.15镜像:
# Build the manager binary
# FROM golang:1.15 as builder
# 下面的golang镜像替换为内网harbor上的url
FROM 10.210.10.236:30002/language/golang:1.15 as builder
WORKDIR /devops
COPY go.mod go.mod
COPY cmd/ cmd/
RUN go mod download
# Build
RUN CGO_ENABLED=0 GOOS=linux