Skip to content

End-to-end test suite refactor #611

Open
@snay2

Description

@snay2

Problem

Our current integration test suite is written in Bash and is becoming difficult to maintain. We would like to be able to support more diverse cluster types and NTH installations, but adding such support is cumbersome and requires a lot of duplicated work in each test. We also want to make it easier to create new tests as we add new features.

Proposal

Create a integration test framework, written in Go, that includes cluster-agnostic drivers, common functions (e.g., "simulate an ITN", "verify that the pod has been evicted"), and reusable components that are easy to combine into relevant end-to-end test cases. Then, rewrite our existing tests using this framework and incorporate them in our CI/CD system. Once we are confident that the new test suite is performing at least as well as the existing test suite, remove the old tests from the repo.

Tenets

  • Cluster agnostic: User can choose any of the following:
    • Fully-managed local kind cluster (setup + teardown, setup, reuse existing)
    • Partially-managed EKS cluster (setup, reuse existing)
  • Extensible: Creating a new test does not require copying any boilerplate code. Tests should be designed with reusable components.
  • Consumable test output: Test output is accessible to human and automated test runners
  • Fast: Tests run quickly to provide immediate, actionable feedback to developers

NTH v2

Work is underway for version 2 of NTH (read the design proposal here). This new test suite should support v2, ideally in a way that even if the framework needs to be updated, the individual tests can remain the same.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type: EnhancementNew feature or requeststalebot-ignoreTo NOT let the stalebot update or close the Issue / PR

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions