From 02e633b2c641daa30ad8b725d6c358cfb04a189e Mon Sep 17 00:00:00 2001 From: yumaojun03 <719118794@qq.com> Date: Sun, 30 Mar 2025 12:01:18 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85mpaas=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- devcloud-mini/cmdb/apps/application/README.md | 5 ++ devcloud-mini/cmdb/apps/resource/api/api.go | 7 ++ devcloud-mini/mpaas/README.md | 2 + devcloud-mini/mpaas/apps/deploy/README.md | 7 ++ devcloud-mini/mpaas/apps/deploy/interface.go | 1 + devcloud-mini/mpaas/apps/deploy/model.go | 1 + devcloud-mini/mpaas/apps/k8s/README.md | 3 + devcloud-mini/mpaas/apps/k8s/interface.go | 58 +++++++++++++++++ devcloud-mini/mpaas/apps/k8s/model.go | 46 +++++++++++++ devcloud-mini/mpaas/apps/registry.go | 1 + devcloud-mini/mpaas/docs/design.drawio | 64 +++++++++++++++++++ devcloud-mini/mpaas/main.go | 12 ++++ 12 files changed, 207 insertions(+) create mode 100644 devcloud-mini/cmdb/apps/application/README.md create mode 100644 devcloud-mini/mpaas/README.md create mode 100644 devcloud-mini/mpaas/apps/deploy/README.md create mode 100644 devcloud-mini/mpaas/apps/deploy/interface.go create mode 100644 devcloud-mini/mpaas/apps/deploy/model.go create mode 100644 devcloud-mini/mpaas/apps/k8s/README.md create mode 100644 devcloud-mini/mpaas/apps/k8s/interface.go create mode 100644 devcloud-mini/mpaas/apps/k8s/model.go create mode 100644 devcloud-mini/mpaas/apps/registry.go create mode 100644 devcloud-mini/mpaas/docs/design.drawio create mode 100644 devcloud-mini/mpaas/main.go diff --git a/devcloud-mini/cmdb/apps/application/README.md b/devcloud-mini/cmdb/apps/application/README.md new file mode 100644 index 0000000..e7e48b6 --- /dev/null +++ b/devcloud-mini/cmdb/apps/application/README.md @@ -0,0 +1,5 @@ +# 管理应用 + +1. 项目(产品) --> 应用 +1. 把Namespace当作产品或者项目来用 +2. SCM 代码仓库相关 \ No newline at end of file diff --git a/devcloud-mini/cmdb/apps/resource/api/api.go b/devcloud-mini/cmdb/apps/resource/api/api.go index ca9067a..f548581 100644 --- a/devcloud-mini/cmdb/apps/resource/api/api.go +++ b/devcloud-mini/cmdb/apps/resource/api/api.go @@ -17,6 +17,10 @@ func init() { type ResourceApiHandler struct { ioc.ObjectImpl + + // @Resource(name="", namespace="") + // @Resource + // ResourceService resource.Service `ioc:"autowire=true;namespace=controllers"` } func (r *ResourceApiHandler) Name() string { @@ -28,6 +32,9 @@ func (r *ResourceApiHandler) Init() error { // api/v1/resource ws := gorestful.ObjectRouter(r) + // 半自动 + // r.ResourceService = resource.GetService() + tags := []string{"资源管理"} ws.Route(ws.GET("").To(r.Search).Doc("资源检索"). diff --git a/devcloud-mini/mpaas/README.md b/devcloud-mini/mpaas/README.md new file mode 100644 index 0000000..5b19d6d --- /dev/null +++ b/devcloud-mini/mpaas/README.md @@ -0,0 +1,2 @@ +# paas 平台 + diff --git a/devcloud-mini/mpaas/apps/deploy/README.md b/devcloud-mini/mpaas/apps/deploy/README.md new file mode 100644 index 0000000..7f80c67 --- /dev/null +++ b/devcloud-mini/mpaas/apps/deploy/README.md @@ -0,0 +1,7 @@ +# 应用部署 + +部署动作的合集, 部署模版 +1. Deployment/.. +2. ConfigMap +3. Servie +4. Ingress \ No newline at end of file diff --git a/devcloud-mini/mpaas/apps/deploy/interface.go b/devcloud-mini/mpaas/apps/deploy/interface.go new file mode 100644 index 0000000..b2b65d9 --- /dev/null +++ b/devcloud-mini/mpaas/apps/deploy/interface.go @@ -0,0 +1 @@ +package deploy diff --git a/devcloud-mini/mpaas/apps/deploy/model.go b/devcloud-mini/mpaas/apps/deploy/model.go new file mode 100644 index 0000000..b2b65d9 --- /dev/null +++ b/devcloud-mini/mpaas/apps/deploy/model.go @@ -0,0 +1 @@ +package deploy diff --git a/devcloud-mini/mpaas/apps/k8s/README.md b/devcloud-mini/mpaas/apps/k8s/README.md new file mode 100644 index 0000000..94af8a3 --- /dev/null +++ b/devcloud-mini/mpaas/apps/k8s/README.md @@ -0,0 +1,3 @@ +# k8s 管理模块 + +k8s 配置文件管理, 高敏感的, 脱敏和加密 (web界面不能返回敏感信息) \ No newline at end of file diff --git a/devcloud-mini/mpaas/apps/k8s/interface.go b/devcloud-mini/mpaas/apps/k8s/interface.go new file mode 100644 index 0000000..c33a905 --- /dev/null +++ b/devcloud-mini/mpaas/apps/k8s/interface.go @@ -0,0 +1,58 @@ +package k8s + +import ( + "context" + + "github.com/infraboard/mcube/v2/http/request" + request1 "github.com/infraboard/mcube/v2/pb/request" + "github.com/infraboard/mcube/v2/pb/resource" + "github.com/infraboard/mcube/v2/types" +) + +type Service interface { + QueryCluster(context.Context, *QueryClusterRequest) (types.Set[*Cluster], error) + DescribeCluster(context.Context, *DescribeClusterRequest) (*Cluster, error) + CreateCluster(context.Context, *CreateClusterRequest) (*Cluster, error) + UpdateCluster(context.Context, *UpdateClusterRequest) (*Cluster, error) + DeleteCluster(context.Context, *DeleteClusterRequest) (*Cluster, error) +} + +type QueryClusterRequest struct { + // 资源范围 + Scope *resource.Scope `json:"scope"` + // 资源标签过滤 + Filters []*resource.LabelRequirement `json:"filters"` + // 分页参数 + Page *request.PageRequest `json:"page"` + // 关键字参数 + Keywords string `json:"keywords"` + // 集群所属厂商 + Vendor string `json:"vendor"` + // 集群所属地域 + Region string `json:"region"` + // 集群Id列表 + ClusterIds []string `json:"cluster_ids"` +} + +type DescribeClusterRequest struct { + // Cluster id + Id string `json:"id"` +} + +type UpdateClusterRequest struct { + // Cluster id + Id string `json:"id"` + // 更新模式 + UpdateMode request1.UpdateMode `json:"update_mode"` + // 更新人 + UpdateBy string `json:"update_by"` + // 更新时间 + UpdateAt int64 `json:"update_at"` + // 更新的书本信息 + Spec *CreateClusterRequest `json:"spec"` +} + +type DeleteClusterRequest struct { + // Cluster id + Id string `json:"id"` +} diff --git a/devcloud-mini/mpaas/apps/k8s/model.go b/devcloud-mini/mpaas/apps/k8s/model.go new file mode 100644 index 0000000..64e0ad6 --- /dev/null +++ b/devcloud-mini/mpaas/apps/k8s/model.go @@ -0,0 +1,46 @@ +package k8s + +type Cluster struct { + Id string `json:"id" bson:"_id"` + // 录入时间 + CreateAt int64 `json:"create_at" bson:"create_at"` + // 更新时间 + UpdateAt int64 `json:"update_at" bson:"update_at"` + // 更新人 + UpdateBy string `json:"update_by" bson:"update_by"` + // 集群相关信息 + ServerInfo ServerInfo `json:"server_info" bson:"server_info"` + + // 集群定义信息 + CreateClusterRequest +} + +type ServerInfo struct { + // k8s的地址 + Server string `json:"server" bson:"server"` + // k8s版本 + Version string `json:"version" bson:"version"` + // 连接用户 + AuthUser string `json:"auth_user" bson:"auth_user"` +} + +type CreateClusterRequest struct { + // 集群所属域 + Domain string `json:"domain" form:"domain" bson:"domain"` + // 集群所属空间 + Namespace string `json:"namespace" form:"namespace" bson:"namespace"` + // 创建人 + CreateBy string `json:"create_by" form:"create_by" bson:"create_by"` + // 集群提供商 + Provider string `json:"provider" bson:"provider" form:"provider" validate:"required"` + // 集群所处地域 + Region string `json:"region" bson:"region" form:"region" validate:"required"` + // 名称 + Name string `json:"name" bson:"name" form:"name" validate:"required"` + // 集群客户端访问凭证 + KubeConfig string `json:"kube_config" bson:"kube_config" form:"kube_config" validate:"required"` + // 集群描述 + Description string `json:"description" form:"description" bson:"description"` + // 集群标签, env=prod + Lables map[string]string `json:"lables" form:"lables" bson:"lables"` +} diff --git a/devcloud-mini/mpaas/apps/registry.go b/devcloud-mini/mpaas/apps/registry.go new file mode 100644 index 0000000..cff2ab9 --- /dev/null +++ b/devcloud-mini/mpaas/apps/registry.go @@ -0,0 +1 @@ +package apps diff --git a/devcloud-mini/mpaas/docs/design.drawio b/devcloud-mini/mpaas/docs/design.drawio new file mode 100644 index 0000000..95c21d7 --- /dev/null +++ b/devcloud-mini/mpaas/docs/design.drawio @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/devcloud-mini/mpaas/main.go b/devcloud-mini/mpaas/main.go new file mode 100644 index 0000000..9d3c575 --- /dev/null +++ b/devcloud-mini/mpaas/main.go @@ -0,0 +1,12 @@ +package main + +import ( + // 启动Ioc + "github.com/infraboard/mcube/v2/ioc/server/cmd" + // 非功能组件 + _ "github.com/infraboard/mcube/v2/ioc/apps/apidoc/restful" +) + +func main() { + cmd.Start() +}