Documentation ¶
Overview ¶
Package v1 contains API Schema definitions for the asdb v1 API group +kubebuilder:object:generate=true +groupName=asdb.aerospike.com
Index ¶
- Constants
- Variables
- func ClusterNamespacedName(aeroCluster *AerospikeCluster) string
- func ContainsString(list []string, ele string) bool
- func DistributeItems(totalItems, totalGroups int) []int
- func GetAerospikeInitContainerImage(aeroCluster *AerospikeCluster) string
- func GetAllPodNames(pods map[string]AerospikePodStatus) sets.Set[string]
- func GetBool(boolPtr *bool) bool
- func GetBoolConfig(configMap map[string]interface{}, key string) (bool, error)
- func GetConfigContext(aerospikeConfigSpec *AerospikeConfigSpec, context string) (map[string]interface{}, error)
- func GetConfiguredWorkDirectory(aerospikeConfigSpec AerospikeConfigSpec) string
- func GetDefaultPasswordFilePath(aerospikeConfigSpec *AerospikeConfigSpec) *string
- func GetDigestLogFile(aerospikeConfigSpec AerospikeConfigSpec) (*string, error)
- func GetFabricPort(aeroConf *AerospikeConfigSpec) *int
- func GetFabricTLSNameAndPort(aeroConf *AerospikeConfigSpec) (tlsName string, port *int)
- func GetHeartbeatPort(aeroConf *AerospikeConfigSpec) *int
- func GetHeartbeatTLSNameAndPort(aeroConf *AerospikeConfigSpec) (tlsName string, port *int)
- func GetImageVersion(imageStr string) (string, error)
- func GetIntType(value interface{}) (int, error)
- func GetMigrateFillDelay(asConfig *AerospikeConfigSpec) (int, error)
- func GetPortFromConfig(aeroConf *AerospikeConfigSpec, connectionType string, paramName string) *int
- func GetRolesFromSpec(spec *AerospikeClusterSpec) map[string]AerospikeRoleSpec
- func GetServicePort(aeroConf *AerospikeConfigSpec) *int
- func GetServiceTLSNameAndPort(aeroConf *AerospikeConfigSpec) (tlsName string, port *int)
- func GetTLSNameAndPort(aeroConf *AerospikeConfigSpec, connectionType string) (tlsName string, port *int)
- func GetUsersFromSpec(spec *AerospikeClusterSpec) map[string]AerospikeUserSpec
- func GetWorkDirectory(aerospikeConfigSpec AerospikeConfigSpec) string
- func IsAerospikeAccessControlValid(aerospikeClusterSpec *AerospikeClusterSpec) (bool, error)
- func IsAerospikeNamespacePresent(aerospikeConfigSpec AerospikeConfigSpec, namespaceName string) bool
- func IsAttributeEnabled(aerospikeConfigSpec *AerospikeConfigSpec, context, key string) (bool, error)
- func IsClusterSCEnabled(aeroCluster *AerospikeCluster) bool
- func IsNSSCEnabled(nsConf map[string]interface{}) bool
- func IsSecurityEnabled(version string, aerospikeConfig *AerospikeConfigSpec) (bool, error)
- func IsServiceTLSEnabled(aerospikeConfigSpec *AerospikeConfigSpec) bool
- func IsXdrEnabled(aerospikeConfigSpec AerospikeConfigSpec) bool
- func NamespacedName(namespace, name string) string
- func ParseDockerImageTag(tag string) (registry string, name string, version string)
- func ReadTLSAuthenticateClient(serviceConf map[string]interface{}) ([]string, error)
- func ValidateAerospikeObjectMeta(aerospikeObjectMeta *AerospikeObjectMeta) error
- func ValidateTLSAuthenticateClient(serviceConf map[string]interface{}) ([]string, error)
- type AerospikeAccessControlSpec
- type AerospikeCertPathInOperatorSource
- type AerospikeClientAdminPolicy
- type AerospikeCluster
- func (in *AerospikeCluster) DeepCopy() *AerospikeCluster
- func (in *AerospikeCluster) DeepCopyInto(out *AerospikeCluster)
- func (in *AerospikeCluster) DeepCopyObject() runtime.Object
- func (c *AerospikeCluster) Default(operation v1.Operation) admission.Response
- func (c *AerospikeCluster) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (c *AerospikeCluster) ValidateCreate() (admission.Warnings, error)
- func (c *AerospikeCluster) ValidateDelete() (admission.Warnings, error)
- func (c *AerospikeCluster) ValidateUpdate(oldObj runtime.Object) (admission.Warnings, error)
- type AerospikeClusterList
- type AerospikeClusterPhase
- type AerospikeClusterSpec
- type AerospikeClusterStatus
- type AerospikeClusterStatusSpec
- type AerospikeConfigSpec
- type AerospikeContainerSpec
- type AerospikeInitContainerSpec
- type AerospikeInstanceSummary
- type AerospikeNetworkPolicy
- type AerospikeNetworkType
- type AerospikeObjectMeta
- type AerospikeOperatorCertSource
- type AerospikeOperatorClientCertSpec
- type AerospikePersistentVolumePolicySpec
- func (in *AerospikePersistentVolumePolicySpec) DeepCopy() *AerospikePersistentVolumePolicySpec
- func (in *AerospikePersistentVolumePolicySpec) DeepCopyInto(out *AerospikePersistentVolumePolicySpec)
- func (p *AerospikePersistentVolumePolicySpec) SetDefaults(defaultPolicy *AerospikePersistentVolumePolicySpec)
- type AerospikePodSpec
- type AerospikePodStatus
- type AerospikeRoleSpec
- type AerospikeSecretCertSource
- type AerospikeServerVolumeAttachment
- type AerospikeStorageSpec
- func (in *AerospikeStorageSpec) DeepCopy() *AerospikeStorageSpec
- func (in *AerospikeStorageSpec) DeepCopyInto(out *AerospikeStorageSpec)
- func (s *AerospikeStorageSpec) GetNonPVs() (nonPVs []VolumeSpec)
- func (s *AerospikeStorageSpec) GetPVs() (pVs []VolumeSpec)
- func (s *AerospikeStorageSpec) GetVolumeForAerospikePath(path string) *VolumeSpec
- func (s *AerospikeStorageSpec) SetDefaults()
- type AerospikeUserSpec
- type AerospikeVolumeMethod
- type AttachmentOptions
- type CaCertsSource
- type DynamicConfigUpdateStatus
- type LoadBalancerSpec
- type MountOptions
- type OperationKind
- type OperationSpec
- type PersistentVolumeSpec
- type PrivilegeScope
- type Rack
- type RackConfig
- type RackPodSpec
- type SchedulingPolicy
- type SeedsFinderServices
- type ValidationPolicySpec
- type VolumeAttachment
- type VolumeSource
- type VolumeSpec
Constants ¶
const ( // AdminUsername for aerospike cluster AdminUsername = "admin" // DefaultAdminPassword si default admin user password. DefaultAdminPassword = "admin" // Version6 server version 6 tag Version6 = "6.0.0.0" )
const ( // AerospikeVolumeMethodNone specifies the block volume should not be initialized. AerospikeVolumeMethodNone AerospikeVolumeMethod = "none" // AerospikeVolumeMethodDD specifies the block volume should be zeroed using dd command. AerospikeVolumeMethodDD AerospikeVolumeMethod = "dd" // AerospikeVolumeMethodBlkdiscard specifies the block volume should be zeroed using blkdiscard command. AerospikeVolumeMethodBlkdiscard AerospikeVolumeMethod = "blkdiscard" // AerospikeVolumeMethodDeleteFiles specifies the filesystem volume // should be initialized by deleting files. AerospikeVolumeMethodDeleteFiles AerospikeVolumeMethod = "deleteFiles" // AerospikeVolumeSingleCleanupThread specifies the single thread // for disks cleanup in init container. AerospikeVolumeSingleCleanupThread int = 1 )
const ( // DefaultRackID is the ID for the default rack created when no racks are specified. DefaultRackID = 0 MaxRackID = 1000000 MinRackID = 1 ServiceTLSPortName = "tls-service" ServicePortName = "service" HeartbeatTLSPortName = "tls-heartbeat" HeartbeatPortName = "heartbeat" FabricTLSPortName = "tls-fabric" FabricPortName = "fabric" InfoPortName = "info" )
const ( AerospikeServerContainerName = "aerospike-server" AerospikeInitContainerName = "aerospike-init" AerospikeInitContainerRegistryEnvVar = "AEROSPIKE_KUBERNETES_INIT_REGISTRY" AerospikeInitContainerRegistryNamespaceEnvVar = "AEROSPIKE_KUBERNETES_INIT_REGISTRY_NAMESPACE" AerospikeInitContainerNameTagEnvVar = "AEROSPIKE_KUBERNETES_INIT_NAME_TAG" AerospikeInitContainerDefaultRegistry = "docker.io" AerospikeInitContainerDefaultRegistryNamespace = "aerospike" AerospikeInitContainerDefaultNameAndTag = "aerospike-kubernetes-init:2.2.2" AerospikeAppLabel = "app" AerospikeAppLabelValue = "aerospike-cluster" AerospikeCustomResourceLabel = "aerospike.com/cr" AerospikeRackIDLabel = "aerospike.com/rack-id" AerospikeAPIVersionLabel = "aerospike.com/api-version" AerospikeAPIVersion = "v1" )
const (
// Defaults.
DefaultWorkDirectory = "/opt/aerospike"
)
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "asdb.aerospike.com", Version: "v1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
var Post6PredefinedRoles = map[string]struct{}{
"truncate": {},
"sindex-admin": {},
"udf-admin": {},
}
Post6PredefinedRoles are roles predefined post version 6.0 in Aerospike server.
var Post6Privileges = map[string][]PrivilegeScope{ "truncate": {Global, NamespaceSet}, "sindex-admin": {Global}, "udf-admin": {Global}, }
Post6Privileges are post version 6.0 privilege strings allowed in the spec and associated scopes.
var PredefinedRoles = map[string]struct{}{
"user-admin": {},
"sys-admin": {},
"data-admin": {},
"read": {},
"read-write": {},
"read-write-udf": {},
"write": {},
"truncate": {},
"sindex-admin": {},
"udf-admin": {},
}
PredefinedRoles are all roles predefined in Aerospike server.
var Privileges = map[string][]PrivilegeScope{ "read": {Global, NamespaceSet}, "write": {Global, NamespaceSet}, "read-write": {Global, NamespaceSet}, "read-write-udf": {Global, NamespaceSet}, "data-admin": {Global}, "sys-admin": {Global}, "user-admin": {Global}, "truncate": {Global, NamespaceSet}, "sindex-admin": {Global}, "udf-admin": {Global}, }
Privileges are all privilege string allowed in the spec and associated scopes.
Functions ¶
func ClusterNamespacedName ¶
func ClusterNamespacedName(aeroCluster *AerospikeCluster) string
func ContainsString ¶
ContainsString check whether list contains given string
func DistributeItems ¶
func GetAerospikeInitContainerImage ¶
func GetAerospikeInitContainerImage(aeroCluster *AerospikeCluster) string
func GetAllPodNames ¶
func GetAllPodNames(pods map[string]AerospikePodStatus) sets.Set[string]
func GetBool ¶
GetBool returns the value of the given bool pointer. If the pointer is nil, it returns false.
func GetConfigContext ¶
func GetConfigContext( aerospikeConfigSpec *AerospikeConfigSpec, context string, ) (map[string]interface{}, error)
func GetConfiguredWorkDirectory ¶
func GetConfiguredWorkDirectory(aerospikeConfigSpec AerospikeConfigSpec) string
GetConfiguredWorkDirectory returns the Aerospike work directory configured in aerospikeConfig.
func GetDefaultPasswordFilePath ¶
func GetDefaultPasswordFilePath(aerospikeConfigSpec *AerospikeConfigSpec) *string
GetDefaultPasswordFilePath returns the default-password-fille path if configured.
func GetDigestLogFile ¶
func GetDigestLogFile(aerospikeConfigSpec AerospikeConfigSpec) ( *string, error, )
GetDigestLogFile returns the xdr digest file path if configured.
func GetFabricPort ¶
func GetFabricPort(aeroConf *AerospikeConfigSpec) *int
func GetFabricTLSNameAndPort ¶
func GetFabricTLSNameAndPort(aeroConf *AerospikeConfigSpec) (tlsName string, port *int)
func GetHeartbeatPort ¶
func GetHeartbeatPort(aeroConf *AerospikeConfigSpec) *int
func GetHeartbeatTLSNameAndPort ¶
func GetHeartbeatTLSNameAndPort(aeroConf *AerospikeConfigSpec) (tlsName string, port *int)
func GetImageVersion ¶
GetImageVersion extracts the Aerospike version from a container image. The implementation extracts the image tag and find the longest string from it that is a version string. Note: The behaviour should match the operator's python implementation in init container extracting version.
func GetIntType ¶
GetIntType typecasts the numeric value to the supported type
func GetMigrateFillDelay ¶
func GetMigrateFillDelay(asConfig *AerospikeConfigSpec) (int, error)
GetMigrateFillDelay returns the migrate-fill-delay from the Aerospike configuration
func GetPortFromConfig ¶
func GetPortFromConfig( aeroConf *AerospikeConfigSpec, connectionType string, paramName string, ) *int
func GetRolesFromSpec ¶
func GetRolesFromSpec(spec *AerospikeClusterSpec) map[string]AerospikeRoleSpec
GetRolesFromSpec returns roles or an empty map from the spec.
func GetServicePort ¶
func GetServicePort(aeroConf *AerospikeConfigSpec) *int
func GetServiceTLSNameAndPort ¶
func GetServiceTLSNameAndPort(aeroConf *AerospikeConfigSpec) (tlsName string, port *int)
func GetTLSNameAndPort ¶
func GetTLSNameAndPort( aeroConf *AerospikeConfigSpec, connectionType string, ) (tlsName string, port *int)
func GetUsersFromSpec ¶
func GetUsersFromSpec(spec *AerospikeClusterSpec) map[string]AerospikeUserSpec
GetUsersFromSpec returns users or an empty map from the spec.
func GetWorkDirectory ¶
func GetWorkDirectory(aerospikeConfigSpec AerospikeConfigSpec) string
GetWorkDirectory returns the Aerospike work directory to be used for aerospikeConfig.
func IsAerospikeAccessControlValid ¶
func IsAerospikeAccessControlValid(aerospikeClusterSpec *AerospikeClusterSpec) ( bool, error, )
IsAerospikeAccessControlValid validates the accessControl specification in the clusterSpec.
Asserts that the AerospikeAccessControlSpec
has correct references to other objects like namespaces follows rules defined https://www.aerospike.com/docs/guide/limitations.html follows rules found through server code inspection for e.g. predefined roles meets operator requirements. For e.g. the necessity to have at least one sys-admin and user-admin user.
func IsAerospikeNamespacePresent ¶
func IsAerospikeNamespacePresent( aerospikeConfigSpec AerospikeConfigSpec, namespaceName string, ) bool
IsAerospikeNamespacePresent indicates if the namespace is present in aerospikeConfig. Assumes the namespace section is validated.
func IsAttributeEnabled ¶
func IsAttributeEnabled( aerospikeConfigSpec *AerospikeConfigSpec, context, key string, ) (bool, error)
func IsClusterSCEnabled ¶
func IsClusterSCEnabled(aeroCluster *AerospikeCluster) bool
IsClusterSCEnabled returns true if cluster has a sc namespace
func IsNSSCEnabled ¶
func IsSecurityEnabled ¶
func IsSecurityEnabled( version string, aerospikeConfig *AerospikeConfigSpec, ) (bool, error)
IsSecurityEnabled tells if security is enabled in cluster TODO: can an invalid map come here
func IsServiceTLSEnabled ¶
func IsServiceTLSEnabled(aerospikeConfigSpec *AerospikeConfigSpec) bool
IsServiceTLSEnabled tells if service is tls enabled.
func IsXdrEnabled ¶
func IsXdrEnabled(aerospikeConfigSpec AerospikeConfigSpec) bool
IsXdrEnabled indicates if XDR is enabled in aerospikeConfig.
func NamespacedName ¶
NamespacedName return namespaced name
func ParseDockerImageTag ¶
ParseDockerImageTag parses input tag into registry, name and version.
func ValidateAerospikeObjectMeta ¶
func ValidateAerospikeObjectMeta(aerospikeObjectMeta *AerospikeObjectMeta) error
func ValidateTLSAuthenticateClient ¶
ValidateTLSAuthenticateClient validate the tls-authenticate-client field in the service configuration.
Types ¶
type AerospikeAccessControlSpec ¶
type AerospikeAccessControlSpec struct { AdminPolicy *AerospikeClientAdminPolicy `json:"adminPolicy,omitempty"` // Roles is the set of roles to allow on the Aerospike cluster. // +patchMergeKey=name // +patchStrategy=merge // +listType=map // +listMapKey=name Roles []AerospikeRoleSpec `json:"roles,omitempty" patchStrategy:"merge" patchMergeKey:"name"` // Users is the set of users to allow on the Aerospike cluster. // +patchMergeKey=name // +patchStrategy=merge // +listType=map // +listMapKey=name Users []AerospikeUserSpec `json:"users" patchStrategy:"merge" patchMergeKey:"name"` }
AerospikeAccessControlSpec specifies the roles and users to set up on the database fo access control.
func (*AerospikeAccessControlSpec) DeepCopy ¶
func (in *AerospikeAccessControlSpec) DeepCopy() *AerospikeAccessControlSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AerospikeAccessControlSpec.
func (*AerospikeAccessControlSpec) DeepCopyInto ¶
func (in *AerospikeAccessControlSpec) DeepCopyInto(out *AerospikeAccessControlSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AerospikeCertPathInOperatorSource ¶
type AerospikeCertPathInOperatorSource struct { // +optional CaCertsPath string `json:"caCertsPath,omitempty"` // +optional ClientCertPath string `json:"clientCertPath,omitempty"` // +optional ClientKeyPath string `json:"clientKeyPath,omitempty"` }
AerospikeCertPathInOperatorSource contain configuration for certificates used by operator to connect to aerospike cluster. All paths are on operator's filesystem.
func (*AerospikeCertPathInOperatorSource) DeepCopy ¶
func (in *AerospikeCertPathInOperatorSource) DeepCopy() *AerospikeCertPathInOperatorSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AerospikeCertPathInOperatorSource.
func (*AerospikeCertPathInOperatorSource) DeepCopyInto ¶
func (in *AerospikeCertPathInOperatorSource) DeepCopyInto(out *AerospikeCertPathInOperatorSource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AerospikeClientAdminPolicy ¶
type AerospikeClientAdminPolicy struct { // Timeout for admin client policy in milliseconds. Timeout int `json:"timeout"` }
AerospikeClientAdminPolicy specify the aerospike client admin policy for access control operations.
func (*AerospikeClientAdminPolicy) DeepCopy ¶
func (in *AerospikeClientAdminPolicy) DeepCopy() *AerospikeClientAdminPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AerospikeClientAdminPolicy.
func (*AerospikeClientAdminPolicy) DeepCopyInto ¶
func (in *AerospikeClientAdminPolicy) DeepCopyInto(out *AerospikeClientAdminPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AerospikeCluster ¶
type AerospikeCluster struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec AerospikeClusterSpec `json:"spec,omitempty"` Status AerospikeClusterStatus `json:"status,omitempty"` }
AerospikeCluster is the schema for the AerospikeCluster API +operator-sdk:csv:customresourcedefinitions:displayName="Aerospike Cluster",resources={{Service, v1},{Pod,v1},{StatefulSet,v1}} +kubebuilder:metadata:annotations="aerospike-kubernetes-operator/version=3.4.0"
func (*AerospikeCluster) DeepCopy ¶
func (in *AerospikeCluster) DeepCopy() *AerospikeCluster
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AerospikeCluster.
func (*AerospikeCluster) DeepCopyInto ¶
func (in *AerospikeCluster) DeepCopyInto(out *AerospikeCluster)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AerospikeCluster) DeepCopyObject ¶
func (in *AerospikeCluster) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*AerospikeCluster) Default ¶
func (c *AerospikeCluster) Default(operation v1.Operation) admission.Response
Default implements webhook.Defaulter so a webhook will be registered for the type
func (*AerospikeCluster) SetupWebhookWithManager ¶
func (c *AerospikeCluster) SetupWebhookWithManager(mgr ctrl.Manager) error
func (*AerospikeCluster) ValidateCreate ¶
func (c *AerospikeCluster) ValidateCreate() (admission.Warnings, error)
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*AerospikeCluster) ValidateDelete ¶
func (c *AerospikeCluster) ValidateDelete() (admission.Warnings, error)
ValidateDelete implements webhook.Validator so a webhook will be registered for the type
func (*AerospikeCluster) ValidateUpdate ¶
ValidateUpdate validate update
type AerospikeClusterList ¶
type AerospikeClusterList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []AerospikeCluster `json:"items"` }
AerospikeClusterList contains a list of AerospikeCluster
func (*AerospikeClusterList) DeepCopy ¶
func (in *AerospikeClusterList) DeepCopy() *AerospikeClusterList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AerospikeClusterList.
func (*AerospikeClusterList) DeepCopyInto ¶
func (in *AerospikeClusterList) DeepCopyInto(out *AerospikeClusterList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AerospikeClusterList) DeepCopyObject ¶
func (in *AerospikeClusterList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AerospikeClusterPhase ¶
type AerospikeClusterPhase string
+kubebuilder:validation:Enum=InProgress;Completed;Error
const ( // AerospikeClusterInProgress means the Aerospike cluster CR is being reconciled and operations are in-progress state. // This phase denotes that changes are gradually rolling out to the cluster. // For example, when the Aerospike server version is upgraded in CR, then InProgress phase is set until the upgrade // is completed. AerospikeClusterInProgress AerospikeClusterPhase = "InProgress" // AerospikeClusterCompleted means the Aerospike cluster CR has been reconciled. This phase denotes that the cluster // has been deployed/upgraded successfully and is ready to use. // For example, when the Aerospike server version is upgraded in CR, then Completed phase is set after the upgrade is // completed. AerospikeClusterCompleted AerospikeClusterPhase = "Completed" // AerospikeClusterError means the Aerospike cluster operation is in error state because of some reason like // misconfiguration, infra issues, etc. // For example, when the Aerospike server version is upgraded in CR, then Error phase is set if the upgrade fails // due to the wrong image issue, etc. AerospikeClusterError AerospikeClusterPhase = "Error" )
These are the valid phases of Aerospike cluster.
type AerospikeClusterSpec ¶
type AerospikeClusterSpec struct { // Aerospike cluster size // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Cluster Size" Size int32 `json:"size"` // Aerospike server image // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Server Image" Image string `json:"image"` // disruption. This value is used to create PodDisruptionBudget. Defaults to 1. // Refer Aerospike documentation for more details. // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Max Unavailable" MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"` // Disable the PodDisruptionBudget creation for the Aerospike cluster. // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Disable PodDisruptionBudget" DisablePDB *bool `json:"disablePDB,omitempty"` // Storage specify persistent storage to use for the Aerospike pods // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Storage" Storage AerospikeStorageSpec `json:"storage,omitempty"` // Has the Aerospike roles and users definitions. Required if aerospike cluster security is enabled. // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Access Control" AerospikeAccessControl *AerospikeAccessControlSpec `json:"aerospikeAccessControl,omitempty"` // Sets config in aerospike.conf file. Other configs are taken as default // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Aerospike Server Configuration" // +kubebuilder:pruning:PreserveUnknownFields AerospikeConfig *AerospikeConfigSpec `json:"aerospikeConfig"` // EnableDynamicConfigUpdate enables dynamic config update flow of the operator. // If enabled, operator will try to update the Aerospike config dynamically. // In case of inconsistent state during dynamic config update, operator falls back to rolling restart. // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enable Dynamic Config Update" EnableDynamicConfigUpdate *bool `json:"enableDynamicConfigUpdate,omitempty"` // ValidationPolicy controls validation of the Aerospike cluster resource. // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Validation Policy" ValidationPolicy *ValidationPolicySpec `json:"validationPolicy,omitempty"` // RackConfig Configures the operator to deploy rack aware Aerospike cluster. // Pods will be deployed in given racks based on given configuration // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Rack Config" RackConfig RackConfig `json:"rackConfig,omitempty"` // AerospikeNetworkPolicy specifies how clients and tools access the Aerospike cluster. // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Aerospike Network Policy" AerospikeNetworkPolicy AerospikeNetworkPolicy `json:"aerospikeNetworkPolicy,omitempty"` // Certificates to connect to Aerospike. // +optional // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Operator Client Cert" OperatorClientCertSpec *AerospikeOperatorClientCertSpec `json:"operatorClientCert,omitempty"` // Specify additional configuration for the Aerospike pods // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Pod Configuration" PodSpec AerospikePodSpec `json:"podSpec,omitempty"` // SeedsFinderServices creates additional Kubernetes service that allow // clients to discover Aerospike cluster nodes. // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Seeds Finder Services" SeedsFinderServices SeedsFinderServices `json:"seedsFinderServices,omitempty"` // RosterNodeBlockList is a list of blocked nodeIDs from roster in a strong-consistency setup // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Roster Node BlockList" RosterNodeBlockList []string `json:"rosterNodeBlockList,omitempty"` // K8sNodeBlockList is a list of Kubernetes nodes which are not used for Aerospike pods. Pods are not scheduled on // these nodes. Pods are migrated from these nodes if already present. This is useful for the maintenance of // Kubernetes nodes. // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Kubernetes Node BlockList" // +kubebuilder:validation:MinItems:=1 K8sNodeBlockList []string `json:"k8sNodeBlockList,omitempty"` // Paused flag is used to pause the reconciliation for the AerospikeCluster. // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Pause Reconcile" Paused *bool `json:"paused,omitempty"` // Operations is a list of on-demand operations to be performed on the Aerospike cluster. // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Operations" // +kubebuilder:validation:MaxItems:=1 Operations []OperationSpec `json:"operations,omitempty"` }
AerospikeClusterSpec defines the desired state of AerospikeCluster +k8s:openapi-gen=true
func CopyStatusToSpec ¶
func CopyStatusToSpec(status *AerospikeClusterStatusSpec) (*AerospikeClusterSpec, error)
CopyStatusToSpec copy status in spec. Status to Spec DeepCopy doesn't work. It fails in reflect lib.
func (*AerospikeClusterSpec) DeepCopy ¶
func (in *AerospikeClusterSpec) DeepCopy() *AerospikeClusterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AerospikeClusterSpec.
func (*AerospikeClusterSpec) DeepCopyInto ¶
func (in *AerospikeClusterSpec) DeepCopyInto(out *AerospikeClusterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AerospikeClusterStatus ¶
type AerospikeClusterStatus struct { // INSERT ADDITIONAL STATUS FIELD - define observed state of cluster // Add custom validation // using kubebuilder tags: https://book-v1.book.kubebuilder.io/beyond_basics/generating_crd.html // +nullable // The current state of Aerospike cluster. AerospikeClusterStatusSpec `json:",inline"` // Pods has Aerospike specific status of the pods. // This is map instead of the conventional map as list convention to allow each pod to patch update its own // status. The map key is the name of the pod. // +patchStrategy=strategic // +optional Pods map[string]AerospikePodStatus `json:"pods" patchStrategy:"strategic"` // Phase denotes the current phase of Aerospike cluster operation. Phase AerospikeClusterPhase `json:"phase,omitempty"` }
AerospikeClusterStatus defines the observed state of AerospikeCluster +k8s:openapi-gen=true
func (*AerospikeClusterStatus) DeepCopy ¶
func (in *AerospikeClusterStatus) DeepCopy() *AerospikeClusterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AerospikeClusterStatus.
func (*AerospikeClusterStatus) DeepCopyInto ¶
func (in *AerospikeClusterStatus) DeepCopyInto(out *AerospikeClusterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AerospikeClusterStatusSpec ¶
type AerospikeClusterStatusSpec struct { // Aerospike cluster size Size int32 `json:"size,omitempty"` // Aerospike server image Image string `json:"image,omitempty"` // disruption. This value is used to create PodDisruptionBudget. Defaults to 1. MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"` // Disable the PodDisruptionBudget creation for the Aerospike cluster. DisablePDB *bool `json:"disablePDB,omitempty"` // If set true then multiple pods can be created per Kubernetes Node. // This will create a NodePort service for each Pod. // NodePort, as the name implies, opens a specific port on all the Kubernetes Nodes , // and any traffic that is sent to this port is forwarded to the service. // Here service picks a random port in range (30000-32767), so these port should be open. // // If set false then only single pod can be created per Kubernetes Node. // This will create Pods using hostPort setting. // The container port will be exposed to the external network at <hostIP>:<hostPort>, // where the hostIP is the IP address of the Kubernetes Node where the container is running and // the hostPort is the port requested by the user. // Deprecated: MultiPodPerHost is now part of podSpec MultiPodPerHost *bool `json:"multiPodPerHost,omitempty"` // Storage specify persistent storage to use for the Aerospike pods. Storage AerospikeStorageSpec `json:"storage,omitempty"` // AerospikeAccessControl has the Aerospike roles and users definitions. // Required if aerospike cluster security is enabled. AerospikeAccessControl *AerospikeAccessControlSpec `json:"aerospikeAccessControl,omitempty"` // AerospikeConfig sets config in aerospike.conf file. Other configs are taken as default // +kubebuilder:pruning:PreserveUnknownFields // +nullable AerospikeConfig *AerospikeConfigSpec `json:"aerospikeConfig,omitempty"` // EnableDynamicConfigUpdate enables dynamic config update flow of the operator. // If enabled, operator will try to update the Aerospike config dynamically. // In case of inconsistent state during dynamic config update, operator falls back to rolling restart. // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enable Dynamic Config Update" EnableDynamicConfigUpdate *bool `json:"enableDynamicConfigUpdate,omitempty"` // IsReadinessProbeEnabled tells whether the readiness probe is present in all pods or not. // Moreover, PodDisruptionBudget should be created for the Aerospike cluster only when this field is enabled. // +optional IsReadinessProbeEnabled bool `json:"isReadinessProbeEnabled"` // Define resources requests and limits for Aerospike Server Container. // Please contact aerospike for proper sizing exercise // Only Memory and Cpu resources can be given // Deprecated: Resources field is now part of containerSpec Resources *corev1.ResourceRequirements `json:"resources,omitempty"` // ValidationPolicy controls validation of the Aerospike cluster resource. ValidationPolicy *ValidationPolicySpec `json:"validationPolicy,omitempty"` // RackConfig Configures the operator to deploy rack aware Aerospike cluster. // Pods will be deployed in given racks based on given configuration // +nullable // +optional RackConfig RackConfig `json:"rackConfig,omitempty"` // AerospikeNetworkPolicy specifies how clients and tools access the Aerospike cluster. AerospikeNetworkPolicy AerospikeNetworkPolicy `json:"aerospikeNetworkPolicy,omitempty"` // Certificates to connect to Aerospike. If omitted then certs are taken from the secret 'aerospike-secret'. // +optional OperatorClientCertSpec *AerospikeOperatorClientCertSpec `json:"operatorClientCertSpec,omitempty"` // Additional configuration for create Aerospike pods. PodSpec AerospikePodSpec `json:"podSpec,omitempty"` // SeedsFinderServices describes services which are used for seeding Aerospike nodes. SeedsFinderServices SeedsFinderServices `json:"seedsFinderServices,omitempty"` // RosterNodeBlockList is a list of blocked nodeIDs from roster in a strong-consistency setup RosterNodeBlockList []string `json:"rosterNodeBlockList,omitempty"` // K8sNodeBlockList is a list of Kubernetes nodes which are not used for Aerospike pods. K8sNodeBlockList []string `json:"k8sNodeBlockList,omitempty"` // Operations is a list of on-demand operation to be performed on the Aerospike cluster. Operations []OperationSpec `json:"operations,omitempty"` }
AerospikeClusterStatusSpec captures the current status of the cluster.
func CopySpecToStatus ¶
func CopySpecToStatus(spec *AerospikeClusterSpec) (*AerospikeClusterStatusSpec, error)
CopySpecToStatus copy spec in status. Spec to Status DeepCopy doesn't work. It fails in reflect lib.
func (*AerospikeClusterStatusSpec) DeepCopy ¶
func (in *AerospikeClusterStatusSpec) DeepCopy() *AerospikeClusterStatusSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AerospikeClusterStatusSpec.
func (*AerospikeClusterStatusSpec) DeepCopyInto ¶
func (in *AerospikeClusterStatusSpec) DeepCopyInto(out *AerospikeClusterStatusSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AerospikeConfigSpec ¶
type AerospikeConfigSpec struct {
Value map[string]interface{} `json:"-"`
}
AerospikeConfigSpec container for unstructured Aerospike server config.
func (*AerospikeConfigSpec) DeepCopy ¶
func (c *AerospikeConfigSpec) DeepCopy() *AerospikeConfigSpec
func (*AerospikeConfigSpec) DeepCopyInto ¶
func (in *AerospikeConfigSpec) DeepCopyInto(out *AerospikeConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AerospikeConfigSpec) MarshalJSON ¶
func (c *AerospikeConfigSpec) MarshalJSON() ([]byte, error)
MarshalJSON ensures that the unstructured object produces proper Json when passed to Go's standard Json library.
func (*AerospikeConfigSpec) UnmarshalJSON ¶
func (c *AerospikeConfigSpec) UnmarshalJSON(b []byte) error
UnmarshalJSON ensures that the unstructured object properly decodes Json when passed to Go's standard Json library.
type AerospikeContainerSpec ¶
type AerospikeContainerSpec struct { // SecurityContext that will be added to aerospike-server container created by operator. SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty"` // Define resources requests and limits for Aerospike Server Container. // Please contact aerospike for proper sizing exercise // Only Memory and Cpu resources can be given // Resources.Limits should be more than Resources.Requests. Resources *corev1.ResourceRequirements `json:"resources,omitempty"` }
func (*AerospikeContainerSpec) DeepCopy ¶
func (in *AerospikeContainerSpec) DeepCopy() *AerospikeContainerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AerospikeContainerSpec.
func (*AerospikeContainerSpec) DeepCopyInto ¶
func (in *AerospikeContainerSpec) DeepCopyInto(out *AerospikeContainerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AerospikeInitContainerSpec ¶
type AerospikeInitContainerSpec struct { // ImageRegistry is the name of image registry for aerospike-init container image // ImageRegistry, e.g. docker.io, redhat.access.com ImageRegistry string `json:"imageRegistry,omitempty"` // ImageRegistryNamespace is the name of namespace in registry for aerospike-init container image ImageRegistryNamespace *string `json:"imageRegistryNamespace,omitempty"` // ImageNameAndTag is the name:tag of aerospike-init container image ImageNameAndTag string `json:"imageNameAndTag,omitempty"` // SecurityContext that will be added to aerospike-init container created by operator. SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty"` // Define resources requests and limits for Aerospike init Container. // Only Memory and Cpu resources can be given // Resources.Limits should be more than Resources.Requests. Resources *corev1.ResourceRequirements `json:"resources,omitempty"` }
func (*AerospikeInitContainerSpec) DeepCopy ¶
func (in *AerospikeInitContainerSpec) DeepCopy() *AerospikeInitContainerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AerospikeInitContainerSpec.
func (*AerospikeInitContainerSpec) DeepCopyInto ¶
func (in *AerospikeInitContainerSpec) DeepCopyInto(out *AerospikeInitContainerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AerospikeInstanceSummary ¶
type AerospikeInstanceSummary struct { // ClusterName is the name of the Aerospike cluster this pod belongs to. ClusterName string `json:"clusterName"` // NodeID is the unique Aerospike ID for this pod. NodeID string `json:"nodeID"` // RackID of rack to which this node belongs RackID int `json:"rackID,omitempty"` // TLSName is the TLS name of this pod in the Aerospike cluster. TLSName string `json:"tlsName,omitempty"` // AccessEndpoints are the access endpoints for this pod. AccessEndpoints []string `json:"accessEndpoints,omitempty"` // AlternateAccessEndpoints are the alternate access endpoints for this pod. AlternateAccessEndpoints []string `json:"alternateAccessEndpoints,omitempty"` // TLSAccessEndpoints are the TLS access endpoints for this pod. TLSAccessEndpoints []string `json:"tlsAccessEndpoints,omitempty"` // TLSAlternateAccessEndpoints are the alternate TLS access endpoints for this pod. TLSAlternateAccessEndpoints []string `json:"tlsAlternateAccessEndpoints,omitempty"` }
AerospikeInstanceSummary defines the observed state of a pod's Aerospike Server Instance. +k8s:openapi-gen=true
func (*AerospikeInstanceSummary) DeepCopy ¶
func (in *AerospikeInstanceSummary) DeepCopy() *AerospikeInstanceSummary
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AerospikeInstanceSummary.
func (*AerospikeInstanceSummary) DeepCopyInto ¶
func (in *AerospikeInstanceSummary) DeepCopyInto(out *AerospikeInstanceSummary)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AerospikeNetworkPolicy ¶
type AerospikeNetworkPolicy struct { // AccessType is the type of network address to use for Aerospike access address. // Defaults to hostInternal. // +kubebuilder:validation:Enum=pod;hostInternal;hostExternal;configuredIP;customInterface AccessType AerospikeNetworkType `json:"access,omitempty"` // CustomAccessNetworkNames is the list of the pod's network interfaces used for Aerospike access address. // Each element in the list is specified with a namespace and the name of a NetworkAttachmentDefinition, // separated by a forward slash (/). // These elements must be defined in the pod annotation k8s.v1.cni.cncf.io/networks in order to assign // network interfaces to the pod. // Required with 'customInterface' access type. // +kubebuilder:validation:MinItems:=1 CustomAccessNetworkNames []string `json:"customAccessNetworkNames,omitempty"` // AlternateAccessType is the type of network address to use for Aerospike alternate access address. // Defaults to hostExternal. // +kubebuilder:validation:Enum=pod;hostInternal;hostExternal;configuredIP;customInterface AlternateAccessType AerospikeNetworkType `json:"alternateAccess,omitempty"` // CustomAlternateAccessNetworkNames is the list of the pod's network interfaces used for Aerospike // alternate access address. // Each element in the list is specified with a namespace and the name of a NetworkAttachmentDefinition, // separated by a forward slash (/). // These elements must be defined in the pod annotation k8s.v1.cni.cncf.io/networks in order to assign // network interfaces to the pod. // Required with 'customInterface' alternateAccess type // +kubebuilder:validation:MinItems:=1 CustomAlternateAccessNetworkNames []string `json:"customAlternateAccessNetworkNames,omitempty"` // TLSAccessType is the type of network address to use for Aerospike TLS access address. // Defaults to hostInternal. // +kubebuilder:validation:Enum=pod;hostInternal;hostExternal;configuredIP;customInterface TLSAccessType AerospikeNetworkType `json:"tlsAccess,omitempty"` // CustomTLSAccessNetworkNames is the list of the pod's network interfaces used for Aerospike TLS access address. // Each element in the list is specified with a namespace and the name of a NetworkAttachmentDefinition, // separated by a forward slash (/). // These elements must be defined in the pod annotation k8s.v1.cni.cncf.io/networks in order to assign // network interfaces to the pod. // Required with 'customInterface' tlsAccess type // +kubebuilder:validation:MinItems:=1 CustomTLSAccessNetworkNames []string `json:"customTLSAccessNetworkNames,omitempty"` // TLSAlternateAccessType is the type of network address to use for Aerospike TLS alternate access address. // Defaults to hostExternal. // +kubebuilder:validation:Enum=pod;hostInternal;hostExternal;configuredIP;customInterface TLSAlternateAccessType AerospikeNetworkType `json:"tlsAlternateAccess,omitempty"` // CustomTLSAlternateAccessNetworkNames is the list of the pod's network interfaces used for Aerospike TLS // alternate access address. // Each element in the list is specified with a namespace and the name of a NetworkAttachmentDefinition, // separated by a forward slash (/). // These elements must be defined in the pod annotation k8s.v1.cni.cncf.io/networks in order to assign // network interfaces to the pod. // Required with 'customInterface' tlsAlternateAccess type // +kubebuilder:validation:MinItems:=1 CustomTLSAlternateAccessNetworkNames []string `json:"customTLSAlternateAccessNetworkNames,omitempty"` // FabricType is the type of network address to use for Aerospike fabric address. // Defaults is empty meaning all interfaces 'any'. // +kubebuilder:validation:Enum:=customInterface FabricType AerospikeNetworkType `json:"fabric,omitempty"` // CustomFabricNetworkNames is the list of the pod's network interfaces used for Aerospike fabric address. // Each element in the list is specified with a namespace and the name of a NetworkAttachmentDefinition, // separated by a forward slash (/). // These elements must be defined in the pod annotation k8s.v1.cni.cncf.io/networks in order to assign // network interfaces to the pod. // Required with 'customInterface' fabric type // +kubebuilder:validation:MinItems:=1 CustomFabricNetworkNames []string `json:"customFabricNetworkNames,omitempty"` // TLSFabricType is the type of network address to use for Aerospike TLS fabric address. // Defaults is empty meaning all interfaces 'any'. // +kubebuilder:validation:Enum:=customInterface TLSFabricType AerospikeNetworkType `json:"tlsFabric,omitempty"` // CustomTLSFabricNetworkNames is the list of the pod's network interfaces used for Aerospike TLS fabric address. // Each element in the list is specified with a namespace and the name of a NetworkAttachmentDefinition, // separated by a forward slash (/). // These elements must be defined in the pod annotation k8s.v1.cni.cncf.io/networks in order to assign network // interfaces to the pod. // Required with 'customInterface' tlsFabric type // +kubebuilder:validation:MinItems:=1 CustomTLSFabricNetworkNames []string `json:"customTLSFabricNetworkNames,omitempty"` }
AerospikeNetworkPolicy specifies how clients and tools access the Aerospike cluster.
func (*AerospikeNetworkPolicy) DeepCopy ¶
func (in *AerospikeNetworkPolicy) DeepCopy() *AerospikeNetworkPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AerospikeNetworkPolicy.
func (*AerospikeNetworkPolicy) DeepCopyInto ¶
func (in *AerospikeNetworkPolicy) DeepCopyInto(out *AerospikeNetworkPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AerospikeNetworkType ¶
type AerospikeNetworkType string
AerospikeNetworkType specifies the type of network address to use. +k8s:openapi-gen=true
const ( // AerospikeNetworkTypeUnspecified implies using default access. AerospikeNetworkTypeUnspecified AerospikeNetworkType = "" // AerospikeNetworkTypePod specifies access using the PodIP and actual Aerospike service port. AerospikeNetworkTypePod AerospikeNetworkType = "pod" // AerospikeNetworkTypeHostInternal specifies access using the Kubernetes host's internal IP. // If the cluster runs single pod per Kubernetes host, // the access port will the actual aerospike port else it will be a mapped port. AerospikeNetworkTypeHostInternal AerospikeNetworkType = "hostInternal" // AerospikeNetworkTypeHostExternal specifies access using the Kubernetes host's external IP. // If the cluster runs single pod per Kubernetes host, // the access port will the actual aerospike port else it will be a mapped port. AerospikeNetworkTypeHostExternal AerospikeNetworkType = "hostExternal" // AerospikeNetworkTypeConfigured specifies access/alternateAccess using the user configuredIP. // label "aerospike.com/configured-access-address" in k8s node will be used as `accessAddress` // label "aerospike.com/configured-alternate-access-address" in k8s node will be used as `alternateAccessAddress` AerospikeNetworkTypeConfigured AerospikeNetworkType = "configuredIP" // AerospikeNetworkTypeCustomInterface specifies any other custom interface to be used with Aerospike AerospikeNetworkTypeCustomInterface AerospikeNetworkType = "customInterface" )
type AerospikeObjectMeta ¶
type AerospikeObjectMeta struct { // Key - Value pair that may be set by external tools to store and retrieve arbitrary metadata Annotations map[string]string `json:"annotations,omitempty"` // Key - Value pairs that can be used to organize and categorize scope and select objects Labels map[string]string `json:"labels,omitempty"` }
func (*AerospikeObjectMeta) DeepCopy ¶
func (in *AerospikeObjectMeta) DeepCopy() *AerospikeObjectMeta
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AerospikeObjectMeta.
func (*AerospikeObjectMeta) DeepCopyInto ¶
func (in *AerospikeObjectMeta) DeepCopyInto(out *AerospikeObjectMeta)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AerospikeOperatorCertSource ¶
type AerospikeOperatorCertSource struct { // +optional SecretCertSource *AerospikeSecretCertSource `json:"secretCertSource,omitempty"` // +optional CertPathInOperator *AerospikeCertPathInOperatorSource `json:"certPathInOperator,omitempty"` }
AerospikeOperatorCertSource Represents the source of Aerospike ClientCert for Operator. Only one of its members may be specified.
func (*AerospikeOperatorCertSource) DeepCopy ¶
func (in *AerospikeOperatorCertSource) DeepCopy() *AerospikeOperatorCertSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AerospikeOperatorCertSource.
func (*AerospikeOperatorCertSource) DeepCopyInto ¶
func (in *AerospikeOperatorCertSource) DeepCopyInto(out *AerospikeOperatorCertSource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AerospikeOperatorClientCertSpec ¶
type AerospikeOperatorClientCertSpec struct { // If specified, this name will be added to tls-authenticate-client list by the operator // +optional TLSClientName string `json:"tlsClientName,omitempty"` AerospikeOperatorCertSource `json:",inline"` }
func (*AerospikeOperatorClientCertSpec) DeepCopy ¶
func (in *AerospikeOperatorClientCertSpec) DeepCopy() *AerospikeOperatorClientCertSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AerospikeOperatorClientCertSpec.
func (*AerospikeOperatorClientCertSpec) DeepCopyInto ¶
func (in *AerospikeOperatorClientCertSpec) DeepCopyInto(out *AerospikeOperatorClientCertSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AerospikeOperatorClientCertSpec) IsClientCertConfigured ¶
func (c *AerospikeOperatorClientCertSpec) IsClientCertConfigured() bool
type AerospikePersistentVolumePolicySpec ¶
type AerospikePersistentVolumePolicySpec struct { // InitMethod determines how volumes attached to Aerospike server pods are initialized when the pods come up the // first time. Defaults to "none". InputInitMethod *AerospikeVolumeMethod `json:"initMethod,omitempty"` // WipeMethod determines how volumes attached to Aerospike server pods are wiped for dealing with storage format // changes. InputWipeMethod *AerospikeVolumeMethod `json:"wipeMethod,omitempty"` // CascadeDelete determines if the persistent volumes are deleted after the pod this volume binds to is // terminated and removed from the cluster. InputCascadeDelete *bool `json:"cascadeDelete,omitempty"` // Effective/operative value to use as the volume init method after applying defaults. InitMethod AerospikeVolumeMethod `json:"effectiveInitMethod,omitempty"` // Effective/operative value to use as the volume wipe method after applying defaults. WipeMethod AerospikeVolumeMethod `json:"effectiveWipeMethod,omitempty"` // Effective/operative value to use for cascade delete after applying defaults. CascadeDelete bool `json:"effectiveCascadeDelete,omitempty"` }
AerospikePersistentVolumePolicySpec contains policies to manage persistent volumes.
func (*AerospikePersistentVolumePolicySpec) DeepCopy ¶
func (in *AerospikePersistentVolumePolicySpec) DeepCopy() *AerospikePersistentVolumePolicySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AerospikePersistentVolumePolicySpec.
func (*AerospikePersistentVolumePolicySpec) DeepCopyInto ¶
func (in *AerospikePersistentVolumePolicySpec) DeepCopyInto(out *AerospikePersistentVolumePolicySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AerospikePersistentVolumePolicySpec) SetDefaults ¶
func (p *AerospikePersistentVolumePolicySpec) SetDefaults(defaultPolicy *AerospikePersistentVolumePolicySpec)
SetDefaults applies default values to unset fields of the policy using corresponding fields from defaultPolicy
type AerospikePodSpec ¶
type AerospikePodSpec struct { // AerospikeContainerSpec configures the aerospike-server container // created by the operator. AerospikeContainerSpec AerospikeContainerSpec `json:"aerospikeContainer,omitempty"` // AerospikeInitContainerSpec configures the aerospike-init container // created by the operator. AerospikeInitContainerSpec *AerospikeInitContainerSpec `json:"aerospikeInitContainer,omitempty"` // MetaData to add to the pod. AerospikeObjectMeta AerospikeObjectMeta `json:"metadata,omitempty"` // Sidecars to add to the pod. Sidecars []corev1.Container `json:"sidecars,omitempty"` // InitContainers to add to the pods. InitContainers []corev1.Container `json:"initContainers,omitempty"` // SchedulingPolicy controls pods placement on Kubernetes nodes. SchedulingPolicy `json:",inline"` // If set true then multiple pods can be created per Kubernetes Node. // This will create a NodePort service for each Pod if aerospikeNetworkPolicy defined // has one of the network types: 'hostInternal', 'hostExternal', 'configuredIP' // NodePort, as the name implies, opens a specific port on all the Kubernetes Nodes , // and any traffic that is sent to this port is forwarded to the service. // Here service picks a random port in range (30000-32767), so these port should be open. // // If set false then only single pod can be created per Kubernetes Node. // This will create Pods using hostPort setting. // The container port will be exposed to the external network at <hostIP>:<hostPort>, // where the hostIP is the IP address of the Kubernetes Node where the container is running and // the hostPort is the port requested by the user. MultiPodPerHost *bool `json:"multiPodPerHost,omitempty"` // HostNetwork enables host networking for the pod. // To enable hostNetwork multiPodPerHost must be false. HostNetwork bool `json:"hostNetwork,omitempty"` // DnsPolicy same as https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy. // If hostNetwork is true and policy is not specified, it defaults to ClusterFirstWithHostNet InputDNSPolicy *corev1.DNSPolicy `json:"dnsPolicy,omitempty"` // Effective value of the DNSPolicy DNSPolicy corev1.DNSPolicy `json:"effectiveDNSPolicy,omitempty"` // DNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy. // This is required field when dnsPolicy is set to `None` DNSConfig *corev1.PodDNSConfig `json:"dnsConfig,omitempty"` // SecurityContext holds pod-level security attributes and common container settings. // Optional: Defaults to empty. See type description for default values of each field. // +optional SecurityContext *corev1.PodSecurityContext `json:"securityContext,omitempty"` // ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of // the images used by this PodSpec. // More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod // +optional ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"` }
AerospikePodSpec contain configuration for created Aerospike cluster pods.
func (*AerospikePodSpec) DeepCopy ¶
func (in *AerospikePodSpec) DeepCopy() *AerospikePodSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AerospikePodSpec.
func (*AerospikePodSpec) DeepCopyInto ¶
func (in *AerospikePodSpec) DeepCopyInto(out *AerospikePodSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AerospikePodSpec) SetDefaults ¶
func (p *AerospikePodSpec) SetDefaults() error
SetDefaults applies defaults to the pod spec.
type AerospikePodStatus ¶
type AerospikePodStatus struct { // Image is the Aerospike image this pod is running. Image string `json:"image"` // InitImage is the Aerospike init image this pod's init container is running. // +optional InitImage string `json:"initImage,omitempty"` // PodIP in the K8s network. PodIP string `json:"podIP"` // HostInternalIP of the K8s host this pod is scheduled on. HostInternalIP string `json:"hostInternalIP,omitempty"` // HostExternalIP of the K8s host this pod is scheduled on. HostExternalIP string `json:"hostExternalIP,omitempty"` // PodPort is the port K8s internal Aerospike clients can connect to. PodPort int `json:"podPort"` // ServicePort is the port Aerospike clients outside K8s can connect to. ServicePort int32 `json:"servicePort,omitempty"` // Aerospike server instance summary for this pod. Aerospike AerospikeInstanceSummary `json:"aerospike,omitempty"` // InitializedVolumes is the list of volume names that have already been // initialized. InitializedVolumes []string `json:"initializedVolumes,omitempty"` // DirtyVolumes is the list of volume names that are removed // from aerospike namespaces and will be cleaned during init // if they are reused in any namespace. DirtyVolumes []string `json:"dirtyVolumes,omitempty"` // AerospikeConfigHash is ripemd160 hash of aerospikeConfig used by this pod AerospikeConfigHash string `json:"aerospikeConfigHash"` // NetworkPolicyHash is ripemd160 hash of NetworkPolicy used by this pod NetworkPolicyHash string `json:"networkPolicyHash"` // PodSpecHash is ripemd160 hash of PodSpec used by this pod PodSpecHash string `json:"podSpecHash"` // DynamicConfigUpdateStatus is the status of dynamic config update operation. // Empty "" status means successful update. DynamicConfigUpdateStatus DynamicConfigUpdateStatus `json:"dynamicConfigUpdateStatus,omitempty"` }
AerospikePodStatus contains the Aerospike specific status of the Aerospike server pods. +k8s:openapi-gen=true
func (*AerospikePodStatus) DeepCopy ¶
func (in *AerospikePodStatus) DeepCopy() *AerospikePodStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AerospikePodStatus.
func (*AerospikePodStatus) DeepCopyInto ¶
func (in *AerospikePodStatus) DeepCopyInto(out *AerospikePodStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AerospikeRoleSpec ¶
type AerospikeRoleSpec struct { // Name of this role. Name string `json:"name"` // Privileges granted to this role. // +listType=set Privileges []string `json:"privileges"` // Whitelist of host address allowed for this role. // +listType=set Whitelist []string `json:"whitelist,omitempty"` // ReadQuota specifies permitted rate of read records for current role (the value is in RPS) ReadQuota uint32 `json:"readQuota,omitempty"` // WriteQuota specifies permitted rate of write records for current role (the value is in RPS) WriteQuota uint32 `json:"writeQuota,omitempty"` }
AerospikeRoleSpec specifies an Aerospike database role and its associated privileges.
func (*AerospikeRoleSpec) DeepCopy ¶
func (in *AerospikeRoleSpec) DeepCopy() *AerospikeRoleSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AerospikeRoleSpec.
func (*AerospikeRoleSpec) DeepCopyInto ¶
func (in *AerospikeRoleSpec) DeepCopyInto(out *AerospikeRoleSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AerospikeSecretCertSource ¶
type AerospikeSecretCertSource struct { // +optional CaCertsSource *CaCertsSource `json:"caCertsSource,omitempty"` SecretName string `json:"secretName"` // +optional SecretNamespace string `json:"secretNamespace,omitempty"` // +optional CaCertsFilename string `json:"caCertsFilename,omitempty"` // +optional ClientCertFilename string `json:"clientCertFilename,omitempty"` // +optional ClientKeyFilename string `json:"clientKeyFilename,omitempty"` }
func (*AerospikeSecretCertSource) DeepCopy ¶
func (in *AerospikeSecretCertSource) DeepCopy() *AerospikeSecretCertSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AerospikeSecretCertSource.
func (*AerospikeSecretCertSource) DeepCopyInto ¶
func (in *AerospikeSecretCertSource) DeepCopyInto(out *AerospikeSecretCertSource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AerospikeServerVolumeAttachment ¶
type AerospikeServerVolumeAttachment struct { // Path to attach the volume on the Aerospike server container. Path string `json:"path"` // AttachmentOptions that control how the volume is attached. AttachmentOptions `json:",inline"` }
AerospikeServerVolumeAttachment is a volume attachment in the Aerospike server container.
func (*AerospikeServerVolumeAttachment) DeepCopy ¶
func (in *AerospikeServerVolumeAttachment) DeepCopy() *AerospikeServerVolumeAttachment
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AerospikeServerVolumeAttachment.
func (*AerospikeServerVolumeAttachment) DeepCopyInto ¶
func (in *AerospikeServerVolumeAttachment) DeepCopyInto(out *AerospikeServerVolumeAttachment)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AerospikeStorageSpec ¶
type AerospikeStorageSpec struct { // FileSystemVolumePolicy contains default policies for filesystem volumes. FileSystemVolumePolicy AerospikePersistentVolumePolicySpec `json:"filesystemVolumePolicy,omitempty"` // BlockVolumePolicy contains default policies for block volumes. BlockVolumePolicy AerospikePersistentVolumePolicySpec `json:"blockVolumePolicy,omitempty"` // CleanupThreads contains the maximum number of cleanup threads(dd or blkdiscard) per init container. CleanupThreads int `json:"cleanupThreads,omitempty"` // LocalStorageClasses contains a list of storage classes which provisions local volumes. LocalStorageClasses []string `json:"localStorageClasses,omitempty"` // Volumes list to attach to created pods. // +patchMergeKey=name // +patchStrategy=merge // +listType=map // +listMapKey=name Volumes []VolumeSpec `json:"volumes,omitempty" patchStrategy:"merge" patchMergeKey:"name"` }
AerospikeStorageSpec lists persistent volumes to claim and attach to Aerospike pods and persistence policies. +k8s:openapi-gen=true
func (*AerospikeStorageSpec) DeepCopy ¶
func (in *AerospikeStorageSpec) DeepCopy() *AerospikeStorageSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AerospikeStorageSpec.
func (*AerospikeStorageSpec) DeepCopyInto ¶
func (in *AerospikeStorageSpec) DeepCopyInto(out *AerospikeStorageSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AerospikeStorageSpec) GetNonPVs ¶
func (s *AerospikeStorageSpec) GetNonPVs() (nonPVs []VolumeSpec)
GetNonPVs returns the non PV volumes from the storage spec.
func (*AerospikeStorageSpec) GetPVs ¶
func (s *AerospikeStorageSpec) GetPVs() (pVs []VolumeSpec)
GetPVs returns the PV volumes from the storage spec.
func (*AerospikeStorageSpec) GetVolumeForAerospikePath ¶
func (s *AerospikeStorageSpec) GetVolumeForAerospikePath(path string) *VolumeSpec
GetVolumeForAerospikePath returns volume defined for given path for Aerospike server container.
func (*AerospikeStorageSpec) SetDefaults ¶
func (s *AerospikeStorageSpec) SetDefaults()
SetDefaults sets default values for storage spec fields.
type AerospikeUserSpec ¶
type AerospikeUserSpec struct { // Name is the user's username. Name string `json:"name"` // SecretName has secret info created by user. User needs to create this secret from password literal. // eg: kubectl create secret generic dev-db-secret --from-literal=password='password' SecretName string `json:"secretName"` // Roles is the list of roles granted to the user. // +listType=set Roles []string `json:"roles"` }
AerospikeUserSpec specifies an Aerospike database user, the secret name for the password and, associated roles.
func (*AerospikeUserSpec) DeepCopy ¶
func (in *AerospikeUserSpec) DeepCopy() *AerospikeUserSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AerospikeUserSpec.
func (*AerospikeUserSpec) DeepCopyInto ¶
func (in *AerospikeUserSpec) DeepCopyInto(out *AerospikeUserSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AerospikeVolumeMethod ¶
type AerospikeVolumeMethod string
AerospikeVolumeMethod specifies how block volumes should be initialized. +kubebuilder:validation:Enum=none;dd;blkdiscard;deleteFiles +k8s:openapi-gen=true
type AttachmentOptions ¶
type AttachmentOptions struct { // +optional MountOptions `json:"mountOptions,omitempty"` }
AttachmentOptions that control how a volume is mounted or attached.
func (*AttachmentOptions) DeepCopy ¶
func (in *AttachmentOptions) DeepCopy() *AttachmentOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AttachmentOptions.
func (*AttachmentOptions) DeepCopyInto ¶
func (in *AttachmentOptions) DeepCopyInto(out *AttachmentOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CaCertsSource ¶
type CaCertsSource struct { SecretName string `json:"secretName"` // +optional SecretNamespace string `json:"secretNamespace,omitempty"` }
func (*CaCertsSource) DeepCopy ¶
func (in *CaCertsSource) DeepCopy() *CaCertsSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CaCertsSource.
func (*CaCertsSource) DeepCopyInto ¶
func (in *CaCertsSource) DeepCopyInto(out *CaCertsSource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DynamicConfigUpdateStatus ¶
type DynamicConfigUpdateStatus string
+kubebuilder:validation:Enum=Failed;PartiallyFailed;""
const ( Failed DynamicConfigUpdateStatus = "Failed" PartiallyFailed DynamicConfigUpdateStatus = "PartiallyFailed" Empty DynamicConfigUpdateStatus = "" )
type LoadBalancerSpec ¶
type LoadBalancerSpec struct { // +kubebuilder:validation:Enum=Local;Cluster // +optional ExternalTrafficPolicy corev1.ServiceExternalTrafficPolicyType `json:"externalTrafficPolicy,omitempty"` // +patchStrategy=merge // +optional Annotations map[string]string `json:"annotations,omitempty" patchStrategy:"merge"` // The name of the port exposed on load balancer service. // +optional PortName string `json:"portName,omitempty"` // Port Exposed port on load balancer. If not specified TargetPort is used. // +kubebuilder:validation:Minimum=1024 // +kubebuilder:validation:Maximum=65535 // +optional Port int32 `json:"port,omitempty"` // TargetPort Target port. If not specified the tls-port of network.service stanza is used from Aerospike config. // If there is no tls port configured then regular port from network.service is used. // +kubebuilder:validation:Minimum=1024 // +kubebuilder:validation:Maximum=65535 // +optional TargetPort int32 `json:"targetPort,omitempty"` // +optional LoadBalancerSourceRanges []string `json:"loadBalancerSourceRanges,omitempty" patchStrategy:"merge"` }
LoadBalancerSpec contains specification for Service with type LoadBalancer. +k8s:openapi-gen=true
func (*LoadBalancerSpec) DeepCopy ¶
func (in *LoadBalancerSpec) DeepCopy() *LoadBalancerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerSpec.
func (*LoadBalancerSpec) DeepCopyInto ¶
func (in *LoadBalancerSpec) DeepCopyInto(out *LoadBalancerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MountOptions ¶
type MountOptions struct { // Mounted read-only if true, read-write otherwise (false or unspecified). // Defaults to false. // +optional ReadOnly bool `json:"readOnly,omitempty"` // Path within the volume from which the container's volume should be mounted. // Defaults to "" (volume's root). // +optional SubPath string `json:"subPath,omitempty"` // mountPropagation determines how mounts are propagated from the host // to container and the other way around. // When not set, MountPropagationNone is used. // This field is beta in 1.10. // +optional MountPropagation *corev1.MountPropagationMode `json:"mountPropagation,omitempty"` // Expanded path within the volume from which the container's volume should be mounted. // Behaves similarly to SubPath but environment variable references $( // VAR_NAME) are expanded using the container's environment. // Defaults to "" (volume's root). // SubPathExpr and SubPath are mutually exclusive. // +optional SubPathExpr string `json:"subPathExpr,omitempty"` }
func (*MountOptions) DeepCopy ¶
func (in *MountOptions) DeepCopy() *MountOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MountOptions.
func (*MountOptions) DeepCopyInto ¶
func (in *MountOptions) DeepCopyInto(out *MountOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OperationKind ¶
type OperationKind string
const ( // OperationWarmRestart is the on-demand operation that leads to the warm restart of the aerospike pods // (Restarting ASD in the pods). https://aerospike.com/docs/cloud/kubernetes/operator/Warm-restart OperationWarmRestart OperationKind = "WarmRestart" // OperationPodRestart is the on-demand operation that leads to the restart of aerospike pods. OperationPodRestart OperationKind = "PodRestart" )
type OperationSpec ¶
type OperationSpec struct { // Kind is the type of operation to be performed on the Aerospike cluster. // +kubebuilder:validation:Enum=WarmRestart;PodRestart Kind OperationKind `json:"kind"` // +kubebuilder:validation:MaxLength=20 // +kubebuilder:validation:MinLength=1 ID string `json:"id"` PodList []string `json:"podList,omitempty"` }
func (*OperationSpec) DeepCopy ¶
func (in *OperationSpec) DeepCopy() *OperationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperationSpec.
func (*OperationSpec) DeepCopyInto ¶
func (in *OperationSpec) DeepCopyInto(out *OperationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PersistentVolumeSpec ¶
type PersistentVolumeSpec struct { AerospikeObjectMeta `json:"metadata,omitempty"` // StorageClass should be pre-created by user. StorageClass string `json:"storageClass"` // VolumeMode specifies if the volume is block/raw or a filesystem. VolumeMode corev1.PersistentVolumeMode `json:"volumeMode"` // Size of volume. Size resource.Quantity `json:"size"` // Name for creating PVC for this volume, Name or path should be given // Name string `json:"name"` AccessModes []corev1.PersistentVolumeAccessMode `json:"accessModes,omitempty" protobuf:"bytes,1,rep,name=accessModes,casttype=PersistentVolumeAccessMode"` //nolint:lll // for readability // A label query over volumes to consider for binding. // +optional Selector *metav1.LabelSelector `json:"selector,omitempty"` }
PersistentVolumeSpec describes a persistent volume to claim and attach to Aerospike pods. +k8s:openapi-gen=true
func (*PersistentVolumeSpec) DeepCopy ¶
func (in *PersistentVolumeSpec) DeepCopy() *PersistentVolumeSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeSpec.
func (*PersistentVolumeSpec) DeepCopyInto ¶
func (in *PersistentVolumeSpec) DeepCopyInto(out *PersistentVolumeSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PrivilegeScope ¶
type PrivilegeScope int
PrivilegeScope enumerates valid scopes for privileges.
const ( // Global scoped privileges. Global PrivilegeScope = iota // NamespaceSet is namespace and optional set scoped privilege. NamespaceSet )
type Rack ¶
type Rack struct { // Identifier for the rack ID int `json:"id"` // Zone name for setting rack affinity. Rack pods will be deployed to given Zone Zone string `json:"zone,omitempty"` // Region name for setting rack affinity. Rack pods will be deployed to given Region Region string `json:"region,omitempty"` // RackLabel for setting rack affinity. // Rack pods will be deployed in k8s nodes having rackLabel {aerospike.com/rack-label: <rack-label>} RackLabel string `json:"rackLabel,omitempty"` // K8s Node name for setting rack affinity. Rack pods will be deployed in given k8s Node NodeName string `json:"nodeName,omitempty"` // AerospikeConfig overrides the common AerospikeConfig for this Rack. This is merged with global Aerospike config. // +kubebuilder:pruning:PreserveUnknownFields InputAerospikeConfig *AerospikeConfigSpec `json:"aerospikeConfig,omitempty"` // Effective/operative Aerospike config. The resultant is a merge of rack Aerospike config and the global // Aerospike config // +kubebuilder:pruning:PreserveUnknownFields AerospikeConfig AerospikeConfigSpec `json:"effectiveAerospikeConfig,omitempty"` // Storage specify persistent storage to use for the pods in this rack. This value overwrites the global storage config InputStorage *AerospikeStorageSpec `json:"storage,omitempty"` // Effective/operative storage. The resultant is user input if specified else global storage Storage AerospikeStorageSpec `json:"effectiveStorage,omitempty"` // PodSpec to use for the pods in this rack. This value overwrites the global storage config InputPodSpec *RackPodSpec `json:"podSpec,omitempty"` // Effective/operative PodSpec. The resultant is user input if specified else global PodSpec PodSpec RackPodSpec `json:"effectivePodSpec,omitempty"` }
Rack specifies single rack config
func (*Rack) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Rack.
func (*Rack) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RackConfig ¶
type RackConfig struct { // List of Aerospike namespaces for which rack feature will be enabled Namespaces []string `json:"namespaces,omitempty"` // Racks is the list of all racks // +nullable Racks []Rack `json:"racks,omitempty"` // RollingUpdateBatchSize is the percentage/number of rack pods that can be restarted simultaneously // +optional RollingUpdateBatchSize *intstr.IntOrString `json:"rollingUpdateBatchSize,omitempty"` // ScaleDownBatchSize is the percentage/number of rack pods that can be scaled down simultaneously // +optional ScaleDownBatchSize *intstr.IntOrString `json:"scaleDownBatchSize,omitempty"` // MaxIgnorablePods is the maximum number/percentage of pending/failed pods in a rack that are ignored while // assessing cluster stability. Pods identified using this value are not considered part of the cluster. // Additionally, in SC mode clusters, these pods are removed from the roster. // This is particularly useful when some pods are stuck in pending/failed state due to any scheduling issues and // cannot be fixed by simply updating the CR. // It enables the operator to perform specific operations on the cluster, like changing Aerospike configurations, // without being hindered by these problematic pods. // Remember to set MaxIgnorablePods back to 0 once the required operation is done. // This makes sure that later on, all pods are properly counted when evaluating the cluster stability. // +optional MaxIgnorablePods *intstr.IntOrString `json:"maxIgnorablePods,omitempty"` }
RackConfig specifies all racks and related policies
func (*RackConfig) DeepCopy ¶
func (in *RackConfig) DeepCopy() *RackConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RackConfig.
func (*RackConfig) DeepCopyInto ¶
func (in *RackConfig) DeepCopyInto(out *RackConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RackPodSpec ¶
type RackPodSpec struct { // SchedulingPolicy overrides for this rack. SchedulingPolicy `json:",inline"` }
RackPodSpec provides rack specific overrides to the global pod spec.
func (*RackPodSpec) DeepCopy ¶
func (in *RackPodSpec) DeepCopy() *RackPodSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RackPodSpec.
func (*RackPodSpec) DeepCopyInto ¶
func (in *RackPodSpec) DeepCopyInto(out *RackPodSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SchedulingPolicy ¶
type SchedulingPolicy struct { // Affinity rules for pod placement. Affinity *corev1.Affinity `json:"affinity,omitempty"` // Tolerations for this pod. Tolerations []corev1.Toleration `json:"tolerations,omitempty"` // NodeSelector constraints for this pod. NodeSelector map[string]string `json:"nodeSelector,omitempty"` }
SchedulingPolicy controls pod placement on Kubernetes nodes.
func (*SchedulingPolicy) DeepCopy ¶
func (in *SchedulingPolicy) DeepCopy() *SchedulingPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SchedulingPolicy.
func (*SchedulingPolicy) DeepCopyInto ¶
func (in *SchedulingPolicy) DeepCopyInto(out *SchedulingPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SeedsFinderServices ¶
type SeedsFinderServices struct { // LoadBalancer created to discover Aerospike Cluster nodes from outside of // Kubernetes cluster. LoadBalancer *LoadBalancerSpec `json:"loadBalancer,omitempty"` }
func (*SeedsFinderServices) DeepCopy ¶
func (in *SeedsFinderServices) DeepCopy() *SeedsFinderServices
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SeedsFinderServices.
func (*SeedsFinderServices) DeepCopyInto ¶
func (in *SeedsFinderServices) DeepCopyInto(out *SeedsFinderServices)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ValidationPolicySpec ¶
type ValidationPolicySpec struct { // skipWorkDirValidate validates that Aerospike work directory is mounted on a persistent file storage. // Defaults to false. SkipWorkDirValidate bool `json:"skipWorkDirValidate"` // ValidateXdrDigestLogFile validates that xdr digest log file is mounted on a persistent file storage. // Defaults to false. SkipXdrDlogFileValidate bool `json:"skipXdrDlogFileValidate"` }
ValidationPolicySpec controls validation of the Aerospike cluster resource.
func (*ValidationPolicySpec) DeepCopy ¶
func (in *ValidationPolicySpec) DeepCopy() *ValidationPolicySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidationPolicySpec.
func (*ValidationPolicySpec) DeepCopyInto ¶
func (in *ValidationPolicySpec) DeepCopyInto(out *ValidationPolicySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeAttachment ¶
type VolumeAttachment struct { // ContainerName is the name of the container to attach this volume to. ContainerName string `json:"containerName"` // Path to attach the volume on the container. Path string `json:"path"` // AttachmentOptions that control how the volume is attached. AttachmentOptions `json:",inline"` }
VolumeAttachment specifies volume attachment to a container.
func (*VolumeAttachment) DeepCopy ¶
func (in *VolumeAttachment) DeepCopy() *VolumeAttachment
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachment.
func (*VolumeAttachment) DeepCopyInto ¶
func (in *VolumeAttachment) DeepCopyInto(out *VolumeAttachment)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeSource ¶
type VolumeSource struct { // EmptyDir represents a temporary directory that shares a pod's lifetime. // More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir // +optional EmptyDir *corev1.EmptyDirVolumeSource `json:"emptyDir,omitempty" protobuf:"bytes,2,opt,name=emptyDir"` // +optional Secret *corev1.SecretVolumeSource `json:"secret,omitempty" protobuf:"bytes,6,opt,name=secret"` // ConfigMap represents a configMap that should populate this volume // +optional ConfigMap *corev1.ConfigMapVolumeSource `json:"configMap,omitempty" protobuf:"bytes,19,opt,name=configMap"` // +optional PersistentVolume *PersistentVolumeSpec `json:"persistentVolume,omitempty"` }
VolumeSource is the source of a volume to mount. Only one of its members may be specified.
func (*VolumeSource) DeepCopy ¶
func (in *VolumeSource) DeepCopy() *VolumeSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSource.
func (*VolumeSource) DeepCopyInto ¶
func (in *VolumeSource) DeepCopyInto(out *VolumeSource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeSpec ¶
type VolumeSpec struct { // TODO: should this be inside source.PV or other type of source will also need this // Contains policies for this volume. AerospikePersistentVolumePolicySpec `json:",inline"` // Name for this volume, Name or path should be given. Name string `json:"name"` // Source of this volume. Source VolumeSource `json:"source,omitempty"` // Aerospike attachment of this volume on Aerospike server container. // +optional Aerospike *AerospikeServerVolumeAttachment `json:"aerospike,omitempty"` // Sidecars are side containers where this volume will be mounted // +optional Sidecars []VolumeAttachment `json:"sidecars,omitempty"` // InitContainers are additional init containers where this volume will be mounted // +optional InitContainers []VolumeAttachment `json:"initContainers,omitempty"` }
func (*VolumeSpec) DeepCopy ¶
func (in *VolumeSpec) DeepCopy() *VolumeSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSpec.
func (*VolumeSpec) DeepCopyInto ¶
func (in *VolumeSpec) DeepCopyInto(out *VolumeSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.