refactor(ci): workflows nested cluster#2414
Open
universal-itengineer wants to merge 20 commits into
Open
Conversation
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>
Move large nightly E2E shell blocks into reusable scripts so the workflow stays focused on orchestration and the scripts can be shellchecked directly. 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>
48cb015 to
39fbd69
Compare
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Migrate the release pipeline Generate values.yaml step onto the shared
render-dvp-static-values.sh and unify nightly/release into a single
values.yaml.tmpl. The only previous difference (enabledModules: [console])
is now driven by the ENABLED_MODULES env var rendered as
"enabledModules: [${ENABLED_MODULES}]" (empty for nightly, which the
cluster-config chart treats as no enabled modules via default (list)).
Secrets and BOOTSTRAP_DEV_PROXY now flow through step env instead of
inline shell, two duplicate checkout steps are removed, and the worker
additionalDisks size becomes a workflow_call input
(cluster_config_additional_disk_size) flowing through ADDITIONAL_DISK_SIZE
(50Gi nightly, 250Gi release).
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
bb7b023 to
6b39c04
Compare
Derive the envsubst whitelist from the template so it can no longer drift from the placeholders actually used, decode the dev registry docker config once and select the first auth entry explicitly, and write both discovered registry values in a single yq invocation. Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Refactors the nested-cluster E2E CI workflows and supporting automation.
This PR replaces large inline workflow shell blocks with versioned scripts under
.github/scripts/bash/e2e, adds reusable composite actions for common setup, registry login, kubeconfig, run ID, and encrypted artifact handling, and splits the previous monolithic E2E workflows into dedicated nightly and release-oriented reusable pipelines.It also adds lint gates for GitHub Actions and shell scripts, moves repeated E2E CI logic into task/script entrypoints, and unifies static cluster values rendering through a shared
test/dvp-static-cluster/values.yaml.tmplplus.github/scripts/bash/e2e/render-dvp-static-values.sh. Nightly and release flows now pass runtime differences through environment/input values such asENABLED_MODULESandcluster_config_additional_disk_size.Why do we need it, and what problem does it solve?
The old nested-cluster E2E workflows mixed orchestration with long inline shell logic. That made changes difficult to review, duplicated release and nightly behavior, and left important CI code paths without direct lint coverage.
Moving operational logic into tracked scripts and composite actions makes the pipelines easier to maintain and reuse. The shared values template also removes drift between nightly and release cluster configuration while keeping release-specific settings explicit through workflow inputs.
What is the expected result?
Nested-cluster nightly and release E2E jobs continue to provision prerequisites, render static cluster values, configure storage and virtualization, run tests, collect encrypted artifacts, and clean up resources through the refactored workflows.
Validation for these changes is available with:
task lint:shellchecktask lint:actionlinttask e2e:e2e:cifrom the repository roottask e2e:ciinsidetest/e2eChecklist
Changelog entries