Skip to content

Update content/master to use v2 stable instead of preview #959

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Aug 8, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion content/master/cli/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ To download the latest version for your CPU architecture with the Crossplane
install script.

```shell
curl -sL "https://raw.githubusercontent.com/crossplane/crossplane/main/install.sh" | XP_CHANNEL=preview sh
curl -sL "https://raw.githubusercontent.com/crossplane/crossplane/main/install.sh" | sh
```

[The script](https://raw.githubusercontent.com/crossplane/crossplane/main/install.sh)
Expand Down
271 changes: 154 additions & 117 deletions content/master/composition/composite-resource-definitions.md

Large diffs are not rendered by default.

58 changes: 30 additions & 28 deletions content/master/composition/composition-revisions.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ database configuration of an Azure MySQL Server and some firewall rules. The
`Composition` contains the 'base' configuration for the MySQL server and the
firewall rules that the `PlatformDB` configuration extends.

A `Composition` associates with multiple XRs that use it. You might
define a `Composition` named `big-platform-db` that's used by ten different
`PlatformDB` XRs. Often, in the interest of self-service, a different team manages the `Composition`
than the actual `PlatformDB` XRs. For example
A `Composition` associates with multiple XRs that use it. You might
define a `Composition` named `big-platform-db` that's used by ten different
`PlatformDB` XRs. Often, in the interest of self-service, a different team manages the `Composition`
than the actual `PlatformDB` XRs. For example
a platform team member may write and maintain the `Composition`,
while individual app teams create `PlatformDB` XRs that use said
`Composition`.
Expand Down Expand Up @@ -88,6 +88,7 @@ manually update it when you wish it to use another `CompositionRevision`.
apiVersion: example.org/v1alpha1
kind: PlatformDB
metadata:
namespace: default
name: example
spec:
storageGB: 20
Expand All @@ -108,6 +109,7 @@ use a different `CompositionRevision`.
apiVersion: example.org/v1alpha1
kind: PlatformDB
metadata:
namespace: default
name: example
spec:
storageGB: 20
Expand All @@ -125,9 +127,9 @@ spec:
This tutorial discusses how CompositionRevisions work and how they manage Composite Resource
(XR) updates. This starts with a `Composition` and `CompositeResourceDefinition` (XRD) that defines a `MyVPC`
resource and continues with creating multiple XRs to observe different upgrade paths. Crossplane
assigns different CompositionRevisions to composite resources each time you update the composition.
assigns different CompositionRevisions to composite resources each time you update the composition.

### Preparation
### Preparation

#### Deploy composition and XRD examples
Apply the example Composition.
Expand Down Expand Up @@ -177,18 +179,18 @@ spec:
plural: myvpcs
versions:
- name: v1alpha1
served: true
referenceable: true
served: true
referenceable: true
schema:
openAPIV3Schema:
type: object
type: object
properties:
spec:
type: object
type: object
properties:
id:
type: string
description: ID of this VPC that other objects will use to refer to it.
type: string
description: ID of this VPC that other objects will use to refer to it.
required:
- id
```
Expand Down Expand Up @@ -228,7 +230,7 @@ spec:
Expected Output:
```shell
myvpc.aws.example.upbound.io/vpc-auto created
```
```

#### Manual update policy
Create a Composite Resource with `compositionUpdatePolicy: Manual` and `compositionRevisionRef`.
Expand All @@ -249,7 +251,7 @@ spec:
Expected Output:
```shell
myvpc.aws.example.upbound.io/vpc-man created
```
```

#### Using a selector
Create an XR with a `compositionRevisionSelector` of `channel: dev`:
Expand All @@ -269,7 +271,7 @@ spec:
Expected Output:
```shell
myvpc.aws.example.upbound.io/vpc-dev created
```
```

Create an XR with a `compositionRevisionSelector` of `channel: staging`:
```yaml
Expand All @@ -289,9 +291,9 @@ spec:
Expected Output:
```shell
myvpc.aws.example.upbound.io/vpc-staging created
```
```

Verify the Composite Resource with the label `channel: staging` doesn't have a `REVISION`.
Verify the Composite Resource with the label `channel: staging` doesn't have a `REVISION`.
All other XRs have a `REVISION` matching the created Composition Revision.
```shell
kubectl get composite -o="custom-columns=NAME:.metadata.name,SYNCED:.status.conditions[0].status,REVISION:.spec.crossplane.compositionRevisionRef.name,POLICY:.spec.crossplane.compositionUpdatePolicy,MATCHLABEL:.spec.crossplane.compositionRevisionSelector.matchLabels"
Expand All @@ -303,15 +305,15 @@ vpc-auto True myvpcs.aws.example.upbound.io-ad265bc Automatic <none
vpc-dev True myvpcs.aws.example.upbound.io-ad265bc Automatic map[channel:dev]
vpc-man True myvpcs.aws.example.upbound.io-ad265bc Manual <none>
vpc-staging False <none> Automatic map[channel:staging]
```
```

{{< hint "note" >}}
The `vpc-staging` XR label doesn't match any existing Composition Revisions.
{{< /hint >}}

### Create new composition revisions
Crossplane creates a new CompositionRevision when you create or update a Composition. Label and annotation changes
also trigger a new CompositionRevision.
also trigger a new CompositionRevision.

#### Update the composition label
Update the `Composition` label to `channel: staging`:
Expand All @@ -321,7 +323,7 @@ kubectl label composition myvpcs.aws.example.upbound.io channel=staging --overwr
Expected Output:
```shell
composition.apiextensions.crossplane.io/myvpcs.aws.example.upbound.io labeled
```
```

Verify that Crossplane creates a new Composition revision:
```shell
Expand All @@ -332,9 +334,9 @@ Expected Output:
NAME REVISION CHANNEL
myvpcs.aws.example.upbound.io-727b3c8 2 staging
myvpcs.aws.example.upbound.io-ad265bc 1 dev
```
```

Verify that Crossplane assigns the Composite Resources `vpc-auto` and `vpc-staging` to Composite `revision:2`.
Verify that Crossplane assigns the Composite Resources `vpc-auto` and `vpc-staging` to Composite `revision:2`.
XRs `vpc-man` and `vpc-dev` are still assigned to the original `revision:1`:

```shell
Expand All @@ -347,10 +349,10 @@ vpc-auto True myvpcs.aws.example.upbound.io-727b3c8 Automatic <none
vpc-dev True myvpcs.aws.example.upbound.io-ad265bc Automatic map[channel:dev]
vpc-man True myvpcs.aws.example.upbound.io-ad265bc Manual <none>
vpc-staging True myvpcs.aws.example.upbound.io-727b3c8 Automatic map[channel:staging]
```
```

{{< hint "note" >}}
`vpc-auto` always use the latest Revision.
`vpc-auto` always use the latest Revision.
`vpc-staging` now matches the label applied to Revision `revision:2`.
{{< /hint >}}

Expand Down Expand Up @@ -393,7 +395,7 @@ spec:
Expected Output:
```shell
composition.apiextensions.crossplane.io/myvpcs.aws.example.upbound.io configured
```
```

Verify that Crossplane creates a new Composition revision:

Expand All @@ -406,13 +408,13 @@ NAME REVISION CHANNEL
myvpcs.aws.example.upbound.io-727b3c8 2 staging
myvpcs.aws.example.upbound.io-ad265bc 1 dev
myvpcs.aws.example.upbound.io-f81c553 3 dev
```
```

{{< hint "note" >}}
Changing the label and the spec values simultaneously is critical for deploying new changes to the `dev` channel.
{{< /hint >}}

Verify Crossplane assigns the Composite Resources `vpc-auto` and `vpc-dev` to Composite `revision:3`.
Verify Crossplane assigns the Composite Resources `vpc-auto` and `vpc-dev` to Composite `revision:3`.
Crossplane assigns `vpc-staging` to `revision:2`, and still assigns `vpc-man` to the original `revision:1`:

```shell
Expand All @@ -425,7 +427,7 @@ vpc-auto True myvpcs.aws.example.upbound.io-f81c553 Automatic <none
vpc-dev True myvpcs.aws.example.upbound.io-f81c553 Automatic map[channel:dev]
vpc-man True myvpcs.aws.example.upbound.io-ad265bc Manual <none>
vpc-staging True myvpcs.aws.example.upbound.io-727b3c8 Automatic map[channel:staging]
```
```


{{< hint "note" >}}
Expand Down
2 changes: 1 addition & 1 deletion content/master/get-started/get-started-with-composition.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ that supports REST APIs to work with apps.
This guide requires:

* A Kubernetes cluster with at least 2 GB of RAM
* The Crossplane v2 preview [installed on the Kubernetes cluster]({{<ref "install">}})
* Crossplane v2 [installed on the Kubernetes cluster]({{<ref "install">}})

## Create the custom resource

Expand Down
14 changes: 7 additions & 7 deletions content/master/get-started/get-started-with-managed-resources.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,16 +32,16 @@ Kubernetes calls third party API resources _custom resources_.
This guide requires:

* A Kubernetes cluster with at least 2 GB of RAM
* The Crossplane v2 preview [installed on the Kubernetes cluster]({{<ref "install">}})
* Crossplane v2 [installed on the Kubernetes cluster]({{<ref "install">}})
* An AWS account with permissions to create an S3 storage bucket
* AWS [access keys](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-creds)

{{<hint "note">}}
Only AWS managed resources support the Crossplane v2 preview.
AWS managed resources fully support Crossplane v2.

<!-- vale gitlab.FutureTense = NO -->
Maintainers will update the managed resources for other systems including Azure,
GCP, Terraform, Helm, GitHub, etc to support Crossplane v2 soon.
Maintainers are actively working to update managed resources for other systems including Azure,
GCP, Terraform, Helm, GitHub, etc to support Crossplane v2.
Comment on lines +40 to +44
Copy link
Collaborator

Choose a reason for hiding this comment

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

Just a note that AWS provider will not be ready today. It will only be published on Tuesday, 12 Aug, along with GCP, Azure, Helm and Kubernetes providers.

<!-- vale gitlab.FutureTense = YES -->
{{</hint>}}

Expand Down Expand Up @@ -69,7 +69,7 @@ kind: Provider
metadata:
name: crossplane-contrib-provider-aws-s3
spec:
package: xpkg.crossplane.io/crossplane-contrib/provider-aws-s3:v1.24.0-crossplane-v2-preview.0
package: xpkg.crossplane.io/crossplane-contrib/provider-aws-s3:v2.0.0
```

Save this as `provider.yaml` and apply it:
Expand All @@ -83,8 +83,8 @@ Check that Crossplane installed the provider:
```shell {copy-lines="1",label="getProvider"}
kubectl get providers
NAME INSTALLED HEALTHY PACKAGE AGE
crossplane-contrib-provider-family-aws True True xpkg.crossplane.io/crossplane-contrib/provider-family-aws:v1.24.0-crossplane-v2-preview.0 27s
crossplane-contrib-provider-aws-s3 True True xpkg.crossplane.io/crossplane-contrib/provider-aws-s3:v1.24.0-crossplane-v2-preview.0 31s
crossplane-contrib-provider-family-aws True True xpkg.crossplane.io/crossplane-contrib/provider-family-aws:v2.0.0 27s
crossplane-contrib-provider-aws-s3 True True xpkg.crossplane.io/crossplane-contrib/provider-aws-s3:v2.0.0 31s
```

{{<hint "note">}}
Expand Down
13 changes: 6 additions & 7 deletions content/master/get-started/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,14 @@ Install Crossplane using the _Helm chart_.

<!-- vale Google.Headings = NO -->
<!-- vale Microsoft.Headings = NO -->
### Add the Crossplane Preview Helm repository
### Add the Crossplane Helm repository
<!-- vale Google.Headings = YES -->
<!-- vale Microsoft.Headings = YES -->

Add the Crossplane preview repository with the `helm repo add` command.
Add the Crossplane stable repository with the `helm repo add` command.

```shell
helm repo add crossplane-preview https://charts.crossplane.io/preview
helm repo add crossplane-stable https://charts.crossplane.io/stable
```

Update the
Expand All @@ -46,11 +46,11 @@ helm repo update

<!-- vale Google.Headings = NO -->
<!-- vale Microsoft.Headings = NO -->
### Install the Crossplane Preview Helm chart
### Install the Crossplane Helm chart
<!-- vale Google.Headings = YES -->
<!-- vale Microsoft.Headings = YES -->

Install the Crossplane Preview Helm chart with `helm install`.
Install the Crossplane Helm chart with `helm install`.

{{< hint "tip" >}}
View the changes Crossplane makes to your cluster with the
Expand All @@ -63,8 +63,7 @@ Crossplane creates and installs into the `crossplane-system` namespace.
```shell
helm install crossplane \
--namespace crossplane-system \
--create-namespace crossplane-preview/crossplane \
--version v2.0.0-preview.1
--create-namespace crossplane-stable/crossplane
```

View the installed Crossplane pods with `kubectl get pods -n crossplane-system`.
Expand Down
10 changes: 5 additions & 5 deletions content/master/guides/upgrade-crossplane.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ The recommended upgrade method for an existing Crossplane install is to use
* [Helm](https://helm.sh/docs/intro/install/) version `v3.2.0` or later


## Add the Crossplane Preview Helm repository
## Add the Crossplane Helm repository
Verify Helm has the Crossplane repository.

```shell
helm repo add crossplane-preview https://charts.crossplane.io/preview
helm repo add crossplane-stable https://charts.crossplane.io/stable
```

## Update the Helm Preview repository
## Update the Helm repository

Update the local Crossplane Helm chart with `helm repo update`.

Expand All @@ -37,7 +37,7 @@ By default, Crossplane installs into the `crossplane-system`
namespace.

```shell
helm upgrade crossplane --namespace crossplane-system crossplane-preview/crossplane --devel
helm upgrade crossplane --namespace crossplane-system crossplane-stable/crossplane
```

Helm preserves any arguments or flags originally used when installing
Expand All @@ -56,5 +56,5 @@ with the upgrade command.

For example, to maintain the original image registry use
```shell
helm upgrade crossplane --namespace crossplane-system crossplane-preview/crossplane --set 'args={"--registry=index.docker.io"}'
helm upgrade crossplane --namespace crossplane-system crossplane-stable/crossplane --set 'args={"--registry=index.docker.io"}'
```
9 changes: 5 additions & 4 deletions content/master/managed-resources/managed-resources.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ Examples of managed resources include:
* Microsoft Azure PostgreSQL `Database` defined in [provider-upjet-azure](https://github.com/crossplane-contrib/provider-upjet-azure).

{{<hint "important">}}
Only AWS managed resources support the Crossplane v2 preview.
AWS managed resources fully support Crossplane v2.

<!-- vale gitlab.FutureTense = NO -->
Maintainers will update the managed resources for other systems including Azure,
GCP, Terraform, Helm, GitHub, etc to support Crossplane v2 soon.
Maintainers are actively working to update managed resources for other systems including Azure,
GCP, Terraform, Helm, GitHub, etc to support Crossplane v2.
Comment on lines +23 to +27
Copy link
Collaborator

Choose a reason for hiding this comment

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

Same note as above.

<!-- vale gitlab.FutureTense = YES -->
{{</hint>}}

Expand Down Expand Up @@ -419,7 +419,7 @@ For example, when creating an AWS RDS database instance with the Crossplane
[community AWS provider](https://github.com/crossplane-contrib/provider-aws)
generates an endpoint, password, port and username data. The Provider saves
these variables in the Kubernetes secret
{{<hover label="secretname" line="9" >}}rds-secret{{</hover>}}, referenced by
{{<hover label="secretname" line="10" >}}rds-secret{{</hover>}}, referenced by
the
{{<hover label="secretname" line="9" >}}writeConnectionSecretToRef{{</hover>}}
field.
Expand All @@ -428,6 +428,7 @@ field.
apiVersion: database.aws.m.crossplane.io/v1beta1
kind: RDSInstance
metadata:
namespace: default
name: my-rds-instance
spec:
forProvider:
Expand Down
6 changes: 3 additions & 3 deletions content/master/whats-crossplane/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -215,11 +215,11 @@ Follow [Get Started with Managed Resources]({{<ref "../get-started/get-started-w
to see how managed resources work.

{{<hint "note">}}
Only AWS managed resources support the Crossplane v2 preview.
AWS managed resources fully support Crossplane v2.

<!-- vale gitlab.FutureTense = NO -->
Maintainers will update the managed resources for other systems including Azure,
GCP, Terraform, Helm, GitHub, etc to support Crossplane v2 soon.
Maintainers are actively working to update managed resources for other systems including Azure,
GCP, Terraform, Helm, GitHub, etc to support Crossplane v2.
Comment on lines -218 to +222
Copy link
Collaborator

Choose a reason for hiding this comment

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

Same note as above

<!-- vale gitlab.FutureTense = YES -->
{{</hint>}}

Expand Down
9 changes: 4 additions & 5 deletions content/master/whats-new/_index.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: What's New in v2?
weight: 4
description: Learn what's new in the Crossplane v2 preview
description: Learn what's new in Crossplane v2
---
**Crossplane v2 makes Crossplane more useful, more intuitive, and less
opinionated.**
Expand Down Expand Up @@ -150,12 +150,11 @@ opinionated about using composition and MRs together. Namespaces enable fine
grained access control over who can create what MRs.

{{<hint "note">}}
During the Crossplane v2 preview only namespaced AWS managed resources are
available.
Namespaced AWS managed resources are fully available in Crossplane v2.

<!-- vale gitlab.FutureTense = NO -->
Maintainers will update the managed resources for other systems including Azure,
GCP, Terraform, Helm, GitHub, etc to support namespaced MRs soon.
Maintainers are actively working to update managed resources for other systems including Azure,
GCP, Terraform, Helm, GitHub, etc to support namespaced MRs.
Comment on lines +153 to +157
Copy link
Collaborator

Choose a reason for hiding this comment

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

Same note as above

<!-- vale gitlab.FutureTense = YES -->
{{</hint>}}

Expand Down