diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml
index 946e12145..ea142e568 100644
--- a/.github/workflows/integration.yml
+++ b/.github/workflows/integration.yml
@@ -29,6 +29,9 @@ jobs:
- name: Set Image Tag Env
run: echo "PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV
+ - name: Operator Version Check
+ run: ./operator/bin/version-check.sh "${{ env.PROJECT_VERSION }}"
+
- name: Set Up JDK 17
uses: actions/setup-java@v4
with:
@@ -98,7 +101,7 @@ jobs:
# ==================== Operator-Bundle ====================
- name: Modify Bundle CSV Metadata
- run: ./operator/bin/modify-bundle-metadata.sh "VERSION=${{ env.PROJECT_VERSION }}" "SKIP_RANGE=>=0.0.1 <${{ env.PROJECT_VERSION }}"
+ run: ./operator/bin/modify-bundle-metadata.sh "VERSION=${{ env.PROJECT_VERSION }}"
- name: Build Operator Bundle Image
uses: docker/build-push-action@v6
@@ -118,17 +121,17 @@ jobs:
chmod +x opm
sudo cp -v opm /usr/bin/
rm -vf opm
- operator/bin/generate-catalog.sh ${{ env.PROJECT_VERSION }}
+ operator/bin/generate-catalog.sh localhost:5000/streamshub/console-operator-bundle true
- name: Build Operator Catalog Image
uses: docker/build-push-action@v6
with:
- context: operator/target/
+ context: operator/
platforms: ${{ env.PLATFORMS }}
network: none
provenance: false
push: true
- file: operator/target/catalog.Dockerfile
+ file: operator/src/main/docker/catalog.Dockerfile
tags: |
localhost:5000/streamshub/console-operator-catalog:${{ env.PROJECT_VERSION }}
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index cdfcfd88c..93037a1a8 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -54,9 +54,8 @@ jobs:
git config --global user.name "github-actions[bot]"
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
git checkout -b release
- mvn -B release:prepare -DreleaseVersion=${{steps.metadata.outputs.current-version}} -DdevelopmentVersion=${{steps.metadata.outputs.next-version}}
- git checkout ${{github.base_ref}}
- git rebase release
+
+ PRERELEASE_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout | tr '[:upper:]' '[:lower:]')
export QUARKUS_CONTAINER_IMAGE_REGISTRY="${{ secrets.IMAGE_REPO_HOSTNAME }}"
export QUARKUS_CONTAINER_IMAGE_GROUP="${{ secrets.IMAGE_REPO_NAMESPACE }}"
export QUARKUS_CONTAINER_IMAGE_USERNAME="${{ secrets.IMAGE_REPO_USERNAME }}"
@@ -64,7 +63,18 @@ jobs:
export QUARKUS_CONTAINER_IMAGE_PUSH="true"
export QUARKUS_CONTAINER_IMAGE_ADDITIONAL_TAGS=latest
export QUARKUS_KUBERNETES_NAMESPACE='$${NAMESPACE}'
+
+ mvn -B release:prepare \
+ -DprereleaseVersion=${PRERELEASE_VERSION} \
+ -DreleaseVersion=${{ steps.metadata.outputs.current-version }} \
+ -DdevelopmentVersion=${{ steps.metadata.outputs.next-version }} \
+ -Dcontainer-image.registry=${{ secrets.IMAGE_REPO_HOSTNAME }}
+
+ git checkout ${{github.base_ref}}
+ git rebase release
+
export GIT_REVISION=$(git rev-parse --short release)
+
# Build and push the release images using the commit tagged in `release:prepare`
mvn -B -P container-image release:perform --no-transfer-progress \
'-Drelease.arguments=-Dquarkus.docker.buildx.platform=${{ env.PLATFORMS }}'
@@ -94,7 +104,7 @@ jobs:
# ==================== Operator-Bundle ====================
- name: Modify Bundle CSV Metadata
working-directory: target/checkout
- run: ./operator/bin/modify-bundle-metadata.sh "VERSION=${{steps.metadata.outputs.current-version}}" "SKIP_RANGE=>=0.0.1 <${{steps.metadata.outputs.current-version}}"
+ run: ./operator/bin/modify-bundle-metadata.sh "VERSION=${{steps.metadata.outputs.current-version}}"
- name: Build and Push Operator Bundle Image
uses: docker/build-push-action@v6
@@ -116,17 +126,18 @@ jobs:
chmod +x opm
sudo cp -v opm /usr/bin/
rm -vf opm
- operator/bin/generate-catalog.sh ${{steps.metadata.outputs.current-version}}
+ operator/bin/generate-catalog.sh \
+ ${{ secrets.IMAGE_REPO_HOSTNAME }}/${{ secrets.IMAGE_REPO_NAMESPACE }}/console-operator-bundle
- name: Build and Push Operator Catalog Image
uses: docker/build-push-action@v6
with:
- context: target/checkout/operator/target/
+ context: target/checkout/operator/
platforms: ${{ env.PLATFORMS }}
network: none
provenance: false
push: true
- file: target/checkout/operator/target/catalog.Dockerfile
+ file: target/checkout/operator/src/main/docker/catalog.Dockerfile
tags: |
${{ secrets.IMAGE_REPO_HOSTNAME }}/${{ secrets.IMAGE_REPO_NAMESPACE }}/console-operator-catalog:${{steps.metadata.outputs.current-version}}
${{ secrets.IMAGE_REPO_HOSTNAME }}/${{ secrets.IMAGE_REPO_NAMESPACE }}/console-operator-catalog:latest
diff --git a/.github/workflows/snapshot.yml b/.github/workflows/snapshot.yml
index f25bffbad..8b04860ee 100644
--- a/.github/workflows/snapshot.yml
+++ b/.github/workflows/snapshot.yml
@@ -98,7 +98,7 @@ jobs:
# ==================== Operator-Bundle ====================
- name: Modify Bundle CSV Metadata
- run: ./operator/bin/modify-bundle-metadata.sh "VERSION=${{ env.NEXT_VERSION }}" "SKIP_RANGE=>=0.0.1 <${{ env.NEXT_VERSION }}"
+ run: ./operator/bin/modify-bundle-metadata.sh "VERSION=${{ env.NEXT_VERSION }}"
- name: Build and Push Operator Bundle Image
uses: docker/build-push-action@v6
@@ -119,17 +119,18 @@ jobs:
chmod +x opm
sudo cp -v opm /usr/bin/
rm -vf opm
- operator/bin/generate-catalog.sh ${{ env.NEXT_VERSION }}
+ operator/bin/generate-catalog.sh \
+ ${{ secrets.IMAGE_REPO_HOSTNAME }}/${{ secrets.IMAGE_REPO_NAMESPACE }}/console-operator-bundle
- name: Build and Push Operator Catalog Image
uses: docker/build-push-action@v6
with:
- context: operator/target/
+ context: operator/
platforms: ${{ env.PLATFORMS }}
network: none
provenance: false
push: true
- file: operator/target/catalog.Dockerfile
+ file: operator/src/main/docker/catalog.Dockerfile
tags: |
${{ secrets.IMAGE_REPO_HOSTNAME }}/${{ secrets.IMAGE_REPO_NAMESPACE }}/console-operator-catalog:${{ env.NEXT_VERSION }}
${{ secrets.IMAGE_REPO_HOSTNAME }}/${{ secrets.IMAGE_REPO_NAMESPACE }}/console-operator-catalog:snapshot-${{github.ref_name}}
diff --git a/Makefile b/Makefile
index 23c5799d5..b1ae58844 100644
--- a/Makefile
+++ b/Makefile
@@ -18,7 +18,7 @@ CONSOLE_OPERATOR_CATALOG_IMAGE ?= $(IMAGE_REGISTRY)/$(IMAGE_GROUP)/console-opera
CONTAINER_RUNTIME ?= $(shell which podman || which docker)
SKOPEO_TRANSPORT ?= $(shell which podman >/dev/null && echo "containers-storage:" || echo "docker-daemon:")
ARCH ?= linux/amd64
-SKIP_RANGE ?= ">=1.0.0 <1.0.3"
+SKIP_RANGE ?= ""
CONSOLE_UI_NEXTAUTH_SECRET ?= $(shell openssl rand -base64 32)
@@ -36,9 +36,9 @@ container-image-api-push: container-image-api
container-image-operator:
mvn package -am -pl operator -Pcontainer-image -DskipTests -Dquarkus.kubernetes.namespace='$${NAMESPACE}' -Dquarkus.container-image.image=$(CONSOLE_OPERATOR_IMAGE)
operator/bin/modify-bundle-metadata.sh "VERSION=$(CSV_VERSION)" "SKIP_RANGE=$(SKIP_RANGE)" "SKOPEO_TRANSPORT=$(SKOPEO_TRANSPORT)"
- operator/bin/generate-catalog.sh $(CSV_VERSION)
+ operator/bin/generate-catalog.sh operator/target/bundle/streamshub-console-operator
$(CONTAINER_RUNTIME) build --platform=$(ARCH) -t $(CONSOLE_OPERATOR_BUNDLE_IMAGE) -f operator/target/bundle/streamshub-console-operator/bundle.Dockerfile
- $(CONTAINER_RUNTIME) build --platform=$(ARCH) -t $(CONSOLE_OPERATOR_CATALOG_IMAGE) -f operator/target/catalog.Dockerfile
+ $(CONTAINER_RUNTIME) build --platform=$(ARCH) -t $(CONSOLE_OPERATOR_CATALOG_IMAGE) -f operator/src/main/docker/catalog.Dockerfile operator
container-image-operator-push: container-image-operator
skopeo copy --preserve-digests $(SKOPEO_TRANSPORT)$(CONSOLE_OPERATOR_IMAGE) docker://$(CONSOLE_OPERATOR_IMAGE)
diff --git a/operator/bin/common.sh b/operator/bin/common.sh
index 9ca5e8d22..358c57da2 100644
--- a/operator/bin/common.sh
+++ b/operator/bin/common.sh
@@ -1,17 +1,5 @@
#!/bin/bash
-SCRIPT_PATH="$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)"
-
-BUNDLE_PATH=${SCRIPT_PATH}/../target/bundle/streamshub-console-operator/
-CSV_FILE_PATH=${BUNDLE_PATH}/manifests/streamshub-console-operator.clusterserviceversion.yaml
-CATALOG_PATH=${SCRIPT_PATH}/../target/catalog
-OPERATOR_CATALOG_CONFIG_YAML_PATH=${CATALOG_PATH}/operator.yaml
-# Operator naming
-ORIGINAL_OPERATOR_NAME="console-operator"
-OPERATOR_NAME="streamshub-console-operator"
-OPERATOR_INSTANCE_NAME="${OPERATOR_NAME}-v${VERSION}"
-OPERATOR_CSV_NAME="${OPERATOR_NAME}.v${VERSION}"
-
YQ="$(which yq 2>/dev/null)" || :
if [ "${YQ}" == "" ] ; then
@@ -25,3 +13,6 @@ if [ "${SKOPEO}" == "" ] ; then
echo "'skopeo' is not installed, please visit https://github.com/containers/skopeo/blob/main/install.md for more info"
exit 1
fi
+
+# Operator naming
+OPERATOR_NAME="streamshub-console-operator"
diff --git a/operator/bin/generate-catalog.sh b/operator/bin/generate-catalog.sh
index fa3b07a81..59a0ff227 100755
--- a/operator/bin/generate-catalog.sh
+++ b/operator/bin/generate-catalog.sh
@@ -1,33 +1,39 @@
#!/bin/bash
+set -xEeuo pipefail
+
SCRIPT_PATH="$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)"
-export VERSION="${1}"
+export CONSOLE_OPERATOR_BUNDLE="${1:-}"
+export USE_HTTP="${2:-false}"
source ${SCRIPT_PATH}/common.sh
+OPERATOR_PATH="$(cd -- "${SCRIPT_PATH}/.." >/dev/null 2>&1 ; pwd -P)"
+CATALOG_PATH=${OPERATOR_PATH}/target/catalog
-echo "[INFO] Generate catalog"
-
-rm -rvf ${CATALOG_PATH} ${CATALOG_PATH}.Dockerfile
+echo "[INFO] Generate catalog in ${CATALOG_PATH}"
+rm -rvf ${CATALOG_PATH}
mkdir -p ${CATALOG_PATH}
+cp -v ${OPERATOR_PATH}/src/main/olm/*.yaml ${CATALOG_PATH}/
+
+for CSV_NAME in $(${YQ} '.entries[].name' ${CATALOG_PATH}/channel.alpha.yaml | sort -V) ; do
+ if [ -f ${OPERATOR_PATH}/src/main/olm/bundles/${CSV_NAME}.yaml ] ; then
+ BUNDLE_IMAGE=$(${YQ} '.image' ${OPERATOR_PATH}/src/main/olm/bundles/${CSV_NAME}.yaml)
+ elif [ -d ${CONSOLE_OPERATOR_BUNDLE} ] ; then
+ BUNDLE_IMAGE=${CONSOLE_OPERATOR_BUNDLE}
+ else
+ BUNDLE_IMAGE=${CONSOLE_OPERATOR_BUNDLE}:$(echo "${CSV_NAME}" | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+(-snapshot)?$')
+ fi
-opm generate dockerfile ${CATALOG_PATH}
-opm init ${OPERATOR_NAME} --default-channel=alpha --output=yaml > ${OPERATOR_CATALOG_CONFIG_YAML_PATH}
-opm render ${BUNDLE_PATH} --output=yaml >> ${OPERATOR_CATALOG_CONFIG_YAML_PATH}
+ RENDER_FLAGS='--output=yaml'
-cat << EOF >> ${OPERATOR_CATALOG_CONFIG_YAML_PATH}
----
-schema: olm.channel
-package: ${OPERATOR_NAME}
-name: alpha
-entries:
- - name: ${OPERATOR_CSV_NAME}
-EOF
+ if [ "${USE_HTTP}" == "true" ] ; then
+ RENDER_FLAGS="--use-http ${RENDER_FLAGS}"
+ fi
-# Rename package names
-${YQ} eval -o yaml -i ". |= select(.package == \"${ORIGINAL_OPERATOR_NAME}\").package = \"${OPERATOR_NAME}\"" "${OPERATOR_CATALOG_CONFIG_YAML_PATH}"
-${YQ} eval -o yaml -i "(.properties[] | select(.value.packageName == \"${ORIGINAL_OPERATOR_NAME}\") | .value.packageName) = \"${OPERATOR_NAME}\"" "${OPERATOR_CATALOG_CONFIG_YAML_PATH}"
+ opm render ${BUNDLE_IMAGE} ${RENDER_FLAGS} > ${CATALOG_PATH}/${CSV_NAME}.yaml
+done
opm validate ${CATALOG_PATH}
-echo "[DEBUG] Catalog generated"
\ No newline at end of file
+echo "[DEBUG] Catalog generated"
diff --git a/operator/bin/modify-bundle-metadata.sh b/operator/bin/modify-bundle-metadata.sh
index f5cdc2300..03203d004 100755
--- a/operator/bin/modify-bundle-metadata.sh
+++ b/operator/bin/modify-bundle-metadata.sh
@@ -1,27 +1,38 @@
#!/bin/bash
+set -xEeuo pipefail
+
SCRIPT_PATH="$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)"
VERSION=""
SKIP_RANGE=""
SKOPEO_TRANSPORT="docker://"
-for ARGUMENT in "$@"
-do
+for ARGUMENT in "$@" ; do
KEY=$(echo "$ARGUMENT" | sed 's/=\(.*\)//')
VALUE=$(echo "$ARGUMENT" | sed 's/^[^=]*=//')
case "$KEY" in
VERSION) VERSION=${VALUE};;
SKIP_RANGE) SKIP_RANGE=${VALUE};;
- ORIGINAL_OPERATOR_NAME) ORIGINAL_OPERATOR_NAME=${VALUE};;
SKOPEO_TRANSPORT) SKOPEO_TRANSPORT=${VALUE};;
*)
esac
done
+if [ -z "${VERSION}" ] ; then
+ echo "[ERROR] VERSION required"
+ exit 1
+fi
+
source ${SCRIPT_PATH}/common.sh
+OPERATOR_INSTANCE_NAME="${OPERATOR_NAME}-v${VERSION}"
+OPERATOR_CSV_NAME="${OPERATOR_NAME}.v${VERSION}"
+
+BUNDLE_PATH=${SCRIPT_PATH}/../target/bundle/streamshub-console-operator/
+CSV_FILE_PATH=${BUNDLE_PATH}/manifests/streamshub-console-operator.clusterserviceversion.yaml
+
api_name="console-api"
ui_name="console-ui"
operator_name="console-operator"
diff --git a/operator/bin/release-prepare.sh b/operator/bin/release-prepare.sh
new file mode 100755
index 000000000..eeebd5f80
--- /dev/null
+++ b/operator/bin/release-prepare.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+set -xEeuo pipefail
+
+SCRIPT_PATH="$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)"
+OPERATOR_PATH="$(cd -- "${SCRIPT_PATH}/.." >/dev/null 2>&1 ; pwd -P)"
+
+PRERELEASE_VERSION="${1?prerelease version is required}"
+RELEASE_VERSION="${2?release version is required}"
+POSTRELEASE_VERSION="${3?postrelease version is required}"
+VERSION="${4?current version is required}"
+IMAGE_NAME="${5?image name is required}"
+GIT_STAGE="${6:-false}"
+
+source ${SCRIPT_PATH}/common.sh
+
+PRERELEASE_CSV_NAME="${OPERATOR_NAME}.v${PRERELEASE_VERSION}"
+RELEASE_CSV_NAME="${OPERATOR_NAME}.v${RELEASE_VERSION}"
+POSTRELEASE_CSV_NAME="${OPERATOR_NAME}.v${POSTRELEASE_VERSION}"
+
+if [ "${VERSION}" == "${POSTRELEASE_VERSION}" ] ; then
+ # Running via the `completionGoals` of the maven-release-plugin
+ echo "[INFO] Running release completion with version ${VERSION}"
+
+ # Create new entry for the next development cycle, "replaces" the version just released
+ ${YQ} -i '.entries += {
+ "name": "'${POSTRELEASE_CSV_NAME}'",
+ "replaces": "'${RELEASE_CSV_NAME}'"
+ }' ${OPERATOR_PATH}/src/main/olm/channel.alpha.yaml
+
+ if [ "${GIT_STAGE}" == "true" ] ; then
+ git add ${OPERATOR_PATH}/src/main/olm/channel.alpha.yaml
+ fi
+else
+ # Running via the `preparationGoals` of the maven-release-plugin
+ echo "[INFO] Running release preparation for version ${VERSION}"
+
+ # Change the name of the entry to be the released version (e.g removing the -snapshot suffix)
+ ${YQ} -i '(.entries[].name | select(. == "'${PRERELEASE_CSV_NAME}'")) = "'${RELEASE_CSV_NAME}'"' \
+ ${OPERATOR_PATH}/src/main/olm/channel.alpha.yaml
+
+ # Create a file with a reference to the bundle image to be generated during the release
+ echo "image: ${IMAGE_NAME}:${VERSION}" > ${OPERATOR_PATH}/src/main/olm/bundles/${RELEASE_CSV_NAME}.yaml
+
+ if [ "${GIT_STAGE}" == "true" ] ; then
+ git add ${OPERATOR_PATH}/src/main/olm/channel.alpha.yaml ${OPERATOR_PATH}/src/main/olm/bundles/${RELEASE_CSV_NAME}.yaml
+ fi
+fi
diff --git a/operator/bin/version-check.sh b/operator/bin/version-check.sh
new file mode 100755
index 000000000..640499716
--- /dev/null
+++ b/operator/bin/version-check.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+set -xEeuo pipefail
+
+SCRIPT_PATH="$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)"
+OPERATOR_PATH="$(cd -- "${SCRIPT_PATH}/.." >/dev/null 2>&1 ; pwd -P)"
+
+VERSION="${1?version is required}"
+
+source ${SCRIPT_PATH}/common.sh
+OPERATOR_CSV_NAME="${OPERATOR_NAME}.v${VERSION}"
+ALPHA_CHANNEL=${OPERATOR_PATH}/src/main/olm/channel.alpha.yaml
+
+if [ "$(${YQ} '(.entries[].name | select(. == "'${OPERATOR_CSV_NAME}'"))' ${ALPHA_CHANNEL})" != "" ] ; then
+ echo "[INFO] Bundle ${OPERATOR_CSV_NAME} has an entry in ${ALPHA_CHANNEL}"
+ exit 0;
+fi
+
+echo "[ERROR] Bundle ${OPERATOR_CSV_NAME} has no entry in ${ALPHA_CHANNEL}"
+exit 1;
diff --git a/operator/pom.xml b/operator/pom.xml
index e788653ce..fd97474c3 100644
--- a/operator/pom.xml
+++ b/operator/pom.xml
@@ -144,5 +144,38 @@
+
+ release-preparation
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.3.0
+
+
+ olm-channel-update
+ process-resources
+
+ exec
+
+
+ bin/release-prepare.sh
+
+ ${prereleaseVersion}
+ ${releaseVersion}
+ ${developmentVersion}
+ ${project.version}
+ ${container-image.registry}/${container-image.group}/console-operator-bundle
+
+ true
+
+
+
+
+
+
+
+
diff --git a/operator/src/main/docker/catalog.Dockerfile b/operator/src/main/docker/catalog.Dockerfile
new file mode 100644
index 000000000..2d31e9941
--- /dev/null
+++ b/operator/src/main/docker/catalog.Dockerfile
@@ -0,0 +1,15 @@
+# The base image is expected to contain
+# /bin/opm (with a serve subcommand) and /bin/grpc_health_probe
+FROM quay.io/operator-framework/opm:v1.48.0
+
+# Configure the entrypoint and command
+ENTRYPOINT ["/bin/opm"]
+CMD ["serve", "/configs", "--cache-dir=/tmp/cache"]
+
+# Copy declarative config root into image at /configs and pre-populate serve cache
+ADD target/catalog /configs
+RUN ["/bin/opm", "serve", "/configs", "--cache-dir=/tmp/cache", "--cache-only"]
+
+# Set DC-specific label for the location of the DC root directory
+# in the image
+LABEL operators.operatorframework.io.index.configs.v1=/configs
diff --git a/operator/src/main/java/com/github/streamshub/console/ConsoleReconciler.java b/operator/src/main/java/com/github/streamshub/console/ConsoleReconciler.java
index 7e5bc7109..a88f84316 100644
--- a/operator/src/main/java/com/github/streamshub/console/ConsoleReconciler.java
+++ b/operator/src/main/java/com/github/streamshub/console/ConsoleReconciler.java
@@ -143,7 +143,6 @@
capabilities = "Basic Install",
categories = "Streaming & Messaging",
certified = true,
- skipRange = "placeholder",
others = {
@Annotation(name = "features.operators.openshift.io/fips-compliant", value = "true"),
@Annotation(name = "features.operators.openshift.io/disconnected", value = "true"),
diff --git a/operator/src/main/olm/bundles/README.md b/operator/src/main/olm/bundles/README.md
new file mode 100644
index 000000000..3823c968b
--- /dev/null
+++ b/operator/src/main/olm/bundles/README.md
@@ -0,0 +1,2 @@
+This directory contains bundle stub files with references to the images to be used
+to render the actual bundle metadata placed in the operator's OLM catalog.
diff --git a/operator/src/main/olm/bundles/streamshub-console-operator.v0.5.0.yaml b/operator/src/main/olm/bundles/streamshub-console-operator.v0.5.0.yaml
new file mode 100644
index 000000000..fc953ac2b
--- /dev/null
+++ b/operator/src/main/olm/bundles/streamshub-console-operator.v0.5.0.yaml
@@ -0,0 +1 @@
+image: quay.io/streamshub/console-operator-bundle:0.5.0
diff --git a/operator/src/main/olm/channel.alpha.yaml b/operator/src/main/olm/channel.alpha.yaml
new file mode 100644
index 000000000..657becd78
--- /dev/null
+++ b/operator/src/main/olm/channel.alpha.yaml
@@ -0,0 +1,9 @@
+---
+schema: olm.channel
+name: alpha
+package: streamshub-console-operator
+properties: []
+entries:
+ - name: streamshub-console-operator.v0.5.0
+ - name: streamshub-console-operator.v0.6.0-snapshot
+ replaces: streamshub-console-operator.v0.5.0
diff --git a/operator/src/main/olm/package.yaml b/operator/src/main/olm/package.yaml
new file mode 100644
index 000000000..a2d4e4cce
--- /dev/null
+++ b/operator/src/main/olm/package.yaml
@@ -0,0 +1,5 @@
+---
+schema: olm.package
+name: streamshub-console-operator
+defaultChannel: alpha
+properties: []
diff --git a/pom.xml b/pom.xml
index 3e541fabd..5c14f63ae 100644
--- a/pom.xml
+++ b/pom.xml
@@ -266,6 +266,12 @@
release-preparation
+
+
+
+
+
+
\ No newline at end of file