{{- if not .Values.garage.existingConfigMap }}
apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ include "garage.fullname" . }}-config
data:
  garage.toml: |-
    {{- if .Values.garage.garageTomlString }}
        {{- tpl (index (index .Values.garage) "garageTomlString") $ | nindent 4 }}
    {{- else }}
    metadata_dir = "/mnt/meta"
    data_dir = "/mnt/data"

    db_engine = "{{ .Values.garage.dbEngine }}"

    block_size = {{ .Values.garage.blockSize }}

    replication_mode = "{{ .Values.garage.replicationMode }}"

    compression_level = {{ .Values.garage.compressionLevel }}

    {{- if .Values.garage.metadataAutoSnapshotInterval }}
    metadata_auto_snapshot_interval = {{ .Values.garage.metadataAutoSnapshotInterval | quote }}
    {{- end }}

    rpc_bind_addr = "{{ .Values.garage.rpcBindAddr }}"
    # rpc_secret will be populated by the init container from a k8s secret object
    rpc_secret = "__RPC_SECRET_REPLACE__"

    bootstrap_peers = {{ .Values.garage.bootstrapPeers }}

    [kubernetes_discovery]
    namespace = "{{ .Release.Namespace }}"
    service_name = "{{ include "garage.fullname" . }}"
    skip_crd = {{ .Values.garage.kubernetesSkipCrd }}

    [s3_api]
    s3_region = "{{ .Values.garage.s3.api.region }}"
    api_bind_addr = "[::]:3900"
    root_domain = "{{ .Values.garage.s3.api.rootDomain }}"

    [s3_web]
    bind_addr = "[::]:3902"
    root_domain = "{{ .Values.garage.s3.web.rootDomain }}"
    index = "{{ .Values.garage.s3.web.index }}"

    [admin]
    api_bind_addr = "[::]:3903"
    {{- if .Values.monitoring.tracing.sink }}
    trace_sink = "{{ .Values.monitoring.tracing.sink }}"
    {{- end }}
    {{- end }}
{{- end }}
