osko - OpenSLO Kubernetes Operator
This operator aims to provide it's users with simple management of SLIs, SLOs, alerting rules and alerts routing via Kubernetes CRDs according to the OpenSLO specification (currently v1
).
See the design document for more details on what osko
aims to do.
Here be dragons!
osko
is in very active development, hardly functional and definitely not stable. Until a v1
release comes around, use at your own risk.
Test It Out
- You’ll need a Kubernetes cluster to run
osko
. You can use KIND to get a local cluster for testing, or run against a remote cluster.
Note: Your controller will automatically use the current context in your kubeconfig file (i.e. whatever cluster kubectl cluster-info
shows).
- Install the CRDs into the cluster:
make install
- We also depend on Prometheus Operator CRDs (
monitoring.coreos.com
API group). Let's install that to our local cluster now:
helm install prometheus-operator-crds prometheus-community/prometheus-operator-crds
- Install sample CRDs into the cluster, so
osko
has resources to work with:
kubectl apply -k config/samples/
- Run your controller (this will run in the foreground, so switch to a new terminal if you want to leave it running):
make run
NOTE: You can also run this in one step by running: make install run
Modifying the API definitions
If you are editing the API definitions, generate the manifests such as CRs or CRDs using:
make manifests
NOTE: Run make --help
for more information on all potential make
targets
More information can be found via the Kubebuilder Documentation
Contributing
Feel free to open an issue or a pull (merge) request if
you would like to see a particular feature implemented after reading the below requirements:
- Please sign your commits off using the
-s
flag during git commit
after reading the
project's DCO.
- It would be greatly appreciated if you tried using
Conventional Commits for the commit style.
License
For license, see the LICENSE file in the root of this repository.
If you have any questions or need general advice or help, feel free to join the
#osko channel on the OpenSLO Slack