Skip to content

Qserv Operator creates/configures/manages Qserv clusters atop Kubernetes

Notifications You must be signed in to change notification settings

lsst/qserv-operator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

90c0a49 · May 16, 2024
May 10, 2024
May 15, 2024
May 16, 2024
May 16, 2024
Sep 19, 2023
May 16, 2024
Oct 3, 2023
Dec 9, 2021
May 16, 2024
Sep 15, 2022
Dec 9, 2021
Feb 23, 2022
Apr 15, 2022
Sep 6, 2022
Jun 9, 2023
Jan 31, 2022
May 16, 2024
Dec 9, 2021
Jun 9, 2023
Feb 23, 2022
Mar 8, 2021
Nov 12, 2021
Jun 9, 2023
Jun 9, 2023
Jan 31, 2022
Jun 9, 2023
Oct 3, 2023
Oct 3, 2022
Feb 3, 2022
Apr 14, 2022

Repository files navigation

qserv-operator

A qserv operator for Kubernetes based on operator-framework. An Operator is a method of packaging, deploying and managing a Kubernetes application.

Continuous integration for master branch

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 Qserv CI Yes Yes https://qserv-operator.lsst.io/ Yes Yes

Documentation

Access to Qserv-operator documentation

Code analysis

Go Report Card

Security overview

How to publish a new release for the whole Qserv stack

Qserv (and _worker, _master flavor containers), qserv_distrib, qserv_testdata

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.

qserv-operator

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.

How to publish a new release to operatorHub

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

About

Qserv Operator creates/configures/manages Qserv clusters atop Kubernetes

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published