Customize Pods

edit

You can customize the Pods created for each Elastic stack application by modifying the respective podTemplate field in the manifest. Pod templates allow you to define labels, annotations, environment variables, volume mounts, and other custom configuration settings that are then merged with the default Pod configuration generated by ECK to produce the final Pod definition that gets deployed to the Kubernetes cluster.

The following example illustrates how to add a custom label, annotation, and an environment variable using the podTemplate field.

Elasticsearch.

apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
  name: quickstart
spec:
  version: 8.16.1
  nodeSets:
  - name: default
    count: 1
    podTemplate:
      metadata:
        labels:
          my.custom.domain/label: "label-value"
        annotations:
          my.custom.domain/annotation: "annotation-value"
      spec:
        containers:
          - name: elasticsearch
            env:
              - name: ES_JAVA_OPTS
                value: "-Xms4g -Xmx4g"

Kibana.

apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:
  name: quickstart
spec:
  version: 8.16.1
  count: 1
  podTemplate:
    metadata:
      labels:
        my.custom.domain/label: "label-value"
      annotations:
        my.custom.domain/annotation: "annotation-value"
    spec:
      containers:
        - name: kibana
          env:
            - name: LOGGING_VERBOSE
              value: "true"

Configuration for other Elastic stack applications, like APM Server, Enterprise Search or Beats, is identical to the Kibana configuration except for the apiVersion and kind fields.

More examples

edit

For further information, see: