operator

package
v1.3.1-0...-83f5247 Latest Latest
Warning

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

Go to latest
Published: Apr 8, 2021 License: Apache-2.0 Imports: 34 Imported by: 0

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"
	CheckNameNet           = "network"
	CheckNameLimits        = "limits"
	CheckNameSysService    = "service"
	CheckNameSELinux       = "selinux"
	CheckNameCommand       = "command"
	CheckNameFio           = "fio"
	CheckNameTHP           = "thp"
	CheckNameDirPermission = "permission"
)

Names of checks

Functions

func Addr

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 CleanupComponent

func CleanupComponent(ctx context.Context, delFileMaps map[string]set.StringSet) error

CleanupComponent cleanup the instances

func DeleteGlobalDirs

func DeleteGlobalDirs(ctx context.Context, host string, options *spec.GlobalOptions) error

DeleteGlobalDirs deletes all global directories if they are empty

func DeletePublicKey

func DeletePublicKey(ctx context.Context, host string) error

DeletePublicKey deletes the SSH public key from host

func Destroy

func Destroy(
	ctx context.Context,
	cluster spec.Topology,
	options Options,
) error

Destroy the cluster.

func DestroyClusterTombstone

func DestroyClusterTombstone(
	ctx context.Context,
	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(ctx context.Context, instances []spec.Instance, cls spec.Topology, options Options) error

DestroyComponent destroy the instances.

func DestroyMonitored

func DestroyMonitored(ctx context.Context, inst spec.Instance, options *spec.MonitoredOptions, timeout uint64) error

DestroyMonitored destroy the monitored service.

func DestroyTombstone

func DestroyTombstone(
	ctx context.Context,
	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

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 Enable

func Enable(
	ctx context.Context,
	cluster spec.Topology,
	options Options,
	isEnable bool,
) error

Enable will enable/disable the cluster

func EnableComponent

func EnableComponent(ctx context.Context, instances []spec.Instance, options Options, isEnable bool) error

EnableComponent enable/disable the instances

func EnableMonitored

func EnableMonitored(
	ctx context.Context, instance spec.Instance,
	options *spec.MonitoredOptions, timeout uint64, isEnable bool,
) error

EnableMonitored enable/disable monitor service in a cluster

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,
	topo spec.Topology,
) (nodes []*telemetry.NodeInfo, err error)

GetNodeInfo the node info in topology.

func GetServiceStatus

func GetServiceStatus(ctx context.Context, e ctxt.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 NeedCheckTombstone

func NeedCheckTombstone(topo *spec.Specification) bool

NeedCheckTombstone return true if we need to check and destroy some node.

func PrintClusterStatus

func PrintClusterStatus(ctx context.Context, cluster *spec.Specification) (health bool)

PrintClusterStatus print cluster status into the io.Writer.

func Restart

func Restart(
	ctx context.Context,
	cluster spec.Topology,
	options Options,
	tlsCfg *tls.Config,
) error

Restart the cluster.

func RestartComponent

func RestartComponent(ctx context.Context, instances []spec.Instance, timeout uint64) error

RestartComponent restarts the component.

func ScaleIn

func ScaleIn(
	ctx context.Context,
	cluster *spec.Specification,
	options Options,
	tlsCfg *tls.Config,
) error

ScaleIn scales in the cluster

func ScaleInCluster

func ScaleInCluster(
	ctx context.Context,
	cluster *spec.Specification,
	options Options,
	tlsCfg *tls.Config,
) error

ScaleInCluster scales in the cluster

func Start

func Start(
	ctx context.Context,
	cluster spec.Topology,
	options Options,
	tlsCfg *tls.Config,
) error

Start the cluster.

func StartComponent

func StartComponent(ctx context.Context, instances []spec.Instance, options Options, tlsCfg *tls.Config) error

StartComponent start the instances.

func StartMonitored

func StartMonitored(ctx context.Context, instance spec.Instance, options *spec.MonitoredOptions, timeout uint64) error

StartMonitored start BlackboxExporter and NodeExporter

func Stop

func Stop(
	ctx context.Context,
	cluster spec.Topology,
	options Options,
	tlsCfg *tls.Config,
) error

Stop the cluster.

func StopAndDestroyInstance

func StopAndDestroyInstance(ctx context.Context, 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(ctx context.Context, instances []spec.Instance, timeout uint64) error

StopComponent stop the instances.

func StopMonitored

func StopMonitored(ctx context.Context, instance spec.Instance, options *spec.MonitoredOptions, timeout uint64) error

StopMonitored stop BlackboxExporter and NodeExporter

func Upgrade

func Upgrade(
	ctx context.Context,
	topo spec.Topology,
	options Options,
	tlsCfg *tls.Config,
) 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 CheckDirPermission

func CheckDirPermission(ctx context.Context, e ctxt.Executor, user, path string) []*CheckResult

CheckDirPermission checks if the user can write to given path

func CheckFIOResult

func CheckFIOResult(rr, rw, lat []byte) []*CheckResult

CheckFIOResult parses and checks the result of fio test

func CheckJRE

func CheckJRE(ctx context.Context, e ctxt.Executor, host string, topo *spec.Specification) []*CheckResult

CheckJRE checks if java command is available for TiSpark nodes

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(ctx context.Context, e ctxt.Executor) *CheckResult

CheckSELinux checks if SELinux is enabled on the host

func CheckServices

func CheckServices(ctx context.Context, e ctxt.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

func CheckTHP(ctx context.Context, e ctxt.Executor) *CheckResult

CheckTHP checks THP in /sys/kernel/mm/transparent_hugepage/{enabled,defrag}

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

	// Show uptime or not
	ShowUptime bool
	Operation  Operation
}

Options represents the operation options

Jump to

Keyboard shortcuts

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