blob: 5c9677110c58d404a5173c7dcb985745a0a00d4f [file] [log] [blame]
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +04001input: {
gioff2a29a2024-05-01 17:06:42 +04002 network: #Network @name(Network)
gio44f621b2024-04-29 09:44:38 +04003 subdomain: string @name(Subdomain)
gioff2a29a2024-05-01 17:06:42 +04004 sshPort: int @name(SSH Port)
gio44f621b2024-04-29 09:44:38 +04005 adminKey: string @name(Admin SSH Public Key)
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +04006}
7
gio0eaf2712024-04-14 13:08:46 +04008_domain: "\(input.subdomain).\(input.network.domain)"
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +04009
Giorgi Lekveishvilief21c132024-01-17 18:57:58 +040010name: "Soft-Serve"
11namespace: "app-soft-serve"
12// TODO(gio): make public network an option
13readme: "softserve application will be installed on private network and be accessible to any user on https://\(_domain)"
14description: "A tasty, self-hostable Git server for the command line. 🍦"
15icon: "<svg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 48 48'><g fill='none' stroke='currentColor' stroke-linecap='round' stroke-width='4'><path stroke-linejoin='round' d='M15.34 22.5L21 37l3 6l3-6l5.66-14.5'/><path d='M19 32h10'/><path stroke-linejoin='round' d='M24 3c-6 0-8 6-8 6s-6 2-6 7s5 7 5 7s3.5-2 9-2s9 2 9 2s5-2 5-7s-6-7-6-7s-2-6-8-6Z'/></g></svg>"
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040016
17images: {
18 softserve: {
19 repository: "charmcli"
20 name: "soft-serve"
21 tag: "v0.7.1"
22 pullPolicy: "IfNotPresent"
23 }
24}
25
26charts: {
27 softserve: {
giof8843412024-05-22 16:38:05 +040028 kind: "GitRepository"
29 address: "https://github.com/giolekva/pcloud.git"
30 branch: "main"
31 path: "charts/soft-serve"
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040032 }
33}
34
gioff2a29a2024-05-01 17:06:42 +040035ingress: {
gio0eaf2712024-04-14 13:08:46 +040036 gerrit: { // TODO(gio): rename to soft-serve
gioff2a29a2024-05-01 17:06:42 +040037 auth: enabled: false
38 network: input.network
39 subdomain: input.subdomain
40 service: {
41 name: "soft-serve"
42 port: number: 80
43 }
44 }
45}
46
47portForward: [#PortForward & {
48 allocator: input.network.allocatePortAddr
49 sourcePort: input.sshPort
50 // TODO(gio): namespace part must be populated by app manager. Otherwise
51 // third-party app developer might point to a service from different namespace.
52 targetService: "\(release.namespace)/soft-serve"
53 targetPort: 22
54}]
55
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040056helm: {
57 softserve: {
58 chart: charts.softserve
giof9f0bee2024-06-11 20:10:05 +040059 info: "Installing SoftServe server"
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040060 values: {
gioff2a29a2024-05-01 17:06:42 +040061 serviceType: "ClusterIP"
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040062 adminKey: input.adminKey
gioff2a29a2024-05-01 17:06:42 +040063 sshPublicPort: input.sshPort
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040064 ingress: {
65 enabled: false
gioff2a29a2024-05-01 17:06:42 +040066 domain: _domain
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040067 }
68 image: {
69 repository: images.softserve.fullName
70 tag: images.softserve.tag
71 pullPolicy: images.softserve.pullPolicy
72 }
73 }
74 }
75}
gioff2a29a2024-05-01 17:06:42 +040076
77help: [{
78 title: "Access"
79 contents: """
80 SSH CLI: ssh \(_domain) -p \(input.sshPort) help
81 SSH TUI: ssh \(_domain) -p \(input.sshPort)
gio4e3e9982024-05-20 13:09:45 +040082 Create repository: ssh \(_domain) -p \(input.sshPort) repos create \\<REPO-NAME\\>
83 HTTP: git clone https://\(_domain)/\\<REPO-NAME\\>
84 SSH: git clone ssh://\(_domain):\(input.sshPort)/\\<REPO-NAME\\>
gioff2a29a2024-05-01 17:06:42 +040085
86 See following resource on what you can do with Soft-Serve TUI: [https://github.com/charmbracelet/soft-serve](https://github.com/charmbracelet/soft-serve)
87 """
88}]