Etcd Druid Api

API Reference

Packages

config.druid.gardener.cloud/v1alpha1

ClientConnectionConfiguration

ClientConnectionConfiguration defines the configuration for constructing a client.Client to connect to k8s kube-apiserver.

Appears in:

FieldDescriptionDefaultValidation
qps floatQPS controls the number of queries per second allowed for a connection.
Setting this to a negative value will disable client-side rate limiting.
burst integerBurst allows extra queries to accumulate when a client is exceeding its rate.
contentType stringContentType is the content type used when sending data to the server from this client.
acceptContentTypes stringAcceptContentTypes defines the Accept header sent by clients when connecting to the server,
overriding the default value of ‘application/json’. This field will control all connections
to the server used by a particular client.

CompactionControllerConfiguration

CompactionControllerConfiguration defines the configuration for the compaction controller.

Appears in:

FieldDescriptionDefaultValidation
enabled booleanEnabled specifies whether backup compaction should be enabled.
concurrentSyncs integerConcurrentSyncs is the max number of concurrent workers that can be run, each worker servicing a reconcile request.
eventsThreshold integerEventsThreshold denotes total number of etcd events to be reached upon which a backup compaction job is triggered.
activeDeadlineDuration DurationActiveDeadlineDuration is the duration after which a running compaction job will be killed.
metricsScrapeWaitDuration DurationMetricsScrapeWaitDuration is the duration to wait for after compaction job is completed, to allow Prometheus metrics to be scraped

ControllerConfiguration

ControllerConfiguration defines the configuration for the controllers.

Appears in:

FieldDescriptionDefaultValidation
disableLeaseCache booleanDisableLeaseCache disables the cache for lease.coordination.k8s.io resources.
Deprecated: This field will be eventually removed. It is recommended to not use this.
It has only been introduced to allow for backward compatibility with the old CLI flags.
etcd EtcdControllerConfigurationEtcd is the configuration for the Etcd controller.
compaction CompactionControllerConfigurationCompaction is the configuration for the compaction controller.
etcdCopyBackupsTask EtcdCopyBackupsTaskControllerConfigurationEtcdCopyBackupsTask is the configuration for the EtcdCopyBackupsTask controller.
secret SecretControllerConfigurationSecret is the configuration for the Secret controller.

EtcdComponentProtectionWebhookConfiguration

EtcdComponentProtectionWebhookConfiguration defines the configuration for EtcdComponentProtection webhook. NOTE: At least one of ReconcilerServiceAccountFQDN or ServiceAccountInfo must be set. It is recommended to switch to ServiceAccountInfo.

Appears in:

FieldDescriptionDefaultValidation
enabled booleanEnabled indicates whether the EtcdComponentProtection webhook is enabled.
reconcilerServiceAccountFQDN stringReconcilerServiceAccountFQDN is the FQDN of the reconciler service account used by the etcd-druid operator.
Deprecated: Please use ServiceAccountInfo instead and ensure that both Name and Namespace are set via projected volumes and downward API in the etcd-druid deployment spec.
serviceAccountInfo ServiceAccountInfoServiceAccountInfo contains paths to gather etcd-druid service account information.
exemptServiceAccounts string arrayExemptServiceAccounts is a list of service accounts that are exempt from Etcd Components Webhook checks.

EtcdControllerConfiguration

EtcdControllerConfiguration defines the configuration for the Etcd controller.

Appears in:

FieldDescriptionDefaultValidation
concurrentSyncs integerConcurrentSyncs is the max number of concurrent workers that can be run, each worker servicing a reconcile request.
enableEtcdSpecAutoReconcile booleanEnableEtcdSpecAutoReconcile controls how the Etcd Spec is reconciled. If set to true, then any change in Etcd spec
will automatically trigger a reconciliation of the Etcd resource. If set to false, then an operator needs to
explicitly set gardener.cloud/operation=reconcile annotation on the Etcd resource to trigger reconciliation
of the Etcd spec.
NOTE: Decision to enable it should be carefully taken as spec updates could potentially result in rolling update
of the StatefulSet which will cause a minor downtime for a single node etcd cluster and can potentially cause a
downtime for a multi-node etcd cluster.
disableEtcdServiceAccountAutomount booleanDisableEtcdServiceAccountAutomount controls the auto-mounting of service account token for etcd StatefulSets.
etcdStatusSyncPeriod DurationEtcdStatusSyncPeriod is the duration after which an event will be re-queued ensuring etcd status synchronization.
etcdMember EtcdMemberConfigurationEtcdMember holds configuration related to etcd members.

EtcdCopyBackupsTaskControllerConfiguration

EtcdCopyBackupsTaskControllerConfiguration defines the configuration for the EtcdCopyBackupsTask controller.

Appears in:

FieldDescriptionDefaultValidation
enabled booleanEnabled specifies whether EtcdCopyBackupsTaskController should be enabled.
concurrentSyncs integerConcurrentSyncs is the max number of concurrent workers that can be run, each worker servicing a reconcile request.

EtcdMemberConfiguration

EtcdMemberConfiguration holds configuration related to etcd members.

Appears in:

FieldDescriptionDefaultValidation
notReadyThreshold DurationNotReadyThreshold is the duration after which an etcd member’s state is considered NotReady.
unknownThreshold DurationUnknownThreshold is the duration after which an etcd member’s state is considered Unknown.

LeaderElectionConfiguration

LeaderElectionConfiguration defines the configuration for the leader election. It should be enabled when you deploy etcd-druid in HA mode. For single replica etcd-druid deployments it will not really serve any purpose.

Appears in:

FieldDescriptionDefaultValidation
enabled booleanEnabled specifies whether leader election is enabled. Set this
to true when running replicated instances of the operator for high availability.
leaseDuration DurationLeaseDuration is the duration that non-leader candidates will wait
after observing a leadership renewal until attempting to acquire
leadership of the occupied but un-renewed leader slot. This is effectively the
maximum duration that a leader can be stopped before it is replaced
by another candidate. This is only applicable if leader election is
enabled.
renewDeadline DurationRenewDeadline is the interval between attempts by the acting leader to
renew its leadership before it stops leading. This must be less than or
equal to the lease duration.
This is only applicable if leader election is enabled.
retryPeriod DurationRetryPeriod is the duration leader elector clients should wait
between attempting acquisition and renewal of leadership.
This is only applicable if leader election is enabled.
resourceLock stringResourceLock determines which resource lock to use for leader election.
This is only applicable if leader election is enabled.
resourceName stringResourceName determines the name of the resource that leader election
will use for holding the leader lock.
This is only applicable if leader election is enabled.

LogConfiguration

LogConfiguration contains the configuration for logging.

Appears in:

FieldDescriptionDefaultValidation
logLevel LogLevelLogLevel is the level/severity for the logs. Must be one of [info,debug,error].
logFormat LogFormatLogFormat is the output format for the logs. Must be one of [text,json].

LogFormat

Underlying type: string

LogFormat is the format of the log.

Appears in:

FieldDescription
jsonLogFormatJSON is the JSON log format.
textLogFormatText is the text log format.

LogLevel

Underlying type: string

LogLevel represents the level for logging.

Appears in:

FieldDescription
debugLogLevelDebug is the debug log level, i.e. the most verbose.
infoLogLevelInfo is the default log level.
errorLogLevelError is a log level where only errors are logged.

SecretControllerConfiguration

SecretControllerConfiguration defines the configuration for the Secret controller.

Appears in:

FieldDescriptionDefaultValidation
concurrentSyncs integerConcurrentSyncs is the max number of concurrent workers that can be run, each worker servicing a reconcile request.

Server

Server contains information for HTTP(S) server configuration.

Appears in:

FieldDescriptionDefaultValidation
bindAddress stringBindAddress is the IP address on which to listen for the specified port.
port integerPort is the port on which to serve unsecured, unauthenticated access.

ServerConfiguration

ServerConfiguration contains the server configurations.

Appears in:

FieldDescriptionDefaultValidation
webhooks TLSServerWebhooks is the configuration for the TLS webhook server.
metrics ServerMetrics is the configuration for serving the metrics endpoint.

ServiceAccountInfo

ServiceAccountInfo contains paths to gather etcd-druid service account information. Usually downward API and projected volumes are used in the deployment specification of etcd-druid to provide this information as mounted volume files.

Appears in:

FieldDescriptionDefaultValidation
name stringName is the name of the service account associated with etcd-druid deployment.
namespace stringNamespace is the namespace in which the service account has been deployed.
Usually this information is usually available at /var/run/secrets/kubernetes.io/serviceaccount/namespace.
However, if automountServiceAccountToken is set to false then this file will not be available.

TLSServer

TLSServer is the configuration for a TLS enabled server.

Appears in:

FieldDescriptionDefaultValidation
bindAddress stringBindAddress is the IP address on which to listen for the specified port.
port integerPort is the port on which to serve unsecured, unauthenticated access.
serverCertDir stringServerCertDir is the path to a directory containing the server’s TLS certificate and key (the files must be
named tls.crt and tls.key respectively).

WebhookConfiguration

WebhookConfiguration defines the configuration for admission webhooks.

Appears in:

FieldDescriptionDefaultValidation
etcdComponentProtection EtcdComponentProtectionWebhookConfigurationEtcdComponentProtection is the configuration for EtcdComponentProtection webhook.

druid.gardener.cloud/v1alpha1

Package v1alpha1 contains API Schema definitions for the druid v1alpha1 API group

Resource Types

BackupSpec

BackupSpec defines parameters associated with the full and delta snapshots of etcd.

Appears in:

FieldDescriptionDefaultValidation
port integerPort define the port on which etcd-backup-restore server will be exposed.
tls TLSConfig
image stringImage defines the etcd container image and tag
store StoreSpecStore defines the specification of object store provider for storing backups.
resources ResourceRequirementsResources defines compute Resources required by backup-restore container.
More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
compactionResources ResourceRequirementsCompactionResources defines compute Resources required by compaction job.
More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
fullSnapshotSchedule stringFullSnapshotSchedule defines the cron standard schedule for full snapshots.Pattern: ^(\*|[1-5]?[0-9]|[1-5]?[0-9]-[1-5]?[0-9]|(?:[1-9]|[1-4][0-9]|5[0-9])\/(?:[1-9]|[1-4][0-9]|5[0-9]|60)|\*\/(?:[1-9]|[1-4][0-9]|5[0-9]|60))\s+(\*|[0-9]|1[0-9]|2[0-3]|[0-9]-(?:[0-9]|1[0-9]|2[0-3])|1[0-9]-(?:1[0-9]|2[0-3])|2[0-3]-2[0-3]|(?:[1-9]|1[0-9]|2[0-3])\/(?:[1-9]|1[0-9]|2[0-4])|\*\/(?:[1-9]|1[0-9]|2[0-4]))\s+(\*|[1-9]|[12][0-9]|3[01]|[1-9]-(?:[1-9]|[12][0-9]|3[01])|[12][0-9]-(?:[12][0-9]|3[01])|3[01]-3[01]|(?:[1-9]|[12][0-9]|30)\/(?:[1-9]|[12][0-9]|3[01])|\*\/(?:[1-9]|[12][0-9]|3[01]))\s+(\*|[1-9]|1[0-2]|[1-9]-(?:[1-9]|1[0-2])|1[0-2]-1[0-2]|(?:[1-9]|1[0-2])\/(?:[1-9]|1[0-2])|\*\/(?:[1-9]|1[0-2]))\s+(\*|[1-7]|[1-6]-[1-7]|[1-6]\/[1-7]|\*\/[1-7])$
garbageCollectionPolicy GarbageCollectionPolicyGarbageCollectionPolicy defines the policy for garbage collecting old backupsEnum: [Exponential LimitBased]
maxBackupsLimitBasedGC integerMaxBackupsLimitBasedGC defines the maximum number of Full snapshots to retain in Limit Based GarbageCollectionPolicy
All full snapshots beyond this limit will be garbage collected.
garbageCollectionPeriod DurationGarbageCollectionPeriod defines the period for garbage collecting old backupsPattern: ^([0-9]+([.][0-9]+)?h)?([0-9]+([.][0-9]+)?m)?([0-9]+([.][0-9]+)?s)?([0-9]+([.][0-9]+)?d)?$
Type: string
deltaSnapshotPeriod DurationDeltaSnapshotPeriod defines the period after which delta snapshots will be takenPattern: ^([0-9]+([.][0-9]+)?h)?([0-9]+([.][0-9]+)?m)?([0-9]+([.][0-9]+)?s)?([0-9]+([.][0-9]+)?d)?$
Type: string
deltaSnapshotMemoryLimit QuantityDeltaSnapshotMemoryLimit defines the memory limit after which delta snapshots will be taken
deltaSnapshotRetentionPeriod DurationDeltaSnapshotRetentionPeriod defines the duration for which delta snapshots will be retained, excluding the latest snapshot set.
The value should be a string formatted as a duration (e.g., ‘1s’, ‘2m’, ‘3h’, ‘4d’)
Pattern: ^([0-9]+([.][0-9]+)?h)?([0-9]+([.][0-9]+)?m)?([0-9]+([.][0-9]+)?s)?([0-9]+([.][0-9]+)?d)?$
Type: string
compression CompressionSpecSnapshotCompression defines the specification for compression of Snapshots.
enableProfiling booleanEnableProfiling defines if profiling should be enabled for the etcd-backup-restore-sidecar
etcdSnapshotTimeout DurationEtcdSnapshotTimeout defines the timeout duration for etcd FullSnapshot operationPattern: ^([0-9]+([.][0-9]+)?h)?([0-9]+([.][0-9]+)?m)?([0-9]+([.][0-9]+)?s)?([0-9]+([.][0-9]+)?d)?$
Type: string
leaderElection LeaderElectionSpecLeaderElection defines parameters related to the LeaderElection configuration.

ClientService

ClientService defines the parameters of the client service that a user can specify

Appears in:

FieldDescriptionDefaultValidation
annotations object (keys:string, values:string)Annotations specify the annotations that should be added to the client service
labels object (keys:string, values:string)Labels specify the labels that should be added to the client service
trafficDistribution stringTrafficDistribution defines the traffic distribution preference that should be added to the client service.
More info: https://kubernetes.io/docs/reference/networking/virtual-ips/#traffic-distribution
Enum: [PreferClose]

CompactionMode

Underlying type: string

CompactionMode defines the auto-compaction-mode: ‘periodic’ or ‘revision’. ‘periodic’ for duration based retention and ‘revision’ for revision number based retention.

Validation:

  • Enum: [periodic revision]

Appears in:

FieldDescription
periodicPeriodic is a constant to set auto-compaction-mode ‘periodic’ for duration based retention.
revisionRevision is a constant to set auto-compaction-mode ‘revision’ for revision number based retention.

CompressionPolicy

Underlying type: string

CompressionPolicy defines the type of policy for compression of snapshots.

Validation:

  • Enum: [gzip lzw zlib]

Appears in:

FieldDescription
gzipGzipCompression is constant for gzip compression policy.
lzwLzwCompression is constant for lzw compression policy.
zlibZlibCompression is constant for zlib compression policy.

CompressionSpec

CompressionSpec defines parameters related to compression of Snapshots(full as well as delta).

Appears in:

FieldDescriptionDefaultValidation
enabled boolean
policy CompressionPolicyEnum: [gzip lzw zlib]

Condition

Condition holds the information about the state of a resource.

Appears in:

FieldDescriptionDefaultValidation
type ConditionTypeType of the Etcd condition.
status ConditionStatusStatus of the condition, one of True, False, Unknown.
lastTransitionTime TimeLast time the condition transitioned from one status to another.
lastUpdateTime TimeLast time the condition was updated.
reason stringThe reason for the condition’s last transition.
message stringA human-readable message indicating details about the transition.

ConditionStatus

Underlying type: string

ConditionStatus is the status of a condition.

Appears in:

FieldDescription
TrueConditionTrue means a resource is in the condition.
FalseConditionFalse means a resource is not in the condition.
UnknownConditionUnknown means Gardener can’t decide if a resource is in the condition or not.
ProgressingConditionProgressing means the condition was seen true, failed but stayed within a predefined failure threshold.
In the future, we could add other intermediate conditions, e.g. ConditionDegraded.
Deprecated: Will be removed in the future since druid conditions will be replaced by metav1.Condition
which has only three status options: True, False, Unknown.
ConditionCheckErrorConditionCheckError is a constant for a reason in condition.
Deprecated: Will be removed in the future since druid conditions will be replaced by metav1.Condition
which has only three status options: True, False, Unknown.

ConditionType

Underlying type: string

ConditionType is the type of condition.

Appears in:

FieldDescription
ReadyConditionTypeReady is a constant for a condition type indicating that the etcd cluster is ready.
AllMembersReadyConditionTypeAllMembersReady is a constant for a condition type indicating that all members of the etcd cluster are ready.
AllMembersUpdatedConditionTypeAllMembersUpdated is a constant for a condition type indicating that all members
of the etcd cluster have been updated with the desired spec changes.
BackupReadyConditionTypeBackupReady is a constant for a condition type indicating that the etcd backup is ready.
DataVolumesReadyConditionTypeDataVolumesReady is a constant for a condition type indicating that the etcd data volumes are ready.
SucceededEtcdCopyBackupsTaskSucceeded is a condition type indicating that a EtcdCopyBackupsTask has succeeded.
FailedEtcdCopyBackupsTaskFailed is a condition type indicating that a EtcdCopyBackupsTask has failed.

CrossVersionObjectReference

CrossVersionObjectReference contains enough information to let you identify the referred resource.

Appears in:

FieldDescriptionDefaultValidation
kind stringKind of the referent
name stringName of the referent
apiVersion stringAPI version of the referent

ErrorCode

Underlying type: string

ErrorCode is a string alias representing an error code that identifies an error.

Appears in:

Etcd

Etcd is the Schema for the etcds API

FieldDescriptionDefaultValidation
apiVersion stringdruid.gardener.cloud/v1alpha1
kind stringEtcd
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec EtcdSpec
status EtcdStatus

EtcdConfig

EtcdConfig defines the configuration for the etcd cluster to be deployed.

Appears in:

FieldDescriptionDefaultValidation
quota QuantityQuota defines the etcd DB quota.
snapshotCount integerSnapshotCount defines the number of applied Raft entries to hold in-memory before compaction.
More info: https://etcd.io/docs/v3.4/op-guide/maintenance/#raft-log-retention
defragmentationSchedule stringDefragmentationSchedule defines the cron standard schedule for defragmentation of etcd.Pattern: ^(\*|[1-5]?[0-9]|[1-5]?[0-9]-[1-5]?[0-9]|(?:[1-9]|[1-4][0-9]|5[0-9])\/(?:[1-9]|[1-4][0-9]|5[0-9]|60)|\*\/(?:[1-9]|[1-4][0-9]|5[0-9]|60))\s+(\*|[0-9]|1[0-9]|2[0-3]|[0-9]-(?:[0-9]|1[0-9]|2[0-3])|1[0-9]-(?:1[0-9]|2[0-3])|2[0-3]-2[0-3]|(?:[1-9]|1[0-9]|2[0-3])\/(?:[1-9]|1[0-9]|2[0-4])|\*\/(?:[1-9]|1[0-9]|2[0-4]))\s+(\*|[1-9]|[12][0-9]|3[01]|[1-9]-(?:[1-9]|[12][0-9]|3[01])|[12][0-9]-(?:[12][0-9]|3[01])|3[01]-3[01]|(?:[1-9]|[12][0-9]|30)\/(?:[1-9]|[12][0-9]|3[01])|\*\/(?:[1-9]|[12][0-9]|3[01]))\s+(\*|[1-9]|1[0-2]|[1-9]-(?:[1-9]|1[0-2])|1[0-2]-1[0-2]|(?:[1-9]|1[0-2])\/(?:[1-9]|1[0-2])|\*\/(?:[1-9]|1[0-2]))\s+(\*|[1-7]|[1-6]-[1-7]|[1-6]\/[1-7]|\*\/[1-7])$
serverPort integer
clientPort integer
wrapperPort integer
image stringImage defines the etcd container image and tag
authSecretRef SecretReference
metrics MetricsLevelMetrics defines the level of detail for exported metrics of etcd, specify ’extensive’ to include histogram metrics.Enum: [basic extensive]
resources ResourceRequirementsResources defines the compute Resources required by etcd container.
More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
clientUrlTls TLSConfigClientUrlTLS contains the ca, server TLS and client TLS secrets for client communication to ETCD cluster
peerUrlTls TLSConfigPeerUrlTLS contains the ca and server TLS secrets for peer communication within ETCD cluster
Currently, PeerUrlTLS does not require client TLS secrets for gardener implementation of ETCD cluster.
etcdDefragTimeout DurationEtcdDefragTimeout defines the timeout duration for etcd defrag callPattern: ^([0-9]+([.][0-9]+)?h)?([0-9]+([.][0-9]+)?m)?([0-9]+([.][0-9]+)?s)?([0-9]+([.][0-9]+)?d)?$
Type: string
heartbeatDuration DurationHeartbeatDuration defines the duration for members to send heartbeats. The default value is 10s.Pattern: ^([0-9]+([.][0-9]+)?h)?([0-9]+([.][0-9]+)?m)?([0-9]+([.][0-9]+)?s)?$
Type: string
clientService ClientServiceClientService defines the parameters of the client service that a user can specify

EtcdCopyBackupsTask

EtcdCopyBackupsTask is a task for copying etcd backups from a source to a target store.

FieldDescriptionDefaultValidation
apiVersion stringdruid.gardener.cloud/v1alpha1
kind stringEtcdCopyBackupsTask
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec EtcdCopyBackupsTaskSpec
status EtcdCopyBackupsTaskStatus

EtcdCopyBackupsTaskSpec

EtcdCopyBackupsTaskSpec defines the parameters for the copy backups task.

Appears in:

FieldDescriptionDefaultValidation
podLabels object (keys:string, values:string)PodLabels is a set of labels that will be added to pod(s) created by the copy backups task.
sourceStore StoreSpecSourceStore defines the specification of the source object store provider for storing backups.
targetStore StoreSpecTargetStore defines the specification of the target object store provider for storing backups.
maxBackupAge integerMaxBackupAge is the maximum age in days that a backup must have in order to be copied.
By default, all backups will be copied.
maxBackups integerMaxBackups is the maximum number of backups that will be copied starting with the most recent ones.
waitForFinalSnapshot WaitForFinalSnapshotSpecWaitForFinalSnapshot defines the parameters for waiting for a final full snapshot before copying backups.

EtcdCopyBackupsTaskStatus

EtcdCopyBackupsTaskStatus defines the observed state of the copy backups task.

Appears in:

FieldDescriptionDefaultValidation
conditions Condition arrayConditions represents the latest available observations of an object’s current state.
observedGeneration integerObservedGeneration is the most recent generation observed for this resource.
lastError stringLastError represents the last occurred error.

EtcdMemberConditionStatus

Underlying type: string

EtcdMemberConditionStatus is the status of an etcd cluster member.

Appears in:

FieldDescription
ReadyEtcdMemberStatusReady indicates that the etcd member is ready.
NotReadyEtcdMemberStatusNotReady indicates that the etcd member is not ready.
UnknownEtcdMemberStatusUnknown indicates that the status of the etcd member is unknown.

EtcdMemberStatus

EtcdMemberStatus holds information about etcd cluster membership.

Appears in:

FieldDescriptionDefaultValidation
name stringName is the name of the etcd member. It is the name of the backing Pod.
id stringID is the ID of the etcd member.
role EtcdRoleRole is the role in the etcd cluster, either Leader or Member.
status EtcdMemberConditionStatusStatus of the condition, one of True, False, Unknown.
reason stringThe reason for the condition’s last transition.
lastTransitionTime TimeLastTransitionTime is the last time the condition’s status changed.

EtcdRole

Underlying type: string

EtcdRole is the role of an etcd cluster member.

Appears in:

FieldDescription
LeaderEtcdRoleLeader describes the etcd role Leader.
MemberEtcdRoleMember describes the etcd role Member.

EtcdSpec

EtcdSpec defines the desired state of Etcd

Appears in:

FieldDescriptionDefaultValidation
selector LabelSelectorselector is a label query over pods that should match the replica count.
It must match the pod template’s labels.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
Deprecated: this field will be removed in the future.
labels object (keys:string, values:string)
annotations object (keys:string, values:string)
etcd EtcdConfig
backup BackupSpec
sharedConfig SharedConfig
schedulingConstraints SchedulingConstraints
replicas integer
priorityClassName stringPriorityClassName is the name of a priority class that shall be used for the etcd pods.
storageClass stringStorageClass defines the name of the StorageClass required by the claim.
More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
storageCapacity QuantityStorageCapacity defines the size of persistent volume.
volumeClaimTemplate stringVolumeClaimTemplate defines the volume claim template to be created
runAsRoot booleanRunAsRoot defines whether the securityContext of the pod specification should indicate that the containers shall
run as root. By default, they run as non-root with user ’nobody’.

EtcdStatus

EtcdStatus defines the observed state of Etcd.

Appears in:

FieldDescriptionDefaultValidation
observedGeneration integerObservedGeneration is the most recent generation observed for this resource.
etcd CrossVersionObjectReference
conditions Condition arrayConditions represents the latest available observations of an etcd’s current state.
lastErrors LastError arrayLastErrors captures errors that occurred during the last operation.
lastOperation LastOperationLastOperation indicates the last operation performed on this resource.
currentReplicas integerCurrentReplicas is the current replica count for the etcd cluster.
replicas integerReplicas is the replica count of the etcd cluster.
readyReplicas integerReadyReplicas is the count of replicas being ready in the etcd cluster.
ready booleanReady is true if all etcd replicas are ready.
labelSelector LabelSelectorLabelSelector is a label query over pods that should match the replica count.
It must match the pod template’s labels.
Deprecated: this field will be removed in the future.
members EtcdMemberStatus arrayMembers represents the members of the etcd cluster
peerUrlTLSEnabled booleanPeerUrlTLSEnabled captures the state of peer url TLS being enabled for the etcd member(s)
selector stringSelector is a label query over pods that should match the replica count.
It must match the pod template’s labels.

GarbageCollectionPolicy

Underlying type: string

GarbageCollectionPolicy defines the type of policy for snapshot garbage collection.

Validation:

  • Enum: [Exponential LimitBased]

Appears in:

LastError

LastError stores details of the most recent error encountered for a resource.

Appears in:

FieldDescriptionDefaultValidation
code ErrorCodeCode is an error code that uniquely identifies an error.
description stringDescription is a human-readable message indicating details of the error.
observedAt TimeObservedAt is the time the error was observed.

LastOperation

LastOperation holds the information on the last operation done on the Etcd resource.

Appears in:

FieldDescriptionDefaultValidation
type LastOperationTypeType is the type of last operation.
state LastOperationStateState is the state of the last operation.
description stringDescription describes the last operation.
runID stringRunID correlates an operation with a reconciliation run.
Every time an Etcd resource is reconciled (barring status reconciliation which is periodic), a unique ID is
generated which can be used to correlate all actions done as part of a single reconcile run. Capturing this
as part of LastOperation aids in establishing this correlation. This further helps in also easily filtering
reconcile logs as all structured logs in a reconciliation run should have the runID referenced.
lastUpdateTime TimeLastUpdateTime is the time at which the operation was last updated.

LastOperationState

Underlying type: string

LastOperationState is a string alias representing the state of the last operation.

Appears in:

FieldDescription
ProcessingLastOperationStateProcessing indicates that an operation is in progress.
SucceededLastOperationStateSucceeded indicates that an operation has completed successfully.
ErrorLastOperationStateError indicates that an operation is completed with errors and will be retried.
RequeueLastOperationStateRequeue indicates that an operation is not completed and either due to an error or unfulfilled conditions will be retried.

LastOperationType

Underlying type: string

LastOperationType is a string alias representing type of the last operation.

Appears in:

FieldDescription
CreateLastOperationTypeCreate indicates that the last operation was a creation of a new Etcd resource.
ReconcileLastOperationTypeReconcile indicates that the last operation was a reconciliation of the spec of an Etcd resource.
DeleteLastOperationTypeDelete indicates that the last operation was a deletion of an existing Etcd resource.

LeaderElectionSpec

LeaderElectionSpec defines parameters related to the LeaderElection configuration.

Appears in:

FieldDescriptionDefaultValidation
reelectionPeriod DurationReelectionPeriod defines the Period after which leadership status of corresponding etcd is checked.Pattern: ^([0-9]+([.][0-9]+)?h)?([0-9]+([.][0-9]+)?m)?([0-9]+([.][0-9]+)?s)?([0-9]+([.][0-9]+)?d)?$
Type: string
etcdConnectionTimeout DurationEtcdConnectionTimeout defines the timeout duration for etcd client connection during leader election.Pattern: ^([0-9]+([.][0-9]+)?h)?([0-9]+([.][0-9]+)?m)?([0-9]+([.][0-9]+)?s)?([0-9]+([.][0-9]+)?d)?$
Type: string

MetricsLevel

Underlying type: string

MetricsLevel defines the level ‘basic’ or ’extensive’.

Validation:

  • Enum: [basic extensive]

Appears in:

FieldDescription
basicBasic is a constant for metrics level basic.
extensiveExtensive is a constant for metrics level extensive.

SchedulingConstraints

SchedulingConstraints defines the different scheduling constraints that must be applied to the pod spec in the etcd statefulset. Currently supported constraints are Affinity and TopologySpreadConstraints.

Appears in:

FieldDescriptionDefaultValidation
affinity AffinityAffinity defines the various affinity and anti-affinity rules for a pod
that are honoured by the kube-scheduler.
topologySpreadConstraints TopologySpreadConstraint arrayTopologySpreadConstraints describes how a group of pods ought to spread across topology domains,
that are honoured by the kube-scheduler.

SecretReference

SecretReference defines a reference to a secret.

Appears in:

FieldDescriptionDefaultValidation
dataKey stringDataKey is the name of the key in the data map containing the credentials.

SharedConfig

SharedConfig defines parameters shared and used by Etcd as well as backup-restore sidecar.

Appears in:

FieldDescriptionDefaultValidation
autoCompactionMode CompactionModeAutoCompactionMode defines the auto-compaction-mode:‘periodic’ mode or ‘revision’ mode for etcd and embedded-etcd of backup-restore sidecar.Enum: [periodic revision]
autoCompactionRetention stringAutoCompactionRetention defines the auto-compaction-retention length for etcd as well as for embedded-etcd of backup-restore sidecar.

StorageProvider

Underlying type: string

StorageProvider defines the type of object store provider for storing backups.

Appears in:

StoreSpec

StoreSpec defines parameters related to ObjectStore persisting backups

Appears in:

FieldDescriptionDefaultValidation
container stringContainer is the name of the container the backup is stored at.
prefix stringPrefix is the prefix used for the store.
provider StorageProviderProvider is the name of the backup provider.
secretRef SecretReferenceSecretRef is the reference to the secret which used to connect to the backup store.

TLSConfig

TLSConfig hold the TLS configuration details.

Appears in:

FieldDescriptionDefaultValidation
tlsCASecretRef SecretReference
serverTLSSecretRef SecretReference
clientTLSSecretRef SecretReference

WaitForFinalSnapshotSpec

WaitForFinalSnapshotSpec defines the parameters for waiting for a final full snapshot before copying backups.

Appears in:

FieldDescriptionDefaultValidation
enabled booleanEnabled specifies whether to wait for a final full snapshot before copying backups.
timeout DurationTimeout is the timeout for waiting for a final full snapshot. When this timeout expires, the copying of backups
will be performed anyway. No timeout or 0 means wait forever.