Documentation ¶
Index ¶
- Variables
- func Addr(ins spec.Instance) string
- func AsyncNodes(spec *spec.Specification, nodes []string, async bool) []string
- func CleanupComponent(getter ExecutorGetter, delFileMaps map[string]set.StringSet) error
- func DeleteGlobalDirs(getter ExecutorGetter, host string, options *spec.GlobalOptions) error
- func DeletePublicKey(getter ExecutorGetter, host string) error
- func Destroy(getter ExecutorGetter, cluster spec.Topology, options Options) error
- func DestroyClusterTombstone(getter ExecutorGetter, cluster *spec.Specification, returNodesOnly bool, ...) (nodes []string, err error)
- func DestroyComponent(getter ExecutorGetter, instances []spec.Instance, cls spec.Topology, ...) error
- func DestroyMonitored(getter ExecutorGetter, inst spec.Instance, options *spec.MonitoredOptions, ...) error
- func DestroyTombstone(getter ExecutorGetter, cluster *spec.Specification, returNodesOnly bool, ...) (nodes []string, err error)
- func Download(component, nodeOS, arch string, version string) error
- func Enable(getter ExecutorGetter, cluster spec.Topology, options Options, isEnable bool) error
- func EnableComponent(getter ExecutorGetter, instances []spec.Instance, options Options, ...) error
- func EnableMonitored(getter ExecutorGetter, instance spec.Instance, options *spec.MonitoredOptions, ...) error
- func FilterComponent(comps []spec.Component, components set.StringSet) (res []spec.Component)
- func FilterInstance(instances []spec.Instance, nodes set.StringSet) (res []spec.Instance)
- func GetNodeInfo(ctx context.Context, getter ExecutorGetter, topo spec.Topology) (nodes []*telemetry.NodeInfo, err error)
- func GetServiceStatus(e executor.Executor, name string) (active string, err error)
- func NeedCheckTombstone(topo *spec.Specification) bool
- func PrintClusterStatus(getter ExecutorGetter, cluster *spec.Specification) (health bool)
- func Restart(getter ExecutorGetter, cluster spec.Topology, options Options, ...) error
- func RestartComponent(getter ExecutorGetter, instances []spec.Instance, timeout uint64) error
- func ScaleIn(getter ExecutorGetter, cluster *spec.Specification, options Options, ...) error
- func ScaleInCluster(getter ExecutorGetter, cluster *spec.Specification, options Options, ...) error
- func Start(getter ExecutorGetter, cluster spec.Topology, options Options, ...) error
- func StartComponent(getter ExecutorGetter, instances []spec.Instance, options Options, ...) error
- func StartMonitored(getter ExecutorGetter, instance spec.Instance, options *spec.MonitoredOptions, ...) error
- func Stop(getter ExecutorGetter, cluster spec.Topology, options Options, ...) error
- func StopAndDestroyInstance(getter ExecutorGetter, cluster spec.Topology, instance spec.Instance, ...) error
- func StopComponent(getter ExecutorGetter, instances []spec.Instance, timeout uint64) error
- func StopMonitored(getter ExecutorGetter, instance spec.Instance, options *spec.MonitoredOptions, ...) error
- func Upgrade(getter ExecutorGetter, topo spec.Topology, options Options, tlsCfg *tls.Config) error
- type CheckOptions
- type CheckResult
- func CheckFIOResult(rr, rw, lat []byte) []*CheckResult
- func CheckKernelParameters(opt *CheckOptions, p []byte) []*CheckResult
- func CheckListeningPort(opt *CheckOptions, host string, topo *spec.Specification, rawData []byte) []*CheckResult
- func CheckPartitions(opt *CheckOptions, host string, topo *spec.Specification, rawData []byte) []*CheckResult
- func CheckSELinux(e executor.Executor) *CheckResult
- func CheckServices(e executor.Executor, host, service string, disable bool) *CheckResult
- func CheckSysLimits(opt *CheckOptions, user string, l []byte) []*CheckResult
- func CheckSystemInfo(opt *CheckOptions, rawData []byte) []*CheckResult
- func CheckTHP(e executor.Executor) *CheckResult
- type ExecutorGetter
- type Operation
- type Options
Constants ¶
This section is empty.
Variables ¶
var ( CheckNameGeneral = "general" // errors that don't fit any specific check CheckNameNTP = "ntp" CheckNameOSVer = "os-version" CheckNameSwap = "swap" CheckNameSysctl = "sysctl" CheckNameCPUThreads = "cpu-cores" CheckNameCPUGovernor = "cpu-governor" CheckNameDisks = "disk" CheckNamePortListen = "listening-port" CheckNameEpoll = "epoll-exclusive" CheckNameMem = "memory" CheckNameLimits = "limits" CheckNameSysService = "service" CheckNameSELinux = "selinux" CheckNameCommand = "command" CheckNameFio = "fio" CheckNameTHP = "thp" )
Names of checks
Functions ¶
func AsyncNodes ¶
func AsyncNodes(spec *spec.Specification, nodes []string, async bool) []string
AsyncNodes return all nodes async destroy or not.
func CleanupComponent ¶ added in v1.1.0
func CleanupComponent(getter ExecutorGetter, delFileMaps map[string]set.StringSet) error
CleanupComponent cleanup the instances
func DeleteGlobalDirs ¶
func DeleteGlobalDirs(getter ExecutorGetter, host string, options *spec.GlobalOptions) error
DeleteGlobalDirs deletes all global directories if they are empty
func DeletePublicKey ¶ added in v1.3.0
func DeletePublicKey(getter ExecutorGetter, host string) error
DeletePublicKey deletes the SSH public key from host
func Destroy ¶
func Destroy( getter ExecutorGetter, cluster spec.Topology, options Options, ) error
Destroy the cluster.
func DestroyClusterTombstone ¶
func DestroyClusterTombstone( getter ExecutorGetter, cluster *spec.Specification, returNodesOnly bool, options Options, tlsCfg *tls.Config, ) (nodes []string, err error)
DestroyClusterTombstone remove the tombstone node in spec and destroy them. If returNodesOnly is true, it will only return the node id that can be destroy.
func DestroyComponent ¶
func DestroyComponent(getter ExecutorGetter, instances []spec.Instance, cls spec.Topology, options Options) error
DestroyComponent destroy the instances.
func DestroyMonitored ¶
func DestroyMonitored(getter ExecutorGetter, inst spec.Instance, options *spec.MonitoredOptions, timeout uint64) error
DestroyMonitored destroy the monitored service.
func DestroyTombstone ¶
func DestroyTombstone( getter ExecutorGetter, cluster *spec.Specification, returNodesOnly bool, options Options, tlsCfg *tls.Config, ) (nodes []string, err error)
DestroyTombstone remove the tombstone node in spec and destroy them. If returNodesOnly is true, it will only return the node id that can be destroy.
func Download ¶
Download the specific version of a component from the repository, there is nothing to do if the specified version exists.
func EnableComponent ¶ added in v1.2.0
func EnableComponent(getter ExecutorGetter, instances []spec.Instance, options Options, isEnable bool) error
EnableComponent enable/disable the instances
func EnableMonitored ¶ added in v1.2.0
func EnableMonitored( getter ExecutorGetter, instance spec.Instance, options *spec.MonitoredOptions, timeout uint64, isEnable bool, ) error
EnableMonitored enable/disable monitor service in a cluster
func FilterComponent ¶
FilterComponent filter components by set
func FilterInstance ¶
FilterInstance filter instances by set
func GetNodeInfo ¶
func GetNodeInfo( ctx context.Context, getter ExecutorGetter, topo spec.Topology, ) (nodes []*telemetry.NodeInfo, err error)
GetNodeInfo the node info in topology.
func GetServiceStatus ¶
GetServiceStatus return the Acitive line of status.
[tidb@ip-172-16-5-70 deploy]$ sudo systemctl status drainer-8249.service ● drainer-8249.service - drainer-8249 service
Loaded: loaded (/etc/systemd/system/drainer-8249.service; disabled; vendor preset: disabled) Active: active (running) since Mon 2020-03-09 13:56:19 CST; 1 weeks 3 days ago Main PID: 36718 (drainer) CGroup: /system.slice/drainer-8249.service └─36718 bin/drainer --addr=172.16.5.70:8249 --pd-urls=http://172.16.5.70:2379 --data-dir=/data1/deploy/data.drainer --log-file=/data1/deploy/log/drainer.log --config=conf/drainer.toml --initial-commit-ts=408375872006389761
Mar 09 13:56:19 ip-172-16-5-70 systemd[1]: Started drainer-8249 service.
func NeedCheckTombstone ¶ added in v1.2.4
func NeedCheckTombstone(topo *spec.Specification) bool
NeedCheckTombstone return true if we need to check and destroy some node.
func PrintClusterStatus ¶
func PrintClusterStatus(getter ExecutorGetter, cluster *spec.Specification) (health bool)
PrintClusterStatus print cluster status into the io.Writer.
func Restart ¶
func Restart( getter ExecutorGetter, cluster spec.Topology, options Options, tlsCfg *tls.Config, ) error
Restart the cluster.
func RestartComponent ¶
func RestartComponent(getter ExecutorGetter, instances []spec.Instance, timeout uint64) error
RestartComponent restarts the component.
func ScaleIn ¶
func ScaleIn( getter ExecutorGetter, cluster *spec.Specification, options Options, tlsCfg *tls.Config, ) error
ScaleIn scales in the cluster
func ScaleInCluster ¶
func ScaleInCluster( getter ExecutorGetter, cluster *spec.Specification, options Options, tlsCfg *tls.Config, ) error
ScaleInCluster scales in the cluster
func Start ¶
func Start( getter ExecutorGetter, cluster spec.Topology, options Options, tlsCfg *tls.Config, ) error
Start the cluster.
func StartComponent ¶
func StartComponent(getter ExecutorGetter, instances []spec.Instance, options Options, tlsCfg *tls.Config) error
StartComponent start the instances.
func StartMonitored ¶
func StartMonitored(getter ExecutorGetter, instance spec.Instance, options *spec.MonitoredOptions, timeout uint64) error
StartMonitored start BlackboxExporter and NodeExporter
func Stop ¶
func Stop( getter ExecutorGetter, cluster spec.Topology, options Options, tlsCfg *tls.Config, ) error
Stop the cluster.
func StopAndDestroyInstance ¶ added in v1.2.4
func StopAndDestroyInstance(getter ExecutorGetter, cluster spec.Topology, instance spec.Instance, options Options, destroyNode bool) error
StopAndDestroyInstance stop and destroy the instance, if this instance is the host's last one, and the host has monitor deployed, we need to destroy the monitor, either
func StopComponent ¶
func StopComponent(getter ExecutorGetter, instances []spec.Instance, timeout uint64) error
StopComponent stop the instances.
func StopMonitored ¶
func StopMonitored(getter ExecutorGetter, instance spec.Instance, options *spec.MonitoredOptions, timeout uint64) error
StopMonitored stop BlackboxExporter and NodeExporter
Types ¶
type CheckOptions ¶
type CheckOptions struct { // checks that are disabled by default EnableCPU bool EnableMem bool EnableDisk bool }
CheckOptions control the list of checks to be performed
type CheckResult ¶
type CheckResult struct { Name string // Name of the check Err error // An embedded error Warn bool // The check didn't pass, but not a big problem Msg string // A message or description }
CheckResult is the result of a check
func CheckFIOResult ¶
func CheckFIOResult(rr, rw, lat []byte) []*CheckResult
CheckFIOResult parses and checks the result of fio test
func CheckKernelParameters ¶
func CheckKernelParameters(opt *CheckOptions, p []byte) []*CheckResult
CheckKernelParameters checks kernel parameter values
func CheckListeningPort ¶
func CheckListeningPort(opt *CheckOptions, host string, topo *spec.Specification, rawData []byte) []*CheckResult
CheckListeningPort checks if the ports are already binded by some process on host
func CheckPartitions ¶
func CheckPartitions(opt *CheckOptions, host string, topo *spec.Specification, rawData []byte) []*CheckResult
CheckPartitions checks partition info of data directories
func CheckSELinux ¶
func CheckSELinux(e executor.Executor) *CheckResult
CheckSELinux checks if SELinux is enabled on the host
func CheckServices ¶
func CheckServices(e executor.Executor, host, service string, disable bool) *CheckResult
CheckServices checks if a service is running on the host
func CheckSysLimits ¶
func CheckSysLimits(opt *CheckOptions, user string, l []byte) []*CheckResult
CheckSysLimits checks limits in /etc/security/limits.conf
func CheckSystemInfo ¶
func CheckSystemInfo(opt *CheckOptions, rawData []byte) []*CheckResult
CheckSystemInfo performs checks with basic system info
func CheckTHP ¶ added in v1.3.0
func CheckTHP(e executor.Executor) *CheckResult
CheckTHP checks THP in /sys/kernel/mm/transparent_hugepage/{enabled,defrag}
func (CheckResult) IsWarning ¶
func (c CheckResult) IsWarning() bool
IsWarning checks if the result is a warning error
func (CheckResult) Passed ¶
func (c CheckResult) Passed() bool
Passed checks if the result is a success
func (CheckResult) String ¶
func (c CheckResult) String() string
String returns a readable string of the error
func (CheckResult) Unwrap ¶
func (c CheckResult) Unwrap() error
Unwrap implements the Wrapper interface
type ExecutorGetter ¶
type ExecutorGetter interface { Get(host string) (e executor.Executor) // GetSSHKeySet gets the SSH private and public key path GetSSHKeySet() (privateKeyPath, publicKeyPath string) }
ExecutorGetter get the executor by host.
type Operation ¶
type Operation byte
Operation represents the type of cluster operation
type Options ¶
type Options struct { Roles []string Nodes []string Force bool // Option for upgrade subcommand SSHTimeout uint64 // timeout in seconds when connecting an SSH server OptTimeout uint64 // timeout in seconds for operations that support it, not to confuse with SSH timeout APITimeout uint64 // timeout in seconds for API operations that support it, like transferring store leader IgnoreConfigCheck bool // should we ignore the config check result after init config NativeSSH bool // should use native ssh client or builtin easy ssh (deprecated, shoule use SSHType) SSHType executor.SSHType // the ssh type: 'builtin', 'system', 'none' // What type of things should we cleanup in clean command CleanupData bool // should we cleanup data CleanupLog bool // should we clenaup log // Some data will be retained when destroying instances RetainDataRoles []string RetainDataNodes []string }
Options represents the operation options