1. Introduction

In this tutorial, we will change the logging configuration of the api gateway service in a running yuuvis® Momentum test system. We will set the log level to DEBUG to monitor information that may be needed for monitoring of the service’s activities, e.g. for diagnosing issues.

We will use the Gitea Web UI for direct access to the configuration storage location. Similar to this procedure, you will be able to change other configuration files as well.

You need the knowledge and setup from the tutorial Installing a Minimal System.

2. Retrieve the Pod Names

We need to know which services read the configuration file to be changed. In our use case, we adjust the api-prod.yml configuration file that is read only by the api service. For other configuration files, please find the affected services in the documentation.

In our case, we need the current pod names for the system and api services in the yuuvis namespace and Gitea in the infrastructure namespace.

  • For the pods in the yuuvis namespace:

    kubectl get pod -n yuuvis

    Example result:

    NAME                              READY   STATUS    RESTARTS   AGE
    api-866c6dbd9c-2wmwg              1/1     Running   0              2d17h
    authentication-66fcb87fd4-pk2gm   1/1     Running   31 (20d ago)   21d
    index-fc688947-dlxhh              1/1     Running   1 (27d ago)    30d
    registry-86c7bc77c8-9wwnc         1/1     Running   0              2d16h
    repository-7677485f45-c6l2q       1/1     Running   0              2d16h
    repository-7677485f45-cnn42       1/1     Running   0              2d16h
    search-7ddf8f6976-qq5pb           1/1     Running   1 (27d ago)    30d
    system-0                          1/1     Running   0              2d16h
  • For the pods in the infrastructure namespace:

    kubectl get pod -n infrastructure

    Example result:

    elasticsearch-0                         1/1     Running     1 (27d ago)   30d
    gitea-6f66dbf78-zcl68                   1/1     Running     1 (27d ago)   30d
    gitea-init-q8x4q                        0/1     Completed   0             30d
    keycloak-0                              1/1     Running     1 (27d ago)   30d
    keycloak-create-selfsigned-cert-rdtgz   0/1     Completed   0             30d
    minio-796478cfd6-mdqs6                  1/1     Running     1 (27d ago)   30d
    postgresql-0                            1/1     Running     1 (27d ago)   30d
    rabbitmq-0                              1/1     Running     1 (27d ago)   30d
    redis-master-0                          1/1     Running     1 (27d ago)   30d

3. Adjusting Configurations

We now want to change the api-prod.yml file. It is located in the root directory in Gitea.

  • Copy its pod name (in the example gitea-6f66dbf78-zcl68) and open its port for browser access.

    kubectl -n infrastructure port-forward gitea-6f66dbf78-zcl68 3000
  • You can now call the Gitea Web UI in a Web Browser.

    http://127.0.0.1:3000
  • Login with your Gitea credentials. If you kept the default credentials through the installation, your login username is yuuvis with password changeme.

  • Select the yuuvis-config repository.

  • Select the master branch.

  • In the root directory, open the api-prod.yml file. If is does not yet exist, create a new file.

  • Configure the log level corresponding to your needs, e.g. set it to DEBUG:

    logging.level.com.os.services: DEBUG
  • Commit your changes.

4. Refreshing the 'system' Service

The system service is responsible for the connection between Gitea and all the other services in the cluster. It caches the configurations and provides them within the cluster on request.

Thus, the system service needs to update its cache.

  • We refresh the system service via an internal endpoint. We therefore use port forwarding.

    kubectl -n yuuvis port-forward system-0 7400
  • Open an additional command line window.

  • Now we send a curl command to the internal endpoint for refreshing the configuration cache.

    curl -XPOST http://127.0.0.1:7400/manage/refresh

5. Restarting the Affected Services

  • At last, each service that reads the changed configuration parameters has to be restarted. In our case, only the api service.

    kubectl -n yuuvis delete pod api-866c6dbd9c-2wmwg
  • Check if all services are back to operation.

    kubectl get pod -n yuuvis

    Example result:

    NAME                              READY   STATUS    RESTARTS   AGE
    api-866c6dbd9c-qvcq2              1/1     Running   0              3m52s
    authentication-66fcb87fd4-pk2gm   1/1     Running   31 (21d ago)   21d
    index-fc688947-dlxhh              1/1     Running   1 (27d ago)    30d
    registry-86c7bc77c8-9wwnc         1/1     Running   0              2d18h
    repository-7677485f45-c6l2q       1/1     Running   0              2d18h
    repository-7677485f45-cnn42       1/1     Running   0              2d18h
    search-7ddf8f6976-qq5pb           1/1     Running   1 (27d ago)    30d
    system-0                          1/1     Running   0              2d18h

6. Test the Changed Functionality

The new configuration should now provide the desired change in the system’s functionality. In our example, the new log level should lead to the creation of more detailed entries in the api service’s log file.

  • Check the log file. Please note that the api service’s pod name is different after the restart.

    kubectl logs api-866c6dbd9c-qvcq2 -n yuuvis

    Example response:

    2025-11-06T13:43:04.532Z DEBUG [api,06f674aa0cf557b5,79d4eeede62155bf] 8 --- [api] [tp1225196709-26] [06f674aa0cf557b5                -79d4eeede62155bf] c.o.s.c.s.JwtAuthenticationFilter        : User of Bearer-Token recognized [ID: 4d639f66-03d6-4264-a0bb-abbe9e6dee5d; username: root; tenant: myfirsttenant; com.os.services.core.security.EnaioUserDetails [Username=root, Password=[PROTECTED], Enabled=true, AccountNonExpired=true, CredentialsNonExpired=true, AccountNonLocked=true, Granted Authorities=[YUUVIS_DEFAULT, YUUVIS_MANAGE_SETTINGS, YUUVIS_SYSTEM_INTEGRATOR, YUUVIS_TENANT_ADMIN, default-roles-myfirsttenant, offline_access, uma_authorization]]]
    2025-11-06T13:43:04.698Z DEBUG [api,06f674aa0cf557b5,ce6286d72a3818bd] 8 --- [api] [tp1225196709-26] [06f674aa0cf557b5                -ce6286d72a3818bd] c.o.s.appconfiguration.dao.AppsDao       : New tenant app configuration received. tenant=myfirsttenant
    2025-11-06T13:43:04.706Z  INFO [api,06f674aa0cf557b5,ce6286d72a3818bd] 8 --- [api] [tp1225196709-26] [06f674aa0cf557b5                -ce6286d72a3818bd] c.o.e.c.g.dms.RequestTracingService      : --> request entry key[06f674aa0cf557b5_4e94c9bc-51ca-4094-945f-72fd96735053] value[RequestTraceObject(traceId=06f674aa0cf557b5, type=READ, tenant=myfirsttenant, method=GET, request=/api/dms/info, starttime=1762436584705)]
    2025-11-06T13:43:04.713Z  INFO [api,06f674aa0cf557b5,ce6286d72a3818bd] 8 --- [api] [tp1225196709-26] [06f674aa0cf557b5                -ce6286d72a3818bd] c.o.e.c.g.dms.RequestTracingService      : <-- request exit  key[06f674aa0cf557b5_4e94c9bc-51ca-4094-945f-72fd96735053] value[RequestTraceObject(traceId=06f674aa0cf557b5, type=READ, tenant=myfirsttenant, method=GET, request=/api/dms/info, starttime=1762436584705)] [8ms]

    In the example log file we can see that the root user’s session state is validated. For the user’s tenant, the app configuration was loaded. Finally, the user’s request to the endpoint GET /api/dms/info was processed.

7. Summary

In this tutorial, you changed a configuration file in a running yuuvis® Momentum test system using the Gitea Web UI. You set the log level of the api gateway service to DEBUG and checked the new information in the service’s log.