diff --git a/docs/debugging.md b/docs/debugging.md index d950491e..7dd83fa6 100644 --- a/docs/debugging.md +++ b/docs/debugging.md @@ -201,3 +201,6 @@ kubectl patch -n ${NAMESPACE} configmap ${CONFIGMAP_NAME} --type merge -p '{"dat ``` 2. Restart the Keycloak Pod(s). + +> **Note**
+> As the `ums-keycloak-extensions-handler` is performing frequent (one per second) requests to Keycloak for retrieval of the Keycloak event history, you might want to stop/remove the deployment while debugging/analysing Keycloak to not get your debug output spammed by these requests. diff --git a/docs/enhanced-configuration.md b/docs/enhanced-configuration.md index 7dcd8d23..342008ce 100644 --- a/docs/enhanced-configuration.md +++ b/docs/enhanced-configuration.md @@ -13,4 +13,5 @@ The following enhanced configuration use cases are described in separate documen - [Federation with external identity provider](./enhanced-configuration/idp-federation.md) - [Matrix federation](./enhanced-configuration/matrix-federation.md) - [Groupware migration from M365 to openDesk](./enhanced-configuration/groupware-migration.md) -- [Self-signed certificate and custom Certificate Authority (CA)](enhanced-configuration/self-signed-certificates.md) +- [Self-signed certificate and custom Certificate Authority (CA)](./enhanced-configuration/self-signed-certificates.md) +- [GitOps deployments using Argo CD](./enhanced-configuration/gitops.md) diff --git a/docs/enhanced-configuration/gitops.md b/docs/enhanced-configuration/gitops.md new file mode 100644 index 00000000..04cbda9b --- /dev/null +++ b/docs/enhanced-configuration/gitops.md @@ -0,0 +1,55 @@ + + +

GitOps Deployment

+ + +* [Considerations](#considerations) +* [ArgoCD](#argocd) + * [Option 1: Use YAML manifests](#option-1-use-yaml-manifests) + * [Option 2: Helmfile plugin](#option-2-helmfile-plugin) + + +The recommended deployment method for openDesk is via Helmfile. This can be done "by hand", via CI/CD (Gitlab) or using +the [GitOps](https://about.gitlab.com/topics/gitops/) approach with tools like [Argo CD](https://argoproj.github.io/cd/). + +This documentation will use Argo CD to explain how to deploy openDesk GitOps-style. + +# Considerations + +- openDesk consists of multiple applications which have to be deployed in order. +- During upgrades, migrations have to run before and after applications. + +# ArgoCD + +We are continuously improving our Argo CD support, please share you experience with Argo CD deployments e.g. by [creating +at ticket](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/-/issues). + +There are two options to deploy openDesk via Argo CD described in the following sections. + +## Option 1: Use YAML manifests + +This option requires a preprocessing step before using Argo CD. This step requires you to compile the Helmfile based +deployment into Kubernetes YAML manifest, to do so you need to execute the helmfile binary: + +```shell +helmfile template > opendesk.yaml +``` + +References: +- [Helmfile CLI documentation](https://helmfile.readthedocs.io/en/latest/#cli-reference) +- [Generate K8s YAML Manifests for openDesk](https://gitlab.opencode.de/bmi/opendesk/deployment/options/generate-k8s-yaml-manifests) + +Afterwards, you can use the resulting manifests within an standard Argo CD workflow. + +## Option 2: Helmfile plugin + +It is possible to deploy openDesk via Argo CD with community developed +[Helmfile plugin](https://github.com/travisghansen/argo-cd-helmfile). + +You can find an example for this approach in the +[Argo CD Deployments](https://gitlab.opencode.de/bmi/opendesk/deployment/options/argocd-deploy) repository. +It contains an example Helm chart (`opendesk-parent`) to create Argo CD Applications via a Helm chart (`opendesk`) +according to `app of apps pattern` and is using sync waves to follow dependencies. diff --git a/docs/enhanced-configuration/idp-federation.md b/docs/enhanced-configuration/idp-federation.md index dec928c8..a3e5cdae 100644 --- a/docs/enhanced-configuration/idp-federation.md +++ b/docs/enhanced-configuration/idp-federation.md @@ -7,6 +7,7 @@ SPDX-License-Identifier: Apache-2.0 * [Context](#context) +* [References](#references) * [Prerequisites](#prerequisites) * [User accounts](#user-accounts) * [External IdP with OIDC](#external-idp-with-oidc) @@ -24,6 +25,15 @@ Most organizations already have an Identity and Access Management (IAM) system w This document shows how to configure your organization's IdP and the openDesk IdP to support account federation with openDesk single sign-on based on your organization's login. +# References + +We would like to list successful IdP federation scenarios, so we are also happy about input from the community: + +| External IdP | last openDesk version tested | +| ------------------------------------------------------------------- | ---------------------------- | +| [EU Login](https://webgate.ec.europa.eu/cas/userdata/myAccount.cgi) | v0.9.0 | +| [ProConnect](https://www.proconnect.gouv.fr/) | v0.9.0 | + # Prerequisites ## User accounts diff --git a/docs/getting-started.md b/docs/getting-started.md index 935cd78e..881c3066 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -240,17 +240,7 @@ cluster: ``` ### Volumes - -When your cluster has a `ReadWriteMany` volume provisioner, you can benefit from the distribution or scaling of apps. By -default, only `ReadWriteOnce` is enabled. To enable `ReadWriteMany` you can set: - -```yaml -cluster: - persistence: - readWriteMany: true -``` - -The **StorageClass** can be set by: +The **StorageClass** must be set by: ```yaml persistence: @@ -259,6 +249,18 @@ persistence: RWO: "my-read-write-once-class" ``` +`RWX` is optional and requires that your cluster has a `ReadWriteMany` volume provisioner. If you can make use +of it it benefits the distribution or scaling of apps. By default, only `ReadWriteOnce` is enabled. +To enable `ReadWriteMany` you have to set: + +```yaml +cluster: + persistence: + readWriteMany: true +``` + + + ## Connectivity ### Ports diff --git a/helmfile/apps/openproject/values.yaml.gotmpl b/helmfile/apps/openproject/values.yaml.gotmpl index 39064849..319c8ed1 100644 --- a/helmfile/apps/openproject/values.yaml.gotmpl +++ b/helmfile/apps/openproject/values.yaml.gotmpl @@ -40,7 +40,7 @@ dbInit: environment: # For more details and more options see # https://www.openproject.org/docs/installation-and-operations/configuration/environment/ - OPENPROJECT_LOG__LEVEL: {{ if .Values.debug.enabled }}"debug"{{ else }}"warn"{{ end }} + OPENPROJECT_LOG__LEVEL: {{ if .Values.debug.enabled }}"debug"{{ else }}"info"{{ end }} OPENPROJECT_LOGIN__REQUIRED: "true" OPENPROJECT_USER__DEFAULT__TIMEZONE: "Europe/Berlin" OPENPROJECT_OAUTH__ALLOW__REMAPPING__OF__EXISTING__USERS: "true" @@ -84,9 +84,6 @@ environment: OPENPROJECT_HOME__URL: {{ printf "https://%s.%s/" .Values.global.hosts.nubus .Values.global.domain | quote }} OPENPROJECT_OPENID__CONNECT_KEYCLOAK_ISSUER: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}" OPENPROJECT_OPENID__CONNECT_KEYCLOAK_POST__LOGOUT__REDIRECT__URI: "https://{{ .Values.global.hosts.openproject }}.{{ .Values.global.domain }}/" - {{- if .Values.enterprise.openproject.token }} - OPENPROJECT_ENTERPRISE__TOKEN: {{ .Values.enterprise.openproject.token | quote }} - {{- end }} {{- if .Values.certificate.selfSigned }} SSL_CERT_FILE: "/etc/ssl/certs/ca-certificates.crt" {{- end }} diff --git a/helmfile/environments/default/enterprise.yaml b/helmfile/environments/default/enterprise.yaml deleted file mode 100644 index 169d0dcb..00000000 --- a/helmfile/environments/default/enterprise.yaml +++ /dev/null @@ -1,9 +0,0 @@ -# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH -# SPDX-License-Identifier: Apache-2.0 -# The variables set in this file are required to upgrade components to their "Enterprise" product variant. ---- -enterprise: - openproject: - # Enterprise token must match the deployment's OpenProject host name. - token: "" -...