Please note that this is work in progress.

Run kolab with all components on a single host.

This deployment consists of a single vm, and all workloads are executed in k3s.

This is the simplest deployment mode and suitable if the workload load fits on a single system,
and downtime for maintenance or failure is acceptable.

Setup Instructions

Please also see About Kolab on Kubernetes Deployments

Executed from the control host.

  • Create a directory where you intend to manage the kolab installation from
  • Download the latest release here: https://mirror.apheleia-it.ch/pub/kolab-kubernetes-latest.tar.gz
  • Extract the tarball: tar xf kolab-kubernetes-latest.tar.gz
  • Copy deployments/k3s-single-node/inventory.example.yaml to inventory.yaml
  • Adjust the new inventory.yaml, by default it will deploy everything on localhost
  • Run the ansible provisioning process: ansible-playbook -v -i inventory.yaml -D deployments/k3s-single-node/ansible/playbook.yaml
  • Navigate to the configured url (if dns is not already prepared, via /etc/hosts entry)
  • Login with the admin@YOURDOMAIN user
  • Future changes can be applied via: ./kolabctl apply

Installing on a pre-existing vm (bypass vm provisioning)

It is possible to either manually provision a Virtual Machine or connect to an existing system to install Kolab. Please note that the ansible scripts assume the environment as prepared by the kvm ansible role (as part of https://mirror.apheleia-it.ch/pub/kolab-kubernetes-latest.tar.gz).

As the base image for manual installation, the following image is recommended: https://mirror.apheleia-it.ch/pub/kolab-minimal-0.1.qcow2 (default login root/kolab)

Once the VM is available, follow the above instructions with the following adjustments:

  • When adjusting the new inventory.yaml:
    • Disable vm provisioning by setting provision_vm: false
    • Set the ip to connect to your vm (only necessary if the hostname is not resolved to the correct ip on the control host):
      • Set ansible_host: ip of your vm

Updating

To update the VM image run the same ansible script as for installing Kolab:

ansible-playbook -v -i inventory.yaml -D deployments/k3s-single-node/ansible/playbook.yaml

Please note that this will still respect pinned image versions in values.yaml, so you will have to update those manually.

Backup & Restore

See also Backup & Restore

One approach is to just snapshot the entire VM, which will include all user data.

To back-up only the data parts of the VM:

  • k3s database: /var/lib/rancher/k3s/server/db/
  • k3s token: /var/lib/rancher/k3s/server/token
  • application payloads: /var/lib/rancher/k3s/storage/

Please note that consistency of the snapshot can only be guaranteed by stopping all workloads first via: k3s-killall.sh

To restore:

  • Either restore a VM or install one per installation guide
  • Make sure k3s and all workloads are stopped by executing: k3s-killall.sh
  • Restore the above backed-up directories
  • Start k3s again: systemctl start k3s
Categories: Uncategorized

3 Comments

Peter · March 19, 2025 at 4:32 pm

I downloaded the kolab-minimal-0.1.qcow2 image and have it running, but I can’t login because I can’t find a login user and password. Can someone help me with this?

    Christian Mollekopf · April 11, 2025 at 2:58 am

    Hi,

    You should be able to login with user root and password kolab.

    Christian Mollekopf · April 11, 2025 at 3:45 am

    The login is root/kolab, which would then be updated by the ansible based deployment process.

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *