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,18 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Traefik Helm values mapping.
|
|
3
|
-
*
|
|
4
|
-
* Turns the bootstrap composition's runtime spec into values for the official
|
|
5
|
-
* `traefik` chart 41.5.0, then applies the security pins from #172 LAST so no
|
|
6
|
-
* caller — not even the build-time `values` passthrough — can re-enable the
|
|
7
|
-
* dashboard or the insecure API.
|
|
8
|
-
*
|
|
9
|
-
* Every value produced here may be a schema reference in KRO mode. The mapping
|
|
10
|
-
* therefore never branches on a spec value; it only places values into the
|
|
11
|
-
* tree. Decisions about which configuration EXISTS live in
|
|
12
|
-
* {@link TraefikHelmValuesMapperOptions} and are concrete at build time.
|
|
13
|
-
*/
|
|
14
1
|
import type { RefOrValue } from '../../../core/types/references.js';
|
|
15
|
-
import type { TraefikBootstrapConfig, TraefikContainerSecurityContext, TraefikHelmValues, TraefikPodSecurityContext, TraefikRawHelmValues, TraefikServiceType } from '../types.js';
|
|
2
|
+
import type { TraefikAccessLogOptions, TraefikBootstrapConfig, TraefikContainerSecurityContext, TraefikHelmValues, TraefikLocalPluginDeclaration, TraefikPluginDeclaration, TraefikPodSecurityContext, TraefikRawHelmValues, TraefikServiceType } from '../types.js';
|
|
16
3
|
/**
|
|
17
4
|
* Pod-level security context Traefik runs with.
|
|
18
5
|
*
|
|
@@ -63,29 +50,7 @@ export declare const TRAEFIK_SECURITY_PINS: {
|
|
|
63
50
|
sendAnonymousUsage: false;
|
|
64
51
|
};
|
|
65
52
|
};
|
|
66
|
-
/**
|
|
67
|
-
* Values that hand ownership of the entrypoint Service to TypeKro.
|
|
68
|
-
*
|
|
69
|
-
* The chart would otherwise create the Service itself, and a composition can
|
|
70
|
-
* only project a resource's status if that resource is part of its graph.
|
|
71
|
-
* Observing the chart's Service instead made every fresh direct deployment fail
|
|
72
|
-
* before it started: the direct engine resolves external references BEFORE it
|
|
73
|
-
* applies anything, and a `404` on the not-yet-created Service is fatal.
|
|
74
|
-
*
|
|
75
|
-
* Three pins make the owned Service possible. Two are constants and live here;
|
|
76
|
-
* the third takes the release name, so {@link applyTraefikOwnershipPins} adds
|
|
77
|
-
* it.
|
|
78
|
-
*
|
|
79
|
-
* - `service.enabled: false` — the chart skips its whole Service template.
|
|
80
|
-
* - `nameOverride` — fixes the chart's `app.kubernetes.io/name` pod label.
|
|
81
|
-
* - `instanceLabelOverride` — fixes `app.kubernetes.io/instance`, which the
|
|
82
|
-
* chart otherwise derives from the Helm release name. `traefikHelmRelease`
|
|
83
|
-
* pins `spec.releaseName` to the same name, so the two agree; the pin keeps
|
|
84
|
-
* the selector exact even if a release ever arrives under another name.
|
|
85
|
-
*
|
|
86
|
-
* Together those two labels are exactly the chart's own pod selector, so the
|
|
87
|
-
* owned Service front-ends the same pods the chart's Service would have.
|
|
88
|
-
*/
|
|
53
|
+
/** Values that hand ownership of the entrypoint Service to TypeKro. */
|
|
89
54
|
export declare const TRAEFIK_OWNERSHIP_PINS: {
|
|
90
55
|
service: {
|
|
91
56
|
enabled: false;
|
|
@@ -101,10 +66,21 @@ export interface TraefikHelmValuesMapperOptions {
|
|
|
101
66
|
* boundary is {@link TraefikRawHelmValues} rather than the managed type.
|
|
102
67
|
*/
|
|
103
68
|
readonly baseValues?: TraefikRawHelmValues;
|
|
69
|
+
/** Access-log field and header policy. */
|
|
70
|
+
readonly accessLog?: TraefikAccessLogOptions;
|
|
71
|
+
/** Registry plugins; see `TraefikBootstrapBuildOptions.plugins`. */
|
|
72
|
+
readonly plugins?: Readonly<Record<string, TraefikPluginDeclaration>>;
|
|
73
|
+
readonly localPlugins?: Readonly<Record<string, TraefikLocalPluginDeclaration>>;
|
|
74
|
+
/** @default true when any plugin is declared */
|
|
75
|
+
readonly abortOnPluginFailure?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Skip the check that refuses `/0` trusted ranges and `insecure` proxy trust.
|
|
78
|
+
* @default false
|
|
79
|
+
*/
|
|
80
|
+
readonly dangerouslyTrustAnySource?: boolean;
|
|
104
81
|
/**
|
|
105
|
-
* Emit a permanent `web` → `websecure` redirect
|
|
106
|
-
*
|
|
107
|
-
* structural rather than a value. @default true
|
|
82
|
+
* Emit a permanent `web` → `websecure` redirect that leaves
|
|
83
|
+
* `/.well-known/acme-challenge/` unredirected. @default true
|
|
108
84
|
*/
|
|
109
85
|
readonly redirectWebToWebsecure?: boolean;
|
|
110
86
|
/**
|
|
@@ -149,6 +125,18 @@ export declare function applyTraefikOwnershipPins(values: TraefikHelmValues, ins
|
|
|
149
125
|
* @param config - The bootstrap spec. `service.type` may be a schema reference.
|
|
150
126
|
*/
|
|
151
127
|
export declare function traefikEntrypointServiceType(config: TraefikBootstrapConfig): TraefikServiceType;
|
|
128
|
+
/**
|
|
129
|
+
* Load-balancer fields of the owned entrypoint Service, each only when the spec sets it.
|
|
130
|
+
*
|
|
131
|
+
* The API server refuses `externalTrafficPolicy` on a ClusterIP Service and an
|
|
132
|
+
* empty `loadBalancerClass` anywhere. In KRO mode the spec is a proxy, so every
|
|
133
|
+
* field is emitted and serialization guards it with `omit()`.
|
|
134
|
+
*/
|
|
135
|
+
export declare function traefikEntrypointServiceLoadBalancer(config: TraefikBootstrapConfig): {
|
|
136
|
+
loadBalancerClass?: string;
|
|
137
|
+
externalTrafficPolicy?: 'Cluster' | 'Local';
|
|
138
|
+
loadBalancerSourceRanges?: string[];
|
|
139
|
+
};
|
|
152
140
|
/**
|
|
153
141
|
* Map the bootstrap runtime spec onto official-chart values.
|
|
154
142
|
*
|
|
@@ -175,6 +163,8 @@ export interface TraefikHelmValuesValidationContext {
|
|
|
175
163
|
* entrypoint Service is a TypeKro-owned resource, not a chart value.
|
|
176
164
|
*/
|
|
177
165
|
readonly serviceType?: TraefikServiceType;
|
|
166
|
+
/** Annotations on the owned Service, e.g. from `awsNlbServiceAnnotations`. */
|
|
167
|
+
readonly serviceAnnotations?: Readonly<Record<string, string>>;
|
|
178
168
|
}
|
|
179
169
|
/**
|
|
180
170
|
* Report configuration that is legal but likely a mistake at an edge.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helm-values-mapper.d.ts","sourceRoot":"","sources":["../../../../src/factories/traefik/utils/helm-values-mapper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helm-values-mapper.d.ts","sourceRoot":"","sources":["../../../../src/factories/traefik/utils/helm-values-mapper.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AA0BpE,OAAO,KAAK,EACV,uBAAuB,EACvB,sBAAsB,EACtB,+BAA+B,EAC/B,iBAAiB,EACjB,6BAA6B,EAE7B,wBAAwB,EACxB,yBAAyB,EAEzB,oBAAoB,EACpB,kBAAkB,EAEnB,MAAM,aAAa,CAAC;AAErB;;;;;;;;;GASG;AACH,eAAO,MAAM,4BAA4B,EAAE,yBAK1C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kCAAkC,EAAE,+BAIhD,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;CAME,CAAC;AAqBrC,uEAAuE;AACvE,eAAO,MAAM,sBAAsB;;;;;CAGC,CAAC;AAErC,iFAAiF;AACjF,MAAM,WAAW,8BAA8B;IAC7C;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAC3C,0CAA0C;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,uBAAuB,CAAC;IAC7C,oEAAoE;IACpE,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAC;IACtE,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC,CAAC;IAChF,gDAAgD;IAChD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAC7C;;;OAGG;IAKH,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAC1C;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;CAC/C;AA2CD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,CAarF;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,iBAAiB,EACzB,aAAa,EAAE,UAAU,CAAC,MAAM,CAAC,GAChC,iBAAiB,CAOnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,sBAAsB,GAAG,kBAAkB,CAE/F;AAED;;;;;;GAMG;AACH,wBAAgB,oCAAoC,CAAC,MAAM,EAAE,sBAAsB,GAAG;IACpF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5C,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;CACrC,CAaA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,sBAAsB,EAC9B,OAAO,GAAE,8BAAmC,GAC3C,iBAAiB,CAuOnB;AAgJD,sFAAsF;AACtF,MAAM,WAAW,kCAAkC;IACjD;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IAC1C,8EAA8E;IAC9E,QAAQ,CAAC,kBAAkB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAChE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE,kCAAuC,GAC/C,MAAM,EAAE,CAwFV;AAeD;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,WAAgC,CAAC"}
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
* {@link TraefikHelmValuesMapperOptions} and are concrete at build time.
|
|
13
|
-
*/
|
|
1
|
+
// Traefik Helm values mapping.
|
|
2
|
+
//
|
|
3
|
+
// Turns the bootstrap composition's runtime spec into values for the official
|
|
4
|
+
// `traefik` chart 41.5.0, then applies the security pins from #172 LAST so no
|
|
5
|
+
// caller — not even the build-time `values` passthrough — can re-enable the
|
|
6
|
+
// dashboard or the insecure API.
|
|
7
|
+
//
|
|
8
|
+
// Every value produced here may be a schema reference in KRO mode. The mapping
|
|
9
|
+
// therefore never branches on a spec value; it only places values into the
|
|
10
|
+
// tree. Decisions about which configuration EXISTS live in
|
|
11
|
+
// {@link TraefikHelmValuesMapperOptions} and are concrete at build time.
|
|
14
12
|
import { Cel } from '../../../core/references/cel.js';
|
|
15
13
|
import { isCelExpression, isKubernetesRef } from '../../../utils/type-guards.js';
|
|
16
|
-
import { DEFAULT_TRAEFIK_CHART_VERSION, DEFAULT_TRAEFIK_INGRESS_CLASS, DEFAULT_TRAEFIK_NAMESPACE, DEFAULT_TRAEFIK_WEB_PORT, DEFAULT_TRAEFIK_WEBSECURE_PORT, TRAEFIK_POD_NAME_LABEL_VALUE, TRAEFIK_WEBSECURE_ENTRYPOINT, } from '../constants.js';
|
|
14
|
+
import { DEFAULT_TRAEFIK_CHART_VERSION, DEFAULT_TRAEFIK_INGRESS_CLASS, DEFAULT_TRAEFIK_METRICS_PORT, DEFAULT_TRAEFIK_TERMINATION_GRACE_SECONDS, DEFAULT_TRAEFIK_NAMESPACE, DEFAULT_TRAEFIK_WEB_PORT, DEFAULT_TRAEFIK_WEBSECURE_PORT, TRAEFIK_METRICS_ENTRYPOINT, TRAEFIK_POD_NAME_LABEL_VALUE, TRAEFIK_WEB_ENTRYPOINT, TRAEFIK_WEBSECURE_ENTRYPOINT, } from '../constants.js';
|
|
15
|
+
import { traefikAccessLogFields } from './access-log.js';
|
|
16
|
+
import { assertTraefikPlugins, traefikLocalPluginMountPath, traefikRawVolumeNames, } from './plugins.js';
|
|
17
|
+
import { assertTraefikProxyTrust, traefikBroadTrustWarnings, traefikStrictTrustedIPs, } from './proxy-trust.js';
|
|
17
18
|
/**
|
|
18
19
|
* Pod-level security context Traefik runs with.
|
|
19
20
|
*
|
|
@@ -59,29 +60,26 @@ export const TRAEFIK_SECURITY_PINS = {
|
|
|
59
60
|
securityContext: TRAEFIK_CONTAINER_SECURITY_CONTEXT,
|
|
60
61
|
global: { checkNewVersion: false, sendAnonymousUsage: false },
|
|
61
62
|
};
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
* Together those two labels are exactly the chart's own pod selector, so the
|
|
83
|
-
* owned Service front-ends the same pods the chart's Service would have.
|
|
84
|
-
*/
|
|
63
|
+
// The chart would otherwise create the Service itself, and a composition can
|
|
64
|
+
// only project a resource's status if that resource is part of its graph.
|
|
65
|
+
// Observing the chart's Service instead made every fresh direct deployment fail
|
|
66
|
+
// before it started: the direct engine resolves external references BEFORE it
|
|
67
|
+
// applies anything, and a `404` on the not-yet-created Service is fatal.
|
|
68
|
+
//
|
|
69
|
+
// Three pins make the owned Service possible. Two are constants and live here;
|
|
70
|
+
// the third takes the release name, so {@link applyTraefikOwnershipPins} adds
|
|
71
|
+
// it.
|
|
72
|
+
//
|
|
73
|
+
// - `service.enabled: false` — the chart skips its whole Service template.
|
|
74
|
+
// - `nameOverride` — fixes the chart's `app.kubernetes.io/name` pod label.
|
|
75
|
+
// - `instanceLabelOverride` — fixes `app.kubernetes.io/instance`, which the
|
|
76
|
+
// chart otherwise derives from the Helm release name. `traefikHelmRelease`
|
|
77
|
+
// pins `spec.releaseName` to the same name, so the two agree; the pin keeps
|
|
78
|
+
// the selector exact even if a release ever arrives under another name.
|
|
79
|
+
//
|
|
80
|
+
// Together those two labels are exactly the chart's own pod selector, so the
|
|
81
|
+
// owned Service front-ends the same pods the chart's Service would have.
|
|
82
|
+
/** Values that hand ownership of the entrypoint Service to TypeKro. */
|
|
85
83
|
export const TRAEFIK_OWNERSHIP_PINS = {
|
|
86
84
|
service: { enabled: false },
|
|
87
85
|
nameOverride: TRAEFIK_POD_NAME_LABEL_VALUE,
|
|
@@ -100,6 +98,10 @@ function isGraphValue(value) {
|
|
|
100
98
|
function isPlainObject(value) {
|
|
101
99
|
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
102
100
|
}
|
|
101
|
+
/** A raw-values section as an object, or `{}` when it is absent or not an object. */
|
|
102
|
+
function sectionOf(value) {
|
|
103
|
+
return isPlainObject(value) && !isGraphValue(value) ? value : {};
|
|
104
|
+
}
|
|
103
105
|
/**
|
|
104
106
|
* Merge `override` onto `base` one level deep.
|
|
105
107
|
*
|
|
@@ -167,6 +169,27 @@ export function applyTraefikOwnershipPins(values, instanceLabel) {
|
|
|
167
169
|
export function traefikEntrypointServiceType(config) {
|
|
168
170
|
return Cel.default(config.service?.type, 'LoadBalancer');
|
|
169
171
|
}
|
|
172
|
+
/**
|
|
173
|
+
* Load-balancer fields of the owned entrypoint Service, each only when the spec sets it.
|
|
174
|
+
*
|
|
175
|
+
* The API server refuses `externalTrafficPolicy` on a ClusterIP Service and an
|
|
176
|
+
* empty `loadBalancerClass` anywhere. In KRO mode the spec is a proxy, so every
|
|
177
|
+
* field is emitted and serialization guards it with `omit()`.
|
|
178
|
+
*/
|
|
179
|
+
export function traefikEntrypointServiceLoadBalancer(config) {
|
|
180
|
+
const service = config.service;
|
|
181
|
+
return {
|
|
182
|
+
...(service?.loadBalancerClass !== undefined && {
|
|
183
|
+
loadBalancerClass: service.loadBalancerClass,
|
|
184
|
+
}),
|
|
185
|
+
...(service?.externalTrafficPolicy !== undefined && {
|
|
186
|
+
externalTrafficPolicy: service.externalTrafficPolicy,
|
|
187
|
+
}),
|
|
188
|
+
...(service?.loadBalancerSourceRanges !== undefined && {
|
|
189
|
+
loadBalancerSourceRanges: service.loadBalancerSourceRanges,
|
|
190
|
+
}),
|
|
191
|
+
};
|
|
192
|
+
}
|
|
170
193
|
/**
|
|
171
194
|
* Map the bootstrap runtime spec onto official-chart values.
|
|
172
195
|
*
|
|
@@ -192,6 +215,8 @@ export function mapTraefikConfigToHelmValues(config, options = {}) {
|
|
|
192
215
|
// making direct and KRO deployments disagree.
|
|
193
216
|
const ingressClass = Cel.default(config.ingressClass, DEFAULT_TRAEFIK_INGRESS_CLASS);
|
|
194
217
|
const redirect = options.redirectWebToWebsecure ?? true;
|
|
218
|
+
// Concrete at build time, so the mapper may ask what it contains.
|
|
219
|
+
const base = options.baseValues ?? {};
|
|
195
220
|
// OTLP is enabled by the PRESENCE of an endpoint. In KRO mode the endpoint is
|
|
196
221
|
// a schema reference, so the enablement has to be a CEL comparison — a
|
|
197
222
|
// JavaScript truthiness test on a proxy is always true. With a concrete spec
|
|
@@ -216,9 +241,29 @@ export function mapTraefikConfigToHelmValues(config, options = {}) {
|
|
|
216
241
|
const webPort = {
|
|
217
242
|
exposedPort: Cel.default(config.entrypoints?.web?.exposedPort, DEFAULT_TRAEFIK_WEB_PORT),
|
|
218
243
|
expose: { default: true },
|
|
244
|
+
...entrypointTrust(config.entrypoints?.web, options.dangerouslyTrustAnySource ?? false),
|
|
245
|
+
transport: { lifeCycle: entrypointLifecycle(config.entrypoints?.web) },
|
|
219
246
|
...(redirect
|
|
220
247
|
? {
|
|
248
|
+
// The redirect router Traefik generates for an entrypoint redirection
|
|
249
|
+
// has priority `MaxInt - 1`, so it outranks every other router on
|
|
250
|
+
// `web` — including the one cert-manager's HTTP-01 solver creates for
|
|
251
|
+
// `/.well-known/acme-challenge/<token>`. The challenge would then be
|
|
252
|
+
// answered with a 301 to `websecure`, where no solver route exists.
|
|
253
|
+
//
|
|
254
|
+
// `allowACMEByPass` is Traefik's own fix (v3, `pkg/provider/traefik/
|
|
255
|
+
// internal.go`): the generated redirect rule becomes
|
|
256
|
+
// ``HostRegexp(`^.+$`) && !PathPrefix(`/.well-known/acme-challenge/`)``,
|
|
257
|
+
// so ONLY the challenge path falls through to the routers on `web`.
|
|
258
|
+
//
|
|
259
|
+
// Lowering the redirect's priority instead would have been wrong: a
|
|
260
|
+
// router that names no entrypoint attaches to every entrypoint, so a
|
|
261
|
+
// low-priority redirect would serve every such route over plain HTTP
|
|
262
|
+
// rather than redirecting it. Excluding the one path keeps everything
|
|
263
|
+
// else redirected.
|
|
264
|
+
allowACMEByPass: true,
|
|
221
265
|
http: {
|
|
266
|
+
aliasHeadersStrategy: aliasStrategy(config.entrypoints?.web),
|
|
222
267
|
redirections: {
|
|
223
268
|
entryPoint: {
|
|
224
269
|
to: TRAEFIK_WEBSECURE_ENTRYPOINT,
|
|
@@ -228,14 +273,18 @@ export function mapTraefikConfigToHelmValues(config, options = {}) {
|
|
|
228
273
|
},
|
|
229
274
|
},
|
|
230
275
|
}
|
|
231
|
-
: {}),
|
|
276
|
+
: { http: { aliasHeadersStrategy: aliasStrategy(config.entrypoints?.web) } }),
|
|
232
277
|
};
|
|
233
278
|
const websecurePort = {
|
|
234
279
|
exposedPort: Cel.default(config.entrypoints?.websecure?.exposedPort, DEFAULT_TRAEFIK_WEBSECURE_PORT),
|
|
235
280
|
expose: { default: true },
|
|
281
|
+
...entrypointTrust(config.entrypoints?.websecure, options.dangerouslyTrustAnySource ?? false),
|
|
236
282
|
// TLS lives under `http` in chart 41.5.0 — `ports.websecure.tls` is
|
|
237
283
|
// rejected outright by the chart's values.schema.json.
|
|
238
|
-
http: {
|
|
284
|
+
http: {
|
|
285
|
+
tls: { enabled: true },
|
|
286
|
+
aliasHeadersStrategy: aliasStrategy(config.entrypoints?.websecure),
|
|
287
|
+
},
|
|
239
288
|
// An edge fronting requests longer than Traefik's 60s default must raise
|
|
240
289
|
// the responding timeouts here as well as the upstream ServersTransport.
|
|
241
290
|
transport: {
|
|
@@ -244,6 +293,7 @@ export function mapTraefikConfigToHelmValues(config, options = {}) {
|
|
|
244
293
|
writeTimeout: Cel.default(config.entrypoints?.websecure?.writeTimeout, '90s'),
|
|
245
294
|
idleTimeout: Cel.default(config.entrypoints?.websecure?.idleTimeout, '180s'),
|
|
246
295
|
},
|
|
296
|
+
lifeCycle: entrypointLifecycle(config.entrypoints?.websecure),
|
|
247
297
|
},
|
|
248
298
|
};
|
|
249
299
|
const mapped = {
|
|
@@ -252,7 +302,33 @@ export function mapTraefikConfigToHelmValues(config, options = {}) {
|
|
|
252
302
|
// Deployment — and of the Service the chart's Ingress `publishedService`
|
|
253
303
|
// path points at, which must match the Service this factory owns.
|
|
254
304
|
fullnameOverride: config.name,
|
|
255
|
-
deployment: {
|
|
305
|
+
deployment: {
|
|
306
|
+
replicas: Cel.default(config.replicas, 2),
|
|
307
|
+
// Covers both entrypoints' default grace (10s accept + 30s drain).
|
|
308
|
+
terminationGracePeriodSeconds: Cel.default(config.terminationGracePeriodSeconds, sectionOf(base.deployment).terminationGracePeriodSeconds ??
|
|
309
|
+
DEFAULT_TRAEFIK_TERMINATION_GRACE_SECONDS),
|
|
310
|
+
},
|
|
311
|
+
// A PDB by default: without one a node drain can evict every replica at
|
|
312
|
+
// once. `maxUnavailable: 1` never blocks a drain, even at one replica. A
|
|
313
|
+
// `podDisruptionBudget` in the raw values owns the section instead, because
|
|
314
|
+
// merging the two could set `minAvailable` and `maxUnavailable` together,
|
|
315
|
+
// which the API server rejects.
|
|
316
|
+
...(base.podDisruptionBudget === undefined && {
|
|
317
|
+
podDisruptionBudget: {
|
|
318
|
+
enabled: Cel.default(config.podDisruptionBudget?.enabled, true),
|
|
319
|
+
maxUnavailable: Cel.default(config.podDisruptionBudget?.maxUnavailable, 1),
|
|
320
|
+
},
|
|
321
|
+
}),
|
|
322
|
+
// The spec wins, then the raw values, then nothing. Placing a spec field
|
|
323
|
+
// alone would drop a raw value in KRO mode, where the key is always
|
|
324
|
+
// emitted and `omit()` removes it when the spec is silent.
|
|
325
|
+
...specOverBase('nodeSelector', config.scheduling?.nodeSelector, base),
|
|
326
|
+
...specOverBase('tolerations', config.scheduling?.tolerations, base),
|
|
327
|
+
...specOverBase('priorityClassName', config.scheduling?.priorityClassName, base),
|
|
328
|
+
// Raw `topologySpreadConstraints` replace the default spread.
|
|
329
|
+
...(base.topologySpreadConstraints === undefined && {
|
|
330
|
+
topologySpreadConstraints: traefikTopologySpread(config),
|
|
331
|
+
}),
|
|
256
332
|
ingressClass: {
|
|
257
333
|
enabled: true,
|
|
258
334
|
// Claiming the cluster-default IngressClass would silently capture every
|
|
@@ -264,9 +340,18 @@ export function mapTraefikConfigToHelmValues(config, options = {}) {
|
|
|
264
340
|
kubernetesCRD: {
|
|
265
341
|
enabled: Cel.default(config.providers?.crd, true),
|
|
266
342
|
ingressClass,
|
|
343
|
+
allowEmptyServices: Cel.default(config.providers?.allowEmptyServices, true),
|
|
344
|
+
allowCrossNamespace: Cel.default(config.providers?.allowCrossNamespace, false),
|
|
345
|
+
...(config.providers?.namespaces !== undefined && {
|
|
346
|
+
namespaces: config.providers.namespaces,
|
|
347
|
+
}),
|
|
267
348
|
},
|
|
268
349
|
kubernetesIngress: {
|
|
269
350
|
enabled: Cel.default(config.providers?.kubernetesIngress, false),
|
|
351
|
+
allowEmptyServices: Cel.default(config.providers?.allowEmptyServices, true),
|
|
352
|
+
...(config.providers?.namespaces !== undefined && {
|
|
353
|
+
namespaces: config.providers.namespaces,
|
|
354
|
+
}),
|
|
270
355
|
// The chart emits `--providers.kubernetesingress.ingressendpoint.
|
|
271
356
|
// publishedservice` only when it created the Service itself, or when a
|
|
272
357
|
// pathOverride names one. This factory owns the Service, so the
|
|
@@ -289,8 +374,18 @@ export function mapTraefikConfigToHelmValues(config, options = {}) {
|
|
|
289
374
|
// Health and metrics traffic on the internal entrypoint would otherwise
|
|
290
375
|
// dominate the access log.
|
|
291
376
|
addInternals: false,
|
|
377
|
+
fields: traefikAccessLogFields(options.accessLog),
|
|
292
378
|
},
|
|
293
379
|
metrics: {
|
|
380
|
+
// @security Prometheus is served on the internal `metrics` entrypoint,
|
|
381
|
+
// which the owned Service never publishes and `ports.metrics` below keeps
|
|
382
|
+
// unexposed. Other Prometheus settings (labels, the chart's metrics
|
|
383
|
+
// Service, a ServiceMonitor) are chart surface for the raw values, which
|
|
384
|
+
// this keeps rather than replaces.
|
|
385
|
+
prometheus: {
|
|
386
|
+
...sectionOf(sectionOf(base.metrics).prometheus),
|
|
387
|
+
entryPoint: TRAEFIK_METRICS_ENTRYPOINT,
|
|
388
|
+
},
|
|
294
389
|
otlp: {
|
|
295
390
|
enabled: otlpEnabled,
|
|
296
391
|
grpc: { enabled: otlpEnabled, endpoint: otlpEndpoint, insecure: otlpInsecure },
|
|
@@ -309,6 +404,11 @@ export function mapTraefikConfigToHelmValues(config, options = {}) {
|
|
|
309
404
|
// @security The internal entrypoint serves /ping, metrics and the (pinned
|
|
310
405
|
// off) dashboard. It must never be published by the Service.
|
|
311
406
|
traefik: { expose: { default: false } },
|
|
407
|
+
[TRAEFIK_METRICS_ENTRYPOINT]: {
|
|
408
|
+
...sectionOf(sectionOf(base.ports)[TRAEFIK_METRICS_ENTRYPOINT]),
|
|
409
|
+
port: DEFAULT_TRAEFIK_METRICS_PORT,
|
|
410
|
+
expose: { default: false },
|
|
411
|
+
},
|
|
312
412
|
},
|
|
313
413
|
// No `service` section: the entrypoint Service — its type, annotations and
|
|
314
414
|
// published ports — is a resource this factory owns, not a chart value.
|
|
@@ -317,8 +417,132 @@ export function mapTraefikConfigToHelmValues(config, options = {}) {
|
|
|
317
417
|
limits: { cpu: '1', memory: '512Mi' },
|
|
318
418
|
},
|
|
319
419
|
};
|
|
420
|
+
const experimental = pluginValues(options, base);
|
|
421
|
+
if (experimental)
|
|
422
|
+
mapped.experimental = experimental;
|
|
320
423
|
const merged = mergeSections(options.baseValues ?? {}, mapped);
|
|
321
|
-
|
|
424
|
+
const pinned = applyTraefikSecurityPins(applyTraefikOwnershipPins(merged, config.name));
|
|
425
|
+
if (!options.dangerouslyTrustAnySource)
|
|
426
|
+
assertTraefikProxyTrust(pinned);
|
|
427
|
+
return pinned;
|
|
428
|
+
}
|
|
429
|
+
/**
|
|
430
|
+
* The `experimental` plugin section, or `undefined` when no plugin is declared.
|
|
431
|
+
*
|
|
432
|
+
* Raw-values plugins are kept beside the typed ones; `validateTraefikHelmValues`
|
|
433
|
+
* warns about any that carry no hash.
|
|
434
|
+
*/
|
|
435
|
+
function pluginValues(options, base) {
|
|
436
|
+
const plugins = options.plugins ?? {};
|
|
437
|
+
const localPlugins = options.localPlugins ?? {};
|
|
438
|
+
if (Object.keys(plugins).length === 0 && Object.keys(localPlugins).length === 0) {
|
|
439
|
+
return undefined;
|
|
440
|
+
}
|
|
441
|
+
assertTraefikPlugins(plugins, localPlugins, traefikRawVolumeNames(base));
|
|
442
|
+
const baseExperimental = sectionOf(base.experimental);
|
|
443
|
+
return {
|
|
444
|
+
plugins: {
|
|
445
|
+
...sectionOf(baseExperimental.plugins),
|
|
446
|
+
...Object.fromEntries(Object.entries(plugins).map(([name, { moduleName, version, hash }]) => [
|
|
447
|
+
name,
|
|
448
|
+
{ moduleName, version, hash },
|
|
449
|
+
])),
|
|
450
|
+
},
|
|
451
|
+
localPlugins: {
|
|
452
|
+
...sectionOf(baseExperimental.localPlugins),
|
|
453
|
+
...Object.fromEntries(Object.entries(localPlugins).map(([name, plugin]) => [
|
|
454
|
+
name,
|
|
455
|
+
{ ...plugin, mountPath: traefikLocalPluginMountPath(plugin.moduleName) },
|
|
456
|
+
])),
|
|
457
|
+
},
|
|
458
|
+
// A security plugin that silently fails to load leaves its routes
|
|
459
|
+
// unprotected. Refusing to start keeps the previous replicas serving.
|
|
460
|
+
abortOnPluginFailure: options.abortOnPluginFailure ?? true,
|
|
461
|
+
};
|
|
462
|
+
}
|
|
463
|
+
/**
|
|
464
|
+
* A top-level value from the spec, falling back to the same key in the raw values.
|
|
465
|
+
*
|
|
466
|
+
* Emits nothing when the spec is concretely unset and the raw values do not
|
|
467
|
+
* set the key either.
|
|
468
|
+
*/
|
|
469
|
+
function specOverBase(key, specValue, base) {
|
|
470
|
+
if (specValue === undefined)
|
|
471
|
+
return {};
|
|
472
|
+
const baseValue = base[key];
|
|
473
|
+
return {
|
|
474
|
+
[key]: baseValue === undefined
|
|
475
|
+
? specValue
|
|
476
|
+
: Cel.default(specValue, baseValue),
|
|
477
|
+
};
|
|
478
|
+
}
|
|
479
|
+
/**
|
|
480
|
+
* What one entrypoint does with headers whose names alias another, `delete`
|
|
481
|
+
* by default. See `traefikEntrypointAliasShape` in `types.ts`.
|
|
482
|
+
*/
|
|
483
|
+
function aliasStrategy(entrypoint) {
|
|
484
|
+
return Cel.default(entrypoint?.aliasHeadersStrategy, 'delete');
|
|
485
|
+
}
|
|
486
|
+
/** Shutdown timing of one entrypoint, with the edge defaults. */
|
|
487
|
+
function entrypointLifecycle(entrypoint) {
|
|
488
|
+
return {
|
|
489
|
+
requestAcceptGraceTimeout: Cel.default(entrypoint?.requestAcceptGraceTimeout, '10s'),
|
|
490
|
+
graceTimeOut: Cel.default(entrypoint?.graceTimeOut, '30s'),
|
|
491
|
+
};
|
|
492
|
+
}
|
|
493
|
+
/**
|
|
494
|
+
* Soft zone and node spread for the Traefik pods.
|
|
495
|
+
*
|
|
496
|
+
* The selector is the chart's own pod selector, which the ownership pins make
|
|
497
|
+
* exact: `nameOverride` and `instanceLabelOverride` (= `config.name`).
|
|
498
|
+
*/
|
|
499
|
+
function traefikTopologySpread(config) {
|
|
500
|
+
const labelSelector = {
|
|
501
|
+
matchLabels: {
|
|
502
|
+
'app.kubernetes.io/name': TRAEFIK_POD_NAME_LABEL_VALUE,
|
|
503
|
+
'app.kubernetes.io/instance': config.name,
|
|
504
|
+
},
|
|
505
|
+
};
|
|
506
|
+
// Count skew per ReplicaSet, so a rolling update spreads the new pods
|
|
507
|
+
// instead of balancing them against the old ones it is about to delete.
|
|
508
|
+
const matchLabelKeys = ['pod-template-hash'];
|
|
509
|
+
return [
|
|
510
|
+
{
|
|
511
|
+
maxSkew: 1,
|
|
512
|
+
topologyKey: 'topology.kubernetes.io/zone',
|
|
513
|
+
whenUnsatisfiable: Cel.default(config.scheduling?.zoneSpread, 'ScheduleAnyway'),
|
|
514
|
+
labelSelector,
|
|
515
|
+
matchLabelKeys,
|
|
516
|
+
},
|
|
517
|
+
{
|
|
518
|
+
maxSkew: 1,
|
|
519
|
+
topologyKey: 'kubernetes.io/hostname',
|
|
520
|
+
whenUnsatisfiable: Cel.default(config.scheduling?.nodeSpread, 'ScheduleAnyway'),
|
|
521
|
+
labelSelector,
|
|
522
|
+
matchLabelKeys,
|
|
523
|
+
},
|
|
524
|
+
];
|
|
525
|
+
}
|
|
526
|
+
/**
|
|
527
|
+
* The PROXY protocol and forwarded-header trust of one entrypoint.
|
|
528
|
+
*
|
|
529
|
+
* A block is emitted only when the spec carries it. In KRO mode the spec is a
|
|
530
|
+
* schema proxy, so the block is always emitted and its `trustedIPs` reference
|
|
531
|
+
* is wrapped in `has() ? ... : omit()` by serialization.
|
|
532
|
+
*/
|
|
533
|
+
function entrypointTrust(entrypoint, allowAnySource) {
|
|
534
|
+
return {
|
|
535
|
+
...(entrypoint?.proxyProtocol !== undefined && {
|
|
536
|
+
proxyProtocol: {
|
|
537
|
+
trustedIPs: traefikStrictTrustedIPs(entrypoint.proxyProtocol.trustedIPs, allowAnySource),
|
|
538
|
+
},
|
|
539
|
+
}),
|
|
540
|
+
...(entrypoint?.forwardedHeaders !== undefined && {
|
|
541
|
+
forwardedHeaders: {
|
|
542
|
+
trustedIPs: traefikStrictTrustedIPs(entrypoint.forwardedHeaders.trustedIPs, allowAnySource),
|
|
543
|
+
},
|
|
544
|
+
}),
|
|
545
|
+
};
|
|
322
546
|
}
|
|
323
547
|
/**
|
|
324
548
|
* Report configuration that is legal but likely a mistake at an edge.
|
|
@@ -357,11 +581,54 @@ export function validateTraefikHelmValues(values, context = {}) {
|
|
|
357
581
|
if (!values.resources?.requests) {
|
|
358
582
|
warnings.push('No resource requests specified for Traefik. Set CPU and memory requests so the edge is not evicted first under pressure.');
|
|
359
583
|
}
|
|
584
|
+
// An NLB with PROXY protocol prepends a header to every connection, health
|
|
585
|
+
// checks included. An entrypoint that does not expect it parses the header
|
|
586
|
+
// as the start of a TLS handshake or HTTP request and drops the connection.
|
|
587
|
+
if (context.serviceAnnotations?.['service.beta.kubernetes.io/aws-load-balancer-proxy-protocol'] !==
|
|
588
|
+
undefined) {
|
|
589
|
+
for (const name of [TRAEFIK_WEB_ENTRYPOINT, TRAEFIK_WEBSECURE_ENTRYPOINT]) {
|
|
590
|
+
if (!values.ports?.[name]?.proxyProtocol?.trustedIPs) {
|
|
591
|
+
warnings.push(`The load balancer sends PROXY protocol headers, but the \`${name}\` entrypoint has no proxyProtocol.trustedIPs. Every connection to it will fail; set entrypoints.${name}.proxyProtocol.trustedIPs to the load balancer's source ranges.`);
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
warnings.push(...traefikBroadTrustWarnings(values));
|
|
596
|
+
// Kubernetes kills the pod at terminationGracePeriodSeconds, whatever
|
|
597
|
+
// Traefik is still draining.
|
|
598
|
+
const terminationGrace = values.deployment?.terminationGracePeriodSeconds;
|
|
599
|
+
if (typeof terminationGrace === 'number') {
|
|
600
|
+
for (const [name, port] of Object.entries(values.ports ?? {})) {
|
|
601
|
+
const lifeCycle = port?.transport?.lifeCycle;
|
|
602
|
+
const accept = durationSeconds(lifeCycle?.requestAcceptGraceTimeout);
|
|
603
|
+
const drain = durationSeconds(lifeCycle?.graceTimeOut);
|
|
604
|
+
if (accept !== undefined && drain !== undefined && accept + drain >= terminationGrace) {
|
|
605
|
+
warnings.push(`The \`${name}\` entrypoint needs ${accept + drain}s to shut down (requestAcceptGraceTimeout + graceTimeOut), but terminationGracePeriodSeconds is ${terminationGrace}. Kubernetes will kill Traefik before in-flight requests finish.`);
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
}
|
|
609
|
+
for (const [name, plugin] of Object.entries(values.experimental?.plugins ?? {})) {
|
|
610
|
+
if (isPlainObject(plugin) && typeof plugin.hash !== 'string') {
|
|
611
|
+
warnings.push(`Traefik plugin ${name} has no hash, so Traefik runs whatever archive the registry serves for its version. Declare it through the plugins build option, which requires one.`);
|
|
612
|
+
}
|
|
613
|
+
}
|
|
360
614
|
if (values.ports?.traefik?.expose?.default === true) {
|
|
361
615
|
warnings.push('The internal `traefik` entrypoint is exposed by the Service. It serves /ping and metrics and should stay cluster-internal.');
|
|
362
616
|
}
|
|
363
617
|
return warnings;
|
|
364
618
|
}
|
|
619
|
+
/** Seconds in a concrete Go duration or nanosecond count; `undefined` for a reference. */
|
|
620
|
+
function durationSeconds(value) {
|
|
621
|
+
if (typeof value === 'number')
|
|
622
|
+
return value / 1e9;
|
|
623
|
+
if (typeof value !== 'string' || !/^(\d+(\.\d+)?(ns|us|ms|s|m|h))+$/.test(value))
|
|
624
|
+
return undefined;
|
|
625
|
+
const unit = { ns: 1e-9, us: 1e-6, ms: 1e-3, s: 1, m: 60, h: 3600 };
|
|
626
|
+
let total = 0;
|
|
627
|
+
for (const [, amount, , suffix] of value.matchAll(/(\d+(\.\d+)?)(ns|us|ms|s|m|h)/g)) {
|
|
628
|
+
total += Number(amount) * (unit[suffix] ?? 0);
|
|
629
|
+
}
|
|
630
|
+
return total;
|
|
631
|
+
}
|
|
365
632
|
/**
|
|
366
633
|
* The chart version this factory is verified against.
|
|
367
634
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helm-values-mapper.js","sourceRoot":"","sources":["../../../../src/factories/traefik/utils/helm-values-mapper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helm-values-mapper.js","sourceRoot":"","sources":["../../../../src/factories/traefik/utils/helm-values-mapper.ts"],"names":[],"mappings":"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"}
|