1. Introduction

In this tutorial, we will install a minimal yuuvis® Momentum test system. You need a Linux operating system. In this guide, we use .

We will use in this guide:

  • package management of Ubuntu or Debian

  • curl command line tool

  • Git on the command line

We will install:

  • Minikube

  • kubectl command line tool

  • Helm

  • Docker

For the actual yuuvis® Momentum installation you will require access to the Optimal Systems Docker registry. Credentials are only available for customers.

2. Preparations for the First Minikube Cluster

These steps are only necessary before the first installation of a yuuvis® Momentum system in a Minikube cluster. You can reuse the infrastructure for any cluster you set up later.

2.1. Install kubectl

Check the supported versions and select one for installation. In the example commands, we install version 1.30.0.

curl -LO https://dl.k8s.io/release/v1.30.0/bin/linux/amd64/kubectl
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
kubectl version --client

2.2. Install Helm

The yuuvis® Momentum installation is organized via Helm. This package manager is dedicated for software that will be operated in a Kubernetes cluster. Helm uses charts to organize sets of services that are distributed as docker images. The charts are also used to provide an initial configuration for all included services.

sudo apt-get install curl gpg apt-transport-https --yes
curl -fsSL https://packages.buildkite.com/helm-linux/helm-debian/gpgkey | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/helm.gpg] https://packages.buildkite.com/helm-linux/helm-debian/any/ any main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm

2.3. Add Helm Chart Repositories

The following Helm chart repositories are used during the test system installation to retrieve open source infrastructure components.

helm repo add stable https://charts.helm.sh/stable
helm repo add codecentric https://codecentric.github.io/helm-charts/
helm repo add bitnami https://charts.bitnami.com/bitnami

2.4. Install Docker

The yuuvis® Momentum services are operated in individual Docker containers that are organized via Kubernetes in your Minikube cluster.

sudo apt install docker.io

2.5. Install and Configure Minikube

We use Minikube to create our Kubernetes cluster where we want to operate our yuuvis® Momentum test system. These are the steps for installation and configuration of environment variables.

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64
echo '#! /bin/bash
export MINIKUBE_HOME=/media/d/dvp/_2024autumn/_minikube/
export KUBECONFIG=${MINIKUBE_HOME}config
export HELM_CACHE_HOME=${MINIKUBE_HOME}minikube/helm/cache
export HELM_CONFIG_HOME=${MINIKUBE_HOME}minikube/helm/config
export HELM_DATA_HOME=${MINIKUBE_HOME}minikube/helm/data
export KUBE_EDITOR=leafpad

3. Steps for each new Minikube Cluster

These steps are required for each new yuuvis® Momentum system as it requires an own Kubernetes cluster.

Start a new cluster.

minikube start -p MK-minimalsystem --memory 12000 --cpus 4 --disk-size 60g --driver=docker

Set a profile name for your cluster. This is especially useful for the operation of multiple clusters in parallel. The profile name helps you to address the individual clusters.

minikube profile MK-minimalsystem

Retrieve the IP of your local minikube cluster.

minikube ip

Copy the response for later usage. In this tutorial, we will use 123.456.78.9 as an example value through the configuration and command examples.

4. yuuvis® Momentum Installation

4.1. Download yuuvis® Momentum Helm Charts

Clone the git repository.

git clone https://github.com/OPTIMALSYSTEMS/yuuvis-api-helm-charts.git
cd yuuvis-api-helm-charts/
git pull

Select the product version you want to install, e.g. for 2025 Autumn:

git checkout 2025autumn

4.2. Adjust Configuration

This is a very important step. A proper configuration is essential for a successful installation. Open the individual configuration files in a text editor of your choice.

  • Navigate into your cloned Helm chart directory.

    cd yuuvis-api-helm-charts
  • Open the file infrastructure/values.yaml.

    • In the section imageCredentials.dockeryuuvisorg, add your username and password for the Optimal Systems Docker registry. The credentials are only provided to customers.

      Example
      imageCredentials:
        dockeryuuvisorg:
          registry: docker.yuuvis.org
          username: dockeruser
          password: secretdockerpassword
    • Specify the Minikube cluster IP in the section yuuvis.authentication.ip.

      Example
      yuuvis:
        namespaces:
          yuuvis: yuuvis
          infrastructure: infrastructure
        authentication:
          ip: 123.456.78.9
          port: 30080
    • Save the changes.

  • Open the file yuuvis/values.yaml.

    • In the section imageCredentials.dockeryuuvisorg, add your username and password for the Optimal Systems Docker registry again.

      Example
      imageCredentials:
        dockeryuuvisorg:
          registry: docker.yuuvis.org
          username: dockeruser
          password: secretdockerpassword
    • In the keycloak connection section, set the Minikube cluster IP as host.

      Example
      yuuvis:
        keycloak:
          publicaddress: 123.456.78.9:30111/auth
          clusterurl: http://keycloak-http.infrastructure/auth
    • For initialisation, set the Minikube cluster IP as host again:

      Example
      yuuvis:
        init:
          authurl: "http://123.456.78.9:30080"
    • ONLY in test systems, NOT in productive systems: In the section for authentication service parameters, activate the nodeport. This will grant you access to the core API endpoints to be called via browser, Postman, curl or any other testing tool.

      Example
      yuuvis:
        services:
          authentication:
            nodeport:
              use: true
              value: 30080

4.3. Installing the Example Infrastructure and the Basic Core Services

Create the namespaces yuuvis and infrastructure.

cd infrastructure/
helm dep up
cd ../..
kubectl create namespace infrastructure
kubectl create namespace yuuvis
cd yuuvis-api-helm-charts

Reference the Minikube cluster IP.

helm install infrastructure ./infrastructure/ --namespace infrastructure --set yuuvis.authentication.ip=123.456.78.9
helm install yuuvis ./yuuvis --namespace yuuvis --set yuuvis.keycloak.ip=123.456.78.9
cd ..

5. Check the Status

Check the status of the individual pods.

  • For the pods in the yuuvis namespace:

    kubectl get pod -n yuuvis

    Example result:

    NAME                              READY   STATUS    RESTARTS   AGE
    api-866c6dbd9c-8c7zr              1/1     Running   0          17m
    authentication-66fcb87fd4-9zfnr   1/1     Running   0          17m
    index-fc688947-dlxhh              1/1     Running   0          17m
    registry-86c7bc77c8-q52qk         1/1     Running   0          17m
    repository-7677485f45-9fh2w       1/1     Running   0          17m
    repository-7677485f45-xzwzh       1/1     Running   0          17m
    search-7ddf8f6976-qq5pb           1/1     Running   0          17m
    system-0                          1/1     Running   0          17m
  • For the pods in the infrastructure namespace:

    kubectl get pod -n infrastructure

    Example result:

    elasticsearch-0                         1/1     Running     0          19m
    gitea-6f66dbf78-zcl68                   1/1     Running     0          19m
    gitea-init-q8x4q                        0/1     Completed   0          19m
    keycloak-0                              1/1     Running     0          19m
    keycloak-create-selfsigned-cert-rdtgz   0/1     Completed   0          19m
    minio-796478cfd6-mdqs6                  1/1     Running     0          19m
    postgresql-0                            1/1     Running     0          19m
    rabbitmq-0                              1/1     Running     0          19m
    redis-master-0                          1/1     Running     0          19m

6. Check the Operation of the Core API

Call a simple GET endpoint of the core API and see if it returns the expected result.

For example, call the URL http://123.456.78.9:30080/api/dms/info in a Web Browser. You will be redirected to the Keycloak log-in page. Enter your user credentials for the initial user. If you kept the default configuration during the installation, you can log in with username root and password changeme.

If your system is properly running, you will get a JSON structure as shown in the following example:

{
    "info":
        {
          "productLine":"yuuvis Momentum",
          "systemVersion":"yuuvis Momentum - 2025 Autumn",
          "dmsVersion":"2025.3.2"
        }
}

7. Misconfigured System

If your yuuvis® Momentum system is already in operation, but does not properly work, you probably have a mistake in your configuration. You can still apply changes, but now you need to adjust the individual configuration files. An example is provided in our tutorial Changing Configurations in a Running System.

8. Summary

In this tutorial, you created a yuuvis® Momentum test system in a local Minikube cluster. It is now ready for you to try basic DMS endpoints.