add matrix deployment
This commit is contained in:
parent
804adb989e
commit
563f85bc6b
16
apps/dendrite/kustomization.yaml
Normal file
16
apps/dendrite/kustomization.yaml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- namespace.yaml
|
||||||
|
- postgres.yaml
|
||||||
|
- postgres-user.secret.yaml
|
||||||
|
- ingress.yaml
|
||||||
|
|
||||||
|
namespace: dendrite
|
||||||
|
|
||||||
|
helmCharts:
|
||||||
|
- name: dendrite
|
||||||
|
releaseName: dendrite
|
||||||
|
version: 0.13.5
|
||||||
|
valuesFile: values.yaml
|
||||||
|
repo: https://matrix-org.github.io/dendrite/
|
4
apps/dendrite/namespace.yaml
Normal file
4
apps/dendrite/namespace.yaml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: placeholder
|
25
apps/dendrite/postgres.yaml
Normal file
25
apps/dendrite/postgres.yaml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
apiVersion: postgresql.cnpg.io/v1
|
||||||
|
kind: Cluster
|
||||||
|
metadata:
|
||||||
|
name: dendrite-postgres
|
||||||
|
spec:
|
||||||
|
instances: 1
|
||||||
|
imageName: ghcr.io/cloudnative-pg/postgresql:16.4
|
||||||
|
bootstrap:
|
||||||
|
initdb:
|
||||||
|
owner: dendrite
|
||||||
|
database: dendrite
|
||||||
|
secret:
|
||||||
|
name: postgres-password
|
||||||
|
|
||||||
|
# Persistent storage configuration
|
||||||
|
storage:
|
||||||
|
size: 2Gi
|
||||||
|
pvcTemplate:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 2Gi
|
||||||
|
storageClassName: nfs-client
|
||||||
|
volumeMode: Filesystem
|
287
apps/dendrite/values.yaml
Normal file
287
apps/dendrite/values.yaml
Normal file
@ -0,0 +1,287 @@
|
|||||||
|
|
||||||
|
# signing key to use
|
||||||
|
signing_key:
|
||||||
|
# -- Create a new signing key, if not exists
|
||||||
|
create: true
|
||||||
|
|
||||||
|
persistence:
|
||||||
|
jetstream:
|
||||||
|
# -- PVC Storage Request for the jetstream volume
|
||||||
|
capacity: "1Gi"
|
||||||
|
# -- The storage class to use for volume claims.
|
||||||
|
storageClass: "nfs-client"
|
||||||
|
media:
|
||||||
|
# -- PVC Storage Request for the media volume
|
||||||
|
capacity: "1Gi"
|
||||||
|
# -- The storage class to use for volume claims.
|
||||||
|
storageClass: "nfs-client"
|
||||||
|
search:
|
||||||
|
# -- PVC Storage Request for the search volume
|
||||||
|
capacity: "1Gi"
|
||||||
|
# -- The storage class to use for volume claims.
|
||||||
|
storageClass: "nfs-client"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
dendrite_config:
|
||||||
|
version: 2
|
||||||
|
global:
|
||||||
|
# -- **REQUIRED** Servername for this Dendrite deployment.
|
||||||
|
server_name: "dendrite.kluster.moll.re"
|
||||||
|
|
||||||
|
# -- The server name to delegate server-server communications to, with optional port
|
||||||
|
# e.g. localhost:443
|
||||||
|
well_known_server_name: ""
|
||||||
|
|
||||||
|
# -- The server name to delegate client-server communications to, with optional port
|
||||||
|
# e.g. localhost:443
|
||||||
|
well_known_client_name: ""
|
||||||
|
|
||||||
|
# -- Lists of domains that the server will trust as identity servers to verify third
|
||||||
|
# party identifiers such as phone numbers and email addresses.
|
||||||
|
trusted_third_party_id_servers:
|
||||||
|
- matrix.org
|
||||||
|
- vector.im
|
||||||
|
|
||||||
|
# -- The paths and expiry timestamps (as a UNIX timestamp in millisecond precision)
|
||||||
|
# to old signing keys that were formerly in use on this domain name. These
|
||||||
|
# keys will not be used for federation request or event signing, but will be
|
||||||
|
# provided to any other homeserver that asks when trying to verify old events.
|
||||||
|
old_private_keys:
|
||||||
|
# If the old private key file is available:
|
||||||
|
# - private_key: old_matrix_key.pem
|
||||||
|
# expired_at: 1601024554498
|
||||||
|
# If only the public key (in base64 format) and key ID are known:
|
||||||
|
# - public_key: mn59Kxfdq9VziYHSBzI7+EDPDcBS2Xl7jeUdiiQcOnM=
|
||||||
|
# key_id: ed25519:mykeyid
|
||||||
|
# expired_at: 1601024554498
|
||||||
|
|
||||||
|
# -- Disable federation. Dendrite will not be able to make any outbound HTTP requests
|
||||||
|
# to other servers and the federation API will not be exposed.
|
||||||
|
disable_federation: false
|
||||||
|
|
||||||
|
key_validity_period: 168h0m0s
|
||||||
|
|
||||||
|
database:
|
||||||
|
# -- The connection string for connections to Postgres.
|
||||||
|
# This will be set automatically if using the Postgres dependency
|
||||||
|
connection_string: "postgresql://dendrite:supersecretpassword!@dendrite-postgres-rw/dendrite"
|
||||||
|
# -- Default database maximum open connections
|
||||||
|
max_open_conns: 90
|
||||||
|
# -- Default database maximum idle connections
|
||||||
|
max_idle_conns: 5
|
||||||
|
# -- Default database maximum lifetime
|
||||||
|
conn_max_lifetime: -1
|
||||||
|
|
||||||
|
jetstream:
|
||||||
|
# -- Persistent directory to store JetStream streams in.
|
||||||
|
storage_path: "/data/jetstream"
|
||||||
|
# -- NATS JetStream server addresses if not using internal NATS.
|
||||||
|
addresses: []
|
||||||
|
# -- The prefix for JetStream streams
|
||||||
|
topic_prefix: "Dendrite"
|
||||||
|
# -- Keep all data in memory. (**NOTE**: This is overriden in Helm to `false`)
|
||||||
|
in_memory: false
|
||||||
|
# -- Disables TLS validation. This should **NOT** be used in production.
|
||||||
|
disable_tls_validation: true
|
||||||
|
|
||||||
|
cache:
|
||||||
|
# -- The estimated maximum size for the global cache in bytes, or in terabytes,
|
||||||
|
# gigabytes, megabytes or kilobytes when the appropriate 'tb', 'gb', 'mb' or
|
||||||
|
# 'kb' suffix is specified. Note that this is not a hard limit, nor is it a
|
||||||
|
# memory limit for the entire process. A cache that is too small may ultimately
|
||||||
|
# provide little or no benefit.
|
||||||
|
max_size_estimated: 1gb
|
||||||
|
# -- The maximum amount of time that a cache entry can live for in memory before
|
||||||
|
# it will be evicted and/or refreshed from the database. Lower values result in
|
||||||
|
# easier admission of new cache entries but may also increase database load in
|
||||||
|
# comparison to higher values, so adjust conservatively. Higher values may make
|
||||||
|
# it harder for new items to make it into the cache, e.g. if new rooms suddenly
|
||||||
|
# become popular.
|
||||||
|
max_age: 1h
|
||||||
|
|
||||||
|
report_stats:
|
||||||
|
# -- Configures phone-home statistics reporting. These statistics contain the server
|
||||||
|
# name, number of active users and some information on your deployment config.
|
||||||
|
# We use this information to understand how Dendrite is being used in the wild.
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
presence:
|
||||||
|
# -- Controls whether we receive presence events from other servers
|
||||||
|
enable_inbound: false
|
||||||
|
# -- Controls whether we send presence events for our local users to other servers.
|
||||||
|
# (_May increase CPU/memory usage_)
|
||||||
|
enable_outbound: false
|
||||||
|
|
||||||
|
server_notices:
|
||||||
|
# -- Server notices allows server admins to send messages to all users on the server.
|
||||||
|
enabled: false
|
||||||
|
# -- The local part for the user sending server notices.
|
||||||
|
local_part: "_server"
|
||||||
|
# -- The display name for the user sending server notices.
|
||||||
|
display_name: "Server Alerts"
|
||||||
|
# -- The avatar URL (as a mxc:// URL) name for the user sending server notices.
|
||||||
|
avatar_url: ""
|
||||||
|
# The room name to be used when sending server notices. This room name will
|
||||||
|
# appear in user clients.
|
||||||
|
room_name: "Server Alerts"
|
||||||
|
|
||||||
|
# prometheus metrics
|
||||||
|
metrics:
|
||||||
|
# -- Whether or not Prometheus metrics are enabled.
|
||||||
|
enabled: false
|
||||||
|
# HTTP basic authentication to protect access to monitoring.
|
||||||
|
basic_auth:
|
||||||
|
# -- HTTP basic authentication username
|
||||||
|
user: "metrics"
|
||||||
|
# -- HTTP basic authentication password
|
||||||
|
password: metrics
|
||||||
|
|
||||||
|
app_service_api:
|
||||||
|
# -- Disable the validation of TLS certificates of appservices. This is
|
||||||
|
# not recommended in production since it may allow appservice traffic
|
||||||
|
# to be sent to an insecure endpoint.
|
||||||
|
disable_tls_validation: false
|
||||||
|
# -- Appservice config files to load on startup. (**NOTE**: This is overriden by Helm, if a folder `./appservices/` exists)
|
||||||
|
config_files: []
|
||||||
|
|
||||||
|
client_api:
|
||||||
|
# -- Prevents new users from being able to register on this homeserver, except when
|
||||||
|
# using the registration shared secret below.
|
||||||
|
registration_disabled: true
|
||||||
|
|
||||||
|
# Prevents new guest accounts from being created. Guest registration is also
|
||||||
|
# disabled implicitly by setting 'registration_disabled' above.
|
||||||
|
guests_disabled: true
|
||||||
|
|
||||||
|
# -- If set, allows registration by anyone who knows the shared secret, regardless of
|
||||||
|
# whether registration is otherwise disabled.
|
||||||
|
registration_shared_secret: "supersecretpassword"
|
||||||
|
|
||||||
|
|
||||||
|
# TURN server information that this homeserver should send to clients.
|
||||||
|
turn:
|
||||||
|
# -- Duration for how long users should be considered valid ([see time.ParseDuration](https://pkg.go.dev/time#ParseDuration) for more)
|
||||||
|
turn_user_lifetime: "24h"
|
||||||
|
turn_uris: []
|
||||||
|
turn_shared_secret: ""
|
||||||
|
# -- The TURN username
|
||||||
|
turn_username: ""
|
||||||
|
# -- The TURN password
|
||||||
|
turn_password: ""
|
||||||
|
|
||||||
|
rate_limiting:
|
||||||
|
# -- Enable rate limiting
|
||||||
|
enabled: true
|
||||||
|
# -- After how many requests a rate limit should be activated
|
||||||
|
threshold: 20
|
||||||
|
# -- Cooloff time in milliseconds
|
||||||
|
cooloff_ms: 500
|
||||||
|
# -- Users which should be exempt from rate limiting
|
||||||
|
exempt_user_ids:
|
||||||
|
|
||||||
|
federation_api:
|
||||||
|
# -- Federation failure threshold. How many consecutive failures that we should
|
||||||
|
# tolerate when sending federation requests to a specific server. The backoff
|
||||||
|
# is 2**x seconds, so 1 = 2 seconds, 2 = 4 seconds, 3 = 8 seconds, etc.
|
||||||
|
# The default value is 16 if not specified, which is circa 18 hours.
|
||||||
|
send_max_retries: 16
|
||||||
|
# -- Disable TLS validation. This should **NOT** be used in production.
|
||||||
|
disable_tls_validation: false
|
||||||
|
prefer_direct_fetch: false
|
||||||
|
# -- Prevents Dendrite from keeping HTTP connections
|
||||||
|
# open for reuse for future requests. Connections will be closed quicker
|
||||||
|
# but we may spend more time on TLS handshakes instead.
|
||||||
|
disable_http_keepalives: false
|
||||||
|
# -- Perspective keyservers, to use as a backup when direct key fetch
|
||||||
|
# requests don't succeed.
|
||||||
|
# @default -- See value.yaml
|
||||||
|
key_perspectives:
|
||||||
|
- server_name: matrix.org
|
||||||
|
keys:
|
||||||
|
- key_id: ed25519:auto
|
||||||
|
public_key: Noi6WqcDj0QmPxCNQqgezwTlBKrfqehY1u2FyWP9uYw
|
||||||
|
- key_id: ed25519:a_RXGa
|
||||||
|
public_key: l8Hft5qXKn1vfHrg3p4+W8gELQVo8N13JkluMfmn2sQ
|
||||||
|
|
||||||
|
media_api:
|
||||||
|
# -- The path to store media files (e.g. avatars) in
|
||||||
|
base_path: "/data/media_store"
|
||||||
|
# -- The max file size for uploaded media files
|
||||||
|
max_file_size_bytes: 10485760
|
||||||
|
# Whether to dynamically generate thumbnails if needed.
|
||||||
|
dynamic_thumbnails: false
|
||||||
|
# -- The maximum number of simultaneous thumbnail generators to run.
|
||||||
|
max_thumbnail_generators: 10
|
||||||
|
# -- A list of thumbnail sizes to be generated for media content.
|
||||||
|
# @default -- See value.yaml
|
||||||
|
thumbnail_sizes:
|
||||||
|
- width: 32
|
||||||
|
height: 32
|
||||||
|
method: crop
|
||||||
|
- width: 96
|
||||||
|
height: 96
|
||||||
|
method: crop
|
||||||
|
- width: 640
|
||||||
|
height: 480
|
||||||
|
method: scale
|
||||||
|
|
||||||
|
sync_api:
|
||||||
|
# -- This option controls which HTTP header to inspect to find the real remote IP
|
||||||
|
# address of the client. This is likely required if Dendrite is running behind
|
||||||
|
# a reverse proxy server.
|
||||||
|
real_ip_header: X-Real-IP
|
||||||
|
# -- Configuration for the full-text search engine.
|
||||||
|
search:
|
||||||
|
# -- Whether fulltext search is enabled.
|
||||||
|
enabled: true
|
||||||
|
# -- The path to store the search index in.
|
||||||
|
index_path: "/data/search"
|
||||||
|
# -- The language most likely to be used on the server - used when indexing, to
|
||||||
|
# ensure the returned results match expectations. A full list of possible languages
|
||||||
|
# can be found [here](https://github.com/matrix-org/dendrite/blob/76db8e90defdfb9e61f6caea8a312c5d60bcc005/internal/fulltext/bleve.go#L25-L46)
|
||||||
|
language: "en"
|
||||||
|
|
||||||
|
user_api:
|
||||||
|
# -- bcrypt cost to use when hashing passwords.
|
||||||
|
# (ranges from 4-31; 4 being least secure, 31 being most secure; _NOTE: Using a too high value can cause clients to timeout and uses more CPU._)
|
||||||
|
bcrypt_cost: 10
|
||||||
|
# -- OpenID Token lifetime in milliseconds.
|
||||||
|
openid_token_lifetime_ms: 3600000
|
||||||
|
# - Disable TLS validation when hitting push gateways. This should **NOT** be used in production.
|
||||||
|
push_gateway_disable_tls_validation: false
|
||||||
|
# -- Rooms to join users to after registration
|
||||||
|
auto_join_rooms: []
|
||||||
|
|
||||||
|
# -- Default logging configuration
|
||||||
|
logging:
|
||||||
|
- type: std
|
||||||
|
level: info
|
||||||
|
|
||||||
|
postgresql:
|
||||||
|
# -- Enable and configure postgres as the database for dendrite.
|
||||||
|
# @default -- See value.yaml
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
ingress:
|
||||||
|
# -- Create an ingress for the deployment
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
service:
|
||||||
|
type: ClusterIP
|
||||||
|
port: 8008
|
||||||
|
|
||||||
|
prometheus:
|
||||||
|
servicemonitor:
|
||||||
|
# -- Enable ServiceMonitor for Prometheus-Operator for scrape metric-endpoint
|
||||||
|
enabled: false
|
||||||
|
# -- Extra Labels on ServiceMonitor for selector of Prometheus Instance
|
||||||
|
labels: {}
|
||||||
|
rules:
|
||||||
|
# -- Enable PrometheusRules for Prometheus-Operator for setup alerting
|
||||||
|
enabled: false
|
||||||
|
# -- Extra Labels on PrometheusRules for selector of Prometheus Instance
|
||||||
|
labels: {}
|
||||||
|
# -- additional alertrules (no default alertrules are provided)
|
||||||
|
additionalRules: []
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user