v1

package
v0.0.0-...-b2588bf Latest Latest
Warning

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

Go to latest
Published: Feb 7, 2020 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Overview

Package v1 defines version 1 of the API used with ClickHouse Installation Custom Resources.

Index

Constants

View Source
const (
	PodDistributionUnspecified                               = "Unspecified"
	PodDistributionClickHouseAntiAffinity                    = "ClickHouseAntiAffinity"
	PodDistributionShardAntiAffinity                         = "ShardAntiAffinity"
	PodDistributionReplicaAntiAffinity                       = "ReplicaAntiAffinity"
	PodDistributionAnotherNamespaceAntiAffinity              = "AnotherNamespaceAntiAffinity"
	PodDistributionAnotherClickHouseInstallationAntiAffinity = "AnotherClickHouseInstallationAntiAffinity"
	PodDistributionAnotherClusterAntiAffinity                = "AnotherClusterAntiAffinity"
	PodDistributionMaxNumberPerNode                          = "MaxNumberPerNode"
	PodDistributionNamespaceAffinity                         = "NamespaceAffinity"
	PodDistributionClickHouseInstallationAffinity            = "ClickHouseInstallationAffinity"
	PodDistributionClusterAffinity                           = "ClusterAffinity"
	PodDistributionShardAffinity                             = "ShardAffinity"
	PodDistributionReplicaAffinity                           = "ReplicaAffinity"
	PodDistributionPreviousTailAffinity                      = "PreviousTailAffinity"

	// Deprecated value
	PodDistributionOnePerHost = "OnePerHost"
)
View Source
const (
	StatusInProgress = "InProgress"
	StatusCompleted  = "Completed"
)
View Source
const (
	MergeTypeFillEmptyValues          = "fillempty"
	MergeTypeOverrideByNonEmptyValues = "override"
)
View Source
const (
	// ClickHouseInstallationCRDResourceKind defines kind of CRD resource
	ClickHouseInstallationCRDResourceKind         = "ClickHouseInstallation"
	ClickHouseInstallationTemplateCRDResourceKind = "ClickHouseInstallationTemplate"
	ClickHouseOperatorCRDResourceKind             = "ClickHouseOperator"
)
View Source
const (
	// What to do in case StatefulSet can't reach new Generation - abort CHI reconcile
	OnStatefulSetCreateFailureActionAbort = "abort"

	// What to do in case StatefulSet can't reach new Generation - delete newly created problematic StatefulSet
	OnStatefulSetCreateFailureActionDelete = "delete"

	// What to do in case StatefulSet can't reach new Generation - do nothing, keep StatefulSet broken and move to the next
	OnStatefulSetCreateFailureActionIgnore = "ignore"
)
View Source
const (
	// What to do in case StatefulSet can't reach new Generation - abort CHI reconcile
	OnStatefulSetUpdateFailureActionAbort = "abort"

	// What to do in case StatefulSet can't reach new Generation - delete Pod and rollback StatefulSet to previous Generation
	// Pod would be recreated by StatefulSet based on rollback-ed configuration
	OnStatefulSetUpdateFailureActionRollback = "rollback"

	// What to do in case StatefulSet can't reach new Generation - do nothing, keep StatefulSet broken and move to the next
	OnStatefulSetUpdateFailureActionIgnore = "ignore"
)

Variables

View Source
var (
	// SchemeBuilder collects scheme builder functions
	SchemeBuilder runtime.SchemeBuilder
	// AddToScheme applies SchemeBuilder functions to the specified scheme
	AddToScheme = localSchemeBuilder.AddToScheme
)
View Source
var SchemeGroupVersion = schema.GroupVersion{
	Group:   clickhousealtinitycom.GroupName,
	Version: "v1",
}

SchemeGroupVersion is group version used to register these objects

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource returns schema.GroupResource

Types

type ChiCluster

type ChiCluster struct {
	Name      string           `json:"name"`
	Layout    ChiLayout        `json:"layout"`
	Templates ChiTemplateNames `json:"templates,omitempty"`

	// Internal data
	Address ChiClusterAddress       `json:"address"`
	Chi     *ClickHouseInstallation `json:"-" testdiff:"ignore"`
}

ChiCluster defines item of a clusters section of .configuration

func (*ChiCluster) DeepCopy

func (in *ChiCluster) DeepCopy() *ChiCluster

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChiCluster.

func (*ChiCluster) DeepCopyInto

func (in *ChiCluster) DeepCopyInto(out *ChiCluster)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ChiCluster) GetServiceTemplate

func (cluster *ChiCluster) GetServiceTemplate() (*ChiServiceTemplate, bool)

func (*ChiCluster) HostsCount

func (cluster *ChiCluster) HostsCount() int

func (*ChiCluster) InheritTemplatesFrom

func (cluster *ChiCluster) InheritTemplatesFrom(chi *ClickHouseInstallation)

func (*ChiCluster) WalkHosts

func (cluster *ChiCluster) WalkHosts(
	f func(host *ChiHost) error,
) []error

func (*ChiCluster) WalkShards

func (cluster *ChiCluster) WalkShards(
	f func(shard *ChiShard) error,
) []error

type ChiClusterAddress

type ChiClusterAddress struct {
	Namespace    string `json:"namespace"`
	ChiName      string `json:"chiName"`
	ClusterName  string `json:"clusterName"`
	ClusterIndex int    `json:"clusterIndex"`
}

ChiClusterAddress defines address of a cluster within ClickHouseInstallation

func (*ChiClusterAddress) DeepCopy

func (in *ChiClusterAddress) DeepCopy() *ChiClusterAddress

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChiClusterAddress.

func (*ChiClusterAddress) DeepCopyInto

func (in *ChiClusterAddress) DeepCopyInto(out *ChiClusterAddress)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ChiConfiguration

type ChiConfiguration struct {
	Zookeeper ChiZookeeperConfig     `json:"zookeeper,omitempty" yaml:"zookeeper"`
	Users     map[string]interface{} `json:"users,omitempty"     yaml:"users"`
	Profiles  map[string]interface{} `json:"profiles,omitempty"  yaml:"profiles"`
	Quotas    map[string]interface{} `json:"quotas,omitempty"    yaml:"quotas"`
	Settings  map[string]interface{} `json:"settings,omitempty"  yaml:"settings"`
	Files     map[string]string      `json:"files,omitempty"     yaml:"files"`
	// TODO refactor into map[string]ChiCluster
	Clusters []ChiCluster `json:"clusters,omitempty"`
}

ChiConfiguration defines configuration section of .spec

func (*ChiConfiguration) DeepCopy

func (in *ChiConfiguration) DeepCopy() *ChiConfiguration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChiConfiguration.

func (*ChiConfiguration) DeepCopyInto

func (in *ChiConfiguration) DeepCopyInto(out *ChiConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ChiConfiguration) MergeFrom

func (configuration *ChiConfiguration) MergeFrom(from *ChiConfiguration, _type MergeType)

type ChiDefaults

type ChiDefaults struct {
	ReplicasUseFQDN string            `json:"replicasUseFQDN,omitempty" yaml:"replicasUseFQDN"`
	DistributedDDL  ChiDistributedDDL `json:"distributedDDL,omitempty"  yaml:"distributedDDL"`
	Templates       ChiTemplateNames  `json:"templates,omitempty"       yaml:"templates"`
}

ChiDefaults defines defaults section of .spec

func (*ChiDefaults) DeepCopy

func (in *ChiDefaults) DeepCopy() *ChiDefaults

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChiDefaults.

func (*ChiDefaults) DeepCopyInto

func (in *ChiDefaults) DeepCopyInto(out *ChiDefaults)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ChiDefaults) MergeFrom

func (defaults *ChiDefaults) MergeFrom(from *ChiDefaults, _type MergeType)

type ChiDistributedDDL

type ChiDistributedDDL struct {
	Profile string `json:"profile,omitempty" yaml:"profile"`
}

ChiDistributedDDL defines distributedDDL section of .spec.defaults

func (*ChiDistributedDDL) DeepCopy

func (in *ChiDistributedDDL) DeepCopy() *ChiDistributedDDL

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChiDistributedDDL.

func (*ChiDistributedDDL) DeepCopyInto

func (in *ChiDistributedDDL) DeepCopyInto(out *ChiDistributedDDL)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ChiDistributedDDL) MergeFrom

func (d *ChiDistributedDDL) MergeFrom(from *ChiDistributedDDL, _type MergeType)

type ChiHost

type ChiHost struct {
	Name      string           `json:"name,omitempty"`
	Port      int32            `json:"port,omitempty"`
	Templates ChiTemplateNames `json:"templates,omitempty"`

	// Internal data
	Address ChiHostAddress          `json:"address"`
	Config  ChiHostConfig           `json:"config"`
	Chi     *ClickHouseInstallation `json:"-" testdiff:"ignore"`
}

ChiHost defines host (a data replica within a shard) of .spec.configuration.clusters[n].shards[m]

func (*ChiHost) DeepCopy

func (in *ChiHost) DeepCopy() *ChiHost

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChiHost.

func (*ChiHost) DeepCopyInto

func (in *ChiHost) DeepCopyInto(out *ChiHost)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ChiHost) GetPodTemplate

func (host *ChiHost) GetPodTemplate() (*ChiPodTemplate, bool)

func (*ChiHost) GetReplicasNum

func (host *ChiHost) GetReplicasNum() int32

func (*ChiHost) GetServiceTemplate

func (host *ChiHost) GetServiceTemplate() (*ChiServiceTemplate, bool)

func (*ChiHost) InheritTemplatesFrom

func (host *ChiHost) InheritTemplatesFrom(shard *ChiShard)

type ChiHostAddress

type ChiHostAddress struct {
	Namespace               string `json:"namespace"`
	ChiName                 string `json:"chiName"`
	ClusterName             string `json:"clusterName"`
	ClusterIndex            int    `json:"clusterIndex"`
	ShardName               string `json:"shardName,omitempty"`
	ShardIndex              int    `json:"shardIndex"`
	ReplicaName             string `json:"replicaName,omitempty"`
	ReplicaIndex            int    `json:"replicaIndex"`
	ChiScopeIndex           int    `json:"chiScopeIndex"`
	ChiScopeCycleSize       int    `json:"chiScopeCycleSize"`
	ChiScopeCycleIndex      int    `json:"chiScopeCycleIndex"`
	ChiScopeCycleOffset     int    `json:"chiScopeCycleOffset"`
	ClusterScopeIndex       int    `json:"clusterScopeIndex"`
	ClusterScopeCycleSize   int    `json:"clusterScopeCycleSize"`
	ClusterScopeCycleIndex  int    `json:"clusterScopeCycleIndex"`
	ClusterScopeCycleOffset int    `json:"clusterScopeCycleOffset"`
	ShardScopeIndex         int    `json:"shardScopeIndex"`
}

ChiHostAddress defines address of a host within ClickHouseInstallation

func (*ChiHostAddress) DeepCopy

func (in *ChiHostAddress) DeepCopy() *ChiHostAddress

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChiHostAddress.

func (*ChiHostAddress) DeepCopyInto

func (in *ChiHostAddress) DeepCopyInto(out *ChiHostAddress)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ChiHostConfig

type ChiHostConfig struct {
	ZookeeperFingerprint string `json:"zookeeperfingerprint"`
	SettingsFingerprint  string `json:"settingsfingerprint"`
}

ChiHostConfig defines additional data related to a host

func (*ChiHostConfig) DeepCopy

func (in *ChiHostConfig) DeepCopy() *ChiHostConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChiHostConfig.

func (*ChiHostConfig) DeepCopyInto

func (in *ChiHostConfig) DeepCopyInto(out *ChiHostConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ChiLayout

type ChiLayout struct {
	// DEPRECATED - to be removed soon
	Type          string `json:"type"`
	ShardsCount   int    `json:"shardsCount,omitempty"`
	ReplicasCount int    `json:"replicasCount,omitempty"`
	// TODO refactor into map[string]ChiShard
	Shards []ChiShard `json:"shards,omitempty"`
}

ChiLayout defines layout section of .spec.configuration.clusters

func (*ChiLayout) DeepCopy

func (in *ChiLayout) DeepCopy() *ChiLayout

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChiLayout.

func (*ChiLayout) DeepCopyInto

func (in *ChiLayout) DeepCopyInto(out *ChiLayout)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ChiPodDistribution

type ChiPodDistribution struct {
	Type   string `json:"type"   yaml:"type"`
	Number int    `json:"number" yaml:"number"`
}

func (*ChiPodDistribution) DeepCopy

func (in *ChiPodDistribution) DeepCopy() *ChiPodDistribution

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChiPodDistribution.

func (*ChiPodDistribution) DeepCopyInto

func (in *ChiPodDistribution) DeepCopyInto(out *ChiPodDistribution)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ChiPodTemplate

type ChiPodTemplate struct {
	Name string             `json:"name"            yaml:"name"`
	Zone ChiPodTemplateZone `json:"zone"            yaml:"zone""`
	// DEPRECATED - to be removed soon
	Distribution    string               `json:"distribution"    yaml:"distribution"`
	PodDistribution []ChiPodDistribution `json:"podDistribution" yaml:"podDistribution"`
	Spec            corev1.PodSpec       `json:"spec"            yaml:"spec"`
}

ChiPodTemplate defines full Pod Template, directly used by StatefulSet

func (*ChiPodTemplate) DeepCopy

func (in *ChiPodTemplate) DeepCopy() *ChiPodTemplate

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChiPodTemplate.

func (*ChiPodTemplate) DeepCopyInto

func (in *ChiPodTemplate) DeepCopyInto(out *ChiPodTemplate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ChiPodTemplateZone

type ChiPodTemplateZone struct {
	Key    string   `json:"key" yaml:"key"`
	Values []string `json:"values" yaml:"values"`
}

func (*ChiPodTemplateZone) DeepCopy

func (in *ChiPodTemplateZone) DeepCopy() *ChiPodTemplateZone

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChiPodTemplateZone.

func (*ChiPodTemplateZone) DeepCopyInto

func (in *ChiPodTemplateZone) DeepCopyInto(out *ChiPodTemplateZone)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ChiServiceTemplate

type ChiServiceTemplate struct {
	Name         string             `json:"name"         yaml:"name"`
	GenerateName string             `json:"generateName" yaml:"generateName"`
	ObjectMeta   metav1.ObjectMeta  `json:"metadata"     yaml:"metadata"`
	Spec         corev1.ServiceSpec `json:"spec"         yaml:"spec"`
}

func (*ChiServiceTemplate) DeepCopy

func (in *ChiServiceTemplate) DeepCopy() *ChiServiceTemplate

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChiServiceTemplate.

func (*ChiServiceTemplate) DeepCopyInto

func (in *ChiServiceTemplate) DeepCopyInto(out *ChiServiceTemplate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ChiShard

type ChiShard struct {
	// DEPRECATED - to be removed soon
	DefinitionType      string           `json:"definitionType"`
	Name                string           `json:"name,omitempty"`
	Weight              int              `json:"weight,omitempty"`
	InternalReplication string           `json:"internalReplication,omitempty"`
	Templates           ChiTemplateNames `json:"templates,omitempty"`
	ReplicasCount       int              `json:"replicasCount,omitempty"`
	// TODO refactor into map[string]ChiReplica
	Replicas []ChiHost `json:"replicas,omitempty"`

	// Internal data
	Address ChiShardAddress         `json:"address"`
	Chi     *ClickHouseInstallation `json:"-" testdiff:"ignore"`
}

ChiShard defines item of a shard section of .spec.configuration.clusters[n].shards

func (*ChiShard) DeepCopy

func (in *ChiShard) DeepCopy() *ChiShard

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChiShard.

func (*ChiShard) DeepCopyInto

func (in *ChiShard) DeepCopyInto(out *ChiShard)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ChiShard) GetServiceTemplate

func (shard *ChiShard) GetServiceTemplate() (*ChiServiceTemplate, bool)

func (*ChiShard) HostsCount

func (shard *ChiShard) HostsCount() int

func (*ChiShard) InheritTemplatesFrom

func (shard *ChiShard) InheritTemplatesFrom(cluster *ChiCluster)

func (*ChiShard) WalkHosts

func (shard *ChiShard) WalkHosts(
	f func(host *ChiHost) error,
) []error

type ChiShardAddress

type ChiShardAddress struct {
	Namespace    string `json:"namespace"`
	ChiName      string `json:"chiName"`
	ClusterName  string `json:"clusterName"`
	ClusterIndex int    `json:"clusterIndex"`
	ShardName    string `json:"shardName,omitempty"`
	ShardIndex   int    `json:"shardIndex"`
}

ChiShardAddress defines address of a shard within ClickHouseInstallation

func (*ChiShardAddress) DeepCopy

func (in *ChiShardAddress) DeepCopy() *ChiShardAddress

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChiShardAddress.

func (*ChiShardAddress) DeepCopyInto

func (in *ChiShardAddress) DeepCopyInto(out *ChiShardAddress)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ChiSpec

type ChiSpec struct {
	Stop          string           `json:"stop,omitempty"         yaml:"stop"`
	Defaults      ChiDefaults      `json:"defaults,omitempty"     yaml:"defaults"`
	Configuration ChiConfiguration `json:"configuration"          yaml:"configuration"`
	Templates     ChiTemplates     `json:"templates,omitempty"    yaml:"templates"`
	UseTemplates  []ChiUseTemplate `json:"useTemplates,omitempty" yaml:"useTemplates"`
}

ChiSpec defines spec section of ClickHouseInstallation resource

func (*ChiSpec) DeepCopy

func (in *ChiSpec) DeepCopy() *ChiSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChiSpec.

func (*ChiSpec) DeepCopyInto

func (in *ChiSpec) DeepCopyInto(out *ChiSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ChiSpec) MergeFrom

func (spec *ChiSpec) MergeFrom(from *ChiSpec, _type MergeType)

type ChiStatus

type ChiStatus struct {
	Version           string   `json:"version"`
	ClustersCount     int      `json:"clusters"`
	ShardsCount       int      `json:"shards"`
	HostsCount        int      `json:"hosts"`
	Status            string   `json:"status"`
	UpdatedHostsCount int      `json:"updated"`
	AddedHostsCount   int      `json:"added"`
	DeletedHostsCount int      `json:"deleted"`
	DeleteHostsCount  int      `json:"delete"`
	Pods              []string `json:"pods"`
	Endpoint          string   `json:"endpoint"`
}

ChiStatus defines status section of ClickHouseInstallation resource

func (*ChiStatus) DeepCopy

func (in *ChiStatus) DeepCopy() *ChiStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChiStatus.

func (*ChiStatus) DeepCopyInto

func (in *ChiStatus) DeepCopyInto(out *ChiStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ChiTemplateNames

type ChiTemplateNames struct {
	PodTemplate             string `json:"podTemplate,omitempty"             yaml:"podTemplate"`
	DataVolumeClaimTemplate string `json:"dataVolumeClaimTemplate,omitempty" yaml:"dataVolumeClaimTemplate"`
	LogVolumeClaimTemplate  string `json:"logVolumeClaimTemplate,omitempty"  yaml:"logVolumeClaimTemplate"`
	// DEPRECATED!!!  VolumeClaimTemplate is deprecated in favor of DataVolumeClaimTemplate and LogVolumeClaimTemplate
	VolumeClaimTemplate    string `json:"volumeClaimTemplate,omitempty"     yaml:"volumeClaimTemplate"`
	ServiceTemplate        string `json:"serviceTemplate,omitempty"         yaml:"serviceTemplate"`
	ClusterServiceTemplate string `json:"clusterServiceTemplate,omitempty"  yaml:"clusterServiceTemplate"`
	ShardServiceTemplate   string `json:"shardServiceTemplate,omitempty"    yaml:"shardServiceTemplate"`
	ReplicaServiceTemplate string `json:"replicaServiceTemplate,omitempty"  yaml:"replicaServiceTemplate"`
}

ChiTemplateNames defines references to .spec.templates to be used on current level of cluster

func (*ChiTemplateNames) DeepCopy

func (in *ChiTemplateNames) DeepCopy() *ChiTemplateNames

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChiTemplateNames.

func (*ChiTemplateNames) DeepCopyInto

func (in *ChiTemplateNames) DeepCopyInto(out *ChiTemplateNames)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ChiTemplateNames) HandleDeprecatedFields

func (templates *ChiTemplateNames) HandleDeprecatedFields()

func (*ChiTemplateNames) MergeFrom

func (templates *ChiTemplateNames) MergeFrom(from *ChiTemplateNames, _type MergeType)

type ChiTemplates

type ChiTemplates struct {
	// Templates
	PodTemplates         []ChiPodTemplate         `json:"podTemplates,omitempty"         yaml:"podTemplates"`
	VolumeClaimTemplates []ChiVolumeClaimTemplate `json:"volumeClaimTemplates,omitempty" yaml:"volumeClaimTemplates"`
	ServiceTemplates     []ChiServiceTemplate     `json:"serviceTemplates,omitempty"     yaml:"serviceTemplates"`

	// Index maps template name to template itself
	PodTemplatesIndex         map[string]*ChiPodTemplate         `testdiff:"ignore"`
	VolumeClaimTemplatesIndex map[string]*ChiVolumeClaimTemplate `testdiff:"ignore"`
	ServiceTemplatesIndex     map[string]*ChiServiceTemplate     `testdiff:"ignore"`
}

ChiTemplates defines templates section of .spec

func (*ChiTemplates) DeepCopy

func (in *ChiTemplates) DeepCopy() *ChiTemplates

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChiTemplates.

func (*ChiTemplates) DeepCopyInto

func (in *ChiTemplates) DeepCopyInto(out *ChiTemplates)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ChiTemplates) MergeFrom

func (templates *ChiTemplates) MergeFrom(from *ChiTemplates, _type MergeType)

type ChiUseTemplate

type ChiUseTemplate struct {
	Name      string `json:"name"      yaml:"name"`
	Namespace string `json:"namespace" yaml:"namespace"`
	UseType   string `json:"useType"   yaml:"useType"`
}

ChiUseTemplates defines UseTemplates section of ClickHouseInstallation resource

func (*ChiUseTemplate) DeepCopy

func (in *ChiUseTemplate) DeepCopy() *ChiUseTemplate

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChiUseTemplate.

func (*ChiUseTemplate) DeepCopyInto

func (in *ChiUseTemplate) DeepCopyInto(out *ChiUseTemplate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ChiVolumeClaimTemplate

type ChiVolumeClaimTemplate struct {
	Name             string                           `json:"name"          yaml:"name"`
	PVCReclaimPolicy PVCReclaimPolicy                 `json:"reclaimPolicy" yaml:"reclaimPolicy"`
	Spec             corev1.PersistentVolumeClaimSpec `json:"spec"          yaml:"spec"`
}

ChiVolumeClaimTemplate defines PersistentVolumeClaim Template, directly used by StatefulSet

func (*ChiVolumeClaimTemplate) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChiVolumeClaimTemplate.

func (*ChiVolumeClaimTemplate) DeepCopyInto

func (in *ChiVolumeClaimTemplate) DeepCopyInto(out *ChiVolumeClaimTemplate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ChiZookeeperConfig

type ChiZookeeperConfig struct {
	Nodes              []ChiZookeeperNode `json:"nodes,omitempty"                yaml:"nodes"`
	SessionTimeoutMs   int                `json:"session_timeout_ms,omitempty"   yaml:"session_timeout_ms"`
	OperationTimeoutMs int                `json:"operation_timeout_ms,omitempty" yaml:"operation_timeout_ms"`
	Root               string             `json:"root,omitempty"                 yaml:"root"`
	Identity           string             `json:"identity,omitempty"             yaml:"identity"`
}

ChiZookeeperConfig defines zookeeper section of .spec.configuration Refers to https://clickhouse.yandex/docs/en/single/index.html?#server-settings_zookeeper

func (*ChiZookeeperConfig) DeepCopy

func (in *ChiZookeeperConfig) DeepCopy() *ChiZookeeperConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChiZookeeperConfig.

func (*ChiZookeeperConfig) DeepCopyInto

func (in *ChiZookeeperConfig) DeepCopyInto(out *ChiZookeeperConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ChiZookeeperConfig) MergeFrom

func (zoo *ChiZookeeperConfig) MergeFrom(from *ChiZookeeperConfig, _type MergeType)

type ChiZookeeperNode

type ChiZookeeperNode struct {
	Host string `json:"host" yaml:"host"`
	Port int32  `json:"port" yaml:"port"`
}

ChiZookeeperNode defines item of nodes section of .spec.configuration.zookeeper

func (*ChiZookeeperNode) DeepCopy

func (in *ChiZookeeperNode) DeepCopy() *ChiZookeeperNode

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChiZookeeperNode.

func (*ChiZookeeperNode) DeepCopyInto

func (in *ChiZookeeperNode) DeepCopyInto(out *ChiZookeeperNode)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ChiZookeeperNode) Equal

func (zkNode *ChiZookeeperNode) Equal(to *ChiZookeeperNode) bool

type ClickHouseInstallation

type ClickHouseInstallation struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty" yaml:"metadata"`
	Spec              ChiSpec   `json:"spec"     yaml:"spec"`
	Status            ChiStatus `json:"status"`
}

ClickHouseInstallation defines the Installation of a ClickHouse Database Cluster

func (*ClickHouseInstallation) ClustersCount

func (chi *ClickHouseInstallation) ClustersCount() int

func (*ClickHouseInstallation) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClickHouseInstallation.

func (*ClickHouseInstallation) DeepCopyInto

func (in *ClickHouseInstallation) DeepCopyInto(out *ClickHouseInstallation)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClickHouseInstallation) DeepCopyObject

func (in *ClickHouseInstallation) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*ClickHouseInstallation) FillAddressInfo

func (chi *ClickHouseInstallation) FillAddressInfo()

func (*ClickHouseInstallation) FillChiPointer

func (chi *ClickHouseInstallation) FillChiPointer()

func (*ClickHouseInstallation) FindCluster

func (chi *ClickHouseInstallation) FindCluster(name string) *ChiCluster

func (*ClickHouseInstallation) GetChiServiceTemplate

func (chi *ClickHouseInstallation) GetChiServiceTemplate() (*ChiServiceTemplate, bool)

GetServiceTemplate gets ChiServiceTemplate of a CHI

func (*ClickHouseInstallation) GetPodTemplate

func (chi *ClickHouseInstallation) GetPodTemplate(name string) (*ChiPodTemplate, bool)

GetPodTemplate gets ChiPodTemplate by name

func (*ClickHouseInstallation) GetServiceTemplate

func (chi *ClickHouseInstallation) GetServiceTemplate(name string) (*ChiServiceTemplate, bool)

GetServiceTemplate gets ChiServiceTemplate by name

func (*ClickHouseInstallation) GetVolumeClaimTemplate

func (chi *ClickHouseInstallation) GetVolumeClaimTemplate(name string) (*ChiVolumeClaimTemplate, bool)

GetVolumeClaimTemplate gets ChiVolumeClaimTemplate by name

func (*ClickHouseInstallation) HostsCount

func (chi *ClickHouseInstallation) HostsCount() int

func (*ClickHouseInstallation) MatchFullName

func (chi *ClickHouseInstallation) MatchFullName(namespace, name string) bool

func (*ClickHouseInstallation) MergeFrom

func (chi *ClickHouseInstallation) MergeFrom(from *ClickHouseInstallation, _type MergeType)

func (*ClickHouseInstallation) ShardsCount

func (chi *ClickHouseInstallation) ShardsCount() int

func (*ClickHouseInstallation) StatusFill

func (chi *ClickHouseInstallation) StatusFill(endpoint string, pods []string)

StatusFill fills .Status

func (*ClickHouseInstallation) WalkClusters

func (chi *ClickHouseInstallation) WalkClusters(
	f func(cluster *ChiCluster) error,
) []error

func (*ClickHouseInstallation) WalkClustersFullPath

func (chi *ClickHouseInstallation) WalkClustersFullPath(
	f func(chi *ClickHouseInstallation, clusterIndex int, cluster *ChiCluster) error,
) []error

func (*ClickHouseInstallation) WalkHosts

func (chi *ClickHouseInstallation) WalkHosts(
	f func(host *ChiHost) error,
) []error

func (*ClickHouseInstallation) WalkHostsFullPath

func (chi *ClickHouseInstallation) WalkHostsFullPath(
	chiScopeCycleSize int,
	clusterScopeCycleSize int,
	f func(
		chi *ClickHouseInstallation,

		chiScopeIndex int,
		chiScopeCycleSize int,
		chiScopeCycleIndex int,
		chiScopeCycleOffset int,

		clusterScopeIndex int,
		clusterScopeCycleSize int,
		clusterScopeCycleIndex int,
		clusterScopeCycleOffset int,

		clusterIndex int,
		cluster *ChiCluster,

		shardIndex int,
		shard *ChiShard,

		replicaIndex int,
		host *ChiHost,
	) error,
) []error

func (*ClickHouseInstallation) WalkHostsTillError

func (chi *ClickHouseInstallation) WalkHostsTillError(
	f func(host *ChiHost) error,
) error

func (*ClickHouseInstallation) WalkPodTemplates

func (chi *ClickHouseInstallation) WalkPodTemplates(f func(template *ChiPodTemplate))

WalkPodTemplates walks over all PodTemplates

func (*ClickHouseInstallation) WalkShards

func (chi *ClickHouseInstallation) WalkShards(
	f func(
		shard *ChiShard,
	) error,
) []error

func (*ClickHouseInstallation) WalkShardsFullPath

func (chi *ClickHouseInstallation) WalkShardsFullPath(
	f func(
		chi *ClickHouseInstallation,
		clusterIndex int,
		cluster *ChiCluster,
		shardIndex int,
		shard *ChiShard,
	) error,
) []error

func (*ClickHouseInstallation) WalkTillError

func (chi *ClickHouseInstallation) WalkTillError(
	fChi func(chi *ClickHouseInstallation) error,
	fCluster func(cluster *ChiCluster) error,
	fShard func(shard *ChiShard) error,
	fHost func(host *ChiHost) error,
) error

func (*ClickHouseInstallation) WalkVolumeClaimTemplates

func (chi *ClickHouseInstallation) WalkVolumeClaimTemplates(f func(template *ChiVolumeClaimTemplate))

WalkVolumeClaimTemplates walks over all VolumeClaimTemplates

type ClickHouseInstallationList

type ClickHouseInstallationList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []ClickHouseInstallation `json:"items"`
}

ClickHouseInstallationList defines a list of ClickHouseInstallation resources

func (*ClickHouseInstallationList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClickHouseInstallationList.

func (*ClickHouseInstallationList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClickHouseInstallationList) DeepCopyObject

func (in *ClickHouseInstallationList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ClickHouseInstallationTemplate

type ClickHouseInstallationTemplate ClickHouseInstallation

func (*ClickHouseInstallationTemplate) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClickHouseInstallationTemplate.

func (*ClickHouseInstallationTemplate) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClickHouseInstallationTemplate) DeepCopyObject

func (in *ClickHouseInstallationTemplate) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ClickHouseInstallationTemplateList

type ClickHouseInstallationTemplateList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []ClickHouseInstallationTemplate `json:"items"`
}

func (*ClickHouseInstallationTemplateList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClickHouseInstallationTemplateList.

func (*ClickHouseInstallationTemplateList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClickHouseInstallationTemplateList) DeepCopyObject

func (in *ClickHouseInstallationTemplateList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ClickHouseOperatorConfiguration

type ClickHouseOperatorConfiguration struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              OperatorConfig `json:"spec"`
	Status            string         `json:"status"`
}

func (*ClickHouseOperatorConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClickHouseOperatorConfiguration.

func (*ClickHouseOperatorConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClickHouseOperatorConfiguration) DeepCopyObject

func (in *ClickHouseOperatorConfiguration) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ClickHouseOperatorConfigurationList

type ClickHouseOperatorConfigurationList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []ClickHouseOperatorConfiguration `json:"items"`
}

func (*ClickHouseOperatorConfigurationList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClickHouseOperatorConfigurationList.

func (*ClickHouseOperatorConfigurationList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClickHouseOperatorConfigurationList) DeepCopyObject

func (in *ClickHouseOperatorConfigurationList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type MergeType

type MergeType string

type OperatorConfig

type OperatorConfig struct {
	// Full path to the config file and folder where this OperatorConfig originates from
	ConfigFilePath   string
	ConfigFolderPath string

	// WatchNamespaces where operator watches for events
	WatchNamespaces []string `json:"watchNamespaces" yaml:"watchNamespaces"`

	// Paths where to look for additional ClickHouse config .xml files to be mounted into Pod
	// config.d
	// conf.d
	// users.d
	// respectively
	ChCommonConfigsPath string `json:"chCommonConfigsPath" yaml:"chCommonConfigsPath"`
	ChHostConfigsPath   string `json:"chHostConfigsPath"   yaml:"chHostConfigsPath"`
	ChUsersConfigsPath  string `json:"chUsersConfigsPath"  yaml:"chUsersConfigsPath"`
	// OperatorConfig files fetched from these paths. Maps "file name->file content"
	ChCommonConfigs map[string]string
	ChHostConfigs   map[string]string
	ChUsersConfigs  map[string]string

	// Path where to look for ClickHouseInstallation templates .yaml files
	ChiTemplatesPath string `json:"chiTemplatesPath" yaml:"chiTemplatesPath"`
	// Chi template files fetched from this path. Maps "file name->file content"
	ChiTemplateFiles map[string]string
	// Chi template objects unmarshalled from ChiTemplateFiles. Maps "metadata.name->object"
	ChiTemplates []*ClickHouseInstallation
	// ClickHouseInstallation template
	ChiTemplate *ClickHouseInstallation

	// Create/Update StatefulSet behavior - for how long to wait for StatefulSet to reach new Generation
	StatefulSetUpdateTimeout uint64 `json:"statefulSetUpdateTimeout" yaml:"statefulSetUpdateTimeout"`
	// Create/Update StatefulSet behavior - for how long to sleep while polling StatefulSet to reach new Generation
	StatefulSetUpdatePollPeriod uint64 `json:"statefulSetUpdatePollPeriod" yaml:"statefulSetUpdatePollPeriod"`

	// Rolling Create/Update behavior
	// StatefulSet create behavior - what to do in case StatefulSet can't reach new Generation
	OnStatefulSetCreateFailureAction string `json:"onStatefulSetCreateFailureAction" yaml:"onStatefulSetCreateFailureAction"`
	// StatefulSet update behavior - what to do in case StatefulSet can't reach new Generation
	OnStatefulSetUpdateFailureAction string `json:"onStatefulSetUpdateFailureAction" yaml:"onStatefulSetUpdateFailureAction"`

	// Default values for ClickHouse user configuration
	// 1. user/profile - string
	// 2. user/quota - string
	// 3. user/networks/ip - multiple strings
	// 4. user/password - string
	ChConfigUserDefaultProfile    string   `json:"chConfigUserDefaultProfile"    yaml:"chConfigUserDefaultProfile"`
	ChConfigUserDefaultQuota      string   `json:"chConfigUserDefaultQuota"      yaml:"chConfigUserDefaultQuota"`
	ChConfigUserDefaultNetworksIP []string `json:"chConfigUserDefaultNetworksIP" yaml:"chConfigUserDefaultNetworksIP"`
	ChConfigUserDefaultPassword   string   `json:"chConfigUserDefaultPassword"   yaml:"chConfigUserDefaultPassword"`

	ChConfigNetworksHostRegexpTemplate string `json:"chConfigNetworksHostRegexpTemplate" yaml:"chConfigNetworksHostRegexpTemplate"`
	// Username and Password to be used by operator to connect to ClickHouse instances for
	// 1. Metrics requests
	// 2. Schema maintenance
	// User credentials can be specified in additional ClickHouse config files located in `chUsersConfigsPath` folder
	ChUsername string `json:"chUsername" yaml:"chUsername"`
	ChPassword string `json:"chPassword" yaml:"chPassword"`
	ChPort     int    `json:"chPort"     yaml:"chPort""`
}

!!! IMPORTANT !!! !!! IMPORTANT !!! !!! IMPORTANT !!! !!! IMPORTANT !!! !!! IMPORTANT !!! Do not forget to update func (config *OperatorConfig) String() Do not forget to update CRD spec

func (*OperatorConfig) AddChiTemplate

func (config *OperatorConfig) AddChiTemplate(template *ClickHouseInstallation)

func (*OperatorConfig) DeepCopy

func (in *OperatorConfig) DeepCopy() *OperatorConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatorConfig.

func (*OperatorConfig) DeepCopyInto

func (in *OperatorConfig) DeepCopyInto(out *OperatorConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OperatorConfig) DeleteChiTemplate

func (config *OperatorConfig) DeleteChiTemplate(template *ClickHouseInstallation)

func (*OperatorConfig) FindTemplate

func (config *OperatorConfig) FindTemplate(use *ChiUseTemplate, namespace string) *ClickHouseInstallation

func (*OperatorConfig) GetInformerNamespace

func (config *OperatorConfig) GetInformerNamespace() string

GetInformerNamespace is a TODO stub Namespace where informers would watch notifications from

func (*OperatorConfig) IsWatchedNamespace

func (config *OperatorConfig) IsWatchedNamespace(namespace string) bool

IsWatchedNamespace returns whether specified namespace is in a list of watched

func (*OperatorConfig) MergeFrom

func (config *OperatorConfig) MergeFrom(from *OperatorConfig, _type MergeType)

MergeFrom merges

func (*OperatorConfig) Postprocess

func (config *OperatorConfig) Postprocess()

func (*OperatorConfig) String

func (config *OperatorConfig) String() string

String returns string representation of a OperatorConfig

func (*OperatorConfig) UpdateChiTemplate

func (config *OperatorConfig) UpdateChiTemplate(template *ClickHouseInstallation)

func (*OperatorConfig) WriteToLog

func (config *OperatorConfig) WriteToLog()

WriteToLog writes OperatorConfig into log

type PVCReclaimPolicy

type PVCReclaimPolicy string
const (
	PVCReclaimPolicyRetain PVCReclaimPolicy = "Retain"
	PVCReclaimPolicyDelete PVCReclaimPolicy = "Delete"
)

func (PVCReclaimPolicy) IsValid

func (v PVCReclaimPolicy) IsValid() bool

isValid checks whether PVCReclaimPolicy is valid

Jump to

Keyboard shortcuts

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