Documentation
¶
Index ¶
- Constants
- type AppFilterOptions
- type Application
- type Compose
- type Constraint
- type Container
- type DeployPolicy
- type Docker
- type DockerService
- type FrameworkInfo
- type Gateway
- type Health
- type HealthCheck
- type KillPolicy
- type Leader
- type Parameter
- type PortMapping
- type Proxy
- type Resource
- type ScaleBody
- type ServiceGroup
- type Stats
- type Task
- type TaskConfig
- func (c *TaskConfig) BuildCommand() *mesosproto.CommandInfo
- func (c *TaskConfig) BuildContainer(offer *mesosproto.Offer) *mesosproto.ContainerInfo
- func (c *TaskConfig) BuildHealthCheck() *mesosproto.HealthCheck
- func (c *TaskConfig) BuildKillPolicy() *mesosproto.KillPolicy
- func (c *TaskConfig) BuildLabels(name string) *mesosproto.Labels
- func (c *TaskConfig) BuildResources(offer *mesosproto.Offer) []*mesosproto.Resource
- type TaskEvent
- type TaskHistory
- type TaskList
- type TaskSorter
- type UpdateBody
- type UpdatePolicy
- type UpdateWeightBody
- type UpdateWeightsBody
- type Version
- type VersionList
- type Volume
- type YamlExtra
Constants ¶
View Source
const ( OpStatusNoop = "noop" OpStatusCreating = "creating" OpStatusScaling = "scaling" OpStatusUpdating = "updating" OpStatusDeleting = "deleting" OpStatusRollback = "rollbacking" )
View Source
const ( EventTypeTaskHealthy = "task_healthy" EventTypeTaskWeightChange = "task_weight_change" EventTypeTaskUnhealthy = "task_unhealthy" )
View Source
const ( TaskHealthyUnset = "unset" TaskHealthy = "healty" TaskUnHealthy = "unhealthy" )
View Source
const MaxDeployStep = 100
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AppFilterOptions ¶
type Application ¶
type Application struct {
ID string `json:"id"`
Name string `json:"name"`
Alias string `json:"alias"`
RunAs string `json:"runAs"`
Priority int `json:"priority"`
Cluster string `json:"cluster"`
OpStatus string `json:"operationStatus"`
Tasks TaskList `json:"tasks"`
Version []string `json:"currentVersion"`
Versions VersionList `json:"versions"`
Status string `json:"status"`
Health *Health `json:"health"`
CreatedAt time.Time `json:"created"`
UpdatedAt time.Time `json:"updated"`
}
type Compose ¶
type Compose struct {
ID string `json:"id"`
Name string `json:"name"`
DisplayName string `json:"display_name"`
Desc string `json:"desc"`
Status string `json:"status"` // op status
ErrMsg string `json:"errmsg"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
// request settings
ServiceGroup ServiceGroup `json:"service_group"`
YAMLRaw string `json:"yaml_raw"`
YAMLEnv map[string]string `json:"yaml_env"`
YAMLExtra map[string]*YamlExtra `json:"yaml_extra"`
}
save to -> keyCompose
func (*Compose) RequireConvert ¶
func (*Compose) ToServiceGroup ¶
func (c *Compose) ToServiceGroup() (ServiceGroup, error)
type Constraint ¶
type DeployPolicy ¶
type Docker ¶
type Docker struct {
ForcePullImage bool `json:"forcePullImage,omitempty"`
Image string `json:"image"`
Network string `json:"network,omitempty"`
Parameters []*Parameter `json:"parameters,omitempty"`
PortMappings []*PortMapping `json:"portMappings,omitempty"`
Privileged bool `json:"privileged,omitempty"`
}
type DockerService ¶
type DockerService struct {
Name string `json:"name"`
Service *types.ServiceConfig `json:"service"`
Network *types.NetworkConfig `json:"network"`
Volume *types.VolumeConfig `json:"volume"`
Extra *YamlExtra `json:"extra"`
}
func (*DockerService) ToVersion ¶
func (s *DockerService) ToVersion(cName, cluster string) (*Version, error)
func (*DockerService) Valid ¶
func (s *DockerService) Valid() error
type FrameworkInfo ¶
type FrameworkInfo struct {
ID string
}
type HealthCheck ¶
type HealthCheck struct {
Protocol string `json:"protocol,omitempty"`
PortName string `json:"portName,omitempty"`
Path string `json:"path,omitempty"`
Command string `json:"cmd, omitempty"`
ConsecutiveFailures uint32 `json:"consecutiveFailures,omitempty"`
GracePeriodSeconds float64 `json:"gracePeriodSeconds,omitempty"`
IntervalSeconds float64 `json:"intervalSeconds,omitempty"`
TimeoutSeconds float64 `json:"timeoutSeconds,omitempty"`
DelaySeconds float64 `json:"delaySeconds,omitempty"`
}
type KillPolicy ¶
type KillPolicy struct {
Duration int64 `json:"duration,omitempty"`
}
type PortMapping ¶
type ServiceGroup ¶
type ServiceGroup map[string]*DockerService
func (ServiceGroup) PrioritySort ¶
func (sg ServiceGroup) PrioritySort() ([]string, error)
func (ServiceGroup) Valid ¶
func (sg ServiceGroup) Valid() error
type Stats ¶
type Stats struct {
ClusterID string `json:"clusterID"`
AppCount int `json:"appCount"`
TaskCount int `json:"taskCount"`
Created float64 `json:"created"`
Master string `json:"master"`
Slaves string `json:"slaves"`
Attributes []map[string]interface{} `json:"attributes"`
TotalCpu float64 `json:"totalCpu"`
TotalMem float64 `json:"totalMem"`
TotalDisk float64 `json:"totalDisk"`
CpuTotalOffered float64 `json:"cpuTotalOffered"`
MemTotalOffered float64 `json:"memTotalOffered"`
DiskTotalOffered float64 `json:"diskTotalOffered"`
CpuTotalUsed float64 `json:"cpuTotalUsed"`
MemTotalUsed float64 `json:"memTotalUsed"`
DiskTotalUsed float64 `json:"diskTotalUsed"`
AppStats map[string]int `json:"appStats,omitempty"`
}
type Task ¶
type Task struct {
ID string `json:"id"`
Name string `json:"name"`
IP string `json:"ip"`
Port uint64 `json:"port"`
Healthy string `json:"healthy"`
Weight float64 `json:"weight"`
AgentId string `json:"agentId"`
Version string `json:"version"`
Status string `json:"status"`
ErrMsg string `json:"errmsg"`
OpStatus string `json:"opstatus"`
Created time.Time `json:"created"`
Updated time.Time `json:"updated"`
}
type TaskConfig ¶
type TaskConfig struct {
CPUs float64 `json:"cpus"`
Mem float64 `json:"mem"`
Disk float64 `json:"disk"`
IP string `json:"ip"`
Port uint64 `json:"ports"`
Image string `json:"image"`
Command string `json:"cmd"`
Privileged bool `json:"privileged"`
ForcePullImage bool `json:"forcePullImage"`
Volumes []*Volume `json:"volumes"`
PortMappings []*PortMapping `json:"portmappings"`
Network string `json:"network"`
Parameters []*Parameter `json:"parameters"`
HealthCheck *HealthCheck `json:"healthCheck"`
KillPolicy *KillPolicy `json:"killPolicy"`
Labels map[string]string `json:"labels"`
URIs []string `json:"uris"`
Env map[string]string `json:"env"`
Constraints []*Constraint `json:"constraints"`
Proxy *Proxy `json:"proxy"`
}
func NewTaskConfig ¶
func NewTaskConfig(spec *Version) *TaskConfig
func (*TaskConfig) BuildCommand ¶
func (c *TaskConfig) BuildCommand() *mesosproto.CommandInfo
func (*TaskConfig) BuildContainer ¶
func (c *TaskConfig) BuildContainer(offer *mesosproto.Offer) *mesosproto.ContainerInfo
func (*TaskConfig) BuildHealthCheck ¶
func (c *TaskConfig) BuildHealthCheck() *mesosproto.HealthCheck
func (*TaskConfig) BuildKillPolicy ¶
func (c *TaskConfig) BuildKillPolicy() *mesosproto.KillPolicy
func (*TaskConfig) BuildLabels ¶
func (c *TaskConfig) BuildLabels(name string) *mesosproto.Labels
func (*TaskConfig) BuildResources ¶
func (c *TaskConfig) BuildResources(offer *mesosproto.Offer) []*mesosproto.Resource
type TaskEvent ¶
type TaskEvent struct {
Type string `json:"type"`
AppID string `json:"app_id"`
AppAlias string `json:"app_alias"`
VersionID string `json:"version_id"`
AppVersion string `json:"app_version"`
TaskID string `json:"task_id"`
IP string `json:"task_ip"`
Port uint64 `json:"task_port"`
Weight float64 `json:"weihgt"`
GatewayEnabled bool `json:"gateway"`
}
type TaskHistory ¶
type TaskHistory struct {
ID string `json:"id"`
AppID string `json:"appID"`
VersionID string `json:"versionID"`
AppVersion string `json:"appVersion"`
OfferID string `json:"offerID"`
AgentID string `json:"agentID"`
AgentHostname string `json:"agentHostname"`
CPU float64 `json:"cpu"`
Mem float64 `json:"mem"`
Disk float64 `json:"disk"`
State string `json:"state,omitempty"`
Reason string `json:"reason,omitempty"`
Message string `json:"message,omitempty"`
Stdout string `json:"stdout,omitempty"`
Stderr string `json:"stderr,omitempty"`
ArchivedAt time.Time `json:"archivedAt, omitempty"`
ContainerId string `json:"containerId"`
ContainerName string `json:"containerName"`
Weight float64 `json:"weight,omitempty"`
}
type TaskSorter ¶
type TaskSorter []*Task
func (TaskSorter) Len ¶
func (s TaskSorter) Len() int
func (TaskSorter) Less ¶
func (s TaskSorter) Less(i, j int) bool
func (TaskSorter) Swap ¶
func (s TaskSorter) Swap(i, j int)
type UpdateBody ¶
type UpdateBody struct {
Instances int `json:"instances"`
Canary *canary `json:"canary"`
}
type UpdatePolicy ¶
type UpdateWeightBody ¶
type UpdateWeightBody struct {
Weight float64 `json:"weight"`
}
type UpdateWeightsBody ¶
type Version ¶
type Version struct {
ID string `json:"id"`
Name string `json:"name"`
Command string `json:"cmd"`
CPUs float64 `json:"cpus"`
Mem float64 `json:"mem"`
Disk float64 `json:"disk"`
Instances int32 `json:"instances"`
RunAs string `json:"runAs"`
Priority int32 `json:"priority"`
Container *Container `json:"container"`
Labels map[string]string `json:"labels"`
HealthCheck *HealthCheck `json:"healthCheck"`
Env map[string]string `json:"env"`
DeployPolicy *DeployPolicy `json:"deploy"`
KillPolicy *KillPolicy `json:"kill"`
UpdatePolicy *UpdatePolicy `json:"update"`
Constraints []*Constraint `json:"constraints"`
URIs []string `json:"uris"`
IPs []string `json:"ips"`
Proxy *Proxy `json:"proxy"`
}
func (*Version) AddLabel ¶
AddLabel adds a label to the application
name: the name of the label value: value for this label
func (*Version) EmptyLabels ¶
EmptyLabels explicitly empties the labels -- use this if you need to empty the labels of an application that already has labels set (setting labels to nil will keep the current value)
type VersionList ¶
type VersionList []*Version
func (VersionList) Len ¶
func (vl VersionList) Len() int
func (VersionList) Less ¶
func (vl VersionList) Less(i, j int) bool
func (VersionList) Reverse ¶
func (vl VersionList) Reverse() VersionList
func (VersionList) Sort ¶
func (vl VersionList) Sort() VersionList
func (VersionList) Swap ¶
func (vl VersionList) Swap(i, j int)
type YamlExtra ¶
type YamlExtra struct {
Priority uint `json:"priority"`
WaitDelay uint `json:"wait_delay"` // by second
PullAlways bool `json:"pull_always"`
Resource *Resource `json:"resource"`
Constraints []*Constraint `json:"constraints"`
RunAs string `json:"runas"`
URIs []string `json:"uris"`
IPs []string `json:"ips"`
Labels map[string]string `json:"labels"` // extra labels: uid, username, vcluster ...
Proxy *Proxy `json:"proxy"`
}
Click to show internal directories.
Click to hide internal directories.