| Giorgi Lekveishvili | e009a5d | 2024-01-05 14:10:11 +0400 | [diff] [blame] | 1 | input: { |
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 2 | network: #Network @name(Network) |
| 3 | subdomain: string @name(Subdomain) |
| 4 | sshPort: int @name(SSH Port) @role(port) |
| 5 | adminKey: string @name(Admin SSH Public Key) |
| Giorgi Lekveishvili | e009a5d | 2024-01-05 14:10:11 +0400 | [diff] [blame] | 6 | } |
| 7 | |
| gio | 0eaf271 | 2024-04-14 13:08:46 +0400 | [diff] [blame] | 8 | _domain: "\(input.subdomain).\(input.network.domain)" |
| Giorgi Lekveishvili | e009a5d | 2024-01-05 14:10:11 +0400 | [diff] [blame] | 9 | |
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 10 | name: "Soft-Serve" |
| Giorgi Lekveishvili | ef21c13 | 2024-01-17 18:57:58 +0400 | [diff] [blame] | 11 | namespace: "app-soft-serve" |
| 12 | // TODO(gio): make public network an option |
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 13 | readme: "softserve application will be installed on private network and be accessible to any user on https://\(_domain)" |
| Giorgi Lekveishvili | ef21c13 | 2024-01-17 18:57:58 +0400 | [diff] [blame] | 14 | description: "A tasty, self-hostable Git server for the command line. 🍦" |
| gio | 8c942d2 | 2024-07-17 13:43:02 +0400 | [diff] [blame] | 15 | icon: """ |
| gio | d2d2df0 | 2025-05-03 19:15:17 +0400 | [diff] [blame] | 16 | <svg width='50px' height='50px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28.17637795 39.68590646'> |
| 17 | <defs> |
| 18 | <style> |
| 19 | .cls-1 { |
| 20 | fill: currentColor; |
| 21 | } |
| 22 | |
| 23 | .cls-2 { |
| 24 | fill: none; |
| 25 | stroke: #3a3a3a; |
| 26 | stroke-miterlimit: 10; |
| 27 | stroke-width: .98133445px; |
| 28 | } |
| 29 | </style> |
| 30 | </defs> |
| 31 | <rect class='cls-2' x='-15.72872096' y='-9.97395671' width='59.63381987' height='59.63381987'/> |
| 32 | <g> |
| 33 | <path class='cls-1' d='m14.08828766,39.68590646c-.24966985,0-.47802402-.14131246-.58973401-.36472824l-2.87761777-5.75512747-5.45346067-13.9623024c-.13243358-.33946568.03513141-.72156194.37420873-.85419039.33927469-.13262845.72157548.03473602.85381169.3742017l5.42918447,13.90783,2.26321282,4.52199865,2.28827849-4.57647105,5.40471091-13.8533576c.13243358-.33788677.51374753-.5060407.85381169-.3742017.33907732.13262845.50664231.51472471.37420873.85419039l-5.42898711,13.90783-2.90209134,5.80959987c-.11151262.22341579-.33986679.36472824-.58953664.36472824Z'/> |
| 34 | <path class='cls-1' d='m18.88431728,29.13483942h-9.59205924c-.36414299,0-.65920736-.2952562-.65920736-.65919498s.29506437-.65919498.65920736-.65919498h9.59205924c.36414299,0,.65920736.2952562.65920736.65919498s-.29506437.65919498-.65920736.65919498Z'/> |
| 35 | <path class='cls-1' d='m5.45484225,20.50214821c-.08269697,0-.16559131-.0157891-.24414357-.0473673-.21276214-.08447169-5.21069868-2.14337052-5.21069868-7.32614307,0-4.61041762,4.65846449-6.74115686,5.90878744-7.230619.52262907-1.25207574,2.82373645-5.89801884,8.17950022-5.89801884s7.65687115,4.6459431,8.17950022,5.89801884c1.25032295.48946214,5.90859007,2.62099084,5.90859007,7.230619,0,5.18277255-4.99773918,7.24167137-5.21050131,7.32614307-.18572279.07499823-.39670862.05999859-.57078673-.0386833-.03236827-.01894692-3.28912895-1.83232522-8.30680224-1.83232522s-8.27443398,1.8133783-8.30680224,1.83232522c-.10065741.05684077-.21335424.0860506-.32664317.0860506ZM14.08828766,1.31838997c-5.19806716,0-6.97555863,5.08882739-7.0485846,5.30592754-.06592074.1949954-.22045947.3497286-.41585327.41525337-.05309185.01736801-5.30543507,1.83311468-5.30543507,6.08906697,0,3.70728102,3.15531381,5.5175015,4.1153092,5.98170108.96295591-.47840977,4.11215132-1.8449565,8.65456373-1.8449565s7.69160783,1.36654673,8.65456373,1.8449565c.95979803-.46419958,4.11511183-2.27442006,4.11511183-5.98170108,0-4.25595229-5.25234322-6.07169896-5.3052377-6.08906697-.1953938-.06552477-.34993253-.22025797-.41585327-.41525337-.07302597-.21710014-1.85051744-5.30592754-7.0485846-5.30592754Zm-7.67364739,5.09593249h.00809207-.00809207Z'/> |
| 36 | </g> |
| 37 | </svg>""" |
| gio | 7fbd4ad | 2024-08-27 10:06:39 +0400 | [diff] [blame] | 38 | |
| 39 | out: { |
| 40 | images: { |
| 41 | softserve: { |
| 42 | repository: "charmcli" |
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 43 | name: "soft-serve" |
| 44 | tag: "v0.7.1" |
| gio | 7fbd4ad | 2024-08-27 10:06:39 +0400 | [diff] [blame] | 45 | pullPolicy: "IfNotPresent" |
| 46 | } |
| 47 | } |
| 48 | |
| 49 | charts: { |
| 50 | softserve: { |
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 51 | kind: "GitRepository" |
| gio | 7fbd4ad | 2024-08-27 10:06:39 +0400 | [diff] [blame] | 52 | address: "https://code.v1.dodo.cloud/helm-charts" |
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 53 | branch: "main" |
| 54 | path: "charts/soft-serve" |
| gio | 7fbd4ad | 2024-08-27 10:06:39 +0400 | [diff] [blame] | 55 | } |
| 56 | } |
| 57 | |
| 58 | ingress: { |
| 59 | softserve: { |
| 60 | auth: enabled: false |
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 61 | network: input.network |
| gio | 7fbd4ad | 2024-08-27 10:06:39 +0400 | [diff] [blame] | 62 | subdomain: input.subdomain |
| 63 | service: { |
| 64 | name: "soft-serve" |
| gio | 24312cc | 2025-04-20 15:53:15 +0400 | [diff] [blame] | 65 | port: _webPort |
| Giorgi Lekveishvili | e009a5d | 2024-01-05 14:10:11 +0400 | [diff] [blame] | 66 | } |
| gio | 7fbd4ad | 2024-08-27 10:06:39 +0400 | [diff] [blame] | 67 | } |
| 68 | } |
| 69 | |
| gio | 802311e | 2024-11-04 08:37:34 +0400 | [diff] [blame] | 70 | openPort: [{ |
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 71 | name: "ssh" |
| gio | 802311e | 2024-11-04 08:37:34 +0400 | [diff] [blame] | 72 | network: input.network |
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 73 | port: input.sshPort |
| gio | 802311e | 2024-11-04 08:37:34 +0400 | [diff] [blame] | 74 | service: { |
| 75 | name: "soft-serve" |
| gio | 24312cc | 2025-04-20 15:53:15 +0400 | [diff] [blame] | 76 | port: _sshPort |
| gio | 802311e | 2024-11-04 08:37:34 +0400 | [diff] [blame] | 77 | } |
| 78 | }] |
| 79 | |
| gio | fc441e3 | 2024-11-11 16:26:14 +0400 | [diff] [blame] | 80 | volume: data: size: "1Gi" |
| gio | 7fbd4ad | 2024-08-27 10:06:39 +0400 | [diff] [blame] | 81 | |
| 82 | helm: { |
| 83 | softserve: { |
| 84 | chart: charts.softserve |
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 85 | info: "Installing SoftServe server" |
| gio | 7fbd4ad | 2024-08-27 10:06:39 +0400 | [diff] [blame] | 86 | values: { |
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 87 | serviceType: "ClusterIP" |
| 88 | adminKey: input.adminKey |
| 89 | host: _domain |
| gio | 24312cc | 2025-04-20 15:53:15 +0400 | [diff] [blame] | 90 | httpPort: _webPort |
| 91 | sshPort: _sshPort |
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 92 | sshPublicPort: input.sshPort |
| gio | fc441e3 | 2024-11-11 16:26:14 +0400 | [diff] [blame] | 93 | persistentVolumeClaimName: volume.data.name |
| gio | 7fbd4ad | 2024-08-27 10:06:39 +0400 | [diff] [blame] | 94 | image: { |
| 95 | repository: images.softserve.fullName |
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 96 | tag: images.softserve.tag |
| gio | 7fbd4ad | 2024-08-27 10:06:39 +0400 | [diff] [blame] | 97 | pullPolicy: images.softserve.pullPolicy |
| 98 | } |
| Giorgi Lekveishvili | e009a5d | 2024-01-05 14:10:11 +0400 | [diff] [blame] | 99 | } |
| 100 | } |
| 101 | } |
| 102 | } |
| gio | ff2a29a | 2024-05-01 17:06:42 +0400 | [diff] [blame] | 103 | |
| 104 | help: [{ |
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 105 | title: "Access" |
| gio | ff2a29a | 2024-05-01 17:06:42 +0400 | [diff] [blame] | 106 | contents: """ |
| 107 | SSH CLI: ssh \(_domain) -p \(input.sshPort) help |
| 108 | SSH TUI: ssh \(_domain) -p \(input.sshPort) |
| gio | 4e3e998 | 2024-05-20 13:09:45 +0400 | [diff] [blame] | 109 | Create repository: ssh \(_domain) -p \(input.sshPort) repos create \\<REPO-NAME\\> |
| 110 | HTTP: git clone https://\(_domain)/\\<REPO-NAME\\> |
| 111 | SSH: git clone ssh://\(_domain):\(input.sshPort)/\\<REPO-NAME\\> |
| gio | ff2a29a | 2024-05-01 17:06:42 +0400 | [diff] [blame] | 112 | |
| 113 | See following resource on what you can do with Soft-Serve TUI: [https://github.com/charmbracelet/soft-serve](https://github.com/charmbracelet/soft-serve) |
| 114 | """ |
| 115 | }] |
| gio | 24312cc | 2025-04-20 15:53:15 +0400 | [diff] [blame] | 116 | |
| 117 | _webPort: 8080 |
| 118 | _sshPort: 22 |