typekro 0.44.1 → 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/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,38 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `traefikBootstrap` — the composition that stands Traefik up as a cluster edge.
|
|
3
|
-
*
|
|
4
|
-
* It owns the whole install: the (optional) namespace, the Flux `HelmRelease`,
|
|
5
|
-
* the entrypoint `Service`, and optionally the cluster-default
|
|
6
|
-
* `TLSOption`/`TLSStore`. The shared chart `HelmRepository` is delegated to a
|
|
7
|
-
* singleton composition so one instance's teardown cannot break another's
|
|
8
|
-
* chart source.
|
|
9
|
-
*
|
|
10
|
-
* **Why the entrypoint Service is owned rather than observed.** The status
|
|
11
|
-
* contract publishes the edge's load-balancer address, which means projecting
|
|
12
|
-
* the entrypoint Service's `status.loadBalancer`. A projection requires the
|
|
13
|
-
* resource to be in the graph. Observing the chart-created Service instead
|
|
14
|
-
* (`observedResource`) made every FRESH direct deployment fail: the direct
|
|
15
|
-
* engine resolves external references before it applies anything, so it read a
|
|
16
|
-
* `Service` that the release had not created yet and treated the `404` as
|
|
17
|
-
* fatal — and `dependsOn` cannot reorder that, because the read happens before
|
|
18
|
-
* the dependency graph is walked. So the chart's Service is disabled through
|
|
19
|
-
* values and this composition creates a typed one selecting the chart's pods.
|
|
20
|
-
* The graph therefore has no external reference to any Kubernetes API object.
|
|
21
|
-
*
|
|
22
|
-
* **Build-time vs runtime.** Options that decide WHICH resources exist — the
|
|
23
|
-
* namespace lifecycle, the default TLS resources, the `web` → `websecure`
|
|
24
|
-
* redirect, raw chart values — are arguments to {@link makeTraefikBootstrap}
|
|
25
|
-
* and are always concrete, so plain JavaScript branches on them are safe. The
|
|
26
|
-
* runtime spec carries only values, which may arrive as schema references in
|
|
27
|
-
* KRO mode and are therefore only ever placed into the values tree, never
|
|
28
|
-
* branched on. This is the ClickStack convention.
|
|
29
|
-
*
|
|
30
|
-
* @security The dashboard and the insecure API are not reachable through this
|
|
31
|
-
* contract: the spec's `dashboard` field is typed as the literal `false`, and
|
|
32
|
-
* `mapTraefikConfigToHelmValues` pins `api.dashboard`, `api.insecure`,
|
|
33
|
-
* `api.debug` and the dashboard `IngressRoute` off after every other values
|
|
34
|
-
* source has been merged.
|
|
35
|
-
*/
|
|
36
1
|
import type { CallableComposition } from '../../../core/types/deployment.js';
|
|
37
2
|
import { type TraefikBootstrapBuildOptions, TraefikBootstrapConfigSchema, TraefikBootstrapStatusSchema } from '../types.js';
|
|
38
3
|
/**
|
|
@@ -103,22 +68,64 @@ export declare const traefikBootstrap: CallableComposition<{
|
|
|
103
68
|
service?: {
|
|
104
69
|
type?: "ClusterIP" | "NodePort" | "LoadBalancer";
|
|
105
70
|
annotations?: Record<string, string>;
|
|
71
|
+
loadBalancerClass?: string;
|
|
72
|
+
externalTrafficPolicy?: "Cluster" | "Local";
|
|
73
|
+
loadBalancerSourceRanges?: string[];
|
|
106
74
|
};
|
|
107
75
|
entrypoints?: {
|
|
108
76
|
web?: {
|
|
77
|
+
aliasHeadersStrategy?: "delete" | "reject" | "keep";
|
|
78
|
+
requestAcceptGraceTimeout?: string;
|
|
79
|
+
graceTimeOut?: string;
|
|
80
|
+
proxyProtocol?: {
|
|
81
|
+
trustedIPs: string[];
|
|
82
|
+
};
|
|
83
|
+
forwardedHeaders?: {
|
|
84
|
+
trustedIPs: string[];
|
|
85
|
+
};
|
|
109
86
|
exposedPort?: number;
|
|
110
87
|
};
|
|
111
88
|
websecure?: {
|
|
112
|
-
exposedPort?: number;
|
|
113
89
|
readTimeout?: string;
|
|
114
90
|
writeTimeout?: string;
|
|
115
91
|
idleTimeout?: string;
|
|
92
|
+
aliasHeadersStrategy?: "delete" | "reject" | "keep";
|
|
93
|
+
requestAcceptGraceTimeout?: string;
|
|
94
|
+
graceTimeOut?: string;
|
|
95
|
+
proxyProtocol?: {
|
|
96
|
+
trustedIPs: string[];
|
|
97
|
+
};
|
|
98
|
+
forwardedHeaders?: {
|
|
99
|
+
trustedIPs: string[];
|
|
100
|
+
};
|
|
101
|
+
exposedPort?: number;
|
|
116
102
|
};
|
|
117
103
|
};
|
|
118
104
|
providers?: {
|
|
119
105
|
crd?: boolean;
|
|
120
106
|
gatewayApi?: boolean;
|
|
121
107
|
kubernetesIngress?: boolean;
|
|
108
|
+
allowEmptyServices?: boolean;
|
|
109
|
+
namespaces?: string[];
|
|
110
|
+
allowCrossNamespace?: boolean;
|
|
111
|
+
};
|
|
112
|
+
terminationGracePeriodSeconds?: number;
|
|
113
|
+
podDisruptionBudget?: {
|
|
114
|
+
enabled?: boolean;
|
|
115
|
+
maxUnavailable?: number;
|
|
116
|
+
};
|
|
117
|
+
scheduling?: {
|
|
118
|
+
nodeSelector?: Record<string, string>;
|
|
119
|
+
tolerations?: {
|
|
120
|
+
key?: string;
|
|
121
|
+
operator?: "Exists" | "Equal";
|
|
122
|
+
value?: string;
|
|
123
|
+
effect?: "NoSchedule" | "PreferNoSchedule" | "NoExecute";
|
|
124
|
+
tolerationSeconds?: number;
|
|
125
|
+
}[];
|
|
126
|
+
priorityClassName?: string;
|
|
127
|
+
zoneSpread?: "DoNotSchedule" | "ScheduleAnyway";
|
|
128
|
+
nodeSpread?: "DoNotSchedule" | "ScheduleAnyway";
|
|
122
129
|
};
|
|
123
130
|
accessLogs?: boolean;
|
|
124
131
|
logLevel?: "ERROR" | "TRACE" | "WARN" | "INFO" | "DEBUG" | "FATAL" | "PANIC";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traefik-bootstrap.d.ts","sourceRoot":"","sources":["../../../../src/factories/traefik/compositions/traefik-bootstrap.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"traefik-bootstrap.d.ts","sourceRoot":"","sources":["../../../../src/factories/traefik/compositions/traefik-bootstrap.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAoB7E,OAAO,EACL,KAAK,4BAA4B,EACjC,4BAA4B,EAC5B,4BAA4B,EAC7B,MAAM,aAAa,CAAC;AAyErB;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,GAAE,4BAAiC,GACzC,mBAAmB,CACpB,OAAO,4BAA4B,CAAC,KAAK,EACzC,OAAO,4BAA4B,CAAC,KAAK,CAC1C,CA4NA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAyB,CAAC"}
|
|
@@ -1,38 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
* source has been merged.
|
|
35
|
-
*/
|
|
1
|
+
// `traefikBootstrap` — the composition that stands Traefik up as a cluster edge.
|
|
2
|
+
//
|
|
3
|
+
// It owns the whole install: the (optional) namespace, the Flux `HelmRelease`,
|
|
4
|
+
// the entrypoint `Service`, and optionally the cluster-default
|
|
5
|
+
// `TLSOption`/`TLSStore`. The shared chart `HelmRepository` is delegated to a
|
|
6
|
+
// singleton composition so one instance's teardown cannot break another's
|
|
7
|
+
// chart source.
|
|
8
|
+
//
|
|
9
|
+
// **Why the entrypoint Service is owned rather than observed.** The status
|
|
10
|
+
// contract publishes the edge's load-balancer address, which means projecting
|
|
11
|
+
// the entrypoint Service's `status.loadBalancer`. A projection requires the
|
|
12
|
+
// resource to be in the graph. Observing the chart-created Service instead
|
|
13
|
+
// (`observedResource`) made every FRESH direct deployment fail: the direct
|
|
14
|
+
// engine resolves external references before it applies anything, so it read a
|
|
15
|
+
// `Service` that the release had not created yet and treated the `404` as
|
|
16
|
+
// fatal — and `dependsOn` cannot reorder that, because the read happens before
|
|
17
|
+
// the dependency graph is walked. So the chart's Service is disabled through
|
|
18
|
+
// values and this composition creates a typed one selecting the chart's pods.
|
|
19
|
+
// The graph therefore has no external reference to any Kubernetes API object.
|
|
20
|
+
//
|
|
21
|
+
// **Build-time vs runtime.** Options that decide WHICH resources exist — the
|
|
22
|
+
// namespace lifecycle, the default TLS resources, the `web` → `websecure`
|
|
23
|
+
// redirect, raw chart values — are arguments to {@link makeTraefikBootstrap}
|
|
24
|
+
// and are always concrete, so plain JavaScript branches on them are safe. The
|
|
25
|
+
// runtime spec carries only values, which may arrive as schema references in
|
|
26
|
+
// KRO mode and are therefore only ever placed into the values tree, never
|
|
27
|
+
// branched on. This is the ClickStack convention.
|
|
28
|
+
//
|
|
29
|
+
// @security The dashboard and the insecure API are not reachable through this
|
|
30
|
+
// contract: the spec's `dashboard` field is typed as the literal `false`, and
|
|
31
|
+
// `mapTraefikConfigToHelmValues` pins `api.dashboard`, `api.insecure`,
|
|
32
|
+
// `api.debug` and the dashboard `IngressRoute` off after every other values
|
|
33
|
+
// source has been merged.
|
|
36
34
|
import { kubernetesComposition } from '../../../core/composition/imperative.js';
|
|
37
35
|
import { DEFAULT_FLUX_NAMESPACE } from '../../../core/config/defaults.js';
|
|
38
36
|
import { Cel } from '../../../core/references/cel.js';
|
|
@@ -42,9 +40,10 @@ import { namespace } from '../../kubernetes/core/namespace.js';
|
|
|
42
40
|
import { service } from '../../kubernetes/networking/service.js';
|
|
43
41
|
import { DEFAULT_TRAEFIK_CHART_VERSION, DEFAULT_TRAEFIK_CRDS_POLICY, DEFAULT_TRAEFIK_NAMESPACE, DEFAULT_TRAEFIK_REPOSITORY_NAME, DEFAULT_TRAEFIK_REPOSITORY_URL, DEFAULT_TRAEFIK_WEB_PORT, DEFAULT_TRAEFIK_WEBSECURE_PORT, TRAEFIK_DEFAULT_TLS_OPTION_NAME, TRAEFIK_DEFAULT_TLS_STORE_NAME, TRAEFIK_POD_NAME_LABEL_VALUE, TRAEFIK_WEB_ENTRYPOINT, TRAEFIK_WEBSECURE_ENTRYPOINT, } from '../constants.js';
|
|
44
42
|
import { traefikHelmRelease } from '../resources/helm.js';
|
|
45
|
-
import { traefikTLSOption, traefikTLSStore } from '../resources/tls.js';
|
|
43
|
+
import { traefikTLSOption, traefikTLSStore, traefikTlsCertificate } from '../resources/tls.js';
|
|
46
44
|
import { TraefikBootstrapConfigSchema, TraefikBootstrapStatusSchema, } from '../types.js';
|
|
47
|
-
import { mapTraefikConfigToHelmValues, traefikEntrypointServiceType, } from '../utils/helm-values-mapper.js';
|
|
45
|
+
import { mapTraefikConfigToHelmValues, traefikEntrypointServiceLoadBalancer, traefikEntrypointServiceType, } from '../utils/helm-values-mapper.js';
|
|
46
|
+
import { traefikProxyTrustSchemaFieldValidations } from '../utils/proxy-trust.js';
|
|
48
47
|
import { traefikHelmRepositoryBootstrap } from './traefik-helm-repository.js';
|
|
49
48
|
/**
|
|
50
49
|
* CEL reading one field of the first load-balancer address the entrypoint
|
|
@@ -138,6 +137,7 @@ export function makeTraefikBootstrap(options = {}) {
|
|
|
138
137
|
const defaultTlsOption = options.defaultTlsOption;
|
|
139
138
|
const defaultTlsStore = options.defaultTlsStore;
|
|
140
139
|
const crdsPolicy = options.crds ?? DEFAULT_TRAEFIK_CRDS_POLICY;
|
|
140
|
+
const dangerouslyTrustAnySource = options.dangerouslyTrustAnySource ?? false;
|
|
141
141
|
return kubernetesComposition({
|
|
142
142
|
name: options.name ?? 'traefik-bootstrap',
|
|
143
143
|
kind: options.kind ?? 'TraefikBootstrap',
|
|
@@ -171,6 +171,13 @@ export function makeTraefikBootstrap(options = {}) {
|
|
|
171
171
|
});
|
|
172
172
|
const values = mapTraefikConfigToHelmValues(spec, {
|
|
173
173
|
redirectWebToWebsecure,
|
|
174
|
+
dangerouslyTrustAnySource,
|
|
175
|
+
...(options.accessLog ? { accessLog: options.accessLog } : {}),
|
|
176
|
+
...(options.plugins ? { plugins: options.plugins } : {}),
|
|
177
|
+
...(options.localPlugins ? { localPlugins: options.localPlugins } : {}),
|
|
178
|
+
...(options.abortOnPluginFailure === undefined
|
|
179
|
+
? {}
|
|
180
|
+
: { abortOnPluginFailure: options.abortOnPluginFailure }),
|
|
174
181
|
targetNamespace: installNamespace,
|
|
175
182
|
...(options.values ? { baseValues: options.values } : {}),
|
|
176
183
|
});
|
|
@@ -211,6 +218,20 @@ export function makeTraefikBootstrap(options = {}) {
|
|
|
211
218
|
// The TLSOption CRD arrives with the release.
|
|
212
219
|
tlsOption.dependsOn(release);
|
|
213
220
|
}
|
|
221
|
+
if (defaultTlsStore?.certificate) {
|
|
222
|
+
// No `dependsOn` between the two: a TLSStore whose Secret does not exist
|
|
223
|
+
// yet is valid, and Traefik serves its self-signed default until
|
|
224
|
+
// cert-manager writes it. Ordering them would hold the store back for
|
|
225
|
+
// the whole ACME order.
|
|
226
|
+
traefikTlsCertificate({
|
|
227
|
+
name: defaultTlsStore.certificate.name ?? defaultTlsStore.defaultCertificateSecretName,
|
|
228
|
+
namespace: installNamespace,
|
|
229
|
+
hostnames: [...defaultTlsStore.certificate.hostnames],
|
|
230
|
+
issuerRef: defaultTlsStore.certificate.issuerRef,
|
|
231
|
+
secretName: defaultTlsStore.defaultCertificateSecretName,
|
|
232
|
+
id: 'traefikDefaultCertificate',
|
|
233
|
+
});
|
|
234
|
+
}
|
|
214
235
|
if (defaultTlsStore) {
|
|
215
236
|
const tlsStore = traefikTLSStore({
|
|
216
237
|
name: defaultTlsStore.name ?? TRAEFIK_DEFAULT_TLS_STORE_NAME,
|
|
@@ -247,6 +268,12 @@ export function makeTraefikBootstrap(options = {}) {
|
|
|
247
268
|
},
|
|
248
269
|
spec: {
|
|
249
270
|
type: traefikEntrypointServiceType(spec),
|
|
271
|
+
// Present only when the spec carries them. Built outside this
|
|
272
|
+
// function: the composition analyzer rewrites expressions it finds in
|
|
273
|
+
// this body, and a conditional spread here made it re-wrap every
|
|
274
|
+
// mixed template in the values tree as a nested `${...}`, which KRO
|
|
275
|
+
// rejects.
|
|
276
|
+
...traefikEntrypointServiceLoadBalancer(spec),
|
|
250
277
|
// The chart stamps these two labels on the Traefik pods, and the
|
|
251
278
|
// values mapper pins both of their sources (`nameOverride`,
|
|
252
279
|
// `instanceLabelOverride`) so this selector is exact.
|
|
@@ -301,7 +328,12 @@ export function makeTraefikBootstrap(options = {}) {
|
|
|
301
328
|
// a deploy-time literal here (#188).
|
|
302
329
|
version: Cel.expr(chartVersionExpression('traefikHelmRelease')),
|
|
303
330
|
};
|
|
304
|
-
}
|
|
331
|
+
},
|
|
332
|
+
// The KRO-mode half of the proxy-trust check: direct mode refuses a `/0`
|
|
333
|
+
// range in the values mapper, KRO mode on the generated CRD.
|
|
334
|
+
dangerouslyTrustAnySource
|
|
335
|
+
? {}
|
|
336
|
+
: { schemaFieldValidations: traefikProxyTrustSchemaFieldValidations() });
|
|
305
337
|
}
|
|
306
338
|
/**
|
|
307
339
|
* The default Traefik bootstrap composition.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traefik-bootstrap.js","sourceRoot":"","sources":["../../../../src/factories/traefik/compositions/traefik-bootstrap.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"traefik-bootstrap.js","sourceRoot":"","sources":["../../../../src/factories/traefik/compositions/traefik-bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,6 +36,12 @@ export declare const TRAEFIK_WEB_ENTRYPOINT = "web";
|
|
|
36
36
|
export declare const TRAEFIK_WEBSECURE_ENTRYPOINT = "websecure";
|
|
37
37
|
/** Internal entrypoint serving `/ping`, metrics and (when enabled) the dashboard. */
|
|
38
38
|
export declare const TRAEFIK_INTERNAL_ENTRYPOINT = "traefik";
|
|
39
|
+
/** Internal entrypoint serving Prometheus metrics. Never published by the Service. */
|
|
40
|
+
export declare const TRAEFIK_METRICS_ENTRYPOINT = "metrics";
|
|
41
|
+
/** Container port of {@link TRAEFIK_METRICS_ENTRYPOINT}, the chart's default. */
|
|
42
|
+
export declare const DEFAULT_TRAEFIK_METRICS_PORT = 9100;
|
|
43
|
+
/** Pod `terminationGracePeriodSeconds`: above the default 10s accept + 30s drain. */
|
|
44
|
+
export declare const DEFAULT_TRAEFIK_TERMINATION_GRACE_SECONDS = 60;
|
|
39
45
|
/**
|
|
40
46
|
* `app.kubernetes.io/name` the chart stamps on the Traefik pods.
|
|
41
47
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/factories/traefik/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,mEAAmE;AACnE,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAEzD,qCAAqC;AACrC,eAAO,MAAM,6BAA6B,WAAW,CAAC;AACtD,gFAAgF;AAChF,eAAO,MAAM,2BAA2B,YAAY,CAAC;AACrD,iDAAiD;AACjD,eAAO,MAAM,0BAA0B,YAAY,CAAC;AACpD,kDAAkD;AAClD,eAAO,MAAM,8BAA8B,qCAAqC,CAAC;AACjF,2EAA2E;AAC3E,eAAO,MAAM,+BAA+B,iBAAiB,CAAC;AAE9D,sDAAsD;AACtD,eAAO,MAAM,yBAAyB,YAAY,CAAC;AACnD,qEAAqE;AACrE,eAAO,MAAM,6BAA6B,YAAY,CAAC;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,kCAAkC,CAAC;AAE/E,kCAAkC;AAClC,eAAO,MAAM,sBAAsB,QAAQ,CAAC;AAC5C,2BAA2B;AAC3B,eAAO,MAAM,4BAA4B,cAAc,CAAC;AACxD,qFAAqF;AACrF,eAAO,MAAM,2BAA2B,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/factories/traefik/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,mEAAmE;AACnE,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAEzD,qCAAqC;AACrC,eAAO,MAAM,6BAA6B,WAAW,CAAC;AACtD,gFAAgF;AAChF,eAAO,MAAM,2BAA2B,YAAY,CAAC;AACrD,iDAAiD;AACjD,eAAO,MAAM,0BAA0B,YAAY,CAAC;AACpD,kDAAkD;AAClD,eAAO,MAAM,8BAA8B,qCAAqC,CAAC;AACjF,2EAA2E;AAC3E,eAAO,MAAM,+BAA+B,iBAAiB,CAAC;AAE9D,sDAAsD;AACtD,eAAO,MAAM,yBAAyB,YAAY,CAAC;AACnD,qEAAqE;AACrE,eAAO,MAAM,6BAA6B,YAAY,CAAC;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,kCAAkC,CAAC;AAE/E,kCAAkC;AAClC,eAAO,MAAM,sBAAsB,QAAQ,CAAC;AAC5C,2BAA2B;AAC3B,eAAO,MAAM,4BAA4B,cAAc,CAAC;AACxD,qFAAqF;AACrF,eAAO,MAAM,2BAA2B,YAAY,CAAC;AACrD,sFAAsF;AACtF,eAAO,MAAM,0BAA0B,YAAY,CAAC;AACpD,iFAAiF;AACjF,eAAO,MAAM,4BAA4B,OAAO,CAAC;AACjD,qFAAqF;AACrF,eAAO,MAAM,yCAAyC,KAAK,CAAC;AAE5D;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,YAAY,CAAC;AAEtD;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,kBAAkB,CAAC;AAE3D,yDAAyD;AACzD,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,+DAA+D;AAC/D,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAClD,mDAAmD;AACnD,eAAO,MAAM,kCAAkC,OAAO,CAAC;AACvD,yDAAyD;AACzD,eAAO,MAAM,wCAAwC,OAAO,CAAC;AAE7D,8EAA8E;AAC9E,eAAO,MAAM,+BAA+B,YAAY,CAAC;AACzD,6EAA6E;AAC7E,eAAO,MAAM,8BAA8B,YAAY,CAAC;AAExD;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,sXA0B3B,CAAC"}
|
|
@@ -36,6 +36,12 @@ export const TRAEFIK_WEB_ENTRYPOINT = 'web';
|
|
|
36
36
|
export const TRAEFIK_WEBSECURE_ENTRYPOINT = 'websecure';
|
|
37
37
|
/** Internal entrypoint serving `/ping`, metrics and (when enabled) the dashboard. */
|
|
38
38
|
export const TRAEFIK_INTERNAL_ENTRYPOINT = 'traefik';
|
|
39
|
+
/** Internal entrypoint serving Prometheus metrics. Never published by the Service. */
|
|
40
|
+
export const TRAEFIK_METRICS_ENTRYPOINT = 'metrics';
|
|
41
|
+
/** Container port of {@link TRAEFIK_METRICS_ENTRYPOINT}, the chart's default. */
|
|
42
|
+
export const DEFAULT_TRAEFIK_METRICS_PORT = 9100;
|
|
43
|
+
/** Pod `terminationGracePeriodSeconds`: above the default 10s accept + 30s drain. */
|
|
44
|
+
export const DEFAULT_TRAEFIK_TERMINATION_GRACE_SECONDS = 60;
|
|
39
45
|
/**
|
|
40
46
|
* `app.kubernetes.io/name` the chart stamps on the Traefik pods.
|
|
41
47
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/factories/traefik/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,mEAAmE;AACnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAEzD,qCAAqC;AACrC,MAAM,CAAC,MAAM,6BAA6B,GAAG,QAAQ,CAAC;AACtD,gFAAgF;AAChF,MAAM,CAAC,MAAM,2BAA2B,GAAG,SAAS,CAAC;AACrD,iDAAiD;AACjD,MAAM,CAAC,MAAM,0BAA0B,GAAG,SAAS,CAAC;AACpD,kDAAkD;AAClD,MAAM,CAAC,MAAM,8BAA8B,GAAG,kCAAkC,CAAC;AACjF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,+BAA+B,GAAG,cAAc,CAAC;AAE9D,sDAAsD;AACtD,MAAM,CAAC,MAAM,yBAAyB,GAAG,SAAS,CAAC;AACnD,qEAAqE;AACrE,MAAM,CAAC,MAAM,6BAA6B,GAAG,SAAS,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,+BAA+B,CAAC;AAE/E,kCAAkC;AAClC,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAC5C,2BAA2B;AAC3B,MAAM,CAAC,MAAM,4BAA4B,GAAG,WAAW,CAAC;AACxD,qFAAqF;AACrF,MAAM,CAAC,MAAM,2BAA2B,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/factories/traefik/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,mEAAmE;AACnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAEzD,qCAAqC;AACrC,MAAM,CAAC,MAAM,6BAA6B,GAAG,QAAQ,CAAC;AACtD,gFAAgF;AAChF,MAAM,CAAC,MAAM,2BAA2B,GAAG,SAAS,CAAC;AACrD,iDAAiD;AACjD,MAAM,CAAC,MAAM,0BAA0B,GAAG,SAAS,CAAC;AACpD,kDAAkD;AAClD,MAAM,CAAC,MAAM,8BAA8B,GAAG,kCAAkC,CAAC;AACjF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,+BAA+B,GAAG,cAAc,CAAC;AAE9D,sDAAsD;AACtD,MAAM,CAAC,MAAM,yBAAyB,GAAG,SAAS,CAAC;AACnD,qEAAqE;AACrE,MAAM,CAAC,MAAM,6BAA6B,GAAG,SAAS,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,+BAA+B,CAAC;AAE/E,kCAAkC;AAClC,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAC5C,2BAA2B;AAC3B,MAAM,CAAC,MAAM,4BAA4B,GAAG,WAAW,CAAC;AACxD,qFAAqF;AACrF,MAAM,CAAC,MAAM,2BAA2B,GAAG,SAAS,CAAC;AACrD,sFAAsF;AACtF,MAAM,CAAC,MAAM,0BAA0B,GAAG,SAAS,CAAC;AACpD,iFAAiF;AACjF,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,CAAC;AACjD,qFAAqF;AACrF,MAAM,CAAC,MAAM,yCAAyC,GAAG,EAAE,CAAC;AAE5D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,SAAS,CAAC;AAEtD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,eAAe,CAAC;AAE3D,yDAAyD;AACzD,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAC3C,+DAA+D;AAC/D,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAClD,mDAAmD;AACnD,MAAM,CAAC,MAAM,kCAAkC,GAAG,IAAI,CAAC;AACvD,yDAAyD;AACzD,MAAM,CAAC,MAAM,wCAAwC,GAAG,IAAI,CAAC;AAE7D,8EAA8E;AAC9E,MAAM,CAAC,MAAM,+BAA+B,GAAG,SAAS,CAAC;AACzD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,8BAA8B,GAAG,SAAS,CAAC;AAExD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,WAAW;IACX,WAAW;IACX,WAAW;IACX,OAAO;IACP,gBAAgB;IAChB,UAAU;IACV,aAAa;IACb,YAAY;IACZ,mBAAmB;IACnB,QAAQ;IACR,aAAa;IACb,SAAS;IACT,SAAS;IACT,aAAa;IACb,aAAa;IACb,mBAAmB;IACnB,QAAQ;IACR,WAAW;IACX,eAAe;IACf,gBAAgB;IAChB,aAAa;IACb,kBAAkB;IAClB,OAAO;IACP,aAAa;IACb,kBAAkB;CACV,CAAC"}
|
|
@@ -21,7 +21,7 @@ export type TraefikResourceConfig<TSpec extends object> = TraefikResourceMetadat
|
|
|
21
21
|
readonly spec: TSpec;
|
|
22
22
|
};
|
|
23
23
|
/**
|
|
24
|
-
* Readiness evaluator for a Traefik CRD.
|
|
24
|
+
* Readiness evaluator for a Traefik CRD: always ready, as none has a status subresource.
|
|
25
25
|
*
|
|
26
26
|
* **Why always-ready:** none of the `traefik.io/v1alpha1` kinds
|
|
27
27
|
* (`IngressRoute`, `IngressRouteTCP`, `Middleware`, `TLSOption`, `TLSStore`,
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { createAlwaysReadyEvaluator } from '../../../core/readiness/evaluator-factories.js';
|
|
8
8
|
/**
|
|
9
|
-
* Readiness evaluator for a Traefik CRD.
|
|
9
|
+
* Readiness evaluator for a Traefik CRD: always ready, as none has a status subresource.
|
|
10
10
|
*
|
|
11
11
|
* **Why always-ready:** none of the `traefik.io/v1alpha1` kinds
|
|
12
12
|
* (`IngressRoute`, `IngressRouteTCP`, `Middleware`, `TLSOption`, `TLSStore`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helm.d.ts","sourceRoot":"","sources":["../../../../src/factories/traefik/resources/helm.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC7F,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"helm.d.ts","sourceRoot":"","sources":["../../../../src/factories/traefik/resources/helm.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC7F,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,+BAA+B,CAAC;AAGvC,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAU9E,OAAO,KAAK,EACV,wBAAwB,EACxB,2BAA2B,EAC3B,iBAAiB,EAElB,MAAM,aAAa,CAAC;AAKrB;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC,EAAE,kBAAkB,CAAC,OAAO,CAC/B,CAAC;AAE/C;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,UAAU,CAAC,2BAA2B,CAAC,GAC9C,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAcpD;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,UAAU,CAAC,wBAAwB,CAAC,GAC3C,QAAQ,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,CA8DjE"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { DEFAULT_FLUX_NAMESPACE } from '../../../core/config/defaults.js';
|
|
10
10
|
import { createHelmRepositoryReadinessEvaluator, } from '../../helm/helm-repository.js';
|
|
11
|
+
import { helmReleaseLifecycle } from '../../helm/lifecycle.js';
|
|
11
12
|
import { createLabeledHelmReleaseEvaluator } from '../../helm/readiness-evaluators.js';
|
|
12
13
|
import { createResource } from '../../shared.js';
|
|
13
14
|
import { DEFAULT_TRAEFIK_CHART_NAME, DEFAULT_TRAEFIK_CHART_VERSION, DEFAULT_TRAEFIK_CRDS_POLICY, DEFAULT_TRAEFIK_NAMESPACE, DEFAULT_TRAEFIK_REPOSITORY_NAME, DEFAULT_TRAEFIK_REPOSITORY_URL, } from '../constants.js';
|
|
@@ -110,15 +111,19 @@ export function traefikHelmRelease(config) {
|
|
|
110
111
|
// name from moving when a caller changes the install namespace, which
|
|
111
112
|
// Helm treats as a different release entirely.
|
|
112
113
|
releaseName: config.name,
|
|
113
|
-
install
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
114
|
+
// Nested install/upgrade fields override these defaults field by field,
|
|
115
|
+
// so `install.crds` / `upgrade.crds` can still split the shared policy.
|
|
116
|
+
...helmReleaseLifecycle(config, {
|
|
117
|
+
install: {
|
|
118
|
+
createNamespace: config.createNamespace ?? false,
|
|
119
|
+
crds,
|
|
120
|
+
remediation: { retries: 3 },
|
|
121
|
+
},
|
|
122
|
+
upgrade: {
|
|
123
|
+
crds,
|
|
124
|
+
remediation: { retries: 3, remediateLastFailure: true, strategy: 'rollback' },
|
|
125
|
+
},
|
|
126
|
+
}),
|
|
122
127
|
// The mapper's output is a graph-aware value tree — refs and CEL
|
|
123
128
|
// expressions live inside it — so it is handed to Flux as-is. The cast
|
|
124
129
|
// re-states that: `Composable<>` widens every optional branch of the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helm.js","sourceRoot":"","sources":["../../../../src/factories/traefik/resources/helm.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE1E,OAAO,EACL,sCAAsC,GAGvC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iCAAiC,EAAE,MAAM,oCAAoC,CAAC;AAEvF,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,2BAA2B,EAC3B,yBAAyB,EACzB,+BAA+B,EAC/B,8BAA8B,GAC/B,MAAM,iBAAiB,CAAC;AAQzB,mFAAmF;AACnF,MAAM,uCAAuC,GAAG,sCAAsC,CAAC,SAAS,CAAC,CAAC;AAElG;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAC/C,iCAAiC,CAAC,SAAS,CAAC,CAAC;AAE/C;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAA+C;IAE/C,OAAO,cAAc,CAA2C;QAC9D,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,UAAU,EAAE,6BAA6B;QACzC,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,sBAAsB;SACtD;QACD,IAAI,EAAE;YACJ,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,8BAA8B;YACjD,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;SAClC;KACF,CAAC,CAAC,sBAAsB,CAAC,uCAAuC,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAA4C;IAE5C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,sBAAsB,CAAC;IAC7D,2EAA2E;IAC3E,yEAAyE;IACzE,yEAAyE;IACzE,4EAA4E;IAC5E,qCAAqC;IACrC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,2BAA2B,CAAC;IACxD,OAAO,cAAc,CAAwD;QAC3E,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,UAAU,EAAE,2BAA2B;QACvC,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,SAAS;SACV;QACD,IAAI,EAAE;YACJ,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;YACjC,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK;YAChC,KAAK,EAAE;gBACL,IAAI,EAAE;oBACJ,KAAK,EAAE,0BAA0B;oBACjC,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,6BAA6B;oBACxD,SAAS,EAAE;wBACT,IAAI,EAAE,gBAAyB;wBAC/B,IAAI,EAAE,MAAM,CAAC,cAAc,IAAI,+BAA+B;wBAC9D,SAAS,EAAE,MAAM,CAAC,mBAAmB,IAAI,SAAS;qBACnD;iBACF;aACF;YACD,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,yBAAyB;YACpE,kEAAkE;YAClE,qEAAqE;YACrE,wDAAwD;YACxD,yEAAyE;YACzE,wEAAwE;YACxE,yEAAyE;YACzE,yEAAyE;YACzE,sEAAsE;YACtE,+CAA+C;YAC/C,WAAW,EAAE,MAAM,CAAC,IAAI;YACxB,OAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"helm.js","sourceRoot":"","sources":["../../../../src/factories/traefik/resources/helm.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* almost always needs, each of which carries the secure defaults from #172.
|
|
8
8
|
*/
|
|
9
9
|
import type { Composable, Enhanced } from '../../../core/types/index.js';
|
|
10
|
-
import type { TraefikBufferingMiddlewareConfig, TraefikChainMiddlewareConfig, TraefikForwardAuthMiddlewareConfig, TraefikHeadersMiddlewareConfig, TraefikInFlightReqMiddlewareConfig, TraefikMiddlewareSpec, TraefikRateLimitMiddlewareConfig, TraefikRedirectSchemeMiddlewareConfig } from '../types.js';
|
|
10
|
+
import type { TraefikBufferingMiddlewareConfig, TraefikChainMiddlewareConfig, TraefikForwardAuthMiddlewareConfig, TraefikHeadersMiddlewareConfig, TraefikInFlightReqMiddlewareConfig, TraefikMiddlewareSpec, TraefikPluginMiddlewareConfig, TraefikRateLimitMiddlewareConfig, TraefikRedirectSchemeMiddlewareConfig } from '../types.js';
|
|
11
11
|
import { type TraefikResourceConfig } from './common.js';
|
|
12
12
|
import type { TraefikNoStatus } from './routing.js';
|
|
13
13
|
/**
|
|
@@ -166,4 +166,38 @@ export declare function traefikBufferingMiddleware(config: Composable<TraefikBuf
|
|
|
166
166
|
* ```
|
|
167
167
|
*/
|
|
168
168
|
export declare function traefikChainMiddleware(config: Composable<TraefikChainMiddlewareConfig>): Enhanced<TraefikMiddlewareSpec, TraefikNoStatus>;
|
|
169
|
+
/**
|
|
170
|
+
* A `Middleware` that runs a plugin declared on the bootstrap.
|
|
171
|
+
*
|
|
172
|
+
* @example
|
|
173
|
+
* ```typescript
|
|
174
|
+
* traefikPluginMiddleware({
|
|
175
|
+
* name: 'crowdsec-bouncer',
|
|
176
|
+
* namespace: 'edge',
|
|
177
|
+
* plugin: 'crowdsec',
|
|
178
|
+
* config: { enabled: true, crowdsecLapiKey: traefikSecretValue('crowdsec-bouncer', 'api-key') },
|
|
179
|
+
* id: 'crowdsecBouncer',
|
|
180
|
+
* });
|
|
181
|
+
* ```
|
|
182
|
+
*/
|
|
183
|
+
export declare function traefikPluginMiddleware(config: Composable<TraefikPluginMiddlewareConfig>): Enhanced<TraefikMiddlewareSpec, TraefikNoStatus>;
|
|
184
|
+
/** The three Middlewares {@link traefikForwardAuthSecurePair} creates. */
|
|
185
|
+
export interface TraefikForwardAuthSecurePair {
|
|
186
|
+
/** Removes `authResponseHeaders` from the client's request. */
|
|
187
|
+
readonly stripIdentityHeaders: Enhanced<TraefikMiddlewareSpec, TraefikNoStatus>;
|
|
188
|
+
readonly forwardAuth: Enhanced<TraefikMiddlewareSpec, TraefikNoStatus>;
|
|
189
|
+
/** Strip, then authorize. Reference this one from routes. */
|
|
190
|
+
readonly chain: Enhanced<TraefikMiddlewareSpec, TraefikNoStatus>;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* `forwardAuth` paired with a `headers` Middleware that strips the identity
|
|
194
|
+
* headers from the client's request first, chained under `name`.
|
|
195
|
+
*
|
|
196
|
+
* The strip runs as `<name>-strip-identity`, the authorizer as
|
|
197
|
+
* `<name>-forward-auth`. Header names must be concrete.
|
|
198
|
+
*
|
|
199
|
+
* @throws {TypeKroError} `TRAEFIK_FORWARD_AUTH_INVALID` when `authRequestHeaders`
|
|
200
|
+
* forwards one of the `authResponseHeaders`.
|
|
201
|
+
*/
|
|
202
|
+
export declare function traefikForwardAuthSecurePair(config: Composable<TraefikForwardAuthMiddlewareConfig>): TraefikForwardAuthSecurePair;
|
|
169
203
|
//# sourceMappingURL=middleware.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../../src/factories/traefik/resources/middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAGzE,OAAO,KAAK,EACV,gCAAgC,EAEhC,4BAA4B,EAE5B,kCAAkC,EAClC,8BAA8B,EAE9B,kCAAkC,EAElC,qBAAqB,
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../../src/factories/traefik/resources/middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAGzE,OAAO,KAAK,EACV,gCAAgC,EAEhC,4BAA4B,EAE5B,kCAAkC,EAClC,8BAA8B,EAE9B,kCAAkC,EAElC,qBAAqB,EACrB,6BAA6B,EAE7B,gCAAgC,EAEhC,qCAAqC,EACtC,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,KAAK,qBAAqB,EAG3B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD;;;;;;GAMG;AACH,YAAY,EACV,gCAAgC,EAChC,4BAA4B,EAC5B,kCAAkC,EAClC,8BAA8B,EAC9B,kCAAkC,EAClC,yBAAyB,EACzB,gCAAgC,EAChC,qCAAqC,GACtC,MAAM,aAAa,CAAC;AASrB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,CAAC,GAC/D,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAMlD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,UAAU,CAAC,kCAAkC,CAAC,GACrD,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAYlD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,UAAU,CAAC,gCAAgC,CAAC,GACnD,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAclD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,UAAU,CAAC,kCAAkC,CAAC,GACrD,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAWlD;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,UAAU,CAAC,8BAA8B,CAAC,GACjD,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAElD;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,UAAU,CAAC,qCAAqC,CAAC,GACxD,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAOlD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,UAAU,CAAC,gCAAgC,CAAC,GACnD,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAElD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,UAAU,CAAC,4BAA4B,CAAC,GAC/C,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAGlD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,UAAU,CAAC,6BAA6B,CAAC,GAChD,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAKlD;AAED,0EAA0E;AAC1E,MAAM,WAAW,4BAA4B;IAC3C,+DAA+D;IAC/D,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;IAChF,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;IACvE,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;CAClE;AAED;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,UAAU,CAAC,kCAAkC,CAAC,GACrD,4BAA4B,CA8C9B"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { createResource } from '../../shared.js';
|
|
10
10
|
import { TRAEFIK_API_VERSION } from '../constants.js';
|
|
11
|
+
import { TypeKroError } from '../../../core/errors.js';
|
|
11
12
|
import { assertTraefikMiddlewareSpec } from '../utils/middleware-validation.js';
|
|
12
13
|
import { traefikResourceDefinition, traefikStatuslessReadinessEvaluator, } from './common.js';
|
|
13
14
|
function middlewareResource(metadata, spec) {
|
|
@@ -213,6 +214,76 @@ export function traefikChainMiddleware(config) {
|
|
|
213
214
|
const chain = { middlewares: [...config.middlewares] };
|
|
214
215
|
return middlewareResource(metadataOf(config), { chain });
|
|
215
216
|
}
|
|
217
|
+
/**
|
|
218
|
+
* A `Middleware` that runs a plugin declared on the bootstrap.
|
|
219
|
+
*
|
|
220
|
+
* @example
|
|
221
|
+
* ```typescript
|
|
222
|
+
* traefikPluginMiddleware({
|
|
223
|
+
* name: 'crowdsec-bouncer',
|
|
224
|
+
* namespace: 'edge',
|
|
225
|
+
* plugin: 'crowdsec',
|
|
226
|
+
* config: { enabled: true, crowdsecLapiKey: traefikSecretValue('crowdsec-bouncer', 'api-key') },
|
|
227
|
+
* id: 'crowdsecBouncer',
|
|
228
|
+
* });
|
|
229
|
+
* ```
|
|
230
|
+
*/
|
|
231
|
+
export function traefikPluginMiddleware(config) {
|
|
232
|
+
// The plugin name is a map KEY in the spec, so it must be concrete.
|
|
233
|
+
return middlewareResource(metadataOf(config), {
|
|
234
|
+
plugin: { [config.plugin]: config.config },
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* `forwardAuth` paired with a `headers` Middleware that strips the identity
|
|
239
|
+
* headers from the client's request first, chained under `name`.
|
|
240
|
+
*
|
|
241
|
+
* The strip runs as `<name>-strip-identity`, the authorizer as
|
|
242
|
+
* `<name>-forward-auth`. Header names must be concrete.
|
|
243
|
+
*
|
|
244
|
+
* @throws {TypeKroError} `TRAEFIK_FORWARD_AUTH_INVALID` when `authRequestHeaders`
|
|
245
|
+
* forwards one of the `authResponseHeaders`.
|
|
246
|
+
*/
|
|
247
|
+
export function traefikForwardAuthSecurePair(config) {
|
|
248
|
+
// Traefik 3.7 already replaces each `authResponseHeaders` entry with the
|
|
249
|
+
// authorizer's value (or removes it) on success, so the upstream never sees
|
|
250
|
+
// the client's. It does NOT stop the client's value reaching the authorizer:
|
|
251
|
+
// without an `authRequestHeaders` allowlist every client header is forwarded,
|
|
252
|
+
// and an authorizer that reads, logs or echoes `X-Auth-User` can be fooled.
|
|
253
|
+
// Stripping first closes that, and also holds for older Traefik releases and
|
|
254
|
+
// for anything a later middleware in the chain does with those headers.
|
|
255
|
+
const responseHeaders = [...config.authResponseHeaders];
|
|
256
|
+
const lower = new Set(responseHeaders.map((header) => header.toLowerCase()));
|
|
257
|
+
const forwarded = (config.authRequestHeaders ?? []).filter((header) => lower.has(header.toLowerCase()));
|
|
258
|
+
if (forwarded.length > 0) {
|
|
259
|
+
throw new TypeKroError(`forwardAuth "${String(config.name)}" forwards ${forwarded.join(', ')} to the authorizer, ` +
|
|
260
|
+
'but those are identity headers it returns. They are stripped from the client request.', 'TRAEFIK_FORWARD_AUTH_INVALID', { forwarded });
|
|
261
|
+
}
|
|
262
|
+
const metadata = metadataOf(config);
|
|
263
|
+
const id = config.id;
|
|
264
|
+
const stripIdentityHeaders = traefikHeadersMiddleware({
|
|
265
|
+
...metadata,
|
|
266
|
+
name: `${config.name}-strip-identity`,
|
|
267
|
+
// An empty value removes the header.
|
|
268
|
+
headers: {
|
|
269
|
+
customRequestHeaders: Object.fromEntries(responseHeaders.map((header) => [header, ''])),
|
|
270
|
+
},
|
|
271
|
+
...(id ? { id: `${id}StripIdentity` } : {}),
|
|
272
|
+
});
|
|
273
|
+
const forwardAuth = traefikForwardAuthMiddleware({
|
|
274
|
+
...config,
|
|
275
|
+
name: `${config.name}-forward-auth`,
|
|
276
|
+
...(id ? { id: `${id}ForwardAuth` } : {}),
|
|
277
|
+
});
|
|
278
|
+
const ref = (name) => ({ name, namespace: config.namespace });
|
|
279
|
+
const chain = traefikChainMiddleware({
|
|
280
|
+
...metadata,
|
|
281
|
+
middlewares: [ref(`${config.name}-strip-identity`), ref(`${config.name}-forward-auth`)],
|
|
282
|
+
});
|
|
283
|
+
chain.dependsOn(stripIdentityHeaders);
|
|
284
|
+
chain.dependsOn(forwardAuth);
|
|
285
|
+
return { stripIdentityHeaders, forwardAuth, chain };
|
|
286
|
+
}
|
|
216
287
|
function metadataOf(config) {
|
|
217
288
|
return {
|
|
218
289
|
name: config.name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../../src/factories/traefik/resources/middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../../src/factories/traefik/resources/middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAkBtD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAEL,yBAAyB,EACzB,mCAAmC,GACpC,MAAM,aAAa,CAAC;AAqBrB,SAAS,kBAAkB,CACzB,QAA+C,EAC/C,IAAuC;IAEvC,OAAO,iBAAiB,CAAC,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAgE;IAEhE,2BAA2B,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACtD,OAAO,cAAc,CACnB,yBAAyB,CAAC,mBAAmB,EAAE,YAAY,EAAE,MAAM,CAAC,EACpE,EAAE,KAAK,EAAE,YAAY,EAAE,CACxB,CAAC,sBAAsB,CAAC,mCAAmC,CAAC,YAAY,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,4BAA4B,CAC1C,MAAsD;IAEtD,MAAM,WAAW,GAA6C;QAC5D,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,qEAAqE;QACrE,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,IAAI,KAAK;QACtD,mBAAmB,EAAE,CAAC,GAAG,MAAM,CAAC,mBAAmB,CAAC;QACpD,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,GAAG,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,GAAG,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;QAChF,GAAG,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;QAChF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3C,CAAC;IACF,OAAO,kBAAkB,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,0BAA0B,CACxC,MAAoD;IAEpD,MAAM,eAAe,GACnB,MAAM,CAAC,eAAe;QACtB,CAAC,MAAM,CAAC,iBAAiB,KAAK,SAAS;YACrC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACvD,MAAM,SAAS,GAA2C;QACxD,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI;QAC7B,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjD,CAAC;IACF,OAAO,kBAAkB,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,4BAA4B,CAC1C,MAAsD;IAEtD,MAAM,eAAe,GACnB,MAAM,CAAC,eAAe;QACtB,CAAC,MAAM,CAAC,iBAAiB,KAAK,SAAS;YACrC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACvD,MAAM,WAAW,GAA6C;QAC5D,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChD,CAAC;IACF,OAAO,kBAAkB,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAAkD;IAElD,OAAO,kBAAkB,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,+BAA+B,CAC7C,MAAyD;IAEzD,MAAM,cAAc,GAAgD;QAClE,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,OAAO;QAChC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI;QACnC,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;KAC5D,CAAC;IACF,OAAO,kBAAkB,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,0BAA0B,CACxC,MAAoD;IAEpD,OAAO,kBAAkB,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;AACjF,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAgD;IAEhD,MAAM,KAAK,GAAuC,EAAE,WAAW,EAAE,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;IAC3F,OAAO,kBAAkB,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAAiD;IAEjD,oEAAoE;IACpE,OAAO,kBAAkB,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QAC5C,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;KACrD,CAAC,CAAC;AACL,CAAC;AAWD;;;;;;;;;GASG;AACH,MAAM,UAAU,4BAA4B,CAC1C,MAAsD;IAEtD,yEAAyE;IACzE,4EAA4E;IAC5E,6EAA6E;IAC7E,8EAA8E;IAC9E,4EAA4E;IAC5E,6EAA6E;IAC7E,wEAAwE;IACxE,MAAM,eAAe,GAAG,CAAC,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC7E,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACpE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAChC,CAAC;IACF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,YAAY,CACpB,gBAAgB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB;YACzF,uFAAuF,EACzF,8BAA8B,EAC9B,EAAE,SAAS,EAAE,CACd,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;IACrB,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;QACpD,GAAG,QAAQ;QACX,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,iBAAiB;QACrC,qCAAqC;QACrC,OAAO,EAAE;YACP,oBAAoB,EAAE,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;SACxF;QACD,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5C,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,4BAA4B,CAAC;QAC/C,GAAG,MAAM;QACT,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,eAAe;QACnC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,sBAAsB,CAAC;QACnC,GAAG,QAAQ;QACX,WAAW,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,iBAAiB,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,eAAe,CAAC,CAAC;KACxF,CAAC,CAAC;IACH,KAAK,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;IACtC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC7B,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AACtD,CAAC;AAED,SAAS,UAAU,CACjB,MAA6C;IAE7C,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxC,CAAC;AACJ,CAAC"}
|