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