Skip to content

feat: add option to run core integration tests on kind#493

Open
fstr wants to merge 4 commits intomainfrom
fstr/kind-integration-tests
Open

feat: add option to run core integration tests on kind#493
fstr wants to merge 4 commits intomainfrom
fstr/kind-integration-tests

Conversation

@fstr
Copy link
Contributor

@fstr fstr commented Mar 22, 2026

Problem

  1. The current firebolt-python-sdk integration test suite for core relies on docker-compose. The docker-compose setup is not part of the repository and is instead set up via a reusable GitHub Action. The compose file could be moved into this repository, but the more different cluster variations you want to test with the SDK, the more cumbersome the compose setup gets.
  2. The compose setup is only run once before all integration tests are executed. If a test requires a different setup, the compose must be part of the test driver itself.

Trade Off
Both issues could be resolved while sticking to compose, but we already have a firebolt-core Helm chart published in GHCR, which makes multi-node cluster setups straight forward and undergoes continuous testing. If there are more components released via Helm charts in the future, they can easily be integrated. Kind has the downside that we need to work with kubectl port-forward to reach the core containers, so it's another layer in the test setup.

Implementation

  • Add option to run Firebolt Core tests on a local kind cluster instead of using docker-compose with the goal of phasing out the docker-compose setup. For now, we can run the integration test suite with --run-compose or --run-kind or both. This approach was also chosen to show that there are no breaking changes.
  • Update fixtures to depend on kind_app_setup, as the CORE_URL is only known after we installed the Helm chart and ran kubectl port-forward
  • We set-up a kind cluster with a single Firebolt Core Helm chart installation at the beginning of the integration test suite. All tests run against this installation. This mirrors the docker-compose setup.
    • Add option to do additional customized Helm installations per test function/method. For example a 5 node cluster.

@fstr
Copy link
Contributor Author

fstr commented Mar 22, 2026

The core image and the Helm chart version are still hardcoded. For now the goal is to run and test the integration test suite in the GHA CI.

@fstr fstr requested a review from a team as a code owner March 22, 2026 12:12
@fstr
Copy link
Contributor Author

fstr commented Mar 22, 2026

@fstr fstr force-pushed the fstr/kind-integration-tests branch from cf1d65f to ce2b080 Compare March 23, 2026 07:58
Copy link

@kop kop left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes perfect sense!

@fstr fstr force-pushed the fstr/kind-integration-tests branch 4 times, most recently from 335b823 to 18e9c08 Compare March 23, 2026 09:45
@fstr fstr force-pushed the fstr/kind-integration-tests branch from 18e9c08 to afed2a1 Compare March 24, 2026 01:20
@sonarqubecloud
Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
65.9% Coverage on New Code (required ≥ 80%)

See analysis details on SonarQube Cloud

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

Successfully merging this pull request may close these issues.

3 participants