3.5. UMC plugins#
UMC is the part in Nubus for Kubernetes that provides the Management UI. It’s the presentation layer for the business logic of the Directory Manager that you can customize through UDM plugins.
This section describes how to extend the Management UI in Nubus for Kubernetes
with custom UMC modules and icons.
Nubus comes with a default set of icons and UMC modules.
If you need additional presentation for your business logic in the Management UI,
then this section is for you.
As a result, your packaged integration includes
the umc-modules
and umc-icons
plugin types.
UMC is the part in Nubus for Kubernetes that provides the Management UI. It’s the presentation layer for the business logic of the Directory Manager that you can customize through UDM plugins. In the Management UI, the UMC Server provides the functionality for the presentation layer. The UMC Server consists of several UMC modules, each of them provides a specific functionality and presentation layer.
For example, the Users module in the Management UI
provides functionality for the presentation layer
to manage user account objects through the Management UI
as defined in the users/user
UDM module.
The presentation layer comes from the UMC module for UDM.
The customization of the UMC module for UDM is usually enough
to cover the presentation layer for your custom UDM modules.
See also
- Management UI
in Univention Nubus for Kubernetes - Architecture Manual [1] for information about the architecture of the Management UI in Nubus for Kubernetes.
3.5.1. UMC modules#
This section focuses on the UMC module for UDM.
It describes how you can use the umc-modules
plugin type
to extend the UMC module for UDM.
It covers the following topics:
UMC module definition, a reference for UMC module definition file in XML format.
Plugin type umc-modules, how to add the plugin type to the packaged integration.
3.5.1.1. UMC module directory structure#
In the beginning, you need to create the proper directory structure. Listing 3.6 shows an example of a directory structure of a UMC module.
umc-module-name
└── umc
├── icons
│ └── scalable
│ └── the-umc-module-icon.svg
└── umc-module-name.xml
The directory structure has the following elements:
umc/icons/scalable
Contains the icons for UMC module on the overview page of the Management UI. See UMC icons.
umc/umc-module-name.xml
The UMC module definition file defines aspects such as name, description, icon to use, and in which category the Management UI shows the UMC module. See UMC module definition.
3.5.1.2. UMC module definition#
An XML file defines the metadata for the UMC module. It gathers the individual elements that make up the UMC module. Listing 3.7 shows an example of a UMC module definition file.
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-License-Identifier: AGPL-3.0-only
SPDX-FileCopyrightText: 2025 Univention GmbH
-->
<umc version="2.0">
<module id="udm" version="1.0">
<flavor icon="the-umc-module-icon" id="the-udm-module/the-module">
<name>The Module</name>
<description>Module to manage the-module data</description>
</flavor>
<categories>
<category name="domain"/>
</categories>
</module>
</umc>
Listing 3.7 has the following elements:
<umc>
Required XML tag with the attribute
version="2.0"
. All UMC modules need this surrounding tag.<module>
This required XML tag defines the UMC module. It needs the following attributes:
id
A unique name. For extending the UMC module for UDM the value must be
"udm"
, as shown in the example.version
The value must be
"1.0"
.
<flavor>
A flavor references the UDM module for which the UMC module for UDM creates the presentation layer. For an explanation about UMC modules, see the introduction to UMC plugins. The
<flavor>
tag is only available for the UMC module for UDM. You can define multiple flavors. Each flavor defines the following attributes:icon
The name of the icon as saved in the
umc-module-name/umc/icons/scalable/
directory, without the filename extension. In the example, the filename isthe-umc-module-icon.svg
. The value for the attribute then is"the-umc-module-icon"
. For the icon itself, see UMC icons.id
The UDM module that the flavor relates to. The UMC module for UDM automatically creates a form that shows the properties of that UDM module.
Inside the
<flavor>
you need to define the following XML tags:<name>
A short name of the UMC module. The Management UI shows the name together with the icon on its overview page.
<description>
A description of the UMC module. The Management UI provides the description as a mouse over tooltip on its overview page.
<categories>
The overview of the Management UI uses categories to group flavors. This section in the definition file defines in which category of the overview page the Management UI shows the UMC modules.
It has the element
<category>
to assign the category in thename
attribute. The Management UI provides the following categories from which you can choose one:"users"
"devices"
"domain"
"system"
"software"
3.5.1.3. Plugin type umc-modules
#
To add UMC modules as plugin type to your packaged integration, use the following steps:
Save the UMC module files in a directory, for example with the name of the module
umc-module-name
.Follow the instructions for building the container image in Bundle packaged integrations.
Copy the plugin file to your packaged integration. For UMC modules, the
plugin-type
isumc-modules
. See Add plugins.$ export PLUGIN_TYPE="umc-modules" $ export PLUGIN_FILE="umc-module-name/umc/umc-module-name.xml"
3.5.2. UMC icons#
The Management UI shows each UMC module on the overview page
and represents it with an icon and a name.
The plugin type umc-icons
is responsible for providing the graphics file for the icon.
Each UMC module can only have one icon.
The Management UI requires icons in SVG format for dynamic scaling.
To add UMC icons to Nubus for Kubernetes, use the following steps:
Save the icon in the directory structure of your UMC module in the path
umc/icons/scalable
. Give it any well-identifying filename with the extension.svg
, for examplethe-umc-module-icon.svg
.Add an entry for the icon to the UMC module definition file. See the
icon
attribute in UMC module definition.Follow the instructions for building the container image in Bundle packaged integrations.
Copy the plugin file to your packaged integration project. For UMC icons, the
plugin-type
isumc-icons
. See Add plugins.$ export PLUGIN_TYPE="umc-icons" $ export PLUGIN_FILE="umc-module/name/umc/icons"