blob: 8c2da74ce0fe871b182d24d2e5ebb96c3b6adf0f [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: {
giof8843412024-05-22 16:38:05 +040045 kind: "GitRepository"
46 address: "https://github.com/giolekva/pcloud.git"
47 branch: "main"
48 path: "charts/openproject"
gioc9161872024-04-21 10:46:35 +040049 }
50 volume: {
giof8843412024-05-22 16:38:05 +040051 path: "charts/volumes"
52 kind: "GitRepository"
53 address: "https://github.com/giolekva/pcloud.git"
54 branch: "main"
gioc9161872024-04-21 10:46:35 +040055 }
56 postgres: {
giof8843412024-05-22 16:38:05 +040057 kind: "GitRepository"
58 address: "https://github.com/giolekva/pcloud.git"
59 branch: "main"
60 path: "charts/postgresql"
gioc9161872024-04-21 10:46:35 +040061 }
62}
63
64volumes: {
65 openProject: {
66 name: "open-project"
67 accessMode: "ReadWriteMany"
68 size: "50Gi"
69 }
70}
71
72helm: {
73 "open-project": {
74 chart: charts.openProject
75 values: {
76 image: {
77 registry: images.openProject.registry
78 repository: images.openProject.imageName
79 tag: images.openProject.tag
80 imagePullPolicy: images.openProject.pullPolicy
81 }
82 nameOverride: "open-project"
83 ingress: enabled: false
84 memcached: bundled: true
85 s3: enabled: false
86 openproject: {
87 host: _domain
88 https: false
89 hsts: false
90 oidc: enabled: false // TODO(gio): enable
91 admin_user: {
92 password: "admin"
93 password_reset: false
94 name: "admin"
95 mail: "op-admin@\(global.domain)"
96 }
97 }
98 persistence: {
99 enabled: true
100 existingClaim: volumes.openProject.name
101 }
102 postgresql: {
103 bundled: false
104 connection: {
105 host: "postgres.\(release.namespace).svc.cluster.local"
106 port: 5432
107 }
108 auth: {
109 username: "openproject"
110 password: "openproject"
111 database: "openproject"
112 }
113 }
114 service: {
115 enabled: true
116 type: "ClusterIP"
117 }
118 initDb: {
119 image: {
120 registry: images.postgres.registry
121 repository: images.postgres.imageName
122 tag: images.postgres.tag
123 imagePullPolicy: images.postgres.pullPolicy
124 }
125 }
126 }
127 }
128 "open-project-volume": {
129 chart: charts.volume
130 values: volumes.openProject
131 }
132 postgres: {
133 chart: charts.postgres
134 values: {
135 fullnameOverride: "postgres"
136 image: {
137 registry: images.postgres.registry
138 repository: images.postgres.imageName
139 tag: images.postgres.tag
140 pullPolicy: images.postgres.pullPolicy
141 }
142 service: {
143 type: "ClusterIP"
144 port: 5432
145 }
146 primary: {
147 initdb: {
148 scripts: {
149 "init.sql": """
150 CREATE USER openproject WITH PASSWORD 'openproject';
151 CREATE DATABASE openproject WITH OWNER = openproject ENCODING = UTF8 LOCALE = 'C' TEMPLATE = template0;
152 """
153 }
154 }
155 persistence: {
156 size: "50Gi"
157 }
158 securityContext: {
159 enabled: true
160 fsGroup: 0
161 }
162 containerSecurityContext: {
163 enabled: true
164 runAsUser: 0
165 }
166 }
167 volumePermissions: {
168 securityContext: {
169 runAsUser: 0
170 }
171 }
172 }
173 }
174}