88 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
{{- if .Values.elasticsearch.enabled }}
 | 
						|
apiVersion: apps/v1
 | 
						|
kind: StatefulSet
 | 
						|
metadata:
 | 
						|
  name: {{ include "opencoze.fullname" . }}-elasticsearch
 | 
						|
  labels:
 | 
						|
    {{- include "opencoze.labels" . | nindent 4 }}
 | 
						|
spec:
 | 
						|
  serviceName: {{ .Release.Name }}-elasticsearch
 | 
						|
  replicas: 1
 | 
						|
  selector:
 | 
						|
    matchLabels:
 | 
						|
      app.kubernetes.io/component: elasticsearch
 | 
						|
      app.kubernetes.io/instance: {{ .Release.Name }}
 | 
						|
      app.kubernetes.io/name: {{ include "opencoze.name" . }}
 | 
						|
  template:
 | 
						|
    metadata:
 | 
						|
      labels:
 | 
						|
        app.kubernetes.io/component: elasticsearch
 | 
						|
        app.kubernetes.io/instance: {{ .Release.Name }}
 | 
						|
        app.kubernetes.io/name: {{ include "opencoze.name" . }}
 | 
						|
    spec:
 | 
						|
      initContainers:
 | 
						|
      - name: install-plugins
 | 
						|
        image: "{{ .Values.elasticsearch.image.repository }}:{{ .Values.elasticsearch.image.tag }}"
 | 
						|
        securityContext:
 | 
						|
          runAsUser: 0
 | 
						|
        command:
 | 
						|
        - /bin/bash
 | 
						|
        - -c
 | 
						|
        - |
 | 
						|
          set -ex
 | 
						|
          echo 'Installing smartcn plugin...';
 | 
						|
          if [ ! -d /opt/bitnami/elasticsearch/plugins/analysis-smartcn ]; then
 | 
						|
            /opt/bitnami/elasticsearch/bin/elasticsearch-plugin install analysis-smartcn
 | 
						|
          fi          
 | 
						|
        volumeMounts:
 | 
						|
        - name: es-plugins
 | 
						|
          mountPath: /opt/bitnami/elasticsearch/plugins
 | 
						|
      containers:
 | 
						|
        - name: elasticsearch
 | 
						|
          securityContext:
 | 
						|
            runAsUser: 0
 | 
						|
          image: "{{ .Values.elasticsearch.image.repository }}:{{ .Values.elasticsearch.image.tag }}"
 | 
						|
          env:
 | 
						|
            - name: ES_JAVA_OPTS
 | 
						|
              value: {{ .Values.elasticsearch.javaOpts | quote }}
 | 
						|
            - name: ELASTIC_USERNAME
 | 
						|
              valueFrom:
 | 
						|
                secretKeyRef:
 | 
						|
                  name: {{ .Release.Name }}-es-secret
 | 
						|
                  key: username
 | 
						|
            - name: ELASTIC_PASSWORD
 | 
						|
              valueFrom:
 | 
						|
                secretKeyRef:
 | 
						|
                  name: {{ .Release.Name }}-es-secret
 | 
						|
                  key: password
 | 
						|
          command:
 | 
						|
            - /bin/bash
 | 
						|
            - -c
 | 
						|
            - |
 | 
						|
              /opt/bitnami/scripts/elasticsearch/setup.sh
 | 
						|
              chown -R elasticsearch:elasticsearch /bitnami/elasticsearch/data
 | 
						|
              chmod g+s /bitnami/elasticsearch/data
 | 
						|
              exec /opt/bitnami/scripts/elasticsearch/entrypoint.sh /opt/bitnami/scripts/elasticsearch/run.sh              
 | 
						|
          ports:
 | 
						|
            - containerPort: {{ .Values.elasticsearch.service.port }}
 | 
						|
          volumeMounts:
 | 
						|
            - name: es-data
 | 
						|
              mountPath: /bitnami/elasticsearch/data
 | 
						|
            - name: es-plugins
 | 
						|
              mountPath: /opt/bitnami/elasticsearch/plugins
 | 
						|
      volumes:
 | 
						|
      - name: es-plugins
 | 
						|
        emptyDir: {}
 | 
						|
      - name: es-config
 | 
						|
        configMap:
 | 
						|
          name: {{ include "opencoze.fullname" . }}-es-init-config
 | 
						|
  volumeClaimTemplates:
 | 
						|
  - metadata:
 | 
						|
      name: es-data
 | 
						|
    spec:
 | 
						|
      accessModes: [ "ReadWriteOnce" ]
 | 
						|
      storageClassName: {{ .Values.elasticsearch.persistence.storageClassName | quote }}
 | 
						|
      resources:
 | 
						|
        requests:
 | 
						|
          storage: {{ .Values.elasticsearch.persistence.size | quote }}
 | 
						|
{{- end }} |