Developer Hub - The Adventure

We’re excited to announce a new workshop that’s currently in development. While still a work in progress, you can already check out the Developer Hub Adventure at: https://rhdh-adventure-organization.github.io/rhdh-adventure/rhdh-adventure/index.html

GitLab Integration in Developer Hub

Important Note

GitLab integration is currently in technical preview status. Please be aware that there is no guarantee of support at this time.

Getting Started with GitLab

To set up GitLab in your Developer Hub environment, follow the detailed instructions available in our GitLab setup guide.

Autodiscovery Configuration

Here’s an example of how to configure GitLab autodiscovery in your catalog: autodisovery example:

catalog:
  providers:
    gitlab:
      gitlab:
        host: gitlab.apps.cluster.domain
        orgEnabled: true
        # group: 'demo' # Required for gitlab.com when `orgEnabled: true`. Optional for self managed. Must not end with slash. Accepts only groups under the provided path (which will be stripped)
        # groupPattern: '[\s\S]*' # Optional. Filters found groups based on provided pattern. Defaults to `[\s\S]*`, which means to not filter anything
        # rules:
        #   - allow: [Group, User]
        schedule:
          frequency:
            minutes: 10
          timeout: 
            minutes: 2
          initialDelay:
            seconds: 60

Known Issues and Workarounds

Merge Request Issue

There is an ongoing issue with merge requests in the Backstage project. You can track the progress of this issue here: Backstage Issue #28587

A temporary workaround has been implemented and can be found in our developer-hub-config repository.

User Entity Resolver

Another issue occurs at using GitLab as the login provider. We’re currently tracking an issue related to user entity resolution: RHIDP-1982

This issue stems from differences in how various plugins handle entity mapping. Specifically:

  • GitLab uses user IDs for authentication
  • GitHub uses usernames for authentication. OpenShift and keycloak too.

This inconsistency can be confusing for users who need to format their user entities correctly across different platforms.

The best idea to solve this is to use a keycloak instance in between and use GitLab as an auth provider. And map the username. But I don’t really know yet if that works, haven’t tested that. Yet.

Kafka objects across multiple namespaces

For information about monitoring Kafka across multiple namespaces, refer to these resources:

It is an open unsolved issue. One of the authors recommends using KafkaUser objects in the main namespace and replicate secrets with additional tooling. In my opinion a workaround that could work and solve permission problems.