Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Cron ¶
type Cron struct {
// Primary ID auto incremented by underlying database.
ID uint64 `gorm:"type:bigint(20) NOT NULL AUTO_INCREMENT;column:id;primaryKey" json:"id"`
// Metadata we concerned aggregated from job object.
Name string `gorm:"type:varchar(256);column:name" json:"name"`
Namespace string `gorm:"type:varchar(256);column:namespace" json:"namespace"`
// Kubernetes UID
UID string `gorm:"type:varchar(256);column:uid" json:"uid"`
// Kind of this job: TFJob, PytorchJob...
Kind string `gorm:"type:varchar(32);column:kind" json:"kind"`
// RegionID indicates the physical region(IDC) this job located in, reserved for
// jobs running in across-region-clusters.
Status string `gorm:"type:varchar(32);column:status" json:"status"`
RegionID *string `gorm:"type:varchar(256);column:region_id" json:"region_id,omitempty"`
ClusterID *string `gorm:"type:varchar(256);column:cluster_id" json:"cluster_id,omitempty"`
Schedule string `gorm:"type:varchar(32);column:schedule" json:"schedule"`
ConcurrencyPolicy string `gorm:"type:varchar(32);column:concurrency_policy" json:"concurrency_policy"`
Active string `gorm:"type:text;column:active" json:"active"`
History string `gorm:"type:text;column:history" json:"history"`
HistoryLimit *int32 `gorm:"type:integer(32);column:history_limit" json:"history_limit,omitempty"`
IsInK8s int `gorm:"type:tinyint(4);column:is_in_k8s" json:"is_in_k8s"`
IsDeleted *int `gorm:"type:tinyint(4);column:is_deleted;default:0" json:"is_deleted,omitempty"`
Suspend *int8 `gorm:"type:tinyint(4);column:suspend" json:"suspend,omitempty"`
Deadline *time.Time `gorm:"type:datetime;column:deadline" json:"deadline,omitempty"`
// if created by RAM account, user is aliyun accountid, else user is username
User *string `gorm:"type:varchar(128);column:user_id" json:"user_id,omitempty"`
LastScheduleTime *time.Time `gorm:"type:datetime;column:last_schedule_time" json:"last_schedule_time,omitempty"`
GmtCreated time.Time `gorm:"type:datetime;column:gmt_created" json:"gmt_created"`
GmtModified time.Time `gorm:"type:datetime;column:gmt_modified" json:"gmt_modified"`
}
func (*Cron) BeforeCreate ¶
BeforeCreate update gmt_modified timestamp.
func (*Cron) BeforeUpdate ¶
BeforeUpdate update gmt_modified timestamp.
type EvaluateJob ¶
type EvaluateJob struct {
// Primary ID auto incremented by underlying database.
ID uint64 `gorm:"type:bigint(20) NOT NULL AUTO_INCREMENT;column:id;primaryKey" json:"id"`
JobID string `gorm:"type:varchar(50) NOT NULL;column:job_id" json:"job_id"`
// Metadata we concerned aggregated from job object.
Name string `gorm:"type:varchar(256);column:name" json:"name"`
Namespace string `gorm:"type:varchar(256);column:namespace" json:"namespace"`
// Kubernetes UID
UID string `gorm:"type:varchar(256);column:uid" json:"uid"`
// if created by RAM account, user is aliyun accountid, else user is username
User *string `gorm:"type:varchar(128);column:user_id" json:"user_id,omitempty"`
// RegionID indicates the physical region(IDC) this job located in, reserved for
// jobs running in across-region-clusters.
//ModelID uint64 `gorm:"type:bigint(20);column:model_id" json:"model_id"`
ModelName string `gorm:"type:varchar(256);column:model_name" json:"model_name"`
ModelVersion string `gorm:"type:varchar(256);column:model_version" json:"model_version"`
Status apiv1.JobConditionType `gorm:"type:varchar(32);column:status" json:"status"`
Image string `gorm:"type:varchar(256);column:image" json:"image"`
DatasetPath string `gorm:"type:varchar(256);column:dataset_path" json:"dataset_path"`
Code string `gorm:"type:text;column:code" json:"code"`
Command string `gorm:"type:varchar(256);column:command" json:"command"`
Metrics string `gorm:"type:text;column:metrics" json:"metrics"`
IsDeleted int `gorm:"type:tinyint(4);column:is_deleted;default:0" json:"is_deleted,omitempty"`
ReportPath string `gorm:"type:varchar(256);column:report_path" json:"report_path"`
GmtCreated time.Time `gorm:"type:datetime;column:gmt_created" json:"gmt_created"`
GmtModified time.Time `gorm:"type:datetime;column:gmt_modified" json:"gmt_modified"`
}
func (*EvaluateJob) BeforeCreate ¶
func (evaluateJob *EvaluateJob) BeforeCreate(scope *gorm.Scope) error
BeforeCreate update gmt_modified timestamp.
func (*EvaluateJob) BeforeUpdate ¶
func (evaluateJob *EvaluateJob) BeforeUpdate(scope *gorm.Scope) error
BeforeUpdate update gmt_modified timestamp.
func (EvaluateJob) TableName ¶
func (evaluateJob EvaluateJob) TableName() string
type Event ¶
type Event struct {
// Name of this event.
Name string `gorm:"type:varchar(128);column:name" json:"name"`
// Kind of object involved by event.
Kind string `gorm:"type:varchar(32);column:kind" json:"kind"`
// Type of this event.
Type string `gorm:"type:varchar(32);column:type" json:"type"`
// Involved Object Namespace.
ObjNamespace string `gorm:"type:varchar(64);column:obj_namespace" json:"obj_namespace"`
// Involved Object Name.
ObjName string `gorm:"type:varchar(64);column:obj_name" json:"obj_name"`
// Involved Object UID.
ObjUID string `gorm:"type:varchar(64);column:obj_uid" json:"obj_uid"`
// Reason(short, machine understandable string) of this event.
Reason string `gorm:"type:varchar(128);column:reason" json:"reason"`
// Message(long, human understandable description) of this event.
Message string `gorm:"type:text;column:message" json:"message"`
// Number of times this event has occurred.
Count int32 `gorm:"type:integer(32);column:reason" json:"count"`
// Region indicates the physical region(IDC) this job located in.
Region *string `gorm:"type:varchar(64);column:region" json:"region,omitempty"`
// The time at which the event was first recorded.
FirstTimestamp time.Time `gorm:"type:datetime;column:first_timestamp" json:"first_timestamp"`
// The time at which the most recent occurrence of this event was recorded.
LastTimestamp time.Time `gorm:"type:datetime;column:last_timestamp" json:"last_timestamp"`
}
Event contains fields collected from original Event object, they will be persisted by storage backend.
type Job ¶
type Job struct {
// Primary ID auto incremented by underlying database.
ID uint64 `gorm:"type:bigint(20) NOT NULL AUTO_INCREMENT;column:id;primaryKey" json:"id"`
// Metadata we concerned aggregated from job object.
Name string `gorm:"type:varchar(256);column:name" json:"name"`
Namespace string `gorm:"type:varchar(256);column:namespace" json:"namespace"`
DisplayName string `gorm:"type:varchar(256);column:display_name" json:"display_name"`
// Kubernetes UID
UID string `gorm:"type:varchar(256);column:uid" json:"uid"`
Status apiv1.JobConditionType `gorm:"type:varchar(32);column:status" json:"status"`
// Kind of this job: TFJob, PytorchJob...
Kind string `gorm:"type:varchar(32);column:kind" json:"kind"`
JobJson string `gorm:"type:text;column:job_json" json:"job_json"`
// RegionID indicates the physical region(IDC) this job located in, reserved for
// jobs running in across-region-clusters.
RegionID *string `gorm:"type:varchar(256);column:region_id" json:"region_id,omitempty"`
ClusterID *string `gorm:"type:varchar(256);column:cluster_id" json:"cluster_id,omitempty"`
// Fields reserved for multi-tenancy job management scenarios, indicating
// which tenant this job belongs to and who's the owner(user).
Tenant *string `gorm:"type:varchar(128);column:tenant_id" json:"tenant_id,omitempty"`
Group *string `gorm:"type:varchar(128);column:group_id" json:"group_id,omitempty"`
// if created by RAM account, user is aliyun accountid, else user is username
User *string `gorm:"type:varchar(128);column:user_id" json:"user_id,omitempty"`
CreatedBy *string `gorm:"type:varchar(64);column:created_by" json:"created_by,omitempty"`
ReasonCode *string `gorm:"type:varchar(128);column:reason_code" json:"reason_code"`
Reason *string `gorm:"type:varchar(1024);column:reason" json:"reason"`
EtcdVersion string `gorm:"type:varchar(64);column:etcd_version" json:"etcd_version"`
IsInK8s int `gorm:"type:tinyint(4);column:is_in_k8s" json:"is_in_k8s"`
// IsDeleted indicates that whether this job has been deleted or not.
IsDeleted *int `gorm:"type:tinyint(4);column:is_deleted;default:0" json:"is_deleted,omitempty"`
EnableGPUTopologyAware *int8 `gorm:"type:tinyint(4);column:is_enable_gpu_topo_aware" json:"is_enable_gpu_topo_aware"`
// Optional remark text reserved.
Extended *string `gorm:"type:text;column:extended" json:"extended,omitempty"`
// Timestamps of different job phases and status transitions.
GmtCreated time.Time `gorm:"type:datetime;column:gmt_created" json:"gmt_created"`
GmtModified time.Time `gorm:"type:datetime;column:gmt_modified" json:"gmt_modified"`
GmtJobSubmitted time.Time `gorm:"type:datetime;column:gmt_job_submitted" json:"gmt_job_submitted"`
GmtJobStopped *time.Time `gorm:"type:datetime;column:gmt_job_stopped" json:"gmt_job_stopped,omitempty"`
GmtJobRunning *time.Time `gorm:"type:datetime;column:gmt_job_running" json:"gmt_job_running,omitempty"`
GmtJobFinished *time.Time `gorm:"type:datetime;column:gmt_job_finished" json:"gmt_job_finished,omitempty"`
// Resources this job requested, including replicas and resources of each type,
// it's formatted as follows:
// {
// "PS": {
// "replicas": 1,
// "resources": {"cpu":2, "memory": "10Gi"}
// },
// "Worker": {
// "replicas": 2,
// "resources": {"cpu":2, "memory": "10Gi"}
// }
// }
Resources string `gorm:"type:text;column:resources" json:"resources"`
// JobConfig indicates this job's basic config
// it's formatted as follows:
// {
// "code_bindings": {
// "source": "https://code.aliyun.com/xiaozhou/tensorflow-sample-code.git",
// "branch": "master"
// },
// "data_bindings": [
// "pai-deeplearning-oss",
// "pai-deeplearning-nas"
// ],
// "commands": [
// "/bin/sh",
// "-c",
// "python tensorflow-sample-code/tfjob/docker/mnist/main.py --max_steps=10000 --data_dir=tensorflow-sample-code/data/"
// ]
// }
JobConfig string `gorm:"type:text;column:job_config" json:"job_config,omitempty"`
}
Job contains fields collected from original Job object and extra info that we concerned about, they will be persisted by storage backend.
func (*Job) BeforeCreate ¶
BeforeUpdate update gmt_modified timestamp.
func (*Job) BeforeUpdate ¶
BeforeUpdate update gmt_modified timestamp.
type Model ¶
type Model struct {
//ID uint64 `gorm:"type:bigint(20) NOT NULL AUTO_INCREMENT;column:id;key" json:"id"`
ID uint64 `gorm:"type:bigint(20) NOT NULL AUTO_INCREMENT;column:id;primaryKey" json:"id"`
Name string `gorm:"type:varchar(256);column:model_name" json:"model_name"`
Version string `gorm:"type:varchar(256);column:model_version" json:"model_version"`
OSSPath string `gorm:"type:varchar(256);column:oss_path" json:"oss_path"`
JobID string `gorm:"type:varchar(256);column:job_id" json:"job_id"`
// if created by RAM account, user is aliyun accountid, else user is username
User *string `gorm:"type:varchar(128);column:user_id" json:"user_id,omitempty"`
GmtCreated time.Time `gorm:"type:datetime;column:gmt_created" json:"gmt_created"`
}
func (*Model) BeforeCreate ¶
BeforeCreate update gmt_modified timestamp.
func (*Model) BeforeUpdate ¶
BeforeUpdate update gmt_modified timestamp.
type Notebook ¶
type Notebook struct {
ID uint64 `gorm:"type:bigint(20) NOT NULL AUTO_INCREMENT;column:id;primaryKey" json:"id"`
Name string `gorm:"type:varchar(256);column:name" json:"name"`
Namespace string `gorm:"type:varchar(256);column:namespace" json:"namespace"`
Image string `gorm:"type:varchar(256);column:image" json:"image"`
Volumes string `gorm:"type:text;column:volumes" json:"volumes"`
Cpu string `gorm:"type:varchar(256);column:cpu" json:"cpu"`
Gpu string `gorm:"type:varchar(256);column:gpu" json:"gpu"`
Memory string `gorm:"type:varchar(256);column:memory" json:"memory"`
UserName string `gorm:"type:varchar(256);column:user_name" json:"user_name"`
// if created by RAM account, user is aliyun accountid, else user is username
User *string `gorm:"type:varchar(128);column:user_id" json:"user_id,omitempty"`
Token string `gorm:"type:varchar(256);column:token" json:"token"`
Status string `gorm:"type:varchar(256);column:status" json:"status"`
ImagePullSecrets string `gorm:"type:text;column:image_pull_secrets" json:"image_pull_secrets"`
GmtCreated time.Time `gorm:"type:datetime;column:gmt_created" json:"gmt_created"`
}
func (*Notebook) BeforeCreate ¶
BeforeCreate update gmt_modified timestamp.
type Pod ¶
type Pod struct {
// Primary ID auto incremented by underlying database.
ID uint64 `gorm:"type:bigint(20) NOT NULL AUTO_INCREMENT;column:id;primaryKey" json:"id"`
// Metadata we concerned aggregated from pod object.
Name string `gorm:"type:varchar(256);column:name" json:"name"`
Namespace string `gorm:"type:varchar(256);column:namespace" json:"namespace"`
// Kubernetes UID
UID string `gorm:"type:varchar(256);column:uid" json:"uid"`
EtcdVersion string `gorm:"type:varchar(64);column:etcd_version" json:"etcd_version"`
Status v1.PodPhase `gorm:"type:varchar(32);column:status" json:"status"`
Image string `gorm:"type:varchar(256);column:image" json:"image"`
GPU int `gorm:"type:tinyint(4);column:gpu" json:"gpu"`
// Job UID of this pod controlled by.
JobUID string `gorm:"type:varchar(256);column:job_uid" json:"job_uid"`
// Job name of this pod controlled by.
JobName string `gorm:"type:varchar(256);column:job_name" json:"job_name"`
// Replica type of this pod figured in training job.
ReplicaType string `gorm:"type:varchar(32);column:replica_type" json:"replica_type"`
PodJson string `gorm:"type:text;column:pod_json" json:"pod_json"`
// IP information allocated for this pod.
HostIP *string `gorm:"type:varchar(64);column:host_ip" json:"host_ip,omitempty"`
PodIP *string `gorm:"type:varchar(64);column:pod_ip" json:"pod_ip,omitempty"`
// Optional remark text reserved.
Extended *string `gorm:"type:varchar(4096);column:extended" json:"extended,omitempty"`
// Timestamps of different pod phases and status transitions.
GmtCreated time.Time `gorm:"type:datetime;column:gmt_created" json:"gmt_created"`
GmtModified time.Time `gorm:"type:datetime;column:gmt_modified" json:"gmt_modified"`
GmtPodRunning *time.Time `gorm:"type:datetime;column:gmt_pod_running" json:"gmt_pod_running,omitempty"`
GmtPodFinished *time.Time `gorm:"type:datetime;column:gmt_pod_finished" json:"gmt_pod_finished,omitempty"`
}
Pod contains fields collected from original Pod object and extra info that we concerned about, they will be persisted by storage backend.
func (*Pod) BeforeCreate ¶
BeforeCreate update gmt_modified timestamp.
func (*Pod) BeforeUpdate ¶
BeforeUpdate update gmt_modified timestamp.
type SubmitEvaluateJobInfo ¶
type SubmitEvaluateJobInfo struct {
Name string `json:"name"`
Namespace string `json:"namespace"`
Image string `json:"image"`
ModelPath string `json:"modelPath"`
ModelName string `json:"modelName"`
ModelVersion string `json:"modelVersion"`
DatasetPath string `json:"datasetPath"`
MetricsPath string `json:"metricsPath"`
Command []string `json:"command"`
DataSources map[string]string `json:"dataSources"`
Envs map[string]string `json:"envs"`
ImagePullSecrets []string `json:"imagePullSecrets"`
Annotations map[string]string `json:"annotations"`
WorkingDir string `json:"workingDir"`
CPU string `json:"cpu"`
Memory string `json:"memory"`
GPU int `json:"gpu"`
CodeType string `json:"codeType"`
CodeSource string `json:"codeSource"`
CodeBranch string `json:"codeBranch"`
CodeDestPath string `json:"codeDestPath"`
CodeUser string `json:"codeUser"`
CodePassword string `json:"codePassword"`
}
type SubmitJobInfo ¶
type SubmitJobInfo struct {
Name string `json:"name"`
Namespace string `json:"namespace"`
Kind string `json:"kind"`
Annotations map[string]string `json:"annotations"`
Labels map[string]string `json:"labels"`
NodeSelectors map[string]string `json:"nodeSelectors"`
Toleration map[string]TolerationData `json:"tolerates"`
Shell string `json:"shell"`
Command []string `json:"command"`
ImagePullSecrets []string `json:"imagePullSecrets"`
WorkingDir string `json:"workingDir"`
ChiefImage string `json:"chiefImage"`
ChiefCPU string `json:"chiefCPU"`
ChiefMemory string `json:"chiefMemory"`
ChiefGPU int `json:"chiefGPU"`
PsCount int32 `json:"psCount"`
PsImage string `json:"psImage"`
PsCPU string `json:"psCPU"`
PsMemory string `json:"psMemory"`
PsGPU int `json:"psGPU"`
WorkerCount int32 `json:"workerCount"`
WorkerImage string `json:"workerImage"`
WorkerCPU string `json:"workerCPU"`
WorkerMemory string `json:"workerMemory"`
WorkerGPU int `json:"workerGPU"`
EvaluatorImage string `json:"evaluatorImage"`
EvaluatorCPU string `json:"evaluatorCPU"`
EvaluatorMemory string `json:"evaluatorMemory"`
EvaluatorGPU int `json:"evaluatorGPU"`
Devices map[string]string `json:"devices"`
Volumes map[string]string `json:"volumes"`
CodeType string `json:"codeType"`
CodeSource string `json:"codeSource"`
CodeBranch string `json:"codeBranch"`
CodeDestPath string `json:"codeDestPath"`
CodeUser string `json:"codeUser"`
CodePassword string `json:"codePassword"`
EnableTensorboard bool `json:"enableTensorboard"`
LogDir string `json:"logDir"`
TensorboardHost string `json:"tensorboardHost"`
EnableCron bool `json:"enableCron"`
Schedule string `json:"schedule"`
ConcurrencyPolicy string `json:"concurrencyPolicy"`
Deadline string `json:"deadline"`
HistoryLimit int `json:"historyLimit"`
TTLSecondsAfterFinished int32 `json:"ttlSecondsAfterFinished"`
}