Documentation ¶
Index ¶
- Constants
- func AllDMComponentNames() (roles []string)
- func DMComponentVersion(comp, version string) string
- func GetSpecManager() *cspec.SpecManager
- type AlertManagerComponent
- type AlertManagerInstance
- func (i *AlertManagerInstance) Deploy(t *task.Builder, srcPath string, deployDir string, version string, ...)
- func (i *AlertManagerInstance) InitConfig(e executor.Executor, clusterName, clusterVersion, deployUser string, ...) error
- func (i *AlertManagerInstance) ScaleConfig(e executor.Executor, topo spec.Topology, clusterName string, ...) error
- type AlertManagerSpec
- type Component
- type DMMasterComponent
- type DMServerConfigs
- type DMWorkerComponent
- type GlobalOptions
- type GrafanaComponent
- type GrafanaInstance
- func (i *GrafanaInstance) Deploy(t *task.Builder, srcPath string, deployDir string, version string, ...)
- func (i *GrafanaInstance) InitConfig(e executor.Executor, clusterName, clusterVersion, deployUser string, ...) error
- func (i *GrafanaInstance) ScaleConfig(e executor.Executor, topo spec.Topology, clusterName string, ...) error
- type GrafanaSpec
- type Instance
- type InstanceSpec
- type MasterInstance
- type MasterSpec
- type Metadata
- type MonitorComponent
- type MonitorInstance
- func (i *MonitorInstance) Deploy(t *task.Builder, srcPath string, deployDir string, version string, _ string, ...)
- func (i *MonitorInstance) InitConfig(e executor.Executor, clusterName, clusterVersion, deployUser string, ...) error
- func (i *MonitorInstance) ScaleConfig(e executor.Executor, topo spec.Topology, clusterName string, ...) error
- type PrometheusSpec
- type ResourceControl
- type Topology
- func (topo *Topology) BaseTopo() *spec.BaseTopo
- func (topo *Topology) ComponentsByStartOrder() (comps []Component)
- func (topo *Topology) ComponentsByStopOrder() (comps []Component)
- func (topo *Topology) ComponentsByUpdateOrder() (comps []Component)
- func (topo *Topology) CountDir(targetHost, dirPrefix string) int
- func (topo *Topology) Endpoints(user string) []*scripts.DMMasterScript
- func (topo *Topology) GetGlobalOptions() spec.GlobalOptions
- func (topo *Topology) GetMasterList() []string
- func (topo *Topology) GetMonitoredOptions() *spec.MonitoredOptions
- func (topo *Topology) IterComponent(fn func(comp Component))
- func (topo *Topology) IterHost(fn func(instance Instance))
- func (topo *Topology) IterInstance(fn func(instance Instance))
- func (topo *Topology) Merge(that *Topology) *Topology
- func (topo *Topology) MergeTopo(rhs spec.Topology) spec.Topology
- func (topo *Topology) NewPart() spec.Topology
- func (topo *Topology) TLSConfig(dir string) (*tls.Config, error)
- func (topo *Topology) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (topo *Topology) Validate() error
- type WorkerInstance
- type WorkerSpec
Constants ¶
const ( ComponentDMMaster = "dm-master" ComponentDMWorker = "dm-worker" ComponentPrometheus = spec.ComponentPrometheus ComponentGrafana = spec.ComponentGrafana ComponentAlertManager = spec.ComponentAlertManager )
Components names supported by TiOps
Variables ¶
This section is empty.
Functions ¶
func AllDMComponentNames ¶
func AllDMComponentNames() (roles []string)
AllDMComponentNames contains the names of all dm components. should include all components in ComponentsByStartOrder
func DMComponentVersion ¶ added in v1.1.0
DMComponentVersion maps the dm version to the third components binding version
func GetSpecManager ¶
func GetSpecManager() *cspec.SpecManager
GetSpecManager return the spec manager of dm cluster.
Types ¶
type AlertManagerComponent ¶ added in v1.1.0
type AlertManagerComponent struct{ *Topology }
AlertManagerComponent represents Alertmanager component.
func (*AlertManagerComponent) Instances ¶ added in v1.1.0
func (c *AlertManagerComponent) Instances() []Instance
Instances implements Component interface.
func (*AlertManagerComponent) Name ¶ added in v1.1.0
func (c *AlertManagerComponent) Name() string
Name implements Component interface.
func (*AlertManagerComponent) Role ¶ added in v1.1.0
func (c *AlertManagerComponent) Role() string
Role implements Component interface.
type AlertManagerInstance ¶ added in v1.1.0
type AlertManagerInstance struct { cspec.BaseInstance // contains filtered or unexported fields }
AlertManagerInstance represent the alert manager instance
func (*AlertManagerInstance) Deploy ¶ added in v1.1.0
func (i *AlertManagerInstance) Deploy(t *task.Builder, srcPath string, deployDir string, version string, clusterName string, clusterVersion string)
Deploy implements DeployerInstance interface.
func (*AlertManagerInstance) InitConfig ¶ added in v1.1.0
func (i *AlertManagerInstance) InitConfig( e executor.Executor, clusterName, clusterVersion, deployUser string, paths meta.DirPaths, ) error
InitConfig implement Instance interface
type AlertManagerSpec ¶
type AlertManagerSpec = spec.AlertManagerSpec
AlertManagerSpec is the spec of Alertmanager
type DMMasterComponent ¶
type DMMasterComponent struct{ *Topology }
DMMasterComponent represents TiDB component.
func (*DMMasterComponent) Instances ¶
func (c *DMMasterComponent) Instances() []Instance
Instances implements Component interface.
func (*DMMasterComponent) Name ¶
func (c *DMMasterComponent) Name() string
Name implements Component interface.
func (*DMMasterComponent) Role ¶ added in v1.1.0
func (c *DMMasterComponent) Role() string
Role implements Component interface.
type DMServerConfigs ¶
type DMServerConfigs struct { Master map[string]interface{} `yaml:"master"` Worker map[string]interface{} `yaml:"worker"` }
DMServerConfigs represents the server runtime configuration
type DMWorkerComponent ¶
type DMWorkerComponent struct {
*Topology
}
DMWorkerComponent represents DM worker component.
func (*DMWorkerComponent) Instances ¶
func (c *DMWorkerComponent) Instances() []Instance
Instances implements Component interface.
func (*DMWorkerComponent) Name ¶
func (c *DMWorkerComponent) Name() string
Name implements Component interface.
func (*DMWorkerComponent) Role ¶ added in v1.1.0
func (c *DMWorkerComponent) Role() string
Role implements Component interface.
type GrafanaComponent ¶ added in v1.1.0
type GrafanaComponent struct{ *Topology }
GrafanaComponent represents Grafana component.
func (*GrafanaComponent) Instances ¶ added in v1.1.0
func (c *GrafanaComponent) Instances() []Instance
Instances implements Component interface.
func (*GrafanaComponent) Name ¶ added in v1.1.0
func (c *GrafanaComponent) Name() string
Name implements Component interface.
func (*GrafanaComponent) Role ¶ added in v1.1.0
func (c *GrafanaComponent) Role() string
Role implements Component interface.
type GrafanaInstance ¶ added in v1.1.0
type GrafanaInstance struct { spec.BaseInstance // contains filtered or unexported fields }
GrafanaInstance represent the grafana instance
func (*GrafanaInstance) Deploy ¶ added in v1.1.0
func (i *GrafanaInstance) Deploy(t *task.Builder, srcPath string, deployDir string, version string, clusterName string, clusterVersion string)
Deploy implements DeployerInstance interface.
func (*GrafanaInstance) InitConfig ¶ added in v1.1.0
func (i *GrafanaInstance) InitConfig( e executor.Executor, clusterName, clusterVersion, deployUser string, paths meta.DirPaths, ) error
InitConfig implement Instance interface
type InstanceSpec ¶
type InstanceSpec interface { Role() string SSH() (string, int) GetMainPort() int IsImported() bool }
InstanceSpec represent a instance specification
type MasterInstance ¶ added in v1.1.0
type MasterInstance struct { Name string spec.BaseInstance // contains filtered or unexported fields }
MasterInstance represent the TiDB instance
func (*MasterInstance) InitConfig ¶ added in v1.1.0
func (i *MasterInstance) InitConfig( e executor.Executor, clusterName, clusterVersion, deployUser string, paths meta.DirPaths, ) error
InitConfig implement Instance interface
type MasterSpec ¶
type MasterSpec struct { Host string `yaml:"host"` SSHPort int `yaml:"ssh_port,omitempty" validate:"ssh_port:editable"` Imported bool `yaml:"imported,omitempty"` // Use Name to get the name with a default value if it's empty. Name string `yaml:"name,omitempty"` Port int `yaml:"port,omitempty" default:"8261"` PeerPort int `yaml:"peer_port,omitempty" default:"8291"` DeployDir string `yaml:"deploy_dir,omitempty"` DataDir string `yaml:"data_dir,omitempty"` LogDir string `yaml:"log_dir,omitempty"` NumaNode string `yaml:"numa_node,omitempty" validate:"numa_node:editable"` Config map[string]interface{} `yaml:"config,omitempty" validate:"config:ignore"` ResourceControl ResourceControl `yaml:"resource_control,omitempty" validate:"resource_control:editable"` Arch string `yaml:"arch,omitempty"` OS string `yaml:"os,omitempty"` V1SourcePath string `yaml:"v1_source_path,omitempty"` }
MasterSpec represents the Master topology specification in topology.yaml
func (MasterSpec) GetMainPort ¶
func (s MasterSpec) GetMainPort() int
GetMainPort returns the main port of the instance
func (MasterSpec) IsImported ¶
func (s MasterSpec) IsImported() bool
IsImported returns if the node is imported from TiDB-Ansible
func (MasterSpec) Role ¶
func (s MasterSpec) Role() string
Role returns the component role of the instance
func (MasterSpec) SSH ¶
func (s MasterSpec) SSH() (string, int)
SSH returns the host and SSH port of the instance
type Metadata ¶
type Metadata struct { User string `yaml:"user"` // the user to run and manage cluster on remote Version string `yaml:"dm_version"` // the version of TiDB cluster Topology *Topology `yaml:"topology"` }
Metadata is the specification of generic cluster metadata
func (*Metadata) GetBaseMeta ¶
GetBaseMeta implements Metadata interface.
func (*Metadata) GetTopology ¶
GetTopology implements Metadata interface.
func (*Metadata) SetTopology ¶
SetTopology implements Metadata interface.
func (*Metadata) SetVersion ¶
SetVersion implement UpgradableMetadata interface.
type MonitorComponent ¶ added in v1.1.0
type MonitorComponent struct{ *Topology }
MonitorComponent represents Monitor component.
func (*MonitorComponent) Instances ¶ added in v1.1.0
func (c *MonitorComponent) Instances() []Instance
Instances implements Component interface.
func (*MonitorComponent) Name ¶ added in v1.1.0
func (c *MonitorComponent) Name() string
Name implements Component interface.
func (*MonitorComponent) Role ¶ added in v1.1.0
func (c *MonitorComponent) Role() string
Role implements Component interface.
type MonitorInstance ¶ added in v1.1.0
type MonitorInstance struct { spec.BaseInstance // contains filtered or unexported fields }
MonitorInstance represent the monitor instance
func (*MonitorInstance) Deploy ¶ added in v1.1.0
func (i *MonitorInstance) Deploy(t *task.Builder, srcPath string, deployDir string, version string, _ string, clusterVersion string)
Deploy implements DeployerInstance interface.
func (*MonitorInstance) InitConfig ¶ added in v1.1.0
func (i *MonitorInstance) InitConfig( e executor.Executor, clusterName, clusterVersion, deployUser string, paths meta.DirPaths, ) error
InitConfig implement Instance interface
type PrometheusSpec ¶
type PrometheusSpec = spec.PrometheusSpec
PrometheusSpec is the spec of Prometheus
type ResourceControl ¶
type ResourceControl = meta.ResourceControl
ResourceControl is the spec of ResourceControl
type Topology ¶
type Topology struct { GlobalOptions GlobalOptions `yaml:"global,omitempty" validate:"global:editable"` // MonitoredOptions MonitoredOptions `yaml:"monitored,omitempty" validate:"monitored:editable"` ServerConfigs DMServerConfigs `yaml:"server_configs,omitempty" validate:"server_configs:ignore"` Masters []MasterSpec `yaml:"master_servers"` Workers []WorkerSpec `yaml:"worker_servers"` Monitors []PrometheusSpec `yaml:"monitoring_servers"` Grafana []GrafanaSpec `yaml:"grafana_servers,omitempty"` Alertmanager []AlertManagerSpec `yaml:"alertmanager_servers,omitempty"` }
Topology represents the specification of topology.yaml
func (*Topology) ComponentsByStartOrder ¶
ComponentsByStartOrder return component in the order need to start.
func (*Topology) ComponentsByStopOrder ¶
ComponentsByStopOrder return component in the order need to stop.
func (*Topology) ComponentsByUpdateOrder ¶
ComponentsByUpdateOrder return component in the order need to be updated.
func (*Topology) CountDir ¶
CountDir counts for dir paths used by any instance in the cluster with the same prefix, useful to find potential path conflicts
func (*Topology) Endpoints ¶
func (topo *Topology) Endpoints(user string) []*scripts.DMMasterScript
Endpoints returns the PD endpoints configurations
func (*Topology) GetGlobalOptions ¶
func (topo *Topology) GetGlobalOptions() spec.GlobalOptions
GetGlobalOptions returns cluster topology
func (*Topology) GetMasterList ¶
GetMasterList returns a list of Master API hosts of the current cluster
func (*Topology) GetMonitoredOptions ¶
func (topo *Topology) GetMonitoredOptions() *spec.MonitoredOptions
GetMonitoredOptions returns MonitoredOptions
func (*Topology) IterComponent ¶
IterComponent iterates all components in component starting order
func (*Topology) IterInstance ¶
IterInstance iterates all instances in component starting order
func (*Topology) TLSConfig ¶ added in v1.2.0
TLSConfig generates a tls.Config for the specification as needed
func (*Topology) UnmarshalYAML ¶
UnmarshalYAML sets default values when unmarshaling the topology file
type WorkerInstance ¶ added in v1.1.0
type WorkerInstance struct { Name string spec.BaseInstance // contains filtered or unexported fields }
WorkerInstance represent the DM worker instance
func (*WorkerInstance) InitConfig ¶ added in v1.1.0
func (i *WorkerInstance) InitConfig( e executor.Executor, clusterName, clusterVersion, deployUser string, paths meta.DirPaths, ) error
InitConfig implement Instance interface
type WorkerSpec ¶
type WorkerSpec struct { Host string `yaml:"host"` SSHPort int `yaml:"ssh_port,omitempty" validate:"ssh_port:editable"` Imported bool `yaml:"imported,omitempty"` // Use Name to get the name with a default value if it's empty. Name string `yaml:"name,omitempty"` Port int `yaml:"port,omitempty" default:"8262"` DeployDir string `yaml:"deploy_dir,omitempty"` DataDir string `yaml:"data_dir,omitempty"` LogDir string `yaml:"log_dir,omitempty"` NumaNode string `yaml:"numa_node,omitempty" validate:"numa_node:editable"` Config map[string]interface{} `yaml:"config,omitempty" validate:"config:ignore"` ResourceControl ResourceControl `yaml:"resource_control,omitempty" validate:"resource_control:editable"` Arch string `yaml:"arch,omitempty"` OS string `yaml:"os,omitempty"` }
WorkerSpec represents the Master topology specification in topology.yaml
func (WorkerSpec) GetMainPort ¶
func (s WorkerSpec) GetMainPort() int
GetMainPort returns the main port of the instance
func (WorkerSpec) IsImported ¶
func (s WorkerSpec) IsImported() bool
IsImported returns if the node is imported from TiDB-Ansible
func (WorkerSpec) Role ¶
func (s WorkerSpec) Role() string
Role returns the component role of the instance
func (WorkerSpec) SSH ¶
func (s WorkerSpec) SSH() (string, int)
SSH returns the host and SSH port of the instance