blob: 76f604b987297dbe6689a8f0fd633dcb062fc1d1 [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
16ingress: {
17 gerrit: {
18 auth: enabled: false
19 network: input.network
20 subdomain: input.subdomain
21 service: {
22 name: "open-project"
23 port: number: _httpPort
24 }
25 }
26}
27
28images: {
29 openProject: {
30 repository: "openproject"
31 name: "openproject"
32 tag: "13.4.1"
33 pullPolicy: "Always"
34 }
35 postgres: {
36 repository: "library"
37 name: "postgres"
38 tag: "15.3"
39 pullPolicy: "IfNotPresent"
40 }
41}
42
43charts: {
44 openProject: {
45 chart: "charts/openproject"
46 sourceRef: {
47 kind: "GitRepository"
48 name: "pcloud"
49 namespace: global.id
50 }
51 }
52 volume: {
53 chart: "charts/volumes"
54 sourceRef: {
55 kind: "GitRepository"
56 name: "pcloud"
57 namespace: global.id
58 }
59 }
60 postgres: {
61 chart: "charts/postgresql"
62 sourceRef: {
63 kind: "GitRepository"
64 name: "pcloud"
65 namespace: global.id
66 }
67 }
68}
69
70volumes: {
71 openProject: {
72 name: "open-project"
73 accessMode: "ReadWriteMany"
74 size: "50Gi"
75 }
76}
77
78helm: {
79 "open-project": {
80 chart: charts.openProject
81 values: {
82 image: {
83 registry: images.openProject.registry
84 repository: images.openProject.imageName
85 tag: images.openProject.tag
86 imagePullPolicy: images.openProject.pullPolicy
87 }
88 nameOverride: "open-project"
89 ingress: enabled: false
90 memcached: bundled: true
91 s3: enabled: false
92 openproject: {
93 host: _domain
94 https: false
95 hsts: false
96 oidc: enabled: false // TODO(gio): enable
97 admin_user: {
98 password: "admin"
99 password_reset: false
100 name: "admin"
101 mail: "op-admin@\(global.domain)"
102 }
103 }
104 persistence: {
105 enabled: true
106 existingClaim: volumes.openProject.name
107 }
108 postgresql: {
109 bundled: false
110 connection: {
111 host: "postgres.\(release.namespace).svc.cluster.local"
112 port: 5432
113 }
114 auth: {
115 username: "openproject"
116 password: "openproject"
117 database: "openproject"
118 }
119 }
120 service: {
121 enabled: true
122 type: "ClusterIP"
123 }
124 initDb: {
125 image: {
126 registry: images.postgres.registry
127 repository: images.postgres.imageName
128 tag: images.postgres.tag
129 imagePullPolicy: images.postgres.pullPolicy
130 }
131 }
132 }
133 }
134 "open-project-volume": {
135 chart: charts.volume
136 values: volumes.openProject
137 }
138 postgres: {
139 chart: charts.postgres
140 values: {
141 fullnameOverride: "postgres"
142 image: {
143 registry: images.postgres.registry
144 repository: images.postgres.imageName
145 tag: images.postgres.tag
146 pullPolicy: images.postgres.pullPolicy
147 }
148 service: {
149 type: "ClusterIP"
150 port: 5432
151 }
152 primary: {
153 initdb: {
154 scripts: {
155 "init.sql": """
156 CREATE USER openproject WITH PASSWORD 'openproject';
157 CREATE DATABASE openproject WITH OWNER = openproject ENCODING = UTF8 LOCALE = 'C' TEMPLATE = template0;
158 """
159 }
160 }
161 persistence: {
162 size: "50Gi"
163 }
164 securityContext: {
165 enabled: true
166 fsGroup: 0
167 }
168 containerSecurityContext: {
169 enabled: true
170 runAsUser: 0
171 }
172 }
173 volumePermissions: {
174 securityContext: {
175 runAsUser: 0
176 }
177 }
178 }
179 }
180}