Documentation
¶
Index ¶
Constants ¶
View Source
const (
BackupStorageTypePersistentVolume = "PersistentVolume"
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BackupPolicy ¶
type BackupPolicy struct {
// SnapshotIntervalInSecond specifies the interval between two snapshots.
// The default interval is 1800 seconds.
SnapshotIntervalInSecond int `json:"snapshotIntervalInSecond"`
// MaxSnapshot is the maximum number of snapshot files to retain. 0 is disable backup.
// If backup is disabled, the etcd cluster cannot recover from a
// disaster failure (lose more than half of its members at the same
// time).
MaxSnapshot int `json:"maxSnapshot"`
// VolumeSizeInMB specifies the required volume size to perform backups.
// Operator will claim the required size before creating the etcd cluster for backup
// purpose.
// If the snapshot size is larger than the size specified, backup fails.
VolumeSizeInMB int `json:"volumeSizeInMB"`
// StorageType specifies the type of storage device to store backup files.
// If it's not set by user, the default is "PersistentVolume".
StorageType BackupStorageType `json:"storageType"`
// CleanupStorageIfDeleted specified whether we want to cleanup the backup data if cluster is deleted.
// By default, operator will keep the backup data.
CleanupBackupIfDeleted bool `json:"cleanupBackupIfDeleted"`
}
type ClusterSpec ¶
type ClusterSpec struct {
// Size is the expected size of the etcd cluster.
// The etcd-operator will eventually make the size of the running
// cluster equal to the expected size.
// The vaild range of the size is from 1 to 7.
Size int `json:"size"`
// NodeSelector specifies a map of key-value pairs. For the pod to be eligible
// to run on a node, the node must have each of the indicated key-value pairs as
// labels.
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
// AntiAffinity determines if the etcd-operator tries to avoid putting
// the etcd members in the same cluster onto the same node.
AntiAffinity bool `json:"antiAffinity"`
// Version is the expected version of the etcd cluster.
// The etcd-operator will eventually make the etcd cluster version
// equal to the expected version.
Version string `json:"version"`
// Backup is the backup policy for the etcd cluster.
// There is no backup by default.
Backup *BackupPolicy `json:"backup,omitempty"`
// HostNetwork determines if the etcd pods should be run
// in the host network namespace.
HostNetwork bool `json:"hostNetwork,omitempty"`
// Seed specifies a seed member for the cluster.
// If there is no seed member, a completely new cluster will be created.
// There is no seed member by default.
Seed *SeedPolicy `json:"seed,omitempty"`
}
type EtcdCluster ¶
type EtcdCluster struct {
unversioned.TypeMeta `json:",inline"`
api.ObjectMeta `json:"metadata,omitempty"`
Spec ClusterSpec `json:"spec"`
}
type SeedPolicy ¶
type SeedPolicy struct {
// The client endpoints of the seed member.
MemberClientEndpoints []string
// RemoveDelay specifies the delay to remove the original seed member from the
// cluster in seconds.
// The seed member will be removed in 30 second by default. Minimum delay is 10 seconds.
RemoveDelay int
}
Click to show internal directories.
Click to hide internal directories.