clarify that plural names should be used in MRAPs

Signed-off-by: Jared Watts <jbw976@gmail.com>
This commit is contained in:
Jared Watts 2025-09-03 16:24:30 -07:00
parent 0248bb39c6
commit 622a3c343f
No known key found for this signature in database
GPG Key ID: 0467EEAE3B6EC0D2
2 changed files with 30 additions and 14 deletions

View File

@ -83,6 +83,13 @@ spec:
- clusters.eks.aws.m.crossplane.io - clusters.eks.aws.m.crossplane.io
``` ```
{{<hint "important">}}
Use the **plural** name when using a complete MRD name, aligning with how
Kubernetes expresses the complete names of CRDs.
For example, use `buckets`, as opposed to `bucket`, in `buckets.s3.aws.m.crossplane.io`.
{{</hint>}}
### Wildcard patterns ### Wildcard patterns
Use `*` wildcards to match multiple resources: Use `*` wildcards to match multiple resources:
@ -91,7 +98,7 @@ Use `*` wildcards to match multiple resources:
spec: spec:
activate: activate:
- "*.s3.aws.m.crossplane.io" # All S3 resources - "*.s3.aws.m.crossplane.io" # All S3 resources
- "*.ec2.aws.m.crossplane.io" # All EC2 resources - "*.ec2.aws.m.crossplane.io" # All EC2 resources
- "*.rds.aws.m.crossplane.io" # All RDS databases - "*.rds.aws.m.crossplane.io" # All RDS databases
``` ```
@ -255,7 +262,7 @@ spec:
- "*.s3.aws.m.crossplane.io" - "*.s3.aws.m.crossplane.io"
- "*.storage.gcp.m.crossplane.io" - "*.storage.gcp.m.crossplane.io"
--- ---
# Database team MRAP # Database team MRAP
apiVersion: apiextensions.crossplane.io/v1alpha1 apiVersion: apiextensions.crossplane.io/v1alpha1
kind: ManagedResourceActivationPolicy kind: ManagedResourceActivationPolicy
metadata: metadata:
@ -332,7 +339,7 @@ status:
reason: Running reason: Running
activated: activated:
- buckets.s3.aws.m.crossplane.io - buckets.s3.aws.m.crossplane.io
- instances.ec2.aws.m.crossplane.io - instances.ec2.aws.m.crossplane.io
- instances.rds.aws.m.crossplane.io - instances.rds.aws.m.crossplane.io
- securitygroups.ec2.aws.m.crossplane.io - securitygroups.ec2.aws.m.crossplane.io
- subnets.ec2.aws.m.crossplane.io - subnets.ec2.aws.m.crossplane.io
@ -373,7 +380,7 @@ status:
```shell ```shell
# List available MRDs # List available MRDs
kubectl get mrds kubectl get mrds
# Check your pattern matches # Check your pattern matches
kubectl get mrds -o name | grep "your-pattern" kubectl get mrds -o name | grep "your-pattern"
``` ```
@ -405,7 +412,7 @@ status:
```yaml ```yaml
conditions: conditions:
- type: Healthy - type: Healthy
status: "Unknown" status: "Unknown"
reason: EncounteredErrors reason: EncounteredErrors
message: "failed to activate 2 of 5 ManagedResourceDefinitions" message: "failed to activate 2 of 5 ManagedResourceDefinitions"
``` ```
@ -443,8 +450,9 @@ conflicts. This enables team-based activation strategies and Configuration
package dependencies. package dependencies.
<!-- vale alex.ProfanityUnlikely = NO --> <!-- vale alex.ProfanityUnlikely = NO -->
1. **Start specific, broaden as needed** - Begin with exact resource names, 1. **Start specific, broaden as needed** - Begin with exact resource names
add wildcards only when beneficial for maintainability (using the plural name for each resource), add wildcards only when beneficial for
maintainability
2. **Plan for provider evolution** - Design wildcard patterns that 2. **Plan for provider evolution** - Design wildcard patterns that
accommodate new resources as providers add them (for example, accommodate new resources as providers add them (for example,
`*.s3.aws.m.crossplane.io` works for future S3 resources) `*.s3.aws.m.crossplane.io` works for future S3 resources)

View File

@ -83,6 +83,13 @@ spec:
- clusters.eks.aws.m.crossplane.io - clusters.eks.aws.m.crossplane.io
``` ```
{{<hint "important">}}
Use the **plural** name when using a complete MRD name, aligning with how
Kubernetes expresses the complete names of CRDs.
For example, use `buckets`, as opposed to `bucket`, in `buckets.s3.aws.m.crossplane.io`.
{{</hint>}}
### Wildcard patterns ### Wildcard patterns
Use `*` wildcards to match multiple resources: Use `*` wildcards to match multiple resources:
@ -91,7 +98,7 @@ Use `*` wildcards to match multiple resources:
spec: spec:
activate: activate:
- "*.s3.aws.m.crossplane.io" # All S3 resources - "*.s3.aws.m.crossplane.io" # All S3 resources
- "*.ec2.aws.m.crossplane.io" # All EC2 resources - "*.ec2.aws.m.crossplane.io" # All EC2 resources
- "*.rds.aws.m.crossplane.io" # All RDS databases - "*.rds.aws.m.crossplane.io" # All RDS databases
``` ```
@ -255,7 +262,7 @@ spec:
- "*.s3.aws.m.crossplane.io" - "*.s3.aws.m.crossplane.io"
- "*.storage.gcp.m.crossplane.io" - "*.storage.gcp.m.crossplane.io"
--- ---
# Database team MRAP # Database team MRAP
apiVersion: apiextensions.crossplane.io/v1alpha1 apiVersion: apiextensions.crossplane.io/v1alpha1
kind: ManagedResourceActivationPolicy kind: ManagedResourceActivationPolicy
metadata: metadata:
@ -332,7 +339,7 @@ status:
reason: Running reason: Running
activated: activated:
- buckets.s3.aws.m.crossplane.io - buckets.s3.aws.m.crossplane.io
- instances.ec2.aws.m.crossplane.io - instances.ec2.aws.m.crossplane.io
- instances.rds.aws.m.crossplane.io - instances.rds.aws.m.crossplane.io
- securitygroups.ec2.aws.m.crossplane.io - securitygroups.ec2.aws.m.crossplane.io
- subnets.ec2.aws.m.crossplane.io - subnets.ec2.aws.m.crossplane.io
@ -373,7 +380,7 @@ status:
```shell ```shell
# List available MRDs # List available MRDs
kubectl get mrds kubectl get mrds
# Check your pattern matches # Check your pattern matches
kubectl get mrds -o name | grep "your-pattern" kubectl get mrds -o name | grep "your-pattern"
``` ```
@ -405,7 +412,7 @@ status:
```yaml ```yaml
conditions: conditions:
- type: Healthy - type: Healthy
status: "Unknown" status: "Unknown"
reason: EncounteredErrors reason: EncounteredErrors
message: "failed to activate 2 of 5 ManagedResourceDefinitions" message: "failed to activate 2 of 5 ManagedResourceDefinitions"
``` ```
@ -443,8 +450,9 @@ conflicts. This enables team-based activation strategies and Configuration
package dependencies. package dependencies.
<!-- vale alex.ProfanityUnlikely = NO --> <!-- vale alex.ProfanityUnlikely = NO -->
1. **Start specific, broaden as needed** - Begin with exact resource names, 1. **Start specific, broaden as needed** - Begin with exact resource names
add wildcards only when beneficial for maintainability (using the plural name for each resource), add wildcards only when beneficial for
maintainability
2. **Plan for provider evolution** - Design wildcard patterns that 2. **Plan for provider evolution** - Design wildcard patterns that
accommodate new resources as providers add them (for example, accommodate new resources as providers add them (for example,
`*.s3.aws.m.crossplane.io` works for future S3 resources) `*.s3.aws.m.crossplane.io` works for future S3 resources)