Update Helm release crossplane to v2 (main)
This MR contains the following updates:
| Package | Update | Change |
|---|---|---|
| crossplane (source) | major |
1.20.1 -> 2.0.2
|
⚠️ WarningSome dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
crossplane/crossplane (crossplane)
v2.0.2
This is a patch release scoped to fixing issues reported by users of Crossplane v2.0.
What's Changed
- [Backport release-2.0] Fix CRD-to-MRD converter to preserve provider configuration CRDs by @github-actions[bot] in #6722
Full Changelog: https://github.com/crossplane/crossplane/compare/v2.0.1...v2.0.2
v2.0.1
This is a patch release scoped to fixing issues reported by users of Crossplane v2.0.
⚠️ Install latest v2.0 patch release
v2.0.1 has some blocking issues that were discovered after extended post-release testing and feedback. It is not the most recent v2 patch release. We strongly advise installing the latest patch (v2.0.2 as of this writing) to have the highest quality experience in your control plane.
The most recent patch has been promoted to the stable channel, so if you simply install or upgrade using the stable channel, you don't need to take any further action.
What's Changed
- [Backport release-2.0] Support function cache XfnCacheMaxTTL CLI option by @github-actions[bot] in #6712
- [Backport release-2.0] Fix composed resource names containing invalid characters by @github-actions[bot] in #6714
Full Changelog: https://github.com/crossplane/crossplane/compare/v2.0.0...v2.0.1
v2.0.0
The v2.0.0 release is the first major version update in years for the Crossplane project. It takes all the feedback and lessons from our amazing community of adopters of v1.x releases over the last 5 years and incorporates them into an improved, more capable, and streamlined experience. There are so many exciting enhancements that we are happy to share with the community today, as well as important changes to understand and consider when upgrading from v1.20.
⚠️ Install latest v2.0 patch release
v2.0.0 has some blocking issues that were discovered after extended post-release testing and feedback. It is not the most recent v2 patch release. We strongly advise installing the latest patch (v2.0.2 as of this writing) to have the highest quality experience in your control plane.
The most recent patch has been promoted to the stable channel, so if you simply install or upgrade using the stable channel, you don't need to take any further action.
Upgrade from v1
It is strongly advised to upgrade to v2.0 from the most recent v1 minor version, which is v1.20. Upon upgrade for each minor release, Crossplane performs any necessary migrations of its CRDs to ensure the latest versions are stored in the Kubernetes API server. Therefore, it is important to upgrade sequentially through one minor version at a time.
For example, if you are currently on v1.18, then you should first upgrade to v1.19, then v1.20, before finally upgrading to v2.0. The upgrade path in this example looks like v1.18 --> v1.19 --> v1.20 --> v2.0. To reiterate, you should be running a v1.20 version before you upgrade to v2.0.
🎉 Highlights
The v2 release is chock full of awesome new features that focus on making Crossplane easier to use, operate, and understand as well as be a better fit for application level resources in addition to infrastructure.
-
Broader composition capabilities - Compositions can now include any Kubernetes resource, e.g.
Deployment,Configmap,Secret, custom resources - anything from the Kubernetes API, not just Crossplane-defined resources. This enables full-stack abstractions of both applications and infrastructure and makes Crossplane a great fit for your entire tech stack. - Namespaced by default - Composite Resources (XRs) and Managed Resources (MRs) are now namespaced by default, providing better isolation boundaries for your end users and aligning better with Kubernetes conventions and practices.
-
Declarative day two operations - The new
Operationtype supports one-off, scheduled, and event-driven workflows for operational tasks like backups, rolling upgrades, configuration validation, and scheduled maintenance. - Managed resource filtering - When installing a provider, you can now install only the specific managed resources you need instead of getting everything from a provider. No more 100's of CRDs that slow down your control plane!
-
Reconciliation observability - The reconciliation process of Crossplane objects is now easier to get insight into its progress as status conditions will now have the
observedGeneration, i.e. the version of the resource, for which they were reconciled. You no longer need to wonder if Crossplane has seen and reconciled your latest changes.
🚨 Warnings and breaking changes
Backwards Compatibility with v1
The Crossplane maintainers have taken thoughtful consideration to make major improvements and changes in v2 while maintaining backwards compatibility for the vast majority of v1 workloads. We expect most users to be able to upgrade to v2 without any changes to their control plane. However, there is a set of 4 breaking changes that we have made, mostly to long deprecated features and features that have remained stuck in alpha for a long time.
If you are not using any of these 4 features, you can upgrade to v2 without any issues and your existing workload should continue operating as usual.
The following features have been removed:
- Native patch and transform within composition (
mode: Resources)- You can migrate your compositions to use function pipelines with the
crossplane beta convert pipeline-compositioncommand available in thev1crossplaneCLI. See the Crossplane docs for details.
- You can migrate your compositions to use function pipelines with the
-
ControllerConfig- These have been replaced by
DeploymentRuntimeConfig. You can migrate your existingControllerConfigtoDeploymentRuntimeConfigwith thecrossplane beta convert deployment-runtimecommand available in thev1crossplaneCLI. See the Crossplane docs for details.
- These have been replaced by
- External secret store support
- Crossplane no longer directly supports writing connection details to external destinations outside of the control plane. We recommend using an alternative such as External Secrets Operator. Note that It is still fully supported to write connection details to a
Secretwithin the control plane usingspec.writeConnectionSecretToRefavailable on managed resources.
- Crossplane no longer directly supports writing connection details to external destinations outside of the control plane. We recommend using an alternative such as External Secrets Operator. Note that It is still fully supported to write connection details to a
- Default registry
- When specifying a package for Crossplane to install, you must now fully qualify the package with the registry that hosts it, both directly via
spec.packageand indirectly as dependencies. For example, it is no longer valid to simply usecrossplane-contrib/provider-family-azure:v1.13.0which does not specify the host registry. You must supply the fully qualified package, including the host registry, likexpkg.crossplane.io/crossplane-contrib/provider-family-azure:v1.13.0. If a registry is not specified, then an error will be returned for the package.
- When specifying a package for Crossplane to install, you must now fully qualify the package with the registry that hosts it, both directly via
Go module path is now github.com/crossplane/crossplane/v2
As this release is a major version bump that has breaking changes, the rules for Go modules required the Crossplane module path to be updated to include the v2 version suffix.
If you import crossplane and crossplane-runtime into your go.mod, when you update to v2+ you will also need to update the module path. All import statements in your code base need to be updated to also include this v2 module path, as it is effectively a module change.
See this commit as an example of this type of update: d6c489c
The module paths for v2 versions of crossplane and crossplane-runtime are:
github.com/crossplane/crossplane/v2github.com/crossplane/crossplane-runtime/v2
Metrics name changes
The Prometheus metrics that Crossplane exposes for the controller engine and function response caches have been updated with the addition of Operations that expands the functionality of function pipelines. The names of these metrics have been updated as follows:
-
crossplane_composition_controllers_*-->crossplane_engine_controllers_* -
crossplane_composition_watches_*-->crossplane_engine_watches_* -
crossplane_composition_run_function_*-->crossplane_function_run_function_*
login/logout removed from Crossplane CLI
The crossplane xpkg login and crossplane xpkg logout commands have been removed from the Crossplane CLI. To login to a registry before pushing a package, consider using docker login locally, or the docker/login-action from CI.
An example of this pattern can be seen in many Community Extension Projects, for example function-auto-ready.
deletionPolicy removed for namespaced managed resources
Namespaced managed resources, that are net new in v2, no longer have the deletionPolicy field. This behavior can be recreated using a ManagementPolicy without the "Delete" option. For example:
managementPolicies: ["Create", "Observe", "Update"]
Existing cluster scoped managed resources are not affected.
🏅 Release MVP
Since v2.0 is such a massive release with many months of effort across many contributors in the community, it was impossible to pick a single release MVP this time - so we're going big with 3 MVPs!
-
@joebowbeer did lots of bleeding edge testing and finding issues in the daily builds of Crossplane v2 in the
mainbranch. He was often the quickest to spot any new regressions creeping in that e2e tests did not catch, so he contributed significantly to the overall quality of the release. - @jcogilvie is driving major improvements in the Crossplane CLI that will enable broader extensions to its functionality from the community. He's also driving SIG-cli to organize folks interested in more collaboration in this area.
-
@gotwarlost generously donated
function-hclas a Community Extension Project, which provides function users with a familiar HCL syntax and functionality.
Thank you very much release MVPs!
What's Changed
- chore(deps): bump crossplane-runtime to v1.21.0-rc.0 by @jbw976 in #6448
- chore: add release-1.20 to renovate baseBranches by @jbw976 in #6450
- fix: consistently watch unstructured.Unstructured in real time compositions by @jbw976 in #6462
- Use aliases for deprecated flags by @negz in #6471
- Misc package revision fixes from debugging
TestDowngradeE2E failures by @negz in #6415 - v1.20 post release tasks by @jbw976 in #6480
- Update core Crossplane controllers to use the new observed generation condition manager by @n3wscott in #6442
- Let XR and claim conditions persist observed generation by @negz in #6490
- Merge Crossplane v2 changes into
mainby @negz in #6489 - Enable extracting package.yaml from private repositories. by @jastang in #6493
- Fix composite reconciler enabled features option by @ulucinar in #6504
- Create #sig-cli by @jcogilvie in #6508
- e2e: Wait for correct package in TestCompositionRevisionSelection by @turkenh in #6511
- Release v2.0 in August, not v1.21 by @negz in #6514
- chore(deps): update github/codeql-action digest to
fca7ace(main) by @crossplane-renovate[bot] in #6204 - fix(deps): update module github.com/prometheus/client_golang to v1.22.0 (main) by @crossplane-renovate[bot] in #6099
- fix(deps): update module github.com/sigstore/sigstore to v1.9.4 (main) by @crossplane-renovate[bot] in #6100
- add env annotation to render docker runtime container by @blacs30 in #6372
- chore(deps): update actions/stale digest to
5bef64f(main) by @crossplane-renovate[bot] in #6518 - chore(deps): update actions/create-github-app-token digest to
d72941d(main) by @crossplane-renovate[bot] in #6517 - feat(crank): add support for list input to validate by @eric-carlsson in #6323
- fix(validate): digest handling and defaults from xrds/crds by @haarchri in #6519
- chore(deps): update bufbuild/buf-action digest to
c231a1a(main) by @crossplane-renovate[bot] in #6524 - Don't label RBAC roles with the XRD that created them by @negz in #6521
- chore(deps): update module github.com/cloudflare/circl to v1.6.1 [security] (main) by @crossplane-renovate[bot] in #6526
- Split out package runtime reconciler from revision controller by @turkenh in #6498
- chore(deps): update docker/login-action digest to
74a5d14(main) by @crossplane-renovate[bot] in #6532 - refactor: use slices.Contains to simplify code by @one230six in #6531
- chore(deps): update github/codeql-action digest to
ce28f5b(main) by @crossplane-renovate[bot] in #6536 - Support Rendering Default Values from XRD in Crossplane CLI by @man-ish-k in #6161
- Remove
spec.controllerConfigReffrom package types by @negz in #6520 - Drop
writeConnectionSecretToReffrom v2 XRs by @negz in #6473 - feat: deny protection.Usages across namepsace w/o by by @phisco in #6533
- chore(deps): update mheap/require-checklist-action digest to
46d2ca1(main) by @crossplane-renovate[bot] in #6540 - Validate kubernetes resource name before applying XR by @twobiers in #6535
- Use DeepCopy when assigning from the runtime config Deployment template's spec by @ulucinar in #6538
- Proposal: Crossplane v2 by @negz in #6255
- fix: Add claim labels only if claim exist by @man-ish-k in #6541
- chore(deps): update gcr.io/distroless/static docker digest to
b7b9a69(main) by @crossplane-renovate[bot] in #6542 - fix(deps): update module github.com/emicklei/dot to v1.8.0 (main) by @crossplane-renovate[bot] in #6177
- Enable crossplane to be deployed via ko by @n3wscott in #6510
- chore(deps): update renovatebot/github-action action to v41.0.22 (main) by @crossplane-renovate[bot] in #6547
- fix(deps): update module dario.cat/mergo to v1.0.2 (main) by @crossplane-renovate[bot] in #6554
- feat: drop v1alpha1 EnvironmentConfigs by @phisco in #6556
- chore: fix some comment by @chengehe in #6563
- chore(deps): update actions/upload-artifact digest to
ea165f8(main) by @crossplane-renovate[bot] in #6523 - Drop
internal/xresource- move back topkg/resourcefrom crossplane-runtime by @negz in #6553 - feat: drop default registry for packages by @phisco in #6548
- chore(deps): update module github.com/go-viper/mapstructure/v2 to v2.3.0 [security] (main) by @crossplane-renovate[bot] in #6573
- remove Upbound code from code base by @jbw976 in #6562
- Design document: Day Two Operations by @negz in #6557
- Bump to Go 1.24, golangci-lint v2.2 by @negz in #6584
- Split apart PackageRuntime setting into functions and providers by @n3wscott in #6567
- Run golangci-lint run --fix on main by @negz in #6592
- Disable wsl_v5 linter by @negz in #6593
- Block namespaced XRs from composing cluster scoped resources by @lsviben in #6588
- Attempt to tame E2E tests by @negz in #6598
- Make
TestCrossplaneLifecycleE2E pass (sometimes?) by @negz in #6604 - chore(deps): update github/codeql-action digest to
181d5ee(main) by @crossplane-renovate[bot] in #6608 - Automatically re-run each E2E step if it fails by @negz in #6607
- ci(e2es): export kind logs on failure by @phisco in #6609
- Add ManagedResourceDefinition one-pager by @negz in #6577
- Revert "ci(e2es): export kind logs on failure" by @negz in #6615
- Requeue on poll interval, not pipeline TTL, when RTC is disabled by @negz in #6619
- Add ManagedResourceDefinition type, solo. by @n3wscott in #6620
- chore(deps): pin nick-fields/retry action to
ce71cc2(main) by @crossplane-renovate[bot] in #6616 - chore(deps): update dependency golang to v1.24.5 (main) by @crossplane-renovate[bot] in #6625
- Adding ManagedResourceActivationPolicy by @n3wscott in #6623
- Implement the new v1alpha1 Operation controller by @negz in #6594
- Enable the ops E2E test suite by @negz in #6629
- fix: Only set discard logger if debug is false by @simonklb in #6274
- Don't use strict validation when parsing fn runtime tags by @negz in #6627
- chore(deps): update dependency golangci/golangci-lint to v2.2.2 (main) by @crossplane-renovate[bot] in #6633
- feat: add xpkg batch command by @jbw976 in #6600
- chore(deps): update dependency earthly/earthly to v0.8.16 (main) by @crossplane-renovate[bot] in #6637
- Implement
CronOperationandWatchOperationby @negz in #6632 - chore: update links for community accounts by @jbw976 in #6644
- chore: update community calendar link for month view by @jbw976 in #6645
- Handle deletes in
WatchOperation(and add more E2Es) by @negz in #6641 - Pass provider, function and revisions names to runtime pods by @turkenh in #6634
- Bump XRDs to v2 by @lsviben in #6618
- chore: clean up info mailing list link, remove obsolete dev mailing list by @jbw976 in #6647
- MRD reconciler. by @n3wscott in #6624
- MRAP reconciler by @n3wscott in #6636
- Update metrics to reflect function and controller scope by @negz in #6640
- fix(spelling): musth to must by @haarchri in #6651
- fix: remove duplicate key in deployment.yaml template by @rnwgnr in #6648
- Adding CRD to MRD conversion to packages that have the SafeStart capability by @n3wscott in #6639
- Remove
.status.crossplane.connectionDetailsfrom modern XR schema by @jbw976 in #6655 - Mutate MRDs in the APIEstablisher validate method like CRDs by @n3wscott in #6660
- Name XR Children in a deterministic way. by @n3wscott in #6630
- Update ADOPTERS.md by @tenitski in #6666
- chore(mrd): Move MRD/MRAP api versions to v1alpha1 by @ezgidemirel in #6664
- Use a standard to represent the deleted time in a named operation by @n3wscott in #6661
- Expand on compose function error messaging if we see there is an issue with the composite resource. by @n3wscott in #6572
- Bump crossplane go module to v2, bump crossplane-runtime imports to v2 by @jbw976 in #6667
- fix(render): Render CLI command ignores XR Ready state by @tenitski in #6662
- move crd view rbac rules to provider system role by @n3wscott in #6677
- Don't filter owners based on controller for MRD to CRD watches. by @n3wscott in #6679
- fix: Add beta trace for namespaced resources by @man-ish-k in #6549
- Required changes for crossplane-diff by @jcogilvie in #6500
- Allow crossplane to merge existing MRDs from provider MRDs by @n3wscott in #6685
- api: roll back run function protobuf extra resources field name change by @jbw976 in #6682
- Dual field support for function resource requirements by @negz in #6686
- Fix diff produced by running
earthly +reviewableby @ulucinar in #6688 - Fix: enforcedCompositonRef change requires pod restart by @ezgidemirel in #6683
- add exceptions to rbac related resources for name validation by @n3wscott in #6689
- chore(deps) bump crossplane-runtime to v2.0.0-rc.1 by @jbw976 in #6691
- [Backport release-2.0] Add alpha render subcommands for XRs and Operations by @github-actions[bot] in #6699
- [Backport release-2.0] Fuzzy match function capabilities by @github-actions[bot] in #6700
- chore(deps): bump crossplane-runtime to v2.0.0 by @jbw976 in #6702
New Contributors
- @n3wscott made their first contribution in #6442
- @jcogilvie made their first contribution in #6508
- @blacs30 made their first contribution in #6372
- @eric-carlsson made their first contribution in #6323
- @one230six made their first contribution in #6531
- @man-ish-k made their first contribution in #6161
- @chengehe made their first contribution in #6563
- @simonklb made their first contribution in #6274
- @rnwgnr made their first contribution in #6648
- @tenitski made their first contribution in #6666
Full Changelog: https://github.com/crossplane/crossplane/compare/v1.20.1...v2.0.0
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot Sylva instance.
CI configuration couldn't be handle by MR description. A dedicated comment has been posted to control it.
If no checkbox is checked, a default pipeline will be enabled (capm3, or capo if capo label is set)