@@ -54,9 +54,9 @@ metadata:
54
54
name : aws-core-resources
55
55
spec :
56
56
activate :
57
- - buckets.s3.aws.crossplane.io
58
- - instances.rds.aws.crossplane.io
59
- - " *.ec2.aws.crossplane.io" # All EC2 resources
57
+ - buckets.s3.aws.m. crossplane.io # Modern v2 style S3 buckets
58
+ - instances.rds.aws.m. crossplane.io # Modern v2 style RDS instances
59
+ - " *.ec2.aws.m. crossplane.io" # All modern v2 style EC2 resources
60
60
` ` `
61
61
62
62
When you apply this MRAP, Crossplane activates the specified S3 Bucket, RDS
@@ -80,9 +80,9 @@ Specify complete MRD names for precise control:
80
80
` ` ` yaml
81
81
spec :
82
82
activate :
83
- - buckets.s3.aws.crossplane.io
84
- - databases.rds.aws.crossplane.io
85
- - clusters.eks.aws.crossplane.io
83
+ - buckets.s3.aws.m. crossplane.io
84
+ - databases.rds.aws.m. crossplane.io
85
+ - clusters.eks.aws.m. crossplane.io
86
86
` ` `
87
87
88
88
### Wildcard patterns
@@ -92,28 +92,70 @@ Use `*` wildcards to match multiple resources:
92
92
` ` ` yaml
93
93
spec:
94
94
activate:
95
- - "*.s3.aws.crossplane.io" # All S3 resources
96
- - "*.ec2.aws.crossplane.io" # All EC2 resources
97
- - "*.rds.aws.crossplane.io" # All RDS databases
95
+ - "*.s3.aws.m. crossplane.io" # All S3 resources
96
+ - "*.ec2.aws.m. crossplane.io" # All EC2 resources
97
+ - "*.rds.aws.m. crossplane.io" # All RDS databases
98
98
` ` `
99
99
100
100
{{<hint "important">}}
101
101
MRAPs use prefix-only wildcards, not full regular expressions. Only `*` at
102
- the beginning of a pattern works (for example, `*.s3.aws.crossplane.io`).
103
- Patterns like `s3.*.aws.crossplane.io` or `*.s3.*` aren't valid.
102
+ the beginning of a pattern works (for example, `*.s3.aws.m. crossplane.io`).
103
+ Patterns like `s3.*.aws.m. crossplane.io` or `*.s3.*` aren't valid.
104
104
{{</hint>}}
105
105
106
106
{{<hint "tip">}}
107
107
You can mix exact names and wildcards for flexible activation :
108
108
` ` ` yaml
109
109
spec:
110
110
activate:
111
- - buckets.s3.aws.crossplane.io # Exact S3 buckets
112
- - "*.ec2.aws.crossplane.io" # All EC2 resources
113
- - clusters.eks.aws.crossplane.io # Exact EKS clusters
111
+ - buckets.s3.aws.m. crossplane.io # Exact S3 buckets
112
+ - "*.ec2.aws.m. crossplane.io" # All EC2 resources
113
+ - clusters.eks.aws.m. crossplane.io # Exact EKS clusters
114
114
` ` `
115
115
{{</hint>}}
116
116
117
+ # # Legacy and modern resource versions
118
+
119
+ Crossplane v2 supports two styles of managed resources :
120
+
121
+ - **Modern v2 style** (recommended): Use `*.m.crossplane.io` domains for
122
+ namespaced managed resources with better isolation and security
123
+ - **Legacy v1 style**: Use `*.crossplane.io` domains for cluster-scoped
124
+ managed resources (maintained for backward compatibility)
125
+
126
+ # ## Activating modern resources
127
+
128
+ Most examples in this guide use modern v2 style resources :
129
+
130
+ ` ` ` yaml
131
+ spec:
132
+ activate:
133
+ - buckets.s3.aws.m.crossplane.io # Modern v2 S3 bucket
134
+ - "*.ec2.aws.m.crossplane.io" # All modern v2 EC2 resources
135
+ ` ` `
136
+
137
+ # ## Activating legacy resources
138
+
139
+ To activate legacy v1 style resources, use patterns without `.m` :
140
+
141
+ ` ` ` yaml
142
+ spec:
143
+ activate:
144
+ - buckets.s3.aws.crossplane.io # Legacy v1 S3 bucket
145
+ - "*.ec2.aws.crossplane.io" # All legacy v1 EC2 resources
146
+ ` ` `
147
+
148
+ # ## Mixed activation
149
+
150
+ You can activate both modern and legacy resources in the same MRAP :
151
+
152
+ ` ` ` yaml
153
+ spec:
154
+ activate:
155
+ - "*.aws.m.crossplane.io" # All modern AWS resources
156
+ - "*.aws.crossplane.io" # All legacy AWS resources
157
+ ` ` `
158
+
117
159
# # Common activation strategies
118
160
119
161
# ## Activate everything (default behavior)
@@ -140,7 +182,7 @@ helm install crossplane crossplane-stable/crossplane \
140
182
# Or provide custom default activations
141
183
helm install crossplane crossplane-stable/crossplane \
142
184
--set provider.defaultActivations={\
143
- "*.s3.aws.crossplane.io","*.ec2.aws.crossplane.io"}
185
+ "*.s3.aws.m. crossplane.io","*.ec2.aws.m .crossplane.io"}
144
186
` ` `
145
187
146
188
# ## Provider-specific activation
@@ -169,10 +211,10 @@ metadata:
169
211
name: storage-and-compute
170
212
spec:
171
213
activate:
172
- - "*.s3.aws.crossplane.io" # AWS S3 resources
173
- - "*.ec2.aws.crossplane.io" # AWS EC2 resources
174
- - "*.storage.gcp.crossplane.io" # GCP Storage resources
175
- - "*.compute.gcp.crossplane.io" # GCP Compute resources
214
+ - "*.s3.aws.m. crossplane.io" # AWS S3 resources
215
+ - "*.ec2.aws.m. crossplane.io" # AWS EC2 resources
216
+ - "*.storage.gcp.m. crossplane.io" # GCP Storage resources
217
+ - "*.compute.gcp.m. crossplane.io" # GCP Compute resources
176
218
` ` `
177
219
178
220
# ## Minimal activation
@@ -186,9 +228,9 @@ metadata:
186
228
name: minimal-footprint
187
229
spec:
188
230
activate:
189
- - buckets.s3.aws.crossplane.io # Just S3 buckets
190
- - instances.ec2.aws.crossplane.io # Just EC2 instances
191
- - databases.rds.aws.crossplane.io # Just RDS databases
231
+ - buckets.s3.aws.m. crossplane.io # Just S3 buckets
232
+ - instances.ec2.aws.m. crossplane.io # Just EC2 instances
233
+ - databases.rds.aws.m. crossplane.io # Just RDS databases
192
234
` ` `
193
235
194
236
<!-- vale Google.Headings = NO -->
@@ -212,8 +254,8 @@ metadata:
212
254
name: storage-team
213
255
spec:
214
256
activate:
215
- - "*.s3.aws.crossplane.io"
216
- - "*.storage.gcp.crossplane.io"
257
+ - "*.s3.aws.m. crossplane.io"
258
+ - "*.storage.gcp.m. crossplane.io"
217
259
---
218
260
# Database team MRAP
219
261
apiVersion: apiextensions.crossplane.io/v1alpha1
@@ -222,8 +264,8 @@ metadata:
222
264
name: database-team
223
265
spec:
224
266
activate:
225
- - "*.rds.aws.crossplane.io"
226
- - "*.sql.gcp.crossplane.io"
267
+ - "*.rds.aws.m. crossplane.io"
268
+ - "*.sql.gcp.m. crossplane.io"
227
269
` ` `
228
270
229
271
# ## Configuration package activation
@@ -238,10 +280,10 @@ metadata:
238
280
name: web-platform-dependencies
239
281
spec:
240
282
activate:
241
- - buckets.s3.aws.crossplane.io # For static assets
242
- - instances.ec2.aws.crossplane.io # For web servers
243
- - databases.rds.aws.crossplane.io # For application data
244
- - certificates.acm.aws.crossplane.io # For HTTPS
283
+ - buckets.s3.aws.m. crossplane.io # For static assets
284
+ - instances.ec2.aws.m. crossplane.io # For web servers
285
+ - databases.rds.aws.m. crossplane.io # For application data
286
+ - certificates.acm.aws.m. crossplane.io # For HTTPS
245
287
` ` `
246
288
247
289
<!-- vale Google.Headings = NO -->
@@ -291,12 +333,12 @@ status:
291
333
status: "True"
292
334
reason: Running
293
335
activated:
294
- - buckets.s3.aws.crossplane.io
295
- - instances.ec2.aws.crossplane.io
296
- - instances.rds.aws.crossplane.io
297
- - securitygroups.ec2.aws.crossplane.io
298
- - subnets.ec2.aws.crossplane.io
299
- - vpcs.ec2.aws.crossplane.io
336
+ - buckets.s3.aws.m. crossplane.io
337
+ - instances.ec2.aws.m. crossplane.io
338
+ - instances.rds.aws.m. crossplane.io
339
+ - securitygroups.ec2.aws.m. crossplane.io
340
+ - subnets.ec2.aws.m. crossplane.io
341
+ - vpcs.ec2.aws.m. crossplane.io
300
342
` ` `
301
343
302
344
<!-- vale Google.Headings = NO -->
@@ -407,7 +449,7 @@ package dependencies.
407
449
add wildcards only when beneficial for maintainability
408
450
2. **Plan for provider evolution** - Design wildcard patterns that
409
451
accommodate new resources as providers add them (for example,
410
- ` *.s3.aws.crossplane.io` works for future S3 resources)
452
+ ` *.s3.aws.m. crossplane.io` works for future S3 resources)
411
453
3. **Group related resources logically** - Create MRAPs that activate
412
454
resources teams actually use together
413
455
4. **Include activation dependencies in Configuration packages** -
0 commit comments