• RHDH Documentation 3286

      Feature Overview:

      Provide comprehensive documentation for Red Hat Developer Hub, enabling platform engineers to develop, package, and install dynamic plugins from scratch. This guide will simplify the customization and extension of RHDH functionality by detailing the entire development process, required workflows, and essential tools.

      Goals:

      • Enable Platform Engineers to independently develop, package, and install dynamic plugins, thereby extending Red Hat Developer Hub's (RHDH) capabilities.
      • Simplify the dynamic plugin development lifecycle, providing clear workflows and best practices to reduce manual effort and accelerate customization.
      • Facilitate rapid local testing and iteration of dynamic plugins using RHDH Local, allowing verification of functionality before deployment to a cluster.
      • Promote the adoption and extensibility of RHDH by making custom plugin creation accessible and well-documented.

      User Story: As a Platform Engineer, I want a detailed use guide on how to create dynamic plugins from scratch for Red Hat Developer Hub, including the development process, workflows, and tools, so that I can successfully extend the functionality of RHDH to meet my organization's specific needs and integrate custom tools.

      Acceptance Criteria for the guide:

      • The guide explicitly details the technical prerequisites for dynamic plugin development, including:
        • Languages and skills required to build Backstage plugins
        • Local development environment requirements, including the installation of tools (and their versions) such as Node.js, NPM, Yarn, RHDH Plugin Factory, and the rhdh-cli etc.
      • It provides clear instructions on initializing and developing a standard Backstage plugin as the foundation, and (if they differ), detail working in the following scenarios:
        • Working on Frontend plugin development
        • Working on Backend plugin development
        • Using the Frontend and Backend software templates to quickstart development
      • It outlines the step-by-step process for converting a standard Backstage plugin into the RHDH dynamic plugin format using the rhdh-cli or Dynamic Plugin Factory tools.
      • It explains packaging dynamic plugins into artifacts such as OCI images or tarballs for distribution.
        • It should also mention the Dynamic Plugins Factory and how this tool can assist developers with this task.
      • It describes publishing dynamic plugins as OCI artifacts to accessible container registries (e.g., Quay.io, Docker Hub, GHCR.io).
      • It includes comprehensive guidance on using RHDH Local for local testing of dynamic plugin packages.
        • It specifically details how to mount the built dynamic plugin directly into the RHDH Local container after export, explaining that this allows for quick restarts and faster feedback loops without publishing to a container registry for every iteration.
        • It emphasizes RHDH Local's role in verifying a plugin's basic functionality and configuration in an RHDH context before formal testing on an OpenShift cluster. RHDH Local is designed for individual developers to test various RHDH features and configurations without a Kubernetes cluster, providing a safe playground.
      • It demonstrates integrating and activating the dynamic plugin within RHDH by modifying the RHDH cluster's dynamic-plugins-rhdh and app-config ConfigMaps (as required).
      • It provides best practices for dynamic plugin development, covering:
        • Effective dependency management.
        • Versioning strategies.
        • Creating CI/CD pipelines for plugins
        • Integrating test frameworks into plugin development like Playwright and Jest.
      • It offers example plugin code repositories that developers can use to see real examples for both frontend and backend dynamic plugins.
        • These repositories could be for Red Hat plugins shipped with Developer Hub - but with a preference for simplicity (which may make Red Hat plugins unsuitable?)
        • It should also clarify that software templates to aid with plugin development are also available
      • The guide is integrated into the official Red Hat Developer Hub product documentation and is easily discoverable, potentially through TechDocs and via the existing Plugin templates.
      • The content is clear, concise, and actionable for platform engineers.

      Dependencies:

      • Ongoing maintenance and updates to the rhdh-cli , RHDH Local, and dynamic plugin factory tooling.
      • Availability and stability of the RHDH Local development environment.
      • Leveraging and expanding upon existing documentation efforts related to plugin creation, such as RHIDP-830: Documentation to create plugins with best practices.
      • Collaboration and technical input from the RHDH Dynamic Plugins team and Documentation team.

      Out of Scope:

      • Detailed, specific functional or security testing procedures for every conceivable plugin feature (general best practices will be covered).
      • The process of rebuilding the core RHDH image to include static plugins.
      • Defining Red Hat's support levels for customer-developed, self-hosted plugins (the focus is on how to create them, not Red Hat's ongoing support for them post-creation).
      • The guide does not need to include information on how to prepare plugins for Red Hat's plugin certification program.
      • The guide does not need to include information on how to add custom plugins to the Extensions Catalog.

              gforde@redhat.com Gerry Forde
              gforde@redhat.com Gerry Forde
              RHDH Documentation
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: