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.
        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.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: false
          issuer: {{ .Values.oauth2.hydraPublic }}
          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
