A qserv operator for Kubernetes based on operator-framework. An Operator is a method of packaging, deploying and managing a Kubernetes application.
Build Qserv-operator and run Qserv multi-node integration tests (using a fixed Qserv version)
CI | Status | Image build | e2e tests | Documentation generation | Static code analysis | Image security scan |
---|---|---|---|---|---|---|
Gihub | Yes | Yes | https://qserv-operator.lsst.io/ | Yes | Yes |
Access to Qserv-operator documentation
These are built and published by running the two jenkins jobs rebuild-publish-qserv-dev and build-dev, after pushing tags to all the involved repositories. Then release tags must be added to the resulting containers on docker hub.
Validate the integration of qserv-operator
with the release in CI (i.e. GHA), using a dedicated branch
cd <project_directory>
# RELEASE format is "<YYYY>.<M>.<i>-rc<j>"
RELEASE="2024.5.1-rc5"
git checkout -b $RELEASE
# Script below edit `qserv` image name in `manifests/image.yaml`, and prepare operatorHub packaging
./publish-release.sh "$RELEASE"
Then edit qserv-ingest
version in tests/e2e/integration.sh
, to validate the release component altogether.
Once the release CI pass, merge the release branch to main
branch.
In main
branch, create the release tag and the image
git tag -a "$RELEASE" -m "Version $RELEASE"
git push --follow-tags
./push-image.sh
This will automatically push the release tag to the repositories, and push the tagged container images to docker hub.
The above step (i.e. release publishing) must have been completed before doing this one.
make bundle
RELEASE="2024.5.1-rc5"
OPERATOR_SRC_DIR="$PWD"
# Clone community-operators and create a branch
gh repo clone https://github.com/lsst/community-operators.git /tmp/community-operators
cd /tmp/community-operators
# Synchronize with upstream repository
git fetch upstream
git checkout main
git merge upstream/main
git push origin main
# Prepare a Pull-Request
git checkout -b "$RELEASE"
cp -r $OPERATOR_SRC_DIR/bundle /tmp/community-operators/operators/qserv-operator/"$RELEASE"
# WARNING: Edit manually 'version' and 'replaceVersion' fields at the end of file qserv-operator.clusterserviceversion.yaml
git add .
git commit --signoff -m "Release $RELEASE for qserv-operator"
git push --set-upstream origin "$RELEASE"
gh repo view --web
# Then make a PR: https://github.com/lsst/community-operators/compare
NOTE
If a CI test fail in PR for community-operators official repository, it is possible to run it locally on a workstation using:
RELEASE="2024.5.1-rc5"
OPP_PRODUCTION_TYPE=k8s bash <(curl -sL https://raw.githubusercontent.com/redhat-openshift-ecosystem/community-operators-pipeline/ci/latest/ci/scripts/opp.sh) \
kiwi operators/qserv-operator/$RELEASE