apiVersion: dodo.cloud.dodo.cloud/v1
kind: ResourceRenderer
metadata:
  name: config-renderer
  namespace: {{ .Release.Namespace }}
spec:
  secretName: {{ .Values.oauth2.secretName }}
  resourceTemplate: |
    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.
        prefixes:
          # - fd7a:115c:a1e0::/48
          v4: 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

        database:
          type: sqlite
          debug: false
          gorm:
            prepare_stmt: true
            parameterized_queries: true
            skip_err_record_not_found: true
            slow_threshold: 1000
          sqlite:
            path: /headscale/data/db.sqlite
            write_ahead_log: true
            wal_autocheckpoint: 1000

        ### 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/
        policy:
          mode: file
          path: "/headscale/acls/config.hujson" # TODO(gio): mount path must be configurable

        ## 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:
          # List of DNS servers to expose to clients.
          nameservers:
            global:
              - 8.8.8.8
              - 1.1.1.1
            split: {}

          # 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.
          search_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: devices.p.{{ .Values.publicBaseDomain }}

        # 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-api/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: true
          issuer: {{ .Values.oauth2.issuer }}
          client_id: {{`{{ .client_id }}`}}
          client_secret: {{`{{ .client_secret }}`}}
          scope: ["openid", "profile", "email"]
          extra_params:
            domain_hint: {{ .Values.domain }}
          allowed_domains:
            - {{ .Values.publicBaseDomain }}
          # 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
