Loading

Elastic Cloud on Kubernetes API Reference

ECK

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

Agent is the Schema for the Agents API.

Field Description
apiVersion string agent.k8s.elastic.co/v1alpha1
kind string Agent
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec AgentSpec
Appears In:

AgentSpec defines the desired state of the Agent

Appears In:
Field Description
version string Version of the Agent.
elasticsearchRefs Output array ElasticsearchRefs is a reference to a list of Elasticsearch clusters running in the same Kubernetes cluster.
Due to existing limitations, only a single ES cluster is currently supported.
image string Image is the Agent Docker image to deploy. Version has to match the Agent in the image.
config Config Config holds the Agent configuration. At most one of [Config, ConfigRef] can be specified.
configRef ConfigSource ConfigRef contains a reference to an existing Kubernetes Secret holding the Agent configuration.
Agent settings must be specified as yaml, under a single "agent.yml" entry. At most one of [Config, ConfigRef]
can be specified.
secureSettings SecretSource array SecureSettings is a list of references to Kubernetes Secrets containing sensitive configuration options for the Agent.
Secrets data can be then referenced in the Agent config using the Secret's keys or as specified in Entries field of
each SecureSetting.
serviceAccountName string ServiceAccountName is used to check access from the current resource to an Elasticsearch resource in a different namespace.
Can only be used if ECK is enforcing RBAC on references.
daemonSet DaemonSetSpec DaemonSet specifies the Agent should be deployed as a DaemonSet, and allows providing its spec.
Cannot be used along with deployment or statefulSet.
deployment DeploymentSpec Deployment specifies the Agent should be deployed as a Deployment, and allows providing its spec.
Cannot be used along with daemonSet or statefulSet.
statefulSet StatefulSetSpec StatefulSet specifies the Agent should be deployed as a StatefulSet, and allows providing its spec.
Cannot be used along with daemonSet or deployment.
revisionHistoryLimit integer RevisionHistoryLimit is the number of revisions to retain to allow rollback in the underlying DaemonSet or Deployment or StatefulSet.
http HTTPConfig HTTP holds the HTTP layer configuration for the Agent in Fleet mode with Fleet Server enabled.
mode AgentMode Mode specifies the source of configuration for the Agent. The configuration can be specified locally through
config or configRef (standalone mode), or come from Fleet during runtime (fleet mode).
Defaults to standalone mode.
fleetServerEnabled boolean FleetServerEnabled determines whether this Agent will launch Fleet Server. Don't set unless mode is set to fleet.
policyID string PolicyID determines into which Agent Policy this Agent will be enrolled.
This field will become mandatory in a future release, default policies are deprecated since 8.1.0.
kibanaRef ObjectSelector KibanaRef is a reference to Kibana where Fleet should be set up and this Agent should be enrolled. Don't set
unless mode is set to fleet.
fleetServerRef ObjectSelector FleetServerRef is a reference to Fleet Server that this Agent should connect to to obtain it's configuration.
Don't set unless mode is set to fleet.
Appears In:
Field Description
podTemplate PodTemplateSpec
updateStrategy DaemonSetUpdateStrategy
Appears In:
Field Description
podTemplate PodTemplateSpec
replicas integer
strategy DeploymentStrategy
Appears In:
Field Description
ObjectSelector ObjectSelector
outputName string
Appears In:
Field Description
podTemplate PodTemplateSpec
replicas integer
serviceName string
podManagementPolicy PodManagementPolicyType PodManagementPolicy controls how pods are created during initial scale up,
when replacing pods on nodes, or when scaling down. The default policy is
Parallel, where pods are created in parallel to match the desired scale
without waiting, and on scale down will delete all pods at once.
The alternative policy is OrderedReady, the default for vanilla kubernetes
StatefulSets, where pods are created in increasing order in increasing order
(pod-0, then pod-1, etc.) and the controller will wait until each pod is ready before
continuing. When scaling down, the pods are removed in the opposite order.
volumeClaimTemplates PersistentVolumeClaim array VolumeClaimTemplates is a list of persistent volume claims to be used by each Pod.
Every claim in this list must have a matching volumeMount in one of the containers defined in the PodTemplate.
Items defined here take precedence over any default claims added by the operator with the same name.

Package v1 contains API schema definitions for managing APM Server resources.

ApmServer represents an APM Server resource in a Kubernetes cluster.

Field Description
apiVersion string apm.k8s.elastic.co/v1
kind string ApmServer
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ApmServerSpec

ApmServerSpec holds the specification of an APM Server.

Appears In:
Field Description
version string Version of the APM Server.
image string Image is the APM Server Docker image to deploy.
count integer Count of APM Server instances to deploy.
config Config Config holds the APM Server configuration. See: https://www.elastic.co/guide/en/apm/server/current/configuring-howto-apm-server.html
http HTTPConfig HTTP holds the HTTP layer configuration for the APM Server resource.
elasticsearchRef ObjectSelector ElasticsearchRef is a reference to the output Elasticsearch cluster running in the same Kubernetes cluster.
kibanaRef ObjectSelector KibanaRef is a reference to a Kibana instance running in the same Kubernetes cluster.
It allows APM agent central configuration management in Kibana.
podTemplate PodTemplateSpec PodTemplate provides customisation options (labels, annotations, affinity rules, resource requests, and so on) for the APM Server pods.
revisionHistoryLimit integer RevisionHistoryLimit is the number of revisions to retain to allow rollback in the underlying Deployment.
secureSettings SecretSource array SecureSettings is a list of references to Kubernetes secrets containing sensitive configuration options for APM Server.
serviceAccountName string ServiceAccountName is used to check access from the current resource to a resource (for ex. Elasticsearch) in a different namespace.
Can only be used if ECK is enforcing RBAC on references.

Package v1beta1 contains API schema definitions for managing APM Server resources.

ApmServer represents an APM Server resource in a Kubernetes cluster.

Field Description
apiVersion string apm.k8s.elastic.co/v1beta1
kind string ApmServer
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ApmServerSpec

ApmServerSpec holds the specification of an APM Server.

Appears In:
Field Description
version string Version of the APM Server.
image string Image is the APM Server Docker image to deploy.
count integer Count of APM Server instances to deploy.
config Config Config holds the APM Server configuration. See: https://www.elastic.co/guide/en/apm/server/current/configuring-howto-apm-server.html
http HTTPConfig HTTP holds the HTTP layer configuration for the APM Server resource.
elasticsearchRef ObjectSelector ElasticsearchRef is a reference to the output Elasticsearch cluster running in the same Kubernetes cluster.
podTemplate PodTemplateSpec PodTemplate provides customisation options (labels, annotations, affinity rules, resource requests, and so on) for the APM Server pods.
secureSettings SecretSource array SecureSettings is a list of references to Kubernetes secrets containing sensitive configuration options for APM Server.

Package v1alpha1 contains API schema definitions for managing ElasticsearchAutoscaler resources.

ElasticsearchAutoscaler represents an ElasticsearchAutoscaler resource in a Kubernetes cluster.

Field Description
apiVersion string autoscaling.k8s.elastic.co/v1alpha1
kind string ElasticsearchAutoscaler
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ElasticsearchAutoscalerSpec

ElasticsearchAutoscalerSpec holds the specification of an Elasticsearch autoscaler resource.

Field Description
elasticsearchRef ElasticsearchRef
pollingPeriod Duration PollingPeriod is the period at which to synchronize with the Elasticsearch autoscaling API.

ElasticsearchRef is a reference to an Elasticsearch cluster that exists in the same namespace.

Field Description
name string Name is the name of the Elasticsearch resource to scale automatically.

Package v1beta1 contains API Schema definitions for the beat v1beta1 API group

Beat is the Schema for the Beats API.

Field Description
apiVersion string beat.k8s.elastic.co/v1beta1
kind string Beat
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec BeatSpec

BeatSpec defines the desired state of a Beat.

Appears In:
Field Description
type string Type is the type of the Beat to deploy (filebeat, metricbeat, heartbeat, auditbeat, journalbeat, packetbeat, and so on).
Any string can be used, but well-known types will have the image field defaulted and have the appropriate
Elasticsearch roles created automatically. It also allows for dashboard setup when combined with a KibanaRef.
version string Version of the Beat.
elasticsearchRef ObjectSelector ElasticsearchRef is a reference to an Elasticsearch cluster running in the same Kubernetes cluster.
kibanaRef ObjectSelector KibanaRef is a reference to a Kibana instance running in the same Kubernetes cluster.
It allows automatic setup of dashboards and visualizations.
image string Image is the Beat Docker image to deploy. Version and Type have to match the Beat in the image.
config Config Config holds the Beat configuration. At most one of [Config, ConfigRef] can be specified.
configRef ConfigSource ConfigRef contains a reference to an existing Kubernetes Secret holding the Beat configuration.
Beat settings must be specified as yaml, under a single "beat.yml" entry. At most one of [Config, ConfigRef]
can be specified.
secureSettings SecretSource array SecureSettings is a list of references to Kubernetes Secrets containing sensitive configuration options for the Beat.
Secrets data can be then referenced in the Beat config using the Secret's keys or as specified in Entries field of
each SecureSetting.
serviceAccountName string ServiceAccountName is used to check access from the current resource to Elasticsearch resource in a different namespace.
Can only be used if ECK is enforcing RBAC on references.
daemonSet DaemonSetSpec DaemonSet specifies the Beat should be deployed as a DaemonSet, and allows providing its spec.
Cannot be used along with deployment. If both are absent a default for the Type is used.
deployment DeploymentSpec Deployment specifies the Beat should be deployed as a Deployment, and allows providing its spec.
Cannot be used along with daemonSet. If both are absent a default for the Type is used.
monitoring Monitoring Monitoring enables you to collect and ship logs and metrics for this Beat.
Metricbeat and/or Filebeat sidecars are configured and send monitoring data to an
Elasticsearch monitoring cluster running in the same Kubernetes cluster.
revisionHistoryLimit integer RevisionHistoryLimit is the number of revisions to retain to allow rollback in the underlying DaemonSet or Deployment.
Appears In:
Field Description
podTemplate PodTemplateSpec
updateStrategy DaemonSetUpdateStrategy
Appears In:
Field Description
podTemplate PodTemplateSpec
replicas integer
strategy DeploymentStrategy

Package v1 contains API schema definitions for common types used by all resources.

Config represents untyped YAML configuration.

ConfigMapRef is a reference to a config map that exists in the same namespace as the referring resource.

Appears In:
Field Description
configMapName string

ConfigSource references configuration settings.

Field Description
secretName string SecretName is the name of the secret.

HTTPConfig holds the HTTP layer configuration for resources.

Field Description
service ServiceTemplate Service defines the template for the associated Kubernetes Service object.
tls TLSOptions TLS defines options for configuring TLS for HTTP.

KeyToPath defines how to map a key in a Secret object to a filesystem path.

Appears In:
Field Description
key string Key is the key contained in the secret.
path string Path is the relative file path to map the key to.
Path must not be an absolute file path and must not contain any ".." components.

LocalObjectSelector defines a reference to a Kubernetes object corresponding to an Elastic resource managed by the operator

Appears In:
Field Description
namespace string Namespace of the Kubernetes object. If empty, defaults to the current namespace.
name string Name of an existing Kubernetes object corresponding to an Elastic resource managed by ECK.
serviceName string ServiceName is the name of an existing Kubernetes service which is used to make requests to the referenced
object. It has to be in the same namespace as the referenced resource. If left empty, the default HTTP service of
the referenced resource is used.

LogsMonitoring holds a list of Elasticsearch clusters which receive logs data from
associated resources.

Appears In:
Field Description
elasticsearchRefs ObjectSelector array ElasticsearchRefs is a reference to a list of monitoring Elasticsearch clusters running in the same Kubernetes cluster.
Due to existing limitations, only a single Elasticsearch cluster is currently supported.

MetricsMonitoring holds a list of Elasticsearch clusters which receive monitoring data from
associated resources.

Appears In:
Field Description
elasticsearchRefs ObjectSelector array ElasticsearchRefs is a reference to a list of monitoring Elasticsearch clusters running in the same Kubernetes cluster.
Due to existing limitations, only a single Elasticsearch cluster is currently supported.

Monitoring holds references to both the metrics, and logs Elasticsearch clusters for
configuring stack monitoring.

Field Description
metrics MetricsMonitoring Metrics holds references to Elasticsearch clusters which receive monitoring data from this resource.
logs LogsMonitoring Logs holds references to Elasticsearch clusters which receive log data from an associated resource.

ObjectSelector defines a reference to a Kubernetes object which can be an Elastic resource managed by the operator
or a Secret describing an external Elastic resource not managed by the operator.

Field Description
namespace string Namespace of the Kubernetes object. If empty, defaults to the current namespace.
name string Name of an existing Kubernetes object corresponding to an Elastic resource managed by ECK.
serviceName string ServiceName is the name of an existing Kubernetes service which is used to make requests to the referenced
object. It has to be in the same namespace as the referenced resource. If left empty, the default HTTP service of
the referenced resource is used.
secretName string SecretName is the name of an existing Kubernetes secret that contains connection information for associating an
Elastic resource not managed by the operator. The referenced secret must contain the following:
- url: the URL to reach the Elastic resource
- username: the username of the user to be authenticated to the Elastic resource
- password: the password of the user to be authenticated to the Elastic resource
- ca.crt: the CA certificate in PEM format (optional)
- api-key: the key to authenticate against the Elastic resource instead of a username and password (supported only for elasticsearchRefs in AgentSpec and in BeatSpec)
This field cannot be used in combination with the other fields name, namespace or serviceName.

PodDisruptionBudgetTemplate defines the template for creating a PodDisruptionBudget.

Appears In:
Field Description
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec PodDisruptionBudgetSpec Spec is the specification of the PDB.

SecretRef is a reference to a secret that exists in the same namespace.

Field Description
secretName string SecretName is the name of the secret.

SecretSource defines a data source based on a Kubernetes Secret.

Field Description
secretName string SecretName is the name of the secret.
entries KeyToPath array Entries define how to project each key-value pair in the secret to filesystem paths.
If not defined, all keys will be projected to similarly named paths in the filesystem.
If defined, only the specified keys will be projected to the corresponding paths.

SelfSignedCertificate holds configuration for the self-signed certificate generated by the operator.

Appears In:
Field Description
subjectAltNames SubjectAlternativeName array SubjectAlternativeNames is a list of SANs to include in the generated HTTP TLS certificate.
disabled boolean Disabled indicates that the provisioning of the self-signed certifcate should be disabled.

ServiceTemplate defines the template for a Kubernetes Service.

Field Description
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ServiceSpec Spec is the specification of the service.

SubjectAlternativeName represents a SAN entry in a x509 certificate.

Field Description
dns string DNS is the DNS name of the subject.
ip string IP is the IP address of the subject.

TLSOptions holds TLS configuration options.

Field Description
selfSignedCertificate SelfSignedCertificate SelfSignedCertificate allows configuring the self-signed certificate generated by the operator.
certificate SecretRef Certificate is a reference to a Kubernetes secret that contains the certificate and private key for enabling TLS.
The referenced secret should contain the following:


- ca.crt: The certificate authority (optional).
- tls.crt: The certificate (or a chain).
- tls.key: The private key to the first certificate in the certificate chain.

Package v1alpha1 contains API schema definitions for common types used by all resources.

Condition represents Elasticsearch resource's condition.
This API is in technical preview and may be changed or removed in a future release.

Appears In:
Field Description
type ConditionType
status ConditionStatus
lastTransitionTime Time
message string

ConditionType defines the condition of an Elasticsearch resource.

Appears In:
Appears In:
Field Description
type ConditionType
status ConditionStatus
lastTransitionTime Time
message string

Package v1beta1 contains API schema definitions for common types used by all resources.

Config represents untyped YAML configuration.

HTTPConfig holds the HTTP layer configuration for resources.

Field Description
service ServiceTemplate Service defines the template for the associated Kubernetes Service object.
tls TLSOptions TLS defines options for configuring TLS for HTTP.

KeyToPath defines how to map a key in a Secret object to a filesystem path.

Appears In:
Field Description
key string Key is the key contained in the secret.
path string Path is the relative file path to map the key to.
Path must not be an absolute file path and must not contain any ".." components.

ObjectSelector defines a reference to a Kubernetes object.

Field Description
name string Name of the Kubernetes object.
namespace string Namespace of the Kubernetes object. If empty, defaults to the current namespace.

PodDisruptionBudgetTemplate defines the template for creating a PodDisruptionBudget.

Appears In:
Field Description
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec PodDisruptionBudgetSpec Spec is the specification of the PDB.

SecretRef is a reference to a secret that exists in the same namespace.

Appears In:
Field Description
secretName string SecretName is the name of the secret.

SecretSource defines a data source based on a Kubernetes Secret.

Field Description
secretName string SecretName is the name of the secret.
entries KeyToPath array Entries define how to project each key-value pair in the secret to filesystem paths.
If not defined, all keys will be projected to similarly named paths in the filesystem.
If defined, only the specified keys will be projected to the corresponding paths.

SelfSignedCertificate holds configuration for the self-signed certificate generated by the operator.

Appears In:
Field Description
subjectAltNames SubjectAlternativeName array SubjectAlternativeNames is a list of SANs to include in the generated HTTP TLS certificate.
disabled boolean Disabled indicates that the provisioning of the self-signed certifcate should be disabled.

ServiceTemplate defines the template for a Kubernetes Service.

Appears In:
Field Description
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ServiceSpec Spec is the specification of the service.

SubjectAlternativeName represents a SAN entry in a x509 certificate.

Appears In:
Field Description
dns string DNS is the DNS name of the subject.
ip string IP is the IP address of the subject.

TLSOptions holds TLS configuration options.

Appears In:
Field Description
selfSignedCertificate SelfSignedCertificate SelfSignedCertificate allows configuring the self-signed certificate generated by the operator.
certificate SecretRef Certificate is a reference to a Kubernetes secret that contains the certificate and private key for enabling TLS.
The referenced secret should contain the following:


- ca.crt: The certificate authority (optional).
- tls.crt: The certificate (or a chain).
- tls.key: The private key to the first certificate in the certificate chain.

Package v1 contains API schema definitions for managing Elasticsearch resources.

Auth contains user authentication and authorization security settings for Elasticsearch.

Appears In:
Field Description
roles RoleSource array Roles to propagate to the Elasticsearch cluster.
fileRealm FileRealmSource array FileRealm to propagate to the Elasticsearch cluster.
disableElasticUser boolean DisableElasticUser disables the default elastic user that is created by ECK.

ChangeBudget defines the constraints to consider when applying changes to the Elasticsearch cluster.

Appears In:
Field Description
maxUnavailable integer MaxUnavailable is the maximum number of Pods that can be unavailable (not ready) during the update due to
circumstances under the control of the operator. Setting a negative value will disable this restriction.
Defaults to 1 if not specified.
maxSurge integer MaxSurge is the maximum number of new Pods that can be created exceeding the original number of Pods defined in
the specification. MaxSurge is only taken into consideration when scaling up. Setting a negative value will
disable the restriction. Defaults to unbounded if not specified.

DownscaleOperation provides details about in progress downscale operations.
This API is in technical preview and may be changed or removed in a future release.

Appears In:
Field Description
lastUpdatedTime Time
nodes DownscaledNode array Nodes which are scheduled to be removed from the cluster.
stalled boolean Stalled represents a state where no progress can be made.
It is only available for clusters managed with the Elasticsearch shutdown API.

DownscaledNode provides an overview of in progress changes applied by the operator to remove Elasticsearch nodes from the cluster.
This API is in technical preview and may be changed or removed in a future release.

Appears In:
Field Description
name string Name of the Elasticsearch node that should be removed.
shutdownStatus string Shutdown status as returned by the Elasticsearch shutdown API.
If the Elasticsearch shutdown API is not available, the shutdown status is then inferred from the remaining
shards on the nodes, as observed by the operator.
explanation string Explanation provides details about an in progress node shutdown. It is only available for clusters managed with the
Elasticsearch shutdown API.

Elasticsearch represents an Elasticsearch resource in a Kubernetes cluster.

Field Description
apiVersion string elasticsearch.k8s.elastic.co/v1
kind string Elasticsearch
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ElasticsearchSpec
status ElasticsearchStatus

ElasticsearchHealth is the health of the cluster as returned by the health API.

Appears In:

ElasticsearchOrchestrationPhase is the phase Elasticsearch is in from the controller point of view.

Appears In:

ElasticsearchSpec holds the specification of an Elasticsearch cluster.

Appears In:
Field Description
version string Version of Elasticsearch.
image string Image is the Elasticsearch Docker image to deploy.
remoteClusterServer RemoteClusterServer RemoteClusterServer specifies if the remote cluster server should be enabled.
This must be enabled if this cluster is a remote cluster which is expected to be accessed using API key authentication.
http HTTPConfig HTTP holds HTTP layer settings for Elasticsearch.
transport TransportConfig Transport holds transport layer settings for Elasticsearch.
nodeSets NodeSet array NodeSets allow specifying groups of Elasticsearch nodes sharing the same configuration and Pod templates.
updateStrategy UpdateStrategy UpdateStrategy specifies how updates to the cluster should be performed.
podDisruptionBudget PodDisruptionBudgetTemplate PodDisruptionBudget provides access to the default Pod disruption budget for the Elasticsearch cluster.
The default budget doesn't allow any Pod to be removed in case the cluster is not green or if there is only one node of type data or master.
In all other cases the default PodDisruptionBudget sets minUnavailable equal to the total number of nodes minus 1.
To disable, set PodDisruptionBudget to the empty value ({} in YAML).
auth Auth Auth contains user authentication and authorization security settings for Elasticsearch.
secureSettings SecretSource array SecureSettings is a list of references to Kubernetes secrets containing sensitive configuration options for Elasticsearch.
serviceAccountName string ServiceAccountName is used to check access from the current resource to a resource (for ex. a remote Elasticsearch cluster) in a different namespace.
Can only be used if ECK is enforcing RBAC on references.
remoteClusters RemoteCluster array RemoteClusters enables you to establish uni-directional connections to a remote Elasticsearch cluster.
volumeClaimDeletePolicy VolumeClaimDeletePolicy VolumeClaimDeletePolicy sets the policy for handling deletion of PersistentVolumeClaims for all NodeSets.
Possible values are DeleteOnScaledownOnly and DeleteOnScaledownAndClusterDeletion. Defaults to DeleteOnScaledownAndClusterDeletion.
monitoring Monitoring Monitoring enables you to collect and ship log and monitoring data of this Elasticsearch cluster.
See https://www.elastic.co/guide/en/elasticsearch/reference/current/monitor-elasticsearch-cluster.html.
Metricbeat and Filebeat are deployed in the same Pod as sidecars and each one sends data to one or two different
Elasticsearch monitoring clusters running in the same Kubernetes cluster.
revisionHistoryLimit integer RevisionHistoryLimit is the number of revisions to retain to allow rollback in the underlying StatefulSets.

ElasticsearchStatus represents the observed state of Elasticsearch.

Appears In:
Field Description
availableNodes integer AvailableNodes is the number of available instances.
version string Version of the stack resource currently running. During version upgrades, multiple versions may run
in parallel: this value specifies the lowest version currently running.
health ElasticsearchHealth
phase ElasticsearchOrchestrationPhase
conditions Conditions Conditions holds the current service state of an Elasticsearch cluster.
This API is in technical preview and may be changed or removed in a future release.
inProgressOperations InProgressOperations InProgressOperations represents changes being applied by the operator to the Elasticsearch cluster.
This API is in technical preview and may be changed or removed in a future release.
observedGeneration integer ObservedGeneration is the most recent generation observed for this Elasticsearch cluster.
It corresponds to the metadata generation, which is updated on mutation by the API Server.
If the generation observed in status diverges from the generation in metadata, the Elasticsearch
controller has not yet processed the changes contained in the Elasticsearch specification.
Appears In:
Field Description
grant string array
except string array

FileRealmSource references users to create in the Elasticsearch cluster.

Appears In:
Field Description
secretName string SecretName is the name of the secret.

InProgressOperations provides details about in progress changes applied by the operator on the Elasticsearch cluster.
This API is in technical preview and may be changed or removed in a future release.

Appears In:
Field Description
downscale DownscaleOperation
upgrade UpgradeOperation
upscale UpscaleOperation
Appears In:
Field Description
name string Name of the Elasticsearch node that should be added to the cluster.
status NewNodeStatus NewNodeStatus states if a new node is being created, or if the upscale is delayed.
message string Optional message to explain why a node may not be immediately added.

NewNodeStatus provides details about the status of nodes which are expected to be created and added to the Elasticsearch cluster.
This API is in technical preview and may be changed or removed in a future release.

Appears In:

NodeSet is the specification for a group of Elasticsearch nodes sharing the same configuration and a Pod template.

Appears In:
Field Description
name string Name of this set of nodes. Becomes a part of the Elasticsearch node.name setting.
config Config Config holds the Elasticsearch configuration.
count integer Count of Elasticsearch nodes to deploy.
If the node set is managed by an autoscaling policy the initial value is automatically set by the autoscaling controller.
podTemplate PodTemplateSpec PodTemplate provides customisation options (labels, annotations, affinity rules, resource requests, and so on) for the Pods belonging to this NodeSet.
volumeClaimTemplates PersistentVolumeClaim array VolumeClaimTemplates is a list of persistent volume claims to be used by each Pod in this NodeSet.
Every claim in this list must have a matching volumeMount in one of the containers defined in the PodTemplate.
Items defined here take precedence over any default claims added by the operator with the same name.

RemoteCluster declares a remote Elasticsearch cluster connection.

Appears In:
Field Description
name string Name is the name of the remote cluster as it is set in the Elasticsearch settings.
The name is expected to be unique for each remote clusters.
elasticsearchRef LocalObjectSelector ElasticsearchRef is a reference to an Elasticsearch cluster running within the same k8s cluster.
apiKey RemoteClusterAPIKey APIKey can be used to enable remote cluster access using Cross-Cluster API keys: https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-create-cross-cluster-api-key.html

RemoteClusterAPIKey defines a remote cluster API Key.

Appears In:
Field Description
access RemoteClusterAccess Access is the name of the API Key. It is automatically generated if not set or empty.

RemoteClusterAccess models the API key specification as documented in https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-create-cross-cluster-api-key.html

Appears In:
Field Description
search Search
replication Replication
Appears In:
Field Description
enabled boolean
Appears In:
Field Description
names string array

RoleSource references roles to create in the Elasticsearch cluster.

Appears In:
Field Description
secretName string SecretName is the name of the secret.
Appears In:
Field Description
names string array
field_security FieldSecurity
query Config
allow_restricted_indices boolean

SelfSignedTransportCertificates holds configuration for the self-signed certificates generated by the operator.

Appears In:
Field Description
disabled boolean Disabled indicates that provisioning of the self-signed certificates should be disabled.

TransportConfig holds the transport layer settings for Elasticsearch.

Appears In:
Field Description
service ServiceTemplate Service defines the template for the associated Kubernetes Service object.
tls TransportTLSOptions TLS defines options for configuring TLS on the transport layer.
Appears In:
Field Description
otherNameSuffix string OtherNameSuffix when defined will be prefixed with the Pod name and used as the common name,
and the first DNSName, as well as an OtherName required by Elasticsearch in the Subject Alternative Name
extension of each Elasticsearch node's transport TLS certificate.
Example: if set to "node.cluster.local", the generated certificate will have its otherName set to "<pod_name>.node.cluster.local".
subjectAltNames SubjectAlternativeName array SubjectAlternativeNames is a list of SANs to include in the generated node transport TLS certificates.
certificate SecretRef Certificate is a reference to a Kubernetes secret that contains the CA certificate
and private key for generating node certificates.
The referenced secret should contain the following:


- ca.crt: The CA certificate in PEM format.
- ca.key: The private key for the CA certificate in PEM format.
certificateAuthorities ConfigMapRef CertificateAuthorities is a reference to a config map that contains one or more x509 certificates for
trusted authorities in PEM format. The certificates need to be in a file called ca.crt.
selfSignedCertificates SelfSignedTransportCertificates SelfSignedCertificates allows configuring the self-signed certificate generated by the operator.

UpdateStrategy specifies how updates to the cluster should be performed.

Appears In:
Field Description
changeBudget ChangeBudget ChangeBudget defines the constraints to consider when applying changes to the Elasticsearch cluster.

UpgradeOperation provides an overview of the pending or in progress changes applied by the operator to update the Elasticsearch nodes in the cluster.
This API is in technical preview and may be changed or removed in a future release.

Appears In:
Field Description
lastUpdatedTime Time
nodes UpgradedNode array Nodes that must be restarted for upgrade.

UpgradedNode provides details about the status of nodes which are expected to be updated.
This API is in technical preview and may be changed or removed in a future release.

Appears In:
Field Description
name string Name of the Elasticsearch node that should be upgraded.
status string Status states if the node is either in the process of being deleted for an upgrade,
or blocked by a predicate or another condition stated in the message field.
message string Optional message to explain why a node may not be immediately restarted for upgrade.
predicate string Predicate is the name of the predicate currently preventing this node from being deleted for an upgrade.

UpscaleOperation provides an overview of in progress changes applied by the operator to add Elasticsearch nodes to the cluster.
This API is in technical preview and may be changed or removed in a future release.

Appears In:
Field Description
lastUpdatedTime Time
nodes NewNode array Nodes expected to be added by the operator.

VolumeClaimDeletePolicy describes the delete policy for handling PersistentVolumeClaims that hold Elasticsearch data.
Inspired by https://github.com/kubernetes/enhancements/pull/2440

Appears In:

Package v1beta1 contains API schema definitions for managing Elasticsearch resources.

ChangeBudget defines the constraints to consider when applying changes to the Elasticsearch cluster.

Appears In:
Field Description
maxUnavailable integer MaxUnavailable is the maximum number of pods that can be unavailable (not ready) during the update due to
circumstances under the control of the operator. Setting a negative value will disable this restriction.
Defaults to 1 if not specified.
maxSurge integer MaxSurge is the maximum number of new pods that can be created exceeding the original number of pods defined in
the specification. MaxSurge is only taken into consideration when scaling up. Setting a negative value will
disable the restriction. Defaults to unbounded if not specified.

Elasticsearch represents an Elasticsearch resource in a Kubernetes cluster.

Field Description
apiVersion string elasticsearch.k8s.elastic.co/v1beta1
kind string Elasticsearch
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ElasticsearchSpec
status ElasticsearchStatus

ElasticsearchHealth is the health of the cluster as returned by the health API.

Appears In:

ElasticsearchOrchestrationPhase is the phase Elasticsearch is in from the controller point of view.

Appears In:

ElasticsearchSpec holds the specification of an Elasticsearch cluster.

Appears In:
Field Description
version string Version of Elasticsearch.
image string Image is the Elasticsearch Docker image to deploy.
http HTTPConfig HTTP holds HTTP layer settings for Elasticsearch.
nodeSets NodeSet array NodeSets allow specifying groups of Elasticsearch nodes sharing the same configuration and Pod templates.
updateStrategy UpdateStrategy UpdateStrategy specifies how updates to the cluster should be performed.
podDisruptionBudget PodDisruptionBudgetTemplate PodDisruptionBudget provides access to the default pod disruption budget for the Elasticsearch cluster.
The default budget selects all cluster pods and sets maxUnavailable to 1. To disable, set PodDisruptionBudget
to the empty value ({} in YAML).
secureSettings SecretSource array SecureSettings is a list of references to Kubernetes secrets containing sensitive configuration options for Elasticsearch.

ElasticsearchStatus defines the observed state of Elasticsearch

Appears In:
Field Description
health ElasticsearchHealth
phase ElasticsearchOrchestrationPhase

NodeSet is the specification for a group of Elasticsearch nodes sharing the same configuration and a Pod template.

Appears In:
Field Description
name string Name of this set of nodes. Becomes a part of the Elasticsearch node.name setting.
config Config Config holds the Elasticsearch configuration.
count integer Count of Elasticsearch nodes to deploy.
podTemplate PodTemplateSpec PodTemplate provides customisation options (labels, annotations, affinity rules, resource requests, and so on) for the Pods belonging to this NodeSet.
volumeClaimTemplates PersistentVolumeClaim array VolumeClaimTemplates is a list of persistent volume claims to be used by each Pod in this NodeSet.
Every claim in this list must have a matching volumeMount in one of the containers defined in the PodTemplate.
Items defined here take precedence over any default claims added by the operator with the same name.

UpdateStrategy specifies how updates to the cluster should be performed.

Appears In:
Field Description
changeBudget ChangeBudget ChangeBudget defines the constraints to consider when applying changes to the Elasticsearch cluster.

Package v1beta1 contains API schema definitions for managing Enterprise Search resources.

EnterpriseSearch is a Kubernetes CRD to represent Enterprise Search.

Field Description
apiVersion string enterprisesearch.k8s.elastic.co/v1
kind string EnterpriseSearch
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec EnterpriseSearchSpec

EnterpriseSearchSpec holds the specification of an Enterprise Search resource.

Appears In:
Field Description
version string Version of Enterprise Search.
image string Image is the Enterprise Search Docker image to deploy.
count integer Count of Enterprise Search instances to deploy.
config Config Config holds the Enterprise Search configuration.
configRef ConfigSource ConfigRef contains a reference to an existing Kubernetes Secret holding the Enterprise Search configuration.
Configuration settings are merged and have precedence over settings specified in config.
http HTTPConfig HTTP holds the HTTP layer configuration for Enterprise Search resource.
elasticsearchRef ObjectSelector ElasticsearchRef is a reference to the Elasticsearch cluster running in the same Kubernetes cluster.
podTemplate PodTemplateSpec PodTemplate provides customisation options (labels, annotations, affinity rules, resource requests, and so on)
for the Enterprise Search pods.
revisionHistoryLimit integer RevisionHistoryLimit is the number of revisions to retain to allow rollback in the underlying Deployment.
serviceAccountName string ServiceAccountName is used to check access from the current resource to a resource (for ex. Elasticsearch) in a different namespace.
Can only be used if ECK is enforcing RBAC on references.

Package v1beta1 contains API schema definitions for managing Enterprise Search resources.

EnterpriseSearch is a Kubernetes CRD to represent Enterprise Search.

Field Description
apiVersion string enterprisesearch.k8s.elastic.co/v1beta1
kind string EnterpriseSearch
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec EnterpriseSearchSpec

EnterpriseSearchSpec holds the specification of an Enterprise Search resource.

Appears In:
Field Description
version string Version of Enterprise Search.
image string Image is the Enterprise Search Docker image to deploy.
count integer Count of Enterprise Search instances to deploy.
config Config Config holds the Enterprise Search configuration.
configRef ConfigSource ConfigRef contains a reference to an existing Kubernetes Secret holding the Enterprise Search configuration.
Configuration settings are merged and have precedence over settings specified in config.
http HTTPConfig HTTP holds the HTTP layer configuration for Enterprise Search resource.
elasticsearchRef ObjectSelector ElasticsearchRef is a reference to the Elasticsearch cluster running in the same Kubernetes cluster.
podTemplate PodTemplateSpec PodTemplate provides customisation options (labels, annotations, affinity rules, resource requests, and so on)
for the Enterprise Search pods.
serviceAccountName string ServiceAccountName is used to check access from the current resource to a resource (for ex. Elasticsearch) in a different namespace.
Can only be used if ECK is enforcing RBAC on references.

Package v1 contains API schema definitions for managing Kibana resources.

Kibana represents a Kibana resource in a Kubernetes cluster.

Field Description
apiVersion string kibana.k8s.elastic.co/v1
kind string Kibana
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec KibanaSpec

KibanaSpec holds the specification of a Kibana instance.

Appears In:
Field Description
version string Version of Kibana.
image string Image is the Kibana Docker image to deploy.
count integer Count of Kibana instances to deploy.
elasticsearchRef ObjectSelector ElasticsearchRef is a reference to an Elasticsearch cluster running in the same Kubernetes cluster.
enterpriseSearchRef ObjectSelector EnterpriseSearchRef is a reference to an EnterpriseSearch running in the same Kubernetes cluster.
Kibana provides the default Enterprise Search UI starting version 7.14.
config Config Config holds the Kibana configuration. See: https://www.elastic.co/guide/en/kibana/current/settings.html
http HTTPConfig HTTP holds the HTTP layer configuration for Kibana.
podTemplate PodTemplateSpec PodTemplate provides customisation options (labels, annotations, affinity rules, resource requests, and so on) for the Kibana pods
revisionHistoryLimit integer RevisionHistoryLimit is the number of revisions to retain to allow rollback in the underlying Deployment.
secureSettings SecretSource array SecureSettings is a list of references to Kubernetes secrets containing sensitive configuration options for Kibana.
serviceAccountName string ServiceAccountName is used to check access from the current resource to a resource (for ex. Elasticsearch) in a different namespace.
Can only be used if ECK is enforcing RBAC on references.
monitoring Monitoring Monitoring enables you to collect and ship log and monitoring data of this Kibana.
See https://www.elastic.co/guide/en/kibana/current/xpack-monitoring.html.
Metricbeat and Filebeat are deployed in the same Pod as sidecars and each one sends data to one or two different
Elasticsearch monitoring clusters running in the same Kubernetes cluster.

Package v1beta1 contains API schema definitions for managing Kibana resources.

Kibana represents a Kibana resource in a Kubernetes cluster.

Field Description
apiVersion string kibana.k8s.elastic.co/v1beta1
kind string Kibana
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec KibanaSpec

KibanaSpec holds the specification of a Kibana instance.

Appears In:
Field Description
version string Version of Kibana.
image string Image is the Kibana Docker image to deploy.
count integer Count of Kibana instances to deploy.
elasticsearchRef ObjectSelector ElasticsearchRef is a reference to an Elasticsearch cluster running in the same Kubernetes cluster.
config Config Config holds the Kibana configuration. See: https://www.elastic.co/guide/en/kibana/current/settings.html
http HTTPConfig HTTP holds the HTTP layer configuration for Kibana.
podTemplate PodTemplateSpec PodTemplate provides customisation options (labels, annotations, affinity rules, resource requests, and so on) for the Kibana pods
secureSettings SecretSource array SecureSettings is a list of references to Kubernetes secrets containing sensitive configuration options for Kibana.

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

ElasticsearchCluster is a named reference to an Elasticsearch cluster which can be used in a Logstash pipeline.

Appears In:
Field Description
ObjectSelector ObjectSelector
clusterName string ClusterName is an alias for the cluster to be used to refer to the Elasticsearch cluster in Logstash
configuration files, and will be used to identify "named clusters" in Logstash

Logstash is the Schema for the logstashes API

Field Description
apiVersion string logstash.k8s.elastic.co/v1alpha1
kind string Logstash
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec LogstashSpec
status LogstashStatus
Appears In:
Appears In:
Field Description
name string
service ServiceTemplate Service defines the template for the associated Kubernetes Service object.
tls TLSOptions TLS defines options for configuring TLS for HTTP.

LogstashSpec defines the desired state of Logstash

Appears In:
Field Description
version string Version of the Logstash.
count integer
image string Image is the Logstash Docker image to deploy. Version and Type have to match the Logstash in the image.
elasticsearchRefs ElasticsearchCluster array ElasticsearchRefs are references to Elasticsearch clusters running in the same Kubernetes cluster.
config Config Config holds the Logstash configuration. At most one of [Config, ConfigRef] can be specified.
configRef ConfigSource ConfigRef contains a reference to an existing Kubernetes Secret holding the Logstash configuration.
Logstash settings must be specified as yaml, under a single "logstash.yml" entry. At most one of [Config, ConfigRef]
can be specified.
pipelines Config array Pipelines holds the Logstash Pipelines. At most one of [Pipelines, PipelinesRef] can be specified.
pipelinesRef ConfigSource PipelinesRef contains a reference to an existing Kubernetes Secret holding the Logstash Pipelines.
Logstash pipelines must be specified as yaml, under a single "pipelines.yml" entry. At most one of [Pipelines, PipelinesRef]
can be specified.
services LogstashService array Services contains details of services that Logstash should expose - similar to the HTTP layer configuration for the
rest of the stack, but also applicable for more use cases than the metrics API, as logstash may need to
be opened up for other services: Beats, TCP, UDP, etc, inputs.
monitoring Monitoring Monitoring enables you to collect and ship log and monitoring data of this Logstash.
Metricbeat and Filebeat are deployed in the same Pod as sidecars and each one sends data to one or two different
Elasticsearch monitoring clusters running in the same Kubernetes cluster.
podTemplate PodTemplateSpec PodTemplate provides customisation options for the Logstash pods.
revisionHistoryLimit integer RevisionHistoryLimit is the number of revisions to retain to allow rollback in the underlying StatefulSet.
secureSettings SecretSource array SecureSettings is a list of references to Kubernetes Secrets containing sensitive configuration options for the Logstash.
Secrets data can be then referenced in the Logstash config using the Secret's keys or as specified in Entries field of
each SecureSetting.
serviceAccountName string ServiceAccountName is used to check access from the current resource to Elasticsearch resource in a different namespace.
Can only be used if ECK is enforcing RBAC on references.
updateStrategy StatefulSetUpdateStrategy UpdateStrategy is a StatefulSetUpdateStrategy. The default type is "RollingUpdate".
volumeClaimTemplates PersistentVolumeClaim array VolumeClaimTemplates is a list of persistent volume claims to be used by each Pod.
Every claim in this list must have a matching volumeMount in one of the containers defined in the PodTemplate.
Items defined here take precedence over any default claims added by the operator with the same name.

LogstashStatus defines the observed state of Logstash

Appears In:
Field Description
version string Version of the stack resource currently running. During version upgrades, multiple versions may run
in parallel: this value specifies the lowest version currently running.
expectedNodes integer
availableNodes integer
health LogstashHealth
observedGeneration integer ObservedGeneration is the most recent generation observed for this Logstash instance.
It corresponds to the metadata generation, which is updated on mutation by the API Server.
If the generation observed in status diverges from the generation in metadata, the Logstash
controller has not yet processed the changes contained in the Logstash specification.
selector string

Package v1alpha1 contains API schema definitions for managing Elastic Maps Server resources.

ElasticMapsServer represents an Elastic Map Server resource in a Kubernetes cluster.

Appears In:
Field Description
apiVersion string maps.k8s.elastic.co/v1alpha1
kind string ElasticMapsServer
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec MapsSpec

ElasticMapsServerList contains a list of ElasticMapsServer

Field Description
apiVersion string maps.k8s.elastic.co/v1alpha1
kind string ElasticMapsServerList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items ElasticMapsServer array

MapsSpec holds the specification of an Elastic Maps Server instance.

Appears In:
Field Description
version string Version of Elastic Maps Server.
image string Image is the Elastic Maps Server Docker image to deploy.
count integer Count of Elastic Maps Server instances to deploy.
elasticsearchRef ObjectSelector ElasticsearchRef is a reference to an Elasticsearch cluster running in the same Kubernetes cluster.
config Config Config holds the ElasticMapsServer configuration. See: https://www.elastic.co/guide/en/kibana/current/maps-connect-to-ems.html#elastic-maps-server-configuration
configRef ConfigSource ConfigRef contains a reference to an existing Kubernetes Secret holding the Elastic Maps Server configuration.
Configuration settings are merged and have precedence over settings specified in config.
http HTTPConfig HTTP holds the HTTP layer configuration for Elastic Maps Server.
podTemplate PodTemplateSpec PodTemplate provides customisation options (labels, annotations, affinity rules, resource requests, and so on) for the Elastic Maps Server pods
revisionHistoryLimit integer RevisionHistoryLimit is the number of revisions to retain to allow rollback in the underlying Deployment.
serviceAccountName string ServiceAccountName is used to check access from the current resource to a resource (for ex. Elasticsearch) in a different namespace.
Can only be used if ECK is enforcing RBAC on references.

Package v1alpha1 contains API schema definitions for managing StackConfigPolicy resources.

Appears In:
Field Description
clusterSettings Config ClusterSettings holds the Elasticsearch cluster settings (/_cluster/settings)
snapshotRepositories Config SnapshotRepositories holds the Snapshot Repositories settings (/_snapshot)
snapshotLifecyclePolicies Config SnapshotLifecyclePolicies holds the Snapshot Lifecycle Policies settings (/_slm/policy)
securityRoleMappings Config SecurityRoleMappings holds the Role Mappings settings (/_security/role_mapping)
indexLifecyclePolicies Config IndexLifecyclePolicies holds the Index Lifecycle policies settings (/_ilm/policy)
ingestPipelines Config IngestPipelines holds the Ingest Pipelines settings (/_ingest/pipeline)
indexTemplates IndexTemplates IndexTemplates holds the Index and Component Templates settings
config Config Config holds the settings that go into elasticsearch.yml.
secretMounts SecretMount array SecretMounts are additional Secrets that need to be mounted into the Elasticsearch pods.
secureSettings SecretSource array SecureSettings are additional Secrets that contain data to be configured to Elasticsearch's keystore.
Field Description
componentTemplates Config ComponentTemplates holds the Component Templates settings (/_component_template)
composableIndexTemplates Config ComposableIndexTemplates holds the Index Templates settings (/_index_template)
Appears In:
Field Description
config Config Config holds the settings that go into kibana.yml.
secureSettings SecretSource array SecureSettings are additional Secrets that contain data to be configured to Kibana's keystore.

SecretMount contains information about additional secrets to be mounted to the elasticsearch pods

Field Description
secretName string SecretName denotes the name of the secret that needs to be mounted to the elasticsearch pod
mountPath string MountPath denotes the path to which the secret should be mounted to inside the elasticsearch pod

StackConfigPolicy represents a StackConfigPolicy resource in a Kubernetes cluster.

Field Description
apiVersion string stackconfigpolicy.k8s.elastic.co/v1alpha1
kind string StackConfigPolicy
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec StackConfigPolicySpec
Appears In:
Field Description
resourceSelector LabelSelector
secureSettings SecretSource array Deprecated: SecureSettings only applies to Elasticsearch and is deprecated. It must be set per application instead.
elasticsearch ElasticsearchConfigPolicySpec
kibana KibanaConfigPolicySpec