-
Notifications
You must be signed in to change notification settings - Fork 140
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
SDCICD-1338: custom task to generate OLM catalog
Add a new custom task to generate the OLM catalog based on a bundle image. This creates the Dockerfile and generates the catalog contents by adding a single bundle and a single channel entry for that bundle to the catalog with a skip range to the latest version. OLM can then be treated in such a way that it will always upgrade to the latest version available in the catalog. following the documentation[1] for creating raw FBCs [1]: https://olm.operatorframework.io/docs/tasks/creating-a-catalog/#catalog-creation-with-raw-file-based-catalogs PR #1153 will be used to generate the bundle that is fed into this task as a parameter. SRE-P operators are maintained without actively versioning or managing upgrade graphs; the latest version is always the version that should be running. Signed-off-by: Brady Pratt <[email protected]>
- Loading branch information
Showing
3 changed files
with
95 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# opm-render-bundles task | ||
|
||
Create a catalog index and render the provided bundles into it | ||
|
||
## Parameters | ||
|name|description|default value|required| | ||
|---|---|---|---| | ||
|binary-image|Image in which to build catalog|registry.redhat.io/openshift4/ose-operator-registry:latest|false| | ||
|bundle-images|Comma separated list of bundles to add||true| | ||
|operator-name|Name of the Operator||true| | ||
|operator-version|Version of the Operator||true| | ||
|default-channel|The channel that subscriptions will default to if unspecified|stable|false| | ||
|
||
## Workspaces | ||
|name|description|optional| | ||
|---|---|---| | ||
|source|Workspace with the source code|false| |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
--- | ||
apiVersion: tekton.dev/v1beta1 | ||
kind: Task | ||
metadata: | ||
name: opm-render-bundles | ||
spec: | ||
description: Create a catalog index and render the provided bundles into it | ||
params: | ||
- name: binary-image | ||
description: Image in which to build catalog | ||
default: registry.redhat.io/openshift4/ose-operator-registry:latest | ||
- name: bundle-images | ||
description: Comma separated list of bundles to add | ||
- name: operator-name | ||
description: Name of the Operator | ||
- name: operator-version | ||
description: Version of the Operator | ||
- name: default-channel | ||
description: The channel that subscriptions will default to if unspecified | ||
default: stable | ||
workspaces: | ||
- name: source | ||
description: Workspace with the source code | ||
steps: | ||
- name: opm-render-bundles | ||
image: "registry.redhat.io/openshift4/ose-operator-registry:latest" | ||
workingDir: $(workspaces.source.path)/source | ||
securityContext: | ||
runAsUser: 0 | ||
capabilities: | ||
add: | ||
- SETFCAP | ||
env: | ||
- name: BINARY_IMAGE | ||
value: $(params.binary-image) | ||
- name: BUNDLE_IMAGES | ||
value: $(params.bundle-images) | ||
- name: OPERATOR_NAME | ||
value: $(params.operator-name) | ||
- name: OPERATOR_VERSION | ||
value: $(params.operator-version) | ||
- name: DEFAULT_CHANNEL | ||
value: $(params.default-channel) | ||
script: | | ||
#!/usr/bin/env bash | ||
set -xe | ||
mkdir -p catalog/ | ||
opm generate dockerfile catalog/ --binary-image="${BINARY_IMAGE}" | ||
opm init "${OPERATOR_NAME}" \ | ||
--default-channel="${DEFAULT_CHANNEL}" \ | ||
--description=./README.md \ | ||
--output=yaml > catalog/operator.yaml | ||
opm render "${BUNDLE_IMAGES}" --output=yaml >> catalog/operator.yaml | ||
cat << EOF >> catalog/operator.yaml | ||
--- | ||
schema: olm.channel | ||
package: "${OPERATOR_NAME}" | ||
name: "${DEFAULT_CHANNEL}" | ||
entries: | ||
- name: ${OPERATOR_NAME}.${OPERATOR_VERSION} | ||
skipRange: ">=0.0.1 <${OPERATOR_VERSION}" | ||
EOF | ||
cat catalog/operator.yaml | ||
opm validate catalog |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
approvers: | ||
- jbpratt | ||
- gurnben | ||
reviewers: | ||
- jbpratt | ||
- gurnben |