Skip to content

Conversation

@jferrazbr
Copy link

@jferrazbr jferrazbr commented Oct 22, 2025

Issue #51881

Prepare KDM CI and test scripts to work when KDM marks Prime-only Kubernetes versions. Same idea as PR #1822 for v2.9, adapted per branch.

Problem

KDM CI and test scripts needs to:

  • Detect when a selected Kubernetes version requires Prime.
  • Choose staging or production Prime registry.
  • Fail early with a clear message if Prime is required but no registry endpoint is available in the environment.
  • Keep non-Prime behavior unchanged.

Solution

  • Prime detection in scripts:

    • Read channels, compare the release item’s "minChannelServerVersion" with "LAST_COMMUNITY_RANCHER" to decide Prime.
    • Pick "staging" or "production" Prime based on the version tag pattern.
    • Set "PRIME_MODE" and "PRIME_REG_HOST" for downstream provisioning test.
  • Early guard:

    • If "PRIME_MODE" is 1 but no registry endpoint is present, stop with a user-friendly message that explains why.
  • Defaults and safety:

    • Respect an already set "CATTLE_AGENT_IMAGE" from the environment. Only set a default if it is empty.
    • Keep normal flow when Prime is not required.
  • Workflow integration:

    • Variables "LAST_COMMUNITY_RANCHER" and "PRIME_AGENT_IMAGE" are passed from the workflow env. Scripts keep safe defaults for local runs.

@jferrazbr jferrazbr changed the title add prime mode logic to the provisioning-tests script [v2.12] add prime mode logic to the provisioning-tests script Oct 22, 2025
@jferrazbr
Copy link
Author

Green run with prime test from this commit ✔️

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds Prime mode detection logic to the KDM provisioning test scripts for the v2.12 branch. It enables the test infrastructure to automatically detect when a selected Kubernetes version requires Prime registry access and configure the appropriate staging or production Prime registry endpoints.

Key changes:

  • Adds version comparison and channel parsing utilities to detect Prime-only Kubernetes versions
  • Implements Prime registry selection logic (staging for RC versions, production for stable)
  • Adds early validation to fail with clear error messages when Prime is required but registry endpoints are unavailable

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
scripts/semver_g.awk New AWK script for semantic version comparison (ignoring pre-release suffixes)
scripts/channels-pick-minchan-for-version.awk New AWK script to extract minChannelServerVersion from channels file
scripts/prime-route New shell script that implements Prime mode detection and registry configuration logic
scripts/provisioning-tests Integrates Prime mode detection with early validation for missing registry endpoints
.github/workflows/provisioning-tests.yaml Adds vault secret retrieval for Prime registries and sets Prime configuration environment variables
Dockerfile.dapper Passes Prime-related environment variables through to Dapper container
docs/release.md Documents Prime configuration variables and usage guidelines for release management

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@jferrazbr jferrazbr force-pushed the add-prime-mode-support-to-v2.12-provisioning-tests branch 2 times, most recently from eb3348f to ae7b6a4 Compare December 15, 2025 22:13
@jakefhyde jakefhyde requested a review from a team December 16, 2025 14:38
@jferrazbr jferrazbr force-pushed the add-prime-mode-support-to-v2.12-provisioning-tests branch from ae7b6a4 to 0a6798a Compare December 26, 2025 11:38
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.

3 participants