Skip to main content

Setup

To set up MijnBureau and install it on Kubernetes, you first need to obtain the software. You can either clone the repository or download a release.


Obtain the Software

Clone the Repository

If you are familiar with Git, clone the repository:

git clone https://github.com/MinBZK/mijn-bureau-infra

Download a Release

Alternatively, download a release and extract the tarball:

tar -xzvf mijnbureau.tar.gz

Once you have the software on your machine, you can begin configuring the application.


Configuration

MijnBureau supports multiple deployment environments. It is recommended to use the Demo or Production environment to simplify configuration and avoid conflicts when updating to newer versions.

🏠 Default Environment

  • Purpose: Used by default if no environment is specified.
  • Includes: Core applications excluding external data stores.
  • Configuration: helmfile/environments/default/

Recommendation: Avoid using the default environment for production. It is configured similarly to the production environment but lacks customization.

🚀 Demo Environment

  • Purpose: Testing and evaluation.
  • Includes: Core applications, including external data stores like caches, databases, and object stores.
  • Configuration: helmfile/environments/demo/

The demo environment is ideal for testing and evaluation. However, it does not include backup and restore capabilities. Add these features if required for your use case.

🏢 Production Environment

  • Purpose: Enterprise deployments.
  • Includes: Core applications excluding external data stores.
  • Configuration: helmfile/environments/production/

For production setups, you need to configure external services such as:

  • Database: PostgreSQL.
  • Cache: Redis.
  • Object Store: MinIO.

Additionally, ensure you set up backup and restore procedures, disaster recovery, and persistent volume claim backups.


Overriding Configuration

By default, MijnBureau uses configurations from the default environment, located at:

./helmfile/environments/default/<file>.gotmpl

You can override settings by copying partial content from the default environment files and pasting it into the mijnbureau.yaml.gotmpl file for your chosen environment:

./helmfile/environments/{environment}/mijnbureau.yaml.gotmpl

Replace {environment} with demo or production.

Example: Overriding the Domain Name

To change the domain name in the production environment, copy the relevant variables from ./helmfile/environments/default/global.yaml.gotmpl and add them to ./helmfile/environments/production/mijnbureau.yaml.gotmpl:

global:
domain: "mijnbureau.mydomain.com"

This approach can be used to override any variable from the default environment. For better manageability, you can split mijnbureau.yaml.gotmpl into multiple files.