runtime-operator

command module
v0.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 18, 2023 License: Apache-2.0 Imports: 15 Imported by: 0

README

Runtime Operator

License golang version

Runtime Operator 项目提供了一组用于调谐 Project Pipeline Runtime 资源和 Deployment Runtime 资源事件的 Controller,调谐内容主要是根据两类运行时资源的声明信息,在目标集群上同步流水线执行或应用部署所需的基础环境。

功能简介

同步部署运行时

Controller 会根据 Deployment Runtime 资源引用的 Environment 资源找到运行时的目标集群,并在此集群上完成以下操作:

  • 在管理命名空间中同步 Deployment Runtime 资源引用的 CodeRepo 资源。
  • 根据 Deployment Runtime 资源关联的 Product 资源的名称同步产品命名空间,并在命名空间中同步 Role 为 namespace-admin、Group 为产品名称的 RoleBinding 资源。
  • 根据 Deployment Runtime 资源的名称同步运行时命名空间,并在命名空间中同步运行时 SA。
  • 在产品命名空间和运行时命名空间之间建立父子关系。
  • 根据 Deployment Runtime 资源关联的 Product 资源的名称在 ArgoCD 中同步 AppProject。
  • 根据 Deployment Runtime 资源的名称在 ArgoCD 中同步 Application,Application 的源为 Deployment Runtime 资源引用的 CodeRepo 资源、目标为运行时命名空间。
  • 根据 Deployment Runtime 资源关联的 Product 资源的产品名称在 ArgoCD 中同步 Group,并为该 Group 授权上述 AppProject 的只读权限和 Application 的管理权限。
同步流水线运行时

开发中……

快速开始

准备

安装以下工具,并配置 GOBIN 环境变量:

准备一个 kubernetes 实例,复制 kubeconfig 文件到 {$HOME}/.kube/config

构建
go mod tidy -go=1.16 && go mod tidy -go=1.17
go build -o manager main.go
运行
./manager
单元测试

安装 Envtest

go install sigs.k8s.io/controller-runtime/tools/setup-envtest@latest
setup-envtest use 1.21.x
export KUBEBUILDER_ASSETS=$HOME/.local/share/kubebuilder-envtest/k8s/1.21.4-linux-amd64

安装 Vault

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/

安装 Ginkgo

go install github.com/onsi/ginkgo/v2/ginkgo@v2.3.1

执行单元测试

ginkgo -r

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL