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.