Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plugin Installation #53

Closed
gambol99 opened this issue Oct 3, 2019 · 5 comments
Closed

Plugin Installation #53

gambol99 opened this issue Oct 3, 2019 · 5 comments

Comments

@gambol99
Copy link
Contributor

gambol99 commented Oct 3, 2019

Hi @pb82

I thought i'd open a conversation before jumping into coding. In regard to plugin installation, I can see your using an init container plugins (note, i'm not aware of whats behind the quay.io/openshift/origin-grafana image), but I was wondering if using the official images and their https://grafana.com/docs/installation/docker/#installing-plugins-for-grafana plugin installation was an idea? ... extending the grafana crd type and adding a []Plugins and using the env to roll the deployment ...

Whats your thoughts?

@pb82
Copy link
Collaborator

pb82 commented Oct 7, 2019

The openshift/origin-grafana image does not seem to support plugin installation in the way that the official image does. I'd like to keep the operator functional even when using third party images (that is often a requirement for productization or use in internal environments) . That's why its currently implemented using the init container. It works in the following way:

  1. Plugins can be added to dashboards, see for example here
  2. When the operator reconciles the dashboards it builds a list of all plugins that need to be installed (it will also do some sanity checking on the versions)
  3. It passes this list as an env var to the init container when then uses a small Python script to download the plugins and copy them into a volume mounted at the expected Grafana plugins location
  4. Grafana is restarted to load the new Plugins

I've thought about allowing Plugins to be added to the Grafana CR too (instead of only to dashboard CRs) but had no use case yet that would require it.

@gambol99
Copy link
Contributor Author

gambol99 commented Oct 9, 2019

Hi @pb82 ... makes sense to me :-) .. perhaps one solution to enabled both would be to allow users to add additional envs mapped to the deployment ...

@pb82
Copy link
Collaborator

pb82 commented Oct 14, 2019

@gambol99 Additional additional env vars via the CR sounds interesting. Do you see any other use cases (besides plugins) that this would allow?

@pb82
Copy link
Collaborator

pb82 commented Oct 24, 2019

@gambol99 Closing this issue as its more of a feature request. Feel free to reopen if you have a use case for allowing to set the env vars in the CR.

@pb82 pb82 closed this as completed Oct 24, 2019
NissesSenap pushed a commit to NissesSenap/grafana-operator that referenced this issue Mar 10, 2023
* Minor fixes
- Fixes: #24
- Remove unused constatns
* Make instanceSelector required
* Remove instanceSelector verification
* Add local development using kind
* Fix: grafana#53
Create a new status entry NoMatchingInstances to be able to indicate
to the user the the grafana dashboard,folder,datasource that they created
don't match any specific grafana instance.
* Remove client: prefer ingress
A normal user should never use this.
It's only for development.
I have described how to set it up in contributing.md instead.
* Put len(instances.Items) together
NissesSenap pushed a commit to NissesSenap/grafana-operator that referenced this issue Mar 14, 2023
* Minor fixes
- Fixes: #24
- Remove unused constatns
* Make instanceSelector required
* Remove instanceSelector verification
* Add local development using kind
* Fix: grafana#53
Create a new status entry NoMatchingInstances to be able to indicate
to the user the the grafana dashboard,folder,datasource that they created
don't match any specific grafana instance.
* Remove client: prefer ingress
A normal user should never use this.
It's only for development.
I have described how to set it up in contributing.md instead.
* Put len(instances.Items) together
NissesSenap pushed a commit that referenced this issue Mar 14, 2023
* Minor fixes
- Fixes: #24
- Remove unused constatns
* Make instanceSelector required
* Remove instanceSelector verification
* Add local development using kind
* Fix: #53
Create a new status entry NoMatchingInstances to be able to indicate
to the user the the grafana dashboard,folder,datasource that they created
don't match any specific grafana instance.
* Remove client: prefer ingress
A normal user should never use this.
It's only for development.
I have described how to set it up in contributing.md instead.
* Put len(instances.Items) together
@ToonTijtgat2
Copy link

Dear

I think there is a good usecase to make it possible to install grafana plugins via the operator.
Grafana oncall needs a plugin that has nothing to do with a datasource or dashboard.

If there would be a possiblilty to install a plugin via the operator would be a good thing.

Thanks for checking

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants