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 yourusernameandpasswordfor the Optimal Systems Docker registry. The credentials are only provided to customers.ExampleimageCredentials: dockeryuuvisorg: registry: docker.yuuvis.org username: dockeruser password: secretdockerpassword -
Specify the Minikube cluster IP in the section
yuuvis.authentication.ip.Exampleyuuvis: 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 yourusernameandpasswordfor the Optimal Systems Docker registry again.ExampleimageCredentials: dockeryuuvisorg: registry: docker.yuuvis.org username: dockeruser password: secretdockerpassword -
In the keycloak connection section, set the Minikube cluster IP as host.
Exampleyuuvis: keycloak: publicaddress: 123.456.78.9:30111/auth clusterurl: http://keycloak-http.infrastructure/auth -
For initialisation, set the Minikube cluster IP as host again:
Exampleyuuvis: init: authurl: "http://123.456.78.9:30080" -
ONLY in test systems, NOT in productive systems: In the section for
authenticationservice parameters, activate thenodeport. This will grant you access to the core API endpoints to be called via browser, Postman, curl or any other testing tool.Exampleyuuvis: 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
yuuvisnamespace:kubectl get pod -n yuuvisExample 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
infrastructurenamespace:kubectl get pod -n infrastructureExample 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.