{{- /*
SkillHub 应用 Secret
- 内置 PostgreSQL/Redis：密码由 Bitnami 管理，从对应 Secret 读取
- 外部 PostgreSQL/Redis：密码从 values 或 existingSecret 读取
*/}}
{{- if not .Values.existingSecret }}
{{- $secretName := include "skillhub.secretName" . }}
{{- $appSecret := (lookup "v1" "Secret" $.Release.Namespace $secretName) }}
apiVersion: v1
kind: Secret
metadata:
  name: {{ $secretName }}
  labels:
    {{- include "skillhub.labels" . | nindent 4 }}
type: Opaque
stringData:
  {{- if not .Values.postgresql.enabled }}
  # 外部数据库密码；内置 PostgreSQL 直接引用 Bitnami Secret
  spring-datasource-password: {{ .Values.externalDatabase.password | quote }}
  {{- end }}

  {{- if not .Values.redis.enabled }}
  # 外部 Redis 密码；内置 Redis 直接引用 Bitnami Secret
  redis-password: {{ .Values.externalRedis.password | default "" | quote }}
  {{- end }}

  {{- if and (not .Values.redis.enabled) .Values.externalRedis.sentinel.enabled }}
  # 外部 Sentinel 可使用独立密码
  redis-sentinel-password: {{ .Values.externalRedis.sentinel.password | default .Values.externalRedis.password | default "" | quote }}
  {{- end }}
  # Bootstrap 管理员密码
  # 优先级: secrets.bootstrapAdminPassword → bootstrapAdmin.password → 集群已有 Secret → 随机生成
  {{- $baPwd := .Values.secrets.bootstrapAdminPassword | default .Values.bootstrapAdmin.password | default "" }}
  {{- if not $baPwd }}
  {{-   if $appSecret }}
  {{-     $baPwd = index $appSecret.data "bootstrap-admin-password" | default "" | b64dec }}
  {{-   end }}
  {{-   if not $baPwd }}
  {{-     $baPwd = randAlphaNum 16 }}
  {{-   end }}
  {{- end }}
  bootstrap-admin-password: {{ $baPwd | quote }}

  # 匿名下载限流 Cookie 签名密钥
  {{- $downloadSecret := .Values.secrets.downloadAnonCookieSecret | default "" }}
  {{- if and (not $downloadSecret) $appSecret }}
  {{-   $downloadSecret = index $appSecret.data "skillhub-download-anon-cookie-secret" | default "" | b64dec }}
  {{- end }}
  {{- if not $downloadSecret }}
  {{-   $downloadSecret = randAlphaNum 48 }}
  {{- end }}
  skillhub-download-anon-cookie-secret: {{ $downloadSecret | quote }}

  # OAuth2 GitHub (optional)
  {{- if .Values.secrets.oauth2GithubClientId }}
  oauth2-github-client-id: {{ .Values.secrets.oauth2GithubClientId | quote }}
  {{- end }}
  {{- if .Values.secrets.oauth2GithubClientSecret }}
  oauth2-github-client-secret: {{ .Values.secrets.oauth2GithubClientSecret | quote }}
  {{- end }}

  # Scanner LLM 配置 (optional)
  {{- if .Values.secrets.scannerLlmApiKey }}
  skill-scanner-llm-api-key: {{ .Values.secrets.scannerLlmApiKey | quote }}
  {{- end }}
  {{- if .Values.secrets.scannerLlmBaseUrl }}
  skill-scanner-llm-base-url: {{ .Values.secrets.scannerLlmBaseUrl | quote }}
  {{- end }}
  {{- if .Values.secrets.scannerLlmModel }}
  skill-scanner-llm-model: {{ .Values.secrets.scannerLlmModel | quote }}
  {{- end }}

  # S3 配置 (optional)
  {{- if .Values.s3.accessKey }}
  skillhub-storage-s3-access-key: {{ .Values.s3.accessKey | quote }}
  {{- end }}
  {{- if .Values.s3.secretKey }}
  skillhub-storage-s3-secret-key: {{ .Values.s3.secretKey | quote }}
  {{- end }}
{{- end }}
