Deploying Logstash on ECK returns "Your settings are invalid. Reason: Setting "logstash.yml" doesn't exist. Please check if you haven't made a typo."

Hey

Im new to Logstash/ECK

Ive tried deploying an ECK cluster and then deploying Logstash, using ArgoCD.

The ECK works well, for the Logstash I'm having issues with the statefulset. it returns the error;
Your settings are invalid. Reason: Setting "logstash.yml" doesn't exist. Please check if you haven't made a typo.

I'm trying to understand what the issue is
for logstash my template is

apiVersion: logstash.k8s.elastic.co/v1alpha1
kind: Logstash
metadata:
  name: {{ .Values.logstash.name }}
  namespace: {{ .Values.logstash.namespace }}
spec:
  version: {{ .Values.logstash.version }}
  count: {{ .Values.logstash.replicas }}
  config:
    logstash.yml: |
      http.host: "0.0.0.0"
  podTemplate:
    spec:
      containers:
        - name: logstash
          resources:
            requests:
              memory: {{ .Values.resources.requests.memory | default "1Gi" }}
              cpu: {{ .Values.resources.requests.cpu | default "500m" }}
            limits:
              memory: {{ .Values.resources.limits.memory | default "2Gi" }}
              cpu: {{ .Values.resources.limits.cpu | default "1" }}
          env:
            - name: LS_JAVA_OPTS
              value: "-Xmx1g -Xms1g"
  pipelines:
    - id: main
      config:
        pipeline.conf: |
          input {
            kafka {
              bootstrap_servers => {{ .Values.kafka.bootstrapServers | quote }}
              topics => [{{ .Values.kafka.topic | quote }}]
              group_id => {{ .Values.kafka.groupId | quote }}
              security_protocol => "SSL"
              codec => "json"
            }
          }
          output {
            elasticsearch {
              hosts => ["{{ .Values.elasticsearch.host }}"]
              user => "{{ .Values.elasticsearch.user }}"
              password => "{{ .Values.elasticsearch.password}}"
              index => "kubernetes-logs"
            }
          }

then i pass values;

logstash:
  name: logstash
  namespace: logging
  version: "8.12.0"
  replicas: 1

kafka:
  bootstrapServers: ".."
  topic: "filebeat-logs"
  groupId: "logstash-group"

elasticsearch:
  host: ${ELASTICSEARCH_HOSTS}
  user: ${ELASTICSEARCH_USERNAME}
  password: ${ELASTICSEARCH_PASSWORD}

resources:
  requests:
    memory: "1Gi"
    cpu: "500m"
  limits:
    memory: "2Gi"
    cpu: "1"

I think I understand whats causing this issue,
it seems like the logstash.yaml is being mounted by a secret created by ECK (logstash-ls-config). This secret contains;

api:
    http:
        host: 0.0.0.0
    ssl:
        enabled: true
        keystore:
            password: changeit
            path: /usr/share/logstash/config/api_keystore.p12
config:
    reload:
        automatic: true
logstash:
    yml: |
        http.host: "0.0.0.0"

This isn't a valid logstash config, but i dont understand why this is whats being used? it's supposed to use just the last line if i understand correctly.

Does anyone have experience with setting up LS using ECK or with this issue?