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

Resolve licensing issues for Gatling Highcharts #809

Closed
abstractj opened this issue May 13, 2024 · 8 comments · Fixed by #828
Closed

Resolve licensing issues for Gatling Highcharts #809

abstractj opened this issue May 13, 2024 · 8 comments · Fixed by #828
Labels
dependencies Pull requests that update a dependency file status/triage

Comments

@abstractj
Copy link

abstractj commented May 13, 2024

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 abstractj added dependencies Pull requests that update a dependency file status/triage labels May 13, 2024
@abstractj
Copy link
Author

abstractj commented May 13, 2024

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

cc @stianst @keycloak/maintainers

@ahus1
Copy link
Contributor

ahus1 commented May 14, 2024

@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
Copy link
Author

@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
Copy link
Author

@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
Copy link
Contributor

ahus1 commented May 15, 2024

@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
Copy link
Author

@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 added a commit to ahus1/keycloak-benchmark that referenced this issue May 22, 2024
ahus1 added a commit to ahus1/keycloak-benchmark that referenced this issue May 22, 2024
@ahus1
Copy link
Contributor

ahus1 commented May 22, 2024

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. #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 ahus1 changed the title Replace Gatling with Hyperfoil Resolve licensing issues for Gatling Highcharts May 23, 2024
@ahus1
Copy link
Contributor

ahus1 commented May 23, 2024

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:

  • Hyperfoil - declarative programming with YAML, 96 stars on GitHub, some Red Hatters already involved, infrequent releases
  • K6 - integration in TestKube, programmed in JavaScript, 23k stars on GitHub, frequent releases. K6 is a CNCF project
  • Locust - tests scripted in Python, 23k stars on GitHub, used internally in some Red Hat projects, frequent releases

Requirements to consider:

  • The replacement of Gatling should include running distributed tests out of the box, which would then simplify our setup
  • We would be looking into a better integration with a chaos testing tool to simplify our setup
  • The future tool should (continue) to run in bare-metal setup to people can run it to test their own environment

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file status/triage
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants