mirror of
https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk.git
synced 2025-12-06 07:21:36 +01:00
Compare commits
5 Commits
feat/nubus
...
v0.7.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
02b76d3f45 | ||
|
|
36139b42f1 | ||
|
|
e6fe2a7c18 | ||
|
|
7cb2c2261b | ||
|
|
4a2801c8a0 |
21
CHANGELOG.md
21
CHANGELOG.md
@@ -1,3 +1,24 @@
|
||||
# [0.7.0](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v0.6.0...v0.7.0) (2024-05-06)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **ci:** Add debug option. Has to be supported by stage specific configuration containing: `debug.enabled: {{ env "DEBUG_ENABLED" | default false }}` ([3dc6484](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/3dc648421b80d4e170a11792604be127a3960c0e))
|
||||
* **element:** Provide the internal cluster domain to synapse web ([b9ac5ec](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/b9ac5ecf2def57bba0070f1c2f4a01449808f106))
|
||||
* **univention-management-stack:** Add the image configuration for NATS ([e9ec2f3](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/e9ec2f3a6e51975ccdbd6d3575b5fc6a909502aa))
|
||||
* **univention-management-stack:** Fix [#55](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/issues/55), [#35](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/issues/35) by updating chart "ums" to 0.11.2 and image "portal-listener" to 0.20.6; To update an existing installation you need to manually delete the `ums-portal-listener` stateful set before the update: `kubectl -n <your_namespace> delete statefulsets ums-portal-listener` ([2ad0270](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/2ad027082f4cb958d68d7728d8db05f786dba0f0))
|
||||
* **univention-management-stack:** Migrate UDM-REST-API image to new Univention registry ([9be3b78](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/9be3b78761610db0274572d5a7c526aa34d0615f))
|
||||
* **univention-management-stack:** Objectstore credentials ([d1bd43f](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/d1bd43fa957accdb70f0cda69983e0490ac6cfa0))
|
||||
* **univention-management-stack:** Update Helm chart to 0.12.0 including required changes to openDesk Helmfile deployment. ([fefd2f6](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/fefd2f6cae3617ba1f00ef0c5fa3a80cde1d6ba1))
|
||||
* **univention-management-stack:** Use the NATS related image configuration ([cd22570](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/cd225703ebe67bc78faa878080639dd7cc1845a9))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **element:** Add support for Matrix federation ([36139b4](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/36139b42f1df9785b8414059bf70dc3e37616e8a))
|
||||
* **helmfile:** Introduce additional variables for mailDomain and synapseDomain ([e6fe2a7](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/e6fe2a7c18581f637d6bd4d0553d558f753dadd2))
|
||||
* **services:** Add opendesk-home service, which redirects on domain to portal ([c7e2172](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/c7e217208c4cb812cc23f9aa5ea42fcb77ea7c3a))
|
||||
|
||||
# [0.6.0](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v0.5.81...v0.6.0) (2024-04-11)
|
||||
|
||||
|
||||
|
||||
20
docs/ci.md
20
docs/ci.md
@@ -4,7 +4,7 @@ SPDX-License-Identifier: Apache-2.0
|
||||
-->
|
||||
<h1>CI/CD</h1>
|
||||
|
||||
This page will cover openDesk automation via Gitlab CI.
|
||||
This page covers openDesk deployment automation via Gitlab CI.
|
||||
|
||||
<!-- TOC -->
|
||||
* [Deployment](#deployment)
|
||||
@@ -13,29 +13,31 @@ This page will cover openDesk automation via Gitlab CI.
|
||||
|
||||
# Deployment
|
||||
|
||||
The project includes a `.gitlab-ci.yml` that allows you to execute the deployment from a Gitlab instance of your choice.
|
||||
The project includes a `.gitlab-ci.yml` that allows you to execute the deployment from a GitLab instance of your choice.
|
||||
|
||||
|
||||
When starting the pipeline through the Gitlab UI, you will be queried for some variables plus the following ones:
|
||||
When starting the pipeline through the GitLab UI, you will be queried for some variables plus the following ones:
|
||||
|
||||
- `DOMAIN` = The domain to deploy to.
|
||||
- `NAMESPACE`: Defines into which namespace of your K8s cluster the SWP will be installed
|
||||
- `MAIL_DOMAIN` = (optional) Specify domain (f.e. root FQDN) for Mail, defaults to `DOMAIN`.
|
||||
- `SYNAPSE_DOMAIN` = (optional) Specify domain (f.e. root FQDN) for Synapse, defaults to `DOMAIN`.
|
||||
- `NAMESPACE`: Defines into which namespace of your K8s cluster openDesk will be installed
|
||||
- `MASTER_PASSWORD_WEB_VAR`: Overwrites value of `MASTER_PASSWORD`
|
||||
|
||||
Based on your input, the following variables will be set:
|
||||
- `MASTER_PASSWORD` = `MASTER_PASSWORD_WEB_VAR`. If `MASTER_PASSWORD_WEB_VAR`
|
||||
is not set, the default for `MASTER_PASSWORD` will be used, unless you set
|
||||
`MASTER_PASSWORD` as a masked CI/CD variable in Gitlab to supersede the default.
|
||||
`MASTER_PASSWORD` as a masked CI/CD variable in GitLab to supersede the default.
|
||||
|
||||
You might want to set credential variables in the Gitlab project at `Settings` > `CI/CD` > `Variables`.
|
||||
You might want to set credential variables in the GitLab project at `Settings` > `CI/CD` > `Variables`.
|
||||
|
||||
# Tests
|
||||
|
||||
The gitlab-ci pipeline contains a job named `run-tests` that can trigger a test suite pipeline on another gitlab project.
|
||||
The GitLab CI pipeline contains a job named `run-tests` that can trigger a test suite pipeline on another GitLab project.
|
||||
The `DEPLOY_`-variables are used to determine which components should be tested.
|
||||
In order for the trigger to work, the variable `TESTS_PROJECT_URL` has to be set on this gitlab project's CI variables
|
||||
In order for the trigger to work, the variable `TESTS_PROJECT_URL` has to be set on this GitLab project's CI variables
|
||||
that can be found at `Settings` -> `CI/CD` -> `Variables`. The variable should have this format:
|
||||
`<domain of gitlab>/api/v4/projects/<id>`.
|
||||
|
||||
If the branch of the test pipeline is not `main` this can be set with the .gitlab-ci.yml variable
|
||||
If the branch of the test pipeline is not `main` this can be set with the `.gitlab-ci.yml` variable
|
||||
`TESTS_BRANCH` while creating a new pipeline.
|
||||
|
||||
@@ -10,6 +10,7 @@ This documentation should enable you to create your own evaluation instance of o
|
||||
<!-- TOC -->
|
||||
* [Requirements](#requirements)
|
||||
* [Customize environment](#customize-environment)
|
||||
* [DNS](#dns)
|
||||
* [Domain](#domain)
|
||||
* [Apps](#apps)
|
||||
* [Private registries](#private-registries)
|
||||
@@ -49,10 +50,24 @@ files.
|
||||
For the following guide, we will use `dev` as environment, where variables can be set in
|
||||
`helmfile/environments/dev/values.yaml`.
|
||||
|
||||
## Domain
|
||||
## DNS
|
||||
|
||||
The deployment is designed to deploy each app under a subdomains. For your convenience, we recommend to create a
|
||||
`*.domain.tld` A-Record to your cluster ingress controller, otherwise you need to create an A-Record for each subdomain.
|
||||
The deployment is designed to deploy each application/service under a dedicated subdomain.
|
||||
For your convenience, we recommend to create a `*.domain.tld` A-Record to your cluster ingress controller,
|
||||
otherwise you need to create an A-Record for each subdomain.
|
||||
|
||||
| Record name | Type | Value | Additional information |
|
||||
| ----------------------- | ---- | -------------------------------------------------- | --------------------------------------------------------------------------------------- |
|
||||
| *.domain.tld | A | IPv4 address of your Ingress Controller | |
|
||||
| *.domain.tld | AAAA | IPv6 address of your Ingress Controller | |
|
||||
| mail.domain.tld | A | IPv4 address of your postfix NodePort/LoadBalancer | Optional mail should directly be delivered to openDesk's Postfix |
|
||||
| mail.domain.tld | AAAA | IPv6 address of your postfix NodePort/LoadBalancer | Optional mail should directly be delivered to openDesk's Postfix |
|
||||
| domain.tld | MX | `10 mail.domain.tld` | |
|
||||
| domain.tld | TXT | `v=spf1 +a +mx +a:mail.domain.tld ~all` | Optional, use proper MTA record if present |
|
||||
| _dmarc.domain.tld | TXT | `v=DMARC1; p=quarantine` | Optional |
|
||||
| _matrix._tcp.domain.tld | SRV | `1 10 PORT matrix.domain.tld` | The `PORT` is your NodePort/LoadBalancer port of `opendesk-synapse-federation` service. |
|
||||
|
||||
## Domain
|
||||
|
||||
A list of all subdomains can be found in `helmfile/environments/default/global.yaml`.
|
||||
|
||||
@@ -68,15 +83,49 @@ The domain have to be set either via `dev` environment
|
||||
|
||||
```yaml
|
||||
global:
|
||||
domain: "my.open.desk"
|
||||
domain: "domain.tld"
|
||||
```
|
||||
|
||||
or via environment variable
|
||||
|
||||
```shell
|
||||
export DOMAIN=my.open.desk
|
||||
export DOMAIN=domain.tld
|
||||
```
|
||||
|
||||
Additionally, you can announce/specify an alternative domain for mail and chat.
|
||||
|
||||
As an example, if your domain is `domain.tld` and you want to send mails with this domain, then you can deploy openDesk to
|
||||
`*.opendesk.domain.tld` and send mail as `default.user@domain.tld`.
|
||||
Webmail will be accessed via `mail.opendesk.domain.tld` in this scenario.
|
||||
The required routing have to be implemented by yourself.
|
||||
|
||||
The alternative domains have to be set either via `dev` environment
|
||||
|
||||
```yaml
|
||||
global:
|
||||
mailDomain: "open.desk"
|
||||
synapseDomain: "open.desk"
|
||||
```
|
||||
|
||||
or via environment variable
|
||||
|
||||
```shell
|
||||
export MAIL_DOMAIN=open.desk
|
||||
export SYNAPSE_DOMAIN=open.desk
|
||||
```
|
||||
|
||||
If you want to federate with other Matrix instances, you need to add an SRV record to signal Matrix delegation.
|
||||
|
||||
| Record name | Type | Value |
|
||||
|--------------------------------|------|---------------------------|
|
||||
| _matrix._tcp.SYNAPSE_DOMAIN | SRV | `1 10 PORT matrix.DOMAIN` |
|
||||
| matrix-fed._tcp.SYNAPSE_DOMAIN | SRV | `1 10 PORT matrix.DOMAIN` |
|
||||
| MAIL_DOMAIN | MX | `10 mail.domain.tld` |
|
||||
|
||||
_Hint:_ Replace `SYNAPSE_DOMAIN`, `MAIL_DOMAIN` and `DOMAIN` with proper values of your domain settings.
|
||||
|
||||
_Hint:_ `matrix.DOMAIN` can also be an IP address where synapse tls port is listening to.
|
||||
|
||||
### Apps
|
||||
|
||||
All available apps and their default value can be found in `helmfile/environments/default/workplace.yaml`.
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
configuration:
|
||||
bot:
|
||||
username: "meetings-bot"
|
||||
homeserver: {{ .Values.global.synapseDomain | default .Values.global.domain }}
|
||||
|
||||
containerSecurityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
|
||||
@@ -29,6 +29,7 @@ configuration:
|
||||
password: {{ .Values.databases.synapse.password | default .Values.secrets.postgresql.matrixUser | quote }}
|
||||
|
||||
homeserver:
|
||||
serverName: {{ .Values.global.synapseDomain | default .Values.global.domain }}
|
||||
appServiceConfigs:
|
||||
- as_token: {{ .Values.secrets.intercom.synapseAsToken | quote }}
|
||||
hs_token: {{ .Values.secrets.intercom.synapseAsToken | quote }}
|
||||
|
||||
@@ -41,7 +41,7 @@ podSecurityContext:
|
||||
postfix:
|
||||
amavisHost: ""
|
||||
amavisPortIn: ""
|
||||
domain: {{ .Values.global.domain | quote }}
|
||||
domain: {{ .Values.global.mailDomain | default .Values.global.domain }}
|
||||
hostname: "postfix"
|
||||
inetProtocols: "ipv4"
|
||||
milterDefaultAction: "accept"
|
||||
@@ -67,7 +67,7 @@ postfix:
|
||||
{{- else if .Values.clamavSimple.enabled }}
|
||||
smtpdMilters: "inet:clamav-simple:7357"
|
||||
{{- end }}
|
||||
virtualMailboxDomains: {{ .Values.global.domain | quote }}
|
||||
virtualMailboxDomains: {{ .Values.global.mailDomain | default .Values.global.domain }}
|
||||
virtualTransport: "lmtps:dovecot:24"
|
||||
|
||||
replicaCount: {{ .Values.replicas.postfix }}
|
||||
|
||||
@@ -609,7 +609,7 @@ stack-data-ums:
|
||||
# The openDesk configuration brings its own UMC policies.
|
||||
installUmcPolicies: false
|
||||
domainname: {{ .Values.global.domain | quote }}
|
||||
externalMailDomain: {{ .Values.global.domain | quote }}
|
||||
externalMailDomain: {{ .Values.global.mailDomain | default .Values.global.domain }}
|
||||
hostname: {{ .Values.global.hosts.univentionManagementStack | quote }}
|
||||
ldapHost: {{ .Values.ldap.host | quote }}
|
||||
ldapBase: {{ .Values.ldap.baseDn | quote }}
|
||||
@@ -650,7 +650,7 @@ stack-data-swp:
|
||||
{{- end }}
|
||||
|
||||
externalDomainName: {{ .Values.global.domain | quote }}
|
||||
externalMailDomain: {{ .Values.global.domain | quote }}
|
||||
externalMailDomain: {{ .Values.global.mailDomain | default .Values.global.domain }}
|
||||
|
||||
portalGroupwareLinkBase: {{ printf "https://%s.%s" .Values.global.hosts.openxchange .Values.global.domain | quote }}
|
||||
portalFileshareLinkBase: {{ printf "https://%s.%s" .Values.global.hosts.nextcloud .Values.global.domain | quote }}
|
||||
|
||||
@@ -3,5 +3,5 @@
|
||||
---
|
||||
global:
|
||||
systemInformation:
|
||||
releaseVersion: "v0.6.0"
|
||||
releaseVersion: "v0.7.0"
|
||||
...
|
||||
|
||||
@@ -11,6 +11,14 @@ global:
|
||||
#
|
||||
domain: {{ env "DOMAIN" | default "souvap.cloud" | quote }}
|
||||
|
||||
## Define mail host
|
||||
#
|
||||
mailDomain: {{ env "MAIL_DOMAIN" | quote }}
|
||||
|
||||
## Define synapse host
|
||||
#
|
||||
synapseDomain: {{ env "SYNAPSE_DOMAIN" | quote }}
|
||||
|
||||
## Define docker registry address.
|
||||
#
|
||||
helmRegistry: {{ env "PRIVATE_HELM_REGISTRY_URL" | quote }}
|
||||
|
||||
Reference in New Issue
Block a user