littlebot
Published on 2025-04-08 / 0 Visits
0

【源码】基于Go语言的运行时资源管理系统

项目简介

本项目是基于Go语言开发的运行时资源管理系统,主要用于同步部署运行时和流水线运行时的各类资源,管理命名空间、资源同步、权限授予等操作。

项目的主要特性和功能

同步部署运行时

  • 在管理命名空间同步CodeRepo资源。
  • 同步产品命名空间,并在其中同步RoleBinding资源。
  • 同步运行时命名空间,并在其中同步运行时SA。
  • 建立产品命名空间和运行时命名空间的父子关系。
  • 在ArgoCD中同步AppProject和Application。
  • 在ArgoCD中同步Group,并授予相应权限。

同步流水线运行时

  • 创建产品和流水线运行时的命名空间。
  • 创建事件监听器,接收外部事件并转为内部事件。
  • 创建流水线触发器,根据内部事件触发指定流水线。
  • 创建流水线模板同步程序,同步流水线模板。
  • 授权该运行时所属产品下的用户管理流水线实例的权限。

安装使用步骤

准备

  • 安装 gokubectl,并配置GOBIN环境变量。
  • 准备一个kubernetes实例,将kubeconfig文件复制到 {$HOME}/.kube/config。

构建

在项目根目录下执行以下命令: shell go mod tidy go build -o manager main.go

运行

shell ./manager

单元测试

  1. 安装Vault: shell wget https://releases.hashicorp.com/vault/1.10.4/vault_1.10.4_linux_amd64.zip unzip vault_1.10.4_linux_amd64.zip sudo mv vault /usr/local/bin/
  2. 安装Ginkgo(此处原文未提供安装命令,请补充完整后使用)。
  3. 执行单元测试: shell make test

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】