blob: 659809493028df9de66d4887abf58cc4cd4249da [file] [log] [blame]
gioc9161872024-04-21 10:46:35 +04001input: {
gio44f621b2024-04-29 09:44:38 +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)"
gio09a3e5b2024-04-26 14:11:06 +04007url: "https://\(_domain)"
gioc9161872024-04-21 10:46:35 +04008
9name: "OpenProject"
10namespace: "app-open-project"
11readme: "Open source project management software. Powerful classic, agile or hybrid project management in a secure environment."
12description: "Open source project management software. Powerful classic, agile or hybrid project management in a secure environment."
13icon: "<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>"
14
15_httpPort: 8080
gio7fbd4ad2024-08-27 10:06:39 +040016
17out: {
18 ingress: {
19 gerrit: {
20 auth: enabled: false
21 network: input.network
22 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"
33 name: "openproject"
34 tag: "13.4.1"
35 pullPolicy: "Always"
36 }
37 postgres: {
38 repository: "library"
39 name: "postgres"
40 tag: "15.3"
41 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: {
47 kind: "GitRepository"
48 address: "https://code.v1.dodo.cloud/helm-charts"
49 branch: "main"
50 path: "charts/openproject"
51 }
52 volume: {
53 path: "charts/volumes"
54 kind: "GitRepository"
55 address: "https://code.v1.dodo.cloud/helm-charts"
56 branch: "main"
57 }
58 postgres: {
59 kind: "GitRepository"
60 address: "https://code.v1.dodo.cloud/helm-charts"
61 branch: "main"
62 path: "charts/postgresql"
63 }
gioc9161872024-04-21 10:46:35 +040064 }
gioc9161872024-04-21 10:46:35 +040065
gio7fbd4ad2024-08-27 10:06:39 +040066 volumes: {
67 openProject: {
68 name: "open-project"
69 accessMode: "ReadWriteMany"
70 size: "50Gi"
71 }
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: {
79 registry: images.openProject.registry
80 repository: images.openProject.imageName
81 tag: images.openProject.tag
82 imagePullPolicy: images.openProject.pullPolicy
83 }
84 nameOverride: "open-project"
85 ingress: enabled: false
86 memcached: bundled: true
87 s3: enabled: false
88 openproject: {
89 host: _domain
90 https: false
91 hsts: false
92 oidc: enabled: false // TODO(gio): enable
93 admin_user: {
94 password: "admin"
95 password_reset: false
96 name: "admin"
97 mail: "op-admin@\(networks.public.domain)"
98 }
99 }
100 persistence: {
101 enabled: true
102 existingClaim: volumes.openProject.name
103 }
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
118 type: "ClusterIP"
119 }
120 initDb: {
121 image: {
122 registry: images.postgres.registry
123 repository: images.postgres.imageName
124 tag: images.postgres.tag
125 imagePullPolicy: images.postgres.pullPolicy
126 }
gioc9161872024-04-21 10:46:35 +0400127 }
128 }
gio7fbd4ad2024-08-27 10:06:39 +0400129 }
130 "open-project-volume": {
131 chart: charts.volume
132 values: volumes.openProject
133 }
134 postgres: {
135 chart: charts.postgres
136 values: {
137 fullnameOverride: "postgres"
gioc9161872024-04-21 10:46:35 +0400138 image: {
139 registry: images.postgres.registry
140 repository: images.postgres.imageName
141 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: {
165 enabled: true
166 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}