blob: ba2627d1055fa75349238e148d4cfae47c8919e2 [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
giof9f0bee2024-06-11 20:10:05 +040055 info: "Creating OAuth2 client"
Giorgi Lekveishvili0c6b3242024-03-14 15:31:08 +040056 values: {
57 name: "oauth2-client"
58 secretName: _oauth2ClientSecretName
59 grantTypes: ["authorization_code"]
60 responseTypes: ["code"]
61 scope: "openid profile"
62 redirectUris: ["https://\(_domain)/_synapse/client/oidc/callback"]
63 hydraAdmin: "http://hydra-admin.\(global.namespacePrefix)core-auth.svc.cluster.local"
64 }
65 }
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040066 matrix: {
Giorgi Lekveishvilia09fad72024-03-21 15:24:35 +040067 dependsOn: [{
68 name: "postgres"
69 namespace: release.namespace
70 }]
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040071 chart: charts.matrix
giof9f0bee2024-06-11 20:10:05 +040072 info: "Installing Synapse server"
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040073 values: {
74 domain: global.domain
75 subdomain: input.subdomain
76 oauth2: {
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040077 secretName: "oauth2-client"
Giorgi Lekveishvili0c6b3242024-03-14 15:31:08 +040078 issuer: "https://hydra.\(global.domain)"
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040079 }
80 postgresql: {
81 host: "postgres"
82 port: 5432
83 database: "matrix"
84 user: "matrix"
85 password: "matrix"
86 }
gioe72b54f2024-04-22 10:44:41 +040087 certificateIssuer: issuerPublic
88 ingressClassName: ingressPublic
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +040089 configMerge: {
90 configName: "config-to-merge"
91 fileName: "to-merge.yaml"
92 }
93 image: {
94 repository: images.matrix.fullName
95 tag: images.matrix.tag
96 pullPolicy: images.matrix.pullPolicy
97 }
98 }
99 }
100 postgres: {
101 chart: charts.postgres
giof9f0bee2024-06-11 20:10:05 +0400102 info: "Installing PostgreSQL"
Giorgi Lekveishvilie009a5d2024-01-05 14:10:11 +0400103 values: {
104 fullnameOverride: "postgres"
105 image: {
106 registry: images.postgres.registry
107 repository: images.postgres.imageName
108 tag: images.postgres.tag
109 pullPolicy: images.postgres.pullPolicy
110 }
111 service: {
112 type: "ClusterIP"
113 port: 5432
114 }
115 primary: {
116 initdb: {
117 scripts: {
118 "init.sql": """
119 CREATE USER matrix WITH PASSWORD 'matrix';
120 CREATE DATABASE matrix WITH OWNER = matrix ENCODING = UTF8 LOCALE = 'C' TEMPLATE = template0;
121 """
122 }
123 }
124 persistence: {
125 size: "10Gi"
126 }
127 securityContext: {
128 enabled: true
129 fsGroup: 0
130 }
131 containerSecurityContext: {
132 enabled: true
133 runAsUser: 0
134 }
135 }
136 volumePermissions: {
137 securityContext: {
138 runAsUser: 0
139 }
140 }
141 }
142 }
143}
gio09a3e5b2024-04-26 14:11:06 +0400144
145help: [{
146 title: "Client Applications"
147 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."
148}, {
149 title: "Custom Homeserver"
150 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."
151}]