@intentius/chant-lexicon-k8s 0.7.0 → 0.8.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/actions/apps.d.ts +44 -0
- package/dist/actions/apps.d.ts.map +1 -0
- package/dist/actions/batch.d.ts +22 -0
- package/dist/actions/batch.d.ts.map +1 -0
- package/dist/actions/core.d.ts +131 -0
- package/dist/actions/core.d.ts.map +1 -0
- package/dist/actions/index.d.ts +9 -0
- package/dist/actions/index.d.ts.map +1 -0
- package/dist/actions/networking.d.ts +27 -0
- package/dist/actions/networking.d.ts.map +1 -0
- package/dist/actions/rbac.d.ts +40 -0
- package/dist/actions/rbac.d.ts.map +1 -0
- package/dist/codegen/docs-cli.d.ts +2 -0
- package/dist/codegen/docs-cli.d.ts.map +1 -0
- package/dist/codegen/docs.d.ts +12 -0
- package/dist/codegen/docs.d.ts.map +1 -0
- package/dist/codegen/generate-cli.d.ts +6 -0
- package/dist/codegen/generate-cli.d.ts.map +1 -0
- package/dist/codegen/generate-lexicon.d.ts +21 -0
- package/dist/codegen/generate-lexicon.d.ts.map +1 -0
- package/dist/codegen/generate-typescript.d.ts +11 -0
- package/dist/codegen/generate-typescript.d.ts.map +1 -0
- package/dist/codegen/generate.d.ts +19 -0
- package/dist/codegen/generate.d.ts.map +1 -0
- package/dist/codegen/naming.d.ts +15 -0
- package/dist/codegen/naming.d.ts.map +1 -0
- package/dist/codegen/package.d.ts +11 -0
- package/dist/codegen/package.d.ts.map +1 -0
- package/dist/codegen/patches.d.ts +31 -0
- package/dist/codegen/patches.d.ts.map +1 -0
- package/dist/codegen/typecheck.d.ts +5 -0
- package/dist/codegen/typecheck.d.ts.map +1 -0
- package/dist/codegen/versions.d.ts +20 -0
- package/dist/codegen/versions.d.ts.map +1 -0
- package/dist/composites/adot-collector.d.ts +66 -0
- package/dist/composites/adot-collector.d.ts.map +1 -0
- package/dist/composites/agic-ingress.d.ts +73 -0
- package/dist/composites/agic-ingress.d.ts.map +1 -0
- package/dist/composites/aks-external-dns-agent.d.ts +65 -0
- package/dist/composites/aks-external-dns-agent.d.ts.map +1 -0
- package/dist/composites/alb-ingress.d.ts +77 -0
- package/dist/composites/alb-ingress.d.ts.map +1 -0
- package/dist/composites/argo-app.d.ts +168 -0
- package/dist/composites/argo-app.d.ts.map +1 -0
- package/dist/composites/autoscaled-service.d.ts +106 -0
- package/dist/composites/autoscaled-service.d.ts.map +1 -0
- package/dist/composites/azure-disk-storage-class.d.ts +48 -0
- package/dist/composites/azure-disk-storage-class.d.ts.map +1 -0
- package/dist/composites/azure-file-storage-class.d.ts +46 -0
- package/dist/composites/azure-file-storage-class.d.ts.map +1 -0
- package/dist/composites/azure-monitor-collector.d.ts +63 -0
- package/dist/composites/azure-monitor-collector.d.ts.map +1 -0
- package/dist/composites/batch-job.d.ts +85 -0
- package/dist/composites/batch-job.d.ts.map +1 -0
- package/dist/composites/cockroachdb-cluster.d.ts +132 -0
- package/dist/composites/cockroachdb-cluster.d.ts.map +1 -0
- package/dist/composites/cockroachdb-region-stack.d.ts +164 -0
- package/dist/composites/cockroachdb-region-stack.d.ts.map +1 -0
- package/dist/composites/config-connector-context.d.ts +41 -0
- package/dist/composites/config-connector-context.d.ts.map +1 -0
- package/dist/composites/configured-app.d.ts +91 -0
- package/dist/composites/configured-app.d.ts.map +1 -0
- package/dist/composites/cron-workload.d.ts +76 -0
- package/dist/composites/cron-workload.d.ts.map +1 -0
- package/dist/composites/ebs-storage-class.d.ts +55 -0
- package/dist/composites/ebs-storage-class.d.ts.map +1 -0
- package/dist/composites/efs-storage-class.d.ts +47 -0
- package/dist/composites/efs-storage-class.d.ts.map +1 -0
- package/dist/composites/external-dns-agent.d.ts +58 -0
- package/dist/composites/external-dns-agent.d.ts.map +1 -0
- package/dist/composites/filestore-storage-class.d.ts +46 -0
- package/dist/composites/filestore-storage-class.d.ts.map +1 -0
- package/dist/composites/fluent-bit-agent.d.ts +66 -0
- package/dist/composites/fluent-bit-agent.d.ts.map +1 -0
- package/dist/composites/gce-ingress.d.ts +72 -0
- package/dist/composites/gce-ingress.d.ts.map +1 -0
- package/dist/composites/gce-pd-storage-class.d.ts +48 -0
- package/dist/composites/gce-pd-storage-class.d.ts.map +1 -0
- package/dist/composites/gke-external-dns-agent.d.ts +59 -0
- package/dist/composites/gke-external-dns-agent.d.ts.map +1 -0
- package/dist/composites/gke-fluent-bit-agent.d.ts +64 -0
- package/dist/composites/gke-fluent-bit-agent.d.ts.map +1 -0
- package/dist/composites/gke-gateway.d.ts +63 -0
- package/dist/composites/gke-gateway.d.ts.map +1 -0
- package/dist/composites/gke-otel-collector.d.ts +64 -0
- package/dist/composites/gke-otel-collector.d.ts.map +1 -0
- package/dist/composites/index.d.ts +86 -0
- package/dist/composites/index.d.ts.map +1 -0
- package/dist/composites/irsa-service-account.d.ts +54 -0
- package/dist/composites/irsa-service-account.d.ts.map +1 -0
- package/dist/composites/metrics-server.d.ts +56 -0
- package/dist/composites/metrics-server.d.ts.map +1 -0
- package/dist/composites/monitored-service.d.ts +92 -0
- package/dist/composites/monitored-service.d.ts.map +1 -0
- package/dist/composites/namespace-env.d.ts +64 -0
- package/dist/composites/namespace-env.d.ts.map +1 -0
- package/dist/composites/network-isolated-app.d.ts +88 -0
- package/dist/composites/network-isolated-app.d.ts.map +1 -0
- package/dist/composites/node-agent.d.ts +87 -0
- package/dist/composites/node-agent.d.ts.map +1 -0
- package/dist/composites/ray-cluster.d.ts +179 -0
- package/dist/composites/ray-cluster.d.ts.map +1 -0
- package/dist/composites/ray-job.d.ts +88 -0
- package/dist/composites/ray-job.d.ts.map +1 -0
- package/dist/composites/ray-service.d.ts +87 -0
- package/dist/composites/ray-service.d.ts.map +1 -0
- package/dist/composites/secure-ingress.d.ts +66 -0
- package/dist/composites/secure-ingress.d.ts.map +1 -0
- package/dist/composites/security-context.d.ts +17 -0
- package/dist/composites/security-context.d.ts.map +1 -0
- package/dist/composites/sidecar-app.d.ts +121 -0
- package/dist/composites/sidecar-app.d.ts.map +1 -0
- package/dist/composites/stateful-app.d.ts +82 -0
- package/dist/composites/stateful-app.d.ts.map +1 -0
- package/dist/composites/web-app.d.ts +95 -0
- package/dist/composites/web-app.d.ts.map +1 -0
- package/dist/composites/worker-pool.d.ts +96 -0
- package/dist/composites/worker-pool.d.ts.map +1 -0
- package/dist/composites/workload-identity-sa.d.ts +54 -0
- package/dist/composites/workload-identity-sa.d.ts.map +1 -0
- package/dist/composites/workload-identity-service-account.d.ts +54 -0
- package/dist/composites/workload-identity-service-account.d.ts.map +1 -0
- package/dist/coverage.d.ts +14 -0
- package/dist/coverage.d.ts.map +1 -0
- package/dist/crd/crd-sources.d.ts +10 -0
- package/dist/crd/crd-sources.d.ts.map +1 -0
- package/dist/crd/loader.d.ts +17 -0
- package/dist/crd/loader.d.ts.map +1 -0
- package/dist/crd/parser.d.ts +21 -0
- package/dist/crd/parser.d.ts.map +1 -0
- package/dist/crd/types.d.ts +55 -0
- package/dist/crd/types.d.ts.map +1 -0
- package/dist/default-labels.d.ts +84 -0
- package/dist/default-labels.d.ts.map +1 -0
- package/dist/describe-resources.d.ts +30 -0
- package/dist/describe-resources.d.ts.map +1 -0
- package/dist/detect.d.ts +4 -0
- package/dist/detect.d.ts.map +1 -0
- package/dist/export-resources.d.ts +8 -0
- package/dist/export-resources.d.ts.map +1 -0
- package/dist/generated/index.d.ts +295 -0
- package/dist/generated/index.d.ts.map +1 -0
- package/dist/generated/runtime.d.ts +5 -0
- package/dist/generated/runtime.d.ts.map +1 -0
- package/dist/import/generator.d.ts +25 -0
- package/dist/import/generator.d.ts.map +1 -0
- package/dist/import/live-export.d.ts +18 -0
- package/dist/import/live-export.d.ts.map +1 -0
- package/dist/import/parser.d.ts +19 -0
- package/dist/import/parser.d.ts.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/integrity.json +2 -2
- package/dist/lint/post-synth/argo-helpers.d.ts +24 -0
- package/dist/lint/post-synth/argo-helpers.d.ts.map +1 -0
- package/dist/lint/post-synth/argo002.d.ts +12 -0
- package/dist/lint/post-synth/argo002.d.ts.map +1 -0
- package/dist/lint/post-synth/argo003.d.ts +14 -0
- package/dist/lint/post-synth/argo003.d.ts.map +1 -0
- package/dist/lint/post-synth/argo005.d.ts +3 -0
- package/dist/lint/post-synth/argo005.d.ts.map +1 -0
- package/dist/lint/post-synth/index.d.ts +3 -0
- package/dist/lint/post-synth/index.d.ts.map +1 -0
- package/dist/lint/post-synth/k8s-helpers.d.ts +97 -0
- package/dist/lint/post-synth/k8s-helpers.d.ts.map +1 -0
- package/dist/lint/post-synth/wk8005.d.ts +10 -0
- package/dist/lint/post-synth/wk8005.d.ts.map +1 -0
- package/dist/lint/post-synth/wk8006.d.ts +9 -0
- package/dist/lint/post-synth/wk8006.d.ts.map +1 -0
- package/dist/lint/post-synth/wk8041.d.ts +10 -0
- package/dist/lint/post-synth/wk8041.d.ts.map +1 -0
- package/dist/lint/post-synth/wk8042.d.ts +10 -0
- package/dist/lint/post-synth/wk8042.d.ts.map +1 -0
- package/dist/lint/post-synth/wk8101.d.ts +10 -0
- package/dist/lint/post-synth/wk8101.d.ts.map +1 -0
- package/dist/lint/post-synth/wk8102.d.ts +9 -0
- package/dist/lint/post-synth/wk8102.d.ts.map +1 -0
- package/dist/lint/post-synth/wk8103.d.ts +9 -0
- package/dist/lint/post-synth/wk8103.d.ts.map +1 -0
- package/dist/lint/post-synth/wk8104.d.ts +10 -0
- package/dist/lint/post-synth/wk8104.d.ts.map +1 -0
- package/dist/lint/post-synth/wk8105.d.ts +10 -0
- package/dist/lint/post-synth/wk8105.d.ts.map +1 -0
- package/dist/lint/post-synth/wk8201.d.ts +10 -0
- package/dist/lint/post-synth/wk8201.d.ts.map +1 -0
- package/dist/lint/post-synth/wk8202.d.ts +10 -0
- package/dist/lint/post-synth/wk8202.d.ts.map +1 -0
- package/dist/lint/post-synth/wk8203.d.ts +10 -0
- package/dist/lint/post-synth/wk8203.d.ts.map +1 -0
- package/dist/lint/post-synth/wk8204.d.ts +14 -0
- package/dist/lint/post-synth/wk8204.d.ts.map +1 -0
- package/dist/lint/post-synth/wk8205.d.ts +10 -0
- package/dist/lint/post-synth/wk8205.d.ts.map +1 -0
- package/dist/lint/post-synth/wk8207.d.ts +10 -0
- package/dist/lint/post-synth/wk8207.d.ts.map +1 -0
- package/dist/lint/post-synth/wk8208.d.ts +10 -0
- package/dist/lint/post-synth/wk8208.d.ts.map +1 -0
- package/dist/lint/post-synth/wk8209.d.ts +10 -0
- package/dist/lint/post-synth/wk8209.d.ts.map +1 -0
- package/dist/lint/post-synth/wk8301.d.ts +15 -0
- package/dist/lint/post-synth/wk8301.d.ts.map +1 -0
- package/dist/lint/post-synth/wk8302.d.ts +9 -0
- package/dist/lint/post-synth/wk8302.d.ts.map +1 -0
- package/dist/lint/post-synth/wk8303.d.ts +10 -0
- package/dist/lint/post-synth/wk8303.d.ts.map +1 -0
- package/dist/lint/post-synth/wk8304.d.ts +10 -0
- package/dist/lint/post-synth/wk8304.d.ts.map +1 -0
- package/dist/lint/post-synth/wk8305.d.ts +9 -0
- package/dist/lint/post-synth/wk8305.d.ts.map +1 -0
- package/dist/lint/post-synth/wk8306.d.ts +11 -0
- package/dist/lint/post-synth/wk8306.d.ts.map +1 -0
- package/dist/lint/post-synth/wk8401.d.ts +11 -0
- package/dist/lint/post-synth/wk8401.d.ts.map +1 -0
- package/dist/lint/post-synth/wk8402.d.ts +10 -0
- package/dist/lint/post-synth/wk8402.d.ts.map +1 -0
- package/dist/lint/post-synth/wk8403.d.ts +10 -0
- package/dist/lint/post-synth/wk8403.d.ts.map +1 -0
- package/dist/lint/rules/argo-appset-single-project.d.ts +18 -0
- package/dist/lint/rules/argo-appset-single-project.d.ts.map +1 -0
- package/dist/lint/rules/argo-ast.d.ts +37 -0
- package/dist/lint/rules/argo-ast.d.ts.map +1 -0
- package/dist/lint/rules/argo-automated-prune.d.ts +20 -0
- package/dist/lint/rules/argo-automated-prune.d.ts.map +1 -0
- package/dist/lint/rules/hardcoded-namespace.d.ts +13 -0
- package/dist/lint/rules/hardcoded-namespace.d.ts.map +1 -0
- package/dist/lint/rules/latest-image-tag.d.ts +3 -0
- package/dist/lint/rules/latest-image-tag.d.ts.map +1 -0
- package/dist/lint/rules/missing-resource-limits.d.ts +3 -0
- package/dist/lint/rules/missing-resource-limits.d.ts.map +1 -0
- package/dist/lsp/completions.d.ts +6 -0
- package/dist/lsp/completions.d.ts.map +1 -0
- package/dist/lsp/hover.d.ts +6 -0
- package/dist/lsp/hover.d.ts.map +1 -0
- package/dist/manifest.json +1 -1
- package/dist/micro-time.d.ts +43 -0
- package/dist/micro-time.d.ts.map +1 -0
- package/dist/package-cli.d.ts +6 -0
- package/dist/package-cli.d.ts.map +1 -0
- package/dist/plugin.d.ts +9 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/serializer.d.ts +12 -0
- package/dist/serializer.d.ts.map +1 -0
- package/dist/spec/fetch.d.ts +34 -0
- package/dist/spec/fetch.d.ts.map +1 -0
- package/dist/spec/parse.d.ts +73 -0
- package/dist/spec/parse.d.ts.map +1 -0
- package/dist/validate-cli.d.ts +6 -0
- package/dist/validate-cli.d.ts.map +1 -0
- package/dist/validate.d.ts +15 -0
- package/dist/validate.d.ts.map +1 -0
- package/dist/variables.d.ts +35 -0
- package/dist/variables.d.ts.map +1 -0
- package/package.json +24 -5
- package/src/composites/argo-app.ts +3 -3
- package/src/detect.ts +9 -0
- package/src/lint/post-synth/index.ts +63 -0
- package/src/plugin.ts +4 -12
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/import/generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAC5F,OAAO,KAAK,EAAE,UAAU,EAAc,MAAM,gCAAgC,CAAC;AAyF7E;;GAEG;AACH,qBAAa,YAAa,YAAW,mBAAmB;IACtD,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG,aAAa,EAAE;IA2CzC;;;OAGG;IACH,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,yBAAyB;IAmCjC,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,SAAS;IAyBjB,OAAO,CAAC,oBAAoB;IAuB5B,OAAO,CAAC,WAAW;CA4BpB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ExportedTemplate, ResourceSelector } from "@intentius/chant/lexicon";
|
|
2
|
+
/**
|
|
3
|
+
* Strip `status`, `managedFields`, and other server-written fields to reach the
|
|
4
|
+
* declared shape. Returns a new object; the input is not mutated.
|
|
5
|
+
*/
|
|
6
|
+
export declare function stripServerFields(obj: Record<string, unknown>): Record<string, unknown>;
|
|
7
|
+
/**
|
|
8
|
+
* Build full-fidelity export IR from a list of live Kubernetes objects (the
|
|
9
|
+
* `items` of a `kubectl get -o json` List). Reuses the import K8sParser by
|
|
10
|
+
* feeding it the cleaned objects as JSON documents — JSON is valid YAML, so no
|
|
11
|
+
* separate serializer is needed. Pure: all I/O stays in the caller.
|
|
12
|
+
*/
|
|
13
|
+
export declare function buildExportFromObjects(objects: unknown[], opts?: {
|
|
14
|
+
verbatim?: boolean;
|
|
15
|
+
selector?: ResourceSelector;
|
|
16
|
+
owned?: boolean;
|
|
17
|
+
}): ExportedTemplate;
|
|
18
|
+
//# sourceMappingURL=live-export.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live-export.d.ts","sourceRoot":"","sources":["../../src/import/live-export.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AA8BnF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAavF;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAAE,EAClB,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAC9E,gBAAgB,CA8BlB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kubernetes YAML parser for `chant import`.
|
|
3
|
+
*
|
|
4
|
+
* Parses Kubernetes manifests (single or multi-document YAML) into the core
|
|
5
|
+
* TemplateIR format, mapping K8s resources to the K8s::{Group}::{Kind} type
|
|
6
|
+
* convention.
|
|
7
|
+
*/
|
|
8
|
+
import type { TemplateParser, TemplateIR } from "@intentius/chant/import/parser";
|
|
9
|
+
/**
|
|
10
|
+
* Kubernetes YAML parser implementation.
|
|
11
|
+
*
|
|
12
|
+
* Supports multi-document YAML (split on `---`). Each document is expected
|
|
13
|
+
* to be a standard Kubernetes object with apiVersion, kind, and metadata.
|
|
14
|
+
*/
|
|
15
|
+
export declare class K8sParser implements TemplateParser {
|
|
16
|
+
parse(content: string): TemplateIR;
|
|
17
|
+
private parseDocument;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/import/parser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAc,MAAM,gCAAgC,CAAC;AAwH7F;;;;;GAKG;AACH,qBAAa,SAAU,YAAW,cAAc;IAC9C,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU;IAsClC,OAAO,CAAC,aAAa;CA8BtB"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export { k8sSerializer } from "./serializer.js";
|
|
2
|
+
export { k8sPlugin } from "./plugin.js";
|
|
3
|
+
export { defaultLabels, defaultAnnotations, isDefaultLabels, isDefaultAnnotations } from "./default-labels.js";
|
|
4
|
+
export { DEFAULT_LABELS_MARKER, DEFAULT_ANNOTATIONS_MARKER } from "./default-labels.js";
|
|
5
|
+
export { K8sLabels, K8sAnnotations } from "./variables.js";
|
|
6
|
+
export { microTime, isMicroTimeFormatted } from "./micro-time.js";
|
|
7
|
+
export * from "./generated/index.js";
|
|
8
|
+
export { WebApp, StatefulApp, CronWorkload, AutoscaledService, WorkerPool, NamespaceEnv, NodeAgent, BatchJob, SecureIngress, ConfiguredApp, SidecarApp, MonitoredService, NetworkIsolatedApp, IrsaServiceAccount, AlbIngress, EbsStorageClass, EfsStorageClass, FluentBitAgent, ExternalDnsAgent, AdotCollector, MetricsServer, WorkloadIdentityServiceAccount, GcePdStorageClass, FilestoreStorageClass, GkeGateway, ConfigConnectorContext, GceIngress, CockroachDbCluster, CockroachDbRegionStack, RayCluster, RayJob, RayService, ArgoAppFor, ArgoAppSetForRegions, registerArgoCluster, AgicIngress, AzureDiskStorageClass, AzureFileStorageClass, AzureMonitorCollector, AksWorkloadIdentityServiceAccount, GkeFluentBitAgent, GkeOtelCollector, GkeExternalDnsAgent, AksExternalDnsAgent, } from "./composites/index.js";
|
|
9
|
+
export type { WebAppProps, WebAppResult, StatefulAppProps, StatefulAppResult, CronWorkloadProps, CronWorkloadResult, AutoscaledServiceProps, AutoscaledServiceResult, WorkerPoolProps, WorkerPoolResult, NamespaceEnvProps, NamespaceEnvResult, NodeAgentProps, NodeAgentResult, BatchJobProps, BatchJobResult, SecureIngressProps, SecureIngressResult, ConfiguredAppProps, ConfiguredAppResult, SidecarAppProps, SidecarAppResult, MonitoredServiceProps, MonitoredServiceResult, NetworkIsolatedAppProps, NetworkIsolatedAppResult, IrsaServiceAccountProps, IrsaServiceAccountResult, AlbIngressProps, AlbIngressResult, EbsStorageClassProps, EbsStorageClassResult, EfsStorageClassProps, EfsStorageClassResult, FluentBitAgentProps, FluentBitAgentResult, ExternalDnsAgentProps, ExternalDnsAgentResult, AdotCollectorProps, AdotCollectorResult, MetricsServerProps, MetricsServerResult, WorkloadIdentityServiceAccountProps, WorkloadIdentityServiceAccountResult, GcePdStorageClassProps, GcePdStorageClassResult, FilestoreStorageClassProps, FilestoreStorageClassResult, GkeGatewayProps, GkeGatewayResult, ConfigConnectorContextProps, ConfigConnectorContextResult, GceIngressProps, GceIngressResult, CockroachDbClusterProps, CockroachDbClusterResult, CockroachDbRegionStackConfig, CockroachDbRegionCockroachConfig, CockroachDbRegionTlsConfig, RayClusterProps, RayClusterResult, RayClusterSpec, ResourceSpec, HeadGroupSpec, WorkerGroupSpec, RayJobProps, RayJobResult, RayServiceProps, RayServiceResult, ArgoDestination, ArgoSyncPolicy, ArgoAppForOptions, ArgoAppForResult, ArgoRegionTarget, ArgoAppSetForRegionsOptions, ArgoAppSetForRegionsResult, RegisterArgoClusterOptions, RegisterArgoClusterResult, AgicIngressProps, AgicIngressResult, AzureDiskStorageClassProps, AzureDiskStorageClassResult, AzureFileStorageClassProps, AzureFileStorageClassResult, AzureMonitorCollectorProps, AzureMonitorCollectorResult, AksWorkloadIdentityServiceAccountProps, AksWorkloadIdentityServiceAccountResult, GkeFluentBitAgentProps, GkeFluentBitAgentResult, GkeOtelCollectorProps, GkeOtelCollectorResult, GkeExternalDnsAgentProps, GkeExternalDnsAgentResult, AksExternalDnsAgentProps, AksExternalDnsAgentResult, } from "./composites/index.js";
|
|
10
|
+
export * from "./actions/index.js";
|
|
11
|
+
export { fetchK8sSchema, fetchSchemas, K8S_SCHEMA_VERSION } from "./spec/fetch.js";
|
|
12
|
+
export { parseK8sSwagger, k8sShortName, k8sServiceName, gvkToTypeName, gvkToApiVersion } from "./spec/parse.js";
|
|
13
|
+
export type { K8sParseResult, ParsedResource, ParsedProperty, ParsedPropertyType, ParsedEnum, GroupVersionKind } from "./spec/parse.js";
|
|
14
|
+
export { generate, writeGeneratedFiles } from "./codegen/generate.js";
|
|
15
|
+
export { packageLexicon } from "./codegen/package.js";
|
|
16
|
+
export type { PackageOptions, PackageResult } from "./codegen/package.js";
|
|
17
|
+
export type { CRDSource, CRDSpec } from "./crd/types.js";
|
|
18
|
+
export { parseCRD, parseCRDSpec } from "./crd/parser.js";
|
|
19
|
+
export { loadCRDs, loadMultipleCRDs } from "./crd/loader.js";
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/integrity.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"algorithm": "sha256",
|
|
3
3
|
"artifacts": {
|
|
4
|
-
"manifest.json": "
|
|
4
|
+
"manifest.json": "3a6b6184d487d2b3195a57327f37804cba447b1ca142a6e58dfbc27e6c24e0d1",
|
|
5
5
|
"meta.json": "4177925d0043a2879c34e1e871e9ca8f33093999d08fa5fc411ee11086381529",
|
|
6
6
|
"types/index.d.ts": "bf626b2c92e3375a7d93b2c96a8a95a992507a679707b47a35cf6501f32a70bf",
|
|
7
7
|
"rules/argo-appset-single-project.ts": "afa9f310753aa2d475f35012b13135b2dfaebed2a35d44edbe185ebc07673674",
|
|
@@ -50,5 +50,5 @@
|
|
|
50
50
|
"skills/chant-k8s-aks.md": "e18f0e2b055f72cd7a37deaf258d7027c2d4d3e286e8fd4975b27a1f981a3ad9",
|
|
51
51
|
"skills/chant-k8s-argo.md": "b1a0b826559d8c5033a479c5781efaf650320f0aee4419d8841170bd3393cea5"
|
|
52
52
|
},
|
|
53
|
-
"composite": "
|
|
53
|
+
"composite": "52e0f965373405403ef12c82f4da058a8a8e93073a2b6a006af22fc0b3b41076"
|
|
54
54
|
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared helpers for the Argo post-synth checks (ARGO002, ARGO003, ARGO005).
|
|
3
|
+
*
|
|
4
|
+
* Excluded from check auto-discovery by the "helper" filename filter.
|
|
5
|
+
*/
|
|
6
|
+
import type { PostSynthContext } from "@intentius/chant/lint/post-synth";
|
|
7
|
+
import { type K8sManifest } from "./k8s-helpers.js";
|
|
8
|
+
/** The always-present, in-cluster Argo destination. */
|
|
9
|
+
export declare const IN_CLUSTER_SERVER = "https://kubernetes.default.svc";
|
|
10
|
+
export declare const IN_CLUSTER_NAME = "in-cluster";
|
|
11
|
+
/** Label that marks a Secret as an Argo CD external cluster registration. */
|
|
12
|
+
export declare const CLUSTER_SECRET_TYPE_LABEL = "argocd.argoproj.io/secret-type";
|
|
13
|
+
/** All manifests across every lexicon output. */
|
|
14
|
+
export declare function allManifests(ctx: PostSynthContext): K8sManifest[];
|
|
15
|
+
/** Manifests of a given Argo kind. */
|
|
16
|
+
export declare function manifestsOfKind(manifests: K8sManifest[], kind: string): K8sManifest[];
|
|
17
|
+
/**
|
|
18
|
+
* Read a string field from a Secret's stringData or data block.
|
|
19
|
+
* (Argo cluster Secrets conventionally use stringData.)
|
|
20
|
+
*/
|
|
21
|
+
export declare function secretField(manifest: K8sManifest, key: string): string | undefined;
|
|
22
|
+
/** True if the Secret is labelled as an Argo cluster registration. */
|
|
23
|
+
export declare function isClusterSecret(manifest: K8sManifest): boolean;
|
|
24
|
+
//# sourceMappingURL=argo-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"argo-helpers.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/argo-helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAuC,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAEtF,uDAAuD;AACvD,eAAO,MAAM,iBAAiB,mCAAmC,CAAC;AAClE,eAAO,MAAM,eAAe,eAAe,CAAC;AAE5C,6EAA6E;AAC7E,eAAO,MAAM,yBAAyB,mCAAmC,CAAC;AAE1E,iDAAiD;AACjD,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,GAAG,WAAW,EAAE,CAMjE;AAED,sCAAsC;AACtC,wBAAgB,eAAe,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAErF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQlF;AAED,sEAAsE;AACtE,wBAAgB,eAAe,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAI9D"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ARGO002: Application.spec.project must reference a declared AppProject
|
|
3
|
+
*
|
|
4
|
+
* An Argo `Application` names an `AppProject` in `spec.project`; the project is
|
|
5
|
+
* the RBAC and source/destination guardrail. If the named project isn't
|
|
6
|
+
* declared in the build, Argo will reject the Application at sync time. The
|
|
7
|
+
* built-in `default` project always exists on an Argo install, so a reference
|
|
8
|
+
* to `default` is never flagged.
|
|
9
|
+
*/
|
|
10
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
11
|
+
export declare const argo002: PostSynthCheck;
|
|
12
|
+
//# sourceMappingURL=argo002.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"argo002.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/argo002.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAG9G,eAAO,MAAM,OAAO,EAAE,cAkCrB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ARGO003: Application.spec.destination must reference a registered cluster
|
|
3
|
+
*
|
|
4
|
+
* An Argo `Application` targets a cluster via `spec.destination.server` (an API
|
|
5
|
+
* server URL) or `spec.destination.name` (a registered cluster name). External
|
|
6
|
+
* clusters are registered with a Secret labelled
|
|
7
|
+
* `argocd.argoproj.io/secret-type: cluster`. The in-cluster target
|
|
8
|
+
* (`https://kubernetes.default.svc` / name `in-cluster`) is always available.
|
|
9
|
+
* A destination that names neither a registered cluster nor the in-cluster
|
|
10
|
+
* target won't resolve at sync time.
|
|
11
|
+
*/
|
|
12
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
13
|
+
export declare const argo003: PostSynthCheck;
|
|
14
|
+
//# sourceMappingURL=argo003.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"argo003.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/argo003.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAU9G,eAAO,MAAM,OAAO,EAAE,cA0DrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"argo005.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/argo005.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAY9G,eAAO,MAAM,OAAO,EAAE,cA+BrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AA+BvE,eAAO,MAAM,eAAe,EAAE,cAAc,EA8B3C,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared helpers for Kubernetes post-synthesis lint rules.
|
|
3
|
+
*
|
|
4
|
+
* Provides YAML parsing for multi-document K8s manifests and container
|
|
5
|
+
* extraction logic that handles all common workload types.
|
|
6
|
+
*/
|
|
7
|
+
export { getPrimaryOutput } from "@intentius/chant/lint/post-synth";
|
|
8
|
+
/**
|
|
9
|
+
* A parsed Kubernetes manifest (loosely typed).
|
|
10
|
+
*/
|
|
11
|
+
export interface K8sManifest {
|
|
12
|
+
apiVersion?: string;
|
|
13
|
+
kind?: string;
|
|
14
|
+
metadata?: {
|
|
15
|
+
name?: string;
|
|
16
|
+
namespace?: string;
|
|
17
|
+
labels?: Record<string, string>;
|
|
18
|
+
[key: string]: unknown;
|
|
19
|
+
};
|
|
20
|
+
spec?: Record<string, unknown>;
|
|
21
|
+
data?: Record<string, unknown>;
|
|
22
|
+
[key: string]: unknown;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* A Kubernetes container spec (loosely typed).
|
|
26
|
+
*/
|
|
27
|
+
export interface K8sContainer {
|
|
28
|
+
name?: string;
|
|
29
|
+
image?: string;
|
|
30
|
+
env?: Array<{
|
|
31
|
+
name?: string;
|
|
32
|
+
value?: unknown;
|
|
33
|
+
valueFrom?: unknown;
|
|
34
|
+
}>;
|
|
35
|
+
ports?: Array<{
|
|
36
|
+
name?: string;
|
|
37
|
+
containerPort?: number;
|
|
38
|
+
[key: string]: unknown;
|
|
39
|
+
}>;
|
|
40
|
+
resources?: {
|
|
41
|
+
limits?: Record<string, unknown>;
|
|
42
|
+
requests?: Record<string, unknown>;
|
|
43
|
+
};
|
|
44
|
+
securityContext?: Record<string, unknown>;
|
|
45
|
+
livenessProbe?: unknown;
|
|
46
|
+
readinessProbe?: unknown;
|
|
47
|
+
imagePullPolicy?: string;
|
|
48
|
+
[key: string]: unknown;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Split a multi-document YAML string on `---` boundaries and parse each
|
|
52
|
+
* document into a K8sManifest.
|
|
53
|
+
*/
|
|
54
|
+
export declare function parseK8sManifests(yaml: string): K8sManifest[];
|
|
55
|
+
/**
|
|
56
|
+
* Extract the pod spec from any workload manifest.
|
|
57
|
+
*
|
|
58
|
+
* Handles:
|
|
59
|
+
* - Pod: spec directly
|
|
60
|
+
* - Deployment, StatefulSet, DaemonSet: spec.template.spec
|
|
61
|
+
* - Job: spec.template.spec
|
|
62
|
+
* - CronJob: spec.jobTemplate.spec.template.spec
|
|
63
|
+
*/
|
|
64
|
+
export declare function extractPodSpec(manifest: K8sManifest): Record<string, unknown> | null;
|
|
65
|
+
/**
|
|
66
|
+
* Extract all containers (including init containers) from a workload manifest.
|
|
67
|
+
*/
|
|
68
|
+
export declare function extractContainers(manifest: K8sManifest): K8sContainer[];
|
|
69
|
+
/**
|
|
70
|
+
* Workload kinds that contain pod templates.
|
|
71
|
+
*/
|
|
72
|
+
export declare const WORKLOAD_KINDS: Set<string>;
|
|
73
|
+
/**
|
|
74
|
+
* Parse a Kubernetes memory string to bytes.
|
|
75
|
+
*
|
|
76
|
+
* Handles binary suffixes (Ki, Mi, Gi, Ti) and SI suffixes (K, M, G, T).
|
|
77
|
+
* Returns NaN for unrecognised strings — callers should skip checks on NaN.
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* parseMemoryBytes("4Gi") // 4294967296
|
|
81
|
+
* parseMemoryBytes("512Mi") // 536870912
|
|
82
|
+
* parseMemoryBytes("2048") // 2048
|
|
83
|
+
*/
|
|
84
|
+
export declare function parseMemoryBytes(s: string): number;
|
|
85
|
+
/**
|
|
86
|
+
* Extract the Ray version from an image tag.
|
|
87
|
+
*
|
|
88
|
+
* Looks for a semver-style version prefix in the image tag:
|
|
89
|
+
* "rayproject/ray:2.40.0" → "2.40.0"
|
|
90
|
+
* "rayproject/ray:2.40.0-py310" → "2.40.0"
|
|
91
|
+
* "us-docker.pkg.dev/.../ray:2.9.3-gpu" → "2.9.3"
|
|
92
|
+
* "rayproject/ray:latest" → undefined
|
|
93
|
+
*
|
|
94
|
+
* Returns undefined when no version can be found.
|
|
95
|
+
*/
|
|
96
|
+
export declare function extractRayVersion(image: string): string | undefined;
|
|
97
|
+
//# sourceMappingURL=k8s-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"k8s-helpers.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/k8s-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACrE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,CAAC;IACjF,SAAS,CAAC,EAAE;QACV,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAkB7D;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,WAAW,GACpB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CA2BhC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,WAAW,GAAG,YAAY,EAAE,CAuBvE;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,aAOzB,CAAC;AAEH;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CASlD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAInE"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WK8005: Hardcoded Secrets in Environment Variables
|
|
3
|
+
*
|
|
4
|
+
* Detects container environment variables with names suggesting sensitive
|
|
5
|
+
* values (password, token, key, secret) that use hardcoded string values
|
|
6
|
+
* instead of secretKeyRef or configMapKeyRef.
|
|
7
|
+
*/
|
|
8
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
9
|
+
export declare const wk8005: PostSynthCheck;
|
|
10
|
+
//# sourceMappingURL=wk8005.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wk8005.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/wk8005.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAK9G,eAAO,MAAM,MAAM,EAAE,cA6CpB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WK8006: No :latest or Untagged Images
|
|
3
|
+
*
|
|
4
|
+
* Container images should use explicit version tags for reproducibility.
|
|
5
|
+
* Flags images using the `:latest` tag or no tag at all.
|
|
6
|
+
*/
|
|
7
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
8
|
+
export declare const wk8006: PostSynthCheck;
|
|
9
|
+
//# sourceMappingURL=wk8006.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wk8006.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/wk8006.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAG9G,eAAO,MAAM,MAAM,EAAE,cAyDpB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WK8041: Hardcoded API Keys
|
|
3
|
+
*
|
|
4
|
+
* Detects well-known API key patterns in container environment variable values.
|
|
5
|
+
* Catches Stripe keys, GitHub PATs, AWS access keys, Google API keys, and
|
|
6
|
+
* other common credential formats.
|
|
7
|
+
*/
|
|
8
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
9
|
+
export declare const wk8041: PostSynthCheck;
|
|
10
|
+
//# sourceMappingURL=wk8041.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wk8041.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/wk8041.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAsB9G,eAAO,MAAM,MAAM,EAAE,cA0CpB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WK8042: Private Keys in ConfigMap
|
|
3
|
+
*
|
|
4
|
+
* Detects PEM-encoded private keys stored in ConfigMap data values.
|
|
5
|
+
* Private keys should be stored in Secrets, not ConfigMaps, since
|
|
6
|
+
* ConfigMaps are not encrypted at rest by default.
|
|
7
|
+
*/
|
|
8
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
9
|
+
export declare const wk8042: PostSynthCheck;
|
|
10
|
+
//# sourceMappingURL=wk8042.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wk8042.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/wk8042.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAK9G,eAAO,MAAM,MAAM,EAAE,cAkCpB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WK8101: Deployment Selector Must Match Template Labels
|
|
3
|
+
*
|
|
4
|
+
* A Deployment's spec.selector.matchLabels must be a subset of
|
|
5
|
+
* spec.template.metadata.labels. If they don't match, the Deployment
|
|
6
|
+
* controller cannot find the Pods it creates, causing a runtime failure.
|
|
7
|
+
*/
|
|
8
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
9
|
+
export declare const wk8101: PostSynthCheck;
|
|
10
|
+
//# sourceMappingURL=wk8101.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wk8101.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/wk8101.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAG9G,eAAO,MAAM,MAAM,EAAE,cAqDpB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WK8102: Resources Should Have Metadata Labels
|
|
3
|
+
*
|
|
4
|
+
* All Kubernetes resources should have metadata.labels for organizational
|
|
5
|
+
* purposes. Labels enable filtering, selection, and operational tooling.
|
|
6
|
+
*/
|
|
7
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
8
|
+
export declare const wk8102: PostSynthCheck;
|
|
9
|
+
//# sourceMappingURL=wk8102.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wk8102.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/wk8102.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAG9G,eAAO,MAAM,MAAM,EAAE,cA+BpB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WK8103: Containers Must Have Name
|
|
3
|
+
*
|
|
4
|
+
* Every container in a pod spec must have a `name` field. This is required
|
|
5
|
+
* by the Kubernetes API and will be rejected at apply time if missing.
|
|
6
|
+
*/
|
|
7
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
8
|
+
export declare const wk8103: PostSynthCheck;
|
|
9
|
+
//# sourceMappingURL=wk8103.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wk8103.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/wk8103.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAG9G,eAAO,MAAM,MAAM,EAAE,cAkCpB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WK8104: Ports Should Be Named
|
|
3
|
+
*
|
|
4
|
+
* Container ports and Service ports should have names. Named ports enable
|
|
5
|
+
* referencing by name in Service targetPort and NetworkPolicy rules,
|
|
6
|
+
* improving maintainability.
|
|
7
|
+
*/
|
|
8
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
9
|
+
export declare const wk8104: PostSynthCheck;
|
|
10
|
+
//# sourceMappingURL=wk8104.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wk8104.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/wk8104.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAG9G,eAAO,MAAM,MAAM,EAAE,cAyDpB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WK8105: ImagePullPolicy Should Be Explicit
|
|
3
|
+
*
|
|
4
|
+
* Containers should have an explicit imagePullPolicy. When omitted,
|
|
5
|
+
* Kubernetes defaults to "Always" for :latest and "IfNotPresent" for
|
|
6
|
+
* other tags, which can lead to unexpected behavior.
|
|
7
|
+
*/
|
|
8
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
9
|
+
export declare const wk8105: PostSynthCheck;
|
|
10
|
+
//# sourceMappingURL=wk8105.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wk8105.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/wk8105.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAG9G,eAAO,MAAM,MAAM,EAAE,cAiCpB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WK8201: Resource Limits Required
|
|
3
|
+
*
|
|
4
|
+
* Containers should have CPU and memory limits defined in resources.limits.
|
|
5
|
+
* Without limits, a container can consume unbounded resources, potentially
|
|
6
|
+
* affecting other workloads on the node.
|
|
7
|
+
*/
|
|
8
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
9
|
+
export declare const wk8201: PostSynthCheck;
|
|
10
|
+
//# sourceMappingURL=wk8201.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wk8201.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/wk8201.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAG9G,eAAO,MAAM,MAAM,EAAE,cA2CpB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WK8202: No Privileged Containers
|
|
3
|
+
*
|
|
4
|
+
* Containers should not run in privileged mode. Privileged containers
|
|
5
|
+
* have full access to the host's devices and kernel capabilities,
|
|
6
|
+
* which is a significant security risk.
|
|
7
|
+
*/
|
|
8
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
9
|
+
export declare const wk8202: PostSynthCheck;
|
|
10
|
+
//# sourceMappingURL=wk8202.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wk8202.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/wk8202.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAG9G,eAAO,MAAM,MAAM,EAAE,cAkCpB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WK8203: ReadOnlyRootFilesystem Recommended
|
|
3
|
+
*
|
|
4
|
+
* Containers should set securityContext.readOnlyRootFilesystem to true.
|
|
5
|
+
* A read-only root filesystem prevents runtime modification of the container
|
|
6
|
+
* image, reducing the attack surface.
|
|
7
|
+
*/
|
|
8
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
9
|
+
export declare const wk8203: PostSynthCheck;
|
|
10
|
+
//# sourceMappingURL=wk8203.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wk8203.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/wk8203.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAG9G,eAAO,MAAM,MAAM,EAAE,cAkCpB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WK8204: RunAsNonRoot Recommended
|
|
3
|
+
*
|
|
4
|
+
* Containers should set securityContext.runAsNonRoot to true at either
|
|
5
|
+
* the container level or pod level. Running as root inside a container
|
|
6
|
+
* increases the blast radius of a container breakout.
|
|
7
|
+
*
|
|
8
|
+
* Additionally warns when runAsNonRoot: true is set but no explicit
|
|
9
|
+
* runAsUser is provided — without a numeric UID, K8s relies on the
|
|
10
|
+
* image's USER directive, which may be root (UID 0).
|
|
11
|
+
*/
|
|
12
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
13
|
+
export declare const wk8204: PostSynthCheck;
|
|
14
|
+
//# sourceMappingURL=wk8204.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wk8204.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/wk8204.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAG9G,eAAO,MAAM,MAAM,EAAE,cAsEpB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WK8205: Drop ALL Capabilities
|
|
3
|
+
*
|
|
4
|
+
* Containers should drop all Linux capabilities and only add back those
|
|
5
|
+
* explicitly needed. This follows the principle of least privilege and
|
|
6
|
+
* reduces the attack surface.
|
|
7
|
+
*/
|
|
8
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
9
|
+
export declare const wk8205: PostSynthCheck;
|
|
10
|
+
//# sourceMappingURL=wk8205.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wk8205.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/wk8205.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAG9G,eAAO,MAAM,MAAM,EAAE,cA4CpB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WK8207: No hostNetwork
|
|
3
|
+
*
|
|
4
|
+
* Pods should not use hostNetwork: true. Using the host network namespace
|
|
5
|
+
* bypasses network isolation and allows the pod to access all network
|
|
6
|
+
* interfaces on the host.
|
|
7
|
+
*/
|
|
8
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
9
|
+
export declare const wk8207: PostSynthCheck;
|
|
10
|
+
//# sourceMappingURL=wk8207.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wk8207.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/wk8207.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAG9G,eAAO,MAAM,MAAM,EAAE,cAiCpB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WK8208: No hostPID
|
|
3
|
+
*
|
|
4
|
+
* Pods should not use hostPID: true. Sharing the host PID namespace
|
|
5
|
+
* allows the pod to see and interact with all processes on the host,
|
|
6
|
+
* which is a significant security risk.
|
|
7
|
+
*/
|
|
8
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
9
|
+
export declare const wk8208: PostSynthCheck;
|
|
10
|
+
//# sourceMappingURL=wk8208.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wk8208.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/wk8208.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAG9G,eAAO,MAAM,MAAM,EAAE,cAiCpB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WK8209: No hostIPC
|
|
3
|
+
*
|
|
4
|
+
* Pods should not use hostIPC: true. Sharing the host IPC namespace
|
|
5
|
+
* allows the pod to access shared memory segments on the host, which
|
|
6
|
+
* can be used to escalate privileges or exfiltrate data.
|
|
7
|
+
*/
|
|
8
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
9
|
+
export declare const wk8209: PostSynthCheck;
|
|
10
|
+
//# sourceMappingURL=wk8209.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wk8209.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/wk8209.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAG9G,eAAO,MAAM,MAAM,EAAE,cAiCpB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WK8301: Probes Required
|
|
3
|
+
*
|
|
4
|
+
* Containers that expose a port should have both livenessProbe and
|
|
5
|
+
* readinessProbe configured. Without probes, Kubernetes cannot detect
|
|
6
|
+
* unhealthy containers or know when a container is ready to receive traffic.
|
|
7
|
+
*
|
|
8
|
+
* Containers that declare no port (queue/Temporal workers, batch consumers)
|
|
9
|
+
* are exempt: they take no inbound traffic, so there is no endpoint to
|
|
10
|
+
* HTTP-probe and no readiness signal for a Service to gate on. Flagging them
|
|
11
|
+
* would force a placeholder exec probe on a correct, port-less pattern.
|
|
12
|
+
*/
|
|
13
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
14
|
+
export declare const wk8301: PostSynthCheck;
|
|
15
|
+
//# sourceMappingURL=wk8301.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wk8301.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/wk8301.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAG9G,eAAO,MAAM,MAAM,EAAE,cA0CpB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WK8302: Replicas >= 2 for High Availability
|
|
3
|
+
*
|
|
4
|
+
* Deployments should have at least 2 replicas for high availability.
|
|
5
|
+
* A single replica means any pod disruption causes downtime.
|
|
6
|
+
*/
|
|
7
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
8
|
+
export declare const wk8302: PostSynthCheck;
|
|
9
|
+
//# sourceMappingURL=wk8302.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wk8302.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/wk8302.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAG9G,eAAO,MAAM,MAAM,EAAE,cAmCpB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WK8303: PodDisruptionBudget Recommended for HA Deployments
|
|
3
|
+
*
|
|
4
|
+
* Deployments with 2 or more replicas should have a corresponding
|
|
5
|
+
* PodDisruptionBudget (PDB) to ensure minimum availability during
|
|
6
|
+
* voluntary disruptions like node drains and cluster upgrades.
|
|
7
|
+
*/
|
|
8
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
9
|
+
export declare const wk8303: PostSynthCheck;
|
|
10
|
+
//# sourceMappingURL=wk8303.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wk8303.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/wk8303.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAI9G,eAAO,MAAM,MAAM,EAAE,cA4CpB,CAAC"}
|