blob: 37103b747b451bdf0185d1bce5dcfb0bfb9df06a [file] [log] [blame]
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +04001input: {
gio44f621b2024-04-29 09:44:38 +04002 network: #Network @name(Network)
3 subdomain: string @name(Subdomain)
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +04004}
5
6_domain: "\(input.subdomain).\(input.network.domain)"
7
Giorgi Lekveishvilief21c132024-01-17 18:57:58 +04008name: "Matrix"
9namespace: "app-matrix"
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040010readme: "matrix application will be installed on \(input.network.name) network and be accessible to any user on https://\(_domain)"
Giorgi Lekveishvilief21c132024-01-17 18:57:58 +040011description: "An open network for secure, decentralised communication"
12icon: "<svg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 24 24'><path fill='currentColor' d='M.632.55v22.9H2.28V24H0V0h2.28v.55zm7.043 7.26v1.157h.033a3.312 3.312 0 0 1 1.117-1.024c.433-.245.936-.365 1.5-.365c.54 0 1.033.107 1.481.314c.448.208.785.582 1.02 1.108c.254-.374.6-.706 1.034-.992c.434-.287.95-.43 1.546-.43c.453 0 .872.056 1.26.167c.388.11.716.286.993.53c.276.245.489.559.646.951c.152.392.23.863.23 1.417v5.728h-2.349V11.52c0-.286-.01-.559-.032-.812a1.755 1.755 0 0 0-.18-.66a1.106 1.106 0 0 0-.438-.448c-.194-.11-.457-.166-.785-.166c-.332 0-.6.064-.803.189a1.38 1.38 0 0 0-.48.499a1.946 1.946 0 0 0-.231.696a5.56 5.56 0 0 0-.06.785v4.768h-2.35v-4.8c0-.254-.004-.503-.018-.752a2.074 2.074 0 0 0-.143-.688a1.052 1.052 0 0 0-.415-.503c-.194-.125-.476-.19-.854-.19c-.111 0-.259.024-.439.074c-.18.051-.36.143-.53.282a1.637 1.637 0 0 0-.439.595c-.12.259-.18.6-.18 1.02v4.966H5.46V7.81zm15.693 15.64V.55H21.72V0H24v24h-2.28v-.55z'/></svg>"
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040013
14images: {
15 matrix: {
16 repository: "matrixdotorg"
17 name: "synapse"
gioa1a65062024-04-13 09:20:44 +040018 tag: "v1.104.0"
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040019 pullPolicy: "IfNotPresent"
20 }
21 postgres: {
22 repository: "library"
23 name: "postgres"
24 tag: "15.3"
25 pullPolicy: "IfNotPresent"
26 }
27}
28
29charts: {
Giorgi Lekveishvili0c6b3242024-03-14 15:31:08 +040030 oauth2Client: {
giof8843412024-05-22 16:38:05 +040031 kind: "GitRepository"
32 address: "https://github.com/giolekva/pcloud.git"
33 branch: "main"
34 path: "charts/oauth2-client"
Giorgi Lekveishvili0c6b3242024-03-14 15:31:08 +040035 }
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040036 matrix: {
giof8843412024-05-22 16:38:05 +040037 kind: "GitRepository"
38 address: "https://github.com/giolekva/pcloud.git"
39 branch: "main"
40 path: "charts/matrix"
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040041 }
42 postgres: {
giof8843412024-05-22 16:38:05 +040043 kind: "GitRepository"
44 address: "https://github.com/giolekva/pcloud.git"
45 branch: "main"
46 path: "charts/postgresql"
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040047 }
48}
49
Giorgi Lekveishvili0c6b3242024-03-14 15:31:08 +040050_oauth2ClientSecretName: "oauth2-client"
51
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040052helm: {
Giorgi Lekveishvili0c6b3242024-03-14 15:31:08 +040053 "oauth2-client": {
54 chart: charts.oauth2Client
55 values: {
56 name: "oauth2-client"
57 secretName: _oauth2ClientSecretName
58 grantTypes: ["authorization_code"]
59 responseTypes: ["code"]
60 scope: "openid profile"
61 redirectUris: ["https://\(_domain)/_synapse/client/oidc/callback"]
62 hydraAdmin: "http://hydra-admin.\(global.namespacePrefix)core-auth.svc.cluster.local"
63 }
64 }
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040065 matrix: {
Giorgi Lekveishvilia09fad72024-03-21 15:24:35 +040066 dependsOn: [{
67 name: "postgres"
68 namespace: release.namespace
69 }]
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040070 chart: charts.matrix
71 values: {
72 domain: global.domain
73 subdomain: input.subdomain
74 oauth2: {
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040075 secretName: "oauth2-client"
Giorgi Lekveishvili0c6b3242024-03-14 15:31:08 +040076 issuer: "https://hydra.\(global.domain)"
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040077 }
78 postgresql: {
79 host: "postgres"
80 port: 5432
81 database: "matrix"
82 user: "matrix"
83 password: "matrix"
84 }
gioe72b54f2024-04-22 10:44:41 +040085 certificateIssuer: issuerPublic
86 ingressClassName: ingressPublic
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040087 configMerge: {
88 configName: "config-to-merge"
89 fileName: "to-merge.yaml"
90 }
91 image: {
92 repository: images.matrix.fullName
93 tag: images.matrix.tag
94 pullPolicy: images.matrix.pullPolicy
95 }
96 }
97 }
98 postgres: {
99 chart: charts.postgres
100 values: {
101 fullnameOverride: "postgres"
102 image: {
103 registry: images.postgres.registry
104 repository: images.postgres.imageName
105 tag: images.postgres.tag
106 pullPolicy: images.postgres.pullPolicy
107 }
108 service: {
109 type: "ClusterIP"
110 port: 5432
111 }
112 primary: {
113 initdb: {
114 scripts: {
115 "init.sql": """
116 CREATE USER matrix WITH PASSWORD 'matrix';
117 CREATE DATABASE matrix WITH OWNER = matrix ENCODING = UTF8 LOCALE = 'C' TEMPLATE = template0;
118 """
119 }
120 }
121 persistence: {
122 size: "10Gi"
123 }
124 securityContext: {
125 enabled: true
126 fsGroup: 0
127 }
128 containerSecurityContext: {
129 enabled: true
130 runAsUser: 0
131 }
132 }
133 volumePermissions: {
134 securityContext: {
135 runAsUser: 0
136 }
137 }
138 }
139 }
140}
gio09a3e5b2024-04-26 14:11:06 +0400141
142help: [{
143 title: "Client Applications"
144 contents: "You can connect to \(_domain) Matrix server with any of the official clients. We recommend using Element. You can use official Element Web application to chat within the browser. Platform native client applications can be downloaded from: [https://element.io/download](https://element.io/download). Follow **Custom Homeserver** section to login with your dodo: account."
145}, {
146 title: "Custom Homeserver"
147 contents: "Click **Sign in** button, edit **Homeserver** address and enter **\(input.network.domain)**, click **Continue**. Choose **Continue with PCloud** option and login to your dodo: account."
148}]