@intentius/chant-lexicon-k8s 0.37.2 → 0.38.0
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.
- package/dist/crd/crd-sources.d.ts.map +1 -1
- package/dist/crd/parser.d.ts.map +1 -1
- package/dist/generated/index.d.ts +134 -0
- package/dist/generated/index.d.ts.map +1 -1
- package/dist/integrity.json +4 -4
- package/dist/manifest.json +1 -1
- package/dist/meta.json +1086 -45
- package/dist/plugin.d.ts.map +1 -1
- package/dist/serializer.d.ts.map +1 -1
- package/dist/types/index.d.ts +229 -0
- package/package.json +2 -2
- package/src/crd/cnpg.test.ts +186 -0
- package/src/crd/crd-sources.ts +123 -0
- package/src/crd/infisical.test.ts +100 -0
- package/src/crd/parser.ts +8 -0
- package/src/crd/traefik.test.ts +108 -0
- package/src/generated/index.d.ts +229 -0
- package/src/generated/index.ts +134 -0
- package/src/generated/lexicon-k8s.json +1086 -45
- package/src/generated/operations.json +288 -0
- package/src/lifecycle-integration.test.ts +1 -0
- package/src/plugin.ts +2 -0
- package/src/serializer.ts +4 -0
|
@@ -625,6 +625,86 @@
|
|
|
625
625
|
"scope": "Namespaced",
|
|
626
626
|
"verbs": []
|
|
627
627
|
},
|
|
628
|
+
"K8s::Cnpg::Backup": {
|
|
629
|
+
"entityType": "K8s::Cnpg::Backup",
|
|
630
|
+
"apiVersion": "postgresql.cnpg.io/v1",
|
|
631
|
+
"kind": "Backup",
|
|
632
|
+
"plural": "backups",
|
|
633
|
+
"scope": "Namespaced",
|
|
634
|
+
"verbs": [
|
|
635
|
+
"delete",
|
|
636
|
+
"get",
|
|
637
|
+
"list",
|
|
638
|
+
"patch",
|
|
639
|
+
"post",
|
|
640
|
+
"put",
|
|
641
|
+
"watch"
|
|
642
|
+
]
|
|
643
|
+
},
|
|
644
|
+
"K8s::Cnpg::Cluster": {
|
|
645
|
+
"entityType": "K8s::Cnpg::Cluster",
|
|
646
|
+
"apiVersion": "postgresql.cnpg.io/v1",
|
|
647
|
+
"kind": "Cluster",
|
|
648
|
+
"plural": "clusters",
|
|
649
|
+
"scope": "Namespaced",
|
|
650
|
+
"verbs": [
|
|
651
|
+
"delete",
|
|
652
|
+
"get",
|
|
653
|
+
"list",
|
|
654
|
+
"patch",
|
|
655
|
+
"post",
|
|
656
|
+
"put",
|
|
657
|
+
"watch"
|
|
658
|
+
]
|
|
659
|
+
},
|
|
660
|
+
"K8s::Cnpg::ObjectStore": {
|
|
661
|
+
"entityType": "K8s::Cnpg::ObjectStore",
|
|
662
|
+
"apiVersion": "barmancloud.cnpg.io/v1",
|
|
663
|
+
"kind": "ObjectStore",
|
|
664
|
+
"plural": "objectstores",
|
|
665
|
+
"scope": "Namespaced",
|
|
666
|
+
"verbs": [
|
|
667
|
+
"delete",
|
|
668
|
+
"get",
|
|
669
|
+
"list",
|
|
670
|
+
"patch",
|
|
671
|
+
"post",
|
|
672
|
+
"put",
|
|
673
|
+
"watch"
|
|
674
|
+
]
|
|
675
|
+
},
|
|
676
|
+
"K8s::Cnpg::Pooler": {
|
|
677
|
+
"entityType": "K8s::Cnpg::Pooler",
|
|
678
|
+
"apiVersion": "postgresql.cnpg.io/v1",
|
|
679
|
+
"kind": "Pooler",
|
|
680
|
+
"plural": "poolers",
|
|
681
|
+
"scope": "Namespaced",
|
|
682
|
+
"verbs": [
|
|
683
|
+
"delete",
|
|
684
|
+
"get",
|
|
685
|
+
"list",
|
|
686
|
+
"patch",
|
|
687
|
+
"post",
|
|
688
|
+
"put",
|
|
689
|
+
"watch"
|
|
690
|
+
]
|
|
691
|
+
},
|
|
692
|
+
"K8s::Cnpg::ScheduledBackup": {
|
|
693
|
+
"entityType": "K8s::Cnpg::ScheduledBackup",
|
|
694
|
+
"apiVersion": "postgresql.cnpg.io/v1",
|
|
695
|
+
"kind": "ScheduledBackup",
|
|
696
|
+
"plural": "scheduledbackups",
|
|
697
|
+
"scope": "Namespaced",
|
|
698
|
+
"verbs": [
|
|
699
|
+
"delete",
|
|
700
|
+
"get",
|
|
701
|
+
"list",
|
|
702
|
+
"patch",
|
|
703
|
+
"post",
|
|
704
|
+
"put",
|
|
705
|
+
"watch"
|
|
706
|
+
]
|
|
707
|
+
},
|
|
628
708
|
"K8s::Coordination::Lease": {
|
|
629
709
|
"entityType": "K8s::Coordination::Lease",
|
|
630
710
|
"apiVersion": "coordination.k8s.io/v1",
|
|
@@ -1537,6 +1617,54 @@
|
|
|
1537
1617
|
"watch"
|
|
1538
1618
|
]
|
|
1539
1619
|
},
|
|
1620
|
+
"K8s::Infisical::InfisicalDynamicSecret": {
|
|
1621
|
+
"entityType": "K8s::Infisical::InfisicalDynamicSecret",
|
|
1622
|
+
"apiVersion": "secrets.infisical.com/v1alpha1",
|
|
1623
|
+
"kind": "InfisicalDynamicSecret",
|
|
1624
|
+
"plural": "infisicaldynamicsecrets",
|
|
1625
|
+
"scope": "Namespaced",
|
|
1626
|
+
"verbs": [
|
|
1627
|
+
"delete",
|
|
1628
|
+
"get",
|
|
1629
|
+
"list",
|
|
1630
|
+
"patch",
|
|
1631
|
+
"post",
|
|
1632
|
+
"put",
|
|
1633
|
+
"watch"
|
|
1634
|
+
]
|
|
1635
|
+
},
|
|
1636
|
+
"K8s::Infisical::InfisicalPushSecret": {
|
|
1637
|
+
"entityType": "K8s::Infisical::InfisicalPushSecret",
|
|
1638
|
+
"apiVersion": "secrets.infisical.com/v1alpha1",
|
|
1639
|
+
"kind": "InfisicalPushSecret",
|
|
1640
|
+
"plural": "infisicalpushsecrets",
|
|
1641
|
+
"scope": "Namespaced",
|
|
1642
|
+
"verbs": [
|
|
1643
|
+
"delete",
|
|
1644
|
+
"get",
|
|
1645
|
+
"list",
|
|
1646
|
+
"patch",
|
|
1647
|
+
"post",
|
|
1648
|
+
"put",
|
|
1649
|
+
"watch"
|
|
1650
|
+
]
|
|
1651
|
+
},
|
|
1652
|
+
"K8s::Infisical::InfisicalSecret": {
|
|
1653
|
+
"entityType": "K8s::Infisical::InfisicalSecret",
|
|
1654
|
+
"apiVersion": "secrets.infisical.com/v1alpha1",
|
|
1655
|
+
"kind": "InfisicalSecret",
|
|
1656
|
+
"plural": "infisicalsecrets",
|
|
1657
|
+
"scope": "Namespaced",
|
|
1658
|
+
"verbs": [
|
|
1659
|
+
"delete",
|
|
1660
|
+
"get",
|
|
1661
|
+
"list",
|
|
1662
|
+
"patch",
|
|
1663
|
+
"post",
|
|
1664
|
+
"put",
|
|
1665
|
+
"watch"
|
|
1666
|
+
]
|
|
1667
|
+
},
|
|
1540
1668
|
"K8s::KubeMicroVM::MicroVM": {
|
|
1541
1669
|
"entityType": "K8s::KubeMicroVM::MicroVM",
|
|
1542
1670
|
"apiVersion": "lambda.aws.amazon.com/v1alpha1",
|
|
@@ -2232,5 +2360,165 @@
|
|
|
2232
2360
|
"plural": "storageversionmigrationlists",
|
|
2233
2361
|
"scope": "Namespaced",
|
|
2234
2362
|
"verbs": []
|
|
2363
|
+
},
|
|
2364
|
+
"K8s::Traefik::IngressRoute": {
|
|
2365
|
+
"entityType": "K8s::Traefik::IngressRoute",
|
|
2366
|
+
"apiVersion": "traefik.io/v1alpha1",
|
|
2367
|
+
"kind": "IngressRoute",
|
|
2368
|
+
"plural": "ingressroutes",
|
|
2369
|
+
"scope": "Namespaced",
|
|
2370
|
+
"verbs": [
|
|
2371
|
+
"delete",
|
|
2372
|
+
"get",
|
|
2373
|
+
"list",
|
|
2374
|
+
"patch",
|
|
2375
|
+
"post",
|
|
2376
|
+
"put",
|
|
2377
|
+
"watch"
|
|
2378
|
+
]
|
|
2379
|
+
},
|
|
2380
|
+
"K8s::Traefik::IngressRouteTCP": {
|
|
2381
|
+
"entityType": "K8s::Traefik::IngressRouteTCP",
|
|
2382
|
+
"apiVersion": "traefik.io/v1alpha1",
|
|
2383
|
+
"kind": "IngressRouteTCP",
|
|
2384
|
+
"plural": "ingressroutetcps",
|
|
2385
|
+
"scope": "Namespaced",
|
|
2386
|
+
"verbs": [
|
|
2387
|
+
"delete",
|
|
2388
|
+
"get",
|
|
2389
|
+
"list",
|
|
2390
|
+
"patch",
|
|
2391
|
+
"post",
|
|
2392
|
+
"put",
|
|
2393
|
+
"watch"
|
|
2394
|
+
]
|
|
2395
|
+
},
|
|
2396
|
+
"K8s::Traefik::IngressRouteUDP": {
|
|
2397
|
+
"entityType": "K8s::Traefik::IngressRouteUDP",
|
|
2398
|
+
"apiVersion": "traefik.io/v1alpha1",
|
|
2399
|
+
"kind": "IngressRouteUDP",
|
|
2400
|
+
"plural": "ingressrouteudps",
|
|
2401
|
+
"scope": "Namespaced",
|
|
2402
|
+
"verbs": [
|
|
2403
|
+
"delete",
|
|
2404
|
+
"get",
|
|
2405
|
+
"list",
|
|
2406
|
+
"patch",
|
|
2407
|
+
"post",
|
|
2408
|
+
"put",
|
|
2409
|
+
"watch"
|
|
2410
|
+
]
|
|
2411
|
+
},
|
|
2412
|
+
"K8s::Traefik::Middleware": {
|
|
2413
|
+
"entityType": "K8s::Traefik::Middleware",
|
|
2414
|
+
"apiVersion": "traefik.io/v1alpha1",
|
|
2415
|
+
"kind": "Middleware",
|
|
2416
|
+
"plural": "middlewares",
|
|
2417
|
+
"scope": "Namespaced",
|
|
2418
|
+
"verbs": [
|
|
2419
|
+
"delete",
|
|
2420
|
+
"get",
|
|
2421
|
+
"list",
|
|
2422
|
+
"patch",
|
|
2423
|
+
"post",
|
|
2424
|
+
"put",
|
|
2425
|
+
"watch"
|
|
2426
|
+
]
|
|
2427
|
+
},
|
|
2428
|
+
"K8s::Traefik::MiddlewareTCP": {
|
|
2429
|
+
"entityType": "K8s::Traefik::MiddlewareTCP",
|
|
2430
|
+
"apiVersion": "traefik.io/v1alpha1",
|
|
2431
|
+
"kind": "MiddlewareTCP",
|
|
2432
|
+
"plural": "middlewaretcps",
|
|
2433
|
+
"scope": "Namespaced",
|
|
2434
|
+
"verbs": [
|
|
2435
|
+
"delete",
|
|
2436
|
+
"get",
|
|
2437
|
+
"list",
|
|
2438
|
+
"patch",
|
|
2439
|
+
"post",
|
|
2440
|
+
"put",
|
|
2441
|
+
"watch"
|
|
2442
|
+
]
|
|
2443
|
+
},
|
|
2444
|
+
"K8s::Traefik::ServersTransport": {
|
|
2445
|
+
"entityType": "K8s::Traefik::ServersTransport",
|
|
2446
|
+
"apiVersion": "traefik.io/v1alpha1",
|
|
2447
|
+
"kind": "ServersTransport",
|
|
2448
|
+
"plural": "serverstransports",
|
|
2449
|
+
"scope": "Namespaced",
|
|
2450
|
+
"verbs": [
|
|
2451
|
+
"delete",
|
|
2452
|
+
"get",
|
|
2453
|
+
"list",
|
|
2454
|
+
"patch",
|
|
2455
|
+
"post",
|
|
2456
|
+
"put",
|
|
2457
|
+
"watch"
|
|
2458
|
+
]
|
|
2459
|
+
},
|
|
2460
|
+
"K8s::Traefik::ServersTransportTCP": {
|
|
2461
|
+
"entityType": "K8s::Traefik::ServersTransportTCP",
|
|
2462
|
+
"apiVersion": "traefik.io/v1alpha1",
|
|
2463
|
+
"kind": "ServersTransportTCP",
|
|
2464
|
+
"plural": "serverstransporttcps",
|
|
2465
|
+
"scope": "Namespaced",
|
|
2466
|
+
"verbs": [
|
|
2467
|
+
"delete",
|
|
2468
|
+
"get",
|
|
2469
|
+
"list",
|
|
2470
|
+
"patch",
|
|
2471
|
+
"post",
|
|
2472
|
+
"put",
|
|
2473
|
+
"watch"
|
|
2474
|
+
]
|
|
2475
|
+
},
|
|
2476
|
+
"K8s::Traefik::TLSOption": {
|
|
2477
|
+
"entityType": "K8s::Traefik::TLSOption",
|
|
2478
|
+
"apiVersion": "traefik.io/v1alpha1",
|
|
2479
|
+
"kind": "TLSOption",
|
|
2480
|
+
"plural": "tlsoptions",
|
|
2481
|
+
"scope": "Namespaced",
|
|
2482
|
+
"verbs": [
|
|
2483
|
+
"delete",
|
|
2484
|
+
"get",
|
|
2485
|
+
"list",
|
|
2486
|
+
"patch",
|
|
2487
|
+
"post",
|
|
2488
|
+
"put",
|
|
2489
|
+
"watch"
|
|
2490
|
+
]
|
|
2491
|
+
},
|
|
2492
|
+
"K8s::Traefik::TLSStore": {
|
|
2493
|
+
"entityType": "K8s::Traefik::TLSStore",
|
|
2494
|
+
"apiVersion": "traefik.io/v1alpha1",
|
|
2495
|
+
"kind": "TLSStore",
|
|
2496
|
+
"plural": "tlsstores",
|
|
2497
|
+
"scope": "Namespaced",
|
|
2498
|
+
"verbs": [
|
|
2499
|
+
"delete",
|
|
2500
|
+
"get",
|
|
2501
|
+
"list",
|
|
2502
|
+
"patch",
|
|
2503
|
+
"post",
|
|
2504
|
+
"put",
|
|
2505
|
+
"watch"
|
|
2506
|
+
]
|
|
2507
|
+
},
|
|
2508
|
+
"K8s::Traefik::TraefikService": {
|
|
2509
|
+
"entityType": "K8s::Traefik::TraefikService",
|
|
2510
|
+
"apiVersion": "traefik.io/v1alpha1",
|
|
2511
|
+
"kind": "TraefikService",
|
|
2512
|
+
"plural": "traefikservices",
|
|
2513
|
+
"scope": "Namespaced",
|
|
2514
|
+
"verbs": [
|
|
2515
|
+
"delete",
|
|
2516
|
+
"get",
|
|
2517
|
+
"list",
|
|
2518
|
+
"patch",
|
|
2519
|
+
"post",
|
|
2520
|
+
"put",
|
|
2521
|
+
"watch"
|
|
2522
|
+
]
|
|
2235
2523
|
}
|
|
2236
2524
|
}
|
|
@@ -211,6 +211,7 @@ describe("k8s lifecycle integration (#163)", () => {
|
|
|
211
211
|
// The shared conformance suite (#1089) — every observing lexicon runs it.
|
|
212
212
|
describeObservationConformance({
|
|
213
213
|
lexicon: "k8s",
|
|
214
|
+
ownershipChannel: k8sPlugin.ownershipChannel,
|
|
214
215
|
scenarios: [
|
|
215
216
|
{
|
|
216
217
|
name: "an RBAC-denied read alongside a confirmed absence",
|
package/src/plugin.ts
CHANGED
|
@@ -26,9 +26,11 @@ import { k8sHover } from "./lsp/hover";
|
|
|
26
26
|
import { K8sParser } from "./import/parser";
|
|
27
27
|
import { K8sGenerator } from "./import/generator";
|
|
28
28
|
import { k8sDeepNormalizationHooks } from "./deep-observe-hooks";
|
|
29
|
+
import { LABEL_OWNERSHIP_KEYS } from "@intentius/chant/ownership";
|
|
29
30
|
|
|
30
31
|
export const k8sPlugin: LexiconPlugin = {
|
|
31
32
|
name: "k8s",
|
|
33
|
+
ownershipChannel: { keys: LABEL_OWNERSHIP_KEYS, reads: ["describeResources", "observeResourcesDeep", "exportResources"] },
|
|
32
34
|
auditCatalog: () => k8sAuditCatalog,
|
|
33
35
|
serializer: k8sSerializer,
|
|
34
36
|
// Self-upgrade: where the pinned Kubernetes schema version lives + its upstream (#685).
|
package/src/serializer.ts
CHANGED
|
@@ -153,6 +153,10 @@ function toYAMLValue(value: unknown, entityNames: Map<Declarable, string>): unkn
|
|
|
153
153
|
export const k8sSerializer: Serializer = {
|
|
154
154
|
name: "k8s",
|
|
155
155
|
rulePrefix: "WK8",
|
|
156
|
+
// The Argo CD checks are a distinct product surface this lexicon covers, and
|
|
157
|
+
// their ids are published — renaming them would break every `chant-disable
|
|
158
|
+
// ARGO001` already written (#1349).
|
|
159
|
+
extraRulePrefixes: ["ARGO"],
|
|
156
160
|
|
|
157
161
|
serialize(entities: Map<string, Declarable>, _outputs?: LexiconOutput[], context?: SerializeContext): string {
|
|
158
162
|
// Build reverse map: entity → name
|