From a7b94cb3fa1833108433953ea773f3334ea1e5f7 Mon Sep 17 00:00:00 2001 From: Alexander Rogov Date: Sun, 12 Jul 2026 16:50:51 +0300 Subject: [PATCH] migrate opensearch to operator pattern (operator + cluster CR) --- argocd/apps/mastodon.yaml | 2 +- argocd/apps/opensearch-cluster.yaml | 22 +++++++++++++++ argocd/apps/opensearch-operator.yaml | 29 ++++++++++++++++++++ argocd/apps/opensearch.yaml | 41 ---------------------------- manifests/opensearch/cluster.yaml | 31 +++++++++++++++++++++ 5 files changed, 83 insertions(+), 42 deletions(-) create mode 100644 argocd/apps/opensearch-cluster.yaml create mode 100644 argocd/apps/opensearch-operator.yaml delete mode 100644 argocd/apps/opensearch.yaml create mode 100644 manifests/opensearch/cluster.yaml diff --git a/argocd/apps/mastodon.yaml b/argocd/apps/mastodon.yaml index cf7b37a..d12d9ad 100644 --- a/argocd/apps/mastodon.yaml +++ b/argocd/apps/mastodon.yaml @@ -87,7 +87,7 @@ spec: elasticsearch: enabled: true - hostname: opensearch-cluster-master.opensearch.svc.cluster.local + hostname: shared-os-nodes.opensearch.svc.cluster.local port: 9200 tls: false preset: single_node_cluster diff --git a/argocd/apps/opensearch-cluster.yaml b/argocd/apps/opensearch-cluster.yaml new file mode 100644 index 0000000..8915382 --- /dev/null +++ b/argocd/apps/opensearch-cluster.yaml @@ -0,0 +1,22 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: opensearch-cluster + namespace: argocd + finalizers: + - resources-finalizer.argocd.argoproj.io +spec: + project: default + source: + repoURL: http://gitea.gitea.svc.cluster.local:3000/admin/main.git + targetRevision: master + path: manifests/opensearch + directory: + recurse: true + include: "*.yaml" + destination: + server: https://kubernetes.default.svc + namespace: opensearch + syncPolicy: + syncOptions: + - CreateNamespace=true diff --git a/argocd/apps/opensearch-operator.yaml b/argocd/apps/opensearch-operator.yaml new file mode 100644 index 0000000..a198358 --- /dev/null +++ b/argocd/apps/opensearch-operator.yaml @@ -0,0 +1,29 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: opensearch-operator + namespace: argocd + finalizers: + - resources-finalizer.argocd.argoproj.io +spec: + project: default + source: + repoURL: https://opensearch-project.github.io/opensearch-k8s-operator/ + chart: opensearch-operator + targetRevision: "3.0.2" + helm: + values: | + manager: + resources: + requests: + cpu: 200m + memory: 350Mi + limits: + cpu: 500m + memory: 500Mi + destination: + server: https://kubernetes.default.svc + namespace: opensearch-operator + syncPolicy: + syncOptions: + - CreateNamespace=true diff --git a/argocd/apps/opensearch.yaml b/argocd/apps/opensearch.yaml deleted file mode 100644 index 3260c4d..0000000 --- a/argocd/apps/opensearch.yaml +++ /dev/null @@ -1,41 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: opensearch - namespace: argocd - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - source: - repoURL: https://opensearch-project.github.io/helm-charts/ - chart: opensearch - targetRevision: "3.7.0" - helm: - values: | - singleNode: true - replicas: 1 - opensearchJavaOpts: "-Xmx512M -Xms512M" - resources: - requests: - cpu: 100m - memory: 768Mi - limits: - cpu: 500m - memory: 1Gi - persistence: - enabled: true - size: 8Gi - storageClass: yc-network-hdd - config: - opensearch.yml: | - cluster.name: opensearch-cluster - network.host: 0.0.0.0 - discovery.type: single-node - plugins.security.disabled: true - destination: - server: https://kubernetes.default.svc - namespace: opensearch - syncPolicy: - syncOptions: - - CreateNamespace=true diff --git a/manifests/opensearch/cluster.yaml b/manifests/opensearch/cluster.yaml new file mode 100644 index 0000000..3f23852 --- /dev/null +++ b/manifests/opensearch/cluster.yaml @@ -0,0 +1,31 @@ +apiVersion: opensearch.opster.io/v1 +kind: OpenSearchCluster +metadata: + name: shared-os + namespace: opensearch +spec: + general: + version: "3.7.0" + serviceName: shared-os + setVMMaxMapCount: true + security: null + nodePools: + - component: nodes + replicas: 1 + roles: + - master + - data + - ingest + - remote_cluster_client + jvm: "-Xmx512M -Xms512M" + diskSize: 8Gi + persistence: + pvc: + storageClass: yc-network-hdd + resources: + requests: + cpu: 100m + memory: 768Mi + limits: + cpu: 500m + memory: 1Gi