Managing Files
The configuration server internally uses Git to manage its working directory. This allows a versioning of configurations as well as the agent mappings, so that it is possible to track when and how a file was created, changed or deleted. Additionally, it allows unwanted changes to be reverted and configuration files to be restored that would otherwise be lost.
Furthermore, a staging of configurations and agent mappings is possible. By default, the configuration server has two
branches (WORKSPACE
and LIVE
) which can be used as the basis for the configurations to be delivered.
All changes made by users to the configuration files and the agent mappings affect the WORKSPACE
branch.
The LIVE
branch cannot be changed directly by users. A change to the LIVE
branch is only possible by transferring
an already done change to the WORKSPACE
branch to the LIVE
branch - in this case called "promotion".
tip
It is possible for agents to obtain the configurations exclusively from the LIVE
branch. As a result, users can now
edit configuration files without having to deliver these - possibly incomplete changes - directly, thus preventing
warnings due to invalid configurations.
You can achieve this by setting the source branch for a specific agent mapping to LIVE
.
Agent Mappings can be used, in order to deliver specific configurations to agents. They can also be used to define precisely which files and from which branch an agent should receive.
Promoting Files
Changes to configuration files or agent mappings by users only affect the WORKSPACE
branch.
If a user wants to make a change to a configuration file, but the version of the LIVE
branch is delivered to the agent,
the user must do the following:
- First, the user must perform the change, which allows the change to be tracked on the workspace branch.
- Afterwards the change must be approved and promoted by a user who has promotion rights. Only through promotion the changes to a file will be transferred to the
LIVE
branch.
note
It is important to note that only whole files and not individual changes can be promoted. This means that if two different users have edited a single file it is only possible to promote the whole file and not just the changes of a specific user.
In the following screenshot, the configuration server's promotion user interface is shown. It can be used to review, approve and promote configurations. Only users who have promotion rights can approve and promote configuration files.
- The promotion UI can be access via the navigation sidebar.
- The UI shows a list of all files which have been changed on the
WORKSPACE
branch, thus, differ from theLIVE
branch. The icons show whether a file has been newly created, edited or deleted. Approved files that will be promoted to theLIVE
branch are highlighted in green with a check mark. - The current version of the file on the
LIVE
branch. - The current version of the file on the
WORKSPACE
branch. - Button to promote the approved files.
- The selected file can be approved with this button.
Four-Eyes Promoting Restriction
By default, any user with promotion rights can promote any changes. In some setups it can be beneficial to enforce peer-reviews before promoting changes. The configuration server offers a mechanism to enforce a four eyes principle for changes which can be enabled using the following setting:
inspectit-config-server:
security:
four-eyes-promotion: true
When this setting is enabled, users with promotion rights will no longer be able to promote their own changes.
note
This restriction is only applied to non-admin users! Users with admin rights will still be able to promote their own changes.
Git-Authors
Every change has an author consisting of the login and an e-mail address of the user who made the change. For
ldap-users the login and e-mail address of the ldap account is used.
For internal users however, an e-mail address is generated. This address consists of the user's login and an e-mail
suffix. The default suffix is @inspectit.rocks
.
You can provide a custom mail suffix in the following settings:
inspectit-config-server:
mail-suffix: @my_mail.com
External Changes
While it is not recommended, it is possible to directly change the files in the filesystem instead of via the configuration server's UI or REST-API.
In order for your changes in the file-system to become active, you need to let the configuration server know about the external changes.
This can be done by sending an HTTP GET request to the /api/v1/configuration/reload
endpoint. This request needs to include your credentials via basic auth.
A request to this endpoint causes all external changes to be committed to the WORKSPACE
branch and the server to be updated accordingly.
Alternatively, you can also manually commit to the WORKSPACE
branch in the working directory of the configuration server.
However, you need to make sure that the server is either shut down or you need to have the guarantee that no other users are currently editing files via the UI,
otherwise your repository might get corrupted.