GithubHelp home page GithubHelp logo

jaehnri / grafana-operator Goto Github PK

View Code? Open in Web Editor NEW

This project forked from grafana/grafana-operator

0.0 1.0 0.0 249.3 MB

An operator for Grafana that installs and manages Grafana instances, Dashboards and Datasources through Kubernetes/OpenShift CRs

Home Page: https://grafana-operator.github.io/grafana-operator/

License: Apache License 2.0

Shell 0.85% Lua 0.53% Go 58.14% Makefile 4.21% Smarty 0.53% Dockerfile 0.22% Jsonnet 35.53%

grafana-operator's Introduction

Grafana Operator

Grafana Grafana Operator GitHub tag GitHub Last Commit GitHub Contributors

The Grafana Operator is a Kubernetes operator built to help you manage your Grafana instances in and outside of Kubernetes.

We make it possible for you to manage and share your grafana resources through code between multiple instances in an easy and scalable way.

Find out more on our official website: grafana.github.io/grafana-operator.

Send a Pull Request, and show off your company to the world!

Some Convincing Benefits

Why go with the Grafana-operator over a standard standalone Grafana deployment for your monitoring stack?

If the benefits of using an operator over standalone products as outlined by the people that created them and our current high-profile users aren't enough to convince you, here's some more:

  • The ability to run a multi-namespace, multi-instance Grafana deployment without having to concern yourself with the overhead of managing it!
    • Management of Dashboards, Datasources, Plugins etc. through code
      • Efficient dashboard management through Jsonnet/Grafonnet, plugins and folders
    • Agnostic deployment on k8s and Openshift
      • The operator knows what environment it runs, and adjust the deployment accordingly without user interference!
    • Management of external Grafana instances
      • Run the operator for off-cluster instances and leverage the benefits of GitOps without abandoning your previous instances!
  • Multi-Arch builds and container images.
  • Operatorhub/OLM support (Allows you to install the operator with a few clicks).

Get In Touch!

The best way to reach us is to file an issue on Issues Tab or click on the Slack Icon below

We're happy to help out in all grafana-operator issues, and if you're not sure, we'll point you in the right direction!

Getting Started

All of our releases are available through

Follow our docs for more installation specific instructions

Development And Local Deployment

For more information on how to contribute to the operator look at CONTRIBUTING.md.

Version Support and Development Mindset

V4 is available on the v4 branch, however, this version will only receive bug fixes and security updates.

V5 is the current, actively developed and maintained version of the operator, which you can find on the Master Branch.

A more in-depth overview of v5 is available in the intro blog

V5 is a ground-up rewrite of the operator to refocus development on:

  • Performance
  • Reliability
  • Maintainability
  • Extensibility
  • Testability
  • Usability

The previous versions of the operator have some serious tech-debt issues, which effectively prevent community members that aren't massively familiar with the project and/or its codebase from contributing features that they wish to see.

These previous versions, we're built on a "as-needed" basis, meaning that whatever was the fastest way to reach the desired feature, was the way it was implemented. This lead to situations where controllers for different resources were using massively different logic, and features were added wherever and however they could be made to work.

V5 aims to re-focus the operator with a more thought out architecture and framework, that will work better, both for developers and users. With certain standards and approaches, we can provide a better user experience through:

  • Better designed Custom Resource Definitions (Upstream Grafana Native fields will be supported without having to whitelist them in the operator logic).
    • Upstream documentation can be followed to define the Grafana Operator Custom Resources.
    • This also means a change in API versions for the resources, but we see this as a benefit, our previous mantra of maintaining a seamless upgrade from version to version, limited us in the changes we wanted to make for a long time.
  • A more streamlined Grafana resource management workflow, one that will be reflected across all controllers.
  • Using an upstream Grafana API client (standardizing our interactions with the Grafana API, moving away from bespoke logic).
  • The use of a more up-to-date Operator-SDK version, making use of newer features.
    • along with all relevant dependencies being kept up-to-date.
  • Proper testing.
  • Cleaning and cutting down on code.
  • Multi-instance and Multi-namespace support!

grafana-operator's People

Contributors

addreas avatar adheipsingh avatar bobbins228 avatar david-martin avatar dependabot[bot] avatar elamaran11 avatar gambol99 avatar hvbe avatar itewk avatar jaehnri avatar jameelb avatar kevchu3 avatar meln5674 avatar mosuke5 avatar nissessenap avatar openshift-merge-robot avatar pb82 avatar polefishu avatar r-lawton avatar rodrigc avatar silverlyra avatar slach avatar smuda avatar steventobin avatar stgarf avatar tamcore avatar thesuess avatar voigtus avatar weisdd avatar zoetrope avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.