templates:
  # ---------------------------
  # -- Hooks
  # ---------------------------
  crd-management-hook:
    hooks:
      - events: ["preapply"]
        showlogs: true
        command: "sh"
        args:
          - -c
          - |
            helm show crds {{ `{{ .Release.Chart }}` }} --version {{ `{{ .Release.Version }}` }} | kubectl replace -f  - \
            || helm show crds {{ `{{ .Release.Chart }}` }} --version {{ `{{ .Release.Version }}` }} | kubectl create -f  - \
            || true
      - events: ["prepare"]
        showlogs: true
        command: "sh"
        args:
          - -c
          - "helm show crds {{ `{{ .Release.Chart }}` }} --version {{ `{{ .Release.Version }}` }} | kubectl diff -f - || true"
      - events: ["postuninstall"]
        showlogs: true
        command: "sh"
        args:
          - -c
          - "helm show crds {{ `{{ .Release.Chart }}` }} --version {{ `{{ .Release.Version }}` }} | kubectl delete -f - || true"
  # ----------------------------
  # -- Configs
  # ----------------------------
  default-common-values:
    values:
      - '{{ requiredEnv "PWD" }}/values/common/values.{{ `{{ .Release.Name }}` }}.yaml'
  default-env-values:
    values:
      - '{{ requiredEnv "PWD" }}/values/{{ .Environment.Name }}/values.{{ `{{ .Release.Name }}` }}.yaml'
  default-env-secrets:
    secrets:
      - '{{ requiredEnv "PWD" }}/values/{{ .Environment.Name }}/secrets.{{ `{{ .Release.Name }}` }}.yaml'
  env-values:
    values:
      - '{{ requiredEnv "PWD" }}/values/{{ .Environment.Name }}/{{ `{{ .Release.Namespace }}` }}/{{ `{{ .Release.Name }}` }}/values.yaml'
  env-secrets:
    secrets:
      - '{{ requiredEnv "PWD" }}/values/{{ .Environment.Name }}/{{ `{{ .Release.Namespace }}` }}/{{ `{{ .Release.Name }}` }}/secrets.yaml'
  # ----------------------------
  # -- Extensions
  # ----------------------------
  ext-istio-gateway:
    dependencies:
      - chart: bedag/raw
        version: 2.0.0
        alias: istio-gateway
    values:
      - '{{ requiredEnv "PWD" }}/values/common/values.istio-gateway.yaml'
  ext-tcp-routes:
    dependencies:
      - chart: bedag/raw
        version: 2.0.0
        alias: traefik
    values:
      - '{{ requiredEnv "PWD" }}/values/common/values.tcp-route.yaml'
  ext-udp-routes:
    dependencies:
      - chart: bedag/raw
        version: 2.0.0
        alias: traefik-udp
    values:
      - '{{ requiredEnv "PWD" }}/values/common/values.udp-route.yaml'
  ext-traefik-middleware:
    dependencies:
      - chart: bedag/raw
        version: 2.0.0
        alias: middleware
    values:
      - '{{ requiredEnv "PWD" }}/values/common/values.middleware.yaml'
  ext-istio-resource:
    dependencies:
      - chart: bedag/raw
        version: 2.0.0
        alias: istio
    values:
      - '{{ requiredEnv "PWD" }}/values/common/values.istio.yaml'
  ext-certificate:
    dependencies:
      - chart: bedag/raw
        version: 2.0.0
        alias: certificate
    values:
      - '{{ requiredEnv "PWD" }}/values/common/values.certificate.yaml'
  ext-metallb:
    dependencies:
      - chart: bedag/raw
        version: 2.0.0
        alias: metallb
    values:
      - '{{ requiredEnv "PWD" }}/common/extensions/metallb.yaml'
  service-monitor:
    dependencies:
      - chart: bedag/raw
        version: 2.0.0
        alias: service-monitor
    values:
      - '{{ requiredEnv "PWD" }}/values/common/values.service-monitor.yaml'
  namespace:
    dependencies:
      - chart: bedag/raw
        version: 2.0.0
        alias: ns
    inherit:
      - template: default-values/common-values
      - template: default-env-values
  ext-database:
    dependencies:
      - chart: bedag/raw
        version: 2.0.0
        alias: ext-database
    values:
      - '{{ requiredEnv "PWD" }}/values/common/values.database.yaml'
  ext-secret:
    dependencies:
      - chart: bedag/raw
        version: 2.0.0
        alias: ext-secret
    values:
      - '{{ requiredEnv "PWD" }}/values/common/values.secret.yaml'
  ext-cilium:
    dependencies:
      - chart: bedag/raw
        version: 2.0.0
        alias: ext-cilium
    values:
      - '{{ requiredEnv "PWD" }}/values/common/values.ext-cilium.yaml'
  ext-self-signed-cert:
    dependencies:
      - chart: bedag/raw
        version: 2.0.0
        alias: ext-self-signed-cert
    values:
      - '{{ requiredEnv "PWD" }}/common/extensions/self-signed-cert.yaml'