This Elastic operator permit to deploy Elastic stack (elasticsearch, kibana, logstash, filebeat, metricbeat en crebro) and manage some configurations like role, user, ILM, SLM, repositories, etc ...
Like you say, there are on official elastic operator called ECK that can work fine and better than here.
Benefit of this operator:
- This operator permit to work with all license (basic, platinium and enterprise)
- Only one operator to manage different license on each cluster
- You can configure Elasticsearch after deploy it: role, user, license, component, index template, ILM, SLM, repositories, role mappings.
- You can configure Kibana after deploy it: logstash pipeline, role, user space
- You can add automatically host entry in Cerebro (UI to manage Elasticsearch)
- It reconcile when you update external secrets and external configMaps
- It manage automatically the transport TLS certificats and API TLS certificates
- It rolling update Elaticsearch cluster pod by pod.
For moment, it only support the deployment by OLM with private catalog.
So, you need to add catalog on olm
namespace:
apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
name: elasticsearch-operator
namespace: olm
spec:
sourceType: grpc
image: quay.io/webcenter/elasticsearch-operator-catalog:v0.0.38
Then, you need to add the subscriptions:
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
name: elasticsearch-operator-subscription
spec:
channel: alpha
name: elasticsearch-operator
source: elasticsearch-operator
sourceNamespace: olm
config:
env:
- name: LOG_LEVEL
value: INFO
To upgrade operator, you just need to update the image version on
elasticsearch-operator
catalog source
To deploy Elasticsearch cluster, you need to set a custom resource of type Elasticsearch
.
To do that, you need to set:
- main settings: Elasticsearch version, cluster name
- global settings share between node groups
- nodes groups settings: the topology of elasticsearch cluster
- endpoint to access on Elasticsearch
- TLS to encrypt network and trust nodes
- License if platinium or enterprise is needed
- Monitoring to monitor elasticsearch from prometheus/graphana or with dedicated Elasticsearch/kibana cluster
- Generate automatically system passwords
You can read some samples:
You can read complete documentation per sub section
- Main settings
- Global settings share between node groups
- Node group settings
- Endpoint settings
- TLS settings
- Monitoring settings
- License settings
You can define some resources inside your Elasticsearch cluster. The operator will use the Elasticsearch API.
You can use the following resources:
- Component template
- Index template
- Index lifecycle policy (ILM)
- License
- User
- Role
- Role mapping
- Snapshot lifecycle policy (SLM)
- Snapshot repository
- Watch
To deploy Kibana, you need to set a custom resource of type Kibana
.
To do that, you need to set:
- main settings: Kibana version, Elasticsearch ref, etc.
- deployment settings
- endpoint to access on Kibana
- TLS to encrypt network
- Monitoring to monitor Kibana from prometheus/graphana or with dedicated Elasticsearch/kibana cluster
You can read some samples:
- Kibana with Elasticsearch cluster managed by Operator
- Kibana with external Elasticsearch (not managed by Operator)
- Kibana for monitoring cluster
You can read complete documentation per sub section
You can define some resources inside your kibana instance. The operator will use the Kibana API.
You can use the following resources:
To deploy Logstash, you need to set a custom resource of type Logstash
.
To do that, you need to set:
- main settings: Logstash version, Elasticsearch ref, etc.
- deployment settings
- endpoint to access on Logstash API or inputs
- Monitoring to monitor Logstash from prometheus/graphana or with dedicated Elasticsearch/kibana cluster
You can read some samples:
- Logstash with Elasticsearch cluster managed by Operator
- Logstash with external Elasticsearch (not managed by Operator)
You can read complete documentation per sub section
To deploy Filebeat, you need to set a custom resource of type Filebeat
.
To do that, you need to set:
- main settings: Filebeat version, Elasticsearch ref, etc.
- deployment settings
- endpoint to access on Filebeat API or inputs
- Monitoring to monitor Filebeat from prometheus/graphana or with dedicated Elasticsearch/kibana cluster
You can read some samples:
- Filebeat with Elasticsearch cluster managed by Operator
- Filebeat with external Elasticsearch (not managed by Operator)
- Filebeat with Logstash managed by Operator
- Filebeat with external Logstash (not managed by Operator)
You can read complete documentation per sub section
To deploy Metricbeat, you need to set a custom resource of type Metricbeat
.
To do that, you need to set:
- main settings: Metricbeat version, Elasticsearch ref, etc.
- deployment settings
You can read some samples:
- Metricbeat with Elasticsearch cluster managed by Operator
- Metricbeat with external Elasticsearch (not managed by Operator)
You can read complete documentation per sub section
To deploy Cerebro, you need to set a custom resource of type Cerebro
.
To do that, you need to set:
- main settings: Cerebro version, etc.
- deployment settings
- endpoint to access on UI
- Cerebro targets
You can read some samples:
- Cerebro sample with managed Elasticsearch
- Cerebro with external Elasticsearch (not managed by Operator)
You can read complete documentation per sub section