331 lines
15 KiB
YAML
331 lines
15 KiB
YAML
image:
|
|
repository: ghcr.io/juanfont/headscale
|
|
pullPolicy: IfNotPresent
|
|
tag: v0.26.1
|
|
|
|
args: ["serve"]
|
|
|
|
env:
|
|
HEADSCALE_DNS_BASE_DOMAIN: "ts.obx"
|
|
|
|
# HACK: Workaround for fortigate block of WG udp port
|
|
HEADSCALE_RANDOMIZE_CLIENT_PORT: "true"
|
|
HEADSCALE_OIDC_ONLY_START_IF_OIDC_IS_AVAILABLE: "true"
|
|
HEADSCALE_OIDC_ISSUER: "https://login.microsoftonline.com/3f737008-e9a0-4485-9d27-40329d288089/v2.0"
|
|
HEADSCALE_OIDC_CLIENT_ID: "688e9096-f140-4498-a46a-e3d1939184de"
|
|
HEADSCALE_OIDC_CLIENT_SECRET: "dPW8Q~1rctY-D0Ih.A1-1KqLl0uj1rX_ixNTcbrh"
|
|
|
|
# -- Split DNS for obx and ts.obx
|
|
HEADSCALE_DNS_NAMESERVERS_SPLIT: |
|
|
{
|
|
"obx": ["10.255.241.210"]
|
|
}
|
|
|
|
# -- Node IPv4 prefixes
|
|
HEADSCALE_PREFIXES_V4: "100.64.0.0/10"
|
|
# -- Node IPv6 prefixes
|
|
HEADSCALE_PREFIXES_V6: "fd7a:115c:a1e0::/48"
|
|
|
|
# -- Whether to use [MagicDNS](https://tailscale.com/kb/1081/magicdns/).
|
|
HEADSCALE_DNS_MAGIC_DNS: "true"
|
|
# -- List of DNS servers to expose to clients.
|
|
HEADSCALE_DNS_NAMESERVERS_GLOBAL: "1.1.1.1 1.0.0.1"
|
|
|
|
HEADSCALE_DERP_URLS: "https://controlplane.tailscale.com/derpmap/default"
|
|
HEADSCALE_DERP_AUTO_UPDATE_ENABLED: "true"
|
|
HEADSCALE_DERP_UPDATE_FREQUENCY: "24h"
|
|
|
|
HEADSCALE_EPHEMERAL_NODE_INACTIVITY_TIMEOUT: "30m"
|
|
|
|
ingress:
|
|
main:
|
|
enabled: true
|
|
className: "nginx"
|
|
annotations:
|
|
cert-manager.io/cluster-issuer: letsencrypt-production
|
|
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
|
nginx.ingress.kubernetes.io/backend-protocol: HTTP
|
|
hosts:
|
|
- host: headscale.svc.oceanbox.io
|
|
paths:
|
|
- path: /
|
|
tls:
|
|
- secretName: headscale-tls
|
|
hosts:
|
|
- headscale.svc.oceanbox.io
|
|
|
|
persistence:
|
|
config:
|
|
enabled: true
|
|
mountPath: /etc/headscale
|
|
retain: true
|
|
# storageClass: ""
|
|
# accessMode: ReadWriteOnce
|
|
# size: 1Gi
|
|
|
|
# -- Enable and configure postgresql database subchart under this key.
|
|
# @default -- See [values.yaml](./values.yaml)
|
|
postgresql:
|
|
enabled: false
|
|
auth:
|
|
database: headscale
|
|
postgresPassword: changeme
|
|
primary:
|
|
persistence:
|
|
enabled: false
|
|
# storageClass: ""
|
|
# size: 8Gi
|
|
|
|
serviceMonitor:
|
|
main:
|
|
# -- Enables or disables the serviceMonitor.
|
|
enabled: true
|
|
# -- Configures the endpoints for the serviceMonitor.
|
|
# @default -- See [values.yaml](./values.yaml)
|
|
endpoints:
|
|
- port: metrics
|
|
scheme: http
|
|
path: /metrics
|
|
interval: 30s
|
|
scrapeTimeout: 10s
|
|
|
|
configMaps:
|
|
acl:
|
|
enabled: true
|
|
data:
|
|
policy: |
|
|
{
|
|
// groups are collections of users having a common scope. A user can be in multiple groups
|
|
// groups cannot be composed of groups
|
|
"groups": {
|
|
"group:admin": [
|
|
"jonas.juselius@oceanbox.io",
|
|
"Moritz.Jorg@oceanbox.io",
|
|
"simen.kirkvik@oceanbox.io",
|
|
"stig.r.jensen@oceanbox.io",
|
|
],
|
|
"group:devops": [
|
|
"radovan.bast@oceanbox.io",
|
|
"ole.tytlandsvik@oceanbox.io",
|
|
],
|
|
"group:oceanographer": [
|
|
"frank.gaardsted@oceanbox.io",
|
|
"ole.anders.nost@oceanbox.io",
|
|
"helge.avlesen@oceanbox.io",
|
|
"isa.rosso@oceanbox.io",
|
|
"jonathan.lilly@oceanbox.io",
|
|
],
|
|
"group:manager": [
|
|
"svenn.hanssen@oceanbox.io",
|
|
],
|
|
"group:marketing": [
|
|
"hilde.iversen@oceanbox.io",
|
|
"pal.herstad@oceanbox.io",
|
|
],
|
|
"group:dev": [],
|
|
"group:intern": [],
|
|
},
|
|
// tagOwners in tailscale is an association between a TAG and the people allowed to set this TAG on a server.
|
|
// This is documented [here](https://tailscale.com/kb/1068/acl-tags#defining-a-tag)
|
|
// and explained [here](https://tailscale.com/blog/rbac-like-it-was-meant-to-be/)
|
|
"tagOwners": {
|
|
"tag:k8s": [ "group:admin" ],
|
|
"tag:hpc": [ "group:admin" ],
|
|
"tag:mumindalen": [ "group:admin" ],
|
|
"tag:hel1": [ "group:admin" ],
|
|
},
|
|
// hosts should be defined using its IP addresses and a subnet mask.
|
|
// to define a single host, use a /32 mask. You cannot use DNS entries here,
|
|
// as they're prone to be hijacked by replacing their IP addresses.
|
|
// see https://github.com/tailscale/tailscale/issues/3800 for more information.
|
|
"hosts": {
|
|
"ingress.ekman.tos": "10.255.241.99/32",
|
|
"ingress.ceph.tos": "10.255.241.10/32",
|
|
"ingress.ceph.vtn": "172.16.239.50/32",
|
|
"ingress.adm.ceph.vtn": "172.16.239.51/32",
|
|
"ingress.oceanbox.tos": "10.255.241.11/32",
|
|
"manage.ekman.tos": "10.255.241.99/32",
|
|
"k8s.oceanbox.tos": "10.255.241.200/32",
|
|
"k8s.ekman.tos": "10.255.241.99/32",
|
|
"k8s.ceph.tos": "10.255.241.29/32",
|
|
"printer.office.tos": "10.132.46.108/32",
|
|
"office.tos.net": "10.132.46.0/24",
|
|
"dc.tos.net": "10.255.241.0/24",
|
|
"100gbe.tos.net": "10.255.244.0/24",
|
|
"mgmt.tos.net": "10.255.240.0/24",
|
|
"dc.vtn.net": "172.16.239.0/24",
|
|
"mgmt.vtn.net": "172.16.238.0/24",
|
|
"dc.hel1.net": "10.0.1.0/24",
|
|
},
|
|
"acls": [
|
|
{
|
|
"action": "accept",
|
|
"src": [
|
|
"group:admin",
|
|
"tag:mumindalen",
|
|
],
|
|
"dst": [
|
|
"tag:hpc:*",
|
|
"tag:hel1:*",
|
|
"tag:mumindalen:*",
|
|
"dc.tos.net:*",
|
|
"mgmt.tos.net:*",
|
|
"office.tos.net:*",
|
|
"dc.vtn.net:*",
|
|
"mgmt.vtn.net:*",
|
|
"dc.hel1.net:*",
|
|
"100.64.0.0/10:*",
|
|
]
|
|
},
|
|
{
|
|
"action": "accept",
|
|
"src": [
|
|
"tag:hpc",
|
|
],
|
|
"dst": [
|
|
"tag:hpc:22",
|
|
"tag:mumindalen:22",
|
|
"100.64.0.0/10:22",
|
|
]
|
|
},
|
|
{
|
|
"action": "accept",
|
|
"src": [ "group:devops" ],
|
|
"dst": [
|
|
"k8s.oceanbox.tos:6443",
|
|
"k8s.ekman.tos:6443",
|
|
"tag:hpc:*",
|
|
"tag:hel1:*",
|
|
"tag:mumindalen:*",
|
|
"dc.tos.net:*",
|
|
"dc.hel1.net:*",
|
|
]
|
|
},
|
|
{
|
|
"action": "accept",
|
|
"src": [
|
|
"group:oceanographer",
|
|
"group:manager",
|
|
"group:marketing",
|
|
],
|
|
"dst": [
|
|
"tag:mumindalen:0",
|
|
"tag:hpc:22,80,443",
|
|
"dc.tos.net:22,80,443",
|
|
"dc.hel1.net:443",
|
|
]
|
|
},
|
|
{
|
|
"action": "accept",
|
|
"src": [ "*" ],
|
|
"dst": [ "autogroup:internet:*", ]
|
|
},
|
|
{ "action": "accept", "src": [ "*" ], "dst": [ "autogroup:internet:*", ] },
|
|
{ "action": "accept", "src": [ "radovan.bast@oceanbox.io", ], "dst": [ "radovan.bast@oceanbox.io:*", ] },
|
|
{ "action": "accept", "src": [ "ole.tytlandsvik@oceanbox.io" ], "dst": [ "ole.tytlandsvik@oceanbox.io:*" ] },
|
|
{ "action": "accept", "src": [ "frank.gaardsted@oceanbox.io" ], "dst": [ "frank.gaardsted@oceanbox.io:*" ] },
|
|
{ "action": "accept", "src": [ "ole.anders.nost@oceanbox.io" ], "dst": [ "ole.anders.nost@oceanbox.io:*" ] },
|
|
{ "action": "accept", "src": [ "helge.avlesen@oceanbox.io" ], "dst": [ "helge.avlesen@oceanbox.io:*" ] },
|
|
{ "action": "accept", "src": [ "isa.rosso@oceanbox.io" ], "dst": [ "isa.rosso@oceanbox.io:*" ] },
|
|
{ "action": "accept", "src": [ "jonathan.lilly@oceanbox.io" ], "dst": [ "jonathan.lilly@oceanbox.io:*" ] },
|
|
{ "action": "accept", "src": [ "jonas.juselius@oceanbox.io" ], "dst": [ "jonas.juselius@oceanbox.io:*" ] },
|
|
{ "action": "accept", "src": [ "Moritz.Jorg@oceanbox.io" ], "dst": [ "Moritz.Jorg@oceanbox.io:*" ] },
|
|
{ "action": "accept", "src": [ "simen.kirkvik@oceanbox.io" ], "dst": [ "simen.kirkvik@oceanbox.io:*" ] },
|
|
{ "action": "accept", "src": [ "stig.r.jensen@oceanbox.io" ], "dst": [ "stig.r.jensen@oceanbox.io:*" ] },
|
|
{ "action": "accept", "src": [ "svenn.hanssen@oceanbox.io" ], "dst": [ "svenn.hanssen@oceanbox.io:*" ] },
|
|
{ "action": "accept", "src": [ "hilde.iversen@oceanbox.io" ], "dst": [ "hilde.iversen@oceanbox.io:*" ] },
|
|
{ "action": "accept", "src": [ "pal.herstad@oceanbox.io" ], "dst": [ "pal.herstad@oceanbox.io:*" ] },
|
|
// s/"\([^"]*\)"/{ "action": "accept", "src": [ "\1" ], "dst": [ "\1:*" ] },
|
|
]
|
|
}
|
|
dns:
|
|
enabled: true
|
|
data:
|
|
records: |
|
|
[
|
|
{ "name": "ekman.oceanbox.io", "type": "A", "value": "10.255.241.100" },
|
|
{ "name": "ekman-manage.oceanbox.io", "type": "A", "value": "10.255.241.99" },
|
|
{ "name": "rossby.oceanbox.io", "type": "A", "value": "172.16.239.222" },
|
|
{ "name": "rossby-manage.oceanbox.io", "type": "A", "value": "172.16.239.221" },
|
|
|
|
{ "name": "maps.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
{ "name": "maps.beta.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
{ "name": "atlantis.beta.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
|
|
{ "name": "auth.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
{ "name": "auth.adm.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
{ "name": "keycloak.adm.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
{ "name": "grafana.adm.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
{ "name": "prometheus.adm.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
{ "name": "alertmanager.adm.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
{ "name": "argocd.adm.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
{ "name": "hubble.adm.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
{ "name": "dapr.adm.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
|
|
{ "name": "umami.srv.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
{ "name": "rabbitmq.srv.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
{ "name": "rabbitmq.dev.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
{ "name": "openfga.srv.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
{ "name": "openfga.dev.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
{ "name": "cache.srv.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
{ "name": "makai.srv.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
{ "name": "makai.dev.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
|
|
{ "name": "slurm.adm.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
{ "name": "slurm-gateway.dev.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
{ "name": "yolo-registry.dev.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
|
|
{ "name": "argocd.ekman.oceanbox.io", "type": "A", "value": "10.255.241.99" },
|
|
{ "name": "prometheus.ekman.oceanbox.io", "type": "A", "value": "10.255.241.99" },
|
|
{ "name": "alertmanager.ekman.oceanbox.io", "type": "A", "value": "10.255.241.99" },
|
|
{ "name": "grafana.ekman.oceanbox.io", "type": "A", "value": "10.255.241.99" },
|
|
{ "name": "slurmrestd.ekman.oceanbox.io", "type": "A", "value": "10.255.241.99" },
|
|
{ "name": "sorcrerer.ekman.oceanbox.io", "type": "A", "value": "10.255.241.99" },
|
|
{ "name": "plume.data.oceanbox.io", "type": "A", "value": "10.255.241.99" },
|
|
{ "name": "slurm-agent.ekman.oceanbox.io", "type": "A", "value": "10.255.241.99" },
|
|
|
|
{ "name": "slurm-agent.rossby.oceanbox.io", "type": "A", "value": "172.16.239.222" },
|
|
|
|
{ "name": "argocd.adm.vtn.obx", "type": "A", "value": "172.16.239.221" },
|
|
{ "name": "grafana.adm.vtn.obx", "type": "A", "value": "172.16.239.221" },
|
|
{ "name": "prometheus.adm.vtn.obx", "type": "A", "value": "172.16.239.221" },
|
|
{ "name": "alertmanager.adm.vtn.obx", "type": "A", "value": "172.16.239.221" },
|
|
{ "name": "slurm-agent.adm.vtn.obx", "type": "A", "value": "172.16.239.221" },
|
|
|
|
{ "name": "dashboard.ob-ceph.local", "type": "A", "value": "10.255.241.10" },
|
|
{ "name": "grafana.ob-ceph.local", "type": "A", "value": "10.255.241.10" },
|
|
{ "name": "s3.ob-ceph.local", "type": "A", "value": "10.255.241.10" },
|
|
{ "name": "prometheus.ob-ceph.local", "type": "A", "value": "10.255.241.10" },
|
|
{ "name": "alertmanager.ob-ceph.local", "type": "A", "value": "10.255.241.10" },
|
|
{ "name": "hubble.ob-ceph.local", "type": "A", "value": "10.255.241.10" },
|
|
|
|
{ "name": "dashboard.ceph.tos.obx", "type": "A", "value": "10.255.241.10" },
|
|
{ "name": "grafana.ceph.tos.obx", "type": "A", "value": "10.255.241.10" },
|
|
{ "name": "s3.ceph.tos.obx", "type": "A", "value": "10.255.241.10" },
|
|
{ "name": "prometheus.ceph.tos.obx", "type": "A", "value": "10.255.241.10" },
|
|
{ "name": "alertmanager.ceph.tos.obx", "type": "A", "value": "10.255.241.10" },
|
|
{ "name": "hubble.ceph.tos.obx", "type": "A", "value": "10.255.241.10" },
|
|
|
|
{ "name": "dashboard.ceph.vtn.obx", "type": "A", "value": "172.16.239.50" },
|
|
{ "name": "grafana.ceph.vtn.obx", "type": "A", "value": "172.16.239.50" },
|
|
{ "name": "prometheus.ceph.vtn.obx", "type": "A", "value": "172.16.239.50" },
|
|
{ "name": "alertmanager.ceph.vtn.obx", "type": "A", "value": "172.16.239.50" },
|
|
{ "name": "hubble.ceph.vtn.obx", "type": "A", "value": "172.16.239.50" },
|
|
|
|
{ "name": "jonas-atlantis.dev.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
{ "name": "jonas-sorcerer.ekman.oceanbox.io", "type": "A", "value": "10.255.241.99" },
|
|
{ "name": "stig-atlantis.dev.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
{ "name": "stig-sorcerer.ekman.oceanbox.io", "type": "A", "value": "10.255.241.99" },
|
|
{ "name": "stig-plume.ekman.oceanbox.io", "type": "A", "value": "10.255.241.99" },
|
|
{ "name": "radovan-atlantis.dev.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
{ "name": "radovan-sorcerer.ekman.oceanbox.io", "type": "A", "value": "10.255.241.99" },
|
|
{ "name": "mrtz-atlantis.dev.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
{ "name": "mrtz-sorcerer.ekman.oceanbox.io", "type": "A", "value": "10.255.241.99" },
|
|
{ "name": "mrtz-plume.ekman.oceanbox.io", "type": "A", "value": "10.255.241.99" },
|
|
{ "name": "simkir-atlantis.dev.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
{ "name": "simkir-sorcerer.ekman.oceanbox.io", "type": "A", "value": "10.255.241.99" },
|
|
{ "name": "simkir-plume.ekman.oceanbox.io", "type": "A", "value": "10.255.241.99" },
|
|
{ "name": "ole-atlantis.dev.oceanbox.io", "type": "A", "value": "10.255.241.11" },
|
|
{ "name": "ole-sorcerer.ekman.oceanbox.io", "type": "A", "value": "10.255.241.99" }
|
|
]
|