Skip to content

Slice 7: Consolidate NeuVector pipelines 9→1 (RFC Phase 7) #790

Description

@floatingman

Parent PRD

#585 (RFC: #586 — Phase 7)

What to build

Consolidate the 9 NeuVector pipeline jobs in qa-nv-jenkins-test.yml into a single parameterized Jenkinsfile — the 8 stubs in validation/neuvector/pipeline/allinone-pass/ plus validation/neuvector/pipeline/k8s-pass/automation_regression_k8s_pass. Each is a thin scripted pipeline that SSHes to an external execution server and invokes allinone_regression.sh (or the k8s-pass equivalent) with different scenario parameters.

Scope: allinone-pass/ (8 files) + the automation_regression_k8s_pass job. The 17 k8s-pass/ sanity scripts (automation_k8s130_*, automation_oc4*, automation_rke2_*) are out of scope — tracked in #792.

Files removed

  • validation/neuvector/pipeline/allinone-pass/Jenkinsfile.Neuvector_allinone_pass_regression (10 lines)
  • validation/neuvector/pipeline/allinone-pass/Jenkinsfile.nv_allinone_auto_01nv_allinone_auto_07 (10 lines each, 7 files)
  • validation/neuvector/pipeline/k8s-pass/automation_regression_k8s_pass (the 9th JJB job)

File created

  • validation/neuvector/pipeline/Jenkinsfile.neuvector — single Declarative Pipeline parameterized by the test scenario currently encoded in the filenames (e.g. a SCENARIO parameter mapped to the BUILD_TAG / DIR arguments passed to allinone_regression.sh).

Design

  • Single parameterized pipeline replaces 9 jobs (8 allinone stubs + the k8s-pass regression job)
  • Preserves the existing SSH-to-exec-server + allinone_regression.sh invocation contract (no change to what runs, only to how it's triggered)
  • Converts to Declarative Pipeline syntax where practical
  • Consumes shared functions from qa-jenkins-library where applicable (likely minimal — these stubs are thin)

Relationship to #788

This slice is pipeline-file consolidation only. #788 covers a separate concern: the NeuVector Go test code is not airgap-compatible, and needs an airgap-capable pipeline built (which would be a new pipeline, not a consolidation of these 8 stubs). The two are related but independent — consolidating these stubs does not fix airgap compatibility, and airgap work does not require this consolidation.

Acceptance criteria

  • Jenkinsfile.neuvector created (Declarative where practical)
  • All 9 scenarios reproducible via parameters from the single pipeline
  • SSH-to-exec-server + allinone_regression.sh contract preserved
  • Original 9 files moved to validation/deprecated/ (Phase 10, Slice 5: Deprecation, cleanup, and pipeline documentation #593)
  • JJB job definitions in rancherlabs/jenkins-job-builder (qa-nv-jenkins-test.yml) — the 9 jobs updated to point at the new pipeline (or collapsed into one parameterized job)
  • Pipeline passes ≥1 successful live execution per scenario

Out of scope

Blocked by

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestteam/pit-crewslack notifier for pit crew

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions