mirror of
				https://github.com/optim-enterprises-bv/homelab.git
				synced 2025-10-31 09:57:59 +00:00 
			
		
		
		
	feat(coturn): use plain manifests instead of helm chart
This commit is contained in:
		| @@ -19,8 +19,8 @@ dns: | |||||||
|   ratelimit_subnet_len_ipv6: 56 |   ratelimit_subnet_len_ipv6: 56 | ||||||
|   ratelimit_whitelist: [ ] |   ratelimit_whitelist: [ ] | ||||||
|   refuse_any: true |   refuse_any: true | ||||||
|   #upstream_dns: |   upstream_dns: | ||||||
|   #  - 10.96.0.11 |     - 10.96.0.11 | ||||||
|   upstream_dns_file: "" |   upstream_dns_file: "" | ||||||
|   bootstrap_dns: |   bootstrap_dns: | ||||||
|     - 10.96.0.11 |     - 10.96.0.11 | ||||||
| @@ -141,6 +141,8 @@ filtering: | |||||||
|   parental_block_host: family-block.dns.adguard.com |   parental_block_host: family-block.dns.adguard.com | ||||||
|   safebrowsing_block_host: standard-block.dns.adguard.com |   safebrowsing_block_host: standard-block.dns.adguard.com | ||||||
|   rewrites: |   rewrites: | ||||||
|  |     - domain: coturn.stonegarden.dev | ||||||
|  |       answer: 192.168.1.226 | ||||||
|     - domain: proxmox.stonegarden.dev |     - domain: proxmox.stonegarden.dev | ||||||
|       answer: 192.168.1.221 |       answer: 192.168.1.221 | ||||||
|     - domain: truenas.stonegarden.dev |     - domain: truenas.stonegarden.dev | ||||||
|   | |||||||
							
								
								
									
										16
									
								
								k8s/infra/vpn/coturn/cert.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								k8s/infra/vpn/coturn/cert.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | |||||||
|  | apiVersion: cert-manager.io/v1 | ||||||
|  | kind: Certificate | ||||||
|  | metadata: | ||||||
|  |   name: coturn | ||||||
|  |   namespace: coturn | ||||||
|  | spec: | ||||||
|  |   dnsNames: | ||||||
|  |     - coturn.stonegarden.dev | ||||||
|  |   issuerRef: | ||||||
|  |     group: cert-manager.io | ||||||
|  |     kind: ClusterIssuer | ||||||
|  |     name: cloudflare-cluster-issuer | ||||||
|  |   secretName: coturn-cert | ||||||
|  |   usages: | ||||||
|  |     - digital signature | ||||||
|  |     - key encipherment | ||||||
							
								
								
									
										797
									
								
								k8s/infra/vpn/coturn/config/turnserver.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										797
									
								
								k8s/infra/vpn/coturn/config/turnserver.conf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,797 @@ | |||||||
|  | # Coturn TURN SERVER configuration file | ||||||
|  | # | ||||||
|  | # Boolean values note: where a boolean value is supposed to be used, | ||||||
|  | # you can use '0', 'off', 'no', 'false', or 'f' as 'false', | ||||||
|  | # and you can use '1', 'on', 'yes', 'true', or 't' as 'true' | ||||||
|  | # If the value is missing, then it means 'true' by default. | ||||||
|  | # | ||||||
|  |  | ||||||
|  | # Listener interface device (optional, Linux only). | ||||||
|  | # NOT RECOMMENDED. | ||||||
|  | # | ||||||
|  | #listening-device=eth0 | ||||||
|  |  | ||||||
|  | # TURN listener port for UDP and TCP (Default: 3478). | ||||||
|  | # Note: actually, TLS & DTLS sessions can connect to the | ||||||
|  | # "plain" TCP & UDP port(s), too - if allowed by configuration. | ||||||
|  | # | ||||||
|  | #listening-port=3478 | ||||||
|  |  | ||||||
|  | # TURN listener port for TLS (Default: 5349). | ||||||
|  | # Note: actually, "plain" TCP & UDP sessions can connect to the TLS & DTLS | ||||||
|  | # port(s), too - if allowed by configuration. The TURN server | ||||||
|  | # "automatically" recognizes the type of traffic. Actually, two listening | ||||||
|  | # endpoints (the "plain" one and the "tls" one) are equivalent in terms of | ||||||
|  | # functionality; but Coturn keeps both endpoints to satisfy the RFC 5766 specs. | ||||||
|  | # For secure TCP connections, Coturn currently supports SSL version 3 and | ||||||
|  | # TLS version 1.0, 1.1 and 1.2. | ||||||
|  | # For secure UDP connections, Coturn supports DTLS version 1. | ||||||
|  | # | ||||||
|  | #tls-listening-port=5349 | ||||||
|  |  | ||||||
|  | # Alternative listening port for UDP and TCP listeners; | ||||||
|  | # default (or zero) value means "listening port plus one". | ||||||
|  | # This is needed for RFC 5780 support | ||||||
|  | # (STUN extension specs, NAT behavior discovery). The TURN Server | ||||||
|  | # supports RFC 5780 only if it is started with more than one | ||||||
|  | # listening IP address of the same family (IPv4 or IPv6). | ||||||
|  | # RFC 5780 is supported only by UDP protocol, other protocols | ||||||
|  | # are listening to that endpoint only for "symmetry". | ||||||
|  | # | ||||||
|  | #alt-listening-port=0 | ||||||
|  |  | ||||||
|  | # Alternative listening port for TLS and DTLS protocols. | ||||||
|  | # Default (or zero) value means "TLS listening port plus one". | ||||||
|  | # | ||||||
|  | #alt-tls-listening-port=0 | ||||||
|  |  | ||||||
|  | # Some network setups will require using a TCP reverse proxy in front | ||||||
|  | # of the STUN server. If the proxy port option is set a single listener | ||||||
|  | # is started on the given port that accepts connections using the | ||||||
|  | # haproxy proxy protocol v2. | ||||||
|  | # (https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt) | ||||||
|  | # | ||||||
|  | #tcp-proxy-port=5555 | ||||||
|  |  | ||||||
|  | # Listener IP address of relay server. Multiple listeners can be specified. | ||||||
|  | # If no IP(s) specified in the config file or in the command line options, | ||||||
|  | # then all IPv4 and IPv6 system IPs will be used for listening. | ||||||
|  | # | ||||||
|  | #listening-ip=172.17.19.101 | ||||||
|  | #listening-ip=10.207.21.238 | ||||||
|  | #listening-ip=2607:f0d0:1002:51::4 | ||||||
|  |  | ||||||
|  | # Auxiliary STUN/TURN server listening endpoint. | ||||||
|  | # Aux servers have almost full TURN and STUN functionality. | ||||||
|  | # The (minor) limitations are: | ||||||
|  | # | ||||||
|  | # 1) Auxiliary servers do not have alternative ports and | ||||||
|  | # they do not support STUN RFC 5780 functionality (CHANGE REQUEST). | ||||||
|  | # | ||||||
|  | # 2) Auxiliary servers also are never returning ALTERNATIVE-SERVER reply. | ||||||
|  | # | ||||||
|  | # Valid formats are 1.2.3.4:5555 for IPv4 and [1:2::3:4]:5555 for IPv6. | ||||||
|  | # | ||||||
|  | # There may be multiple aux-server options, each will be used for listening | ||||||
|  | # to client requests. | ||||||
|  | # | ||||||
|  | #aux-server=172.17.19.110:33478 | ||||||
|  | #aux-server=[2607:f0d0:1002:51::4]:33478 | ||||||
|  |  | ||||||
|  | # (recommended for older Linuxes only) | ||||||
|  | # Automatically balance UDP traffic over auxiliary servers (if configured). | ||||||
|  | # The load balancing is using the ALTERNATE-SERVER mechanism. | ||||||
|  | # The TURN client must support 300 ALTERNATE-SERVER response for this | ||||||
|  | # functionality. | ||||||
|  | # | ||||||
|  | #udp-self-balance | ||||||
|  |  | ||||||
|  | # Relay interface device for relay sockets (optional, Linux only). | ||||||
|  | # NOT RECOMMENDED. | ||||||
|  | # | ||||||
|  | #relay-device=eth1 | ||||||
|  |  | ||||||
|  | # Relay address (the local IP address that will be used to relay the | ||||||
|  | # packets to the peer). | ||||||
|  | # Multiple relay addresses may be used. | ||||||
|  | # The same IP(s) can be used as both listening IP(s) and relay IP(s). | ||||||
|  | # | ||||||
|  | # If no relay IP(s) specified, then the turnserver will apply the default | ||||||
|  | # policy: it will decide itself which relay addresses to be used, and it | ||||||
|  | # will always be using the client socket IP address as the relay IP address | ||||||
|  | # of the TURN session (if the requested relay address family is the same | ||||||
|  | # as the family of the client socket). | ||||||
|  | # | ||||||
|  | #relay-ip=172.17.19.105 | ||||||
|  | #relay-ip=2607:f0d0:1002:51::5 | ||||||
|  |  | ||||||
|  | # For Amazon EC2 users: | ||||||
|  | # | ||||||
|  | # TURN Server public/private address mapping, if the server is behind NAT. | ||||||
|  | # In that situation, if a -X is used in form "-X <ip>" then that ip will be reported | ||||||
|  | # as relay IP address of all allocations. This scenario works only in a simple case | ||||||
|  | # when one single relay address is be used, and no RFC5780 functionality is required. | ||||||
|  | # That single relay address must be mapped by NAT to the 'external' IP. | ||||||
|  | # The "external-ip" value, if not empty, is returned in XOR-RELAYED-ADDRESS field. | ||||||
|  | # For that 'external' IP, NAT must forward ports directly (relayed port 12345 | ||||||
|  | # must be always mapped to the same 'external' port 12345). | ||||||
|  | # | ||||||
|  | # In more complex case when more than one IP address is involved, | ||||||
|  | # that option must be used several times, each entry must | ||||||
|  | # have form "-X <public-ip/private-ip>", to map all involved addresses. | ||||||
|  | # RFC5780 NAT discovery STUN functionality will work correctly, | ||||||
|  | # if the addresses are mapped properly, even when the TURN server itself | ||||||
|  | # is behind A NAT. | ||||||
|  | # | ||||||
|  | # By default, this value is empty, and no address mapping is used. | ||||||
|  | # | ||||||
|  | #external-ip=60.70.80.91 | ||||||
|  | # | ||||||
|  | #OR: | ||||||
|  | # | ||||||
|  | #external-ip=60.70.80.91/172.17.19.101 | ||||||
|  | #external-ip=60.70.80.92/172.17.19.102 | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # Number of the relay threads to handle the established connections | ||||||
|  | # (in addition to authentication thread and the listener thread). | ||||||
|  | # If explicitly set to 0 then application runs relay process in a | ||||||
|  | # single thread, in the same thread with the listener process | ||||||
|  | # (the authentication thread will still be a separate thread). | ||||||
|  | # | ||||||
|  | # If this parameter is not set, then the default OS-dependent | ||||||
|  | # thread pattern algorithm will be employed. Usually the default | ||||||
|  | # algorithm is optimal, so you have to change this option | ||||||
|  | # if you want to make some fine tweaks. | ||||||
|  | # | ||||||
|  | # In the older systems (Linux kernel before 3.9), | ||||||
|  | # the number of UDP threads is always one thread per network listening | ||||||
|  | # endpoint - including the auxiliary endpoints - unless 0 (zero) or | ||||||
|  | # 1 (one) value is set. | ||||||
|  | # | ||||||
|  | #relay-threads=0 | ||||||
|  |  | ||||||
|  | # Lower and upper bounds of the UDP relay endpoints: | ||||||
|  | # (default values are 49152 and 65535) | ||||||
|  | # | ||||||
|  | #min-port=49152 | ||||||
|  | #max-port=65535 | ||||||
|  |  | ||||||
|  | # Uncomment to run TURN server in 'normal' 'moderate' verbose mode. | ||||||
|  | # By default the verbose mode is off. | ||||||
|  | #verbose | ||||||
|  |  | ||||||
|  | # Uncomment to run TURN server in 'extra' verbose mode. | ||||||
|  | # This mode is very annoying and produces lots of output. | ||||||
|  | # Not recommended under normal circumstances. | ||||||
|  | # | ||||||
|  | #Verbose | ||||||
|  |  | ||||||
|  | # Uncomment to use fingerprints in the TURN messages. | ||||||
|  | # By default the fingerprints are off. | ||||||
|  | # | ||||||
|  | #fingerprint | ||||||
|  |  | ||||||
|  | # Uncomment to use long-term credential mechanism. | ||||||
|  | # By default no credentials mechanism is used (any user allowed). | ||||||
|  | # | ||||||
|  | #lt-cred-mech | ||||||
|  |  | ||||||
|  | # This option is the opposite of lt-cred-mech. | ||||||
|  | # (TURN Server with no-auth option allows anonymous access). | ||||||
|  | # If neither option is defined, and no users are defined, | ||||||
|  | # then no-auth is default. If at least one user is defined, | ||||||
|  | # in this file, in command line or in usersdb file, then | ||||||
|  | # lt-cred-mech is default. | ||||||
|  | # | ||||||
|  | #no-auth | ||||||
|  |  | ||||||
|  | # Enable prometheus exporter | ||||||
|  | # If enabled the turnserver will expose an endpoint with stats on a prometheus format | ||||||
|  | # this endpoint is listening on a different port to not conflict with other configurations. | ||||||
|  | # | ||||||
|  | # You can simply run the turnserver and access the port 9641 and path /metrics | ||||||
|  | # | ||||||
|  | # For more info on the prometheus exporter and metrics | ||||||
|  | # https://prometheus.io/docs/introduction/overview/ | ||||||
|  | # https://prometheus.io/docs/concepts/data_model/ | ||||||
|  | # | ||||||
|  | #prometheus | ||||||
|  |  | ||||||
|  | # TURN REST API flag. | ||||||
|  | # (Time Limited Long Term Credential) | ||||||
|  | # Flag that sets a special authorization option that is based upon authentication secret. | ||||||
|  | # | ||||||
|  | # This feature's purpose is to support "TURN Server REST API", see | ||||||
|  | # "TURN REST API" link in the project's page | ||||||
|  | # https://github.com/coturn/coturn/ | ||||||
|  | # | ||||||
|  | # This option is used with timestamp: | ||||||
|  | # | ||||||
|  | # usercombo -> "timestamp:userid" | ||||||
|  | # turn user -> usercombo | ||||||
|  | # turn password -> base64(hmac(secret key, usercombo)) | ||||||
|  | # | ||||||
|  | # This allows TURN credentials to be accounted for a specific user id. | ||||||
|  | # If you don't have a suitable id, then the timestamp alone can be used. | ||||||
|  | # This option is enabled by turning on secret-based authentication. | ||||||
|  | # The actual value of the secret is defined either by the option static-auth-secret, | ||||||
|  | # or can be found in the turn_secret table in the database (see below). | ||||||
|  | # | ||||||
|  | # Read more about it: | ||||||
|  | #  - https://tools.ietf.org/html/draft-uberti-behave-turn-rest-00 | ||||||
|  | #  - https://www.ietf.org/proceedings/87/slides/slides-87-behave-10.pdf | ||||||
|  | # | ||||||
|  | # Be aware that use-auth-secret overrides some parts of lt-cred-mech. | ||||||
|  | # The use-auth-secret feature depends internally on lt-cred-mech, so if you set | ||||||
|  | # this option then it automatically enables lt-cred-mech internally | ||||||
|  | # as if you had enabled both. | ||||||
|  | # | ||||||
|  | # Note that you can use only one auth mechanism at the same time! This is because, | ||||||
|  | # both mechanisms conduct username and password validation in different ways. | ||||||
|  | # | ||||||
|  | # Use either lt-cred-mech or use-auth-secret in the conf | ||||||
|  | # to avoid any confusion. | ||||||
|  | # | ||||||
|  | #use-auth-secret | ||||||
|  |  | ||||||
|  | # 'Static' authentication secret value (a string) for TURN REST API only. | ||||||
|  | # If not set, then the turn server | ||||||
|  | # will try to use the 'dynamic' value in the turn_secret table | ||||||
|  | # in the user database (if present). The database-stored  value can be changed on-the-fly | ||||||
|  | # by a separate program, so this is why that mode is considered 'dynamic'. | ||||||
|  | # | ||||||
|  | #static-auth-secret=north | ||||||
|  |  | ||||||
|  | # Server name used for | ||||||
|  | # the oAuth authentication purposes. | ||||||
|  | # The default value is the realm name. | ||||||
|  | # | ||||||
|  | #server-name=blackdow.carleon.gov | ||||||
|  |  | ||||||
|  | # Flag that allows oAuth authentication. | ||||||
|  | # | ||||||
|  | #oauth | ||||||
|  |  | ||||||
|  | # 'Static' user accounts for the long term credentials mechanism, only. | ||||||
|  | # This option cannot be used with TURN REST API. | ||||||
|  | # 'Static' user accounts are NOT dynamically checked by the turnserver process, | ||||||
|  | # so they can NOT be changed while the turnserver is running. | ||||||
|  | # | ||||||
|  | #user=username1:key1 | ||||||
|  | #user=username2:key2 | ||||||
|  | # OR: | ||||||
|  | #user=username1:password1 | ||||||
|  | #user=username2:password2 | ||||||
|  | # | ||||||
|  | # Keys must be generated by turnadmin utility. The key value depends | ||||||
|  | # on user name, realm, and password: | ||||||
|  | # | ||||||
|  | # Example: | ||||||
|  | # $ turnadmin -k -u ninefingers -r north.gov -p youhavetoberealistic | ||||||
|  | # Output: 0xbc807ee29df3c9ffa736523fb2c4e8ee | ||||||
|  | # ('0x' in the beginning of the key is what differentiates the key from | ||||||
|  | # password. If it has 0x then it is a key, otherwise it is a password). | ||||||
|  | # | ||||||
|  | # The corresponding user account entry in the config file will be: | ||||||
|  | # | ||||||
|  | #user=ninefingers:0xbc807ee29df3c9ffa736523fb2c4e8ee | ||||||
|  | # Or, equivalently, with open clear password (less secure): | ||||||
|  | #user=ninefingers:youhavetoberealistic | ||||||
|  | # | ||||||
|  |  | ||||||
|  | # SQLite database file name. | ||||||
|  | # | ||||||
|  | # The default file name is /var/db/turndb or /usr/local/var/db/turndb or | ||||||
|  | # /var/lib/turn/turndb. | ||||||
|  | # | ||||||
|  | #userdb=/var/db/turndb | ||||||
|  |  | ||||||
|  | # PostgreSQL database connection string in the case that you are using PostgreSQL | ||||||
|  | # as the user database. | ||||||
|  | # This database can be used for the long-term credential mechanism | ||||||
|  | # and it can store the secret value for secret-based timed authentication in TURN REST API. | ||||||
|  | # See http://www.postgresql.org/docs/8.4/static/libpq-connect.html for 8.x PostgreSQL | ||||||
|  | # versions connection string format, see | ||||||
|  | # http://www.postgresql.org/docs/9.2/static/libpq-connect.html#LIBPQ-CONNSTRING | ||||||
|  | # for 9.x and newer connection string formats. | ||||||
|  | # | ||||||
|  | #psql-userdb="host=<host> dbname=<database-name> user=<database-user> password=<database-user-password> connect_timeout=30" | ||||||
|  |  | ||||||
|  | # MySQL database connection string in the case that you are using MySQL | ||||||
|  | # as the user database. | ||||||
|  | # This database can be used for the long-term credential mechanism | ||||||
|  | # and it can store the secret value for secret-based timed authentication in TURN REST API. | ||||||
|  | # | ||||||
|  | # Optional connection string parameters for the secure communications (SSL): | ||||||
|  | # ca, capath, cert, key, cipher | ||||||
|  | # (see http://dev.mysql.com/doc/refman/5.1/en/ssl-options.html for the | ||||||
|  | # command options description). | ||||||
|  | # | ||||||
|  | # Use the string format below (space separated parameters, all optional): | ||||||
|  | # | ||||||
|  | #mysql-userdb="host=<host> dbname=<database-name> user=<database-user> password=<database-user-password> port=<port> connect_timeout=<seconds> read_timeout=<seconds>" | ||||||
|  |  | ||||||
|  | # If you want to use an encrypted password in the MySQL connection string, | ||||||
|  | # then set the MySQL password encryption secret key file with this option. | ||||||
|  | # | ||||||
|  | # Warning: If this option is set, then the mysql password must be set in "mysql-userdb" in an encrypted format! | ||||||
|  | # If you want to use a cleartext password then do not set this option! | ||||||
|  | # | ||||||
|  | # This is the file path for the aes encrypted secret key used for password encryption. | ||||||
|  | # | ||||||
|  | #secret-key-file=/path/ | ||||||
|  |  | ||||||
|  | # MongoDB database connection string in the case that you are using MongoDB | ||||||
|  | # as the user database. | ||||||
|  | # This database can be used for long-term credential mechanism | ||||||
|  | # and it can store the secret value for secret-based timed authentication in TURN REST API. | ||||||
|  | # Use the string format described at http://hergert.me/docs/mongo-c-driver/mongoc_uri.html | ||||||
|  | # | ||||||
|  | #mongo-userdb="mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]" | ||||||
|  |  | ||||||
|  | # Redis database connection string in the case that you are using Redis | ||||||
|  | # as the user database. | ||||||
|  | # This database can be used for long-term credential mechanism | ||||||
|  | # and it can store the secret value for secret-based timed authentication in TURN REST API. | ||||||
|  | # Use the string format below (space separated parameters, all optional): | ||||||
|  | # | ||||||
|  | #redis-userdb="ip=<ip-address> dbname=<database-number> password=<database-user-password> port=<port> connect_timeout=<seconds>" | ||||||
|  |  | ||||||
|  | # Redis status and statistics database connection string, if used (default - empty, no Redis stats DB used). | ||||||
|  | # This database keeps allocations status information, and it can be also used for publishing | ||||||
|  | # and delivering traffic and allocation event notifications. | ||||||
|  | # The connection string has the same parameters as redis-userdb connection string. | ||||||
|  | # Use the string format below (space separated parameters, all optional): | ||||||
|  | # | ||||||
|  | #redis-statsdb="ip=<ip-address> dbname=<database-number> password=<database-user-password> port=<port> connect_timeout=<seconds>" | ||||||
|  |  | ||||||
|  | # The default realm to be used for the users when no explicit | ||||||
|  | # origin/realm relationship is found in the database, or if the TURN | ||||||
|  | # server is not using any database (just the commands-line settings | ||||||
|  | # and the userdb file). Must be used with long-term credentials | ||||||
|  | # mechanism or with TURN REST API. | ||||||
|  | # | ||||||
|  | # Note: If the default realm is not specified, then realm falls back to the host domain name. | ||||||
|  | #       If the domain name string is empty, or set to '(None)', then it is initialized as an empty string. | ||||||
|  | # | ||||||
|  | #realm=mycompany.org | ||||||
|  |  | ||||||
|  | # This flag sets the origin consistency | ||||||
|  | # check. Across the session, all requests must have the same | ||||||
|  | # main ORIGIN attribute value (if the ORIGIN was | ||||||
|  | # initially used by the session). | ||||||
|  | # | ||||||
|  | #check-origin-consistency | ||||||
|  |  | ||||||
|  | # Per-user allocation quota. | ||||||
|  | # default value is 0 (no quota, unlimited number of sessions per user). | ||||||
|  | # This option can also be set through the database, for a particular realm. | ||||||
|  | # | ||||||
|  | #user-quota=0 | ||||||
|  |  | ||||||
|  | # Total allocation quota. | ||||||
|  | # default value is 0 (no quota). | ||||||
|  | # This option can also be set through the database, for a particular realm. | ||||||
|  | # | ||||||
|  | #total-quota=0 | ||||||
|  |  | ||||||
|  | # Max bytes-per-second bandwidth a TURN session is allowed to handle | ||||||
|  | # (input and output network streams are treated separately). Anything above | ||||||
|  | # that limit will be dropped or temporarily suppressed (within | ||||||
|  | # the available buffer limits). | ||||||
|  | # This option can also be set through the database, for a particular realm. | ||||||
|  | # | ||||||
|  | #max-bps=0 | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # Maximum server capacity. | ||||||
|  | # Total bytes-per-second bandwidth the TURN server is allowed to allocate | ||||||
|  | # for the sessions, combined (input and output network streams are treated separately). | ||||||
|  | # | ||||||
|  | #bps-capacity=0 | ||||||
|  |  | ||||||
|  | # Uncomment if no UDP client listener is desired. | ||||||
|  | # By default UDP client listener is always started. | ||||||
|  | # | ||||||
|  | #no-udp | ||||||
|  |  | ||||||
|  | # Uncomment if no TCP client listener is desired. | ||||||
|  | # By default TCP client listener is always started. | ||||||
|  | # | ||||||
|  | #no-tcp | ||||||
|  |  | ||||||
|  | # Uncomment if no TLS client listener is desired. | ||||||
|  | # By default TLS client listener is always started. | ||||||
|  | # | ||||||
|  | #no-tls | ||||||
|  |  | ||||||
|  | # Uncomment if no DTLS client listener is desired. | ||||||
|  | # By default DTLS client listener is always started. | ||||||
|  | # | ||||||
|  | #no-dtls | ||||||
|  |  | ||||||
|  | # Uncomment if no UDP relay endpoints are allowed. | ||||||
|  | # By default UDP relay endpoints are enabled (like in RFC 5766). | ||||||
|  | # | ||||||
|  | #no-udp-relay | ||||||
|  |  | ||||||
|  | # Uncomment if no TCP relay endpoints are allowed. | ||||||
|  | # By default TCP relay endpoints are enabled (like in RFC 6062). | ||||||
|  | # | ||||||
|  | #no-tcp-relay | ||||||
|  |  | ||||||
|  | # Uncomment if extra security is desired, | ||||||
|  | # with nonce value having a limited lifetime. | ||||||
|  | # The nonce value is unique for a session. | ||||||
|  | # Set this option to limit the nonce lifetime. | ||||||
|  | # Set it to 0 for unlimited lifetime. | ||||||
|  | # It defaults to 600 secs (10 min) if no value is provided. After that delay, | ||||||
|  | # the client will get 438 error and will have to re-authenticate itself. | ||||||
|  | # | ||||||
|  | #stale-nonce=600 | ||||||
|  |  | ||||||
|  | # Uncomment if you want to set the maximum allocation | ||||||
|  | # time before it has to be refreshed. | ||||||
|  | # Default is 3600s. | ||||||
|  | # | ||||||
|  | #max-allocate-lifetime=3600 | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # Uncomment to set the lifetime for the channel. | ||||||
|  | # Default value is 600 secs (10 minutes). | ||||||
|  | # This value MUST not be changed for production purposes. | ||||||
|  | # | ||||||
|  | #channel-lifetime=600 | ||||||
|  |  | ||||||
|  | # Uncomment to set the permission lifetime. | ||||||
|  | # Default to 300 secs (5 minutes). | ||||||
|  | # In production this value MUST not be changed, | ||||||
|  | # however it can be useful for test purposes. | ||||||
|  | # | ||||||
|  | #permission-lifetime=300 | ||||||
|  |  | ||||||
|  | # Certificate file. | ||||||
|  | # Use an absolute path or path relative to the | ||||||
|  | # configuration file. | ||||||
|  | # Use PEM file format. | ||||||
|  | # | ||||||
|  | #cert=/usr/local/etc/turn_server_cert.pem | ||||||
|  |  | ||||||
|  | # Private key file. | ||||||
|  | # Use an absolute path or path relative to the | ||||||
|  | # configuration file. | ||||||
|  | # Use PEM file format. | ||||||
|  | # | ||||||
|  | #pkey=/usr/local/etc/turn_server_pkey.pem | ||||||
|  |  | ||||||
|  | # Private key file password, if it is in encoded format. | ||||||
|  | # This option has no default value. | ||||||
|  | # | ||||||
|  | #pkey-pwd=... | ||||||
|  |  | ||||||
|  | # Allowed OpenSSL cipher list for TLS/DTLS connections. | ||||||
|  | # Default value is "DEFAULT". | ||||||
|  | # | ||||||
|  | #cipher-list="DEFAULT" | ||||||
|  |  | ||||||
|  | # CA file in OpenSSL format. | ||||||
|  | # Forces TURN server to verify the client SSL certificates. | ||||||
|  | # By default this is not set: there is no default value and the client | ||||||
|  | # certificate is not checked. | ||||||
|  | # | ||||||
|  | # Example: | ||||||
|  | #CA-file=/etc/ssh/id_rsa.cert | ||||||
|  |  | ||||||
|  | # Curve name for EC ciphers, if supported by OpenSSL | ||||||
|  | # library (TLS and DTLS). The default value is prime256v1, | ||||||
|  | # if pre-OpenSSL 1.0.2 is used. With OpenSSL 1.0.2+, | ||||||
|  | # an optimal curve will be automatically calculated, if not defined | ||||||
|  | # by this option. | ||||||
|  | # | ||||||
|  | #ec-curve-name=prime256v1 | ||||||
|  |  | ||||||
|  | # Use 566 bits predefined DH TLS key. Default size of the key is 2066. | ||||||
|  | # | ||||||
|  | #dh566 | ||||||
|  |  | ||||||
|  | # Use 1066 bits predefined DH TLS key. Default size of the key is 2066. | ||||||
|  | # | ||||||
|  | #dh1066 | ||||||
|  |  | ||||||
|  | # Use custom DH TLS key, stored in PEM format in the file. | ||||||
|  | # Flags --dh566 and --dh1066 are ignored when the DH key is taken from a file. | ||||||
|  | # | ||||||
|  | #dh-file=<DH-PEM-file-name> | ||||||
|  |  | ||||||
|  | # Flag to prevent stdout log messages. | ||||||
|  | # By default, all log messages go to both stdout and to | ||||||
|  | # the configured log file. With this option everything will | ||||||
|  | # go to the configured log only (unless the log file itself is stdout). | ||||||
|  | # | ||||||
|  | #no-stdout-log | ||||||
|  |  | ||||||
|  | # Option to set the log file name. | ||||||
|  | # By default, the turnserver tries to open a log file in | ||||||
|  | # /var/log, /var/tmp, /tmp and the current directory | ||||||
|  | # (Whichever file open operation succeeds first will be used). | ||||||
|  | # With this option you can set the definite log file name. | ||||||
|  | # The special names are "stdout" and "-" - they will force everything | ||||||
|  | # to the stdout. Also, the "syslog" name will force everything to | ||||||
|  | # the system log (syslog). | ||||||
|  | # In the runtime, the logfile can be reset with the SIGHUP signal | ||||||
|  | # to the turnserver process. | ||||||
|  | # | ||||||
|  | #log-file=/var/tmp/turn.log | ||||||
|  |  | ||||||
|  | # Option to redirect all log output into system log (syslog). | ||||||
|  | # | ||||||
|  | #syslog | ||||||
|  |  | ||||||
|  | # Set syslog facility for syslog messages | ||||||
|  | # Default values is ''. | ||||||
|  | # | ||||||
|  | #syslog-facility="LOG_LOCAL1" | ||||||
|  |  | ||||||
|  | # This flag means that no log file rollover will be used, and the log file | ||||||
|  | # name will be constructed as-is, without PID and date appendage. | ||||||
|  | # This option can be used, for example, together with the logrotate tool. | ||||||
|  | # | ||||||
|  | #simple-log | ||||||
|  |  | ||||||
|  | # Enable full ISO-8601 timestamp in all logs. | ||||||
|  | #new-log-timestamp | ||||||
|  |  | ||||||
|  | # Set timestamp format (in strftime(1) format). Depends on new-log-timestamp to be enabled. | ||||||
|  | #new-log-timestamp-format "%FT%T%z" | ||||||
|  |  | ||||||
|  | # Disabled by default binding logging in verbose log mode to avoid DoS attacks. | ||||||
|  | # Enable binding logging and UDP endpoint logs in verbose log mode. | ||||||
|  | #log-binding | ||||||
|  |  | ||||||
|  | # Option to set the "redirection" mode. The value of this option | ||||||
|  | # will be the address of the alternate server for UDP & TCP service in the form of | ||||||
|  | # <ip>[:<port>]. The server will send this value in the attribute | ||||||
|  | # ALTERNATE-SERVER, with error 300, on ALLOCATE request, to the client. | ||||||
|  | # Client will receive only values with the same address family | ||||||
|  | # as the client network endpoint address family. | ||||||
|  | # See RFC 5389 and RFC 5766 for the description of ALTERNATE-SERVER functionality. | ||||||
|  | # The client must use the obtained value for subsequent TURN communications. | ||||||
|  | # If more than one --alternate-server option is provided, then the functionality | ||||||
|  | # can be more accurately described as "load-balancing" than a mere "redirection". | ||||||
|  | # If the port number is omitted, then the default port | ||||||
|  | # number 3478 for the UDP/TCP protocols will be used. | ||||||
|  | # Colon (:) characters in IPv6 addresses may conflict with the syntax of | ||||||
|  | # the option. To alleviate this conflict, literal IPv6 addresses are enclosed | ||||||
|  | # in square brackets in such resource identifiers, for example: | ||||||
|  | # [2001:db8:85a3:8d3:1319:8a2e:370:7348]:3478 . | ||||||
|  | # Multiple alternate servers can be set. They will be used in the | ||||||
|  | # round-robin manner. All servers in the pool are considered of equal weight and | ||||||
|  | # the load will be distributed equally. For example, if you have 4 alternate servers, | ||||||
|  | # then each server will receive 25% of ALLOCATE requests. A alternate TURN server | ||||||
|  | # address can be used more than one time with the alternate-server option, so this | ||||||
|  | # can emulate "weighting" of the servers. | ||||||
|  | # | ||||||
|  | # Examples: | ||||||
|  | #alternate-server=1.2.3.4:5678 | ||||||
|  | #alternate-server=11.22.33.44:56789 | ||||||
|  | #alternate-server=5.6.7.8 | ||||||
|  | #alternate-server=[2001:db8:85a3:8d3:1319:8a2e:370:7348]:3478 | ||||||
|  |  | ||||||
|  | # Option to set alternative server for TLS & DTLS services in form of | ||||||
|  | # <ip>:<port>. If the port number is omitted, then the default port | ||||||
|  | # number 5349 for the TLS/DTLS protocols will be used. See the previous | ||||||
|  | # option for the functionality description. | ||||||
|  | # | ||||||
|  | # Examples: | ||||||
|  | #tls-alternate-server=1.2.3.4:5678 | ||||||
|  | #tls-alternate-server=11.22.33.44:56789 | ||||||
|  | #tls-alternate-server=[2001:db8:85a3:8d3:1319:8a2e:370:7348]:3478 | ||||||
|  |  | ||||||
|  | # Option to suppress TURN functionality, only STUN requests will be processed. | ||||||
|  | # Run as STUN server only, all TURN requests will be ignored. | ||||||
|  | # By default, this option is NOT set. | ||||||
|  | # | ||||||
|  | #stun-only | ||||||
|  |  | ||||||
|  | # Option to hide software version. Enhance security when used in production. | ||||||
|  | # Revealing the specific software version of the agent through the | ||||||
|  | # SOFTWARE attribute might allow them to become more vulnerable to | ||||||
|  | # attacks against software that is known to contain security holes. | ||||||
|  | # Implementers SHOULD make usage of the SOFTWARE attribute a | ||||||
|  | # configurable option (https://tools.ietf.org/html/rfc5389#section-16.1.2) | ||||||
|  | # | ||||||
|  | #no-software-attribute | ||||||
|  |  | ||||||
|  | # Option to suppress STUN functionality, only TURN requests will be processed. | ||||||
|  | # Run as TURN server only, all STUN requests will be ignored. | ||||||
|  | # By default, this option is NOT set. | ||||||
|  | # | ||||||
|  | #no-stun | ||||||
|  |  | ||||||
|  | # This is the timestamp/username separator symbol (character) in TURN REST API. | ||||||
|  | # The default value is ':'. | ||||||
|  | # | ||||||
|  | #rest-api-separator=: | ||||||
|  |  | ||||||
|  | # Flag that can be used to allow peers on the loopback addresses (127.x.x.x and ::1). | ||||||
|  | # This is an extra security measure. | ||||||
|  | # | ||||||
|  | # (To avoid any security issue that allowing loopback access may raise, | ||||||
|  | # the no-loopback-peers option is replaced by allow-loopback-peers.) | ||||||
|  | # | ||||||
|  | # Allow it only for testing in a development environment! | ||||||
|  | # In production it adds a possible security vulnerability, so for security reasons | ||||||
|  | # it is not allowed using it together with empty cli-password. | ||||||
|  | # | ||||||
|  | #allow-loopback-peers | ||||||
|  |  | ||||||
|  | # Flag that can be used to disallow peers on well-known broadcast addresses (224.0.0.0 and above, and FFXX:*). | ||||||
|  | # This is an extra security measure. | ||||||
|  | # | ||||||
|  | #no-multicast-peers | ||||||
|  |  | ||||||
|  | # Option to set the max time, in seconds, allowed for full allocation establishment. | ||||||
|  | # Default is 60 seconds. | ||||||
|  | # | ||||||
|  | #max-allocate-timeout=60 | ||||||
|  |  | ||||||
|  | # Option to allow or ban specific ip addresses or ranges of ip addresses. | ||||||
|  | # If an ip address is specified as both allowed and denied, then the ip address is | ||||||
|  | # considered to be allowed. This is useful when you wish to ban a range of ip | ||||||
|  | # addresses, except for a few specific ips within that range. | ||||||
|  | # | ||||||
|  | # This can be used when you do not want users of the turn server to be able to access | ||||||
|  | # machines reachable by the turn server, but would otherwise be unreachable from the | ||||||
|  | # internet (e.g. when the turn server is sitting behind a NAT) | ||||||
|  | # | ||||||
|  | # Examples: | ||||||
|  | # denied-peer-ip=83.166.64.0-83.166.95.255 | ||||||
|  | # allowed-peer-ip=83.166.68.45 | ||||||
|  |  | ||||||
|  | # File name to store the pid of the process. | ||||||
|  | # Default is /var/run/turnserver.pid (if superuser account is used) or | ||||||
|  | # /var/tmp/turnserver.pid . | ||||||
|  | # | ||||||
|  | #pidfile="/var/run/turnserver.pid" | ||||||
|  |  | ||||||
|  | # Require authentication of the STUN Binding request. | ||||||
|  | # By default, the clients are allowed anonymous access to the STUN Binding functionality. | ||||||
|  | # | ||||||
|  | #secure-stun | ||||||
|  |  | ||||||
|  | # Mobility with ICE (MICE) specs support. | ||||||
|  | # | ||||||
|  | #mobility | ||||||
|  |  | ||||||
|  | # Allocate Address Family according (DEPRECATED and will be removed in favor of allocation-default-address-family) | ||||||
|  | # If enabled then TURN server allocates address family according  the TURN | ||||||
|  | # Client <=> Server communication address family. | ||||||
|  | # (By default Coturn works according RFC 6156.) | ||||||
|  | # !!Warning: Enabling this option breaks RFC6156 section-4.2 (violates use default IPv4)!! | ||||||
|  | # | ||||||
|  | #keep-address-family | ||||||
|  |  | ||||||
|  | # TURN server allocates address family according TURN client requested address family. | ||||||
|  | # If address family not requested explicitly by the client, then it falls back to this default. | ||||||
|  | # The standard RFC explicitly define that this default must be IPv4,  | ||||||
|  | # so use other option values with care!  | ||||||
|  | # Possible values: "ipv4" or "ipv6" or "keep"  | ||||||
|  | # "keep" sets the allocation default address family according to  | ||||||
|  | # the TURN client allocation request connection address family. | ||||||
|  | # | ||||||
|  | #allocation-default-address-family="ipv4" | ||||||
|  | #allocation-default-address-family="ipv4" | ||||||
|  |  | ||||||
|  | # User name to run the process. After the initialization, the turnserver process | ||||||
|  | # will attempt to change the current user ID to that user. | ||||||
|  | # | ||||||
|  | #proc-user=<user-name> | ||||||
|  |  | ||||||
|  | # Group name to run the process. After the initialization, the turnserver process | ||||||
|  | # will attempt to change the current group ID to that group. | ||||||
|  | # | ||||||
|  | #proc-group=<group-name> | ||||||
|  |  | ||||||
|  | # Turn OFF the CLI support. | ||||||
|  | # By default it is always ON. | ||||||
|  | # See also options cli-ip and cli-port. | ||||||
|  | # | ||||||
|  | #no-cli | ||||||
|  |  | ||||||
|  | #Local system IP address to be used for CLI server endpoint. Default value | ||||||
|  | # is 127.0.0.1. | ||||||
|  | # | ||||||
|  | #cli-ip=127.0.0.1 | ||||||
|  |  | ||||||
|  | # CLI server port. Default is 5766. | ||||||
|  | # | ||||||
|  | #cli-port=5766 | ||||||
|  |  | ||||||
|  | # CLI access password. Default is empty (no password). | ||||||
|  | # For the security reasons, it is recommended that you use the encrypted | ||||||
|  | # form of the password (see the -P command in the turnadmin utility). | ||||||
|  | # | ||||||
|  | # Secure form for password 'qwerty': | ||||||
|  | # | ||||||
|  | #cli-password=$5$79a316b350311570$81df9cfb9af7f5e5a76eada31e7097b663a0670f99a3c07ded3f1c8e59c5658a | ||||||
|  | # | ||||||
|  | # Or unsecure form for the same password: | ||||||
|  | # | ||||||
|  | #cli-password=qwerty | ||||||
|  |  | ||||||
|  | # Enable Web-admin support on https. By default it is Disabled. | ||||||
|  | # If it is enabled it also enables a http a simple static banner page | ||||||
|  | # with a small reminder that the admin page is available only on https. | ||||||
|  | # Not supported if no-tls option used | ||||||
|  | # | ||||||
|  | #web-admin | ||||||
|  |  | ||||||
|  | # Local system IP address to be used for Web-admin server endpoint. Default value is 127.0.0.1. | ||||||
|  | # | ||||||
|  | #web-admin-ip=127.0.0.1 | ||||||
|  |  | ||||||
|  | # Web-admin server port. Default is 8080. | ||||||
|  | # | ||||||
|  | #web-admin-port=8080 | ||||||
|  |  | ||||||
|  | # Web-admin server listen on STUN/TURN worker threads | ||||||
|  | # By default it is disabled for security reasons! (Not recommended in any production environment!) | ||||||
|  | # | ||||||
|  | #web-admin-listen-on-workers | ||||||
|  |  | ||||||
|  | # Redirect ACME, i.e. HTTP GET requests matching '^/.well-known/acme-challenge/(.*)' to '<URL>$1'. | ||||||
|  | # Default is '', i.e. no special handling for such requests. | ||||||
|  | # | ||||||
|  | #acme-redirect=http://redirectserver/.well-known/acme-challenge/ | ||||||
|  |  | ||||||
|  | # Server relay. NON-STANDARD AND DANGEROUS OPTION. | ||||||
|  | # Only for those applications when you want to run | ||||||
|  | # server applications on the relay endpoints. | ||||||
|  | # This option eliminates the IP permissions check on | ||||||
|  | # the packets incoming to the relay endpoints. | ||||||
|  | # | ||||||
|  | #server-relay | ||||||
|  |  | ||||||
|  | # Maximum number of output sessions in ps CLI command. | ||||||
|  | # This value can be changed on-the-fly in CLI. The default value is 256. | ||||||
|  | # | ||||||
|  | #cli-max-output-sessions | ||||||
|  |  | ||||||
|  | # Set network engine type for the process (for internal purposes). | ||||||
|  | # | ||||||
|  | #ne=[1|2|3] | ||||||
|  |  | ||||||
|  | # Do not allow an TLS/DTLS version of protocol | ||||||
|  | # | ||||||
|  | #no-tlsv1 | ||||||
|  | #no-tlsv1_1 | ||||||
|  | #no-tlsv1_2 | ||||||
|  |  | ||||||
|  | # Disable RFC5780 (NAT behavior discovery). | ||||||
|  | # | ||||||
|  | # Originally, if there are more than one listener address from the same | ||||||
|  | # address family, then by default the NAT behavior discovery feature enabled. | ||||||
|  | # This option disables the original behavior, because the NAT behavior | ||||||
|  | # discovery adds extra attributes to response, and this increase the | ||||||
|  | # possibility of an amplification attack. | ||||||
|  | # | ||||||
|  | # Strongly encouraged to use this option to decrease gain factor in STUN | ||||||
|  | # binding responses. | ||||||
|  | # | ||||||
|  | no-rfc5780 | ||||||
|  |  | ||||||
|  | # Disable handling old STUN Binding requests and disable MAPPED-ADDRESS | ||||||
|  | # attribute in binding response (use only the XOR-MAPPED-ADDRESS). | ||||||
|  | # | ||||||
|  | # Strongly encouraged to use this option to decrease gain factor in STUN | ||||||
|  | # binding responses. | ||||||
|  | # | ||||||
|  | no-stun-backward-compatibility | ||||||
|  |  | ||||||
|  | # Only send RESPONSE-ORIGIN attribute in binding response if RFC5780 is enabled. | ||||||
|  | # | ||||||
|  | # Strongly encouraged to use this option to decrease gain factor in STUN | ||||||
|  | # binding responses. | ||||||
|  | # | ||||||
|  | response-origin-only-with-rfc5780 | ||||||
							
								
								
									
										90
									
								
								k8s/infra/vpn/coturn/deployment.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								k8s/infra/vpn/coturn/deployment.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,90 @@ | |||||||
|  | apiVersion: apps/v1 | ||||||
|  | kind: Deployment | ||||||
|  | metadata: | ||||||
|  |   name: coturn | ||||||
|  |   namespace: coturn | ||||||
|  | spec: | ||||||
|  |   selector: | ||||||
|  |     matchLabels: | ||||||
|  |       app.kubernetes.io/name: coturn | ||||||
|  |   template: | ||||||
|  |     metadata: | ||||||
|  |       labels: | ||||||
|  |         app.kubernetes.io/name: coturn | ||||||
|  |     spec: | ||||||
|  |       securityContext: | ||||||
|  |         runAsNonRoot: true | ||||||
|  |         runAsUser: 65534 | ||||||
|  |         runAsGroup: 65534 | ||||||
|  |         fsGroup: 65534 | ||||||
|  |         fsGroupChangePolicy: OnRootMismatch | ||||||
|  |         seccompProfile: | ||||||
|  |           type: RuntimeDefault | ||||||
|  |       containers: | ||||||
|  |         - name: coturn | ||||||
|  |           image: coturn/coturn:4.6.2-r8 # renovate github-releases=coturn/coturn | ||||||
|  |           args: | ||||||
|  |             - --listening-ip=$(LISTENING_IP) | ||||||
|  |             - --listening-port=$(LISTENING_PORT) | ||||||
|  |             - --tls-listening-port=$(TLS_LISTENING_PORT) | ||||||
|  |             - --realm=$(REALM) | ||||||
|  |             - --user="$(NETBIRD_COTURN_USER):$(NETBIRD_COTURN_PASSWORD)" | ||||||
|  |             - --lt-cred-mech | ||||||
|  |             - --cert=/usr/local/etc/tls.crt | ||||||
|  |             - --pkey=/usr/local/etc/tls.key | ||||||
|  |             - --log-file=stdout | ||||||
|  |             - --no-software-attribute | ||||||
|  |             - --no-cli | ||||||
|  |           securityContext: | ||||||
|  |             allowPrivilegeEscalation: false | ||||||
|  |             readOnlyRootFilesystem: true | ||||||
|  |             runAsNonRoot: true | ||||||
|  |             capabilities: | ||||||
|  |               add: [ NET_BIND_SERVICE ] | ||||||
|  |               drop: [ ALL ] | ||||||
|  |           envFrom: | ||||||
|  |             - configMapRef: | ||||||
|  |                 name: coturn-config | ||||||
|  |             - secretRef: | ||||||
|  |                 name: netbird-credentials | ||||||
|  |           ports: | ||||||
|  |             - containerPort: 3478 | ||||||
|  |               name: tcp | ||||||
|  |               protocol: TCP | ||||||
|  |             - containerPort: 3478 | ||||||
|  |               name: udp | ||||||
|  |               protocol: UDP | ||||||
|  |             - containerPort: 5349 | ||||||
|  |               name: tcp-tls | ||||||
|  |               protocol: TCP | ||||||
|  |             - containerPort: 5349 | ||||||
|  |               name: udp-tls | ||||||
|  |               protocol: UDP | ||||||
|  |           volumeMounts: | ||||||
|  |             - name: turnserver-config | ||||||
|  |               mountPath: /etc/turnserver.conf | ||||||
|  |               subPath: turnserver.conf | ||||||
|  |             - name: cert | ||||||
|  |               mountPath: /usr/local/etc | ||||||
|  |           resources: | ||||||
|  |             requests: | ||||||
|  |               memory: 32Mi | ||||||
|  |               cpu: 10m | ||||||
|  |             limits: | ||||||
|  |               memory: 64Mi | ||||||
|  |               cpu: 1000m | ||||||
|  |           readinessProbe: | ||||||
|  |             tcpSocket: | ||||||
|  |               port: tcp | ||||||
|  |           livenessProbe: | ||||||
|  |             tcpSocket: | ||||||
|  |               port: tcp | ||||||
|  |       volumes: | ||||||
|  |         - name: turnserver-config | ||||||
|  |           configMap: | ||||||
|  |             defaultMode: 0644 | ||||||
|  |             name: turnserver-config | ||||||
|  |         - name: cert | ||||||
|  |           secret: | ||||||
|  |             defaultMode: 0644 | ||||||
|  |             secretName: coturn-cert | ||||||
| @@ -1,15 +1,22 @@ | |||||||
| apiVersion: kustomize.config.k8s.io/v1beta1 | apiVersion: kustomize.config.k8s.io/v1beta1 | ||||||
| kind: Kustomization | kind: Kustomization | ||||||
| namespace: coturn |  | ||||||
|  | configMapGenerator: | ||||||
|  |   - name: turnserver-config | ||||||
|  |     namespace: coturn | ||||||
|  |     files: | ||||||
|  |       - config/turnserver.conf | ||||||
|  |   - name: coturn-config | ||||||
|  |     namespace: coturn | ||||||
|  |     literals: | ||||||
|  |       - LISTENING_IP="0.0.0.0" | ||||||
|  |       - LISTENING_PORT="3478" | ||||||
|  |       - TLS_LISTENING_PORT="5349" | ||||||
|  |       - REALM="coturn.stonegarden.dev" | ||||||
|  |  | ||||||
| resources: | resources: | ||||||
|   - ns.yaml |   - ns.yaml | ||||||
|   - secret-netbird-credentials.yaml |   - deployment.yaml | ||||||
|  |   - cert.yaml | ||||||
| helmCharts: |   - svc.yaml | ||||||
|   - name: coturn |   - netbird-credentials.yaml | ||||||
|     repo: https://charts.jaconi.io |  | ||||||
|     releaseName: coturn |  | ||||||
|     namespace: coturn |  | ||||||
|     version: 1.0.0 |  | ||||||
|     valuesFile: values.yaml |  | ||||||
|   | |||||||
							
								
								
									
										14
									
								
								k8s/infra/vpn/coturn/netbird-credentials.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								k8s/infra/vpn/coturn/netbird-credentials.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | apiVersion: bitnami.com/v1alpha1 | ||||||
|  | kind: SealedSecret | ||||||
|  | metadata: | ||||||
|  |   name: netbird-credentials | ||||||
|  |   namespace: coturn | ||||||
|  | spec: | ||||||
|  |   encryptedData: | ||||||
|  |     NETBIRD_COTURN_PASSWORD: AgDks8HPkfDkf2/dP1dBAf5XpSh0/Fbimexw2zi7PuxZVPZsgCNPHfml1qB43aZh64GcywGusy7inKJfWfvE8WmmshdStwIpCjAg6C1HvegCc/7znTncuhqJR2pCe48aWELctLW7CH2bS5tLv7c9Rof4qLTTSrCDHMqrHdfzaolS0gRPAeZCGLBjErYkrkbf0JCd2M/w9vNajQwl2kqxzHjjvBfhrOX94EMD/Q5v4NH8P7soFw2zmLsFFi525CksOBjyuJDA9TmvFu0PuS072L/gkbgU0DEPzPpZKoteU8cHDoacBwGbPDVDtftizQg3CwLeoXZnh/9Z+NWK1frsZFAJ9lwniN1myIRQ8T1U7kKjmHL74N69XpT+W3xpoiSk4BG7CaMGS72ju4FCHOnm4X6efwsVEttxIkrQXlM+DtuEFtGBFqhCLOeB6fg4A/ngjzwfCKOt8Z3XDw7VrUezoECh1nIU+e/aVUwvT54nUAmHIM2V2zymGJjRAGRPZPvW19S2DlbD5nq8XuoC/XV9uGXgrUhC8XehxIqeXJX4t9fIe4xqApGebGsojeXoY6PzuZN5BeImY7I1EcjOE2xnA7ab12CCQeDpdHOxp5M0f4If1a9qhHFrlI4VA6dns+WamM85k3GdiPS/kxIE40SapwAa5rH0kCGv2tHhqRRFtt7JyoqxFKFBxzbxrPEFHDXX+Zl8of1EFEM9iY34DaoTb6NG72QzZ1hmhGRbZfGu+OD+fgjpDXkGqyXK | ||||||
|  |     NETBIRD_COTURN_USER: AgDMEHR3Wmcp3s+01GJ3IKbTRAjLf34D3BGr/QHBaNM1K+2D/QwKJHmDyBElX6iLnPh8ZXvlR48hWUAijQON7+XGLPhlrFFz+zG9XrkJhN844a/6U39hoPuYaOa2xE7QvNeYJHywASYQq4HYJXQbL3EtY3pkBbLwfErMaDKJXJzHBrCJ+vUmo8Kyo5R6FvQ7aoeEXRVXEM8bwytEJPO4S4qt+CD+HTDHPzvtXgprq0sBnNsNYEoS0ESKuWHIW4WMbvDTo+kwX2lAiW6VH1pHZN8/tOaBS4HM1Hmu2AGiewIlbZ1+yRfx+0mTofoUHmvwNdlVmYrS3Z+8zuJlCbicih3FqRHBy4FSuq5oq3XCMcp0/Mryy1jx1haSjmZaRpxgL/vJOOZ5j5hRzYJZSnEG/tPVvw4GzGek3TV+ql8EsopjVSMdxdi3+8hoP4J0zz2s42dtDHLZaGulq8u90Fl55Rarq/8KsHhju0ZMPjkQ6zbT0Tf76tmx5HIVthqp3ro7lID12cpepZE+Y6riSzrI3VwlOoLNSxHEMzW3F81Hthgo5ry3uaHI+eGX4uOgOf7FapB6Iwzp80dl0NfzDFubb964OiRVPvWaKkE/ga6HK+KKuHzdrm8REdaaQNZWLatbnkG7L8d0TmpV4G+Ml3tFctWJKsd+fHBQy971pYMuBHdih20ukVRtavOLRctq/W1Z0fcJzwZDWt9l | ||||||
|  |   template: | ||||||
|  |     metadata: | ||||||
|  |       name: netbird-credentials | ||||||
|  |       namespace: coturn | ||||||
|  |     type: Opaque | ||||||
| @@ -1,14 +0,0 @@ | |||||||
| apiVersion: bitnami.com/v1alpha1 |  | ||||||
| kind: SealedSecret |  | ||||||
| metadata: |  | ||||||
|   name: netbird-turn-credentials |  | ||||||
|   namespace: coturn |  | ||||||
| spec: |  | ||||||
|   encryptedData: |  | ||||||
|     password: AgDILP8Rl3KzqKkm0u223SbYovP6j3xYR3zA+le2g9nH6HNudRRDRjxY5STex29aM2wDgtjzyAV6NVGo2TeQD/dFPNIGtH/g6XtXdnF/q7HA9PjRoEoAu7UptJ1S8yxo1bVNdC7SqQuEDqKQKxxNoD7Xgk/0X9Qu0yXoBmL3NgaROOQELwiK/je9UrACAMNQKZMuxZnF+1vGZkBud0zRd3fLL1i0nkhYGM+MWWEs6Te4RYJnpFe1bma1ou7G0oxE/WHsOFJrzqCel1NSACS7vc9Rg5bFh7chQYBbz6sB4/4QBtMS34xKWbgnzPM9U8PyhM5u9Hr+Bj86MQAxjzgXqNmwRBZ+bQuvVgvNBSMxTkmLQtH4mq941OGgS7E7bxlk57qOLjk0NzUV6oKzK3nQARJBTbQT2nDifyKWCIAH7rCkkdkZosKm185XJK3AcIPnM+YJK/b41sVkBzk+h3hwIwSY8FoJUzBAhhD1Ly3FHzkgE9oewYO7WWP4cjl+FndItsd98nlSdRjWpdDTTPpLd2Z4Vyn1WF4DBNfe1+S089mM6XgQzxltsHZ3hCNDQPSCsuUK/oSZAO3fi4Pww/7cdShEXsPpfHRApdZbXkruhEeQ8A1h+fqquFeCW54RrTnztj5pxBxKnoEXLl5h7oYMMsoWKBVpG94Fc3pXh6CcahFvAiiSbNpmwfWjRVnQBJVx7UWqstnUd4soiYtjycRzJz0OiXjyAzUM2zIXjn1x280iuOye6y+68qxY |  | ||||||
|     username: AgCrrYOsRSEszxDU8PTommgDRFmBhtvjge4hE+ifdS3AmAbTzvAfTkG8ZbApWZ21Tch42bb8LDJMYklY7rzmqKmfen4CO5dOyy4vZ1WUyg6FoFrzRGg+BseUZoOxKnO0NRrHqLIWJDlYyhXwOnZj3RCIkuvhYscLCUgFSz5WnqnOtO5k0z26VoanJU6ia8slXFfUZ1XTruZULmBt+WhMhOD1qX9iCL6E3IOxzZ93jRVzFNyyl8SHxPGI6M9YEQFeomaKzKIHqfZ/u1dqWzteVlAQn5rG2ahV5fZ3orXmMwhx1YE8ObyP5e53oEa+idtwcK+I44tc6QNolMD1xMeMIXJ4F7NiyB7LhdduZIDwxH+6VmX5bCMDMRYIqEYPyZQ+bVF+RVGXtmOJEFrWtSJvIkOha/e7rKXw4hMLRj7bFmLtNkFIBFiI/9mH+e/hI0zCFfa3WBfbBBIlK2/NkrreyHpyplqKnhnqXhWuXDkd/0ldYJDowfgHiKqMax8ejIgJ1dmxm2emUt8vigN37yzfTZ6kOeMy9Q7bh9SANKrZnBGlmzHg5DoHCn7sAphEpmbOxCxFKN8+eYT806ilyg5x/tPhR3u5/dw2VAzljosgW6h2rS4+4zSOWkBjVuyrR1KVBUC+VQxBUaK6i8lLbGRZuYizLwrXgrIdDGd/Onub05eymOvHb+KP2iPj2cOqO3JAuG2vf0LGkM+d |  | ||||||
|   template: |  | ||||||
|     metadata: |  | ||||||
|       name: netbird-turn-credentials |  | ||||||
|       namespace: coturn |  | ||||||
|     type: Opaque |  | ||||||
							
								
								
									
										28
									
								
								k8s/infra/vpn/coturn/svc.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								k8s/infra/vpn/coturn/svc.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | |||||||
|  | apiVersion: v1 | ||||||
|  | kind: Service | ||||||
|  | metadata: | ||||||
|  |   name: coturn | ||||||
|  |   namespace: coturn | ||||||
|  |   annotations: | ||||||
|  |     io.cilium/lb-ipam-ips: 192.168.1.226 | ||||||
|  | spec: | ||||||
|  |   type: LoadBalancer | ||||||
|  |   selector: | ||||||
|  |     app.kubernetes.io/name: coturn | ||||||
|  |   ports: | ||||||
|  |     - name: tcp | ||||||
|  |       port: 3478 | ||||||
|  |       protocol: TCP | ||||||
|  |       targetPort: tcp | ||||||
|  |     - name: udp | ||||||
|  |       port: 3478 | ||||||
|  |       protocol: UDP | ||||||
|  |       targetPort: udp | ||||||
|  |     - name: tcp-tls | ||||||
|  |       port: 5349 | ||||||
|  |       protocol: TCP | ||||||
|  |       targetPort: tcp-tls | ||||||
|  |     - name: udp-tls | ||||||
|  |       port: 5349 | ||||||
|  |       protocol: UDP | ||||||
|  |       targetPort: udp-tls | ||||||
| @@ -1,20 +0,0 @@ | |||||||
| realm: coturn.stonegarden.dev |  | ||||||
| replicaCount: 1 |  | ||||||
| extraOptions: |  | ||||||
|   - --listening-ip=0.0.0.0 |  | ||||||
|  |  | ||||||
| certificate: |  | ||||||
|   enabled: true |  | ||||||
|   dnsName: coturn.stonegarden.dev |  | ||||||
|   issuerName: cloudflare-cluster-issuer |  | ||||||
|  |  | ||||||
| service: |  | ||||||
|   annotations: |  | ||||||
|     io.cilium/lb-ipam-ips: 192.168.1.226 |  | ||||||
|   type: LoadBalancer |  | ||||||
|  |  | ||||||
| users: |  | ||||||
|   - name: netbird |  | ||||||
|     secretKeyRef: |  | ||||||
|       name: netbird-turn-credentials |  | ||||||
|       key: password |  | ||||||
| @@ -5,8 +5,8 @@ metadata: | |||||||
|   namespace: netbird |   namespace: netbird | ||||||
| spec: | spec: | ||||||
|   encryptedData: |   encryptedData: | ||||||
|     NETBIRD_COTURN_PASSWORD: AgA64wCRGfk6HoL3ZmEc/prjrB/nhPIjO5ed0b7vdb9gqsf1TLWWI5RXhZj8j846IPL7qxf7C2l0kBN0830dScCDM7AHdTnkEz4Ie9t5uHHiNNd+srD+xDgrZGAPGUbEuVr/yBd+pLXEK9pK1HFAr9HmVCFCubUumDeL0y+o8ecJFQo9yal/kC7FhBtDY5P7jbw7CNys/4LPYnPyOtPLYRlxC+xXZe1J83bGF1U6qZZF4iuOFH8C8PkpWK10bBJjvzHqu/TMZDjQYyS/HUzmfCp5FPt4cf1TtDkBfXi9uSqfsTSOFkyHfYipz5Zn6dBYFCHinJgnln90kLRrUhFqTKzQRl9CIufAC24bYg4KoZ4azME4/NX+CpjO8ekZt2/jMG5XUNKwCY/x2AFeZM9LiyNZmrT55gweHUPPwE1XGM1YrJiRuVz53NAMDWWVoH8rUjX+J6SOfItAsEpcREGnPYu8p3ZyL6VjVBGzevOJbVLVwH7WWKElkB+o0XH+02FPpkeYTvKtBJQeYe34nbgzSyHZCX9EpLJ/u0EwbGW6p+VxHCQryJ6wriHvqolNvGd/nViMqu56HnsveJDYFcSYNBPIrvRzB+IobK9Ml4WQ8+Kuf7A1z8K2aNVNrTSpeGILa3bwXdgxR5qY8Ug4PctjGr/KKbBaU3Ql6KRIENtJE8bz0Vw7lv/aH7SDISxb/F6Yftd/XXDdxPYc6uoOiDsNtNd/SqbUIrZdq6r49LE+JLh1Usrwln0GiMae |     NETBIRD_COTURN_PASSWORD: AgCDQ68C33Zbs+FnqTu7J9Q9hMyirWtjj5jGUZrG4iaHhZxtP3EL5Qc7h+ar2s1uLcaega7n9lcKipktPynOH337fIw5H2KYKIz8L5Gm4FtFFwn64NtOC0sx3wxYHPZEiWTwOFIoAjnnNEWMcCsz/bxCsIMvg6qzQZNcM6ygfwiclsjoa53p6zbnMETsDI2xTcsimGZEaXkS6KGBODvXHEEFoLJsNi4VXcDwcK0yZdXSGM4imFTZQNoD0HPUPDDqCNzA8zVeWMC30SMGPqpZ0jLQDv01g1fiDhRUSMnQAwOIE7/lf0fdbvA2QV8xUJMGJP1xuYOXaPPrveUf72CDhIyEX4fXu4vhPckOAcmI+GyRlve4H9eprk6V2xwhpGpgqJDLl+6A8OyVx6F5zSZozpvfyH5XmkaCjN+NUs2t9hJPNltTkvZ9bE2BYsro36Y6E1Oh59MMSMy9yWwMR0yJgNPy+2j0nB1oThAGcBMbOXws9ZZ6UVUXExV1LJy1BEChZRO/0MFiNUYdQ/Ht8Z8L2PEFNOFE1QgLIbf0AlsO1fMnOON8lWp72x+kYwgFZPsrDF5mFk/6KemEr9A6OAKHsJk0QqqMHCPGwXqxtU7NoNHABoBX2U/HLFd8djj3XdQ1XDQOQTgAvTUresa01U3f1U3t6Oa8qr2UuiY2PGmtUBz0HXdeu70XKmQl9NxMALCTq4sstu1MLyd33Wp0Qr8SMC2QcGadpEp648LWkgli+oj/CeXb2DxuxK6z | ||||||
|     NETBIRD_COTURN_USER: AgBBMf0k4L5SAs6L4Asi18MKHVMflmxwWrJoj2bAAUOlVBBXCWEK0Ao9sWWpHqWOkLPNlQqPRg5Qd8GLZ3FF3fh/0G3LO3otL4QuLMDLYJnzYAVOUzj1spTpGT/AVf4GoNkTRxGVV0xBFIZxXDRS0mC8phd6WbLqj6V645ZkW3zxbdzIYJmBg9B5PM0osCCdVvlYUxCrKz251ZKA4qk4dsb179o4HdArvTrgn838+kZ2ipOllx0HXeaiF9JpYUe1kxzHHYXdSGkO7w0gbHZTjta5X0Gx0pkA/7lv8zBgxTNKNbu/65AjWNMu6PfYWOyls4p9urZmI/DQnhrIEOPrDrnIFcrf2eGZdKM8QdHUrOcVYGimXfOmRMfn2JWUtup0e6EjQXWCgVg+7bEQ8F44fUEqOlY+hwd3orETXyp8E7zQFD9g4V5azxXtGQibnxAoVYvieRgyO4HkneHmo7Q4NV//FY0SxhAmN+iLgFKEeNIYBBRrBRBvF+/5L+n3Z162EH3xmsF3IpmtvOGl5mF9GOgR+qC71uaCzR9Rsc0znmqok7S4a4N9MxBC0ohknrnK2SOm4s4JeAAbVsb2w4V8UXep81m2TRBx0EyEOuDZUSs9cHZaFVRsvYjbiy56+GGv7XbTCe5+JV1rSrNIqopYdp4VbQYXhJlP0KQ7kdr0yVfkzZIHf3+zoFcrIs+qBydxCMGScvroIl7K |     NETBIRD_COTURN_USER: AgBRDd4wvezCLtm3Ho52OrzJH4ft3KXjQ8EEFhg7WsYjy0AtU5faQziHZFMiqy0A+u56YnogflkoAejBp/oG672IVnjAxPe+skBT2ikoClJNhpinIbV0CfYeEU4ruMBMjUzCqz+0i4a7X8OQ9SAI2Q5YFIq91JdFwGqMjUTciuIPJ0VjNbFr6KuLjQ778AkKsNN60gWpBef5RDbGgxBT+DVDFmUItZiHNRNDgt4mLFBlV5LqIH+O0SvSJVGKOIDNYjvd2hWi28zygU1EqSVLAEoq759/KN6d0l1kzDCAuMB+CvDWIC70N7PPeoNYOMQaHaol98IZIoe3celm+9dtv4sA6sa7uLYFCncUByI4RwGTSmgPTws0aSAR1qAymxJBVH2d6trG6zPks/ys3svlFgo++ZYWT7xM0vHSBTvAXQGmQBbE78v0KY0UoA+yE/rErXukLOK0gEubwbBkYEHQvbchLjHp5zviihGnjLAVBtn3YmcLFncCRExkHskr8H/2erHj5T1yQ0Tg5nPHAHtnRFAbp+CXAFnkqv86o4CmEw02Slkdyjq//Flk4PvjRh+eihJic3+ddvhwTh2IgrQk39rqeUJBVJLuK9jhBPrbk5nEVA7q+/qHIoeGe3M+vItNZKZo+wuIkZMv+IGRm6scl5lY9ypnhJhNfzkVBznmxkudFl9SRC4PKT7GaRFVqC2S8ZsEQ6xGzZR4 | ||||||
|   template: |   template: | ||||||
|     metadata: |     metadata: | ||||||
|       name: coturn-credentials |       name: coturn-credentials | ||||||
|   | |||||||
| @@ -28,8 +28,8 @@ configMapGenerator: | |||||||
|       - NETBIRD_RELAY_URI="rels://netbird.stonegarden.dev:443" |       - NETBIRD_RELAY_URI="rels://netbird.stonegarden.dev:443" | ||||||
|       - NETBIRD_SIGNAL_URI="netbird.stonegarden.dev:443" |       - NETBIRD_SIGNAL_URI="netbird.stonegarden.dev:443" | ||||||
|       - NETBIRD_SIGNAL_PROTOCOL="https" |       - NETBIRD_SIGNAL_PROTOCOL="https" | ||||||
|       - NETBIRD_STUN_URI="stun:coturn.stonegarden.dev:3478" |       - NETBIRD_STUN_URI="stun:coturn.stonegarden.dev:5349" | ||||||
|       - NETBIRD_TURN_URI="turn:coturn.stonegarden.dev:3478" |       - NETBIRD_TURN_URI="turn:coturn.stonegarden.dev:5349" | ||||||
|   - name: management-idp-config |   - name: management-idp-config | ||||||
|     namespace: netbird |     namespace: netbird | ||||||
|     literals: |     literals: | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Vegard Hagen
					Vegard Hagen