Skip to main content
Version: Next

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.

Below, we describe the minimum 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.

For validation of your inventory, please refer to the inventory customization guide as well.

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 values like civitas1.test 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 or your Kubernetes distribution. 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"
    • For the k3s cluster created with the configuration from the CIVITAS/CORE repository, we use k3d-civitas-local as the context.

      inv_k8s.config.context: "k3d-civitas-local"
  5. Proxy Configuration

    • Set your proxy information with your actual proxy configuration details:

      ## Proxy environment variables
      https_proxy: "http://user:password@proxy:3128"
      http_proxy: "http://user:password@proxy:3128"
      no_proxy: "localhost,127.0.0.1,10.1.0.0/16,10.152.183.0/24"

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.

      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. Since relative paths may vary depending on where you start the installation, it is recommended to copy the absolute path here.

      inv_k8s.ingress.ca_path: "/path/to/civitas/core/repository/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.

Epilogue

Congratulations! You have set up a local Kubernetes environment in which you may deploy your own CIVITAS/CORE application.

Now, proceed with the installation of CIVITAS/CORE as it is explained here.