@@ -121,6 +121,9 @@ spec:
121
121
...
122
122
```
123
123
124
+ - The Mesh resource is cluster-scoped,
125
+ so there is no ` metadata.namespace ` field.
126
+
124
127
- Although we call this the Mesh resource,
125
128
as an experimental API
126
129
it must be named XMesh
@@ -242,6 +245,51 @@ MUST set `status.SupportedFeatures`
242
245
to indicate which features
243
246
the mesh supports.
244
247
248
+ ### Life Cycle
249
+
250
+ A mesh implementation MUST NOT create a Mesh resource
251
+ if one does not already exist.
252
+
253
+ If a mesh implementation does not find a Mesh resource
254
+ with a matching ` controllerName ` at startup:
255
+
256
+ - It SHOULD warn the user
257
+ (in whatever way is appropriate for the mesh)
258
+ that the Mesh resource is missing.
259
+
260
+ - It MUST act as if a Mesh resource was found
261
+ with an empty ` spec `
262
+ (other than the ` controllerName ` field).
263
+ Optional configuration MUST remain in its default state,
264
+ and features that require a Mesh resource
265
+ (such as OCG support)
266
+ MUST NOT be enabled.
267
+
268
+ Obviously, if no matching Mesh resource exists,
269
+ the mesh will not be able to publish support features,
270
+ which may lead to assumptions
271
+ that the mesh does not support any features.
272
+
273
+ Meshes SHOULD provide a default Mesh resource
274
+ when the mesh is installed,
275
+ so that neither [ Chihiro] or [ Ian] need to know
276
+ the ` controllerName `
277
+ before installing the mesh.
278
+ (For example,
279
+ a mesh's Helm chart might include
280
+ a default Mesh resource
281
+ with only the ` controllerName ` field set,
282
+ with the assumption
283
+ that [ Chihiro] or [ Ian] will later edit the resource.)
284
+
285
+ This is in contrast to the GatewayClass resource,
286
+ which must be explicitly created by [ Ian]
287
+ when the Gateway controller is installed.
288
+ This is primarily because GAMMA meshes
289
+ have historically not had a Mesh resource,
290
+ so requiring [ Chihiro] or [ Ian] to create one by hand
291
+ is a significant barrier to mesh adoption.
292
+
245
293
### API Type Definitions
246
294
247
295
TBA.
0 commit comments