blob: 4955f811e5bfdb9b57d4ed5db0d971d6645f911b [file] [log] [blame]
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +04001input: {
Giorgi Lekveishvili7c427602024-01-04 00:13:55 +04002 network: #Network
3 subdomain: string
Giorgi Lekveishvilia09fad72024-03-21 15:24:35 +04004 auth: #Auth
Giorgi Lekveishvili7c427602024-01-04 00:13:55 +04005}
6
Giorgi Lekveishvili7c427602024-01-04 00:13:55 +04007_domain: "\(input.subdomain).\(input.network.domain)"
8
Giorgi Lekveishvilief21c132024-01-17 18:57:58 +04009name: "rpuppy"
10namespace: "app-rpuppy"
Giorgi Lekveishvili7c427602024-01-04 00:13:55 +040011readme: "rpuppy application will be installed on \(input.network.name) network and be accessible to any user on https://\(_domain)"
Giorgi Lekveishvilief21c132024-01-17 18:57:58 +040012description: "Delights users with randomly generate puppy pictures. Can be configured to be reachable only from private network or publicly."
13icon: "<svg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 256 256'><path fill='currentColor' d='M100 140a8 8 0 1 1-8-8a8 8 0 0 1 8 8Zm64 8a8 8 0 1 0-8-8a8 8 0 0 0 8 8Zm64.94-9.11a12.12 12.12 0 0 1-5 1.11a11.83 11.83 0 0 1-9.35-4.62l-2.59-3.29V184a36 36 0 0 1-36 36H80a36 36 0 0 1-36-36v-51.91l-2.53 3.27A11.88 11.88 0 0 1 32.1 140a12.08 12.08 0 0 1-5-1.11a11.82 11.82 0 0 1-6.84-13.14l16.42-88a12 12 0 0 1 14.7-9.43h.16L104.58 44h46.84l53.08-15.6h.16a12 12 0 0 1 14.7 9.43l16.42 88a11.81 11.81 0 0 1-6.84 13.06ZM97.25 50.18L49.34 36.1a4.18 4.18 0 0 0-.92-.1a4 4 0 0 0-3.92 3.26l-16.42 88a4 4 0 0 0 7.08 3.22ZM204 121.75L150 52h-44l-54 69.75V184a28 28 0 0 0 28 28h44v-18.34l-14.83-14.83a4 4 0 0 1 5.66-5.66L128 186.34l13.17-13.17a4 4 0 0 1 5.66 5.66L132 193.66V212h44a28 28 0 0 0 28-28Zm23.92 5.48l-16.42-88a4 4 0 0 0-4.84-3.16l-47.91 14.11l62.11 80.28a4 4 0 0 0 7.06-3.23Z'/></svg>"
Giorgi Lekveishvili7c427602024-01-04 00:13:55 +040014
15images: {
16 rpuppy: {
17 repository: "giolekva"
18 name: "rpuppy"
19 tag: "latest"
20 pullPolicy: "Always"
21 }
Giorgi Lekveishvili0ba5e402024-03-20 15:56:30 +040022 authProxy: {
23 repository: "giolekva"
24 name: "auth-proxy"
25 tag: "latest"
26 pullPolicy: "Always"
27 }
Giorgi Lekveishvili7c427602024-01-04 00:13:55 +040028}
29
30charts: {
31 rpuppy: {
Giorgi Lekveishvili9b52ab92024-01-05 13:12:48 +040032 chart: "charts/rpuppy"
33 sourceRef: {
Giorgi Lekveishvili7c427602024-01-04 00:13:55 +040034 kind: "GitRepository"
Giorgi Lekveishvili9b52ab92024-01-05 13:12:48 +040035 name: "pcloud"
36 namespace: global.id
Giorgi Lekveishvili7c427602024-01-04 00:13:55 +040037 }
Giorgi Lekveishvili7c427602024-01-04 00:13:55 +040038 }
Giorgi Lekveishvili0ba5e402024-03-20 15:56:30 +040039 ingress: {
40 chart: "charts/ingress"
41 sourceRef: {
42 kind: "GitRepository"
43 name: "pcloud"
44 namespace: global.id
45 }
46 }
47 authProxy: {
48 chart: "charts/auth-proxy"
49 sourceRef: {
50 kind: "GitRepository"
51 name: "pcloud"
52 namespace: global.id
53 }
54 }
Giorgi Lekveishvili7c427602024-01-04 00:13:55 +040055}
56
Giorgi Lekveishvili0ba5e402024-03-20 15:56:30 +040057_rpuppyServiceName: "rpuppy"
58_authProxyServiceName: "auth-proxy"
59_httpPortName: "http"
60
Giorgi Lekveishvili7c427602024-01-04 00:13:55 +040061helm: {
62 rpuppy: {
63 chart: charts.rpuppy
64 values: {
Giorgi Lekveishvili7c427602024-01-04 00:13:55 +040065 image: {
66 repository: images.rpuppy.fullName
67 tag: images.rpuppy.tag
68 pullPolicy: images.rpuppy.pullPolicy
69 }
Giorgi Lekveishvili0ba5e402024-03-20 15:56:30 +040070 portName: _httpPortName
71 }
72 }
Giorgi Lekveishvilia09fad72024-03-21 15:24:35 +040073 if input.auth.enabled {
Giorgi Lekveishvili0ba5e402024-03-20 15:56:30 +040074 "auth-proxy": {
75 chart: charts.authProxy
76 values: {
77 image: {
78 repository: images.authProxy.fullName
79 tag: images.authProxy.tag
80 pullPolicy: images.authProxy.pullPolicy
81 }
82 upstream: "\(_rpuppyServiceName).\(release.namespace).svc.cluster.local"
83 whoAmIAddr: "https://accounts.\(global.domain)/sessions/whoami"
84 loginAddr: "https://accounts-ui.\(global.domain)/login"
Giorgi Lekveishvilia09fad72024-03-21 15:24:35 +040085 membershipAddr: "http://memberships.\(global.id)-core-auth-memberships.svc.cluster.local/api/user"
86 groups: input.auth.groups
Giorgi Lekveishvili0ba5e402024-03-20 15:56:30 +040087 portName: _httpPortName
88 }
89 }
90 }
91 ingress: {
92 chart: charts.ingress
93 values: {
94 domain: _domain
95 ingressClassName: input.network.ingressClass
96 certificateIssuer: input.network.certificateIssuer
97 service: {
Giorgi Lekveishvilia09fad72024-03-21 15:24:35 +040098 if input.auth.enabled {
Giorgi Lekveishvili0ba5e402024-03-20 15:56:30 +040099 name: _authProxyServiceName
100 }
Giorgi Lekveishvilia09fad72024-03-21 15:24:35 +0400101 if !input.auth.enabled {
Giorgi Lekveishvili0ba5e402024-03-20 15:56:30 +0400102 name: _rpuppyServiceName
103 }
104 port: name: _httpPortName
105 }
Giorgi Lekveishvili7c427602024-01-04 00:13:55 +0400106 }
107 }
108}