move around a bit of content. Trim down how much MRDs are on the front page docs

Signed-off-by: Scott Nichols <n3wscott@upbound.io>
This commit is contained in:
Scott Nichols 2025-08-07 14:35:58 -07:00
parent 8f42902352
commit ded459a5b5
4 changed files with 27 additions and 111 deletions

View File

@ -97,55 +97,6 @@ rules:
verbs: ["get", "list", "watch"] verbs: ["get", "list", "watch"]
``` ```
### Step 3: Add connection details documentation
Document connection details in your MRDs to help users understand resource
capabilities:
```yaml
# Example generated MRD with connection details
apiVersion: apiextensions.crossplane.io/v1alpha1
kind: ManagedResourceDefinition
metadata:
name: databases.rds.aws.example.io
spec:
group: rds.aws.example.io
names:
kind: Database
plural: databases
scope: Namespaced
# safe-start-specific fields
connectionDetails:
- name: endpoint
description: "The RDS instance connection endpoint"
type: string
fromConnectionSecretKey: endpoint
- name: port
description: "The port number for database connections"
type: integer
fromConnectionSecretKey: port
- name: username
description: "The master username for the database"
type: string
fromConnectionSecretKey: username
- name: password
description: "The master password for the database"
type: string
fromConnectionSecretKey: password
- name: ca_certificate
description: "The CA certificate for SSL connections"
type: string
fromConnectionSecretKey: ca_certificate
# Standard CRD specification
versions:
- name: v1alpha1
served: true
storage: true
# ... rest of CRD spec
```
## Testing safe-start implementation ## Testing safe-start implementation
### Integration testing ### Integration testing

View File

@ -123,22 +123,42 @@ resources.
apiVersion: apiextensions.crossplane.io/v1alpha1 apiVersion: apiextensions.crossplane.io/v1alpha1
kind: ManagedResourceDefinition kind: ManagedResourceDefinition
metadata: metadata:
name: instances.ec2.aws.crossplane.io name: databases.rds.aws.crossplane.io
spec: spec:
group: rds.aws.crossplane.io
names:
kind: Database
plural: databases
scope: Namespaced
# Connection details documentation
connectionDetails: connectionDetails:
- name: endpoint - name: endpoint
description: The connection endpoint for the database description: "The RDS instance connection endpoint"
type: string type: string
fromConnectionSecretKey: endpoint
- name: port - name: port
description: The port number for connections description: "The port number for database connections"
type: integer type: integer
fromConnectionSecretKey: port
- name: username - name: username
description: The master username for the database description: "The master username for the database"
type: string type: string
fromConnectionSecretKey: username
- name: password - name: password
description: The master password for the database description: "The master password for the database"
type: string type: string
fromConnectionSecretKey: password fromConnectionSecretKey: password
- name: ca_certificate
description: "The CA certificate for SSL connections"
type: string
fromConnectionSecretKey: ca_certificate
# Standard CRD specification follows...
versions:
- name: v1alpha1
served: true
storage: true
``` ```
The `connectionDetails` field documents: The `connectionDetails` field documents:

View File

@ -46,14 +46,14 @@ involved in writing a controller.
## Crossplane components ## Crossplane components
Crossplane has four major components: Crossplane has three major components:
* [Composition](#composition) * [Composition](#composition)
* [Managed resources](#managed-resources) * [Managed resources](#managed-resources)
* [Operations](#operations) * [Operations](#operations)
* [Package manager](#package-manager) * [Package manager](#package-manager)
You can use all four components to build your control plane, or pick only the You can use all three components to build your control plane, or pick only the
ones you need. ones you need.
### Composition ### Composition

View File

@ -173,61 +173,6 @@ deprecate and remove cluster scoped MRs at a future date.
Read more about Crossplane v2's [backward compatibility](#backward-compatibility). Read more about Crossplane v2's [backward compatibility](#backward-compatibility).
{{</hint>}} {{</hint>}}
## Managed resource definitions
Crossplane v2 introduces Managed Resource Definitions (MRDs) that provide
selective resource activation and improved resource discovery.
**MRDs solve performance and usability challenges with large providers.**
Installing a provider like AWS traditionally creates hundreds of CRDs, even if
you only need some resources. MRDs let you activate only the resources you
actually use.
```mermaid
flowchart LR
provider(Provider Package)
mrd1(S3 Bucket MRD)
mrd2(EC2 Instance MRD)
mrd3(RDS DB MRD)
crd1(S3 Bucket CRD)
crd2(EC2 Instance CRD)
policy(Activation Policy)
provider --> mrd1
provider --> mrd2
provider --> mrd3
policy -.->|activates| mrd1
policy -.->|activates| mrd2
mrd3 -.->|inactive|
mrd1 --> crd1
mrd2 --> crd2
style mrd1 fill:#c8e6c9
style mrd2 fill:#c8e6c9
style mrd3 fill:#ffcdd2
style crd1 fill:#e8f5e8
style crd2 fill:#e8f5e8
```
### Key managed resource definition benefits
**Performance optimization** - Only create CRDs for resources you need, reducing
cluster overhead and improving provider installation speed.
**Connection details discovery** - MRDs document what connection details each
managed resource provides, making it easier to understand resource capabilities.
**Policy-based activation** - Use ManagedResourceActivationPolicy (MRAP) to
activate resources with flexible pattern matching.
**safe-start providers** - Providers can opt into safe-start capability, starting
with all MRDs inactive for better performance.
Learn more about [Managed Resource Definitions]({{<ref "../managed-resources/managed-resource-definitions">}})
and [get started with MRDs]({{<ref "../get-started/get-started-with-mrds">}}).
## Compose any resource ## Compose any resource
Crossplane v2 isn't opinionated about using composition together with managed Crossplane v2 isn't opinionated about using composition together with managed