Zum Inhalt springen

GitOps

The recommended deployment method for openDesk is via Helmfile. This can be done “by hand”, via CI/CD (Gitlab) or using the GitOps approach with tools like Argo 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 a ticket.

There are two options to deploy openDesk via Argo CD described in the following sections.

Option 1: Use YAML manifests

[!warning] Pre-rendering the YAML files will also embed all referenced secrets into the resulting outputs. You must ensure that these files are accessible solely to individuals who are expressly authorized to view the corresponding secrets, as well as the infrastructure and data protected by them.

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:

helmfile template > opendesk.yaml

References:

Afterwards, you can use the resulting manifests within a standard Argo CD workflow.

[!note] When creating the Argo CD application based on the resulting manifests, you must not use the Automated Sync Policy offered by Argo CD, as you have to manually ensure the applications are updated in the required sequence.

Option 2: Helmfile plugin

It is possible to deploy openDesk via Argo CD with the community developed Helmfile plugin.

You can find an example for this approach in the Argo CD Deployments 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. It uses sync waves to ensure the deployment matches requirements and the update sequence for openDesk is satisfied.