Skip to content

validate: Use crossplane:stable as the default image#148

Merged
adamwg merged 1 commit into
crossplane:mainfrom
adamwg:awg/diversionce
Jun 25, 2026
Merged

validate: Use crossplane:stable as the default image#148
adamwg merged 1 commit into
crossplane:mainfrom
adamwg:awg/diversionce

Conversation

@adamwg

@adamwg adamwg commented Jun 25, 2026

Copy link
Copy Markdown
Member

Description of your changes

Now that the CLI version has diverged from the Crossplane core version, we can't assume there will always be a core Crossplane image with the CLI's version number. Use the stable tag, which gets updated with each release, as the default Crossplane image for validate so that we always point at the latest. Users can still select a different version using the --crossplane-image flag.

Fixes #145

I have:

Now that the CLI version has diverged from the Crossplane core version, we can't
assume there will always be a core Crossplane image with the CLI's version
number. Use the `stable` tag, which gets updated with each release, as the
default Crossplane image for `validate` so that we always point at the
latest. Users can still select a different version using the
`--crossplane-image` flag.

Fixes crossplane#145

Signed-off-by: Adam Wolfe Gordon <awg@upbound.io>
@adamwg adamwg requested review from a team, jcogilvie and tampakrap as code owners June 25, 2026 15:14
@adamwg adamwg requested review from haarchri and removed request for a team June 25, 2026 15:14
@coderabbitai

coderabbitai Bot commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 12bf4d92-f87d-46db-b751-740afbf33330

📥 Commits

Reviewing files that changed from the base of the PR and between f0d8480 and 65c41bc.

📒 Files selected for processing (1)
  • cmd/crossplane/validate/cmd.go

📝 Walkthrough

Walkthrough

The validate command now uses a fixed default Crossplane image from the CLI flag definition. The runtime fallback that constructed an image tag from the current version was removed.

Changes

Validate command image defaulting

Layer / File(s) Summary
CLI default and run path
cmd/crossplane/validate/cmd.go
CrossplaneImage now defaults to xpkg.crossplane.io/crossplane/crossplane:stable, and Run no longer assigns a version-derived image when the field is empty. The unused fmt and version imports were removed.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes


Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 error)

Check name Status Explanation Resolution
Breaking Changes ❌ Error validate no longer derives the default Crossplane image from the CLI version, changing public command behavior under the cmd/** breaking-change policy. Add the breaking-change label, or preserve the prior version-derived default behavior if this change should stay non-breaking.
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title is descriptive and accurately summarizes the change to the validate default image.
Description check ✅ Passed The description is clearly related to the PR and explains why the default image is changing.
Linked Issues check ✅ Passed The change addresses #145 by defaulting validate to xpkg.crossplane.io/crossplane/crossplane:stable and still allowing overrides.
Out of Scope Changes check ✅ Passed The diff appears focused on the validate image default and contains no unrelated code changes.
Feature Gate Requirement ✅ Passed PASS: The PR only changes validate's default image and removes runtime version fallback; it doesn't add apis/** changes or any new experimental feature requiring a gate.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

CacheDir string `default:"~/.crossplane/cache" help:"Absolute path to the cache directory for downloaded schemas." predictor:"directory"`
CleanCache bool `help:"Clean the cache directory before downloading package schemas."`
CrossplaneImage string `help:"Specify the Crossplane image for validating built-in schemas."`
CrossplaneImage string `default:"xpkg.crossplane.io/crossplane/crossplane:stable" help:"Specify the Crossplane image for validating built-in schemas."`

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

this looks reasonable since we've now diverged versions and it looks like it correctly points to the most current stable image:

❯ docker run --rm xpkg.crossplane.io/crossplane/crossplane:stable --version
v2.3.3

@adamwg adamwg merged commit d0fecff into crossplane:main Jun 25, 2026
10 checks passed
@adamwg adamwg deleted the awg/diversionce branch June 25, 2026 18:04
@github-actions

Copy link
Copy Markdown

Successfully created backport PR for release-2.4:

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

v2.4.0 crossplane resource validate raises manifest unknown error

2 participants