Onboard

You should convert your operator to the FBC format before submitting it through the certification workflow. The onboarding process uses automation to simplify the conversion from a bundle-based format to FBC.

Before you begin

Before starting the onboarding procedure, ensure the following:

  • You are in the correct operator directory:
cd <operator-repo>/operators/<operator-name>
  • The following dependencies are installed:
    • podman
    • make
  • You are authenticated to the required registries used by the Operator Lifecycle Manager (OLM). Use podman login and verify that registry credentials are stored in either:
    • $(XDG_RUNTIME_DIR)/containers/auth.json or
    • ~/.docker/config.json

Procedure

  1. Download the Makefile to automate the onboarding process:
    wget https://raw.githubusercontent.com/redhat-openshift-ecosystem/operator-pipelines/main/fbc/Makefile
  2. Run the FBC onboarding command:
    make fbc-onboarding
  3. The script performs the following actions:
    1. Downloads required tools (opm, fbc-onboarding CLI)
    2. Fetches supported OpenShift catalogs
    3. Generates catalog templates
    4. Generates the FBC structure
    5. Updates the ci.yaml configuration file

Results

  1. Verify the operator directory structure:
    $ tree .
    
    operators/aqua
    ├── 0.0.1
    ...
    ├── catalog-templates
    │   ├── v4.12.yaml
    │   ├── v4.13.yaml
    │   ├── v4.14.yaml
    │   ├── v4.15.yaml
    │   └── v4.16.yaml
    ├── ci.yaml
  2. Verify the FBC catalog directory structure. Navigate to the root of your forked repository:
    $ cd ../..

    Then run:

    $ tree (repository root)/catalogs

    The structure under the catalogs/ directory looks similar to the following example:

    catalogs
    ├── v4.12
    │   └── aqua
    │       └── catalog.yaml
    ├── v4.13
    │   └── aqua
    │       └── catalog.yaml
    ├── v4.14
    │   └── aqua
    │       └── catalog.yaml
    ├── v4.15
    │   └── aqua
    │       └── catalog.yaml
    └── v4.16
        └── aqua
            └── catalog.yaml