@intentius/chant-lexicon-k8s 0.18.19 → 0.18.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -86,6 +86,7 @@ export declare class Application {
86
86
  });
87
87
  readonly name: string;
88
88
  readonly namespace: string;
89
+ readonly status: Record<string, unknown>;
89
90
  readonly uid: string;
90
91
  }
91
92
 
@@ -96,6 +97,7 @@ export declare class ApplicationSet {
96
97
  });
97
98
  readonly name: string;
98
99
  readonly namespace: string;
100
+ readonly status: Record<string, unknown>;
99
101
  readonly uid: string;
100
102
  }
101
103
 
@@ -107,6 +109,7 @@ export declare class AppProject {
107
109
  });
108
110
  readonly name: string;
109
111
  readonly namespace: string;
112
+ readonly status: Record<string, unknown>;
110
113
  readonly uid: string;
111
114
  }
112
115
 
@@ -143,6 +146,7 @@ https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions
143
146
  });
144
147
  readonly name: string;
145
148
  readonly namespace: string;
149
+ readonly status: Record<string, unknown>;
146
150
  readonly uid: string;
147
151
  }
148
152
 
@@ -155,6 +159,7 @@ https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions
155
159
  });
156
160
  readonly name: string;
157
161
  readonly namespace: string;
162
+ readonly status: Record<string, unknown>;
158
163
  readonly uid: string;
159
164
  }
160
165
 
@@ -187,6 +192,7 @@ export declare class Challenge {
187
192
  });
188
193
  readonly name: string;
189
194
  readonly namespace: string;
195
+ readonly status: Record<string, unknown>;
190
196
  readonly uid: string;
191
197
  }
192
198
 
@@ -198,6 +204,7 @@ export declare class ClusterIssuer {
198
204
  });
199
205
  readonly name: string;
200
206
  readonly namespace: string;
207
+ readonly status: Record<string, unknown>;
201
208
  readonly uid: string;
202
209
  }
203
210
 
@@ -391,6 +398,7 @@ export declare class CrdbCluster {
391
398
  });
392
399
  readonly name: string;
393
400
  readonly namespace: string;
401
+ readonly status: Record<string, unknown>;
394
402
  readonly uid: string;
395
403
  }
396
404
 
@@ -858,6 +866,7 @@ export declare class Gateway {
858
866
  });
859
867
  readonly name: string;
860
868
  readonly namespace: string;
869
+ readonly status: Record<string, unknown>;
861
870
  readonly uid: string;
862
871
  }
863
872
 
@@ -869,6 +878,7 @@ export declare class GatewayClass {
869
878
  });
870
879
  readonly name: string;
871
880
  readonly namespace: string;
881
+ readonly status: Record<string, unknown>;
872
882
  readonly uid: string;
873
883
  }
874
884
 
@@ -880,6 +890,7 @@ export declare class GRPCRoute {
880
890
  });
881
891
  readonly name: string;
882
892
  readonly namespace: string;
893
+ readonly status: Record<string, unknown>;
883
894
  readonly uid: string;
884
895
  }
885
896
 
@@ -927,6 +938,7 @@ export declare class HTTPRoute {
927
938
  });
928
939
  readonly name: string;
929
940
  readonly namespace: string;
941
+ readonly status: Record<string, unknown>;
930
942
  readonly uid: string;
931
943
  }
932
944
 
@@ -1022,6 +1034,7 @@ export declare class Issuer {
1022
1034
  });
1023
1035
  readonly name: string;
1024
1036
  readonly namespace: string;
1037
+ readonly status: Record<string, unknown>;
1025
1038
  readonly uid: string;
1026
1039
  }
1027
1040
 
@@ -1308,6 +1321,7 @@ export declare class Order {
1308
1321
  });
1309
1322
  readonly name: string;
1310
1323
  readonly namespace: string;
1324
+ readonly status: Record<string, unknown>;
1311
1325
  readonly uid: string;
1312
1326
  }
1313
1327
 
@@ -1563,6 +1577,7 @@ export declare class RayCluster {
1563
1577
  });
1564
1578
  readonly name: string;
1565
1579
  readonly namespace: string;
1580
+ readonly status: Record<string, unknown>;
1566
1581
  readonly uid: string;
1567
1582
  }
1568
1583
 
@@ -1573,6 +1588,7 @@ export declare class RayJob {
1573
1588
  });
1574
1589
  readonly name: string;
1575
1590
  readonly namespace: string;
1591
+ readonly status: Record<string, unknown>;
1576
1592
  readonly uid: string;
1577
1593
  }
1578
1594
 
@@ -1583,6 +1599,7 @@ export declare class RayService {
1583
1599
  });
1584
1600
  readonly name: string;
1585
1601
  readonly namespace: string;
1602
+ readonly status: Record<string, unknown>;
1586
1603
  readonly uid: string;
1587
1604
  }
1588
1605
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intentius/chant-lexicon-k8s",
3
- "version": "0.18.19",
3
+ "version": "0.18.21",
4
4
  "description": "Kubernetes lexicon for chant — declarative IaC in TypeScript",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://intentius.io/chant",
@@ -75,7 +75,7 @@
75
75
  "typescript": "^5.9.3"
76
76
  },
77
77
  "peerDependencies": {
78
- "@intentius/chant": "^0.18.19",
78
+ "@intentius/chant": "^0.18.21",
79
79
  "typescript": "^5.9.3"
80
80
  }
81
81
  }
@@ -275,4 +275,104 @@ describe("parseCRDSpec", () => {
275
275
  // No duplicate identifiers.
276
276
  expect(new Set(names).size).toBe(names.length);
277
277
  });
278
+
279
+ test("extracts read-only typed status as a property type and status attribute", () => {
280
+ const spec = {
281
+ group: "cert-manager.io",
282
+ names: { kind: "Certificate", plural: "certificates" },
283
+ scope: "Namespaced" as const,
284
+ versions: [
285
+ {
286
+ name: "v1",
287
+ served: true,
288
+ storage: true,
289
+ schema: {
290
+ openAPIV3Schema: {
291
+ type: "object",
292
+ properties: {
293
+ spec: { type: "object", properties: { secretName: { type: "string" } } },
294
+ status: {
295
+ type: "object",
296
+ properties: {
297
+ notAfter: { type: "string" },
298
+ revision: { type: "integer" },
299
+ conditions: { type: "array", items: { type: "object", properties: { type: { type: "string" } } } },
300
+ },
301
+ },
302
+ },
303
+ },
304
+ },
305
+ },
306
+ ],
307
+ };
308
+
309
+ const results = parseCRDSpec(spec);
310
+ const res = results[0];
311
+
312
+ // A read-only `status` attribute is present; status is never a writable property.
313
+ const statusAttr = res.resource.attributes.find((a) => a.name === "status");
314
+ expect(statusAttr).toBeDefined();
315
+ expect(res.resource.properties.some((p) => p.name === "status")).toBe(false);
316
+
317
+ // Rich per-field status type carried as a property type (the lexicon-JSON channel).
318
+ const statusType = res.propertyTypes.find((pt) => pt.name === "Certificate_Status");
319
+ expect(statusType).toBeDefined();
320
+ expect(statusType!.defType).toBe("status");
321
+ const byName = Object.fromEntries(statusType!.properties.map((p) => [p.name, p.tsType]));
322
+ expect(byName.notAfter).toBe("string");
323
+ expect(byName.revision).toBe("number");
324
+ });
325
+
326
+ test("no status attribute or type when the CRD has no status schema", () => {
327
+ const spec = {
328
+ group: "example.com",
329
+ names: { kind: "Config", plural: "configs" },
330
+ scope: "Namespaced" as const,
331
+ versions: [
332
+ {
333
+ name: "v1",
334
+ served: true,
335
+ storage: true,
336
+ schema: {
337
+ openAPIV3Schema: {
338
+ type: "object",
339
+ properties: { spec: { type: "object", properties: { k: { type: "string" } } } },
340
+ },
341
+ },
342
+ },
343
+ ],
344
+ };
345
+
346
+ const results = parseCRDSpec(spec);
347
+ expect(results[0].resource.attributes.some((a) => a.name === "status")).toBe(false);
348
+ expect(results[0].propertyTypes.some((pt) => pt.name === "Config_Status")).toBe(false);
349
+ });
350
+
351
+ test("preserve-unknown status degrades to a read-only record with no property type", () => {
352
+ const spec = {
353
+ group: "example.com",
354
+ names: { kind: "Widget", plural: "widgets" },
355
+ scope: "Namespaced" as const,
356
+ versions: [
357
+ {
358
+ name: "v1",
359
+ served: true,
360
+ storage: true,
361
+ schema: {
362
+ openAPIV3Schema: {
363
+ type: "object",
364
+ properties: {
365
+ spec: { type: "object", properties: { k: { type: "string" } } },
366
+ status: { type: "object", "x-kubernetes-preserve-unknown-fields": true },
367
+ },
368
+ },
369
+ },
370
+ },
371
+ ],
372
+ };
373
+
374
+ const results = parseCRDSpec(spec);
375
+ expect(results[0].resource.attributes.some((a) => a.name === "status")).toBe(true);
376
+ expect(results[0].propertyTypes.some((pt) => pt.name === "Widget_Status")).toBe(false);
377
+ });
278
378
  });
package/src/crd/parser.ts CHANGED
@@ -91,20 +91,24 @@ export function parseCRDSpec(spec: CRDSpec): K8sParseResult[] {
91
91
  const schema = targetVersion.schema?.openAPIV3Schema as OpenAPISchema | undefined;
92
92
  const properties = schema ? extractProperties(schema) : [];
93
93
  const propertyTypes = schema ? extractPropertyTypes(schema, typeName) : [];
94
+ const status = schema ? extractStatusType(schema, typeName) : {};
95
+
96
+ const attributes = [
97
+ { name: "name", tsType: "string" },
98
+ { name: "namespace", tsType: "string" },
99
+ { name: "uid", tsType: "string" },
100
+ ];
101
+ if (status.attribute) attributes.push(status.attribute);
94
102
 
95
103
  results.push({
96
104
  resource: {
97
105
  typeName,
98
106
  description: `Custom resource: ${spec.names.kind} (${spec.group})`,
99
107
  properties,
100
- attributes: [
101
- { name: "name", tsType: "string" },
102
- { name: "namespace", tsType: "string" },
103
- { name: "uid", tsType: "string" },
104
- ],
108
+ attributes,
105
109
  deprecatedProperties: [],
106
110
  },
107
- propertyTypes,
111
+ propertyTypes: status.propertyType ? [...propertyTypes, status.propertyType] : propertyTypes,
108
112
  enums: [],
109
113
  gvk,
110
114
  });
@@ -245,6 +249,51 @@ function extractPropertyTypes(schema: OpenAPISchema, parentTypeName: string): Pa
245
249
  return results;
246
250
  }
247
251
 
252
+ /**
253
+ * Extract the read-only `status` sub-object as a property type plus a `status`
254
+ * attribute on the resource. Status is never part of the writable spec surface
255
+ * (it is server-owned), so it is exposed only as a read-only output.
256
+ *
257
+ * Shallow by design, mirroring extractPropertyTypes: scalar leaves are typed,
258
+ * nested objects and arrays-of-objects degrade to `Record<string, any>`. Status
259
+ * with `x-kubernetes-preserve-unknown-fields` (or no properties) degrades to a
260
+ * bare `Record<string, any>` attribute with no property type.
261
+ */
262
+ function extractStatusType(
263
+ schema: OpenAPISchema,
264
+ parentTypeName: string,
265
+ ): { attribute?: { name: string; tsType: string }; propertyType?: ParsedPropertyType } {
266
+ const statusSchema = schema.properties?.status;
267
+ if (!statusSchema) return {};
268
+
269
+ // The `.d.ts` accessor is deliberately opaque — CRD typing lives in the
270
+ // lexicon JSON (the same channel `spec` uses, which is also `Record<string,
271
+ // unknown>` in the constructor). The rich, per-field status shape is carried
272
+ // by the property type below, surfaced through LSP / validation / MCP.
273
+ const attribute = { name: "status", tsType: "Record<string, unknown>" };
274
+
275
+ // Opaque status (preserve-unknown or no schema) → read-only record only.
276
+ if (statusSchema["x-kubernetes-preserve-unknown-fields"] || !statusSchema.properties) {
277
+ return { attribute };
278
+ }
279
+
280
+ const shortName = parentTypeName.split("::").pop()!;
281
+ const propertyType: ParsedPropertyType = {
282
+ name: `${shortName}_Status`,
283
+ defType: "status",
284
+ properties: Object.entries(statusSchema.properties).map(([pName, pSchema]) => ({
285
+ name: pName,
286
+ tsType: resolveSchemaType(pSchema),
287
+ required: new Set<string>(statusSchema.required ?? []).has(pName),
288
+ description: pSchema.description,
289
+ enum: pSchema.enum,
290
+ constraints: extractConstraints(pSchema),
291
+ })),
292
+ };
293
+
294
+ return { attribute, propertyType };
295
+ }
296
+
248
297
  /**
249
298
  * Resolve an OpenAPI schema node to a TypeScript type string.
250
299
  */
@@ -86,6 +86,7 @@ export declare class Application {
86
86
  });
87
87
  readonly name: string;
88
88
  readonly namespace: string;
89
+ readonly status: Record<string, unknown>;
89
90
  readonly uid: string;
90
91
  }
91
92
 
@@ -96,6 +97,7 @@ export declare class ApplicationSet {
96
97
  });
97
98
  readonly name: string;
98
99
  readonly namespace: string;
100
+ readonly status: Record<string, unknown>;
99
101
  readonly uid: string;
100
102
  }
101
103
 
@@ -107,6 +109,7 @@ export declare class AppProject {
107
109
  });
108
110
  readonly name: string;
109
111
  readonly namespace: string;
112
+ readonly status: Record<string, unknown>;
110
113
  readonly uid: string;
111
114
  }
112
115
 
@@ -143,6 +146,7 @@ https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions
143
146
  });
144
147
  readonly name: string;
145
148
  readonly namespace: string;
149
+ readonly status: Record<string, unknown>;
146
150
  readonly uid: string;
147
151
  }
148
152
 
@@ -155,6 +159,7 @@ https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions
155
159
  });
156
160
  readonly name: string;
157
161
  readonly namespace: string;
162
+ readonly status: Record<string, unknown>;
158
163
  readonly uid: string;
159
164
  }
160
165
 
@@ -187,6 +192,7 @@ export declare class Challenge {
187
192
  });
188
193
  readonly name: string;
189
194
  readonly namespace: string;
195
+ readonly status: Record<string, unknown>;
190
196
  readonly uid: string;
191
197
  }
192
198
 
@@ -198,6 +204,7 @@ export declare class ClusterIssuer {
198
204
  });
199
205
  readonly name: string;
200
206
  readonly namespace: string;
207
+ readonly status: Record<string, unknown>;
201
208
  readonly uid: string;
202
209
  }
203
210
 
@@ -391,6 +398,7 @@ export declare class CrdbCluster {
391
398
  });
392
399
  readonly name: string;
393
400
  readonly namespace: string;
401
+ readonly status: Record<string, unknown>;
394
402
  readonly uid: string;
395
403
  }
396
404
 
@@ -858,6 +866,7 @@ export declare class Gateway {
858
866
  });
859
867
  readonly name: string;
860
868
  readonly namespace: string;
869
+ readonly status: Record<string, unknown>;
861
870
  readonly uid: string;
862
871
  }
863
872
 
@@ -869,6 +878,7 @@ export declare class GatewayClass {
869
878
  });
870
879
  readonly name: string;
871
880
  readonly namespace: string;
881
+ readonly status: Record<string, unknown>;
872
882
  readonly uid: string;
873
883
  }
874
884
 
@@ -880,6 +890,7 @@ export declare class GRPCRoute {
880
890
  });
881
891
  readonly name: string;
882
892
  readonly namespace: string;
893
+ readonly status: Record<string, unknown>;
883
894
  readonly uid: string;
884
895
  }
885
896
 
@@ -927,6 +938,7 @@ export declare class HTTPRoute {
927
938
  });
928
939
  readonly name: string;
929
940
  readonly namespace: string;
941
+ readonly status: Record<string, unknown>;
930
942
  readonly uid: string;
931
943
  }
932
944
 
@@ -1022,6 +1034,7 @@ export declare class Issuer {
1022
1034
  });
1023
1035
  readonly name: string;
1024
1036
  readonly namespace: string;
1037
+ readonly status: Record<string, unknown>;
1025
1038
  readonly uid: string;
1026
1039
  }
1027
1040
 
@@ -1308,6 +1321,7 @@ export declare class Order {
1308
1321
  });
1309
1322
  readonly name: string;
1310
1323
  readonly namespace: string;
1324
+ readonly status: Record<string, unknown>;
1311
1325
  readonly uid: string;
1312
1326
  }
1313
1327
 
@@ -1563,6 +1577,7 @@ export declare class RayCluster {
1563
1577
  });
1564
1578
  readonly name: string;
1565
1579
  readonly namespace: string;
1580
+ readonly status: Record<string, unknown>;
1566
1581
  readonly uid: string;
1567
1582
  }
1568
1583
 
@@ -1573,6 +1588,7 @@ export declare class RayJob {
1573
1588
  });
1574
1589
  readonly name: string;
1575
1590
  readonly namespace: string;
1591
+ readonly status: Record<string, unknown>;
1576
1592
  readonly uid: string;
1577
1593
  }
1578
1594
 
@@ -1583,6 +1599,7 @@ export declare class RayService {
1583
1599
  });
1584
1600
  readonly name: string;
1585
1601
  readonly namespace: string;
1602
+ readonly status: Record<string, unknown>;
1586
1603
  readonly uid: string;
1587
1604
  }
1588
1605
 
@@ -7,17 +7,17 @@ export const APIResourceList = createResource("K8s::Core::APIResourceList", "k8s
7
7
  export const APIService = createResource("K8s::Apiregistration::APIService", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
8
8
  export const APIServiceList = createResource("K8s::Apiregistration::APIServiceList", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
9
9
  export const APIVersions = createResource("K8s::Core::APIVersions", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
10
- export const Application = createResource("K8s::Argo::Application", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
11
- export const ApplicationSet = createResource("K8s::Argo::ApplicationSet", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
12
- export const AppProject = createResource("K8s::Argo::AppProject", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
10
+ export const Application = createResource("K8s::Argo::Application", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
11
+ export const ApplicationSet = createResource("K8s::Argo::ApplicationSet", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
12
+ export const AppProject = createResource("K8s::Argo::AppProject", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
13
13
  export const BatchJob = createResource("K8s::Batch::Job", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
14
14
  export const Binding = createResource("K8s::Core::Binding", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
15
- export const Certificate = createResource("K8s::CertManager::Certificate", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
16
- export const CertificateRequest = createResource("K8s::CertManager::CertificateRequest", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
15
+ export const Certificate = createResource("K8s::CertManager::Certificate", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
16
+ export const CertificateRequest = createResource("K8s::CertManager::CertificateRequest", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
17
17
  export const CertificateSigningRequest = createResource("K8s::Certificates::CertificateSigningRequest", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
18
18
  export const CertificateSigningRequestList = createResource("K8s::Certificates::CertificateSigningRequestList", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
19
- export const Challenge = createResource("K8s::Acme::Challenge", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
20
- export const ClusterIssuer = createResource("K8s::CertManager::ClusterIssuer", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
19
+ export const Challenge = createResource("K8s::Acme::Challenge", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
20
+ export const ClusterIssuer = createResource("K8s::CertManager::ClusterIssuer", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
21
21
  export const ClusterRole = createResource("K8s::Rbac::ClusterRole", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
22
22
  export const ClusterRoleBinding = createResource("K8s::Rbac::ClusterRoleBinding", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
23
23
  export const ClusterRoleBindingList = createResource("K8s::Rbac::ClusterRoleBindingList", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
@@ -32,7 +32,7 @@ export const ConfigMapList = createResource("K8s::Core::ConfigMapList", "k8s", {
32
32
  export const ControllerRevision = createResource("K8s::Apps::ControllerRevision", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
33
33
  export const ControllerRevisionList = createResource("K8s::Apps::ControllerRevisionList", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
34
34
  export const CoreEventList = createResource("K8s::Core::EventList", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
35
- export const CrdbCluster = createResource("K8s::Crdb::CrdbCluster", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
35
+ export const CrdbCluster = createResource("K8s::Crdb::CrdbCluster", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
36
36
  export const CronJob = createResource("K8s::Batch::CronJob", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
37
37
  export const CronJobList = createResource("K8s::Batch::CronJobList", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
38
38
  export const CSIDriver = createResource("K8s::Storage::CSIDriver", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
@@ -64,13 +64,13 @@ export const EventsEventList = createResource("K8s::Events::EventList", "k8s", {
64
64
  export const Eviction = createResource("K8s::Policy::Eviction", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
65
65
  export const FlowSchema = createResource("K8s::Flowcontrol::FlowSchema", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
66
66
  export const FlowSchemaList = createResource("K8s::Flowcontrol::FlowSchemaList", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
67
- export const Gateway = createResource("K8s::Gateway::Gateway", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
68
- export const GatewayClass = createResource("K8s::Gateway::GatewayClass", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
69
- export const GRPCRoute = createResource("K8s::Gateway::GRPCRoute", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
67
+ export const Gateway = createResource("K8s::Gateway::Gateway", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
68
+ export const GatewayClass = createResource("K8s::Gateway::GatewayClass", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
69
+ export const GRPCRoute = createResource("K8s::Gateway::GRPCRoute", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
70
70
  export const HorizontalPodAutoscaler = createResource("K8s::Autoscaling::HorizontalPodAutoscaler", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
71
71
  export const HorizontalPodAutoscalerList = createResource("K8s::Autoscaling::HorizontalPodAutoscalerList", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
72
72
  export const HPA = createResource("K8s::Autoscaling::HorizontalPodAutoscaler", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
73
- export const HTTPRoute = createResource("K8s::Gateway::HTTPRoute", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
73
+ export const HTTPRoute = createResource("K8s::Gateway::HTTPRoute", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
74
74
  export const Ing = createResource("K8s::Networking::Ingress", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
75
75
  export const Ingress = createResource("K8s::Networking::Ingress", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
76
76
  export const IngressClass = createResource("K8s::Networking::IngressClass", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
@@ -78,7 +78,7 @@ export const IngressClassList = createResource("K8s::Networking::IngressClassLis
78
78
  export const IngressList = createResource("K8s::Networking::IngressList", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
79
79
  export const IPAddress = createResource("K8s::Networking::IPAddress", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
80
80
  export const IPAddressList = createResource("K8s::Networking::IPAddressList", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
81
- export const Issuer = createResource("K8s::CertManager::Issuer", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
81
+ export const Issuer = createResource("K8s::CertManager::Issuer", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
82
82
  export const Job = createResource("K8s::Batch::Job", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
83
83
  export const JobList = createResource("K8s::Batch::JobList", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
84
84
  export const Lease = createResource("K8s::Coordination::Lease", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
@@ -102,7 +102,7 @@ export const NetworkPolicyList = createResource("K8s::Networking::NetworkPolicyL
102
102
  export const Node = createResource("K8s::Core::Node", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
103
103
  export const NodeList = createResource("K8s::Core::NodeList", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
104
104
  export const NS = createResource("K8s::Core::Namespace", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
105
- export const Order = createResource("K8s::Acme::Order", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
105
+ export const Order = createResource("K8s::Acme::Order", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
106
106
  export const PDB = createResource("K8s::Policy::PodDisruptionBudget", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
107
107
  export const PersistentVolume = createResource("K8s::Core::PersistentVolume", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
108
108
  export const PersistentVolumeClaim = createResource("K8s::Core::PersistentVolumeClaim", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
@@ -123,9 +123,9 @@ export const PriorityLevelConfigurationList = createResource("K8s::Flowcontrol::
123
123
  export const PrometheusRule = createResource("K8s::Monitoring::PrometheusRule", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
124
124
  export const PV = createResource("K8s::Core::PersistentVolume", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
125
125
  export const PVC = createResource("K8s::Core::PersistentVolumeClaim", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
126
- export const RayCluster = createResource("K8s::Ray::RayCluster", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
127
- export const RayJob = createResource("K8s::Ray::RayJob", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
128
- export const RayService = createResource("K8s::Ray::RayService", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
126
+ export const RayCluster = createResource("K8s::Ray::RayCluster", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
127
+ export const RayJob = createResource("K8s::Ray::RayJob", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
128
+ export const RayService = createResource("K8s::Ray::RayService", "k8s", {"name":"name","namespace":"namespace","uid":"uid","status":"status"});
129
129
  export const ReferenceGrant = createResource("K8s::Gateway::ReferenceGrant", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
130
130
  export const ReplicaSet = createResource("K8s::Apps::ReplicaSet", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
131
131
  export const ReplicaSetList = createResource("K8s::Apps::ReplicaSetList", "k8s", {"name":"name","namespace":"namespace","uid":"uid"});
@@ -189,10 +189,12 @@ export const Application_IgnoreDifference = createProperty("K8s::Argo::Applicati
189
189
  export const Application_Info = createProperty("K8s::Argo::Application.info", "k8s");
190
190
  export const Application_Source = createProperty("K8s::Argo::Application.source", "k8s");
191
191
  export const Application_Sources = createProperty("K8s::Argo::Application.sources", "k8s");
192
+ export const Application_Status = createProperty("K8s::Argo::Application.status", "k8s");
192
193
  export const Application_SyncPolicy = createProperty("K8s::Argo::Application.syncPolicy", "k8s");
193
194
  export const ApplicationSet_Generator = createProperty("K8s::Argo::ApplicationSet.generators", "k8s");
194
195
  export const ApplicationSet_IgnoreApplicationDifference = createProperty("K8s::Argo::ApplicationSet.ignoreApplicationDifferences", "k8s");
195
196
  export const ApplicationSet_PreservedFields = createProperty("K8s::Argo::ApplicationSet.preservedFields", "k8s");
197
+ export const ApplicationSet_Status = createProperty("K8s::Argo::ApplicationSet.status", "k8s");
196
198
  export const ApplicationSet_Strategy = createProperty("K8s::Argo::ApplicationSet.strategy", "k8s");
197
199
  export const ApplicationSet_SyncPolicy = createProperty("K8s::Argo::ApplicationSet.syncPolicy", "k8s");
198
200
  export const ApplicationSet_Template = createProperty("K8s::Argo::ApplicationSet.template", "k8s");
@@ -205,6 +207,7 @@ export const AppProject_NamespaceResourceWhitelist = createProperty("K8s::Argo::
205
207
  export const AppProject_OrphanedResources = createProperty("K8s::Argo::AppProject.orphanedResources", "k8s");
206
208
  export const AppProject_Role = createProperty("K8s::Argo::AppProject.roles", "k8s");
207
209
  export const AppProject_SignatureKey = createProperty("K8s::Argo::AppProject.signatureKeys", "k8s");
210
+ export const AppProject_Status = createProperty("K8s::Argo::AppProject.status", "k8s");
208
211
  export const AppProject_SyncWindow = createProperty("K8s::Argo::AppProject.syncWindows", "k8s");
209
212
  export const Capabilities = createProperty("K8s::Core::Capabilities", "k8s");
210
213
  export const Certificate_AdditionalOutputFormat = createProperty("K8s::CertManager::Certificate.additionalOutputFormats", "k8s");
@@ -214,13 +217,17 @@ export const Certificate_NameConstraints = createProperty("K8s::CertManager::Cer
214
217
  export const Certificate_OtherName = createProperty("K8s::CertManager::Certificate.otherNames", "k8s");
215
218
  export const Certificate_PrivateKey = createProperty("K8s::CertManager::Certificate.privateKey", "k8s");
216
219
  export const Certificate_SecretTemplate = createProperty("K8s::CertManager::Certificate.secretTemplate", "k8s");
220
+ export const Certificate_Status = createProperty("K8s::CertManager::Certificate.status", "k8s");
217
221
  export const Certificate_Subject = createProperty("K8s::CertManager::Certificate.subject", "k8s");
218
222
  export const CertificateRequest_IssuerRef = createProperty("K8s::CertManager::CertificateRequest.issuerRef", "k8s");
223
+ export const CertificateRequest_Status = createProperty("K8s::CertManager::CertificateRequest.status", "k8s");
219
224
  export const Challenge_IssuerRef = createProperty("K8s::Acme::Challenge.issuerRef", "k8s");
220
225
  export const Challenge_Solver = createProperty("K8s::Acme::Challenge.solver", "k8s");
226
+ export const Challenge_Status = createProperty("K8s::Acme::Challenge.status", "k8s");
221
227
  export const ClusterIssuer_Acme = createProperty("K8s::CertManager::ClusterIssuer.acme", "k8s");
222
228
  export const ClusterIssuer_Ca = createProperty("K8s::CertManager::ClusterIssuer.ca", "k8s");
223
229
  export const ClusterIssuer_SelfSigned = createProperty("K8s::CertManager::ClusterIssuer.selfSigned", "k8s");
230
+ export const ClusterIssuer_Status = createProperty("K8s::CertManager::ClusterIssuer.status", "k8s");
224
231
  export const ClusterIssuer_Vault = createProperty("K8s::CertManager::ClusterIssuer.vault", "k8s");
225
232
  export const ClusterIssuer_Venafi = createProperty("K8s::CertManager::ClusterIssuer.venafi", "k8s");
226
233
  export const ConfigMapKeySelector = createProperty("K8s::Core::ConfigMapKeySelector", "k8s");
@@ -232,6 +239,7 @@ export const CrdbCluster_Image = createProperty("K8s::Crdb::CrdbCluster.image",
232
239
  export const CrdbCluster_Ingress = createProperty("K8s::Crdb::CrdbCluster.ingress", "k8s");
233
240
  export const CrdbCluster_PodEnvVariable = createProperty("K8s::Crdb::CrdbCluster.podEnvVariables", "k8s");
234
241
  export const CrdbCluster_Resources = createProperty("K8s::Crdb::CrdbCluster.resources", "k8s");
242
+ export const CrdbCluster_Status = createProperty("K8s::Crdb::CrdbCluster.status", "k8s");
235
243
  export const CrdbCluster_Toleration = createProperty("K8s::Crdb::CrdbCluster.tolerations", "k8s");
236
244
  export const CrdbCluster_TopologySpreadConstraint = createProperty("K8s::Crdb::CrdbCluster.topologySpreadConstraints", "k8s");
237
245
  export const DeploymentStrategy = createProperty("K8s::Apps::DeploymentStrategy", "k8s");
@@ -243,15 +251,19 @@ export const ExecAction = createProperty("K8s::Core::ExecAction", "k8s");
243
251
  export const Gateway_Address = createProperty("K8s::Gateway::Gateway.addresses", "k8s");
244
252
  export const Gateway_Infrastructure = createProperty("K8s::Gateway::Gateway.infrastructure", "k8s");
245
253
  export const Gateway_Listener = createProperty("K8s::Gateway::Gateway.listeners", "k8s");
254
+ export const Gateway_Status = createProperty("K8s::Gateway::Gateway.status", "k8s");
246
255
  export const GatewayClass_ParametersRef = createProperty("K8s::Gateway::GatewayClass.parametersRef", "k8s");
256
+ export const GatewayClass_Status = createProperty("K8s::Gateway::GatewayClass.status", "k8s");
247
257
  export const GRPCRoute_ParentRef = createProperty("K8s::Gateway::GRPCRoute.parentRefs", "k8s");
248
258
  export const GRPCRoute_Rule = createProperty("K8s::Gateway::GRPCRoute.rules", "k8s");
259
+ export const GRPCRoute_Status = createProperty("K8s::Gateway::GRPCRoute.status", "k8s");
249
260
  export const HorizontalPodAutoscalerBehavior = createProperty("K8s::Autoscaling::HorizontalPodAutoscalerBehavior", "k8s");
250
261
  export const HostAlias = createProperty("K8s::Core::HostAlias", "k8s");
251
262
  export const HTTPGetAction = createProperty("K8s::Core::HTTPGetAction", "k8s");
252
263
  export const HTTPIngressPath = createProperty("K8s::Networking::HTTPIngressPath", "k8s");
253
264
  export const HTTPRoute_ParentRef = createProperty("K8s::Gateway::HTTPRoute.parentRefs", "k8s");
254
265
  export const HTTPRoute_Rule = createProperty("K8s::Gateway::HTTPRoute.rules", "k8s");
266
+ export const HTTPRoute_Status = createProperty("K8s::Gateway::HTTPRoute.status", "k8s");
255
267
  export const IngressBackend = createProperty("K8s::Networking::IngressBackend", "k8s");
256
268
  export const IngressRule = createProperty("K8s::Networking::IngressRule", "k8s");
257
269
  export const IngressServiceBackend = createProperty("K8s::Networking::IngressServiceBackend", "k8s");
@@ -259,6 +271,7 @@ export const IngressTLS = createProperty("K8s::Networking::IngressTLS", "k8s");
259
271
  export const Issuer_Acme = createProperty("K8s::CertManager::Issuer.acme", "k8s");
260
272
  export const Issuer_Ca = createProperty("K8s::CertManager::Issuer.ca", "k8s");
261
273
  export const Issuer_SelfSigned = createProperty("K8s::CertManager::Issuer.selfSigned", "k8s");
274
+ export const Issuer_Status = createProperty("K8s::CertManager::Issuer.status", "k8s");
262
275
  export const Issuer_Vault = createProperty("K8s::CertManager::Issuer.vault", "k8s");
263
276
  export const Issuer_Venafi = createProperty("K8s::CertManager::Issuer.venafi", "k8s");
264
277
  export const KeyToPath = createProperty("K8s::Core::KeyToPath", "k8s");
@@ -273,6 +286,7 @@ export const NetworkPolicyPort = createProperty("K8s::Networking::NetworkPolicyP
273
286
  export const ObjectMeta = createProperty("K8s::Meta::ObjectMeta", "k8s");
274
287
  export const ObjectReference = createProperty("K8s::Core::ObjectReference", "k8s");
275
288
  export const Order_IssuerRef = createProperty("K8s::Acme::Order.issuerRef", "k8s");
289
+ export const Order_Status = createProperty("K8s::Acme::Order.status", "k8s");
276
290
  export const PersistentVolumeClaimSpec = createProperty("K8s::Core::PersistentVolumeClaimSpec", "k8s");
277
291
  export const PodDisruptionBudgetSpec = createProperty("K8s::Policy::PodDisruptionBudgetSpec", "k8s");
278
292
  export const PodSecurityContext = createProperty("K8s::Core::PodSecurityContext", "k8s");
@@ -284,12 +298,15 @@ export const PrometheusRule_Group = createProperty("K8s::Monitoring::PrometheusR
284
298
  export const RayCluster_AutoscalerOptions = createProperty("K8s::Ray::RayCluster.autoscalerOptions", "k8s");
285
299
  export const RayCluster_GcsFaultToleranceOptions = createProperty("K8s::Ray::RayCluster.gcsFaultToleranceOptions", "k8s");
286
300
  export const RayCluster_HeadGroupSpec = createProperty("K8s::Ray::RayCluster.headGroupSpec", "k8s");
301
+ export const RayCluster_Status = createProperty("K8s::Ray::RayCluster.status", "k8s");
287
302
  export const RayCluster_WorkerGroupSpec = createProperty("K8s::Ray::RayCluster.workerGroupSpecs", "k8s");
288
303
  export const RayJob_RayClusterSpec = createProperty("K8s::Ray::RayJob.rayClusterSpec", "k8s");
304
+ export const RayJob_Status = createProperty("K8s::Ray::RayJob.status", "k8s");
289
305
  export const RayJob_SubmitterConfig = createProperty("K8s::Ray::RayJob.submitterConfig", "k8s");
290
306
  export const RayJob_SubmitterPodTemplate = createProperty("K8s::Ray::RayJob.submitterPodTemplate", "k8s");
291
307
  export const RayService_RayClusterConfig = createProperty("K8s::Ray::RayService.rayClusterConfig", "k8s");
292
308
  export const RayService_ServeService = createProperty("K8s::Ray::RayService.serveService", "k8s");
309
+ export const RayService_Status = createProperty("K8s::Ray::RayService.status", "k8s");
293
310
  export const RayService_UpgradeStrategy = createProperty("K8s::Ray::RayService.upgradeStrategy", "k8s");
294
311
  export const ReferenceGrant_From = createProperty("K8s::Gateway::ReferenceGrant.from", "k8s");
295
312
  export const ReferenceGrant_To = createProperty("K8s::Gateway::ReferenceGrant.to", "k8s");