Crossplane provider/CLI version skew in CI
A provider or configuration package declares a minimum Crossplane version in crossplane: {version: ">=..."}, and the running core or CLI is older. The package will not install and CI validation reports the incompatible constraint.
What this error means
Installing a provider or running crossplane beta validate fails with an "incompatible" version message naming a Crossplane constraint the environment does not meet.
cannot install package: incompatible Crossplane version: package requires
crossplane >=v1.15.0 but the installed version is v1.12.2Common causes
The package requires a newer core version
The provider or function crossplane.version constraint exceeds the core Crossplane installed in the cluster.
The CLI is older than the packages it validates
A pinned CLI in CI lags behind the provider/function versions the repo now targets, so validation uses stale schemas.
How to fix it
Align the core and CLI versions
- Read the required constraint from the error or the package metadata.
- Upgrade the core Crossplane Helm release to a version that satisfies it.
- Bump the pinned CLI in CI to match.
helm upgrade crossplane crossplane-stable/crossplane \
--namespace crossplane-system --version 1.16.0Pin provider versions to what the core supports
If you cannot upgrade the core yet, pin the provider to the last release compatible with the running Crossplane version.
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
name: provider-aws-s3
spec:
package: xpkg.upbound.io/upbound/provider-aws-s3:v1.5.0How to prevent it
- Track the core Crossplane version alongside provider and function versions.
- Upgrade core before adopting packages that require a newer version.
- Keep the CI CLI version aligned with the cluster core version.