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.
osko
is in very active development, hardly functional and definitely not stable. Until a v1
release comes around, use at your own risk.
- 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.- refer to the Installation and usage section of the KIND README to use KIND.
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
- 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
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
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 duringgit commit
after reading the project's DCO. - It would be greatly appreciated if you tried using Conventional Commits for the commit style.
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