From 240d561893ef0ffc35b295e03ccfddf242dd07fd Mon Sep 17 00:00:00 2001 From: Ales Raszka Date: Mon, 10 Feb 2025 09:08:22 +0100 Subject: [PATCH] Doc: FBC one step process documentation The documentation covers a process for releasing FBC bundles with single step. A couple of new files and modification of existing are now described in the doc that are required for the ones step. JIRA: ISV-5508 Signed-off-by: Ales Raszka --- .github/workflows/documentation.yaml | 2 +- docs/img/fbc-auto-release-pr.png | Bin 0 -> 87275 bytes docs/users/contributing-via-pr.md | 12 +++-- docs/users/contributing-where-to.md | 1 + docs/users/fbc_workflow.md | 63 ++++++++++++++++++++++-- docs/users/fcb_autorelease.md | 69 +++++++++++++++++++++++++++ docs/users/operator-ci-yaml.md | 21 +++++++- docs/users/static_checks.md | 22 +++++---- mkdocs.yml | 5 +- 9 files changed, 172 insertions(+), 23 deletions(-) create mode 100644 docs/img/fbc-auto-release-pr.png create mode 100644 docs/users/fcb_autorelease.md diff --git a/.github/workflows/documentation.yaml b/.github/workflows/documentation.yaml index 275db19c7..ea2b37da0 100644 --- a/.github/workflows/documentation.yaml +++ b/.github/workflows/documentation.yaml @@ -24,7 +24,7 @@ jobs: mkdocs build - name: Deploy uses: peaceiris/actions-gh-pages@v4 - if: github.ref == 'refs/heads/main' + # if: github.ref == 'refs/heads/main' with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./site diff --git a/docs/img/fbc-auto-release-pr.png b/docs/img/fbc-auto-release-pr.png new file mode 100644 index 0000000000000000000000000000000000000000..2607aa845391937a7fded9167720ea933a737eac GIT binary patch literal 87275 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%0AsLCrHr!4-pqZ@;syG@QEYPqq0Q- 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 literal 0 HcmV?d00001 diff --git a/docs/users/contributing-via-pr.md b/docs/users/contributing-via-pr.md index 272bd0bd8..9c0dfdec6 100644 --- a/docs/users/contributing-via-pr.md +++ b/docs/users/contributing-via-pr.md @@ -4,14 +4,16 @@ To submit an operator one has to do these steps 1. Fork project based on desired [Operator Repository](./pipelines_overview.md#operator-repositories) -1. Place the operator in the target directory. [More info](./contributing-where-to.md) +2. Place the operator in the target directory. [More info](./contributing-where-to.md) - operators -1. Configure `ci.yaml` file. [More info](./operator-ci-yaml.md) +3. Configure `ci.yaml` file. [More info](./operator-ci-yaml.md) - Setup reviewers - Enable FBC mode -1. Make a pull request with a new operator bundle or catalog changes -1. Verify tests and fix problems, if possible -1. Ask for help in the PR in case of problems + - Add template to catalog mapping +4. Configure the `release-config.yaml` file if you want to automatically release the operator to the OCP catalogs. [More info](./fcb_autorelease.md#release-configyaml) +5. Make a pull request with a new operator bundle or catalog changes +6. Verify tests and fix problems, if possible +7. Ask for help in the PR in case of problems ## Pull request diff --git a/docs/users/contributing-where-to.md b/docs/users/contributing-where-to.md index 06b242879..58393f56e 100644 --- a/docs/users/contributing-where-to.md +++ b/docs/users/contributing-where-to.md @@ -15,6 +15,7 @@ Once you have forked the upstream repo, you will require to add your Operator Bu │ │ │ └── tools.opdev.io_demoresources.yaml │ │ ├── metadata │ │ │ └── annotations.yaml +│ │ ├── release-config.yaml │ │ └── tests │ │ └── scorecard │ │ └── config.yaml diff --git a/docs/users/fbc_workflow.md b/docs/users/fbc_workflow.md index 752344f58..f67488200 100644 --- a/docs/users/fbc_workflow.md +++ b/docs/users/fbc_workflow.md @@ -18,13 +18,59 @@ File-based catalog templates serve as a simplified view of a catalog that can be by the user. The OPM currently supports 2 types of templates and it is up to the user which template the operator will be using. -* Basic template -* SemVer template +* Basic template - `olm.template.basic` +* SemVer template - `olm.semver` More information about each template can be found at [opm doc](https://olm.operatorframework.io/docs/reference/catalog-templates/). The recommended template from the maintainability point of view is `SemVer`. +### FCB template mapping +To be able to generate a catalog from templates a user needs to provide a mapping between +template and catalog. The mapping is stored in the `ci.yaml` file. Based on your preference +you can map a template to a catalog version with 1:N mapping or 1:1 mapping. + +Here is an example of the `ci.yaml` file with single template rendering multiple catalogs (`1:N`): + +```yaml +--- +fbc: + enabled: true + catalog_mapping: + - template_name: my-custom-semver-template.yaml # The name of the file inside ./catalog-templates directory + catalogs_names: # a list of catalogs within the /catalogs directory + - "v4.15" + - "v4.16" + - "v4.17" + type: olm.semver + - template_name: my-custom-basic-template.yaml # The name of the file inside catalog-templates directory + catalogs_names: + - "v4.12" + - "v4.13" + type: olm.template.basic +``` + +And here is an example of the `ci.yaml` file with a single template rendering a single catalog (`1:1`): + +```yaml +--- +fbc: + enabled: true + catalog_mapping: + - template_name: v4.14.yaml + catalog_names: ["v4.14"] + type: olm.template.basic + - template_name: v4.15.yaml + catalog_names: ["v4.15"] + type: olm.template.basic + - template_name: v4.16.yaml + catalog_names: ["v4.16"] + type: olm.template.basic + - template_name: v4.17.yaml + catalog_names: ["v4.17"] + type: olm.template.basic +``` + ## Generate catalogs using templates To generate a final catalog for an operator a user needs to execute different `opm` commands based on the template type. We as operator pipeline maintainers want @@ -43,6 +89,7 @@ The right place for the Makefile is in the operator's root directory ``` . ├── 0.0.1 +| ├── release-config.yaml │   ├── manifests │   └── metadata ├── catalog-templates @@ -51,8 +98,6 @@ The right place for the Makefile is in the operator's root directory ``` -You can modify the Makefile based on your needs and use it to generate catalogs by running `make catalogs`. - > [!IMPORTANT] > In case an operator isn't shipped to all OCP catalog versions manually update `OCP_VERSIONS` > variable in the `Makefile` and include only versions supported by an operator. @@ -83,6 +128,16 @@ catalogs ``` ### Adding new bundle to Catalog +A new bundle can be added automatically to your templates and catalogs if you use +the automated release feature. The process is described in the +[fbc auto-release](./fbc_autorelease.md) documentation. + +It is highly recommended to use the automated release feature as it simplifies the process +from the user perspective. + +However if you want to manually add a new bundle to the catalog follow the steps below. + + To add a bundle to the catalog you need to first submit the new version of the operator using traditional [PR workflow](./contributing-via-pr.md). The operator pipeline builds, tests, and releases the bundle into the registry. **At this point, the operator is not available diff --git a/docs/users/fcb_autorelease.md b/docs/users/fcb_autorelease.md new file mode 100644 index 000000000..944225908 --- /dev/null +++ b/docs/users/fcb_autorelease.md @@ -0,0 +1,69 @@ +# File-Based Catalog - auto-release +By the nature of the File-Based Catalog (FBC) mode, the release of operator is made of two steps. +* The first step builds, test and release bundle image +* The second step adds a bundle to OCP catalog and releases it + +The second step can be now automated and user is no longer required to manually create a +second PR with catalog changes. The release pipeline will take care of it. + +The process will require an additional configuration in the `release-config.yaml` file. +Once a PR with new bundle and `release-config.yaml` is merged, the release pipeline will +open a new PR with catalog changes. + +Example of such PR can be found [here](https://github.com/Allda/community-operators-pipeline-preprod/pull/20). +The second PR is linked with it original PR and looks like [this](https://github.com/Allda/community-operators-pipeline-preprod/pull/25): + +![Release info](../img/fbc-auto-release-pr.png) + +## release-config.yaml + +If you want your operators to be automatically released to the OCP catalogs in the FBC mode, +you will need to configure the `release-config.yaml` file. The file should be placed +into the bundle version directory, e.g. `operators/aqua/0.0.2/release-config.yaml`. + +``` +tree operators/aqua +. +├── 0.0.2 +│   ├── release-config.yaml # This is the file +│   ├── manifests +│   └── metadata +├── catalog-templates +├── ci.yaml +└── Makefile +``` +Its content determines where exactly the bundle will be released in terms of +the OCP version and the place in the update graph. + +### Example + +```yaml +--- +catalog_templates: + - template_name: basic.yaml + channels: [my-channel] + replaces: aqua.0.0.1 + - template_name: semver.yaml + channels: [Fast, Stable] +``` +The example above shows a release configuration where operator bundle is going to be +released to the `my-channel` channel in the `basic.yaml` catalog template and to the +`Fast` and `Stable` channels in the `semver.yaml` catalog template. + +The `replaces` field is optional and it specifies the bundle that the new bundle +replaces in the update graph. + +### File structure +The schema of the file is available here: [release-config.yaml schema](https://github.com/redhat-openshift-ecosystem/operator-pipelines/blob/main/operator-pipeline-images/operatorcert/schemas/release-config-schema.json). +The schema is validated automatically in the pipeline and the PR will fail with explanations if the file is not valid. + +Here is a summary of the file structure: + +* The top-level key is `catalog_templates` which is a list of objects. +* Each object has the following keys: + * `template_name` - the name of the catalog template file in the `catalog-templates` directory. + * `channels` - a list of channels where the bundle should be released. + * In case of using `SemVer` a user can pick from allowed values: `Fast`, `Stable` and `Candidate`. + * `replaces` - the bundle that the new bundle replaces in the update graph. (**Optional**, only for the basic templates) + * `skips` - a list of bundles that should be skipped in the update graph. (**Optional**, only for the basic templates) + * `skipRange` - a range of bundles that should be skipped in the update graph. (**Optional**, only for the basic templates) diff --git a/docs/users/operator-ci-yaml.md b/docs/users/operator-ci-yaml.md index 5cf8eb6dd..ac57378da 100644 --- a/docs/users/operator-ci-yaml.md +++ b/docs/users/operator-ci-yaml.md @@ -45,12 +45,29 @@ The `fbc.version_promotion_strategy` option defines the strategy for promoting t - `always` - the operator will be promoted to the next OCP version automatically - `review-needed` - the operator will be promoted to the next OCP version automatically, but the PR will be created and the reviewers will be asked to review the changes +### `fbc.catalog_mapping` +The mapping serves as a link between catalog templates within the `./catalog-templates` directory and catalogs within the `./catalogs` directory. + +For more details and structure visit the [FBC workflow page](./fbc_workflow.md#fcb-template-mapping). + ### Example ```yaml --- fbc: - enabled: true - version_promotion_strategy: never + enabled: true + version_promotion_strategy: never + catalog_mapping: + - template_name: my-custom-semver-template.yaml # The name of the file inside ./catalog-templates directory + catalogs_names: # a list of catalogs within the /catalogs directory + - "v4.15" + - "v4.16" + - "v4.17" + type: olm.semver + - template_name: my-custom-basic-template.yaml # The name of the file inside catalog-templates directory + catalogs_names: + - "v4.12" + - "v4.13" + type: olm.template.basic ``` diff --git a/docs/users/static_checks.md b/docs/users/static_checks.md index 4c4203843..4bd30d5ed 100644 --- a/docs/users/static_checks.md +++ b/docs/users/static_checks.md @@ -52,15 +52,15 @@ The test is based on `operator-sdk bundle validate` command with `name=operatorh The test is based on `operator-sdk bundle validate` command with `suite=operatorframework` test suite [(link)](https://sdk.operatorframework.io/docs/cli/operator-sdk_bundle_validate/#operator-sdk-bundle-validate). #### check_required_fields -| Field name | Validation | Description | -|------------|------------|------| -| `spec.displayName` | `.{3,50}` | A string with 3 - 50 characters | -| `spec.description` | `.{20,}` | A bundle description with at least 20 characters | -| `spec.icon` | `media` | A valid base64 content with a supported media type (`{"base64data": , "mediatype": enum["image/png", "image/jpeg", "image/gif", "image/svg+xml"]}`) | -| `spec.version` | `SemVer` | Valid semantic version | -| `spec.maintainers` | | At least 1 maintainer contacts. Example: `{"name": "User 123", "email": "user@redhat.com"}` | -| `spec.provider.name` | `.{3,}` | A string with at least 3 characters | -| `spec.links` | | At least 1 link. Example: `{"name": "Documentation", "url": "https://redhat.com"}` | +| Field name | Validation | Description | +| -------------------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `spec.displayName` | `.{3,50}` | A string with 3 - 50 characters | +| `spec.description` | `.{20,}` | A bundle description with at least 20 characters | +| `spec.icon` | `media` | A valid base64 content with a supported media type (`{"base64data": , "mediatype": enum["image/png", "image/jpeg", "image/gif", "image/svg+xml"]}`) | +| `spec.version` | `SemVer` | Valid semantic version | +| `spec.maintainers` | | At least 1 maintainer contacts. Example: `{"name": "User 123", "email": "user@redhat.com"}` | +| `spec.provider.name` | `.{3,}` | A string with at least 3 characters | +| `spec.links` | | At least 1 link. Example: `{"name": "Documentation", "url": "https://redhat.com"}` | #### check_dangling_bundles The test prevents from releasing an operator and keeping any previous bundle dangling. @@ -133,6 +133,10 @@ This check will ensure that all bundle images in the file based catalog for give operator catalog(s) use allowed image registry. Allowed registries are configured in `(repo_root)/config.yaml` under the key `allowed_bundle_registries`. +#### check_schema_bundle_release_config +The test validates the `release-config.yaml` file against the schema. The schema +the file including the schema is described [here](./fcb_autorelease.md#release-configyaml) + ## Running tests locally ```bash diff --git a/mkdocs.yml b/mkdocs.yml index fc488f963..53374e6d1 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -17,8 +17,9 @@ nav: - "Before submitting your Operator": "users/contributing-prerequisites.md" - "Where to place operator": "users/contributing-where-to.md" - "Best practices": "users/best-practices.md" - - "File base catalog onboarding": "users/fbc_onboarding.md" - - "File base catalog workflow": "users/fbc_workflow.md" + - "File based catalog onboarding": "users/fbc_onboarding.md" + - "File based catalog workflow": "users/fbc_workflow.md" + - "File based catalog auto-release": "users/fbc_autorelease.md" - "OKD/OpenShift Catalogs criteria and options": "users/packaging-required-criteria-ocp.md" - "Admin": - "Admin guide": "pipeline-admin-guide.md"