Documentation ¶
Index ¶
- Constants
- Variables
- func FillDefaultLimigrange(env *Environment) []byte
- func GetErrMessage(err error) string
- func IsNotFound(err error) bool
- func MigrateDatabaseAndInitData(opts *database.Options, initData bool) error
- type AlertInfo
- type AlertMessage
- type Application
- type AuditLog
- type AuthSource
- type CPUMemoryStatus
- type ChartRepo
- type Cluster
- type ClusterGetter
- type ClusterSimple
- type Condition
- type Container
- type Environment
- type EnvironmentCommon
- type EnvironmentResource
- type EnvironmentUserRels
- type LogQueryHistory
- type LogQueryHistoryWithCount
- type LogQuerySnapshot
- type Message
- type MetricDashborad
- type MetricGraph
- type MetricGraphs
- type Notice
- type OnlineConfig
- type Project
- type ProjectCommon
- type ProjectUserRels
- type Registry
- type SystemRole
- type Tenant
- type TenantCommon
- type TenantResourceQuota
- type TenantResourceQuotaApply
- type TenantSimple
- type TenantUserRels
- type User
- type UserCommon
- func (u *UserCommon) GetEmail() string
- func (u *UserCommon) GetID() uint
- func (u *UserCommon) GetSource() string
- func (u *UserCommon) GetSystemRoleID() uint
- func (u *UserCommon) GetUserKind() string
- func (u *UserCommon) GetUsername() string
- func (u UserCommon) MarshalBinary() ([]byte, error)
- func (u *UserCommon) SetLastLogin(t *time.Time)
- func (UserCommon) TableName() string
- func (u *UserCommon) UnmarshalBinary(data []byte) error
- type UserCreate
- type UserMessageStatus
- type UserSel
- type UserSimple
- type VirtualDomain
- type VirtualSpace
- type VirtualSpaceUserRels
- type Workload
Constants ¶
View Source
const ( SyncStatusRunning = "running" SyncStatusError = "error" SyncStatusSuccess = "success" )
View Source
const ( ClusterModeProxy = "apiServerProxy" ClusterModeService = "service" ResCluster = "cluster" ClusterTableName = "clusters" )
View Source
const ( EnvironmentRoleReader = "reader" EnvironmentRoleOperator = "operator" ResEnvironment = "environment" EnvironmentMetaTypeDev = "dev" EnvironmentMetaTypeTest = "test" EnvironmentMetaTypeProd = "prod" )
View Source
const ( ProjectRoleAdmin = "admin" ProjectRoleDev = "dev" ProjectRoleTest = "test" ProjectRoleOps = "ops" ResProject = "project" ProjectTableName = "projects" )
View Source
const ( SystemRoleAdmin = "sysadmin" SystemRoleOrdinary = "ordinary" ResSystemRole = "systemrole" )
View Source
const ( TenantRoleAdmin = "admin" TenantRoleOrdinary = "ordinary" ResTenant = "tenant" TenantTableName = "tenants" QuotaStatusApproved = "approved" QuotaStatusRejected = "rejected" QuotaStatusPending = "pending" )
View Source
const ( ResUser = "user" UserTableName = "users" )
View Source
const ( ResVirtualSpace = "virtualSpace" VirtualSpaceRoleAdmin = "admin" VirtualSpaceRoleNormal = "normal" )
View Source
const ( StatusVeryHigh = "very_high" // 非常高,要扩容 StatusHigh = "high" // 高,要扩容 StatusLow = "low" // 低,要缩容 ColorYellow = "yellow" ColorRed = "red" Ki = 1 << 10 // 1024 Mi = 1 << 20 Gi = 1 << 30 )
View Source
const (
ResVirtualDomain = "virtualDomain"
)
Variables ¶
View Source
var ResChartRepo = "chartrepo"
Functions ¶
func FillDefaultLimigrange ¶
func FillDefaultLimigrange(env *Environment) []byte
func GetErrMessage ¶
func IsNotFound ¶
Types ¶
type AlertInfo ¶
type AlertInfo struct { Fingerprint string `gorm:"type:varchar(50);primaryKey"` // 指纹作为主键 Name string `gorm:"type:varchar(50);"` Namespace string `gorm:"type:varchar(50);"` ClusterName string `gorm:"type:varchar(50);"` Labels datatypes.JSON LabelMap map[string]string `gorm:"-" json:"-"` SilenceStartsAt *time.Time SilenceUpdatedAt *time.Time SilenceEndsAt *time.Time SilenceCreator string `gorm:"type:varchar(50);"` Summary string `gorm:"-"` // 黑名单概要 }
type AlertMessage ¶
type AlertMessage struct { ID uint // 级联删除 Fingerprint string `gorm:"type:varchar(50);"` AlertInfo *AlertInfo `gorm:"foreignKey:Fingerprint;constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"` Value string Message string StartsAt *time.Time `gorm:"index"` // 告警开始时间 EndsAt *time.Time // 告警结束时间 CreatedAt *time.Time `gorm:"index"` // 本次告警产生时间 Status string // firing or resolved }
func (*AlertMessage) ColumnSlice ¶
func (a *AlertMessage) ColumnSlice() []string
func (*AlertMessage) ToNormalMessage ¶
func (a *AlertMessage) ToNormalMessage() Message
func (*AlertMessage) ValueSlice ¶
func (a *AlertMessage) ValueSlice() []string
type Application ¶
type Application struct { ID uint `gorm:"primarykey"` Name string `gorm:"type:varchar(50);uniqueIndex:uniq_idx_project_applicationname;<-:create"` Environment *Environment `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"` EnvironmentID *uint `gorm:"uniqueIndex:uniq_idx_project_applicationname;"` Project *Project `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"` ProjectID uint `gorm:"uniqueIndex:uniq_idx_project_applicationname"` Remark string Kind string Images datatypes.JSON Labels datatypes.JSON Creator string CreatedAt time.Time `sql:"DEFAULT:'current_timestamp'"` }
Application 应用表
type AuditLog ¶
type AuditLog struct { ID uint `gorm:"primarykey"` CreatedAt time.Time `gorm:"index"` UpdatedAt time.Time DeletedAt gorm.DeletedAt `gorm:"index"` // 操作用户 Username string `gorm:"type:varchar(50)"` // 所属租户 Tenant string `gorm:"type:varchar(50)"` // 操作模块 (资源类型,租户,项目,环境,报警规则等等) Module string `gorm:"type:varchar(512)"` // 模块名字 Name string `gorm:"type:varchar(512)"` // 动作名字 (启用,禁用,开启,关闭,添加,删除,修改等) Action string `gorm:"type:varchar(255)"` // 是否成功 请求是否成功 Success bool // 客户端ip 发起请求的客户端IP ClientIP string `gorm:"type:varchar(255)"` // 标签 记录一些额外的环境租户等数据信息 Labels datatypes.JSON // 原始数据 记录的是request和response以及http_code RawData datatypes.JSON }
审计日志的描述格式为:
{用户名} {时间} {操作}
操作:
{动作,增删查改} {资源类型} {资源名字}
AuditLog 审计日志表
type AuthSource ¶
type CPUMemoryStatus ¶
type CPUMemoryStatus struct { CurrentRate float64 CurrentLimit string // 带单位 Status string // 扩容或缩容 SuggestLimit string // 带单位 SuggestMinLimit string // 带单位 SuggestMaxLimit string // 带单位 }
func (*CPUMemoryStatus) AddSuggest ¶
func (status *CPUMemoryStatus) AddSuggest(SuggestType string, currentUsage float64) *CPUMemoryStatus
type Cluster ¶
type Cluster struct { ID uint `gorm:"primarykey"` Name string `gorm:"type:varchar(50);uniqueIndex" binding:"required"` APIServer string `gorm:"type:varchar(250);uniqueIndex"` KubeConfig datatypes.JSON `binding:"required"` Version string AgentAddr string AgentCA string `json:"-"` AgentCert string `json:"-"` AgentKey string `json:"-"` Mode string `json:"-"` Runtime string // docker or containerd Primary bool OversoldConfig datatypes.JSON Environments []*Environment TenantResourceQuotas []*TenantResourceQuota ClusterResourceQuota datatypes.JSON }
Cluster 集群表
type ClusterGetter ¶
type ClusterGetter struct {
// contains filtered or unexported fields
}
func (ClusterGetter) GetByName ¶
func (g ClusterGetter) GetByName(name string) (agentAddr, mode string, agentcert, agentkey, agentca, kubeconfig []byte, err error)
func (ClusterGetter) GetManagerCluster ¶
func (g ClusterGetter) GetManagerCluster(_ context.Context) (string, error)
func (ClusterGetter) ListCluster ¶
func (g ClusterGetter) ListCluster() []string
type ClusterSimple ¶
func (ClusterSimple) TableName ¶
func (ClusterSimple) TableName() string
type Condition ¶
type Condition struct { Pods []string CPUStatus *CPUMemoryStatus `json:"CPUStatus"` MemoryStatus *CPUMemoryStatus `json:"MemoryStatus"` MaxCPUContainer *Container `json:"-"` MaxMemoryContainer *Container `json:"-"` CPULimitCore float64 `json:"-"` MemoryLimitBytes int64 `json:"-"` }
type Container ¶
type Container struct { ID uint `gorm:"primarykey"` Name string PodName string CPULimitCore float64 MemoryLimitBytes int64 // 限制 CPUUsageCore float64 CPUPercent float64 // 使用率 MemoryUsageBytes float64 MemoryPercent float64 // 使用率 WorkloadID uint Workload *Workload `gorm:"constraint:OnUpdate:CASCADE,OnDelete:SET NULL;"` }
Container 不注册为gorm model
type Environment ¶
type Environment struct { ID uint `gorm:"primarykey"` Name string `gorm:"type:varchar(50);uniqueIndex:uniq_idx_project_env;index:environment_uniq,unique"` Remark string Namespace string `gorm:"type:varchar(50)"` // MetaTpe (dev, prod, test, pub ...) MetaType string DeletePolicy string `sql:"DEFAULT:'delNamespace'"` Creator *User CreatorID uint Cluster *Cluster `gorm:"constraint:OnUpdate:RESTRICT,OnDelete:CASCADE;"` ClusterID uint Project *Project `gorm:"constraint:OnUpdate:RESTRICT,OnDelete:CASCADE;"` ProjectID uint `gorm:"uniqueIndex:uniq_idx_project_env"` VirtualSpaceID *uint VirtualSpace *VirtualSpace `gorm:"constraint:OnUpdate:RESTRICT,OnDelete:SET NULL;"` ResourceQuota datatypes.JSON LimitRange datatypes.JSON Applications []*Application `gorm:"many2many:application_environment_rels;"` Users []*User `gorm:"many2many:environment_user_rels;"` }
type EnvironmentCommon ¶
type EnvironmentCommon struct { ID uint `json:"id,omitempty"` Name string `json:"name,omitempty"` Remark string `json:"remark,omitempty"` Namespace string `json:"namespace,omitempty"` MetaType string `json:"metaType,omitempty"` DeletePolicy string `json:"deletePolicy,omitempty"` Creator *User `json:"creator,omitempty"` Cluster *ClusterSimple `json:"cluster,omitempty"` ResourceQuota datatypes.JSON `json:"resourceQuota,omitempty"` LimitRange datatypes.JSON `json:"limitRange,omitempty"` }
type EnvironmentResource ¶
type EnvironmentResource struct { ID uint `gorm:"primarykey"` CreatedAt time.Time `sql:"DEFAULT:'current_timestamp'"` Cluster string Tenant string Project string Environment string MaxCPUUsageCore float64 MaxMemoryUsageByte float64 MinCPUUsageCore float64 MinMemoryUsageByte float64 AvgCPUUsageCore float64 AvgMemoryUsageByte float64 NetworkReceiveByte float64 NetworkSendByte float64 MaxPVCUsageByte float64 MinPVCUsageByte float64 AvgPVCUsageByte float64 }
EnvironmentResource Project资源使用清单
type EnvironmentUserRels ¶
type EnvironmentUserRels struct { ID uint `gorm:"primarykey"` User *User `json:",omitempty"` Environment *Environment `json:"omitempty" gorm:"constraint:OnUpdate:RESTRICT,OnDelete:CASCADE;"` UserID uint `gorm:"uniqueIndex:uniq_idx_env_user_rel" binding:"required"` EnvironmentID uint `gorm:"uniqueIndex:uniq_idx_env_user_rel" binding:"required"` Role string `binding:"required,eq=reader|eq=operator"` }
EnvironmentUserRels
type LogQueryHistory ¶
type LogQueryHistory struct { ID uint `gorm:"primarykey"` Cluster *Cluster `gorm:"constraint:OnUpdate:RESTRICT,OnDelete:CASCADE;"` ClusterID uint LabelJSON string `gorm:"type:varchar(1024)"` FilterJSON string `gorm:"type:varchar(1024)"` LogQL string `gorm:"type:varchar(1024)"` CreateAt time.Time `sql:"DEFAULT:'current_timestamp'"` Creator *User CreatorID uint }
LogQueryHistory
type LogQuerySnapshot ¶
type LogQuerySnapshot struct { ID uint `gorm:"primarykey"` Cluster *Cluster `gorm:"constraint:OnUpdate:RESTRICT,OnDelete:CASCADE;"` ClusterID uint SnapshotName string `gorm:"type:varchar(128)"` SourceFile string `gorm:"type:varchar(128)"` // line count SnapshotCount int DownloadURL string `gorm:"type:varchar(512)"` StartTime time.Time EndTime time.Time CreateAt time.Time `sql:"DEFAULT:'current_timestamp'"` Creator *User CreatorID uint }
func (*LogQuerySnapshot) BeforeCreate ¶
func (snapshot *LogQuerySnapshot) BeforeCreate(tx *gorm.DB) error
func (*LogQuerySnapshot) BeforeDelete ¶
func (snapshot *LogQuerySnapshot) BeforeDelete(tx *gorm.DB) error
type Message ¶
type Message struct { ID uint `gorm:"primarykey"` MessageType string `gorm:"type:varchar(50);"` Title string `gorm:"type:varchar(255);"` Content datatypes.JSON CreatedAt time.Time `gorm:"index" sql:"DEFAULT:'current_timestamp'"` ToUsers map[uint]struct{} `gorm:"-" json:"-"` IsRead bool `gorm:"-"` // 给前端用,不入库 }
func (*Message) ColumnSlice ¶
func (*Message) ValueSlice ¶
type MetricDashborad ¶
type MetricDashborad struct { ID uint `gorm:"primarykey"` Name string `gorm:"type:varchar(50);uniqueIndex" binding:"required"` Topk int Step string `gorm:"type:varchar(50);"` CreatedAt *time.Time Creator string `gorm:"type:varchar(50);"` // 创建者 Graphs MetricGraphs }
MetricDashborad 监控面板
type MetricGraph ¶
type MetricGraph struct { // graph名 Name string `json:"name"` // 查询范围 Cluster string `json:"cluster,omitempty"` Namespace string `json:"namespace,omitempty"` EnvironmentID string `json:"environment_id,omitempty"` // 查询目标 PromqlGenerator prometheus.PromqlGenerator `json:"promqlGenerator"` }
type MetricGraphs ¶
type MetricGraphs []MetricGraph
func (MetricGraphs) GormDataType ¶
func (g MetricGraphs) GormDataType() string
func (*MetricGraphs) Scan ¶
func (g *MetricGraphs) Scan(src interface{}) error
实现几个自定义数据类型的接口 https://gorm.io/zh_CN/docs/data_types.html
type OnlineConfig ¶
type OnlineConfig struct { Name string `gorm:"type:varchar(50);primaryKey" binding:"required" json:"name"` // 配置名 Content datatypes.JSON `json:"content"` // 配置内容 CreatedAt *time.Time UpdatedAt *time.Time }
OnlineConfig 系统配置
type Project ¶
type Project struct { ID uint `gorm:"primarykey"` CreatedAt time.Time `sql:"DEFAULT:'current_timestamp'"` Name string `gorm:"type:varchar(50);uniqueIndex:uniq_idx_tenant_project_name"` ProjectAlias string `gorm:"type:varchar(50)"` Remark string ResourceQuota datatypes.JSON Applications []*Application Environments []*Environment Registries []*Registry Users []*User `gorm:"many2many:project_user_rels;"` Tenant *Tenant `gorm:"constraint:OnUpdate:RESTRICT,OnDelete:CASCADE;"` TenantID uint `gorm:"uniqueIndex:uniq_idx_tenant_project_name"` }
type ProjectCommon ¶
type ProjectCommon struct { ID uint `json:"id,omitempty"` CreatedAt time.Time `json:"createdAt,omitempty"` Name string `json:"name,omitempty"` ProjectAlias string `json:"projectAlias,omitempty"` Remark string `json:"remark,omitempty"` ResourceQuota datatypes.JSON `json:"resourceQuota,omitempty"` }
func (ProjectCommon) TableName ¶
func (ProjectCommon) TableName() string
type ProjectUserRels ¶
type ProjectUserRels struct { ID uint `gorm:"primarykey"` User *User `json:",omitempty" gorm:"constraint:OnUpdate:RESTRICT,OnDelete:CASCADE;"` Project *Project `json:",omitempty" gorm:"constraint:OnUpdate:RESTRICT,OnDelete:CASCADE;"` UserID uint `gorm:"uniqueIndex:uniq_idx_project_user_rel" binding:"required"` ProjectID uint `gorm:"uniqueIndex:uniq_idx_project_user_rel" binding:"required"` Role string `gorm:"type:varchar(30)" binding:"required,eq=admin|eq=test|eq=dev|eq=ops"` }
type Registry ¶
type Registry struct { ID uint `gorm:"primarykey"` Name string `gorm:"type:varchar(50);uniqueIndex:uniq_idx_project_registry;"` Address string `gorm:"type:varchar(512)"` Username string `gorm:"type:varchar(50)"` Password string `gorm:"type:varchar(512)"` Creator *User CreatorID uint UpdateTime time.Time Project *Project `gorm:"constraint:OnUpdate:RESTRICT,OnDelete:CASCADE;"` ProjectID uint `grom:"uniqueIndex:uniq_idx_project_registry;"` IsDefault bool }
Registry image registry
type SystemRole ¶
type Tenant ¶
type Tenant struct { ID uint `gorm:"primarykey"` Name string `gorm:"type:varchar(50);uniqueIndex"` Remark string IsActive bool CreatedAt time.Time `sql:"DEFAULT:'current_timestamp'"` UpdatedAt time.Time `sql:"DEFAULT:'current_timestamp'"` ResourceQuotas []*TenantResourceQuota Users []*User `gorm:"many2many:tenant_user_rels;"` Projects []*Project }
type TenantCommon ¶
type TenantCommon struct { ID uint `json:"id,omitempty"` Name string `json:"name,omitempty"` Remark string `json:"remark,omitempty"` IsActive bool `json:"isActive,omitempty"` CreatedAt time.Time `json:"createdAt,omitempty"` UpdatedAt time.Time `json:"updatedAt,omitempty"` }
func (TenantCommon) TableName ¶
func (TenantCommon) TableName() string
type TenantResourceQuota ¶
type TenantResourceQuota struct { ID uint Content datatypes.JSON TenantID uint `gorm:"uniqueIndex:uniq_tenant_cluster" binding:"required"` ClusterID uint `gorm:"uniqueIndex:uniq_tenant_cluster" binding:"required"` Tenant *Tenant `gorm:"constraint:OnUpdate:RESTRICT,OnDelete:CASCADE;"` Cluster *Cluster `gorm:"constraint:OnUpdate:RESTRICT,OnDelete:CASCADE;"` }
type TenantResourceQuotaApply ¶
type TenantResourceQuotaApply struct { ID uint Content datatypes.JSON Status string `gorm:"type:varchar(30);"` Username string `gorm:"type:varchar(255);"` UpdatedAt time.Time `sql:"DEFAULT:'current_timestamp'"` CreateAt time.Time `sql:"DEFAULT:'current_timestamp'"` Creator *User CreatorID uint TenantID uint `gorm:"uniqueIndex:uniq_tenant_cluster_rq" binding:"required"` ClusterID uint `gorm:"uniqueIndex:uniq_tenant_cluster_rq" binding:"required"` Tenant *Tenant `gorm:"constraint:OnUpdate:RESTRICT,OnDelete:CASCADE;"` Cluster *Cluster `gorm:"constraint:OnUpdate:RESTRICT,OnDelete:CASCADE;"` }
TenantResourceQuotaApply 集群资源申请
type TenantSimple ¶
type TenantSimple struct { ID uint `json:"id,omitempty"` Name string `validate:"required" json:"name,omitempty"` Remark string `validate:"required" json:"remark,omitempty"` }
func (TenantSimple) TableName ¶
func (TenantSimple) TableName() string
type TenantUserRels ¶
type TenantUserRels struct { ID uint `gorm:"primarykey"` Tenant *Tenant `json:",omitempty" gorm:"constraint:OnUpdate:RESTRICT,OnDelete:CASCADE;"` TenantID uint `gorm:"uniqueIndex:uniq_idx_tenant_user_rel"` User *User `json:",omitempty" gorm:"constraint:OnUpdate:RESTRICT,OnDelete:CASCADE;"` UserID uint `gorm:"uniqueIndex:uniq_idx_tenant_user_rel"` Role string `gorm:"type:varchar(30)" binding:"required"` }
type User ¶
type User struct { ID uint `gorm:"primarykey"` Username string `gorm:"type:varchar(50);uniqueIndex" binding:"required"` Email string `gorm:"type:varchar(50)" binding:"required"` Phone string `gorm:"type:varchar(255)" binding:"required"` Password string `gorm:"type:varchar(255)" json:"-"` IsActive *bool `sql:"DEFAULT:true"` Source string `gorm:"type:varchar(255)" json:"-"` CreatedAt *time.Time `sql:"DEFAULT:'current_timestamp'"` LastLoginAt *time.Time `sql:"DEFAULT:'current_timestamp'"` Tenants []*Tenant `gorm:"many2many:tenant_user_rels;"` SystemRole *SystemRole SystemRoleID uint }
func (*User) UnmarshalBinary ¶
type UserCommon ¶
type UserCommon struct { ID uint `json:"id,omitempty"` Username string `json:"username,omitempty"` Email string `json:"email,omitempty"` Phone string `json:"phone,omitempty"` IsActive *bool `json:"isActive,omitempty"` CreatedAt *time.Time `json:"createdAt,omitempty"` Source string `gorm:"type:varchar(255)" json:"-"` LastLoginAt *time.Time `json:"lastLoginAt,omitempty"` SystemRole *SystemRole `json:"systemRole,omitempty"` SystemRoleID uint `json:"systemRoleID,omitempty"` }
func (*UserCommon) GetEmail ¶
func (u *UserCommon) GetEmail() string
func (*UserCommon) GetID ¶
func (u *UserCommon) GetID() uint
func (*UserCommon) GetSource ¶
func (u *UserCommon) GetSource() string
func (*UserCommon) GetSystemRoleID ¶
func (u *UserCommon) GetSystemRoleID() uint
func (*UserCommon) GetUserKind ¶
func (u *UserCommon) GetUserKind() string
func (*UserCommon) GetUsername ¶
func (u *UserCommon) GetUsername() string
func (UserCommon) MarshalBinary ¶
func (u UserCommon) MarshalBinary() ([]byte, error)
func (*UserCommon) SetLastLogin ¶
func (u *UserCommon) SetLastLogin(t *time.Time)
func (UserCommon) TableName ¶
func (UserCommon) TableName() string
func (*UserCommon) UnmarshalBinary ¶
func (u *UserCommon) UnmarshalBinary(data []byte) error
type UserCreate ¶
type UserCreate struct { ID uint `json:"id,omitempty"` Username string `json:"username,omitempty"` Email string `json:"email,omitempty"` Password string `json:"password"` }
func (UserCreate) TableName ¶
func (UserCreate) TableName() string
type UserMessageStatus ¶
type UserMessageStatus struct { ID uint UserID uint User *User `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"` MessageID *uint Message *Message `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"` IsRead bool `gorm:"index"` AlertMessageID *uint AlertMessage *AlertMessage `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"` }
func (*UserMessageStatus) ColumnSlice ¶
func (status *UserMessageStatus) ColumnSlice() []string
func (*UserMessageStatus) ValueSlice ¶
func (status *UserMessageStatus) ValueSlice() []string
type UserSimple ¶
type UserSimple struct { ID uint `json:"id,omitempty"` Username string `json:"username,omitempty"` Email string `json:"email,omitempty"` Role string `json:"role,omitempty"` }
func (UserSimple) TableName ¶
func (UserSimple) TableName() string
type VirtualDomain ¶
type VirtualSpace ¶
type VirtualSpace struct { ID uint `gorm:"primarykey"` Name string `gorm:"type:varchar(50);uniqueIndex"` CreatedAt time.Time `sql:"DEFAULT:'current_timestamp'"` UpdatedAt time.Time `sql:"DEFAULT:'current_timestamp'"` IsActive bool CreatedBy string Users []*User `gorm:"many2many:virtual_space_user_rels;"` Environments []*Environment }
type VirtualSpaceUserRels ¶
type VirtualSpaceUserRels struct { ID uint `gorm:"primarykey"` VirtualSpaceID uint `gorm:"uniqueIndex:uniq_idx_virtual_space_user_rel"` VirtualSpace *VirtualSpace `json:",omitempty" gorm:"constraint:OnUpdate:RESTRICT,OnDelete:CASCADE;"` UserID uint `gorm:"uniqueIndex:uniq_idx_virtual_space_user_rel"` User *User `json:",omitempty" gorm:"constraint:OnUpdate:RESTRICT,OnDelete:CASCADE;"` // 虚拟空间角色(管理员admin, 普通用户normal) Role string `gorm:"type:varchar(30)" binding:"required,eq=admin|eq=normal"` }
type Workload ¶
type Workload struct { ID uint `gorm:"primarykey"` CreatedAt time.Time `sql:"DEFAULT:'current_timestamp'"` ClusterName string Namespace string Type string Name string CPULimitStdvar float64 MemoryLimitStdvar float64 Containers []*Container `gorm:"constraint:OnUpdate:CASCADE,OnDelete:SET NULL;" json:"-"` *Notice `gorm:"-"` }
Workload workload资源使用清单
Source Files ¶
- base.go
- model_alert.go
- model_application.go
- model_auditlogs.go
- model_auth.go
- model_chartrepo.go
- model_cluster.go
- model_config.go
- model_environment.go
- model_environment_resource.go
- model_log.go
- model_message.go
- model_metric_dashboard.go
- model_project.go
- model_registry.go
- model_systemrole.go
- model_tenant.go
- model_user.go
- model_virtual_domain.go
- model_virtual_space.go
- model_workload.go
Click to show internal directories.
Click to hide internal directories.