Skip to content

Add a "maintenance notes" field in Runner configuration

Release notes

There is no way to trace a runner back to an owner or maintainer today, as there is no owner field attached. That is important when there are problems arising with the runner or when there's a reorganization of a team and notes need to be left about the runner configuration. As a first step, we will add a maintenance notes field when editing a runner's details so teams can add notes. Other members will be able to see those notes when viewing the runner details.

Problem to solve

I'd like to propose adding a field like maintenance notes to the Runner configuration in GitLab. Field visible only on the settings pages so accessible only for the people who can change the configuration.

What would be it's purpose?

Just like in the user admin settings we have a field Admin notes. It allows the administrator to leave a note for other administrators about the specific user. The number of use-cases for such note is probably endless, but out of the top of my mind: describing why/when someone have been promoted to be an instance admin; describe why a user got blocked or banned.

The maintenance notes for the Runner would have the same purpose - to allow maintainers of a particular runner (and usually there can be many of them) to organize a work and share the knowledge.

For example: at GitLab.com we have group runners available for our own groups like gitlab-org and gitlab-com. Some of these group runners are part of our managed fleet, assigned to the private shard and managed by the Runner group. However, anyone who is an owner of one of these groups will have access to these runners and will be able to change any of the settings. While there are settings that should not be changed.

Instead of relaying on someones memory or hoping that everyone knows 100% of our handbook and is up-to-date with any change being added there, I'd prefer to leave a note saying that This Runner is managed by g_runner group. In case a configuration change is needed, please open an issue at https://gitlab.com/gitlab-com/gl-infra/infrastructure/-/issues/new with the change proposal, label it with ~"Service::CI Runners" and ping #f_linux_shared_runners channel on Slack.

Such field of course should be visible to anyone who can edit the runner - not only the instance administrator 🙂.

Intended users

Metrics

Track how many users are filling that field out.

User experience goal

Allow a way for a team to designate a contact for a runner or leave configuration notes.

Proposal

Implementation Proposal

  1. backend Add maintainer_note field to CI runners table (!77767 - merged);
  2. backend Expose maintenance_note field in GraphQL RunnerType (!87534 (merged));
  3. backend Expose maintenance_note in update mutation in GraphQL RunnerType (!87576 (merged));
  4. frontend Expose maintenance_note field in Edit view (pending design work);
  5. frontend Expose maintenance_note field in Read view (pending design work);
  6. backend Accept maintainer_note parameter in REST runner... (!77779 - merged);
  7. backend Leverage REST API to add support for setting notes upon runner registration (gitlab-runner!3268 (merged)).

🎨 Design specs

Design management

Figma

Further details

Development tasks for features with a design component:

  • Does this feature require a UX designer to create a mockup? If yes then add the workflowready for design label.
  • Create design @gdoyle
  • Review design with front end and backend developers. (async preferred)
  • Front end and backend developers validate the work required to implement the design and update the issue with an Implementation Proposal section

Permissions and Security

Documentation

Availability & Testing

Available Tier

  • Ultimate/Gold

What does success look like, and how can we measure that?

What is the type of buyer?

Is this a cross-stage feature?

Links / references

This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.

Edited by Miguel Rincon