oskoperator / osko Goto Github PK
View Code? Open in Web Editor NEWOpenSLO Kubernetes Operator
License: Apache License 2.0
OpenSLO Kubernetes Operator
License: Apache License 2.0
Right now, our development environment is relatively tightly coupled to having a running Mimir instance reachable over the network (we are using our company's mimir
dev instance).
It would be great if that coupling wasn't there to make hacking on osko
easier for people who don't have that luxury.
By default, it would be a good idea not to add them, however if someone, for any reason, doesn't have the prometheus-operator
or the CRDs installed to their cluster, we should have a mechanism of adding them ourselves.
Let's get inspired here
Check out mimirrule_controller.go
OpenSLO expects this to be possible and is currently not supported by our types
Search for TODO
with this
This issue is a record of a conversation that we had around multitenancy in Mimir and our company's specific use-case and how OSKO could support that use-case without it being intrusive for other people using the project
osko.com/mimir-sync: true
)osko.com/target-tenant
is set or not, default no tenantosko.com/target-tenant: "infra"
)osko.com/source-tenants: ["infra", "logging"]
)source_tenants
, if multi-tenant, have to include target
osko.com/source-tenants
should be Datasource-based (therefore, SLI-based)osko.com/target-tenant
defaults to namespace name, unless it's set at the META Datasource or SLO levelDatasource
META resource - osko.com/meta-ds: true
connectionDetails
target-tenant
for our use-casesource-tenants
, appended to all SLIs1 datasource with:
Example:
apiVersion: openslo.com/v1
kind: Datasource
metadata:
labels:
app.kubernetes.io/name: datasource
app.kubernetes.io/instance: datasource-sample
app.kubernetes.io/part-of: slo-kubernetes-operator
app.kubernetes.io/managed-by: kustomize
app.kubernetes.io/created-by: slo-kubernetes-operator
name: datasource-main # should it have some special name/annotation?
spec:
description: Mimir Example Datasource
type: mimir
connectionDetails:
address: https://mimir.monitoring.dev.heu.group/
syncPrometheusRules: true
targetTenant: billing
sourceTenants:
- billing
- infra
If neither targetTenant
or sourceTenants
are present, treat the type: mimir
datasource as not multitenant. If either is present, the other has to be as well.
We will create PrometheusRule
resources and sync them to the Mimir cluster using another controller as part of osko
.
With that same controller, sync other PrometheusRule
resources from this namespace to the cluster as well, as defined by the optional targetTenant
(if syncPrometheusRules
is true
)
This can be useful if one is using an authentication proxy in front of Mimir/Cortex
ref.: https://grafana.com/docs/mimir/latest/operators-guide/secure/authentication-and-authorization/
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.