| gio | 36b23b3 | 2024-08-25 12:20:54 +0400 | [diff] [blame] | 1 | input: { |
| 2 | name: string @name(Hostname) |
| 3 | username: string @name(Username) |
| 4 | authKey: string @name(Auth Key) @role(VPNAuthKey) @usernameField(username) |
| 5 | cpuCores: int | *1 @name(CPU Cores) |
| 6 | memory: string | *"2Gi" @name(Memory) |
| 7 | } |
| 8 | |
| 9 | name: "Virutal Machine" |
| 10 | namespace: "app-vm" |
| 11 | readme: "Virtual Machine" |
| 12 | description: "Virtual Machine" |
| 13 | icon: """ |
| gio | 7fbd4ad | 2024-08-27 10:06:39 +0400 | [diff] [blame] | 14 | <svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="0 0 2048 2048"><path fill="currentColor" d="M1280 384H640V256h640zm0 1024H640v-128h640zm0 256H640v-128h640zM1408 0q27 0 50 10t40 27t28 41t10 50v1792H384V128q0-27 10-50t27-40t41-28t50-10zm0 128H512v1664h896z"/></svg>""" |
| gio | 36b23b3 | 2024-08-25 12:20:54 +0400 | [diff] [blame] | 15 | |
| gio | 7fbd4ad | 2024-08-27 10:06:39 +0400 | [diff] [blame] | 16 | out: { |
| 17 | vm: { |
| 18 | "\(input.name)": { |
| 19 | username: input.username |
| 20 | domain: global.domain |
| gio | 36b23b3 | 2024-08-25 12:20:54 +0400 | [diff] [blame] | 21 | cpuCores: input.cpuCores |
| 22 | memory: input.memory |
| gio | 7fbd4ad | 2024-08-27 10:06:39 +0400 | [diff] [blame] | 23 | vpn: { |
| 24 | enabled: true |
| 25 | loginServer: "https://headscale.\(global.domain)" |
| 26 | authKey: input.authKey |
| gio | 36b23b3 | 2024-08-25 12:20:54 +0400 | [diff] [blame] | 27 | } |
| gio | 36b23b3 | 2024-08-25 12:20:54 +0400 | [diff] [blame] | 28 | } |
| 29 | } |
| 30 | } |