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

Zombienet SDK [Umbrella issue] #1

Open
11 of 18 tasks
wirednkod opened this issue Apr 25, 2023 · 0 comments
Open
11 of 18 tasks

Zombienet SDK [Umbrella issue] #1

wirednkod opened this issue Apr 25, 2023 · 0 comments
Labels
documentation Improvements or additions to documentation

Comments

@wirednkod
Copy link
Contributor

wirednkod commented Apr 25, 2023

The Vision

This issue will track the progress of the new ZombieNet SDK.

We want to create a new SDK for ZombieNet that allow users to build more complex use cases and interact with the network in a more flexible and programatic way.
The SDK will provide a set of building blocks that users can combine in order to spawn and interact (test/query/etc) with the network providing a fluent api to craft different topologies and assertions to the running network. The new SDK will support the same range of providers and configurations that can be created in the current version (v1).

We also want to continue supporting the CLI interface but should be updated to use the SDK under the hood.

The Plan

We plan to divide the work phases to. ensure we cover all the requirement and inside each phase in small tasks, covering one of the building blocks and the interaction between them.

Architecture Proposal

After [team's discussion] (#22) the following architecture was agreed to be followed as a good-initial plan:

image

## Prototype building blocks
Prototype each building block with a clear interface and how to interact with it

Building blocks are replaced with the structure depicted in the image above with crates and crate components;
All issues of Prototype building blocks are closed and replaced with the ones mentioned in the next paragraph;

Crates

  • Support Crate #23 : Responsible for additional capabilities - not specific to our problem space (./crates/support)
  • Configuration Crate #24 : Responsible for creating the configuration and updating it (./crates/configuration)
  • Provider Crate #25 : Responsible for the interaction between different providers (./crates/providers)
  • Orchestrator Crate #26: Responsible for bringing the state of the running network to the expected configuration and managing it in real-time (./crates/orchestrator)
  • Test Runner Crate #27: Responsible for executing tests and reporting their results (./crates/test-runner)

Integrate, test interactions and document

We want to integrate the interactions for all building blocks and document the way that they work together.

Refactor CLI and ensure backwards compatibility

Refactor the CLI module to use the new SDK under the hood.

@wirednkod wirednkod added the documentation Improvements or additions to documentation label Apr 25, 2023
@wirednkod wirednkod changed the title Umbrella SDK issue Zombienet SDK [Umbrella issue] Apr 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
Status: Open
Status: In Progress
Development

No branches or pull requests

1 participant