Skip to main content
Version: 1.0

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

  1. DOMAIN Variable:

    • Define the domain for your local deployment in the inventory file (before starting the startup script, we set the DOMAIN environment variable to civitas.test).

    • You can also use other variables like civitas.test1 or staging.example.com.

      DOMAIN: "civitas.test"
  2. 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 or cc-tst for testing.

      ENVIRONMENT: 'cc-loc'
  3. 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
  4. 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

  1. 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"
  2. 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"
  3. 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"
  4. 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

  1. 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.