Documentation
¶
Index ¶
- Constants
- Variables
- type AddAppServiceRequest
- type AppInterface
- type Application
- type ApplicationReadyAudit
- type ApplicationStatus
- type CodeRepository
- type CreateApplicationRequest
- type CreateApplicationSpec
- type CreateServiceRequest
- type DeleteApplicationRequest
- type DeleteServiceRequest
- type DescribeApplicationRequest
- type DescribeServiceRequest
- type ImageRepository
- type LANGUAGE
- type QueryApplicationRequest
- type QueryApplicationRequestSpec
- type QueryServiceRequest
- type SCM_PROVIDER
- type Service
- type ServiceInterface
- type TYPE
- type UpdateApplicationRequest
- type UpdateServiceRequest
Constants ¶
View Source
const (
APP_NAME = "application"
)
Variables ¶
View Source
var ( TYPE_NAME = map[TYPE]string{ TYPE_SOURCE_CODE: "SOURCE_CODE", TYPE_CONTAINER_IMAGE: "CONTAINER_IMAGE", TYPE_OTHER: "OTHER", } TYPE_VALUE = map[string]TYPE{ "SOURCE_CODE": TYPE_SOURCE_CODE, "CONTAINER_IMAGE": TYPE_CONTAINER_IMAGE, "OTHER": TYPE_OTHER, } )
Enum value maps for Type.
Functions ¶
This section is empty.
Types ¶
type AddAppServiceRequest ¶
type AddAppServiceRequest struct {
}
type AppInterface ¶
type AppInterface interface {
// 创建应用
CreateApplication(context.Context, *CreateApplicationRequest) (*Application, error)
// 查询应用
QueryApplication(context.Context, *QueryApplicationRequest) (*types.Set[*Application], error)
// 更新应用
UpdateApplication(context.Context, *UpdateApplicationRequest) (*Application, error)
// 删除应用
DeleteApplication(context.Context, *DeleteApplicationRequest) (*Application, error)
// 获取应用
DescribeApplication(context.Context, *DescribeApplicationRequest) (*Application, error)
ServiceInterface
}
func GetService ¶
func GetService() AppInterface
type Application ¶
type Application struct {
// 对象Id
Id string `json:"id" bson:"_id" gorm:"column:id;primaryKey"`
// 更新时间
UpdateAt *time.Time `json:"update_at" bson:"update_at" gorm:"column:update_at"`
// 更新人
UpdateBy string `json:"update_by" bson:"update_by" gorm:"column:update_by;type:varchar(60)"`
// 创建请求
CreateApplicationRequest
// 应用状态
ApplicationStatus
// 应用关联的服务
Services []*Service `json:"services" gorm:"-"`
}
func NewApplication ¶
func NewApplication(req CreateApplicationRequest) (*Application, error)
func (*Application) AddService ¶
func (a *Application) AddService(services ...*Service) *Application
func (*Application) BuildId ¶
func (a *Application) BuildId()
func (*Application) SetReady ¶
func (a *Application) SetReady(v bool) *Application
func (*Application) String ¶
func (a *Application) String() string
func (*Application) TableName ¶
func (a *Application) TableName() string
type ApplicationReadyAudit ¶
type ApplicationReadyAudit struct {
// 评审角色, Dev, Test, Ops
RoleName string `json:"role_name"`
// 评审人
AuditBy string `json:"audit_by"`
// 评审时间
AuditAt time.Time `json:"audit_at"`
// 是否就绪
Ready bool `json:"ready"`
// 评审建议
Message string `json:"message"`
}
参与应用准备就绪的评审方
type ApplicationStatus ¶
type CodeRepository ¶
type CodeRepository struct {
// 仓库提供商
Provider SCM_PROVIDER `json:"provider" bson:"provider" gorm:"column:provider;type:varchar(60)"`
// token 操作仓库, 比如设置回调
Token string `json:"token" bson:"token" gorm:"column:token;type:varchar(100)"`
// 仓库对应的项目Id
ProjectId string `json:"project_id" bson:"project_id" gorm:"column:project_id;type:varchar(120)"`
// 仓库对应空间
Namespace string `json:"namespace" bson:"namespace" gorm:"column:namespace;type:varchar(100)"`
// 仓库web url地址
WebUrl string `json:"web_url" bson:"web_url" gorm:"column:web_url;type:varchar(200)"`
// 仓库ssh url地址
SshUrl string `json:"ssh_url" bson:"ssh_url" gorm:"column:ssh_url;type:varchar(200)"`
// 仓库http url地址
HttpUrl string `json:"http_url" bson:"http_url" gorm:"column:http_url;type:varchar(200)"`
// 源代码使用的编程语言, 构建时, 不同语言有不同的构建环境
Language *LANGUAGE `json:"language" bson:"language" gorm:"column:language;type:varchar(60)"`
// 开启Hook设置
EnableHook bool `json:"enable_hook" bson:"enable_hook" gorm:"column:enable_hook"`
// Hook设置
HookConfig string `json:"hook_config" bson:"hook_config" gorm:"column:hook_config;type:text"`
// scm设置Hook后返回的id, 用于删除应用时,取消hook使用
HookId string `json:"hook_id" bson:"hook_id" gorm:"column:hook_id;type:text"`
// 仓库的创建时间
CreatedAt time.Time `json:"created_at" bson:"created_at" gorm:"column:created_at"`
}
服务代码仓库信息
type CreateApplicationRequest ¶
type CreateApplicationRequest struct {
// 创建人
CreateBy string `json:"create_by" gorm:"column:create_by;type:varchar(60)" description:"创建人"`
// 创建时间
CreateAt time.Time `json:"create_at" gorm:"column:create_at" description:"创建时间"`
// 资源范围, Namespace是继承的, Scope是API添加的
policy.ResourceLabel
// 应用创建参数
CreateApplicationSpec
}
func NewCreateApplicationRequest ¶
func NewCreateApplicationRequest() *CreateApplicationRequest
func (*CreateApplicationRequest) GetImageRepositoryPrimaryAddress ¶
func (a *CreateApplicationRequest) GetImageRepositoryPrimaryAddress() string
func (*CreateApplicationRequest) Validate ¶
func (a *CreateApplicationRequest) Validate() error
type CreateApplicationSpec ¶
type CreateApplicationSpec struct {
// 应用名称
Name string `json:"name" bson:"name" gorm:"column:name;type:varchar(120)" description:"应用名称"`
// 应用描述
Description string `json:"description" bson:"description" gorm:"column:description;type:text" description:"应用描述"`
// 应用图标
Icon string `json:"icon" bson:"icon" gorm:"column:icons;type:text" description:"应用图标"`
// 应用类型
Type TYPE `json:"type" bson:"type" gorm:"column:type;type:tinyint(2)" description:"应用类型, SOURCE_CODE, CONTAINER_IMAGE, OTHER"`
// 应用代码仓库信息
CodeRepository CodeRepository `json:"code_repository" bson:",inline" gorm:"embedded" description:"应用代码仓库信息"`
// 应用镜像仓库信息
ImageRepository []ImageRepository `` /* 145-byte string literal not displayed */
// 应用所有者
Owner string `json:"owner" bson:"owner" gorm:"column:owner;type:varchar(120)" description:"应用所有者"`
// 应用等级, 评估这个应用的重要程度
Level *uint32 `json:"level" bson:"level" gorm:"column:level" description:"应用等级, 评估这个应用的重要程度"`
// 应用优先级, 应用启动的先后顺序
Priority *uint32 `json:"priority" bson:"priority" gorm:"column:priority" description:"应用优先级, 应用启动的先后顺序"`
// 额外的其他属性
Extras map[string]string `json:"extras" form:"extras" bson:"extras" gorm:"column:extras;type:json;serializer:json;"`
// 指定应用的评审方
Audits []ApplicationReadyAudit `json:"audits" bson:"audits" gorm:"column:audits;type:json;serializer:json" description:"参与应用准备就绪的评审方"`
}
type CreateServiceRequest ¶
type CreateServiceRequest struct {
// 所属应用
ApplicationName string `json:"application_name" gorm:"column:application_name;type:varchar(60)"`
// 单仓单服, 服务名称就是 仓库的名称
// 单仓多服, 服务名称 需要用户自己定义, 子应用目录名称
Name string `json:"name" gorm:"column:name;type:varchar(60)"`
}
func NewCreateServiceRequest ¶
func NewCreateServiceRequest(app_name, serviceName string) *CreateServiceRequest
type DeleteApplicationRequest ¶
type DeleteApplicationRequest struct {
DescribeApplicationRequest
}
type DeleteServiceRequest ¶
type DeleteServiceRequest struct {
}
type DescribeApplicationRequest ¶
type DescribeApplicationRequest struct {
policy.ResourceScope
// 应用ID
Id string `json:"id" bson:"_id"`
}
type DescribeServiceRequest ¶
type DescribeServiceRequest struct {
ServiceId string `json:"service_id"`
}
func NewDescribeServiceRequest ¶
func NewDescribeServiceRequest(serviceId string) *DescribeServiceRequest
type ImageRepository ¶
type ImageRepository struct {
// 服务镜像地址, 比如 gcr.lank8s.cn/kaniko-project/executor
Address string `json:"address" bson:"address"`
// 是不是主仓库
IsPrimary bool `json:"is_primary" bson:"is_primary"`
}
镜像仓库
type LANGUAGE ¶
type LANGUAGE string
const ( LANGUAGE_JAVA LANGUAGE = "java" LANGUAGE_JAVASCRIPT LANGUAGE = "javascript" LANGUAGE_GOLANG LANGUAGE = "golang" LANGUAGE_PYTHON LANGUAGE = "python" LANGUAGE_PHP LANGUAGE = "php" LANGUAGE_C_SHARP LANGUAGE = "csharp" LANGUAGE_C LANGUAGE = "c" LANGUAGE_C_PLUS_PLUS LANGUAGE = "cpp" LANGUAGE_SWIFT LANGUAGE = "swift" LANGUAGE_OBJECT_C LANGUAGE = "objectivec" LANGUAGE_RUST LANGUAGE = "rust" LANGUAGE_RUBY LANGUAGE = "ruby" LANGUAGE_DART LANGUAGE = "dart" LANGUAGE_KOTLIN LANGUAGE = "kotlin" LANGUAGE_SHELL LANGUAGE = "shell" LANGUAGE_POWER_SHELL LANGUAGE = "powershell" )
type QueryApplicationRequest ¶
type QueryApplicationRequest struct {
policy.ResourceScope
QueryApplicationRequestSpec
}
func NewQueryApplicationRequest ¶
func NewQueryApplicationRequest() *QueryApplicationRequest
type QueryApplicationRequestSpec ¶
type QueryApplicationRequestSpec struct {
*request.PageRequest
// 应用ID
Id string `json:"id" bson:"_id"`
// 应用名称
Name string `json:"name" bson:"name"`
// 应用是否就绪
Ready *bool `json:"ready" bson:"ready"`
}
type QueryServiceRequest ¶
type QueryServiceRequest struct {
*request.PageRequest
// 所属应用
ApplicationName string `json:"application_name"`
//
ApplicationId string `json:"application_id"`
}
func NewQueryServiceRequest ¶
func NewQueryServiceRequest() *QueryServiceRequest
func (*QueryServiceRequest) SetApplicationId ¶
func (r *QueryServiceRequest) SetApplicationId(appId string) *QueryServiceRequest
func (*QueryServiceRequest) SetApplicationName ¶
func (r *QueryServiceRequest) SetApplicationName(appName string) *QueryServiceRequest
type SCM_PROVIDER ¶
type SCM_PROVIDER string
SCM_TYPE 源码仓库类型
const ( // gitlab SCM_PROVIDER_GITLAB SCM_PROVIDER = "gitlab" // github SCM_PROVIDER_GITHUB SCM_PROVIDER = "github" // bitbucket SCM_PROVIDER_BITBUCKET SCM_PROVIDER = "bitbucket" )
type Service ¶
type Service struct {
// 对象Id 应用名称-服务名称
Id string `json:"id" bson:"_id" gorm:"column:id;primaryKey"`
// 创建时间
CreateAt time.Time `json:"create_at" gorm:"column:create_at" description:"创建时间"`
// 更新时间
UpdateAt *time.Time `json:"update_at" gorm:"column:update_at"`
// 更新人
UpdateBy string `json:"update_by" gorm:"column:update_by;type:varchar(60)"`
// 具体属性
CreateServiceRequest
}
应用服务, 应用的子概念
func NewService ¶
func NewService(req *CreateServiceRequest) *Service
type ServiceInterface ¶
type ServiceInterface interface {
// 服务添加
AddAppService(context.Context, *AddAppServiceRequest) (*Service, error)
// 服务编辑
UpdateService(context.Context, *UpdateServiceRequest) (*Service, error)
// 服务删除
DeleteService(context.Context, *DeleteServiceRequest) (*Service, error)
// 查询具体的Service信息
DescribeService(context.Context, *DescribeServiceRequest) (*Service, error)
// 服务列表查询
QueryService(context.Context, *QueryServiceRequest) (*types.Set[*Service], error)
}
type UpdateApplicationRequest ¶
type UpdateApplicationRequest struct {
// 更新人
UpdateBy string `json:"update_by" bson:"update_by"`
DescribeApplicationRequest
CreateApplicationSpec
}
type UpdateServiceRequest ¶
type UpdateServiceRequest struct {
}
Source Files
¶
Click to show internal directories.
Click to hide internal directories.