Uploaded image for project: 'RH Developer Hub Planning'
  1. RH Developer Hub Planning
  2. RHDHPLAN-697

RHDH Dynamic Plugin Factory (Dev Preview)

Create Doc EPIC from R...Prepare for Z ReleasePrepare Test Plan (Y R...XMLWordPrintable

    • False
    • Hide

      None

      Show
      None
    • False
    • 0% To Do, 0% In Progress, 100% Done
    • Hide
      = Dynamic Plugin Factory to convert plugins into dynamic plugins

      You can automate the conversion and packaging of standard {product-custom-resource-type} plugins into {product-very-short} dynamic plugins by using the {product-very-short} Dynamic Plugin Factory tool.

      The core function of the Dynamic Plugin Factory tool is to streamline the dynamic plugin build process, offering the following capabilities:
      Show
      = Dynamic Plugin Factory to convert plugins into dynamic plugins You can automate the conversion and packaging of standard {product-custom-resource-type} plugins into {product-very-short} dynamic plugins by using the {product-very-short} Dynamic Plugin Factory tool. The core function of the Dynamic Plugin Factory tool is to streamline the dynamic plugin build process, offering the following capabilities:
    • Developer Preview
    • Done

      Feature Overview (aka. Goal Summary)

      An MVP for the RHDH Dynamic Plugin Factory that provides a Git repository containing documentation on executing container commands to build dynamic plugins using a Red Hat-published 'dynamic plugin factory' container. This MVP will enable users to test and verify RHDH's dynamic plugin system more easily, and help them migrate existing plugins faster.

      This feature is based on this working PoC idea.

      Goals (aka. expected user outcomes)

      Users will be able to build and test dynamic plugins for RHDH using a provided dynamic plugin factory container and supporting documentation. This allows for a simplified and reproducible method of dynamic plugin creation by a plugin developer or platform engineer without requiring extensive local setup.

      Requirements (aka. Acceptance Criteria):

      • Source: A Git repository is created containing documentation on how to use the toolbox container.
        • redhat-developer/rhdh-dynamic-plugin-factory
      • UX: The rhdh dynamic plugins factory container image contains all the necessary tools to build, checkout, and export dynamic plugins (including node, yarn, Janus CLI) and can do this automatically when executed with the required parameters.
      • Inputs: The factory container can be used to build dynamic plugins from a provided plugin source code repository automatically if provided with the correct parameters at runtime.
        • (Optional - internet) Provided input 1: The Git URL of the source code repository containing the plugin source code 
        • Provided input 2: The "list-of-plugins" to convert to dynamic plugin OCI image format (using a text file with similar/same format as the the overlay repo uses today)
        • Provided input 3: Other settings and credentials as required (e.g. the users chosen OCI registry and the credentials needed to access it)
        • (Optional - no internet) Provided Input 4: An attached volume mapping containing a locally checked out Git repository of plugin source code (or plugin workspaces) when working locally and skipping the git checkout
      • Outputs: When finished building the OCI images from the source code of the plugins, the plugin factory automatically pushes the OCI artifacts to the user-specified online container registry of their choice (not their local image cache) so the plugin can be tested from any RHDH instance (including those in the cloud or on-prem).
      • Tools: All cli tools required to build plugins must be executed inside the toolbox container (no need for any other tooling to be installed apart from docker/podman)
      • Container: The plugins factory container would simply be pulled from our regular rhdh-community Quay repo using the `label` for the RHDH version the user wished to build their plugin against (and not built locally to avoid drift or complexity of supporting multiple versions of RHDH)
        • A `Containerfile` for this image is required 
        • We should have a separate container for each RHDH version supported (1.5, 1.6, etc) as the tools required can differ (e.g. node versions etc.)
        • We need automation to build each container
      • RHDH End User Docs: The documentation for RHDH should include instructions on:
        • Pre-requisites (docker or podman, internet connection, etc.)
        • Creating your settings file containing important details such as the version of RHDH to target and the location and credentials required for the users preferred OCI registry.
        • Creating the 'Migration Manifest' text file containing the repository, branch, folder locations, and names of the plugins to be built as OCI images by the factory (plus the OCI image names to produce.
        • Instructions on how to execute `Podman` or `Docker` container commands.
        • Instructions on how to test a plugin with the factory and with RHDH Local (using Todo as an example)
        • Clear instructions are provided for testing a sample plugin (TODO) with RHDH Local.
          • Ideally these instructions would also contain (or link to) information on how to convert Backstage plugin mounting/mountpoint instructions into RHDH's YAML configuration format
        • Support status: Clarifying that Ther Plugin Factory is a developer tool that is maintained by Red Hat as open source but is not eligible for Red Hat support or subject to an SLA.

      Out of Scope (Optional)

      • For MVP make the Dynamic Plugin Factory container image compatible with RHDH 1.6 plugins
      • Full integration with existing CI/CD pipelines.
      • Offline (air-gapped) operation of the factory container (yarn dependency management during build is allowed).

      Documentation Considerations

      The factory git repository will contain a comprehensive README file with instructions on how to use the toolbox container.
      This will include steps for setting up, building plugins, and testing with RHDH Local. Documentation should be written assuming minimal prior knowledge of Backstage, NodeJS, or Janus CLI.
      Link to existing Janus CLI and overlay repository documentation where applicable.

              rh-ee-frkong Frank Kong
              rh-ee-bwilcock Ben Wilcock
              RHDH Cope
              Votes:
              2 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: