Inventory Customization Guide for Local Deployment
This guide provides instructions on how to set up your inventory file for your local deployment of the Civitas/CORE platform.
You can start from the default inventory file available here.
In the following, we describe the minimal required changes to the default inventory for a successful local installation. To further customize your inventory (e.g., by enabling or disabling specific platform components), you can check the inventory customization guide.
Section 1: Initial Setup
-
DOMAIN Variable:
-
Define the domain for your local deployment in the inventory file (before starting the startup script, we set the
DOMAIN
environment variable tocivitas.test
). -
You can also use other variables like
civitas.test1
orstaging.example.com
.DOMAIN: "civitas.test"
-
-
ENVIRONMENT Variable:
-
The environment name serves as a prefix for Kubernetes namespaces. You can define it to distinguish between different deployments like
cc-loc
for local orcc-tst
for testing.ENVIRONMENT: 'cc-loc'
-
-
Kubeconfig File:
-
Specify the path to the Kubernetes configuration file generated by Minikube . The file must reside in your home directory in the
.kube
folder. -
Linux/ macOS:
kubeconfig_file: config
-
Windows:
kubeconfig_file: config.wsl
-
-
Kubernetes Context:
-
Set the context in your kubeconfig file for your cluster. Here we used
minikube
.inv_k8s.config.context: "minikube"
-
Section 2: Configuring Kubernetes Storage and Certificates
-
Storage Class:
-
Define storage classes for Kubernetes Persistent Volumes (PVs). The storage class will differ based on your Kubernetes setup. For Minikube it is
standard
. You can check the variable for example in OpenLens (Storage -> Storage Classes).inv_k8s.storage_class.rwo: "standard"
inv_k8s.storage_class.rwx: "standard"
inv_k8s.storage_class.loc: "standard"
-
-
Ingress Class:
-
Define the Ingress class for your Kubernetes setting. For example
nginx
. You can check the variable for example in OpenLens (Network -> Ingress Classes).inv_k8s.ingress_class: "nginx"
-
-
Cert Manager Issuer:
-
Configure the issuer for certificates using Kubernetes Cert-Manager. For local deployments, self-signed certificates are used. If you are using the issuer "letsencrypt-prod", then you also need to set
le_email
.inv_k8s.cert_manager.issuer_name: "selfsigned-ca"
-
-
Ingress Certificate Path:
- Define the path to the SSL certificate for Ingress. This path must point to your local certificate file. It is located in the local_deployment folder of the repository. As the relative paths are changing depending on from where you start the installation, it is recommended to copy the absolute path here.
-
Linux/ macOS:
inv_k8s.ingress.ca_path: ".ssl/civitas.crt"
-
Windows:
inv_k8s.ingress.ca_path: "/mnt/c/Users/username/civitas-core/local_deployment/.ssl/civitas.crt"
Section 3: Email Server Configuration
- Email Server Details:
-
Set up your email server configurations to enable email notifications from various Civitas/CORE services.
-
Example configuration:
inv_email:
server: "mail.example.com"
user: "admin@example.com"
password: "password"
email_from: "noreply@example.com" -
Ensure the email server is properly configured to send emails.
-
Section 4: Managed and Central Databases
Managed databases are hosted externally (in another Kubernetes namespace or a managed cloud provider).
We disable them for local deployment.
inv_mngd_db.enable: false
We use a central database. This will create a single database for all platform components.
inv_central_db.enable: true
Section 5: Access Stack
Set the master password here.
inv_access.platform.master_password: "verySafePW123"
To further customize the platform stacks, please refer to the inventory customization guide.