Skip to content

feat: Automate MVD deployment and E2E transfer tests #597

@alzcurda-i2cat

Description

@alzcurda-i2cat

Feature Request

Which Areas Would Be Affected?

Deployment, testing, automation scripts, and Kubernetes seed jobs.

Why Is the Feature Desired?

Currently, setting up the Minimum Viable Dataspace (MVD) locally and testing end-to-end data transfers requires running multiple manual CLI commands (KinD, Helm, kubectl) and manually interacting with the Bruno collection. This process is time-consuming, repetitive for developers, and error-prone.

Additionally, the identityhub-seed.yaml jobs sometimes fail abruptly during cluster startup if the Keycloak service takes a bit longer to be fully ready to issue tokens, causing race conditions.

Who will sponsor this feature?

N/A

Solution Proposal

We would like to contribute an automation layer to simplify the lifecycle without adding new technology stacks to the project.

Our idea is to provide:

  1. Deployment automation: A mechanism to automatically orchestrate the cluster creation, docker build, and deploy steps (Traefik, Gateway API, Kustomize) in one command.
  2. Transfer automation: A script to programmatically simulate a Consumer fetching the catalog, negotiating a contract, and executing an E2E data transfer.
  3. Seed Job Resilience: Increase the backoffLimit in identityhub-seed.yaml and add an active retry-loop (wait mechanism) for fetching the Keycloak issuer token.

Architectural Question for the Maintainers:
Before we submit a PR, we would like to know the preferred approach:

  • For deployment automation, should we wrap the setup steps in a pure Bash script or do you prefer extending build.gradle.kts with specific lifecycle tasks?
  • For the E2E Transfer automation, should we write a Bash script using curl, or should we rely exclusively on the existing Java test suite in tests/end2end/?

We are happy to implement it according to your preferences!

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions