keycloak / keycloak-benchmark

Keycloak Benchmark
https://www.keycloak.org/keycloak-benchmark/
Apache License 2.0
125 stars 68 forks source link

Resolve licensing issues for Gatling Highcharts #809

Closed abstractj closed 1 month ago

abstractj commented 2 months ago

Description

As Keycloak seeks to complete the incubating onboarding items, it must align with the CNCF license policy, which mandates board approval for non-Apache 2.0 dependencies.

Gatling, which incorporates code from Akka that adopted the "source available" Business Source License (BSL) v1.1 a few years ago, raises licensing concerns. Consequently, we must transition to Hyperfoil, which is governed by the ASL 2 license, in our upcoming releases. Additionally, we should remove Gatling from the current binary distribution if required to maintain compliance until the integration of Hyperfoil is finalized.

Acceptance Criteria

  1. Confirm that replacing Gatling with Hyperfoil resolves any existing licensing issues.
  2. Evaluate the technical implications and compatibility of integrating Hyperfoil.
  3. If required for compliance, temporarily stop the distribution of Gatling in current binary releases.
  4. Inform users about the change and any temporary measures taken.

Discussion

No response

Motivation

Adhere to the CNCF license policies.

Details

abstractj commented 2 months ago

@ahus1 could you please add to your team's backlog?

cc @stianst @keycloak/maintainers

ahus1 commented 2 months ago

@abstractj - Gatling uses Akka 2.6 which is still Apache 2.0 licensed. So I see no immediate need to migrate, and I don't think Gatling will soon (possibly never at all) migrate to a BSL version of Akka.

Looking at licenses, there is a special license for the Highcharts library bundled by Gatling, see https://github.com/gatling/gatling-highcharts/blob/main/LICENSE. Still, it is a free-to-use license.

Given the two items of information above, please comment on the priority you would like this to be followed up on.

abstractj commented 2 months ago

@abstractj - Gatling uses Akka 2.6 which is still Apache 2.0 licensed. So I see no immediate need to migrate, and I don't think Gatling will soon (possibly never at all) migrate to a BSL version of Akka.

Looking at licenses, there is a special license for the Highcharts library bundled by Gatling, see gatling/gatling-highcharts@main/LICENSE. Still, it is a free-to-use license.

Given the two items of information above, please comment on the priority you would like this to be followed up on.

Hi @ahus1 you are correct. When considering upgrading to the latest version of Gatling, it's important to note that this release uses Akka 2.9.3, which is covered under the Business Source License 1.1. You can find more details on the license here: Akka License Details. I'm currently checking with our legal team and will provide an update soon.

From my perspective, if we maintain our current setup, there is no immediate need to migrate. However, if an upgrade becomes necessary, we might need to switch to Hyperfoil since the Business License on Akka 2.9.3 is generally not accepted for Red Hat projects/products and by the CNCF.

abstractj commented 2 months ago

@ahus1 I received feedback from our legal team regarding the Gatling Highcharts. They have confirmed that the Gatling Highcharts license will not be approved by CNCF, and it also violates Red Hat policy. Given this situation, while there is no urgency to rush the migration, we should prioritize transitioning to Hyperfoil in our upcoming sprints and include this task in our backlog.

@stianst do you have anything else to add?

ahus1 commented 2 months ago

@abstractj - the migration might not be simple and we would need to build the required knowledge first. With us focusing on A/A clusters, this might be deferred for quite some time. I'll keep you updated on the prioritization of this epic.

abstractj commented 2 months ago

@abstractj - the migration might not be simple and we would need to build the required knowledge first. With us focusing on A/A clusters, this might be deferred for quite some time. I'll keep you updated on the prioritization of this epic.

Thank you @ahus1, I will sync with Stian about it next week and I will also double-check the timeline with people at CNCF.

ahus1 commented 1 month ago

I've created a PR which would allow us to run Gatling without the highcharts library. When we do this, the HTML report will be reduced in its widgets. https://github.com/keycloak/keycloak-benchmark/pull/828

Consider this as a fix for the licensing issue. We would then still need to evaluate a different tool as a successor for Gatling, but we wouldn't need to meet any CNCF deadlines.

ahus1 commented 1 month ago

Removing highcharts should remove the licensing problem #828. With that, the issue is resolved and there is no immediate need to change to a different tool.

As long-term alternatives to avoid being in a dead end for future Akka issues, we're considering the following tools that will be evaluated separated:

Requirements to consider: