operator

package
v1.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 1, 2020 License: Apache-2.0 Imports: 29 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

View Source
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"
)

Names of checks

Functions

func Addr added in v1.1.0

func Addr(ins spec.Instance) string

Addr returns the address of the instance.

func AsyncNodes

func AsyncNodes(spec *spec.Specification, nodes []string, async bool) []string

AsyncNodes return all nodes async destroy or not.

func Cleanup added in v1.1.0

func Cleanup(
	getter ExecutorGetter,
	cluster spec.Topology,
	options Options,
) error

Cleanup the cluster

func CleanupComponent added in v1.1.0

func CleanupComponent(getter ExecutorGetter, instances []spec.Instance, cls spec.Topology, options Options) 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 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,
) (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 int64) error

DestroyMonitored destroy the monitored service.

func DestroyTombstone

func DestroyTombstone(
	getter ExecutorGetter,
	cluster *spec.Specification,
	returNodesOnly bool,
	options Options,
) (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

func Download(component, nodeOS, arch string, version string) error

Download the specific version of a component from the repository, there is nothing to do if the specified version exists.

func FilterComponent

func FilterComponent(comps []spec.Component, components set.StringSet) (res []spec.Component)

FilterComponent filter components by set

func FilterInstance

func FilterInstance(instances []spec.Instance, nodes set.StringSet) (res []spec.Instance)

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

func GetServiceStatus(e executor.Executor, name string) (active string, err error)

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 NeedCheckTomebsome

func NeedCheckTomebsome(spec *spec.Specification) bool

NeedCheckTomebsome 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,
) error

Restart the cluster.

func RestartComponent

func RestartComponent(getter ExecutorGetter, instances []spec.Instance, timeout int64) error

RestartComponent restarts the component.

func ScaleIn

func ScaleIn(
	getter ExecutorGetter,
	cluster *spec.Specification,
	options Options,
) error

ScaleIn scales in the cluster

func ScaleInCluster

func ScaleInCluster(
	getter ExecutorGetter,
	cluster *spec.Specification,
	options Options,
) error

ScaleInCluster scales in the cluster

func Start

func Start(
	getter ExecutorGetter,
	cluster spec.Topology,
	options Options,
) error

Start the cluster.

func StartComponent

func StartComponent(getter ExecutorGetter, instances []spec.Instance, options Options) error

StartComponent start the instances.

func StartMonitored

func StartMonitored(getter ExecutorGetter, instance spec.Instance, options *spec.MonitoredOptions, timeout int64) error

StartMonitored start BlackboxExporter and NodeExporter

func Stop

func Stop(
	getter ExecutorGetter,
	cluster spec.Topology,
	options Options,
) error

Stop the cluster.

func StopComponent

func StopComponent(getter ExecutorGetter, instances []spec.Instance, timeout int64) error

StopComponent stop the instances.

func StopMonitored

func StopMonitored(getter ExecutorGetter, instance spec.Instance, options *spec.MonitoredOptions, timeout int64) error

StopMonitored stop BlackboxExporter and NodeExporter

func Upgrade

func Upgrade(
	getter ExecutorGetter,
	topo spec.Topology,
	options Options,
) error

Upgrade the cluster.

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 (CheckResult) Error

func (c CheckResult) Error() string

Error implements the error interface

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)
}

ExecutorGetter get the executor by host.

type Operation

type Operation byte

Operation represents the type of cluster operation

const (
	StartOperation Operation = iota
	StopOperation
	RestartOperation
	DestroyOperation
	UpgradeOperation
	ScaleInOperation
	ScaleOutOperation
	DestroyTombstoneOperation
)

Operation represents the kind of cluster operation

func (Operation) String

func (op Operation) String() string

type Options

type Options struct {
	Roles             []string
	Nodes             []string
	Force             bool  // Option for upgrade subcommand
	SSHTimeout        int64 // timeout in seconds when connecting an SSH server
	OptTimeout        int64 // timeout in seconds for operations that support it, not to confuse with SSH timeout
	APITimeout        int64 // timeout in seconds for API operations that support it, like transfering 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

	// 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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL