typekro 0.44.0 → 0.45.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/core/kubernetes/bun-api-client.d.ts +0 -10
- package/dist/core/kubernetes/bun-api-client.d.ts.map +1 -1
- package/dist/core/kubernetes/bun-api-client.js +77 -3
- package/dist/core/kubernetes/bun-api-client.js.map +1 -1
- package/dist/core/kubernetes/bun-http-library.d.ts.map +1 -1
- package/dist/core/kubernetes/bun-http-library.js +5 -1
- package/dist/core/kubernetes/bun-http-library.js.map +1 -1
- package/dist/core/references/schema-proxy.d.ts +17 -0
- package/dist/core/references/schema-proxy.d.ts.map +1 -1
- package/dist/core/references/schema-proxy.js +53 -3
- package/dist/core/references/schema-proxy.js.map +1 -1
- package/dist/core/serialization/schema.d.ts.map +1 -1
- package/dist/core/serialization/schema.js +52 -20
- package/dist/core/serialization/schema.js.map +1 -1
- package/dist/core/types/serialization.d.ts +5 -2
- package/dist/core/types/serialization.d.ts.map +1 -1
- package/dist/factories/apisix/resources/helm.d.ts +2 -2
- package/dist/factories/apisix/resources/helm.d.ts.map +1 -1
- package/dist/factories/apisix/resources/helm.js +7 -11
- package/dist/factories/apisix/resources/helm.js.map +1 -1
- package/dist/factories/aws-load-balancer-controller/compositions/bootstrap.d.ts +38 -0
- package/dist/factories/aws-load-balancer-controller/compositions/bootstrap.d.ts.map +1 -0
- package/dist/factories/aws-load-balancer-controller/compositions/bootstrap.js +101 -0
- package/dist/factories/aws-load-balancer-controller/compositions/bootstrap.js.map +1 -0
- package/dist/factories/aws-load-balancer-controller/compositions/helm-repository.d.ts +10 -0
- package/dist/factories/aws-load-balancer-controller/compositions/helm-repository.d.ts.map +1 -0
- package/dist/factories/aws-load-balancer-controller/compositions/helm-repository.js +25 -0
- package/dist/factories/aws-load-balancer-controller/compositions/helm-repository.js.map +1 -0
- package/dist/factories/aws-load-balancer-controller/compositions/index.d.ts +3 -0
- package/dist/factories/aws-load-balancer-controller/compositions/index.d.ts.map +1 -0
- package/dist/factories/aws-load-balancer-controller/compositions/index.js +3 -0
- package/dist/factories/aws-load-balancer-controller/compositions/index.js.map +1 -0
- package/dist/factories/aws-load-balancer-controller/constants.d.ts +21 -0
- package/dist/factories/aws-load-balancer-controller/constants.d.ts.map +1 -0
- package/dist/factories/aws-load-balancer-controller/constants.js +29 -0
- package/dist/factories/aws-load-balancer-controller/constants.js.map +1 -0
- package/dist/factories/aws-load-balancer-controller/index.d.ts +17 -0
- package/dist/factories/aws-load-balancer-controller/index.d.ts.map +1 -0
- package/dist/factories/aws-load-balancer-controller/index.js +16 -0
- package/dist/factories/aws-load-balancer-controller/index.js.map +1 -0
- package/dist/factories/aws-load-balancer-controller/resources/elbv2.d.ts +45 -0
- package/dist/factories/aws-load-balancer-controller/resources/elbv2.d.ts.map +1 -0
- package/dist/factories/aws-load-balancer-controller/resources/elbv2.js +148 -0
- package/dist/factories/aws-load-balancer-controller/resources/elbv2.js.map +1 -0
- package/dist/factories/aws-load-balancer-controller/resources/helm.d.ts +36 -0
- package/dist/factories/aws-load-balancer-controller/resources/helm.d.ts.map +1 -0
- package/dist/factories/aws-load-balancer-controller/resources/helm.js +96 -0
- package/dist/factories/aws-load-balancer-controller/resources/helm.js.map +1 -0
- package/dist/factories/aws-load-balancer-controller/resources/index.d.ts +3 -0
- package/dist/factories/aws-load-balancer-controller/resources/index.d.ts.map +1 -0
- package/dist/factories/aws-load-balancer-controller/resources/index.js +3 -0
- package/dist/factories/aws-load-balancer-controller/resources/index.js.map +1 -0
- package/dist/factories/aws-load-balancer-controller/types.d.ts +267 -0
- package/dist/factories/aws-load-balancer-controller/types.d.ts.map +1 -0
- package/dist/factories/aws-load-balancer-controller/types.js +81 -0
- package/dist/factories/aws-load-balancer-controller/types.js.map +1 -0
- package/dist/factories/aws-load-balancer-controller/utils/helm-values-mapper.d.ts +27 -0
- package/dist/factories/aws-load-balancer-controller/utils/helm-values-mapper.d.ts.map +1 -0
- package/dist/factories/aws-load-balancer-controller/utils/helm-values-mapper.js +171 -0
- package/dist/factories/aws-load-balancer-controller/utils/helm-values-mapper.js.map +1 -0
- package/dist/factories/aws-load-balancer-controller/utils/index.d.ts +2 -0
- package/dist/factories/aws-load-balancer-controller/utils/index.d.ts.map +1 -0
- package/dist/factories/aws-load-balancer-controller/utils/index.js +2 -0
- package/dist/factories/aws-load-balancer-controller/utils/index.js.map +1 -0
- package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.d.ts +6 -4
- package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.d.ts.map +1 -1
- package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.js +22 -196
- package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.js.map +1 -1
- package/dist/factories/cert-manager/resources/helm.d.ts.map +1 -1
- package/dist/factories/cert-manager/resources/helm.js +30 -51
- package/dist/factories/cert-manager/resources/helm.js.map +1 -1
- package/dist/factories/cert-manager/types.d.ts +54 -6
- package/dist/factories/cert-manager/types.d.ts.map +1 -1
- package/dist/factories/cert-manager/types.js +45 -12
- package/dist/factories/cert-manager/types.js.map +1 -1
- package/dist/factories/cert-manager/utils/helm-values-mapper.js +203 -76
- package/dist/factories/cert-manager/utils/helm-values-mapper.js.map +1 -1
- package/dist/factories/cilium/resources/helm.d.ts.map +1 -1
- package/dist/factories/cilium/resources/helm.js +23 -0
- package/dist/factories/cilium/resources/helm.js.map +1 -1
- package/dist/factories/cilium/types.d.ts +2 -1
- package/dist/factories/cilium/types.d.ts.map +1 -1
- package/dist/factories/cilium/types.js.map +1 -1
- package/dist/factories/clickhouse/resources/helm.d.ts.map +1 -1
- package/dist/factories/clickhouse/resources/helm.js +2 -1
- package/dist/factories/clickhouse/resources/helm.js.map +1 -1
- package/dist/factories/clickhouse/types.d.ts +2 -1
- package/dist/factories/clickhouse/types.d.ts.map +1 -1
- package/dist/factories/clickhouse/types.js.map +1 -1
- package/dist/factories/clickstack/resources/helm.d.ts.map +1 -1
- package/dist/factories/clickstack/resources/helm.js +3 -2
- package/dist/factories/clickstack/resources/helm.js.map +1 -1
- package/dist/factories/clickstack/types.d.ts +3 -3
- package/dist/factories/clickstack/types.d.ts.map +1 -1
- package/dist/factories/clickstack/types.js.map +1 -1
- package/dist/factories/cnpg/resources/helm.d.ts.map +1 -1
- package/dist/factories/cnpg/resources/helm.js +2 -1
- package/dist/factories/cnpg/resources/helm.js.map +1 -1
- package/dist/factories/cnpg/types.d.ts +2 -1
- package/dist/factories/cnpg/types.d.ts.map +1 -1
- package/dist/factories/cnpg/types.js.map +1 -1
- package/dist/factories/crowdsec/compositions/crowdsec-bootstrap.d.ts +33 -0
- package/dist/factories/crowdsec/compositions/crowdsec-bootstrap.d.ts.map +1 -0
- package/dist/factories/crowdsec/compositions/crowdsec-bootstrap.js +174 -0
- package/dist/factories/crowdsec/compositions/crowdsec-bootstrap.js.map +1 -0
- package/dist/factories/crowdsec/compositions/crowdsec-helm-repository.d.ts +10 -0
- package/dist/factories/crowdsec/compositions/crowdsec-helm-repository.d.ts.map +1 -0
- package/dist/factories/crowdsec/compositions/crowdsec-helm-repository.js +25 -0
- package/dist/factories/crowdsec/compositions/crowdsec-helm-repository.js.map +1 -0
- package/dist/factories/crowdsec/compositions/index.d.ts +3 -0
- package/dist/factories/crowdsec/compositions/index.d.ts.map +1 -0
- package/dist/factories/crowdsec/compositions/index.js +3 -0
- package/dist/factories/crowdsec/compositions/index.js.map +1 -0
- package/dist/factories/crowdsec/constants.d.ts +38 -0
- package/dist/factories/crowdsec/constants.d.ts.map +1 -0
- package/dist/factories/crowdsec/constants.js +42 -0
- package/dist/factories/crowdsec/constants.js.map +1 -0
- package/dist/factories/crowdsec/index.d.ts +12 -0
- package/dist/factories/crowdsec/index.d.ts.map +1 -0
- package/dist/factories/crowdsec/index.js +12 -0
- package/dist/factories/crowdsec/index.js.map +1 -0
- package/dist/factories/crowdsec/resources/helm.d.ts +52 -0
- package/dist/factories/crowdsec/resources/helm.d.ts.map +1 -0
- package/dist/factories/crowdsec/resources/helm.js +78 -0
- package/dist/factories/crowdsec/resources/helm.js.map +1 -0
- package/dist/factories/crowdsec/resources/index.d.ts +2 -0
- package/dist/factories/crowdsec/resources/index.d.ts.map +1 -0
- package/dist/factories/crowdsec/resources/index.js +2 -0
- package/dist/factories/crowdsec/resources/index.js.map +1 -0
- package/dist/factories/crowdsec/types.d.ts +266 -0
- package/dist/factories/crowdsec/types.d.ts.map +1 -0
- package/dist/factories/crowdsec/types.js +43 -0
- package/dist/factories/crowdsec/types.js.map +1 -0
- package/dist/factories/crowdsec/utils/helm-values-mapper.d.ts +40 -0
- package/dist/factories/crowdsec/utils/helm-values-mapper.d.ts.map +1 -0
- package/dist/factories/crowdsec/utils/helm-values-mapper.js +473 -0
- package/dist/factories/crowdsec/utils/helm-values-mapper.js.map +1 -0
- package/dist/factories/crowdsec/utils/index.d.ts +3 -0
- package/dist/factories/crowdsec/utils/index.d.ts.map +1 -0
- package/dist/factories/crowdsec/utils/index.js +3 -0
- package/dist/factories/crowdsec/utils/index.js.map +1 -0
- package/dist/factories/crowdsec/utils/net.js +68 -0
- package/dist/factories/crowdsec/utils/net.js.map +1 -0
- package/dist/factories/crowdsec/utils/traefik-bouncer.d.ts +48 -0
- package/dist/factories/crowdsec/utils/traefik-bouncer.d.ts.map +1 -0
- package/dist/factories/crowdsec/utils/traefik-bouncer.js +302 -0
- package/dist/factories/crowdsec/utils/traefik-bouncer.js.map +1 -0
- package/dist/factories/dagster/resources/helm.d.ts.map +1 -1
- package/dist/factories/dagster/resources/helm.js +2 -0
- package/dist/factories/dagster/resources/helm.js.map +1 -1
- package/dist/factories/dagster/types.d.ts +2 -2
- package/dist/factories/dagster/types.d.ts.map +1 -1
- package/dist/factories/dagster/types.js.map +1 -1
- package/dist/factories/envoy-ai-gateway/resources/helm.d.ts.map +1 -1
- package/dist/factories/envoy-ai-gateway/resources/helm.js +17 -14
- package/dist/factories/envoy-ai-gateway/resources/helm.js.map +1 -1
- package/dist/factories/envoy-ai-gateway/types.d.ts +2 -2
- package/dist/factories/envoy-ai-gateway/types.d.ts.map +1 -1
- package/dist/factories/external-dns/resources/helm.d.ts.map +1 -1
- package/dist/factories/external-dns/resources/helm.js +2 -0
- package/dist/factories/external-dns/resources/helm.js.map +1 -1
- package/dist/factories/external-dns/types.d.ts +2 -1
- package/dist/factories/external-dns/types.d.ts.map +1 -1
- package/dist/factories/external-dns/types.js.map +1 -1
- package/dist/factories/harbor/resources/helm.d.ts.map +1 -1
- package/dist/factories/harbor/resources/helm.js +11 -7
- package/dist/factories/harbor/resources/helm.js.map +1 -1
- package/dist/factories/harbor/types.d.ts +2 -1
- package/dist/factories/harbor/types.d.ts.map +1 -1
- package/dist/factories/harbor/types.js.map +1 -1
- package/dist/factories/hatchet/resources/helm.d.ts.map +1 -1
- package/dist/factories/hatchet/resources/helm.js +13 -10
- package/dist/factories/hatchet/resources/helm.js.map +1 -1
- package/dist/factories/hatchet/types.d.ts +2 -1
- package/dist/factories/hatchet/types.d.ts.map +1 -1
- package/dist/factories/hatchet/types.js.map +1 -1
- package/dist/factories/helm/helm-release.d.ts.map +1 -1
- package/dist/factories/helm/helm-release.js +3 -31
- package/dist/factories/helm/helm-release.js.map +1 -1
- package/dist/factories/helm/index.d.ts +3 -1
- package/dist/factories/helm/index.d.ts.map +1 -1
- package/dist/factories/helm/index.js +1 -0
- package/dist/factories/helm/index.js.map +1 -1
- package/dist/factories/helm/lifecycle.d.ts +32 -0
- package/dist/factories/helm/lifecycle.d.ts.map +1 -0
- package/dist/factories/helm/lifecycle.js +165 -0
- package/dist/factories/helm/lifecycle.js.map +1 -0
- package/dist/factories/helm/types.d.ts +22 -0
- package/dist/factories/helm/types.d.ts.map +1 -1
- package/dist/factories/inngest/resources/helm.d.ts.map +1 -1
- package/dist/factories/inngest/resources/helm.js +2 -0
- package/dist/factories/inngest/resources/helm.js.map +1 -1
- package/dist/factories/inngest/types.d.ts +2 -1
- package/dist/factories/inngest/types.d.ts.map +1 -1
- package/dist/factories/inngest/types.js.map +1 -1
- package/dist/factories/karpenter/compositions/index.d.ts +3 -0
- package/dist/factories/karpenter/compositions/index.d.ts.map +1 -0
- package/dist/factories/karpenter/compositions/index.js +3 -0
- package/dist/factories/karpenter/compositions/index.js.map +1 -0
- package/dist/factories/karpenter/compositions/karpenter-bootstrap.d.ts +34 -0
- package/dist/factories/karpenter/compositions/karpenter-bootstrap.d.ts.map +1 -0
- package/dist/factories/karpenter/compositions/karpenter-bootstrap.js +150 -0
- package/dist/factories/karpenter/compositions/karpenter-bootstrap.js.map +1 -0
- package/dist/factories/karpenter/compositions/karpenter-helm-repository.d.ts +10 -0
- package/dist/factories/karpenter/compositions/karpenter-helm-repository.d.ts.map +1 -0
- package/dist/factories/karpenter/compositions/karpenter-helm-repository.js +25 -0
- package/dist/factories/karpenter/compositions/karpenter-helm-repository.js.map +1 -0
- package/dist/factories/karpenter/constants.d.ts +67 -0
- package/dist/factories/karpenter/constants.d.ts.map +1 -0
- package/dist/factories/karpenter/constants.js +65 -0
- package/dist/factories/karpenter/constants.js.map +1 -0
- package/dist/factories/karpenter/index.d.ts +14 -0
- package/dist/factories/karpenter/index.d.ts.map +1 -0
- package/dist/factories/karpenter/index.js +14 -0
- package/dist/factories/karpenter/index.js.map +1 -0
- package/dist/factories/karpenter/resources/ec2-node-class.d.ts +26 -0
- package/dist/factories/karpenter/resources/ec2-node-class.d.ts.map +1 -0
- package/dist/factories/karpenter/resources/ec2-node-class.js +48 -0
- package/dist/factories/karpenter/resources/ec2-node-class.js.map +1 -0
- package/dist/factories/karpenter/resources/helm.d.ts +48 -0
- package/dist/factories/karpenter/resources/helm.d.ts.map +1 -0
- package/dist/factories/karpenter/resources/helm.js +117 -0
- package/dist/factories/karpenter/resources/helm.js.map +1 -0
- package/dist/factories/karpenter/resources/index.d.ts +5 -0
- package/dist/factories/karpenter/resources/index.d.ts.map +1 -0
- package/dist/factories/karpenter/resources/index.js +5 -0
- package/dist/factories/karpenter/resources/index.js.map +1 -0
- package/dist/factories/karpenter/resources/node-pool.d.ts +32 -0
- package/dist/factories/karpenter/resources/node-pool.d.ts.map +1 -0
- package/dist/factories/karpenter/resources/node-pool.js +80 -0
- package/dist/factories/karpenter/resources/node-pool.js.map +1 -0
- package/dist/factories/karpenter/resources/readiness.d.ts +21 -0
- package/dist/factories/karpenter/resources/readiness.d.ts.map +1 -0
- package/dist/factories/karpenter/resources/readiness.js +60 -0
- package/dist/factories/karpenter/resources/readiness.js.map +1 -0
- package/dist/factories/karpenter/types.d.ts +433 -0
- package/dist/factories/karpenter/types.d.ts.map +1 -0
- package/dist/factories/karpenter/types.js +59 -0
- package/dist/factories/karpenter/types.js.map +1 -0
- package/dist/factories/karpenter/utils/helm-values-mapper.d.ts +24 -0
- package/dist/factories/karpenter/utils/helm-values-mapper.d.ts.map +1 -0
- package/dist/factories/karpenter/utils/helm-values-mapper.js +89 -0
- package/dist/factories/karpenter/utils/helm-values-mapper.js.map +1 -0
- package/dist/factories/karpenter/utils/index.d.ts +3 -0
- package/dist/factories/karpenter/utils/index.d.ts.map +1 -0
- package/dist/factories/karpenter/utils/index.js +3 -0
- package/dist/factories/karpenter/utils/index.js.map +1 -0
- package/dist/factories/karpenter/utils/validation.d.ts +42 -0
- package/dist/factories/karpenter/utils/validation.d.ts.map +1 -0
- package/dist/factories/karpenter/utils/validation.js +441 -0
- package/dist/factories/karpenter/utils/validation.js.map +1 -0
- package/dist/factories/keda/compositions/index.d.ts +3 -0
- package/dist/factories/keda/compositions/index.d.ts.map +1 -0
- package/dist/factories/keda/compositions/index.js +3 -0
- package/dist/factories/keda/compositions/index.js.map +1 -0
- package/dist/factories/keda/compositions/keda-bootstrap.d.ts +30 -0
- package/dist/factories/keda/compositions/keda-bootstrap.d.ts.map +1 -0
- package/dist/factories/keda/compositions/keda-bootstrap.js +102 -0
- package/dist/factories/keda/compositions/keda-bootstrap.js.map +1 -0
- package/dist/factories/keda/compositions/keda-helm-repository.d.ts +10 -0
- package/dist/factories/keda/compositions/keda-helm-repository.d.ts.map +1 -0
- package/dist/factories/keda/compositions/keda-helm-repository.js +25 -0
- package/dist/factories/keda/compositions/keda-helm-repository.js.map +1 -0
- package/dist/factories/keda/constants.d.ts +27 -0
- package/dist/factories/keda/constants.d.ts.map +1 -0
- package/dist/factories/keda/constants.js +27 -0
- package/dist/factories/keda/constants.js.map +1 -0
- package/dist/factories/keda/index.d.ts +14 -0
- package/dist/factories/keda/index.d.ts.map +1 -0
- package/dist/factories/keda/index.js +14 -0
- package/dist/factories/keda/index.js.map +1 -0
- package/dist/factories/keda/resources/helm.d.ts +26 -0
- package/dist/factories/keda/resources/helm.d.ts.map +1 -0
- package/dist/factories/keda/resources/helm.js +84 -0
- package/dist/factories/keda/resources/helm.js.map +1 -0
- package/dist/factories/keda/resources/index.d.ts +7 -0
- package/dist/factories/keda/resources/index.d.ts.map +1 -0
- package/dist/factories/keda/resources/index.js +7 -0
- package/dist/factories/keda/resources/index.js.map +1 -0
- package/dist/factories/keda/resources/readiness.d.ts +28 -0
- package/dist/factories/keda/resources/readiness.d.ts.map +1 -0
- package/dist/factories/keda/resources/readiness.js +70 -0
- package/dist/factories/keda/resources/readiness.js.map +1 -0
- package/dist/factories/keda/resources/scaled-job.d.ts +23 -0
- package/dist/factories/keda/resources/scaled-job.d.ts.map +1 -0
- package/dist/factories/keda/resources/scaled-job.js +43 -0
- package/dist/factories/keda/resources/scaled-job.js.map +1 -0
- package/dist/factories/keda/resources/scaled-object.d.ts +33 -0
- package/dist/factories/keda/resources/scaled-object.d.ts.map +1 -0
- package/dist/factories/keda/resources/scaled-object.js +78 -0
- package/dist/factories/keda/resources/scaled-object.js.map +1 -0
- package/dist/factories/keda/resources/trigger-authentication.d.ts +28 -0
- package/dist/factories/keda/resources/trigger-authentication.d.ts.map +1 -0
- package/dist/factories/keda/resources/trigger-authentication.js +52 -0
- package/dist/factories/keda/resources/trigger-authentication.js.map +1 -0
- package/dist/factories/keda/resources/triggers.d.ts +17 -0
- package/dist/factories/keda/resources/triggers.d.ts.map +1 -0
- package/dist/factories/keda/resources/triggers.js +21 -0
- package/dist/factories/keda/resources/triggers.js.map +1 -0
- package/dist/factories/keda/types.d.ts +580 -0
- package/dist/factories/keda/types.d.ts.map +1 -0
- package/dist/factories/keda/types.js +75 -0
- package/dist/factories/keda/types.js.map +1 -0
- package/dist/factories/keda/utils/helm-values-mapper.d.ts +21 -0
- package/dist/factories/keda/utils/helm-values-mapper.d.ts.map +1 -0
- package/dist/factories/keda/utils/helm-values-mapper.js +130 -0
- package/dist/factories/keda/utils/helm-values-mapper.js.map +1 -0
- package/dist/factories/keda/utils/index.d.ts +3 -0
- package/dist/factories/keda/utils/index.d.ts.map +1 -0
- package/dist/factories/keda/utils/index.js +3 -0
- package/dist/factories/keda/utils/index.js.map +1 -0
- package/dist/factories/keda/utils/validation.d.ts +52 -0
- package/dist/factories/keda/utils/validation.d.ts.map +1 -0
- package/dist/factories/keda/utils/validation.js +482 -0
- package/dist/factories/keda/utils/validation.js.map +1 -0
- package/dist/factories/kubernetes/policy/limit-range.d.ts.map +1 -1
- package/dist/factories/kubernetes/policy/limit-range.js +27 -1
- package/dist/factories/kubernetes/policy/limit-range.js.map +1 -1
- package/dist/factories/nats/resources/helm.d.ts +2 -2
- package/dist/factories/nats/resources/helm.d.ts.map +1 -1
- package/dist/factories/nats/resources/helm.js +2 -1
- package/dist/factories/nats/resources/helm.js.map +1 -1
- package/dist/factories/opensearch/resources/helm.d.ts.map +1 -1
- package/dist/factories/opensearch/resources/helm.js +2 -1
- package/dist/factories/opensearch/resources/helm.js.map +1 -1
- package/dist/factories/opensearch/types.d.ts +2 -1
- package/dist/factories/opensearch/types.d.ts.map +1 -1
- package/dist/factories/opensearch/types.js.map +1 -1
- package/dist/factories/ory/resources/helm.d.ts.map +1 -1
- package/dist/factories/ory/resources/helm.js +2 -0
- package/dist/factories/ory/resources/helm.js.map +1 -1
- package/dist/factories/ory/types.d.ts +2 -2
- package/dist/factories/ory/types.d.ts.map +1 -1
- package/dist/factories/ory/types.js.map +1 -1
- package/dist/factories/pebble/resources/helm.d.ts.map +1 -1
- package/dist/factories/pebble/resources/helm.js +2 -0
- package/dist/factories/pebble/resources/helm.js.map +1 -1
- package/dist/factories/pebble/types.d.ts +2 -1
- package/dist/factories/pebble/types.d.ts.map +1 -1
- package/dist/factories/pebble/types.js.map +1 -1
- package/dist/factories/rook/resources/helm.d.ts.map +1 -1
- package/dist/factories/rook/resources/helm.js +3 -2
- package/dist/factories/rook/resources/helm.js.map +1 -1
- package/dist/factories/rook/types.d.ts +2 -1
- package/dist/factories/rook/types.d.ts.map +1 -1
- package/dist/factories/rook/types.js.map +1 -1
- package/dist/factories/traefik/compositions/traefik-bootstrap.d.ts +43 -36
- package/dist/factories/traefik/compositions/traefik-bootstrap.d.ts.map +1 -1
- package/dist/factories/traefik/compositions/traefik-bootstrap.js +70 -38
- package/dist/factories/traefik/compositions/traefik-bootstrap.js.map +1 -1
- package/dist/factories/traefik/constants.d.ts +6 -0
- package/dist/factories/traefik/constants.d.ts.map +1 -1
- package/dist/factories/traefik/constants.js +6 -0
- package/dist/factories/traefik/constants.js.map +1 -1
- package/dist/factories/traefik/resources/common.d.ts +1 -1
- package/dist/factories/traefik/resources/common.js +1 -1
- package/dist/factories/traefik/resources/helm.d.ts.map +1 -1
- package/dist/factories/traefik/resources/helm.js +14 -9
- package/dist/factories/traefik/resources/helm.js.map +1 -1
- package/dist/factories/traefik/resources/middleware.d.ts +35 -1
- package/dist/factories/traefik/resources/middleware.d.ts.map +1 -1
- package/dist/factories/traefik/resources/middleware.js +71 -0
- package/dist/factories/traefik/resources/middleware.js.map +1 -1
- package/dist/factories/traefik/resources/tls.d.ts +22 -1
- package/dist/factories/traefik/resources/tls.d.ts.map +1 -1
- package/dist/factories/traefik/resources/tls.js +40 -0
- package/dist/factories/traefik/resources/tls.js.map +1 -1
- package/dist/factories/traefik/types.d.ts +176 -9
- package/dist/factories/traefik/types.d.ts.map +1 -1
- package/dist/factories/traefik/types.js +111 -2
- package/dist/factories/traefik/types.js.map +1 -1
- package/dist/factories/traefik/utils/access-log.d.ts +18 -0
- package/dist/factories/traefik/utils/access-log.d.ts.map +1 -0
- package/dist/factories/traefik/utils/access-log.js +98 -0
- package/dist/factories/traefik/utils/access-log.js.map +1 -0
- package/dist/factories/traefik/utils/aws-nlb.d.ts +55 -0
- package/dist/factories/traefik/utils/aws-nlb.d.ts.map +1 -0
- package/dist/factories/traefik/utils/aws-nlb.js +121 -0
- package/dist/factories/traefik/utils/aws-nlb.js.map +1 -0
- package/dist/factories/traefik/utils/helm-values-mapper.d.ts +30 -40
- package/dist/factories/traefik/utils/helm-values-mapper.d.ts.map +1 -1
- package/dist/factories/traefik/utils/helm-values-mapper.js +308 -41
- package/dist/factories/traefik/utils/helm-values-mapper.js.map +1 -1
- package/dist/factories/traefik/utils/index.d.ts +5 -0
- package/dist/factories/traefik/utils/index.d.ts.map +1 -1
- package/dist/factories/traefik/utils/index.js +5 -0
- package/dist/factories/traefik/utils/index.js.map +1 -1
- package/dist/factories/traefik/utils/middleware-validation.d.ts +0 -17
- package/dist/factories/traefik/utils/middleware-validation.d.ts.map +1 -1
- package/dist/factories/traefik/utils/middleware-validation.js +15 -17
- package/dist/factories/traefik/utils/middleware-validation.js.map +1 -1
- package/dist/factories/traefik/utils/plugins.d.ts +38 -0
- package/dist/factories/traefik/utils/plugins.d.ts.map +1 -0
- package/dist/factories/traefik/utils/plugins.js +175 -0
- package/dist/factories/traefik/utils/plugins.js.map +1 -0
- package/dist/factories/traefik/utils/proxy-trust.d.ts +48 -0
- package/dist/factories/traefik/utils/proxy-trust.d.ts.map +1 -0
- package/dist/factories/traefik/utils/proxy-trust.js +514 -0
- package/dist/factories/traefik/utils/proxy-trust.js.map +1 -0
- package/dist/factories/traefik/utils/trusted-range.d.ts +29 -0
- package/dist/factories/traefik/utils/trusted-range.d.ts.map +1 -0
- package/dist/factories/traefik/utils/trusted-range.js +80 -0
- package/dist/factories/traefik/utils/trusted-range.js.map +1 -0
- package/dist/factories/valkey/resources/helm.d.ts.map +1 -1
- package/dist/factories/valkey/resources/helm.js +2 -1
- package/dist/factories/valkey/resources/helm.js.map +1 -1
- package/dist/factories/valkey/types.d.ts +2 -1
- package/dist/factories/valkey/types.d.ts.map +1 -1
- package/dist/factories/valkey/types.js.map +1 -1
- package/dist/factories/vpa/compositions/index.d.ts +3 -0
- package/dist/factories/vpa/compositions/index.d.ts.map +1 -0
- package/dist/factories/vpa/compositions/index.js +3 -0
- package/dist/factories/vpa/compositions/index.js.map +1 -0
- package/dist/factories/vpa/compositions/vpa-bootstrap.d.ts +30 -0
- package/dist/factories/vpa/compositions/vpa-bootstrap.d.ts.map +1 -0
- package/dist/factories/vpa/compositions/vpa-bootstrap.js +104 -0
- package/dist/factories/vpa/compositions/vpa-bootstrap.js.map +1 -0
- package/dist/factories/vpa/compositions/vpa-helm-repository.d.ts +10 -0
- package/dist/factories/vpa/compositions/vpa-helm-repository.d.ts.map +1 -0
- package/dist/factories/vpa/compositions/vpa-helm-repository.js +25 -0
- package/dist/factories/vpa/compositions/vpa-helm-repository.js.map +1 -0
- package/dist/factories/vpa/constants.d.ts +77 -0
- package/dist/factories/vpa/constants.d.ts.map +1 -0
- package/dist/factories/vpa/constants.js +67 -0
- package/dist/factories/vpa/constants.js.map +1 -0
- package/dist/factories/vpa/index.d.ts +14 -0
- package/dist/factories/vpa/index.d.ts.map +1 -0
- package/dist/factories/vpa/index.js +14 -0
- package/dist/factories/vpa/index.js.map +1 -0
- package/dist/factories/vpa/resources/helm.d.ts +28 -0
- package/dist/factories/vpa/resources/helm.d.ts.map +1 -0
- package/dist/factories/vpa/resources/helm.js +88 -0
- package/dist/factories/vpa/resources/helm.js.map +1 -0
- package/dist/factories/vpa/resources/index.d.ts +4 -0
- package/dist/factories/vpa/resources/index.d.ts.map +1 -0
- package/dist/factories/vpa/resources/index.js +4 -0
- package/dist/factories/vpa/resources/index.js.map +1 -0
- package/dist/factories/vpa/resources/readiness.d.ts +24 -0
- package/dist/factories/vpa/resources/readiness.d.ts.map +1 -0
- package/dist/factories/vpa/resources/readiness.js +66 -0
- package/dist/factories/vpa/resources/readiness.js.map +1 -0
- package/dist/factories/vpa/resources/vertical-pod-autoscaler.d.ts +42 -0
- package/dist/factories/vpa/resources/vertical-pod-autoscaler.d.ts.map +1 -0
- package/dist/factories/vpa/resources/vertical-pod-autoscaler.js +93 -0
- package/dist/factories/vpa/resources/vertical-pod-autoscaler.js.map +1 -0
- package/dist/factories/vpa/types.d.ts +312 -0
- package/dist/factories/vpa/types.d.ts.map +1 -0
- package/dist/factories/vpa/types.js +96 -0
- package/dist/factories/vpa/types.js.map +1 -0
- package/dist/factories/vpa/utils/helm-values-mapper.d.ts +18 -0
- package/dist/factories/vpa/utils/helm-values-mapper.d.ts.map +1 -0
- package/dist/factories/vpa/utils/helm-values-mapper.js +121 -0
- package/dist/factories/vpa/utils/helm-values-mapper.js.map +1 -0
- package/dist/factories/vpa/utils/index.d.ts +3 -0
- package/dist/factories/vpa/utils/index.d.ts.map +1 -0
- package/dist/factories/vpa/utils/index.js +3 -0
- package/dist/factories/vpa/utils/index.js.map +1 -0
- package/dist/factories/vpa/utils/validation.d.ts +42 -0
- package/dist/factories/vpa/utils/validation.d.ts.map +1 -0
- package/dist/factories/vpa/utils/validation.js +225 -0
- package/dist/factories/vpa/utils/validation.js.map +1 -0
- package/package.json +21 -1
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Traefik utilities.
|
|
3
3
|
*/
|
|
4
|
+
export { TRAEFIK_ACCESS_LOG_DROPPED_HEADERS, TRAEFIK_CROWDSEC_ACCESS_LOG_FIELDS, traefikAccessLogFields, } from './access-log.js';
|
|
5
|
+
export { type AwsNlbHealthCheckOptions, type AwsNlbServiceAnnotationOptions, awsNlbServiceAnnotations, } from './aws-nlb.js';
|
|
4
6
|
export { applyTraefikOwnershipPins, applyTraefikSecurityPins, mapTraefikConfigToHelmValues, TRAEFIK_CONTAINER_SECURITY_CONTEXT, TRAEFIK_MAPPED_CHART_VERSION, TRAEFIK_OWNERSHIP_PINS, TRAEFIK_POD_SECURITY_CONTEXT, TRAEFIK_SECURITY_PINS, traefikEntrypointServiceType, type TraefikHelmValuesMapperOptions, type TraefikHelmValuesValidationContext, validateTraefikHelmValues, } from './helm-values-mapper.js';
|
|
5
7
|
export { assertTraefikMiddlewareSpec, traefikMiddlewareKeys, validateTraefikMiddlewareSpec, } from './middleware-validation.js';
|
|
8
|
+
export { assertTraefikProxyTrust, TRAEFIK_TRUSTED_IPS_VALIDATION_RULE, traefikBroadTrustWarnings, traefikProxyTrustIssues, traefikProxyTrustSchemaFieldValidations, } from './proxy-trust.js';
|
|
9
|
+
export { parseTraefikTrustedRange, TRAEFIK_IPV4_MAPPED_PATTERN, TRAEFIK_TRUSTED_RANGE_PATTERN, type TraefikTrustedRange, } from './trusted-range.js';
|
|
10
|
+
export { assertTraefikPlugins, traefikLocalPluginMountPath, traefikPluginIssues, traefikSecretValue, } from './plugins.js';
|
|
6
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factories/traefik/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,4BAA4B,EAC5B,kCAAkC,EAClC,4BAA4B,EAC5B,sBAAsB,EACtB,4BAA4B,EAC5B,qBAAqB,EACrB,4BAA4B,EAC5B,KAAK,8BAA8B,EACnC,KAAK,kCAAkC,EACvC,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,6BAA6B,GAC9B,MAAM,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factories/traefik/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,kCAAkC,EAClC,kCAAkC,EAClC,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,8BAA8B,EACnC,wBAAwB,GACzB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,4BAA4B,EAC5B,kCAAkC,EAClC,4BAA4B,EAC5B,sBAAsB,EACtB,4BAA4B,EAC5B,qBAAqB,EACrB,4BAA4B,EAC5B,KAAK,8BAA8B,EACnC,KAAK,kCAAkC,EACvC,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,6BAA6B,GAC9B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,uBAAuB,EACvB,mCAAmC,EACnC,yBAAyB,EACzB,uBAAuB,EACvB,uCAAuC,GACxC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,6BAA6B,EAC7B,KAAK,mBAAmB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,cAAc,CAAC"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Traefik utilities.
|
|
3
3
|
*/
|
|
4
|
+
export { TRAEFIK_ACCESS_LOG_DROPPED_HEADERS, TRAEFIK_CROWDSEC_ACCESS_LOG_FIELDS, traefikAccessLogFields, } from './access-log.js';
|
|
5
|
+
export { awsNlbServiceAnnotations, } from './aws-nlb.js';
|
|
4
6
|
export { applyTraefikOwnershipPins, applyTraefikSecurityPins, mapTraefikConfigToHelmValues, TRAEFIK_CONTAINER_SECURITY_CONTEXT, TRAEFIK_MAPPED_CHART_VERSION, TRAEFIK_OWNERSHIP_PINS, TRAEFIK_POD_SECURITY_CONTEXT, TRAEFIK_SECURITY_PINS, traefikEntrypointServiceType, validateTraefikHelmValues, } from './helm-values-mapper.js';
|
|
5
7
|
export { assertTraefikMiddlewareSpec, traefikMiddlewareKeys, validateTraefikMiddlewareSpec, } from './middleware-validation.js';
|
|
8
|
+
export { assertTraefikProxyTrust, TRAEFIK_TRUSTED_IPS_VALIDATION_RULE, traefikBroadTrustWarnings, traefikProxyTrustIssues, traefikProxyTrustSchemaFieldValidations, } from './proxy-trust.js';
|
|
9
|
+
export { parseTraefikTrustedRange, TRAEFIK_IPV4_MAPPED_PATTERN, TRAEFIK_TRUSTED_RANGE_PATTERN, } from './trusted-range.js';
|
|
10
|
+
export { assertTraefikPlugins, traefikLocalPluginMountPath, traefikPluginIssues, traefikSecretValue, } from './plugins.js';
|
|
6
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/factories/traefik/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,4BAA4B,EAC5B,kCAAkC,EAClC,4BAA4B,EAC5B,sBAAsB,EACtB,4BAA4B,EAC5B,qBAAqB,EACrB,4BAA4B,EAG5B,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,6BAA6B,GAC9B,MAAM,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/factories/traefik/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,kCAAkC,EAClC,kCAAkC,EAClC,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAGL,wBAAwB,GACzB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,4BAA4B,EAC5B,kCAAkC,EAClC,4BAA4B,EAC5B,sBAAsB,EACtB,4BAA4B,EAC5B,qBAAqB,EACrB,4BAA4B,EAG5B,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,6BAA6B,GAC9B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,uBAAuB,EACvB,mCAAmC,EACnC,yBAAyB,EACzB,uBAAuB,EACvB,uCAAuC,GACxC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,6BAA6B,GAE9B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,cAAc,CAAC"}
|
|
@@ -1,20 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `Middleware` spec validation.
|
|
3
|
-
*
|
|
4
|
-
* A Traefik `Middleware` configures exactly one behavior. Two keys in one
|
|
5
|
-
* object is not a merge — Traefik picks one and silently drops the other — so
|
|
6
|
-
* this is a real misconfiguration worth rejecting.
|
|
7
|
-
*
|
|
8
|
-
* The type system already makes it a compile error (see
|
|
9
|
-
* `TraefikMiddlewareSpec`), but the same rule is re-checked at runtime for
|
|
10
|
-
* JavaScript callers and for specs assembled dynamically.
|
|
11
|
-
*
|
|
12
|
-
* **Why this check is safe outside a status builder:** it only inspects which
|
|
13
|
-
* KEYS a spec object carries, never their values. Keys are always written by
|
|
14
|
-
* the author and are concrete in both direct and KRO mode, so this never
|
|
15
|
-
* inspects a schema proxy. Value-level validation, which would have to reason
|
|
16
|
-
* about refs, is deliberately absent.
|
|
17
|
-
*/
|
|
18
1
|
/** The middleware keys a spec object carries, in declaration order. */
|
|
19
2
|
export declare function traefikMiddlewareKeys(spec: unknown): readonly string[];
|
|
20
3
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware-validation.d.ts","sourceRoot":"","sources":["../../../../src/factories/traefik/utils/middleware-validation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"middleware-validation.d.ts","sourceRoot":"","sources":["../../../../src/factories/traefik/utils/middleware-validation.ts"],"names":[],"mappings":"AAqBA,uEAAuE;AACvE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,MAAM,EAAE,CAKtE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,MAAM,EAAE,CA+B9E;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAQ7E"}
|
|
@@ -1,20 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
* about refs, is deliberately absent.
|
|
17
|
-
*/
|
|
1
|
+
// `Middleware` spec validation.
|
|
2
|
+
//
|
|
3
|
+
// A Traefik `Middleware` configures exactly one behavior. Two keys in one
|
|
4
|
+
// object is not a merge — Traefik picks one and silently drops the other — so
|
|
5
|
+
// this is a real misconfiguration worth rejecting.
|
|
6
|
+
//
|
|
7
|
+
// The type system already makes it a compile error (see
|
|
8
|
+
// `TraefikMiddlewareSpec`), but the same rule is re-checked at runtime for
|
|
9
|
+
// JavaScript callers and for specs assembled dynamically.
|
|
10
|
+
//
|
|
11
|
+
// **Why this check is safe outside a status builder:** it only inspects which
|
|
12
|
+
// KEYS a spec object carries, never their values. Keys are always written by
|
|
13
|
+
// the author and are concrete in both direct and KRO mode, so this never
|
|
14
|
+
// inspects a schema proxy. Value-level validation, which would have to reason
|
|
15
|
+
// about refs, is deliberately absent.
|
|
18
16
|
import { TypeKroError } from '../../../core/errors.js';
|
|
19
17
|
import { TRAEFIK_MIDDLEWARE_KINDS } from '../constants.js';
|
|
20
18
|
const MIDDLEWARE_KIND_SET = new Set(TRAEFIK_MIDDLEWARE_KINDS);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware-validation.js","sourceRoot":"","sources":["../../../../src/factories/traefik/utils/middleware-validation.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"middleware-validation.js","sourceRoot":"","sources":["../../../../src/factories/traefik/utils/middleware-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Traefik plugin declarations (`experimental.plugins` / `experimental.localPlugins`).
|
|
3
|
+
*/
|
|
4
|
+
import type { TraefikLocalPluginDeclaration, TraefikPluginDeclaration } from '../types.js';
|
|
5
|
+
export declare const TRAEFIK_PLUGIN_NAME: RegExp;
|
|
6
|
+
/**
|
|
7
|
+
* Volume names raw chart values add to the Traefik pod, where they are
|
|
8
|
+
* literal: `volumes[].name` (with "." turned into "-", as the chart does),
|
|
9
|
+
* `persistence.name` and `deployment.additionalVolumes[].name`.
|
|
10
|
+
*/
|
|
11
|
+
export declare function traefikRawVolumeNames(values: Readonly<Record<string, unknown>>): string[];
|
|
12
|
+
/** Where Traefik loads a local plugin from: `./plugins-local/src/<moduleName>`. */
|
|
13
|
+
export declare function traefikLocalPluginMountPath(moduleName: string): string;
|
|
14
|
+
/** Problems with plugin declarations; empty when there are none. */
|
|
15
|
+
export declare function traefikPluginIssues(plugins?: Readonly<Record<string, TraefikPluginDeclaration>>, localPlugins?: Readonly<Record<string, TraefikLocalPluginDeclaration>>, rawVolumeNames?: readonly string[]): string[];
|
|
16
|
+
/**
|
|
17
|
+
* Throw when a plugin declaration is malformed or unpinned.
|
|
18
|
+
*
|
|
19
|
+
* @throws {TypeKroError} With code `TRAEFIK_PLUGIN_INVALID`.
|
|
20
|
+
*/
|
|
21
|
+
export declare function assertTraefikPlugins(plugins?: Readonly<Record<string, TraefikPluginDeclaration>>, localPlugins?: Readonly<Record<string, TraefikLocalPluginDeclaration>>, rawVolumeNames?: readonly string[]): void;
|
|
22
|
+
/**
|
|
23
|
+
* A plugin configuration value Traefik reads from a Secret in the Middleware's namespace.
|
|
24
|
+
*
|
|
25
|
+
* Traefik's CRD provider resolves `urn:k8s:secret:<secret>:<key>` strings at any
|
|
26
|
+
* depth of a `plugin` middleware's configuration. Only plugin configuration is
|
|
27
|
+
* resolved this way.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* traefikPluginMiddleware({
|
|
32
|
+
* name: 'bouncer', namespace: 'edge', plugin: 'crowdsec',
|
|
33
|
+
* config: { apiKey: traefikSecretValue('bouncer-key', 'api-key') },
|
|
34
|
+
* });
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare function traefikSecretValue(secretName: string, key: string): string;
|
|
38
|
+
//# sourceMappingURL=plugins.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../../../src/factories/traefik/utils/plugins.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,OAAO,KAAK,EAAE,6BAA6B,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAM3F,eAAO,MAAM,mBAAmB,EAAE,MAAmC,CAAC;AA4BtE;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,EAAE,CAoBzF;AAUD,mFAAmF;AACnF,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,oEAAoE;AACpE,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAM,EAChE,YAAY,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAM,EAC1E,cAAc,GAAE,SAAS,MAAM,EAAO,GACrC,MAAM,EAAE,CAwDV;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,EAC5D,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC,EACtE,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,GACjC,IAAI,CAQN;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAe1E"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Traefik plugin declarations (`experimental.plugins` / `experimental.localPlugins`).
|
|
3
|
+
*/
|
|
4
|
+
// Traefik downloads a registry plugin from plugins.traefik.io at startup and,
|
|
5
|
+
// when `hash` is set, compares the SHA-256 of the downloaded archive with it
|
|
6
|
+
// and refuses to load a mismatch (`pkg/plugins/manager.go`, InstallPlugin).
|
|
7
|
+
// Without a hash it only asks the registry whether the archive is intact, so
|
|
8
|
+
// whoever controls the registry, the network path or a re-tagged version
|
|
9
|
+
// decides what code runs inside the edge. That is why `hash` is required here.
|
|
10
|
+
//
|
|
11
|
+
// To find the hash, download the archive the edge would fetch and hash it:
|
|
12
|
+
// curl -sL https://plugins.traefik.io/public/download/<moduleName>/<version> | sha256sum
|
|
13
|
+
// Traefik's own error for a wrong hash also prints the hash it computed.
|
|
14
|
+
import { TypeKroError } from '../../../core/errors.js';
|
|
15
|
+
// Plugin names become CLI flag segments (`--experimental.plugins.<name>...`)
|
|
16
|
+
// and `Middleware.spec.plugin` keys, so they stay to one flag-safe word.
|
|
17
|
+
// Exported for integrations that name a plugin (CrowdSec's bouncer); not
|
|
18
|
+
// re-exported from `typekro/traefik`.
|
|
19
|
+
export const TRAEFIK_PLUGIN_NAME = /^[A-Za-z][A-Za-z0-9_-]*$/;
|
|
20
|
+
const SHA256_HEX = /^[0-9a-f]{64}$/;
|
|
21
|
+
// The chart writes `moduleName`, `version`, a local plugin's `volumeName` and
|
|
22
|
+
// `subPath`, and inline source file names into its templates unescaped. A
|
|
23
|
+
// quote or newline there would add YAML of the caller's choosing (another
|
|
24
|
+
// argument, mount or manifest) behind every check TypeKro runs on the values,
|
|
25
|
+
// so each is held to the characters its real form uses.
|
|
26
|
+
// A Go module path: letters, digits and `-._~/`.
|
|
27
|
+
const MODULE_NAME = /^[A-Za-z0-9][A-Za-z0-9._~/-]*$/;
|
|
28
|
+
// A release tag such as `v1.4.2` or `v2.0.0-rc.1+build.5`.
|
|
29
|
+
const VERSION = /^[A-Za-z0-9][A-Za-z0-9._+-]*$/;
|
|
30
|
+
// A Kubernetes volume name (DNS-1123 label).
|
|
31
|
+
const VOLUME_NAME = /^[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])?$/;
|
|
32
|
+
// A relative path inside the volume.
|
|
33
|
+
const SUB_PATH = /^[A-Za-z0-9._-][A-Za-z0-9._/-]*$/;
|
|
34
|
+
// A ConfigMap key: `[-._a-zA-Z0-9]+`, at most 253 characters, and neither
|
|
35
|
+
// `.`, `..` nor anything starting with `..` (Kubernetes' IsConfigMapKey).
|
|
36
|
+
const FILE_NAME = /^[-._A-Za-z0-9]{1,253}$/;
|
|
37
|
+
// A local plugin's name becomes a volume name (`inlinePlugin`) and part of the
|
|
38
|
+
// ConfigMap the chart creates, `<release>-local-plugin-<name>`, so it must be
|
|
39
|
+
// a DNS-1123 label. The release part is at most 63 characters (the chart
|
|
40
|
+
// truncates it), so that name is at most 63 + 14 + 63 = 140 characters, well
|
|
41
|
+
// inside the 253 a ConfigMap name allows.
|
|
42
|
+
const LOCAL_PLUGIN_NAME = /^[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])?$/;
|
|
43
|
+
// Volumes the chart itself adds to the pod, which an inline plugin's volume
|
|
44
|
+
// (named after the plugin) would collide with.
|
|
45
|
+
const CHART_VOLUME_NAMES = new Set(['data', 'tmp', 'plugins', 'hub-token', 'traefik-extra-config']);
|
|
46
|
+
/**
|
|
47
|
+
* Volume names raw chart values add to the Traefik pod, where they are
|
|
48
|
+
* literal: `volumes[].name` (with "." turned into "-", as the chart does),
|
|
49
|
+
* `persistence.name` and `deployment.additionalVolumes[].name`.
|
|
50
|
+
*/
|
|
51
|
+
export function traefikRawVolumeNames(values) {
|
|
52
|
+
const names = [];
|
|
53
|
+
const nameOf = (entry) => typeof entry === 'object' && entry !== null ? Reflect.get(entry, 'name') : undefined;
|
|
54
|
+
const listNames = (list, transform) => {
|
|
55
|
+
if (!Array.isArray(list))
|
|
56
|
+
return;
|
|
57
|
+
for (const entry of list) {
|
|
58
|
+
const name = nameOf(entry);
|
|
59
|
+
// A templated name is only known at render time; skip it.
|
|
60
|
+
if (typeof name === 'string' && !name.includes('{{'))
|
|
61
|
+
names.push(transform(name));
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
listNames(values.volumes, (name) => name.replaceAll('.', '-'));
|
|
65
|
+
const persistenceName = nameOf(values.persistence);
|
|
66
|
+
if (typeof persistenceName === 'string')
|
|
67
|
+
names.push(persistenceName);
|
|
68
|
+
const deployment = values.deployment;
|
|
69
|
+
if (typeof deployment === 'object' && deployment !== null) {
|
|
70
|
+
listNames(Reflect.get(deployment, 'additionalVolumes'), (name) => name);
|
|
71
|
+
}
|
|
72
|
+
return names;
|
|
73
|
+
}
|
|
74
|
+
function isConfigMapKey(key) {
|
|
75
|
+
return FILE_NAME.test(key) && key !== '.' && !key.startsWith('..');
|
|
76
|
+
}
|
|
77
|
+
function hasParentSegment(path) {
|
|
78
|
+
return path.split('/').includes('..');
|
|
79
|
+
}
|
|
80
|
+
/** Where Traefik loads a local plugin from: `./plugins-local/src/<moduleName>`. */
|
|
81
|
+
export function traefikLocalPluginMountPath(moduleName) {
|
|
82
|
+
return `/plugins-local/src/${moduleName}`;
|
|
83
|
+
}
|
|
84
|
+
/** Problems with plugin declarations; empty when there are none. */
|
|
85
|
+
export function traefikPluginIssues(plugins = {}, localPlugins = {}, rawVolumeNames = []) {
|
|
86
|
+
const issues = [];
|
|
87
|
+
const takenVolumeNames = new Set([...CHART_VOLUME_NAMES, ...rawVolumeNames]);
|
|
88
|
+
for (const [name, plugin] of Object.entries(plugins)) {
|
|
89
|
+
if (!TRAEFIK_PLUGIN_NAME.test(name)) {
|
|
90
|
+
issues.push(`plugin name ${name} must match ${TRAEFIK_PLUGIN_NAME}.`);
|
|
91
|
+
}
|
|
92
|
+
if (!MODULE_NAME.test(plugin.moduleName)) {
|
|
93
|
+
issues.push(`plugin ${name} needs a Go module path as its moduleName.`);
|
|
94
|
+
}
|
|
95
|
+
if (!VERSION.test(plugin.version) || plugin.version === 'latest') {
|
|
96
|
+
issues.push(`plugin ${name} needs an exact version, not ${JSON.stringify(plugin.version)}.`);
|
|
97
|
+
}
|
|
98
|
+
if (!SHA256_HEX.test(plugin.hash)) {
|
|
99
|
+
issues.push(`plugin ${name} hash must be the archive's SHA-256 as 64 lowercase hex digits.`);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
for (const [name, plugin] of Object.entries(localPlugins)) {
|
|
103
|
+
if (!LOCAL_PLUGIN_NAME.test(name)) {
|
|
104
|
+
issues.push(`local plugin name ${name} must be a DNS-1123 label (lowercase letters, digits and "-", ` +
|
|
105
|
+
'at most 63 characters): the chart uses it in a volume and a ConfigMap name.');
|
|
106
|
+
}
|
|
107
|
+
else if (plugin.type === 'inlinePlugin' && takenVolumeNames.has(name)) {
|
|
108
|
+
issues.push(`local plugin name ${name} is a volume name the pod already has (the chart's own, ` +
|
|
109
|
+
'or one from raw volumes, persistence or deployment.additionalVolumes).');
|
|
110
|
+
}
|
|
111
|
+
if (name in plugins)
|
|
112
|
+
issues.push(`plugin ${name} is declared both as a registry and a local plugin.`);
|
|
113
|
+
if (!MODULE_NAME.test(plugin.moduleName) || plugin.moduleName.includes('..')) {
|
|
114
|
+
issues.push(`local plugin ${name} needs a Go module path without ".." as its moduleName.`);
|
|
115
|
+
}
|
|
116
|
+
if (plugin.type === 'inlinePlugin') {
|
|
117
|
+
const files = Object.keys(plugin.source);
|
|
118
|
+
if (files.length === 0)
|
|
119
|
+
issues.push(`local plugin ${name} has no source files.`);
|
|
120
|
+
for (const file of files.filter((file) => !isConfigMapKey(file))) {
|
|
121
|
+
issues.push(`local plugin ${name} source file ${JSON.stringify(file)} must be a ConfigMap key ` +
|
|
122
|
+
'(letters, digits, "-", "_" and ".", not "." or starting with "..").');
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
if (!VOLUME_NAME.test(plugin.volumeName)) {
|
|
127
|
+
issues.push(`local plugin ${name} volumeName must be a Kubernetes volume name.`);
|
|
128
|
+
}
|
|
129
|
+
if (plugin.subPath !== undefined &&
|
|
130
|
+
(!SUB_PATH.test(plugin.subPath) || hasParentSegment(plugin.subPath))) {
|
|
131
|
+
issues.push(`local plugin ${name} subPath must be a relative path without "..".`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return issues;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Throw when a plugin declaration is malformed or unpinned.
|
|
139
|
+
*
|
|
140
|
+
* @throws {TypeKroError} With code `TRAEFIK_PLUGIN_INVALID`.
|
|
141
|
+
*/
|
|
142
|
+
export function assertTraefikPlugins(plugins, localPlugins, rawVolumeNames) {
|
|
143
|
+
const issues = traefikPluginIssues(plugins, localPlugins, rawVolumeNames);
|
|
144
|
+
if (issues.length === 0)
|
|
145
|
+
return;
|
|
146
|
+
throw new TypeKroError(`Invalid Traefik plugin declaration: ${issues.join(' ')}`, 'TRAEFIK_PLUGIN_INVALID', { issues });
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* A plugin configuration value Traefik reads from a Secret in the Middleware's namespace.
|
|
150
|
+
*
|
|
151
|
+
* Traefik's CRD provider resolves `urn:k8s:secret:<secret>:<key>` strings at any
|
|
152
|
+
* depth of a `plugin` middleware's configuration. Only plugin configuration is
|
|
153
|
+
* resolved this way.
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* ```typescript
|
|
157
|
+
* traefikPluginMiddleware({
|
|
158
|
+
* name: 'bouncer', namespace: 'edge', plugin: 'crowdsec',
|
|
159
|
+
* config: { apiKey: traefikSecretValue('bouncer-key', 'api-key') },
|
|
160
|
+
* });
|
|
161
|
+
* ```
|
|
162
|
+
*/
|
|
163
|
+
export function traefikSecretValue(secretName, key) {
|
|
164
|
+
// Traefik splits the URN on ':' and expects exactly five parts.
|
|
165
|
+
for (const [what, value] of [
|
|
166
|
+
['secret name', secretName],
|
|
167
|
+
['key', key],
|
|
168
|
+
]) {
|
|
169
|
+
if (value === '' || value.includes(':')) {
|
|
170
|
+
throw new TypeKroError(`Invalid Traefik secret reference: the ${what} must be non-empty and contain no ":".`, 'TRAEFIK_SECRET_REFERENCE_INVALID', { secretName, key });
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return `urn:k8s:secret:${secretName}:${key}`;
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=plugins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../../../src/factories/traefik/utils/plugins.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which upstream sources a Traefik entrypoint believes.
|
|
3
|
+
*/
|
|
4
|
+
import type { TraefikHelmValues } from '../types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Admission rule on each KRO-mode `trustedIPs` list: every entry in the strict
|
|
7
|
+
* format and not `/0`.
|
|
8
|
+
*
|
|
9
|
+
* The API server estimates a CEL rule's cost from the schema, so the list
|
|
10
|
+
* carries `maxItems=64` and its items `maxLength=43` (through a SimpleSchema
|
|
11
|
+
* custom type); without those bounds `matches()` would exceed the CRD budget.
|
|
12
|
+
* The rendered values also keep only entries in the strict format (see
|
|
13
|
+
* `traefikStrictTrustedIPs`), as a second line of defence.
|
|
14
|
+
*/
|
|
15
|
+
export declare const TRAEFIK_TRUSTED_IPS_VALIDATION_RULE: string;
|
|
16
|
+
/**
|
|
17
|
+
* Problems with the proxy trust in final chart values; empty when there are none.
|
|
18
|
+
*
|
|
19
|
+
* Schema references under `ports` are skipped: KRO mode checks those on the
|
|
20
|
+
* CRD. In `env` and `envFrom` nothing on the CRD checks them, so a value the
|
|
21
|
+
* guard cannot see counts as a problem.
|
|
22
|
+
*/
|
|
23
|
+
export declare function traefikProxyTrustIssues(values: TraefikHelmValues): string[];
|
|
24
|
+
/**
|
|
25
|
+
* Throw when final chart values trust every source for PROXY protocol or forwarded headers,
|
|
26
|
+
* or carry trust settings whose value TypeKro cannot see.
|
|
27
|
+
*
|
|
28
|
+
* @throws {TypeKroError} With code `TRAEFIK_UNTRUSTED_PROXY_SOURCE`.
|
|
29
|
+
*/
|
|
30
|
+
export declare function assertTraefikProxyTrust(values: TraefikHelmValues): void;
|
|
31
|
+
/**
|
|
32
|
+
* Warnings for trusted ranges that are legal but very broad: an IPv4 prefix
|
|
33
|
+
* shorter than /8 or an IPv6 prefix shorter than /16.
|
|
34
|
+
*/
|
|
35
|
+
export declare function traefikBroadTrustWarnings(values: TraefikHelmValues): string[];
|
|
36
|
+
/** `schemaFieldValidations` refusing `/0` trusted ranges on a KRO instance. */
|
|
37
|
+
export declare function traefikProxyTrustSchemaFieldValidations(): Record<string, string>;
|
|
38
|
+
/**
|
|
39
|
+
* A `trustedIPs` value for the chart, holding a KRO schema reference to the
|
|
40
|
+
* entries that pass the strict format.
|
|
41
|
+
*
|
|
42
|
+
* Direct mode sees concrete lists, which the guard checks whole. In KRO mode
|
|
43
|
+
* the CRD refuses the same entries at admission; this filter is the second
|
|
44
|
+
* line of defence, keeping only entries that are one valid range (and, unless
|
|
45
|
+
* `allowAnySource`, not `/0`). A dropped entry narrows trust; it never widens it.
|
|
46
|
+
*/
|
|
47
|
+
export declare function traefikStrictTrustedIPs<T>(ranges: T, allowAnySource: boolean): T;
|
|
48
|
+
//# sourceMappingURL=proxy-trust.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy-trust.d.ts","sourceRoot":"","sources":["../../../../src/factories/traefik/utils/proxy-trust.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiDH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAOrD;;;;;;;;;GASG;AACH,eAAO,MAAM,mCAAmC,QAAwD,CAAC;AAkGzG;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAe3E;AAmRD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAavE;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,EAAE,CA6B7E;AAED,+EAA+E;AAC/E,wBAAgB,uCAAuC,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAIhF;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,cAAc,EAAE,OAAO,GAAG,CAAC,CAahF"}
|