Overview
IBM® Automation OpenSearch is an open source search and analytics suite that can be used to ingest, search, visualize, and analyze data.
The ibm-opensearch-operator-controller-manager deployment provides the Opensearch APIs.
Prerequisites
Complete the following prerequisites to deploy the OpenSearch:
-
Make sure that the
ibm-cert-manager-operatororcert-manageris installed on the cluster. -
Make sure that you install the OpenSearch in the namespace where you deployed the foundational services.
StorageClass
A ReadWriteOnce (RWO) PersistentVolume (PV) is needed for OpenSearch.
Storage
High performance RWO storage is required for each node and pod. RWO storage can include the following options:
- AWS Elastic Block Store (EBS)
- IBM Fusion Data Foundation and IBM Spectrum Scale
- NetApp Trident
- Portworx
- Red Hat® OpenShift® Data Foundation
For file-based backup and restore operations, you can use one of the following Object Storage options:
- For better performance, use block storage.
- AWS Elastic File System (EFS)
- High-performance ReadWriteMany (RWX)
- IBM Fusion Data Foundation and IBM Spectrum Scale
- NetApp Trident
- NFS CSI
- Portworx
- Red Hat OpenShift Data Foundation
For an example storage configuration, see the storage section in the following example OpenSearch CR.
Example of an OpenSearch custom resource
An Opensearch CR is shown in the following example:
apiVersion: opensearch.cloudpackopen.ibm.com/v1
kind: Cluster
metadata:
labels:
app.kubernetes.io/name: cluster
app.kubernetes.io/instance: single
app.kubernetes.io/part-of: ibm-opensearch-operator
app.kubernetes.io/managed-by: kustomize
app.kubernetes.io/created-by: ibm-opensearch-operator
name: <Opensearch CR name>
spec:
backup:
enable: false # Enable this option if you need a snapshot backup.
sizeLimit: 1Gi
snapshotPVC: ""
snapshotPVCStorageClass: rook-cephfs # Replace this value with your storageClass.
license:
accept: true
enableDefaultNetworkPolicy: true
serviceAccount: ""
baseImage:
opensearchImage:
version: 3.2.0
plugins:
analysisICU: false
analysisKuromoji: false
analysisNori: false
analysisPhonetic: false
analysisSmartcn: false
analysisStempe: false
analysisUkrainian: false
cacheEhcache: false
cryptoKms: false
discoveryAzureClassic: false
discoveryEc2: false
discoveryGce: false
identityShiro: false
ingestAttachment: false
mapperAnnotatedText: false
mapperMurmur3: false
mapperSize: false
queryInsights: false
repositoryS3: true
storeSMB: false
telemetryOtel: false
transportNio: false
transportReactorNetty4: false
security:
enabled: true
image:
version: 3.2.0.0
internalUserSecret:
nodePools:
- name: "all"
replicas: 3
opensearchyml: |
plugins.security.ssl.http.enabled: true
plugins.security.allow_default_init_securityindex: true
http.compression: false
resources:
requests:
cpu: 1
memory: 32Mi
ephemeral-storage: 1024Mi # Set `ephemeral-storage` to a value less than 2Gi as required by the Kyverno policy.
limits:
cpu: 3
memory: 1512Mi
ephemeral-storage: 1512Mi # Set `ephemeral-storage` to a value less than 2Gi as required by the Kyverno policy.
storage:
data:
sizeLimit: 5Gi
storageClass: rook-cephfs # Replace this value with your storageClass.
useEphemeral: false # Set this value to false for production environments.
deployment:
sizeLimit: 10Gi
storageClass: rook-cephfs # Replace this value with your storageClass.
useEphemeral: false # Set this value to false for production environments.