From 1e70c4cc36b380cd7479c153901e0b444f99eb51 Mon Sep 17 00:00:00 2001
From: Philippe Scorsolini
Date: Fri, 27 Jun 2025 14:57:55 +0200
Subject: [PATCH 1/3] Dropped default registries in crossplane v2
Signed-off-by: Philippe Scorsolini
---
content/v2.0-preview/whats-new/_index.md | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/content/v2.0-preview/whats-new/_index.md b/content/v2.0-preview/whats-new/_index.md
index 1bd1903d..2ae4b8eb 100644
--- a/content/v2.0-preview/whats-new/_index.md
+++ b/content/v2.0-preview/whats-new/_index.md
@@ -221,6 +221,7 @@ Crossplane v2 makes the following breaking changes:
* It removes native patch and transform composition.
* It removes the `ControllerConfig` type.
* It removes support for external secret stores.
+* It removes the default registry for Crossplane Packages.
Crossplane deprecated native patch and transform composition in Crossplane
v1.17. It's replaced by composition functions.
@@ -231,11 +232,27 @@ Crossplane deprecated the `ControllerConfig` type in v1.11. It's replaced by the
Crossplane added external secret stores in v1.7. External secret stores have
remained in alpha for over two years and are now unmaintained.
+Crossplane, introduced configurable default registries (`--registry`) in v1.15,
+when the default moved from `index.docker.io` to `xpkg.upbound.io`. In v1.20
+the default changed to `xpkg.crossplane.io`. Crossplane v2 drops the
+`--registry` flag and requires users to specify a registry URL when installing
+packages, both directly via `spec.package` and indirectly as dependencies.
+Using fully qualified images was already a best practice, but it's now enforced
+to avoid confusion, and ensure users are aware of the registry used by their
+packages.
+
{{}}
As long as you're not using these deprecated or alpha features, Crossplane v2 is
backward compatible with Crossplane v1.x.
{{}}
+{{}}
+Before upgrading to Crossplane v2, please ensure all your Packages fully
+qualified images used by running `kubectl get pkg`, looking for non fully
+qualified images, and update, or rebuild, Packages to use fully qualified
+images, as needed.
+{{}}
+
Crossplane v2 supports legacy v1-style XRs and MRs. Most users will be able to
upgrade from v1.x to Crossplane v2 without breaking changes.
From 6837a5954c85a717b29be7298611e693b8e663fe Mon Sep 17 00:00:00 2001
From: Philippe Scorsolini
Date: Tue, 1 Jul 2025 12:20:22 +0200
Subject: [PATCH 2/3] review
Co-authored-by: Jared Watts
Signed-off-by: Philippe Scorsolini
---
content/v2.0-preview/whats-new/_index.md | 20 +++++++++-----------
1 file changed, 9 insertions(+), 11 deletions(-)
diff --git a/content/v2.0-preview/whats-new/_index.md b/content/v2.0-preview/whats-new/_index.md
index 2ae4b8eb..77608633 100644
--- a/content/v2.0-preview/whats-new/_index.md
+++ b/content/v2.0-preview/whats-new/_index.md
@@ -232,14 +232,12 @@ Crossplane deprecated the `ControllerConfig` type in v1.11. It's replaced by the
Crossplane added external secret stores in v1.7. External secret stores have
remained in alpha for over two years and are now unmaintained.
-Crossplane, introduced configurable default registries (`--registry`) in v1.15,
-when the default moved from `index.docker.io` to `xpkg.upbound.io`. In v1.20
-the default changed to `xpkg.crossplane.io`. Crossplane v2 drops the
-`--registry` flag and requires users to specify a registry URL when installing
-packages, both directly via `spec.package` and indirectly as dependencies.
+Crossplane v2 drops the `--registry` flag that allowed users to specify a default
+registry value and now requires users to always specify a fully qualified URL when
+installing packages, both directly via `spec.package` and indirectly as dependencies.
Using fully qualified images was already a best practice, but it's now enforced
-to avoid confusion, and ensure users are aware of the registry used by their
-packages.
+to avoid confusion and unexpected behavior, as well as to ensure users are aware
+of the registry used by their packages.
{{}}
As long as you're not using these deprecated or alpha features, Crossplane v2 is
@@ -247,10 +245,10 @@ backward compatible with Crossplane v1.x.
{{}}
{{}}
-Before upgrading to Crossplane v2, please ensure all your Packages fully
-qualified images used by running `kubectl get pkg`, looking for non fully
-qualified images, and update, or rebuild, Packages to use fully qualified
-images, as needed.
+Before upgrading to Crossplane v2, please ensure all your Packages are using fully
+qualified images that explicitly specify a registry, i.e. `registry.example.com/repo/package:tag`.
+
+Run `kubectl get pkg` to look for any packages that are not fully qualified, then update or rebuild any Packages to use fully qualified images as needed.
{{}}
From 9a01f6633b73e3be93fd08f9a0d174e72ac896a8 Mon Sep 17 00:00:00 2001
From: Philippe Scorsolini
Date: Tue, 1 Jul 2025 12:24:51 +0200
Subject: [PATCH 3/3] vale
Signed-off-by: Philippe Scorsolini
---
content/v2.0-preview/whats-new/_index.md | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/content/v2.0-preview/whats-new/_index.md b/content/v2.0-preview/whats-new/_index.md
index 77608633..0aab0076 100644
--- a/content/v2.0-preview/whats-new/_index.md
+++ b/content/v2.0-preview/whats-new/_index.md
@@ -236,8 +236,8 @@ Crossplane v2 drops the `--registry` flag that allowed users to specify a defaul
registry value and now requires users to always specify a fully qualified URL when
installing packages, both directly via `spec.package` and indirectly as dependencies.
Using fully qualified images was already a best practice, but it's now enforced
-to avoid confusion and unexpected behavior, as well as to ensure users are aware
-of the registry used by their packages.
+to avoid confusion and unexpected behavior, to ensure users are aware of the
+registry used by their packages.
{{}}
As long as you're not using these deprecated or alpha features, Crossplane v2 is
@@ -246,9 +246,10 @@ backward compatible with Crossplane v1.x.
{{}}
Before upgrading to Crossplane v2, please ensure all your Packages are using fully
-qualified images that explicitly specify a registry, i.e. `registry.example.com/repo/package:tag`.
+qualified images that explicitly specify a registry (`registry.example.com/repo/package:tag`).
-Run `kubectl get pkg` to look for any packages that are not fully qualified, then update or rebuild any Packages to use fully qualified images as needed.
+Run `kubectl get pkg` to look for any packages that aren't fully qualified, then
+update or rebuild any Packages to use fully qualified images as needed.
{{}}