The Stroom K8s Operator is a Kubernetes operator written in Go and developed using the Operator SDK.
Its purpose is to simplify the deployment and operational management of a Stroom cluster in a Kubernetes environment.
Documentation: https://gradata-systems.github.io/stroom-k8s-operator/
The documentation covers installation (Helm, including air-gapped), configuring a StroomCluster, databases and backups, task autoscaling, day-2 operations, troubleshooting and a full CRD reference.
This project is not related to stroom-kubernetes, which is a Helm chart for deploying a Stroom stack, including optional components like Kafka. The purpose of this Operator is to focus on the Stroom deployment and automation.
- Custom Resource Definitions (CRDs) for defining the desired state of a Stroom cluster, nodes and database
- Ability to designate dedicated
ProcessingandFrontendnodes and route event traffic appropriately - Automatic secrets management (e.g. secure database credential generation and storage)
- Simple deployment via Helm charts
- Scheduled database backups
- Stroom node audit log shipping
- Stroom node lifecycle management
- Prevent node shutdown while Stroom processing tasks are still active
- Automatic task draining during shutdown
- Rolling Stroom version upgrades
- Automatically scale the maximum tasks for each Stroom node by continually assessing average CPU usage
The operator requires Stroom to use an external OpenID Connect identity provider. See the prerequisites before you start.
helm install -n stroom-operator-system --create-namespace stroom-operator-crds \
oci://ghcr.io/gradata-systems/helm-charts/stroom-operator-crds
helm install -n stroom-operator-system stroom-operator \
oci://ghcr.io/gradata-systems/helm-charts/stroom-operatorThen follow the quick start to deploy a Stroom cluster. Example resources are in ./samples.
If you are just looking to install the Operator and don't wish to make any changes, you can skip this section.
You need Go (the version in go.mod) and Docker. The Makefile downloads the other tools it uses into bin/.
make build # build the operator binary
make test # unit and envtest tests
make docker-build IMG=<registry>/<image>:<tag> # build the operator image
make test-e2e # end-to-end tests in a kind cluster; see test/e2e/README.mdSee RELEASING.md for how releases are published.
The documentation source is in ./docs and is published with MkDocs Material. If you change the API types in api/v1, regenerate the CRD reference with hack/gen-crd-docs.sh. See Contributing to the docs.