https://github.com/lsst/qserv-operator
Qserv Operator creates/configures/manages Qserv clusters atop Kubernetes
https://github.com/lsst/qserv-operator
kubernetes lsst operator-sdk
Last synced: about 1 year ago
JSON representation
Qserv Operator creates/configures/manages Qserv clusters atop Kubernetes
- Host: GitHub
- URL: https://github.com/lsst/qserv-operator
- Owner: lsst
- Created: 2019-06-18T09:49:32.000Z (almost 7 years ago)
- Default Branch: main
- Last Pushed: 2025-01-15T19:36:24.000Z (over 1 year ago)
- Last Synced: 2025-02-25T06:43:27.791Z (over 1 year ago)
- Topics: kubernetes, lsst, operator-sdk
- Language: Go
- Homepage: http://dm.lsst.org/
- Size: 8.97 MB
- Stars: 6
- Watchers: 4
- Forks: 7
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# qserv-operator
A qserv operator for Kubernetes based on [operator-framework](https://github.com/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 | [](https://github.com/lsst/qserv-operator/actions?query=workflow%3A"CI") | Yes | Yes | https://qserv-operator.lsst.io/ | Yes | Yes |
## Documentation
Access to [Qserv-operator documentation](https://qserv-operator.lsst.io/)
# Code analysis
[](https://goreportcard.com/report/github.com/xrootd/xrootd-k8s-operator)
[Security overview](https://github.com/lsst/qserv-operator/security)
## 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](https://ci.lsst.codes/blue/organizations/jenkins/dax%2Frelease%2Frebuild_publish_qserv-dev/activity) and [build-dev](https://ci.lsst.codes/blue/organizations/jenkins/dax%2Fdocker%2Fbuild-dev/activity), 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
# RELEASE format is "..-rc"
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](https://github.com/k8s-operatorhub/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
```
---