blob: 60be1a2017813f3f3e5baee3101477eab9b3a31c [file] [log] [blame]
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +04001input: {
2 subdomain: string
Giorgi Lekveishvili9d5e3f52024-03-13 15:02:50 +04003 ipSubnet: string
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +04004}
5
Giorgi Lekveishvili03d6f4b2024-03-08 13:05:21 +04006name: "headscale"
Giorgi Lekveishvili08af67a2024-01-18 08:53:05 +04007namespace: "app-headscale"
8
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +04009images: {
10 headscale: {
11 repository: "headscale"
12 name: "headscale"
13 tag: "0.22.3"
14 pullPolicy: "IfNotPresent"
15 }
16 api: {
17 repository: "giolekva"
18 name: "headscale-api"
19 tag: "latest"
20 pullPolicy: "Always"
21 }
22}
23
24charts: {
Giorgi Lekveishvili0c6b3242024-03-14 15:31:08 +040025 oauth2Client: {
26 chart: "charts/oauth2-client"
27 sourceRef: {
28 kind: "GitRepository"
29 name: "pcloud"
30 namespace: global.id
31 }
32 }
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040033 headscale: {
34 chart: "charts/headscale"
35 sourceRef: {
36 kind: "GitRepository"
37 name: "pcloud"
38 namespace: global.id
39 }
40 }
41}
42
Giorgi Lekveishvili0c6b3242024-03-14 15:31:08 +040043_domain: "\(input.subdomain).\(global.domain)"
44_oauth2ClientSecretName: "oauth2-client"
45
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040046helm: {
Giorgi Lekveishvili0c6b3242024-03-14 15:31:08 +040047 "oauth2-client": {
48 chart: charts.oauth2Client
49 // TODO(gio): remove once hydra maester is installed as part of dodo itself
Giorgi Lekveishvilia09fad72024-03-21 15:24:35 +040050 dependsOn: [{
Giorgi Lekveishvili0c6b3242024-03-14 15:31:08 +040051 name: "auth"
52 namespace: "\(global.namespacePrefix)core-auth"
53 }]
54 values: {
55 name: "oauth2-client"
56 secretName: _oauth2ClientSecretName
57 grantTypes: ["authorization_code"]
58 responseTypes: ["code"]
59 scope: "openid profile email"
60 redirectUris: ["https://\(_domain)/oidc/callback"]
61 hydraAdmin: "http://hydra-admin.\(global.namespacePrefix)core-auth.svc.cluster.local"
62 }
63 }
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040064 headscale: {
65 chart: charts.headscale
Giorgi Lekveishvilia09fad72024-03-21 15:24:35 +040066 dependsOn: [{
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040067 name: "auth"
68 namespace: "\(global.namespacePrefix)core-auth"
69 }]
70 values: {
71 image: {
72 repository: images.headscale.fullName
73 tag: images.headscale.tag
74 pullPolicy: images.headscale.pullPolicy
75 }
76 storage: size: "5Gi"
gioe72b54f2024-04-22 10:44:41 +040077 ingressClassName: ingressPublic
78 certificateIssuer: issuerPublic
Giorgi Lekveishvili0c6b3242024-03-14 15:31:08 +040079 domain: _domain
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040080 publicBaseDomain: global.domain
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040081 ipAddressPool: "\(global.id)-headscale"
Giorgi Lekveishvili0c6b3242024-03-14 15:31:08 +040082 oauth2: {
83 secretName: _oauth2ClientSecretName
84 issuer: "https://hydra.\(global.domain)"
85 }
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040086 api: {
87 port: 8585
Giorgi Lekveishvili9d5e3f52024-03-13 15:02:50 +040088 ipSubnet: input.ipSubnet
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040089 image: {
90 repository: images.api.fullName
91 tag: images.api.tag
92 pullPolicy: images.api.pullPolicy
93 }
94 }
95 ui: enabled: false
96 }
97 }
98}
gio09a3e5b2024-04-26 14:11:06 +040099
100help: [{
101 title: "Install"
102 contents: """
103 You can install Tailscale client on any of your personal devices running: macOS, iOS, Windows, Lonux or Android. Installer packages can be found at: [https://tailscale.com/download](https://tailscale.com/download). After installing the client application you need to configure it to use https://\(_domain) as a login URL, so you can login to the VPN network with your dodo: account. See "Configure Login URL" section below for more details.
104 """
105 children: [{
106 title: "Widnows with MSI"
107 contents: "[https://tailscale.com/kb/1189/install-windows-msi](https://tailscale.com/kb/1189/install-windows-msi)"
108 }]
109}, {
110 title: "Configure Login URL"
111 contents: "After installing the client application you need to configure it to use https://\(_domain) as a login URL, so you can login to the VPN network with your dodo: account"
112 children: [{
113 title: "macOS"
114 contents: "[https://headscale.v1.dodo.cloud/apple](https://headscale.v1.dodo.cloud/apple)"
115 }, {
116 title: "iOS"
117 contents: "[https://headscale.v1.dodo.cloud/apple](https://headscale.v1.dodo.cloud/apple)"
118 }, {
119 title: "Windows"
120 contents: "[https://tailscale.com/kb/1318/windows-mdm](https://tailscale.com/kb/1318/windows-mdm)"
121 }, {
122 title: "Linux"
123 contents: "tailscale up --login-server https://\(_domain)"
124 }, {
125 title: "Android"
126 contents: """
127 After opening the app, the kebab menu icon (three dots) on the top bar on the right must be repeatedly opened and closed until the Change server option appears in the menu. This is where you can enter your headscale URL: https://\(_domain)
128
129 A screen recording of this process can be seen in the tailscale-android PR which implemented this functionality: [https://github.com/tailscale/tailscale-android/pull/55](https://github.com/tailscale/tailscale-android/pull/55)
130
131 After saving and restarting the app, selecting the regular Sign in option should open up the dodo: authentication page.
132 """
133 }, {
134 title: "Command Line"
135 contents: "tailscale up --login-server https://\(_domain)"
136 }]
137}]