Type: object

Spec defines the desired state of ElementDeployment

Type: object Default: {}

Type: object

This is the user interface used by desktops to access Matrix rooms.

Type: object Default: {}

Type: string

Element web additional configuration.

Type: object Default: {}

You can override Kubernetes configuration for each component of Element Web

Type: object Default: {}

Settings dedicated to k8s

Type: object Default: {}

The annotations to add to every workloads and ingresses deployed

Each additional property must conform to the following schema

Type: string

Defines the annotations to add

Type: object

Settings dedicated to k8s ingresses

Type: object Default: {}

Defines the annotations to add

Each additional property must conform to the following schema

Type: string

Type: string

Fully qualified domain name of the ingress

Type: string

An optional IngressClass name to be used for this ingress. Optional if you are managing ingress / loadbalancer externally.

Type: object Default: {}

Type: enum (of string)

Default service type

Must be one of:

  • "ClusterIP"
  • "NodePort"
  • "LoadBalancer"



Must not be:

Type: object

The following properties are required:

  • certificate
  • secretName

The following properties are required:

  • certmanager

Type: object
Must match regular expression: certmanager

Must not be:

Type: object

The following properties are required:

  • certmanager
  • secretName

The following properties are required:

  • certificate

Type: object
Must match regular expression: certfile

Must not be:

Type: object

The following properties are required:

  • certificate
  • certmanager

The following properties are required:

  • secretName

Type: object
Must match regular expression: existing

Must not be:

Type: object

The following properties are required:

  • certificate
  • certmanager
  • secretName

Type: object
Must match regular expression: external

Type: object

Certificate file

Type: string Default: "elementWebCertificate"

ElementWeb Certificate

Type: string Default: "elementWebPrivateKey"

ElementWeb Private Key

Type: object

The cert-manager properties, if enabled

Type: string

The name of cert-manager ClusterIssuer to use

Type: enum (of string)

The TLS mode of this component ingress. Use external if TLS is managed externaly to the cluster, certmanager if you want to use cert manager to issue certificate automatically, or certfile if you want to upload certificate files to kubernetes tls secrets manually.

Must be one of:

  • "certmanager"
  • "external"
  • "certfile"
  • "existing"

Type: string

The name of a secret in the cluster that contains TLS certificates

Must match regular expression: ^[a-z0-9]([\-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([\-a-z0-9]*[a-z0-9])?)*$

Must be at most 253 characters long

Type: object Default: {}

Settings dedicated to k8s workloads

Type: object Default: {}

The annotations to add to the workload

Each additional property must conform to the following schema

Type: string

Defines the annotations to add

Type: array of object
No Additional Items

Each item of this array must be:

Type: object

Type: string

Docker secret to use for ems image store

Type: string

The docker registry url for this secret

Type: array of object

The list of hosts aliases to configure on the pod spec. It is advised to instead use a DNS entry to resolve your hostnames, instead of this feature. This feature can be used as a workaround when entries cannot be resolved using DNS, for example in our automated testing routines.

No Additional Items

Each item of this array must be:

Type: object

Type: array of string
No Additional Items

Each item of this array must be:

Type: string

An hostname of the associated ip to add to /etc/hosts

Must match regular expression: ^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$

Type: string

An IP resolution to add to /etc/hosts

Type: object

NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/

Each additional property must conform to the following schema

Type: string

Type: number

The number of Element Web replicas

Value must be greater or equal to 1

Type: object Default: {}

Kubernetes resources to allocate to each instance.

Type: object Default: {"memory": "200Mi"}

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

Each additional property must conform to the following schema


Must match regular expression: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

Type: object Default: {"cpu": "50m", "memory": "50Mi"}

Requests describes the minimum amount of compute resources required. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

Each additional property must conform to the following schema


Must match regular expression: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

Default: {}

Type: object

The following properties are required:

  • seLinuxOptions

Type: enum (of string)

Enable pod runAsUser and fsGroup in security context. Disable if it should not be used.

Must be one of:

  • "enable"
  • "disable"

Type: number Default: 10004

The fsGroup GID to use if securityContextForceUidGid is enabled

Type: number Default: 10004

The runAsUser UID to use if securityContextForceUidGid is enabled

Type: object

Type: string

Level is SELinux level label that applies to all the workload containers.

Type: string

Role is SELinux level label that applies to all the workload containers.

Type: string

Type is SELinux level label that applies to all the workload containers.

Type: string

User is SELinux level label that applies to all the workload containers.

Type: enum (of string)

Enable RuntimeDefault pod seccomp. disable if it should not be used.

Must be one of:

  • "enable"
  • "disable"

Type: array of object

Workload tolerations

No Additional Items

Each item of this array must be:

Type: object

The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.

Type: string

Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.

Type: string

Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.

Type: string

Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.

Type: number

TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.

Type: string

Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.

Type: string Default: "element-web"

The secret data associated to synapse config If ingress is tls mode is using certificate, key matching k8s.ingress.certificate.certFileSecretKey and k8s.ingress.certificate.privateKeySecretKey must be present

Must match regular expression: ^[a-z0-9]([\-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([\-a-z0-9]*[a-z0-9])?)*$

Must be at most 253 characters long

Type: object

A web service for scanning media hosted on a Matrix media repository.

Type: object

Default: {}

Configures caching of scan results.

Type: object

The following properties are required:

  • maxFileSize

Type: number Default: 1024

Maximum number of results that can be stored in the cache. If more files are scanned before existing items reach their TTL, the least-recently accessed will be evicted.

Type: string

The maximum cachable file size. If a file is bigger than this size, a copy of it will be not be cached even if the scan succeeds. If the file is requested again, it is downloaded again from the homeserver, but is not written to disk or scanned.

Must match regular expression: [0-9]+[KMGT]B

Type: string Default: "1d"

The maximum amount of time an entry will stay in the cache before being evicted.

Must match regular expression: [0-9]+[dwmy]+

Type: object

Scanning configuration

Type: array of string

List of allowed MIME types. If a file has a MIME type that's not in this list, its scan is considered failed. Allow every MIME types by default.

No Additional Items

Each item of this array must be:

Type: object

Type: object Default: {}

Type: object Default: {}

Settings dedicated to monitoring

Type: object Default: {}

Service monitor settings

Type: enum (of string) Default: "auto"

Enable or disable monitoring using ServiceMonitor resources

Must be one of:

  • "enable"
  • "disable"
  • "auto"

Type: object Default: {}

Settings dedicated to k8s storage



Must not be:

Type: object

The following properties are required:

  • persistentVolumeClaimName

The following properties are required:

  • size

Must not be:

Type: object

The following properties are required:

  • size

The following properties are required:

  • persistentVolumeClaimName

Type: string

The persistent volume claim name to use to store the media


The volume size to use to store the media

Must match regular expression: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[MGTPE])?$

Type: string

The storage class name to use

Type: object Default: {}

Settings dedicated to k8s workloads

Type: object Default: {}

The annotations to add to the workload

Each additional property must conform to the following schema

Type: string

Defines the annotations to add

Type: array of object
No Additional Items

Each item of this array must be:

Type: object

Type: string

Docker secret to use for ems image store

Type: string

The docker registry url for this secret

Type: array of object

The list of hosts aliases to configure on the pod spec. It is advised to instead use a DNS entry to resolve your hostnames, instead of this feature. This feature can be used as a workaround when entries cannot be resolved using DNS, for example in our automated testing routines.

No Additional Items

Each item of this array must be:

Type: object

Type: array of string
No Additional Items

Each item of this array must be:

Type: string

An hostname of the associated ip to add to /etc/hosts

Must match regular expression: ^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$

Type: string

An IP resolution to add to /etc/hosts

Type: object

NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/

Each additional property must conform to the following schema

Type: string

Type: number

The number of ClamAV replicas

Value must be greater or equal to 1

Type: object Default: {}

Kubernetes resources to allocate to each instance.

Type: object Default: {"memory": "4Gi"}

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

Each additional property must conform to the following schema


Must match regular expression: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

Type: object Default: {"cpu": "100m", "memory": "100Mi"}

Requests describes the minimum amount of compute resources required. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

Each additional property must conform to the following schema


Must match regular expression: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

Default: {}

Type: enum (of string)

Enable pod runAsUser and fsGroup in security context. Disable if it should not be used.

Must be one of:

  • "enable"
  • "disable"

Type: number Default: 10150

The fsGroup GID to use if securityContextForceUidGid is enabled

Type: number Default: 10150

The runAsUser UID to use if securityContextForceUidGid is enabled

Type: object

Type: string

Level is SELinux level label that applies to all the workload containers.

Type: string

Role is SELinux level label that applies to all the workload containers.

Type: string

Type is SELinux level label that applies to all the workload containers.

Type: string

User is SELinux level label that applies to all the workload containers.

Type: enum (of string)

Enable RuntimeDefault pod seccomp. disable if it should not be used.

Must be one of:

  • "enable"
  • "disable"

Type: array of object

Workload tolerations

No Additional Items

Each item of this array must be:

Type: object

The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.

Type: string

Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.

Type: string

Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.

Type: string

Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.

Type: number

TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.

Type: string

Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.

Type: object Default: {}

Settings dedicated to k8s

Type: object Default: {}

The annotations to add to every workloads and ingresses deployed

Each additional property must conform to the following schema

Type: string

Defines the annotations to add

Type: object Default: {}

Type: object Default: {}

Settings dedicated to k8s workloads

Type: object Default: {}

The annotations to add to the workload

Each additional property must conform to the following schema

Type: string

Defines the annotations to add

Type: array of object
No Additional Items

Each item of this array must be:

Type: object

Type: string

Docker secret to use for ems image store

Type: string

The docker registry url for this secret

Type: array of object

The list of hosts aliases to configure on the pod spec. It is advised to instead use a DNS entry to resolve your hostnames, instead of this feature. This feature can be used as a workaround when entries cannot be resolved using DNS, for example in our automated testing routines.

No Additional Items

Each item of this array must be:

Type: object

Type: array of string
No Additional Items

Each item of this array must be:

Type: string

An hostname of the associated ip to add to /etc/hosts

Must match regular expression: ^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$

Type: string

An IP resolution to add to /etc/hosts

Type: object

NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/

Each additional property must conform to the following schema

Type: string

Type: object Default: {}

Kubernetes resources to allocate to each instance.

Type: object Default: {"memory": "1Gi"}

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

Each additional property must conform to the following schema


Must match regular expression: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

Type: object Default: {"cpu": "100m", "memory": "100Mi"}

Requests describes the minimum amount of compute resources required. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

Each additional property must conform to the following schema


Must match regular expression: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

Default: {}

Type: object

The following properties are required:

  • seLinuxOptions

Type: enum (of string)

Enable pod runAsUser and fsGroup in security context. Disable if it should not be used.

Must be one of:

  • "enable"
  • "disable"

Type: number Default: 10152

The fsGroup GID to use if securityContextForceUidGid is enabled

Type: number Default: 10152

The runAsUser UID to use if securityContextForceUidGid is enabled

Type: object

Type: string

Level is SELinux level label that applies to all the workload containers.

Type: string

Role is SELinux level label that applies to all the workload containers.

Type: string

Type is SELinux level label that applies to all the workload containers.

Type: string

User is SELinux level label that applies to all the workload containers.

Type: enum (of string)

Enable RuntimeDefault pod seccomp. disable if it should not be used.

Must be one of:

  • "enable"
  • "disable"

Type: array of object

Workload tolerations

No Additional Items

Each item of this array must be:

Type: object

The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.

Type: string

Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.

Type: string

Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.

Type: string

Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.

Type: number

TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.

Type: string

Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.

Type: object

Type: object Default: {}

Settings dedicated to monitoring

Type: object Default: {}

Service monitor settings

Type: enum (of string) Default: "auto"

Enable or disable monitoring using ServiceMonitor resources

Must be one of:

  • "enable"
  • "disable"
  • "auto"

Type: object

Settings dedicated to k8s storage as a PVC Template

Type: object

A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed.
An empty label selector matches all objects. A null label selector matches no objects.

Type: array of object

matchExpressions is a list of label selector requirements. The requirements are ANDed.

No Additional Items

Each item of this array must be:

Type: object

A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

Type: string

key is the label key that the selector applies to.

Type: string

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

Type: array of string

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty.
If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

No Additional Items

Each item of this array must be:

Type: object

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions,
whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed.

Each additional property must conform to the following schema

Type: string


The volume size to use to store the media

Must match regular expression: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[MGTPE])?$

Type: string

The storage class name to use

Type: object Default: {}

Settings dedicated to k8s workloads

Type: object Default: {}

The annotations to add to the workload

Each additional property must conform to the following schema

Type: string

Defines the annotations to add

Type: array of object
No Additional Items

Each item of this array must be:

Type: array of object

The list of hosts aliases to configure on the pod spec. It is advised to instead use a DNS entry to resolve your hostnames, instead of this feature. This feature can be used as a workaround when entries cannot be resolved using DNS, for example in our automated testing routines.

No Additional Items

Each item of this array must be:

Type: object

Type: array of string
No Additional Items

Each item of this array must be:

Type: string

An hostname of the associated ip to add to /etc/hosts

Must match regular expression: ^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$

Type: string

An IP resolution to add to /etc/hosts

Type: object

NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/

Each additional property must conform to the following schema

Type: string

Type: number

The number of Matrix Content Scanner replicas

Value must be greater or equal to 1

Type: object Default: {}

Kubernetes resources to allocate to each instance.

Type: object Default: {"memory": "500Mi"}

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

Each additional property must conform to the following schema


Must match regular expression: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

Type: object Default: {"cpu": "100m", "memory": "100Mi"}

Requests describes the minimum amount of compute resources required. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

Each additional property must conform to the following schema


Must match regular expression: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

Default: {}

Type: enum (of string)

Enable pod runAsUser and fsGroup in security context. Disable if it should not be used.

Must be one of:

  • "enable"
  • "disable"

Type: number Default: 10151

The fsGroup GID to use if securityContextForceUidGid is enabled

Type: number Default: 10151

The runAsUser UID to use if securityContextForceUidGid is enabled

Type: object

Type: string

Level is SELinux level label that applies to all the workload containers.

Type: string

Role is SELinux level label that applies to all the workload containers.

Type: string

Type is SELinux level label that applies to all the workload containers.

Type: string

User is SELinux level label that applies to all the workload containers.

Type: enum (of string)

Enable RuntimeDefault pod seccomp. disable if it should not be used.

Must be one of:

  • "enable"
  • "disable"

Type: array of object

Workload tolerations

No Additional Items

Each item of this array must be:

Type: object

The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.

Type: string

Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.

Type: string

Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.

Type: string

Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.

Type: number

TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.

Type: string

Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.

Type: string Default: "matrix-content-scanner"

The secret data associated to MatrixContentScanner config

Must match regular expression: ^[a-z0-9]([\-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([\-a-z0-9]*[a-z0-9])?)*$

Must be at most 253 characters long

Type: object

Sliding Sync is a backend component required by the Element X client beta. It provides a mechanism for the fast synchronisation of Matrix rooms. It is not recommended for production use and is only provide to enable the usage of the Element X client. The current version does not support SSO (OIDC/SAML/CAS). If you wish to try out the Element X client, then you need to be using password-based auth to allow Sliding Sync to work. SSO support (OIDC/SAML/CAS) will be added with a later version of the Sliding Sync tooling.

Type: object

Type: object Default: {}

Logging settings

Type: enum (of string) Default: "info"

The maximum level of log output

Must be one of:

  • "info"
  • "debug"
  • "warning"
  • "error"

Type: object

Configuration of the PostgreSQL database

Type: string

PostgreSQL database name

Type: string

PostgreSQL database host

Type: string Default: "postgresPassword"

The PostgreSQL password

Type: integer Default: 5432

PostgreSQL port

Value must be greater or equal to 0 and lesser or equal to 65535

Type: enum (of string) Default: "require"

TLS settings to use for the PostgreSQL connection

Must be one of:

  • "disable"
  • "require"
  • "verify-ca"
  • "verify-full"

Type: string

PostgreSQL username

Type: string Default: "syncSecret"

The key of the k8s secret containing Sliding Sync Sync Secret

Type: enum (of string) Default: "useGlobalSetting"

TLS Verification

Must be one of:

  • "useGlobalSetting"
  • "force"
  • "disable"

Type: object Default: {}

Type: object Default: {}

Type: object Default: {}

Settings dedicated to monitoring

Type: object Default: {}

Service monitor settings

Type: enum (of string) Default: "auto"

Enable or disable monitoring using ServiceMonitor resources

Must be one of:

  • "enable"
  • "disable"
  • "auto"

Type: object Default: {}

Settings dedicated to k8s workloads

Type: object Default: {}

The annotations to add to the workload

Each additional property must conform to the following schema

Type: string

Defines the annotations to add

Type: array of object
No Additional Items

Each item of this array must be:

Type: object

Type: string

Docker secret to use for ems image store

Type: string

The docker registry url for this secret

Type: array of object

The list of hosts aliases to configure on the pod spec. It is advised to instead use a DNS entry to resolve your hostnames, instead of this feature. This feature can be used as a workaround when entries cannot be resolved using DNS, for example in our automated testing routines.

No Additional Items

Each item of this array must be:

Type: object

Type: array of string
No Additional Items

Each item of this array must be:

Type: string

An hostname of the associated ip to add to /etc/hosts

Must match regular expression: ^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$

Type: string

An IP resolution to add to /etc/hosts

Type: object

NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/

Each additional property must conform to the following schema

Type: string

Type: object Default: {}

Kubernetes resources to allocate to each instance.

Type: object Default: {"memory": "4Gi"}

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

Each additional property must conform to the following schema


Must match regular expression: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

Type: object Default: {"cpu": "100m", "memory": "200Mi"}

Requests describes the minimum amount of compute resources required. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

Each additional property must conform to the following schema


Must match regular expression: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

Default: {}

Type: object

The following properties are required:

  • seLinuxOptions

Type: enum (of string)

Enable pod runAsUser and fsGroup in security context. Disable if it should not be used.

Must be one of:

  • "enable"
  • "disable"

Type: number Default: 10130

The fsGroup GID to use if securityContextForceUidGid is enabled

Type: number Default: 10130

The runAsUser UID to use if securityContextForceUidGid is enabled

Type: object

Type: string

Level is SELinux level label that applies to all the workload containers.

Type: string

Role is SELinux level label that applies to all the workload containers.

Type: string

Type is SELinux level label that applies to all the workload containers.

Type: string

User is SELinux level label that applies to all the workload containers.

Type: enum (of string)

Enable RuntimeDefault pod seccomp. disable if it should not be used.

Must be one of:

  • "enable"
  • "disable"

Type: array of object

Workload tolerations

No Additional Items

Each item of this array must be:

Type: object

The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.

Type: string

Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.

Type: string

Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.

Type: string

Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.

Type: number

TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.

Type: string

Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.

Type: object Default: {}

Settings dedicated to k8s

Type: object Default: {}

The annotations to add to every workloads and ingresses deployed

Each additional property must conform to the following schema

Type: string

Defines the annotations to add

Type: object

Settings dedicated to k8s ingresses

Type: object Default: {}

Defines the annotations to add

Each additional property must conform to the following schema

Type: string

Type: string

Fully qualified domain name of the ingress

Type: string

An optional IngressClass name to be used for this ingress. Optional if you are managing ingress / loadbalancer externally.

Type: object Default: {}

Type: enum (of string)

Default service type

Must be one of:

  • "ClusterIP"
  • "NodePort"
  • "LoadBalancer"



Must not be:

Type: object

The following properties are required:

  • certificate
  • secretName

The following properties are required:

  • certmanager

Type: object
Must match regular expression: certmanager

Must not be:

Type: object

The following properties are required:

  • certmanager
  • secretName

The following properties are required:

  • certificate

Type: object
Must match regular expression: certfile

Must not be:

Type: object

The following properties are required:

  • certificate
  • certmanager

The following properties are required:

  • secretName

Type: object
Must match regular expression: existing

Must not be:

Type: object

The following properties are required:

  • certificate
  • certmanager
  • secretName

Type: object
Must match regular expression: external

Type: object

Certificate file

Type: string Default: "certificate"

SlidingSync Certificate

Type: string Default: "privateKey"

SlidingSync Private Key

Type: object

The cert-manager properties, if enabled

Type: string

The name of cert-manager ClusterIssuer to use

Type: enum (of string)

The TLS mode of this component ingress. Use external if TLS is managed externaly to the cluster, certmanager if you want to use cert manager to issue certificate automatically, or certfile if you want to upload certificate files to kubernetes tls secrets manually.

Must be one of:

  • "certmanager"
  • "external"
  • "certfile"
  • "existing"

Type: string

The name of a secret in the cluster that contains TLS certificates

Must match regular expression: ^[a-z0-9]([\-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([\-a-z0-9]*[a-z0-9])?)*$

Must be at most 253 characters long

Type: string Default: "sliding-sync"

The secret data associated to SlidingSync config

Must match regular expression: ^[a-z0-9]([\-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([\-a-z0-9]*[a-z0-9])?)*$

Must be at most 253 characters long

Type: object

This is a matrix homeserver.

Type: object

Type: string

Additional config to inject

Type: object Default: {}

External application services to configure

Type: array of string Default: []

Array of ConfigMaps containing a registration.yaml to mount in synapse

No Additional Items

Each item of this array must be:

Type: object Default: {}

Map of appservice registration files to inject

Each additional property must conform to the following schema

Type: string

Content of an appservice registration file

Type: object Default: {}

Synapse Logging settings

Type: object

Logging level overrides for specific Synapse loggers

Each additional property must conform to the following schema

Type: enum (of string)

The maximum level of Synapse log output for this specific logger

Must be one of:

  • "Critical"
  • "Error"
  • "Warning"
  • "Info"
  • "Debug"

Type: enum (of string) Default: "Info"

The maximum level of Synapse log output before any overrides

Must be one of:

  • "Critical"
  • "Error"
  • "Warning"
  • "Info"
  • "Debug"

Type: string Default: "macaroon"

The key of the k8s secret containing Synapse Macaroon

Type: object Default: {"volume": {"size": "50Gi"}}

Default: {"size": "50Gi"}

The volume holding media


Must not be:

Type: object

The following properties are required:

  • name

The following properties are required:

  • size
Type: object

The following properties are required:

  • name
  • size

Type: string

The volume name to use to store the media


The volume size to use to store the media

Must match regular expression: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[MGTPE])?$

Type: object

Configuration of the PostgreSQL database

Type: string

PostgreSQL database name

Type: string

PostgreSQL database host

Type: string Default: "postgresPassword"

The PostgreSQL password

Type: integer Default: 5432

PostgreSQL port

Value must be greater or equal to 0 and lesser or equal to 65535

Type: enum (of string) Default: "require"

TLS settings to use for the PostgreSQL connection

Must be one of:

  • "disable"
  • "allow"
  • "prefer"
  • "require"
  • "verify-ca"
  • "verify-full"

Type: string

PostgreSQL username

Type: string Default: "registrationSharedSecret"

The key of the k8s secret containing Synapse registration shared secret

Type: string Default: "signingKey"

The key of the k8s secret containing Synapse signing key

Type: array of object Default: []

Workers configuration

No Additional Items

Each item of this array must be:

Type: object

Type: string Default: ""

Arbitrary extra config to inject into the Synapse worker configuration as a YAML string

Type: integer Default: 1

Number of instances of this worker type

Type: object Default: {}

Kubernetes resources to allocate to each instance.

Type: object Default: {"memory": "4Gi"}

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

Each additional property must conform to the following schema


Must match regular expression: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

Type: object Default: {"cpu": "100m", "memory": "100Mi"}

Requests describes the minimum amount of compute resources required. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

Each additional property must conform to the following schema


Must match regular expression: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

Type: enum (of string)

Type of worker being configured

Must be one of:

  • "appservice"
  • "background"
  • "client-reader"
  • "encryption"
  • "event-creator"
  • "event-persister"
  • "federation-inbound"
  • "federation-reader"
  • "federation-sender"
  • "initial-synchrotron"
  • "media-repository"
  • "presence-writer"
  • "pusher"
  • "receipts-account"
  • "sso-login"
  • "synchrotron"
  • "typing-persister"
  • "user-dir"

Type: object Default: {}

You can override Kubernetes configuration for each component of Synapse

Type: object Default: {}

The annotations to add to every workloads, volume claims and service monitors deployed

Type: object Default: {}

The annotations to add to every workloads and ingresses deployed

Each additional property must conform to the following schema

Type: string

Defines the annotations to add

Type: object Default: {}

k8s properties of the haproxy workloads inside synapse component

Type: object Default: {}

Settings dedicated to k8s workloads

Type: object Default: {}

The annotations to add to the workload

Each additional property must conform to the following schema

Type: string

Defines the annotations to add

Type: array of object
No Additional Items

Each item of this array must be:

Type: object

Type: string

Docker secret to use for ems image store

Type: string

The docker registry url for this secret

Type: array of object

The list of hosts aliases to configure on the pod spec. It is advised to instead use a DNS entry to resolve your hostnames, instead of this feature. This feature can be used as a workaround when entries cannot be resolved using DNS, for example in our automated testing routines.

No Additional Items

Each item of this array must be:

Type: object

Type: array of string
No Additional Items

Each item of this array must be:

Type: string

An hostname of the associated ip to add to /etc/hosts

Must match regular expression: ^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$

Type: string

An IP resolution to add to /etc/hosts

Type: object

NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/

Each additional property must conform to the following schema

Type: string

Type: number

The number of Synapse HAProxy replicas

Value must be greater or equal to 1

Type: object Default: {}

Kubernetes resources to allocate to each instance.

Type: object Default: {"memory": "200Mi"}

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

Each additional property must conform to the following schema


Must match regular expression: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

Type: object Default: {"cpu": "100m", "memory": "100Mi"}

Requests describes the minimum amount of compute resources required. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

Each additional property must conform to the following schema


Must match regular expression: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

Default: {}

Type: object

The following properties are required:

  • seLinuxOptions

Type: enum (of string)

Enable pod runAsUser and fsGroup in security context. Disable if it should not be used.

Must be one of:

  • "enable"
  • "disable"

Type: number Default: 10001

The fsGroup GID to use if securityContextForceUidGid is enabled

Type: number Default: 10001

The runAsUser UID to use if securityContextForceUidGid is enabled

Type: object

Type: string

Level is SELinux level label that applies to all the workload containers.

Type: string

Role is SELinux level label that applies to all the workload containers.

Type: string

Type is SELinux level label that applies to all the workload containers.

Type: string

User is SELinux level label that applies to all the workload containers.

Type: enum (of string)

Enable RuntimeDefault pod seccomp. disable if it should not be used.

Must be one of:

  • "enable"
  • "disable"

Type: array of object

Workload tolerations

No Additional Items

Each item of this array must be:

Type: object

The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.

Type: string

Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.

Type: string

Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.

Type: string

Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.

Type: number

TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.

Type: string

Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.

Type: object

Settings dedicated to k8s ingresses

Type: object Default: {}

Defines the annotations to add

Each additional property must conform to the following schema

Type: string

Type: string

Fully qualified domain name of the ingress

Type: string

An optional IngressClass name to be used for this ingress. Optional if you are managing ingress / loadbalancer externally.

Type: object Default: {}

Type: enum (of string)

Default service type

Must be one of:

  • "ClusterIP"
  • "NodePort"
  • "LoadBalancer"



Must not be:

Type: object

The following properties are required:

  • certificate
  • secretName

The following properties are required:

  • certmanager

Type: object
Must match regular expression: certmanager

Must not be:

Type: object

The following properties are required:

  • certmanager
  • secretName

The following properties are required:

  • certificate

Type: object
Must match regular expression: certfile

Must not be:

Type: object

The following properties are required:

  • certificate
  • certmanager

The following properties are required:

  • secretName

Type: object
Must match regular expression: existing

Must not be:

Type: object

The following properties are required:

  • certificate
  • certmanager
  • secretName

Type: object
Must match regular expression: external

Type: object

Certificate file

Type: string Default: "synapseCertificate"

Synapse Server Certificate

Type: string Default: "synapsePrivateKey"

Synapse Server Private Key

Type: object

The cert-manager properties, if enabled

Type: string

The name of cert-manager ClusterIssuer to use

Type: enum (of string)

The TLS mode of this component ingress. Use external if TLS is managed externaly to the cluster, certmanager if you want to use cert manager to issue certificate automatically, or certfile if you want to upload certificate files to kubernetes tls secrets manually.

Must be one of:

  • "certmanager"
  • "external"
  • "certfile"
  • "existing"

Type: string

The name of a secret in the cluster that contains TLS certificates

Must match regular expression: ^[a-z0-9]([\-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([\-a-z0-9]*[a-z0-9])?)*$

Must be at most 253 characters long

Type: object Default: {}

k8s properties of the redis workloads inside synapse component

Type: object Default: {}

Settings dedicated to k8s workloads

Type: object Default: {}

The annotations to add to the workload

Each additional property must conform to the following schema

Type: string

Defines the annotations to add

Type: array of object
No Additional Items

Each item of this array must be:

Type: object

Type: string

Docker secret to use for ems image store

Type: string

The docker registry url for this secret

Type: array of object

The list of hosts aliases to configure on the pod spec. It is advised to instead use a DNS entry to resolve your hostnames, instead of this feature. This feature can be used as a workaround when entries cannot be resolved using DNS, for example in our automated testing routines.

No Additional Items

Each item of this array must be:

Type: object

Type: array of string
No Additional Items

Each item of this array must be:

Type: string

An hostname of the associated ip to add to /etc/hosts

Must match regular expression: ^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$

Type: string

An IP resolution to add to /etc/hosts

Type: object

NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/

Each additional property must conform to the following schema

Type: string

Type: object Default: {}

Kubernetes resources to allocate to each instance.

Type: object Default: {"memory": "50Mi"}

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

Each additional property must conform to the following schema


Must match regular expression: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

Type: object Default: {"cpu": "50m", "memory": "50Mi"}

Requests describes the minimum amount of compute resources required. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

Each additional property must conform to the following schema


Must match regular expression: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

Default: {}

Type: object

The following properties are required:

  • seLinuxOptions

Type: enum (of string)

Enable pod runAsUser and fsGroup in security context. Disable if it should not be used.

Must be one of:

  • "enable"
  • "disable"

Type: number Default: 10002

The fsGroup GID to use if securityContextForceUidGid is enabled

Type: number Default: 10002

The runAsUser UID to use if securityContextForceUidGid is enabled

Type: object

Type: string

Level is SELinux level label that applies to all the workload containers.

Type: string

Role is SELinux level label that applies to all the workload containers.

Type: string

Type is SELinux level label that applies to all the workload containers.

Type: string

User is SELinux level label that applies to all the workload containers.

Type: enum (of string)

Enable RuntimeDefault pod seccomp. disable if it should not be used.

Must be one of:

  • "enable"
  • "disable"

Type: array of object

Workload tolerations

No Additional Items

Each item of this array must be:

Type: object

The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.

Type: string

Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.

Type: string

Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.

Type: string

Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.

Type: number

TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.

Type: string

Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.

Type: object Default: {}

k8s properties of the synapse workloads inside synapse component

Type: object Default: {}

Settings dedicated to k8s

Type: object Default: {}

The annotations to add to every workloads and ingresses deployed

Each additional property must conform to the following schema

Type: string

Defines the annotations to add

Type: object Default: {}

Settings dedicated to monitoring

Type: object Default: {}

Service monitor settings

Type: enum (of string) Default: "auto"

Enable or disable monitoring using ServiceMonitor resources

Must be one of:

  • "enable"
  • "disable"
  • "auto"

Type: object Default: {}

Settings dedicated to k8s storage

Type: object Default: {}

Settings dedicated to k8s workloads

Type: object Default: {}

The annotations to add to the workload

Each additional property must conform to the following schema

Type: string

Defines the annotations to add

Type: array of object
No Additional Items

Each item of this array must be:

Type: object

Type: string

Docker secret to use for ems image store

Type: string

The docker registry url for this secret

Type: array of object

The list of hosts aliases to configure on the pod spec. It is advised to instead use a DNS entry to resolve your hostnames, instead of this feature. This feature can be used as a workaround when entries cannot be resolved using DNS, for example in our automated testing routines.

No Additional Items

Each item of this array must be:

Type: object

Type: array of string
No Additional Items

Each item of this array must be:

Type: string

An hostname of the associated ip to add to /etc/hosts

Must match regular expression: ^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$

Type: string

An IP resolution to add to /etc/hosts

Type: object

NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/

Each additional property must conform to the following schema

Type: string

Type: object Default: {}

Kubernetes resources to allocate to each instance.

Type: object Default: {"memory": "4Gi"}

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

Each additional property must conform to the following schema


Must match regular expression: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

Type: object Default: {"cpu": "100m", "memory": "100Mi"}

Requests describes the minimum amount of compute resources required. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

Each additional property must conform to the following schema


Must match regular expression: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

Default: {}

Type: object

The following properties are required:

  • seLinuxOptions

Type: enum (of string)

Enable pod runAsUser and fsGroup in security context. Disable if it should not be used.

Must be one of:

  • "enable"
  • "disable"

Type: number Default: 10991

The fsGroup GID to use if securityContextForceUidGid is enabled

Type: number Default: 10991

The runAsUser UID to use if securityContextForceUidGid is enabled

Type: object

Type: string

Level is SELinux level label that applies to all the workload containers.

Type: string

Role is SELinux level label that applies to all the workload containers.

Type: string

Type is SELinux level label that applies to all the workload containers.

Type: string

User is SELinux level label that applies to all the workload containers.

Type: enum (of string)

Enable RuntimeDefault pod seccomp. disable if it should not be used.

Must be one of:

  • "enable"
  • "disable"

Type: array of object

Workload tolerations

No Additional Items

Each item of this array must be:

Type: object

The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.

Type: string

Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.

Type: string

Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.

Type: string

Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.

Type: number

TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.

Type: string

Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.

Type: string Default: "synapse"

The secret data associated to synapse config Key matching config.macaroonSecretKey, config.registrationSharedSecretSecretKey, config.signingKeySecretKey, config.adminPasswordSecretKey, config.telemetry.password and config.postgres.passwordSecretKey must be present. If ingress is tls mode is using certificate, key matching k8s.ingress.certificate.certFileSecretKey and k8s.ingress.certificate.privateKeySecretKey must be present If stun is enabled, key matching config.stun.sharedSecretSecretKey must be present. To override synapse default trust store for federation, every keys of config.federation.certificateAutoritiesSecretKeys should be present.

Must match regular expression: ^[a-z0-9]([\-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([\-a-z0-9]*[a-z0-9])?)*$

Must be at most 253 characters long

Type: object

This is a well known delegation file hosted as a static site.

Type: object Default: {}

Type: string

WellKnownDelegation additional client configuration.

Type: string

WellKnownDelegation additional element configuration.

Type: string

WellKnownDelegation additional server configuration.

Type: object Default: {}

You can override Kubernetes configuration for each component of WellKnownDelegation

Type: object Default: {}

Settings dedicated to k8s

Type: object Default: {}

The annotations to add to every workloads and ingresses deployed

Each additional property must conform to the following schema

Type: string

Defines the annotations to add

Type: object Default: {}

Settings dedicated to k8s ingresses

Type: object Default: {}

Defines the annotations to add

Each additional property must conform to the following schema

Type: string

Type: string

An optional IngressClass name to be used for this ingress. Optional if you are managing ingress / loadbalancer externally.

Type: object Default: {}

Type: enum (of string)

Default service type

Must be one of:

  • "ClusterIP"
  • "NodePort"
  • "LoadBalancer"



Must not be:

Type: object

The following properties are required:

  • certificate
  • secretName

The following properties are required:

  • certmanager

Type: object
Must match regular expression: certmanager

Must not be:

Type: object

The following properties are required:

  • certmanager
  • secretName

The following properties are required:

  • certificate

Type: object
Must match regular expression: certfile

Must not be:

Type: object

The following properties are required:

  • certificate
  • certmanager

The following properties are required:

  • secretName

Type: object
Must match regular expression: existing

Must not be:

Type: object

The following properties are required:

  • certificate
  • certmanager
  • secretName

Type: object
Must match regular expression: external

Type: object

Certificate file

Type: string Default: "wellKnownDelegationCertificate"

WellKnownDelegation Certificate

Type: string Default: "wellKnownDelegationPrivateKey"

WellKnownDelegation Private Key

Type: object

The cert-manager properties, if enabled

Type: string

The name of cert-manager ClusterIssuer to use

Type: enum (of string)

The TLS mode of this component ingress. Use external if TLS is managed externaly to the cluster, certmanager if you want to use cert manager to issue certificate automatically, or certfile if you want to upload certificate files to kubernetes tls secrets manually.

Must be one of:

  • "certmanager"
  • "external"
  • "certfile"
  • "existing"

Type: string

The name of a secret in the cluster that contains TLS certificates

Must match regular expression: ^[a-z0-9]([\-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([\-a-z0-9]*[a-z0-9])?)*$

Must be at most 253 characters long

Type: object Default: {}

Settings dedicated to k8s workloads

Type: object Default: {}

The annotations to add to the workload

Each additional property must conform to the following schema

Type: string

Defines the annotations to add

Type: array of object
No Additional Items

Each item of this array must be:

Type: object

Type: string

Docker secret to use for ems image store

Type: string

The docker registry url for this secret

Type: array of object

The list of hosts aliases to configure on the pod spec. It is advised to instead use a DNS entry to resolve your hostnames, instead of this feature. This feature can be used as a workaround when entries cannot be resolved using DNS, for example in our automated testing routines.

No Additional Items

Each item of this array must be:

Type: object

Type: array of string
No Additional Items

Each item of this array must be:

Type: string

An hostname of the associated ip to add to /etc/hosts

Must match regular expression: ^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$

Type: string

An IP resolution to add to /etc/hosts

Type: object

NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/

Each additional property must conform to the following schema

Type: string

Type: number

The number of Well-Known Delegation replicas

Value must be greater or equal to 1

Type: object Default: {}

Kubernetes resources to allocate to each instance.

Type: object Default: {"memory": "200Mi"}

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

Each additional property must conform to the following schema


Must match regular expression: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

Type: object Default: {"cpu": "50m", "memory": "50Mi"}

Requests describes the minimum amount of compute resources required. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

Each additional property must conform to the following schema


Must match regular expression: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

Default: {}

Type: object

The following properties are required:

  • seLinuxOptions

Type: enum (of string)

Enable pod runAsUser and fsGroup in security context. Disable if it should not be used.

Must be one of:

  • "enable"
  • "disable"

Type: number Default: 10003

The fsGroup GID to use if securityContextForceUidGid is enabled

Type: number Default: 10003

The runAsUser UID to use if securityContextForceUidGid is enabled

Type: object

Type: string

Level is SELinux level label that applies to all the workload containers.

Type: string

Role is SELinux level label that applies to all the workload containers.

Type: string

Type is SELinux level label that applies to all the workload containers.

Type: string

User is SELinux level label that applies to all the workload containers.

Type: enum (of string)

Enable RuntimeDefault pod seccomp. disable if it should not be used.

Must be one of:

  • "enable"
  • "disable"

Type: array of object

Workload tolerations

No Additional Items

Each item of this array must be:

Type: object

The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.

Type: string

Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.

Type: string

Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.

Type: string

Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.

Type: number

TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.

Type: string

Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.

Type: string Default: "well-known-delegation"

The secret data associated to wellKnownDelegation config If ingress is tls mode is using certificate, key matching k8s.ingress.certificate.certFileSecretKey and k8s.ingress.certificate.privateKeySecretKey must be present

Must match regular expression: ^[a-z0-9]([\-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([\-a-z0-9]*[a-z0-9])?)*$

Must be at most 253 characters long

Type: object Default: {}

Type: object Default: {}

Type: string

The domain name of this deployment. It will be used for the <localpart> of the users MXIDs, and cannot be changed afterwards

Type: string Default: "genericSharedSecret"

The generic shared secret to use as a seed for all internally-generated secrets

Type: string

A configmap containing images digests metadata to override

Type: boolean Default: true

TLS verification

Type: object Default: {}

Type: object Default: {}

Settings dedicated to k8s

Type: object Default: {}

The annotations to add to every workloads and ingresses deployed

Each additional property must conform to the following schema

Type: string

Defines the annotations to add

Type: object Default: {}

Settings dedicated to k8s ingresses

Type: object Default: {}

Defines the annotations to add

Each additional property must conform to the following schema

Type: string

Type: string

An optional IngressClass name to be used for this ingress. Optional if you are managing ingress / loadbalancer externally.

Type: object Default: {}

Type: enum (of string) Default: "ClusterIP"

Default service type

Must be one of:

  • "ClusterIP"
  • "NodePort"
  • "LoadBalancer"



Must not be:

Type: object

The following properties are required:

  • certificate
  • secretName

The following properties are required:

  • certmanager

Type: object
Must match regular expression: certmanager

Must not be:

Type: object

The following properties are required:

  • certmanager
  • secretName

The following properties are required:

  • certificate

Type: object
Must match regular expression: certfile

Must not be:

Type: object

The following properties are required:

  • certificate
  • certmanager

The following properties are required:

  • secretName

Type: object
Must match regular expression: existing

Must not be:

Type: object

The following properties are required:

  • certificate
  • certmanager
  • secretName

Type: object
Must match regular expression: external

Type: object

The default certificate for every ingresses can be configured here. It can be used for example if you plan to use a wildcard certificate, or a certificate containing all components fqdns as SAN.

Type: object

The cert-manager properties, if enabled

Type: string

The name of cert-manager ClusterIssuer to use

Type: enum (of string)

The default TLS mode of deployed ingresses. Use external if TLS is managed externaly to the cluster, certmanager if you want to use cert manager to issue certificate automatically, or certfile if you want to upload certificate files to kubernetes tls secrets manually.

Must be one of:

  • "certmanager"
  • "external"
  • "certfile"
  • "existing"

Type: string

The name of a secret in the cluster that contains TLS certificates

Must match regular expression: ^[a-z0-9]([\-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([\-a-z0-9]*[a-z0-9])?)*$

Must be at most 253 characters long

Type: object Default: {}

Settings dedicated to monitoring

Type: object Default: {}

Service monitor settings

Type: enum (of string) Default: "auto"

Enable or disable monitoring using ServiceMonitor resources

Must be one of:

  • "enable"
  • "disable"
  • "auto"

Type: object

Global storage configuration

Type: string

The storage class name to use

Type: object Default: {}

Settings dedicated to k8s workloads

Type: object Default: {}

The annotations to add to the workload

Each additional property must conform to the following schema

Type: string

Defines the annotations to add

Type: array of object
No Additional Items

Each item of this array must be:

Type: object

Type: string

Docker secret to use for ems image store

Type: string

The docker registry url for this secret

Type: array of object Default: []

The list of hosts aliases to configure on the pod spec. It is advised to instead use a DNS entry to resolve your hostnames, instead of this feature. This feature can be used as a workaround when entries cannot be resolved using DNS, for example in our automated testing routines.

No Additional Items

Each item of this array must be:

Type: object

Type: array of string
No Additional Items

Each item of this array must be:

Type: string

An hostname of the associated ip to add to /etc/hosts

Must match regular expression: ^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$

Type: string

An IP resolution to add to /etc/hosts

Type: object

NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/

Each additional property must conform to the following schema

Type: string

Type: number Default: 2

The number of replicas for workloads supporting it

Value must be greater or equal to 1

Default: {}

Type: object

The following properties are required:

  • seLinuxOptions

Type: enum (of string) Default: "enable"

Enable pod runAsUser and fsGroup in security context. Disable if it should not be used.

Must be one of:

  • "enable"
  • "disable"

Type: object

Type: string

Level is SELinux level label that applies to all the workload containers.

Type: string

Role is SELinux level label that applies to all the workload containers.

Type: string

Type is SELinux level label that applies to all the workload containers.

Type: string

User is SELinux level label that applies to all the workload containers.

Type: enum (of string) Default: "enable"

Enable RuntimeDefault pod seccomp. disable if it should not be used.

Must be one of:

  • "enable"
  • "disable"

Type: array of object

Workload tolerations

No Additional Items

Each item of this array must be:

Type: object

The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.

Type: string

Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.

Type: string

Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.

Type: string

Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.

Type: number

TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.

Type: string

Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.

Type: string Default: "global"

The secret holding the global data

Must match regular expression: ^[a-z0-9]([\-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([\-a-z0-9]*[a-z0-9])?)*$

Must be at most 253 characters long