apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ include "rustfs.fullname" . }}-config
  namespace: {{ .Release.Namespace }}
  labels:
    {{- toYaml .Values.commonLabels | nindent 4 }}
data:
  {{- with .Values.config.rustfs }}
  RUSTFS_ADDRESS: {{ .address | quote }}
  RUSTFS_CONSOLE_ADDRESS: {{ .console_address | quote }}
  RUSTFS_CONSOLE_ENABLE: {{ .console_enable | quote }}
  RUSTFS_OBS_LOG_DIRECTORY: {{ .obs_log_directory | quote }}
  RUSTFS_OBS_LOGGER_LEVEL: {{ .log_level | quote }}
  RUSTFS_OBS_ENVIRONMENT: {{ .obs_environment | quote }}
  {{- if .region }}
  RUSTFS_REGION: {{ .region | quote }}
  {{- end }}
  {{- if .domains }}
  RUSTFS_SERVER_DOMAINS: {{ include "rustfs.serverDomains" $ | quote }}
  {{- end }}
  {{- with .log_rotation }}
    {{- if .size }}
  RUSTFS_OBS_LOG_ROTATION_SIZE_MB: {{ .size | quote }}
    {{- end }}
    {{- if .time }}
  RUSTFS_OBS_LOG_ROTATION_TIME: {{ .time | quote }}
    {{- end }}
    {{- if .keep_files }}
  RUSTFS_OBS_LOG_KEEP_FILES: {{ .keep_files | quote }}
    {{- end }}
  {{- end }}
  {{- end }}
  {{- if .Values.mode.distributed.enabled }}
  RUSTFS_VOLUMES: {{ .Values.config.rustfs.volumes | default (include "rustfs.volumes" .) | quote }}
  {{- else }}
  RUSTFS_VOLUMES: "/data"
  {{- end }}
  {{- if .Values.mtls.enabled }}
  RUSTFS_SERVER_MTLS_ENABLE: "1"
  RUSTFS_TLS_KEYLOG: "1"
  RUSTFS_TLS_PATH: "/opt/tls"
  {{- end }}
  {{- if .Values.config.rustfs.obs_endpoint.enabled }}
  RUSTFS_OBS_ENDPOINT: {{ .Values.config.rustfs.obs_endpoint.base_endpoint | quote }}
  RUSTFS_OBS_USE_STDOUT: {{ .Values.config.rustfs.obs_endpoint.use_stdout | quote }}
  {{- with .Values.config.rustfs.obs_endpoint }}
    {{- if .metrics.enabled }}
  RUSTFS_OBS_METRIC_ENDPOINT: {{ .metrics.endpoint | quote }}
    {{- else }}
  RUSTFS_OBS_METRIC_ENDPOINT: ""
  RUSTFS_OBS_METRICS_EXPORT_ENABLED: "false"
    {{- end }}
    {{- if .trace.enabled }}
  RUSTFS_OBS_TRACE_ENDPOINT: {{ .trace.endpoint | quote }}
    {{- else }}
  RUSTFS_OBS_TRACE_ENDPOINT: ""
  RUSTFS_OBS_TRACES_EXPORT_ENABLED: "false"
    {{- end }}
    {{- if .logs.enabled }}
  RUSTFS_OBS_LOG_ENDPOINT: {{ .logs.endpoint | quote }}
    {{- else }}
  RUSTFS_OBS_LOG_ENDPOINT: ""
  RUSTFS_OBS_LOGS_EXPORT_ENABLED: "false"
    {{- end }}
    {{- if .profiling.enabled }}
  RUSTFS_OBS_PROFILING_ENDPOINT: {{ .profiling.endpoint | quote }}
    {{- else }}
  RUSTFS_OBS_PROFILING_ENDPOINT: ""
  RUSTFS_OBS_PROFILING_ENABLED: "false"
    {{- end }}
  {{- end }}
  {{- end }}
  {{- with .Values.config.rustfs.scanner }}
    {{- if .speed }}
  RUSTFS_SCANNER_SPEED: {{ .speed | quote }}
    {{- end }}
    {{- if .start_delay_secs }}
  RUSTFS_SCANNER_START_DELAY_SECS: {{ .start_delay_secs | quote }}
    {{- end }}
    {{- if .idle_mode }}
  RUSTFS_SCANNER_IDLE_MODE: {{ .idle_mode | quote }}
    {{- end }}
    {{- if .cache_save_timeout_secs }}
  RUSTFS_SCANNER_CACHE_SAVE_TIMEOUT_SECS: {{ .cache_save_timeout_secs | quote }}
    {{- end }}
  {{- end }}
  {{- if .Values.config.rustfs.kms.enabled }}
    {{- if eq .Values.config.rustfs.kms.type "vault" }}
      {{- with .Values.config.rustfs.kms.vault }}
  RUSTFS_KMS_ENABLE: "true"
  RUSTFS_KMS_BACKEND: {{ .vault_backend | quote }}
  RUSTFS_KMS_VAULT_ADDRESS: {{ .vault_address | quote }}
  RUSTFS_KMS_VAULT_TOKEN: {{ .vault_token | quote }}
  RUSTFS_KMS_DEFAULT_KEY_ID: {{ .default_key | quote }}
        {{- if eq .vault_backend "vault-transit" }}
  RUSTFS_KMS_VAULT_MOUNT_PATH: {{ .vault_mount_path | quote }}
        {{- end }}
      {{- end }}
    {{- end }}
  {{- end }}
