Opensearch
The Opni operator integrates the Opensearch Operator. If an OpenSearchCluster resource is created then Opni will create the Opensearch cluster e.g.
apiVersion: opensearch.opster.io/v1
kind: OpenSearchCluster
metadata:
name: opni
namespace: opni-system
spec:
# Add fields here
general:
httpPort: 9200
vendor: opensearch
version: 1.2.3
serviceName: os-svc
setVMMaxMapCount: true
confMgmt:
autoScaler: false
monitoring: false
dashboards:
enable: true
version: 1.2.0
replicas: 1
nodePools:
- component: master
replicas: 3
diskSize: 32
resources:
requests:
cpu: 500m
memory: 1Gi
limits:
memory: 1Gi
roles:
- master
persistence:
emptyDir: {}
- component: nodes
replicas: 2
diskSize: 32
resources:
requests:
cpu: 500m
memory: 2Gi
limits:
memory: 2Gi
jvm: "-Xmx1G -Xms1G"
roles:
- data
persistence:
emptyDir: {}
The Opensearch cluster can then be referenced by Opni. The Opni controller will also create indices and configuration in the Opensearch cluster.
example.yaml
apiVersion: opni.io/v1beta2
kind: OpniCluster
metadata:
name: example
namespace: opni
spec:
opensearch:
externalOpensearch:
name: opni
namespace: opni-system
note
The following Opensearch configuration is deprecated and will be removed in a future version.
Alternatively the deployment of the Opensearch cluster can be defined as a subsection of the OpniCluster resource. It deploys an Opensearch cluster and Dashboards for visualization.
example.yaml
apiVersion: opni.io/v1beta2
kind: OpniCluster
metadata:
name: example
namespace: opni
spec:
opensearch:
version: 1.13.2
workloads:
master:
resources:
requests:
memory: 1Gi
limits:
memory: 1Gi
data:
replicas: 2
resources:
requests:
memory: 2Gi
limits:
memory: 2Gi
Custom Resource Specs
OpensearchSpec
| Field | Required | Type | Description |
|---|---|---|---|
| externalOpensearch | No | OpensearchClusterRef | A reference to an OpenSearchCluster resource. If this is not present Opni will create an Opensearch cluster based on the rest of the spec |
| version | No | string | Version of the Opendistro image to use. Defaults to latest |
| workloads | No | OpensearchWorkloadSpec | Configure the Opensearchsearch cluster components |
| defaultRepo | No | string | Image repo to use for Opensearchsearch images. Defaults to docker.io/amazon |
| image | No | ImageSpec | Explicit configuration for the Opensearchsearch image |
| kibanaImage | No | ImageSpec | Explicit configuration for the Kibana image |
| persistence | No | PersistenceSpec | Configure the persistence for Opensearchsearch data |
| configSecret | No | LocalObjectReference | Reference to a secret containing logging.yml with the Opensearchsearch logging config |
| adminPasswordFrom | No | SecretKeySelector | Secret key selector pointing to the admin password to use. If not set a password will be autogenerated and stored in the password key in a secret called opni-es-password |
OpensearchWorkloadSpec
| Field | Required | Type | Description |
|---|---|---|---|
| master | OpensearchWorkloadOptions | Configuration for the Opensearchsearch master node StatefulSet | |
| data | OpensearchWorkloadOptions | Configuration for the Opensearchsearch data node StatefulSet | |
| client | OpensearchWorkloadOptions | Configuration for the Opensearchsearch client node Deployment | |
| kibana | OpensearchWorkloadOptions | Configuration for the Kibana Deployment |
OpensearchWorkloadOptions
| Field | Required | Type | Description |
|---|---|---|---|
| replicas | No | int | Number of replicas to deploy. Defaults to 1 |
| resources | No | ResourceRequirements | Resources for the workload. The resources are used to calculate the Java memory options. If a memory limit exists this is used, if there is a memory request but no limit that is used, otherwise the Java optioms default to a heap size of 512MB |
| affinity | No | Affinity | Affinity settings for the workload pods |
| nodeSelector | No | map | NodeSelector for the workload pods. If this exists it will override the globalNodeSelector |
| tolerations | No | Toleration array | Tolerations for the workload. These will be combined with the globalTolerations (if any) |
ImageSpec
| Field | Required | Type | Description |
|---|---|---|---|
| image | No | string | Explicit CRI image to use |
| imagePullPolicy | No | string | Image pull policy. One of Always, Never, IfNotPresent. Defaults to IfNotPresent |
| imagePullSecrets | No | LocalObjectReference array | List of secrets in the same namespace to use for pulling the image |
PersistenceSpec
| Field | Required | Type | Description |
|---|---|---|---|
| enabled | No | bool | Whether persistent storage is enabled. Defaults to false |
| storageClassName | No | string | If persistent storage is enabled, the name of the StorageClass to use. If not set will use the default StorageClass |
| accessModes | No | string array | An array of the access modes the volume supports |
| request | No | string | The size of the volume to request. Defaults to 10Gi |
OpensearchClusterRef
| Field | Required | Type | Description |
|---|---|---|---|
| name | Yes | string | The name of the OpenSearchCluster object |
| namespace | Yes | string | The namespace of the OpenSearchCluster object |