mirror of https://github.com/crossplane/docs.git
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:
parent
8f42902352
commit
ded459a5b5
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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:
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue