Skip to content

Conversation

@universal-itengineer
Copy link
Member

@universal-itengineer universal-itengineer commented Jan 14, 2026

Description

This PR adds support for automated E2E testing of the Virtualization module in nested clusters for nightly tests. A complete infrastructure is implemented for deploying a static Deckhouse cluster with support for various storage types (Ceph and Replicated), configuring the Virtualization module, and running E2E tests.

Key Changes:

  • New reusable workflow (.github/workflows/e2e-reusable-pipeline.yml) for E2E testing with parameterization support
  • Updated matrix workflow (.github/workflows/e2e-matrix.yml) with support for running tests for different storage types
  • Static cluster infrastructure (test/dvp-static-cluster/) including:
    • Helm charts for cluster and infrastructure configuration
    • Scripts for kubeconfig generation and Deckhouse queue management
    • Storage configurations (Ceph and SDS Replicated)
  • CI/CD improvements:
    • Automatic generation and configuration of kubeconfig for nested cluster
    • Storage setup (Ceph/RBD and SDS Replicated)
    • Virtualization module configuration with support for various storage classes
  • Various fixes in templates and configurations

Why do we need it, and what problem does it solve?

Problems Solved by This PR:

  1. Lack of automated E2E testing in nested clusters: Previously, there was no way to automatically test the Virtualization module in real nested cluster conditions with various storage types.

  2. Lack of coverage for different storage scenarios: There was no unified mechanism for testing the Virtualization module with different storage types (Ceph, Replicated) within a single CI/CD process.

  3. Need for nightly testing: Infrastructure was required for regularly running long-running E2E tests at night without blocking development.

Solution Benefits:

  • Automation: Fully automated process of cluster deployment, storage configuration, Virtualization module setup, and test execution
  • Scalability: Reusable workflow allows easy addition of new storage types and configurations
  • Reliability: Automatic checks at each stage of deployment and configuration
  • Transparency: Centralized test result reports with delivery to communication channels
  • Flexibility: Parameterization allows testing different versions of Deckhouse and Virtualization module

What is the expected result?

  1. Automatic nested cluster deployment:

    • Creation of a static Deckhouse cluster using VMs
    • Automatic configuration of networks, pods, and services
    • Generation and configuration of kubeconfig for accessing the nested cluster
  2. Storage setup:

    • Automatic configuration of Ceph/RBD storage with creation of necessary resources (StorageClass, CephCluster, BlockPool)
    • Automatic configuration of SDS Replicated storage with creation of LVM Volume Groups and ReplicatedStorageClass
    • Verification of storage readiness before use
  3. Virtualization module configuration:

    • Automatic enabling of the Virtualization module in the nested cluster
    • DVCR (Deckhouse Virtual Container Registry) configuration using the appropriate StorageClass
    • CIDR configuration for virtual machines
    • Waiting for module components to be ready (virt-handler, virt-controller, etc.)
  4. E2E test execution:

    • Scheduled launch of E2E tests in the configured environment
    • Support for timeouts and error handling
    • Collection of test results
  5. Nightly testing support:

    • Ability to run long-running E2E tests at night via workflow_dispatch
    • Parallel execution of tests for different storage types
    • Efficient resource usage with concurrency group support
  6. Improved debugging:

    • Detailed logging at each stage of the process
    • Preservation of artifacts (kubeconfig, reports) for subsequent analysis
    • Informative error messages indicating the stage where the failure occurred

Checklist

  • The code is covered by unit tests.
  • e2e tests passed.
  • Documentation updated according to the changes.
  • Changes were tested in the Kubernetes cluster manually.

Changelog entries

section: ci
type: feature
summary: e2e nightly test in nested cluster

Copy link
Member

@fl64 fl64 left a comment

Choose a reason for hiding this comment

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

I suggest check all the sh scripts via https://www.shellcheck.net and fix all the issues.

@universal-itengineer universal-itengineer force-pushed the feat/ci/nightly-e2e-test-infra branch from d40af14 to 6908b14 Compare January 15, 2026 13:03
@universal-itengineer universal-itengineer force-pushed the feat/ci/nightly-e2e-test-infra branch 3 times, most recently from 97b4b99 to 1d82a46 Compare January 16, 2026 12:35
@universal-itengineer universal-itengineer force-pushed the feat/ci/nightly-e2e-test-infra branch from ffa3cd8 to 92511d2 Compare January 19, 2026 07:03
nevermarine
nevermarine previously approved these changes Jan 21, 2026
@universal-itengineer universal-itengineer force-pushed the feat/ci/nightly-e2e-test-infra branch 2 times, most recently from 25525f7 to b7363b8 Compare January 22, 2026 10:41
nevermarine
nevermarine previously approved these changes Jan 22, 2026
universal-itengineer and others added 18 commits January 22, 2026 15:05
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Add an E2E test reporting flow: generate a structured report artifact per storage type in the reusable pipeline and aggregate/summarize those artifacts in the matrix workflow, then post the combined results to the channel.
---------

Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
@universal-itengineer universal-itengineer merged commit 6bcbd79 into main Jan 22, 2026
27 of 28 checks passed
@universal-itengineer universal-itengineer deleted the feat/ci/nightly-e2e-test-infra branch January 22, 2026 12:09
hardcoretime pushed a commit that referenced this pull request Jan 25, 2026
…ci for nightly e2e tests (#1876)

Description
This PR adds support for automated E2E testing of the Virtualization module in nested clusters for nightly tests. A complete infrastructure is implemented for deploying a static Deckhouse cluster with support for various storage types (Ceph and Replicated), configuring the Virtualization module, and running E2E tests.

Key Changes:
New reusable workflow (.github/workflows/e2e-reusable-pipeline.yml) for E2E testing with parameterization support
Updated matrix workflow (.github/workflows/e2e-matrix.yml) with support for running tests for different storage types
Static cluster infrastructure (test/dvp-static-cluster/) including:
Helm charts for cluster and infrastructure configuration
Scripts for kubeconfig generation and Deckhouse queue management
Storage configurations (Ceph and SDS Replicated)
CI/CD improvements:
Automatic generation and configuration of kubeconfig for nested cluster
Storage setup (Ceph/RBD and SDS Replicated)
Virtualization module configuration with support for various storage classes
Various fixes in templates and configurations

---------

Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
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.

5 participants