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
yuuvisnamespace:kubectl get pod -n yuuvisExample 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
infrastructurenamespace:kubectl get pod -n infrastructureExample 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
yuuviswith passwordchangeme. -
Select the
yuuvis-configrepository. -
Select the
masterbranch. -
In the root directory, open the
api-prod.ymlfile. 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
systemservice 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
apiservice.kubectl -n yuuvis delete pod api-866c6dbd9c-2wmwg -
Check if all services are back to operation.
kubectl get pod -n yuuvisExample 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
apiservice’s pod name is different after the restart.kubectl logs api-866c6dbd9c-qvcq2 -n yuuvisExample 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
rootuser’s session state is validated. For the user’s tenant, the app configuration was loaded. Finally, the user’s request to the endpointGET /api/dms/infowas 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.