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

Adapt to Grafana's new licensing #6045

Closed
olix0r opened this issue Apr 20, 2021 · 6 comments · Fixed by #7567
Closed

Adapt to Grafana's new licensing #6045

olix0r opened this issue Apr 20, 2021 · 6 comments · Fixed by #7567
Assignees
Milestone

Comments

@olix0r
Copy link
Member

olix0r commented Apr 20, 2021

Grafana is now going to be distributed under the AGPLv3 https://grafana.com/blog/2021/04/20/grafana-loki-tempo-relicensing-to-agplv3/

I'm not lawyerly enough to articulate the implications of this on Linkerd's use of Grafana in the viz extension but, before upgrading Grafana, we'll need to understand this more fully so that those who are adopting or distributing Linkerd--an Apache v2 licensed project--can make informed decisions about the use AGPLv3 code.

As a starting point, we may want to entirely separate a linkerd-grafana extension so that linkerd-viz can be installed without having to worry about these licensing restrictions.

@olix0r olix0r added this to the stable-2.11.0 milestone Apr 20, 2021
@olix0r
Copy link
Member Author

olix0r commented Apr 20, 2021

As I understand it, as long as we're distributing an unmodified Grafana image, that shouldn't impact the rest of Linkerd's licensing. My main questions are:

  • If we extend Grafana base images with our configurations, is that considered modification?
  • Does (hyper-)linking to Grafana from the Linkerd CLI or Web UI constitute "linking" in the same sense as it would for library code?

My expectation is that both of these scenarios are benign and Linkerd can effectively "wrap" Grafana's AGPLv3 code; but I'm really not an expert on this.

@stefanprodan
Copy link

stefanprodan commented Apr 21, 2021

I see you are relicensing with Apache here https://github.com/linkerd/linkerd2/blob/main/grafana/Dockerfile#L3, maybe that's an issue? @olix0r have you opened a ticket in CNCF Servicedesk around this? We also distribute Grafana as part of Flux monitoring stack, but we don't build our own container yet. Once our dashboards will hit the ectd limit we'll have to do same thing as you.

@stefanprodan
Copy link

@olix0r looks like we need to stop updating Grafana and stick to the last version released under Apache, see https://twitter.com/cra/status/1384859663615864833?s=20

This is a sad day for most CNCF projects....

@coderanger
Copy link

Not a lawyer but I was sent this thread from someone with questions so an attempt to bring things back to reality a bit:

If we extend Grafana base images with our configurations, is that considered modification?

It wouldn't be a modification as you are not modifying any Grafana source code. However it miiiiight be a derived work. The FSF's position is that dynamic linking does activate virality and Docker layering is kind of like dynamic linking if you squint really hard. However the FSF's position is not reflected in US case law which holds the opposite view, that a combined work involving both sides does not in and of itself create a derived work relationship. This is an area that actual lawyers should weigh in on but I wouldn't assume it would be a problem and as a specific case we can potential request Grafana put their Dockerfiles back under Apache2 as they have for the JS libraries and related code.

Does (hyper-)linking to Grafana from the Linkerd CLI or Web UI constitute "linking" in the same sense as it would for library code?

No, flatly and clearly. What it does do is activate the AGPL's code sharing provisions meaning if a user of Linkerd asks for the source code of Grafana, give them a link to https://github.com/grafana/grafana and you're in compliance with the license.

@stale
Copy link

stale bot commented Jul 22, 2021

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 14 days if no further activity occurs. Thank you for your contributions.

@stale stale bot added the wontfix label Jul 22, 2021
@adleong adleong added the pinned label Jul 27, 2021
@stale stale bot removed the wontfix label Jul 27, 2021
@kriswill
Copy link

Please be aware that this is highly unlikely to be granted, and that the Governing Board has (at the time of this writing) not previously granted any exceptions for components that are under AGPL-3.0.

From: https://github.com/cncf/foundation/blob/master/agpl-recommendations.md#seek-an-exception-from-the-governing-board

@olix0r olix0r removed this from the stable-2.11.0 milestone Oct 21, 2021
@olix0r olix0r added this to the stable-2.12.0 milestone Nov 23, 2021
alpeb added a commit that referenced this issue Jan 6, 2022
Fixes #6045 #7358

With this change we stop building a Grafana-based image preloaded with the Linkerd Grafana dashboards.

Instead, we'll recommend users to install Grafana by themselves, and we provide a file `grafana/values.yaml` with a default config that points to all the same Grafana dashboards we had, which are now hosted in https://grafana.com/orgs/linkerd/dashboards .

The new file `grafana/README.md` contains instructions for installing the official Grafana Helm chart, and mentions other available methods.

The `grafana.enabled` flag has been removed, and `grafanaUrl` has been moved to `grafana.url`. This will help consolidating other grafana settings that might emerge, in particular when #7429 gets addressed.

## Dashboards definitions changes

The dashboard definitions under `grafana/dashboards` (which should be kept in sync with what's published in https://grafana.com/orgs/linkerd/dashboards), got updated, adding the `__inputs`, `__elements` and `__requires` entries at the beginning, that were required in order to be published.
alpeb added a commit that referenced this issue Jan 11, 2022
* Stop shipping grafana-based image

Fixes #6045 #7358

With this change we stop building a Grafana-based image preloaded with the Linkerd Grafana dashboards.

Instead, we'll recommend users to install Grafana by themselves, and we provide a file `grafana/values.yaml` with a default config that points to all the same Grafana dashboards we had, which are now hosted in https://grafana.com/orgs/linkerd/dashboards .

The new file `grafana/README.md` contains instructions for installing the official Grafana Helm chart, and mentions other available methods.

The `grafana.enabled` flag has been removed, and `grafanaUrl` has been moved to `grafana.url`. This will help consolidating other grafana settings that might emerge, in particular when #7429 gets addressed.

## Dashboards definitions changes

The dashboard definitions under `grafana/dashboards` (which should be kept in sync with what's published in https://grafana.com/orgs/linkerd/dashboards), got updated, adding the `__inputs`, `__elements` and `__requires` entries at the beginning, that were required in order to be published.
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Feb 11, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants