blob: 7434afdb272e113d1c667d24807febe46cb71180 [file] [log] [blame]
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +04001input: {
gio9bd87ca2025-04-20 08:05:34 +04002 network: #Network @name(Network)
3 subdomain: string @name(Subdomain)
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +04004}
5
6_domain: "\(input.subdomain).\(input.network.domain)"
gio9bd87ca2025-04-20 08:05:34 +04007url: "https://\(_domain)"
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +04008
gio9bd87ca2025-04-20 08:05:34 +04009name: "Penpot"
10namespace: "app-penpot"
11readme: "penpot 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: "Penpot is the first Open Source design and prototyping platform meant for cross-domain teams. Non dependent on operating systems, Penpot is web based and works with open standards (SVG). Penpot invites designers all over the world to fall in love with open source while getting developers excited about the design process in return."
gio9bd87ca2025-04-20 08:05:34 +040013icon: "<svg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 24 24'><path fill='currentColor' d='M7.654 0L5.13 3.554v2.01L2.934 6.608l-.02-.009v13.109l8.563 4.045L12 24l.523-.247l8.563-4.045V6.6l-.017.008l-2.196-1.045V3.555l-.077-.108L16.349.001l-2.524 3.554v.004L11.989.973l-1.823 2.566l-.065-.091zm.447 2.065l.976 1.374H6.232l.964-1.358zm8.694 0l.976 1.374h-2.845l.965-1.358zm-4.36.971l.976 1.375h-2.845l.965-1.359zM5.962 4.132h1.35v4.544l-1.35-.638Zm2.042 0h1.343v5.506l-1.343-.635zm6.652 0h1.35V9l-1.35.637zm2.042 0h1.343v3.905l-1.343.634zm-6.402.972h1.35v5.62l-1.35-.638zm2.042 0h1.343v4.993l-1.343.634zm6.534 1.493l1.188.486l-1.188.561zM5.13 6.6v1.047l-1.187-.561ZM3.96 8.251l7.517 3.55v10.795l-7.516-3.55zm16.08 0v10.794l-7.517 3.55V11.802z'/></svg>"
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040014
gio7fbd4ad2024-08-27 10:06:39 +040015out: {
16 images: {
17 postgres: {
18 repository: "library"
gio9bd87ca2025-04-20 08:05:34 +040019 name: "postgres"
20 tag: "15.3"
gio7fbd4ad2024-08-27 10:06:39 +040021 pullPolicy: "IfNotPresent"
22 }
23 backend: {
24 repository: "penpotapp"
gio9bd87ca2025-04-20 08:05:34 +040025 name: "backend"
26 tag: "1.16.0-beta"
gio7fbd4ad2024-08-27 10:06:39 +040027 pullPolicy: "IfNotPresent"
28 }
29 frontend: {
30 repository: "penpotapp"
gio9bd87ca2025-04-20 08:05:34 +040031 name: "frontend"
32 tag: "1.16.0-beta"
gio7fbd4ad2024-08-27 10:06:39 +040033 pullPolicy: "IfNotPresent"
34 }
35 exporter: {
36 repository: "penpotapp"
gio9bd87ca2025-04-20 08:05:34 +040037 name: "exporter"
38 tag: "1.16.0-beta"
gio7fbd4ad2024-08-27 10:06:39 +040039 pullPolicy: "IfNotPresent"
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040040 }
41 }
gio7fbd4ad2024-08-27 10:06:39 +040042
43 charts: {
44 postgres: {
gio9bd87ca2025-04-20 08:05:34 +040045 kind: "GitRepository"
gio7fbd4ad2024-08-27 10:06:39 +040046 address: "https://code.v1.dodo.cloud/helm-charts"
gio9bd87ca2025-04-20 08:05:34 +040047 branch: "main"
48 path: "charts/postgresql"
gio7fbd4ad2024-08-27 10:06:39 +040049 }
50 oauth2Client: {
gio9bd87ca2025-04-20 08:05:34 +040051 kind: "GitRepository"
gio7fbd4ad2024-08-27 10:06:39 +040052 address: "https://code.v1.dodo.cloud/helm-charts"
gio9bd87ca2025-04-20 08:05:34 +040053 branch: "main"
54 path: "charts/oauth2-client"
gio7fbd4ad2024-08-27 10:06:39 +040055 }
56 penpot: {
gio9bd87ca2025-04-20 08:05:34 +040057 kind: "GitRepository"
gio7fbd4ad2024-08-27 10:06:39 +040058 address: "https://code.v1.dodo.cloud/helm-charts"
gio9bd87ca2025-04-20 08:05:34 +040059 branch: "main"
60 path: "charts/penpot"
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040061 }
62 }
gio7fbd4ad2024-08-27 10:06:39 +040063
64 _oauth2SecretName: "oauth2-credentials"
65
66 helm: {
67 "oauth2-client": {
68 chart: charts.oauth2Client
69 values: {
gio9bd87ca2025-04-20 08:05:34 +040070 name: "\(release.namespace)-penpot"
gio7fbd4ad2024-08-27 10:06:39 +040071 secretName: _oauth2SecretName
72 grantTypes: ["authorization_code"]
73 responseTypes: ["code"]
74 scope: "openid profile email"
75 redirectUris: ["https://\(_domain)/api/auth/oauth/oidc/callback"]
gio9bd87ca2025-04-20 08:05:34 +040076 hydraAdmin: "http://hydra-admin.\(global.namespacePrefix)core-auth.svc.cluster.local"
gio7fbd4ad2024-08-27 10:06:39 +040077 tokenEndpointAuthMethod: "client_secret_post"
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040078 }
gio7fbd4ad2024-08-27 10:06:39 +040079 }
80 postgres: {
81 chart: charts.postgres
82 values: {
83 fullnameOverride: "postgres"
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040084 image: {
gio9bd87ca2025-04-20 08:05:34 +040085 registry: images.postgres.registry
gio7fbd4ad2024-08-27 10:06:39 +040086 repository: images.postgres.imageName
gio9bd87ca2025-04-20 08:05:34 +040087 tag: images.postgres.tag
gio7fbd4ad2024-08-27 10:06:39 +040088 pullPolicy: images.postgres.pullPolicy
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040089 }
gio7fbd4ad2024-08-27 10:06:39 +040090 auth: {
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040091 username: "penpot"
92 password: "penpot"
gio7fbd4ad2024-08-27 10:06:39 +040093 database: "penpot"
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040094 }
gio7fbd4ad2024-08-27 10:06:39 +040095 }
96 }
97 penpot: {
98 chart: charts.penpot
99 values: {
100 "global": {
101 postgresqlEnabled: false
gio9bd87ca2025-04-20 08:05:34 +0400102 redisEnabled: true // TODO(gio): provide redis from outside
gio7fbd4ad2024-08-27 10:06:39 +0400103 }
104 fullnameOverride: "penpot"
105 backend: {
106 image: {
gio9bd87ca2025-04-20 08:05:34 +0400107 repository: images.backend.fullName
108 tag: images.backend.tag
gio7fbd4ad2024-08-27 10:06:39 +0400109 imagePullPolicy: images.backend.pullPolicy
110 }
111 }
112 frontend: {
113 image: {
gio9bd87ca2025-04-20 08:05:34 +0400114 repository: images.frontend.fullName
115 tag: images.frontend.tag
gio7fbd4ad2024-08-27 10:06:39 +0400116 imagePullPolicy: images.frontend.pullPolicy
117 }
118 ingress: {
gio9bd87ca2025-04-20 08:05:34 +0400119 enabled: true
gio7fbd4ad2024-08-27 10:06:39 +0400120 className: input.network.ingressClass
121 if input.network.certificateIssuer != "" {
122 annotations: {
123 "acme.cert-manager.io/http01-edit-in-place": "true"
gio9bd87ca2025-04-20 08:05:34 +0400124 "cert-manager.io/cluster-issuer": input.network.certificateIssuer
gio7fbd4ad2024-08-27 10:06:39 +0400125 }
126 }
127 hosts: [_domain]
128 tls: [{
129 hosts: [_domain]
130 secretName: "cert-\(_domain)"
131 }]
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +0400132 }
133 }
gio7fbd4ad2024-08-27 10:06:39 +0400134 persistence: enabled: true
135 config: {
136 publicURI: _domain
gio9bd87ca2025-04-20 08:05:34 +0400137 flags: "enable-login-with-oidc enable-registration enable-insecure-register disable-demo-users disable-demo-warning" // TODO(gio): remove enable-insecure-register?
gio7fbd4ad2024-08-27 10:06:39 +0400138 postgresql: {
gio9bd87ca2025-04-20 08:05:34 +0400139 host: "postgres.\(release.namespace).svc.cluster.local"
gio7fbd4ad2024-08-27 10:06:39 +0400140 database: "penpot"
141 username: "penpot"
142 password: "penpot"
143 }
144 redis: host: "penpot-redis-headless.\(release.namespace).svc.cluster.local"
145 providers: {
146 oidc: {
gio9bd87ca2025-04-20 08:05:34 +0400147 enabled: true
148 baseURI: "https://hydra.\(networks.public.domain)"
149 clientID: ""
150 clientSecret: ""
151 authURI: ""
152 tokenURI: ""
153 userURI: ""
154 roles: ""
gio7fbd4ad2024-08-27 10:06:39 +0400155 rolesAttribute: ""
gio9bd87ca2025-04-20 08:05:34 +0400156 scopes: ""
157 nameAttribute: "name"
gio7fbd4ad2024-08-27 10:06:39 +0400158 emailAttribute: "email"
159 }
160 existingSecret: _oauth2SecretName
161 secretKeys: {
gio9bd87ca2025-04-20 08:05:34 +0400162 oidcClientIDKey: "client_id"
gio7fbd4ad2024-08-27 10:06:39 +0400163 oidcClientSecretKey: "client_secret"
164 }
165 }
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +0400166 }
gio7fbd4ad2024-08-27 10:06:39 +0400167 exporter: {
168 image: {
gio9bd87ca2025-04-20 08:05:34 +0400169 repository: images.exporter.fullName
170 tag: images.exporter.tag
gio7fbd4ad2024-08-27 10:06:39 +0400171 imagePullPolicy: images.exporter.pullPolicy
172 }
173 }
174 redis: image: tag: "7.0.8-debian-11-r16"
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +0400175 }
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +0400176 }
177 }
178}