JustPaste.it

apiVersion: apps/v1
kind: Deployment
metadata:
  name: logstash-deployment
  namespace: dv-poc
spec:
  replicas: 1
  selector:
    matchLabels:
      app: logstash
  template:
    metadata:
      labels:
        app: logstash
    spec:
      containers:
      - name: logstash
        image: opensearchproject/logstash-oss-with-opensearch-output-plugin:latest
        ports:
        - containerPort: 5044
        volumeMounts:
          - name: config-volume
            mountPath: /usr/share/logstash/config
          - name: logstash-pipeline-volume
            mountPath: /usr/share/logstash/pipeline
        resources:
            limits:
              memory: "4Gi"
              cpu: "2500m"
            requests:
              memory: "4Gi"
              cpu: "800m"
      volumes:
      - name: config-volume
        configMap:
          name: logstash-configmap
          items:
            - key: logstash.yml
              path: logstash.yml
      - name: logstash-pipeline-volume
        configMap:
          name: logstash-configmap
          items:
            - key: logstash.conf
              path: logstash.conf
---
kind: Service
apiVersion: v1
metadata:
  name: logstash-service
  namespace: dv-poc
  annotations:
        service.beta.kubernetes.io/aws-load-balancer-internal: "true"
spec:
  selector:
    app: logstash
  ports:
  - protocol: TCP
    port: 5044
    targetPort: 5044
  type: LoadBalancer
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: logstash-configmap
  namespace: dv-poc
data:
  logstash.yml: |
    http.host: "0.0.0.0"
    path.config: /usr/share/logstash/pipeline
  logstash.conf: |
    input {
        kafka{
          codec => json
          bootstrap_servers => "10.111.178.24:9092"
          topics => ["t_events"]
        }
    }
    output {
       opensearch {
          hosts       => ["10.98.55.121:9200"]
          user        => "admin"
          password    => "admin"
          index       => "logstash-logs-%{+YYYY.MM.dd}"
        }
    }