| gio | c916187 | 2024-04-21 10:46:35 +0400 | [diff] [blame] | 1 | input: { |
| gio | 44f621b | 2024-04-29 09:44:38 +0400 | [diff] [blame] | 2 | network: #Network @name(Network) |
| 3 | subdomain: string @name(Subdomain) |
| gio | c916187 | 2024-04-21 10:46:35 +0400 | [diff] [blame] | 4 | } |
| 5 | |
| 6 | _domain: "\(input.subdomain).\(input.network.domain)" |
| gio | 09a3e5b | 2024-04-26 14:11:06 +0400 | [diff] [blame] | 7 | url: "https://\(_domain)" |
| gio | c916187 | 2024-04-21 10:46:35 +0400 | [diff] [blame] | 8 | |
| 9 | name: "OpenProject" |
| 10 | namespace: "app-open-project" |
| 11 | readme: "Open source project management software. Powerful classic, agile or hybrid project management in a secure environment." |
| 12 | description: "Open source project management software. Powerful classic, agile or hybrid project management in a secure environment." |
| 13 | icon: "<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 |
| 16 | ingress: { |
| 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 | |
| 28 | images: { |
| 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 | |
| 43 | charts: { |
| 44 | openProject: { |
| gio | f884341 | 2024-05-22 16:38:05 +0400 | [diff] [blame^] | 45 | kind: "GitRepository" |
| 46 | address: "https://github.com/giolekva/pcloud.git" |
| 47 | branch: "main" |
| 48 | path: "charts/openproject" |
| gio | c916187 | 2024-04-21 10:46:35 +0400 | [diff] [blame] | 49 | } |
| 50 | volume: { |
| gio | f884341 | 2024-05-22 16:38:05 +0400 | [diff] [blame^] | 51 | path: "charts/volumes" |
| 52 | kind: "GitRepository" |
| 53 | address: "https://github.com/giolekva/pcloud.git" |
| 54 | branch: "main" |
| gio | c916187 | 2024-04-21 10:46:35 +0400 | [diff] [blame] | 55 | } |
| 56 | postgres: { |
| gio | f884341 | 2024-05-22 16:38:05 +0400 | [diff] [blame^] | 57 | kind: "GitRepository" |
| 58 | address: "https://github.com/giolekva/pcloud.git" |
| 59 | branch: "main" |
| 60 | path: "charts/postgresql" |
| gio | c916187 | 2024-04-21 10:46:35 +0400 | [diff] [blame] | 61 | } |
| 62 | } |
| 63 | |
| 64 | volumes: { |
| 65 | openProject: { |
| 66 | name: "open-project" |
| 67 | accessMode: "ReadWriteMany" |
| 68 | size: "50Gi" |
| 69 | } |
| 70 | } |
| 71 | |
| 72 | helm: { |
| 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 | } |