{{- $secret := include "clientSecret" . -}}
apiVersion: v1
kind: ConfigMap
metadata:
  name: config
  namespace: {{ .Release.Namespace }}
data:
  config.yaml: |
    # headscale will look for a configuration file named `config.yaml` (or `config.json`) in the following order:
    #
    # - `/etc/headscale`
    # - `~/.headscale`
    # - current working directory

    # The url clients will connect to.
    # Typically this will be a domain like:
    #
    # https://myheadscale.example.com:443
    #
    server_url: https://{{ .Values.domain }}

    # Address to listen to / bind to on the server
    #
    # For production:
    listen_addr: 0.0.0.0:8080
    # listen_addr: 127.0.0.1:8080

    # Address to listen to /metrics, you may want
    # to keep this endpoint private to your internal
    # network
    #
    metrics_listen_addr: 0.0.0.0:9090
    # metrics_listen_addr: 127.0.0.1:9090

    # Address to listen for gRPC.
    # gRPC is used for controlling a headscale server
    # remotely with the CLI
    # Note: Remote access _only_ works if you have
    # valid certificates.
    #
    # For production:
    grpc_listen_addr: 0.0.0.0:50443
    # grpc_listen_addr: 127.0.0.1:50443

    # Allow the gRPC admin interface to run in INSECURE
    # mode. This is not recommended as the traffic will
    # be unencrypted. Only enable if you know what you
    # are doing.
    grpc_allow_insecure: false

    # Private key used to encrypt the traffic between headscale
    # and Tailscale clients.
    # The private key file will be autogenerated if it's missing.
    #
    # For production:
    # /var/lib/headscale/private.key
    private_key_path: /headscale/data/private.key

    # The Noise section includes specific configuration for the
    # TS2021 Noise protocol
    noise:
      # The Noise private key is used to encrypt the
      # traffic between headscale and Tailscale clients when
      # using the new Noise-based protocol. It must be different
      # from the legacy private key.
      #
      # For production:
      # private_key_path: /var/lib/headscale/noise_private.key
      private_key_path: /headscale/data/noise_private.key

    # List of IP prefixes to allocate tailaddresses from.
    # Each prefix consists of either an IPv4 or IPv6 address,
    # and the associated prefix length, delimited by a slash.
    ip_prefixes:
      # - fd7a:115c:a1e0::/48
      - 100.64.0.0/10

    # DERP is a relay system that Tailscale uses when a direct
    # connection cannot be established.
    # https://tailscale.com/blog/how-tailscale-works/#encrypted-tcp-relays-derp
    #
    # headscale needs a list of DERP servers that can be presented
    # to the clients.
    derp:
      server:
        # If enabled, runs the embedded DERP server and merges it into the rest of the DERP config
        # The Headscale server_url defined above MUST be using https, DERP requires TLS to be in place
        enabled: false

        # Region ID to use for the embedded DERP server.
        # The local DERP prevails if the region ID collides with other region ID coming from
        # the regular DERP config.
        region_id: 999

        # Region code and name are displayed in the Tailscale UI to identify a DERP region
        region_code: "headscale"
        region_name: "Headscale Embedded DERP"

        # Listens over UDP at the configured address for STUN connections - to help with NAT traversal.
        # When the embedded DERP server is enabled stun_listen_addr MUST be defined.
        #
        # For more details on how this works, check this great article: https://tailscale.com/blog/how-tailscale-works/
        stun_listen_addr: "0.0.0.0:3478"

      # List of externally available DERP maps encoded in JSON
      urls:
        - https://controlplane.tailscale.com/derpmap/default

      # Locally available DERP map files encoded in YAML
      #
      # This option is mostly interesting for people hosting
      # their own DERP servers:
      # https://tailscale.com/kb/1118/custom-derp-servers/
      #
      # paths:
      #   - /etc/headscale/derp-example.yaml
      paths: []

      # If enabled, a worker will be set up to periodically
      # refresh the given sources and update the derpmap
      # will be set up.
      auto_update_enabled: true

      # How often should we check for DERP updates?
      update_frequency: 24h

    # Disables the automatic check for headscale updates on startup
    disable_check_updates: true

    # Time before an inactive ephemeral node is deleted?
    ephemeral_node_inactivity_timeout: 30m

    # Period to check for node updates within the tailnet. A value too low will severely affect
    # CPU consumption of Headscale. A value too high (over 60s) will cause problems
    # for the nodes, as they won't get updates or keep alive messages frequently enough.
    # In case of doubts, do not touch the default 10s.
    node_update_check_interval: 10s

    # SQLite config
    db_type: sqlite3

    # For production:
    # db_path: /var/lib/headscale/db.sqlite
    db_path: /headscale/data/db.sqlite

    # # Postgres config
    # If using a Unix socket to connect to Postgres, set the socket path in the 'host' field and leave 'port' blank.
    # db_type: postgres
    # db_host: localhost
    # db_port: 5432
    # db_name: headscale
    # db_user: foo
    # db_pass: bar

    # If other 'sslmode' is required instead of 'require(true)' and 'disabled(false)', set the 'sslmode' you need
    # in the 'db_ssl' field. Refers to https://www.postgresql.org/docs/current/libpq-ssl.html Table 34.1.
    # db_ssl: false

    ### TLS configuration
    #
    ## Let's encrypt / ACME
    #
    # headscale supports automatically requesting and setting up
    # TLS for a domain with Let's Encrypt.
    #
    # URL to ACME directory
    acme_url: https://acme-v02.api.letsencrypt.org/directory

    # Email to register with ACME provider
    acme_email: ""

    # Domain name to request a TLS certificate for:
    tls_letsencrypt_hostname: ""

    # Path to store certificates and metadata needed by
    # letsencrypt
    # For production:
    # tls_letsencrypt_cache_dir: /var/lib/headscale/cache
    tls_letsencrypt_cache_dir: ./cache

    # Type of ACME challenge to use, currently supported types:
    # HTTP-01 or TLS-ALPN-01
    # See [docs/tls.md](docs/tls.md) for more information
    tls_letsencrypt_challenge_type: HTTP-01
    # When HTTP-01 challenge is chosen, letsencrypt must set up a
    # verification endpoint, and it will be listening on:
    # :http = port 80
    tls_letsencrypt_listen: ":http"

    ## Use already defined certificates:
    tls_cert_path: ""
    tls_key_path: ""

    log:
      # Output formatting for logs: text or json
      format: text
      level: info

    # Path to a file containg ACL policies.
    # ACLs can be defined as YAML or HUJSON.
    # https://tailscale.com/kb/1018/acls/
    acl_policy_path: ""

    ## DNS
    #
    # headscale supports Tailscale's DNS configuration and MagicDNS.
    # Please have a look to their KB to better understand the concepts:
    #
    # - https://tailscale.com/kb/1054/dns/
    # - https://tailscale.com/kb/1081/magicdns/
    # - https://tailscale.com/blog/2021-09-private-dns-with-magicdns/
    #
    dns_config:
      # Whether to prefer using Headscale provided DNS or use local.
      override_local_dns: true

      # List of DNS servers to expose to clients.
      nameservers:
        - 8.8.8.8
        - 1.1.1.1

      # NextDNS (see https://tailscale.com/kb/1218/nextdns/).
      # "abc123" is example NextDNS ID, replace with yours.
      #
      # With metadata sharing:
      # nameservers:
      #   - https://dns.nextdns.io/abc123
      #
      # Without metadata sharing:
      # nameservers:
      #   - 2a07:a8c0::ab:c123
      #   - 2a07:a8c1::ab:c123

      # Split DNS (see https://tailscale.com/kb/1054/dns/),
      # list of search domains and the DNS to query for each one.
      #
      # restricted_nameservers:
      #   foo.bar.com:
      #     - 1.1.1.1
      #   darp.headscale.net:
      #     - 1.1.1.1
      #     - 8.8.8.8

      # Search domains to inject.
      domains: []

      # Whether to use [MagicDNS](https://tailscale.com/kb/1081/magicdns/).
      # Only works if there is at least a nameserver defined.
      magic_dns: true

      # Defines the base domain to create the hostnames for MagicDNS.
      # `base_domain` must be a FQDNs, without the trailing dot.
      # The FQDN of the hosts will be
      # `hostname.namespace.base_domain` (e.g., _myhost.mynamespace.example.com_).
      base_domain: {{ .Values.internalBaseDomain }}

    # Unix socket used for the CLI to connect without authentication
    # Note: for production you will want to set this to something like:
    # unix_socket: /var/run/headscale.sock
    unix_socket: ./headscale.sock
    unix_socket_permission: "0770"
    #
    # headscale supports experimental OpenID connect support,
    # it is still being tested and might have some bugs, please
    # help us test it.
    # OpenID Connect
    oidc:
      only_start_if_oidc_is_available: false
      issuer: {{ .Values.oauth2.hydraPublic }}
      client_id: {{ .Values.oauth2.clientId }}
      client_secret: {{ $secret }}
      scope: ["openid", "profile", "email"]
      extra_params:
        domain_hint: lekva.me
      allowed_domains:
        - lekva.me
      # allowed_groups:
      #   - /headscale
      # allowed_users:
      #   - alice@example.com
      strip_email_domain: true

    # Logtail configuration
    # Logtail is Tailscales logging and auditing infrastructure, it allows the control panel
    # to instruct tailscale nodes to log their activity to a remote server.
    logtail:
      # Enable logtail for this headscales clients.
      # As there is currently no support for overriding the log server in headscale, this is
      # disabled by default. Enabling this will make your clients send logs to Tailscale Inc.
      enabled: false

    # Enabling this option makes devices prefer a random port for WireGuard traffic over the
    # default static port 41641. This option is intended as a workaround for some buggy
    # firewall devices. See https://tailscale.com/kb/1181/firewalls/ for more information.
    randomize_client_port: true
