blob: b1d3795215a75c4ac03b10640e9f59e95cec30a6 [file] [log] [blame]
gioc9161872024-04-21 10:46:35 +04001input: {
gio9bd87ca2025-04-20 08:05:34 +04002 network: #Network @name(Network)
3 subdomain: string @name(Subdomain)
gioc9161872024-04-21 10:46:35 +04004}
5
6_domain: "\(input.subdomain).\(input.network.domain)"
gio9bd87ca2025-04-20 08:05:34 +04007url: "https://\(_domain)"
gioc9161872024-04-21 10:46:35 +04008
gio9bd87ca2025-04-20 08:05:34 +04009name: "OpenProject"
10namespace: "app-open-project"
11readme: "Open source project management software. Powerful classic, agile or hybrid project management in a secure environment."
gioc9161872024-04-21 10:46:35 +040012description: "Open source project management software. Powerful classic, agile or hybrid project management in a secure environment."
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='M19.35.37h-1.86a4.63 4.63 0 0 0-4.652 4.624v5.609H4.652A4.63 4.63 0 0 0 0 15.23v3.721c0 2.569 2.083 4.679 4.652 4.679h1.86c2.57 0 4.652-2.11 4.652-4.679v-3.72c0-.063 0-.158-.005-.158H8.373v3.88c0 1.026-.835 1.886-1.861 1.886h-1.86c-1.027 0-1.861-.864-1.861-1.886V15.23a1.84 1.84 0 0 1 1.86-1.833h14.697c2.57 0 4.652-2.11 4.652-4.679V4.997A4.63 4.63 0 0 0 19.35.37m1.861 8.345c0 1.026-.835 1.886-1.861 1.886h-3.721V4.997a1.84 1.84 0 0 1 1.86-1.833h1.86a1.84 1.84 0 0 1 1.862 1.833zm-8.373 9.706v.03c0 .746.629 1.344 1.396 1.344s1.395-.594 1.395-1.34v-3.384h-2.791z'/></svg>"
gioc9161872024-04-21 10:46:35 +040014
15_httpPort: 8080
gio7fbd4ad2024-08-27 10:06:39 +040016
17out: {
18 ingress: {
19 gerrit: {
20 auth: enabled: false
gio9bd87ca2025-04-20 08:05:34 +040021 network: input.network
gio7fbd4ad2024-08-27 10:06:39 +040022 subdomain: input.subdomain
23 service: {
24 name: "open-project"
25 port: number: _httpPort
26 }
gioc9161872024-04-21 10:46:35 +040027 }
28 }
gioc9161872024-04-21 10:46:35 +040029
gio7fbd4ad2024-08-27 10:06:39 +040030 images: {
31 openProject: {
32 repository: "openproject"
gio9bd87ca2025-04-20 08:05:34 +040033 name: "openproject"
34 tag: "13.4.1"
gio7fbd4ad2024-08-27 10:06:39 +040035 pullPolicy: "Always"
36 }
37 postgres: {
38 repository: "library"
gio9bd87ca2025-04-20 08:05:34 +040039 name: "postgres"
40 tag: "15.3"
gio7fbd4ad2024-08-27 10:06:39 +040041 pullPolicy: "IfNotPresent"
42 }
gioc9161872024-04-21 10:46:35 +040043 }
gioc9161872024-04-21 10:46:35 +040044
gio7fbd4ad2024-08-27 10:06:39 +040045 charts: {
46 openProject: {
gio9bd87ca2025-04-20 08:05:34 +040047 kind: "GitRepository"
gio7fbd4ad2024-08-27 10:06:39 +040048 address: "https://code.v1.dodo.cloud/helm-charts"
gio9bd87ca2025-04-20 08:05:34 +040049 branch: "main"
50 path: "charts/openproject"
gio7fbd4ad2024-08-27 10:06:39 +040051 }
52 volume: {
gio9bd87ca2025-04-20 08:05:34 +040053 path: "charts/volumes"
54 kind: "GitRepository"
gio7fbd4ad2024-08-27 10:06:39 +040055 address: "https://code.v1.dodo.cloud/helm-charts"
gio9bd87ca2025-04-20 08:05:34 +040056 branch: "main"
gio7fbd4ad2024-08-27 10:06:39 +040057 }
58 postgres: {
gio9bd87ca2025-04-20 08:05:34 +040059 kind: "GitRepository"
gio7fbd4ad2024-08-27 10:06:39 +040060 address: "https://code.v1.dodo.cloud/helm-charts"
gio9bd87ca2025-04-20 08:05:34 +040061 branch: "main"
62 path: "charts/postgresql"
gio7fbd4ad2024-08-27 10:06:39 +040063 }
gioc9161872024-04-21 10:46:35 +040064 }
gioc9161872024-04-21 10:46:35 +040065
giofc441e32024-11-11 16:26:14 +040066 volume: {
gio7fbd4ad2024-08-27 10:06:39 +040067 openProject: {
gio9bd87ca2025-04-20 08:05:34 +040068 name: "open-project"
gio7fbd4ad2024-08-27 10:06:39 +040069 accessMode: "ReadWriteMany"
gio9bd87ca2025-04-20 08:05:34 +040070 size: "50Gi"
gio7fbd4ad2024-08-27 10:06:39 +040071 }
gioc9161872024-04-21 10:46:35 +040072 }
gioc9161872024-04-21 10:46:35 +040073
gio7fbd4ad2024-08-27 10:06:39 +040074 helm: {
75 "open-project": {
76 chart: charts.openProject
77 values: {
78 image: {
gio9bd87ca2025-04-20 08:05:34 +040079 registry: images.openProject.registry
80 repository: images.openProject.imageName
81 tag: images.openProject.tag
gio7fbd4ad2024-08-27 10:06:39 +040082 imagePullPolicy: images.openProject.pullPolicy
83 }
84 nameOverride: "open-project"
gio9bd87ca2025-04-20 08:05:34 +040085 ingress: enabled: false
gio7fbd4ad2024-08-27 10:06:39 +040086 memcached: bundled: true
gio9bd87ca2025-04-20 08:05:34 +040087 s3: enabled: false
gio7fbd4ad2024-08-27 10:06:39 +040088 openproject: {
gio9bd87ca2025-04-20 08:05:34 +040089 host: _domain
gio7fbd4ad2024-08-27 10:06:39 +040090 https: false
gio9bd87ca2025-04-20 08:05:34 +040091 hsts: false
gio7fbd4ad2024-08-27 10:06:39 +040092 oidc: enabled: false // TODO(gio): enable
93 admin_user: {
gio9bd87ca2025-04-20 08:05:34 +040094 password: "admin"
gio7fbd4ad2024-08-27 10:06:39 +040095 password_reset: false
gio9bd87ca2025-04-20 08:05:34 +040096 name: "admin"
97 mail: "op-admin@\(networks.public.domain)"
gio7fbd4ad2024-08-27 10:06:39 +040098 }
99 }
100 persistence: {
gio9bd87ca2025-04-20 08:05:34 +0400101 enabled: true
giofc441e32024-11-11 16:26:14 +0400102 existingClaim: volume.openProject.name
gio7fbd4ad2024-08-27 10:06:39 +0400103 }
104 postgresql: {
105 bundled: false
106 connection: {
107 host: "postgres.\(release.namespace).svc.cluster.local"
108 port: 5432
109 }
110 auth: {
111 username: "openproject"
112 password: "openproject"
113 database: "openproject"
114 }
115 }
116 service: {
117 enabled: true
gio9bd87ca2025-04-20 08:05:34 +0400118 type: "ClusterIP"
gio7fbd4ad2024-08-27 10:06:39 +0400119 }
120 initDb: {
121 image: {
gio9bd87ca2025-04-20 08:05:34 +0400122 registry: images.postgres.registry
123 repository: images.postgres.imageName
124 tag: images.postgres.tag
gio7fbd4ad2024-08-27 10:06:39 +0400125 imagePullPolicy: images.postgres.pullPolicy
126 }
gioc9161872024-04-21 10:46:35 +0400127 }
128 }
gio7fbd4ad2024-08-27 10:06:39 +0400129 }
130 "open-project-volume": {
gio9bd87ca2025-04-20 08:05:34 +0400131 chart: charts.volume
giofc441e32024-11-11 16:26:14 +0400132 values: volume.openProject
gio7fbd4ad2024-08-27 10:06:39 +0400133 }
134 postgres: {
135 chart: charts.postgres
136 values: {
137 fullnameOverride: "postgres"
gioc9161872024-04-21 10:46:35 +0400138 image: {
gio9bd87ca2025-04-20 08:05:34 +0400139 registry: images.postgres.registry
gioc9161872024-04-21 10:46:35 +0400140 repository: images.postgres.imageName
gio9bd87ca2025-04-20 08:05:34 +0400141 tag: images.postgres.tag
gio7fbd4ad2024-08-27 10:06:39 +0400142 pullPolicy: images.postgres.pullPolicy
gioc9161872024-04-21 10:46:35 +0400143 }
gio7fbd4ad2024-08-27 10:06:39 +0400144 service: {
145 type: "ClusterIP"
146 port: 5432
147 }
148 primary: {
149 initdb: {
150 scripts: {
151 "init.sql": """
152 CREATE USER openproject WITH PASSWORD 'openproject';
153 CREATE DATABASE openproject WITH OWNER = openproject ENCODING = UTF8 LOCALE = 'C' TEMPLATE = template0;
154 """
155 }
156 }
157 persistence: {
158 size: "50Gi"
159 }
160 securityContext: {
161 enabled: true
162 fsGroup: 0
163 }
164 containerSecurityContext: {
gio9bd87ca2025-04-20 08:05:34 +0400165 enabled: true
gio7fbd4ad2024-08-27 10:06:39 +0400166 runAsUser: 0
gioc9161872024-04-21 10:46:35 +0400167 }
168 }
gio7fbd4ad2024-08-27 10:06:39 +0400169 volumePermissions: {
170 securityContext: {
171 runAsUser: 0
172 }
gioc9161872024-04-21 10:46:35 +0400173 }
174 }
175 }
176 }
177}