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
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
// Vertical Pod Autoscaler type definitions.
|
|
2
|
+
//
|
|
3
|
+
// Config and status shapes are interfaces, which keeps the published
|
|
4
|
+
// declarations small. Only the bootstrap composition's spec and status need
|
|
5
|
+
// runtime ArkType schemas (KRO builds its SimpleSchema from them), and those
|
|
6
|
+
// are annotated with the interfaces they validate.
|
|
7
|
+
//
|
|
8
|
+
// @see https://github.com/kubernetes/autoscaler/blob/master/vertical-pod-autoscaler/docs/api.md
|
|
9
|
+
import { type } from 'arktype';
|
|
10
|
+
const kubernetesDnsLabel = type(/^[a-z0-9](?:[-a-z0-9]*[a-z0-9])?$/).and('string <= 63');
|
|
11
|
+
// Helm release names are limited to 53 characters.
|
|
12
|
+
const releaseName = type(/^[a-z0-9](?:[-a-z0-9]*[a-z0-9])?$/).and('string <= 53');
|
|
13
|
+
const resourceList = { 'cpu?': 'string', 'memory?': 'string' };
|
|
14
|
+
const toleration = type({
|
|
15
|
+
'key?': 'string',
|
|
16
|
+
'operator?': '"Exists" | "Equal"',
|
|
17
|
+
'value?': 'string',
|
|
18
|
+
'effect?': '"NoSchedule" | "PreferNoSchedule" | "NoExecute"',
|
|
19
|
+
'tolerationSeconds?': 'number.integer',
|
|
20
|
+
});
|
|
21
|
+
const componentShape = {
|
|
22
|
+
'enabled?': 'boolean',
|
|
23
|
+
'replicas?': 'number.integer >= 0',
|
|
24
|
+
'resources?': { 'requests?': resourceList, 'limits?': resourceList },
|
|
25
|
+
'podDisruptionBudget?': {
|
|
26
|
+
'minAvailable?': 'number.integer >= 0',
|
|
27
|
+
'maxUnavailable?': 'number.integer >= 0',
|
|
28
|
+
},
|
|
29
|
+
'nodeSelector?': 'Record<string, string>',
|
|
30
|
+
'tolerations?': toleration.array(),
|
|
31
|
+
'affinity?': 'Record<string, unknown>',
|
|
32
|
+
};
|
|
33
|
+
/** ArkType schema for {@link VpaBootstrapConfig}. */
|
|
34
|
+
export const VpaBootstrapConfigSchema = type({
|
|
35
|
+
name: releaseName,
|
|
36
|
+
'namespace?': kubernetesDnsLabel,
|
|
37
|
+
'version?': 'string > 0',
|
|
38
|
+
'recommender?': {
|
|
39
|
+
...componentShape,
|
|
40
|
+
'logLevel?': 'number.integer >= 0',
|
|
41
|
+
'podRecommendationMinCpuMillicores?': 'number.integer >= 0',
|
|
42
|
+
'podRecommendationMinMemoryMb?': 'number.integer >= 0',
|
|
43
|
+
'targetCpuPercentile?': '0 < number <= 1',
|
|
44
|
+
'targetMemoryPercentile?': '0 < number <= 1',
|
|
45
|
+
'recommendationMarginFraction?': 'number >= 0',
|
|
46
|
+
'cpuHistogramDecayHalfLife?': 'string > 0',
|
|
47
|
+
'memoryHistogramDecayHalfLife?': 'string > 0',
|
|
48
|
+
'memoryAggregationInterval?': 'string > 0',
|
|
49
|
+
'memoryAggregationIntervalCount?': 'number.integer >= 1',
|
|
50
|
+
'storage?': '"checkpoint" | "prometheus"',
|
|
51
|
+
'historyLength?': 'string > 0',
|
|
52
|
+
'prometheusAddress?': 'string > 0',
|
|
53
|
+
'recommenderName?': 'string > 0',
|
|
54
|
+
},
|
|
55
|
+
'updater?': {
|
|
56
|
+
...componentShape,
|
|
57
|
+
'minReplicas?': 'number.integer >= 1',
|
|
58
|
+
'evictionTolerance?': '0 <= number <= 1',
|
|
59
|
+
},
|
|
60
|
+
'admissionController?': {
|
|
61
|
+
...componentShape,
|
|
62
|
+
'certificate?': {
|
|
63
|
+
'generate?': 'boolean',
|
|
64
|
+
'secretName?': kubernetesDnsLabel,
|
|
65
|
+
'secretKeys?': type({ key: 'string > 0', path: 'string > 0' }).array(),
|
|
66
|
+
},
|
|
67
|
+
'webhook?': {
|
|
68
|
+
'failurePolicy?': '"Ignore" | "Fail"',
|
|
69
|
+
'timeoutSeconds?': '1 <= number.integer <= 30',
|
|
70
|
+
'namespaceSelector?': 'Record<string, unknown>',
|
|
71
|
+
'objectSelector?': 'Record<string, unknown>',
|
|
72
|
+
'annotations?': 'Record<string, string>',
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
'metricsServer?': { 'enabled?': 'boolean' },
|
|
76
|
+
'priorityClassName?': 'string',
|
|
77
|
+
'serviceAccountAnnotations?': 'Record<string, string>',
|
|
78
|
+
});
|
|
79
|
+
/** ArkType schema for {@link VpaBootstrapStatus}. */
|
|
80
|
+
export const VpaBootstrapStatusSchema = type({
|
|
81
|
+
ready: 'boolean',
|
|
82
|
+
failed: 'boolean',
|
|
83
|
+
phase: '"Ready" | "Installing" | "Failed"',
|
|
84
|
+
version: 'string',
|
|
85
|
+
});
|
|
86
|
+
/** ArkType schema for {@link VpaHelmRepositorySingletonSpec}. */
|
|
87
|
+
export const VpaHelmRepositorySingletonSpecSchema = type({
|
|
88
|
+
name: kubernetesDnsLabel,
|
|
89
|
+
namespace: kubernetesDnsLabel,
|
|
90
|
+
url: 'string > 0',
|
|
91
|
+
});
|
|
92
|
+
/** ArkType schema for the singleton's status. */
|
|
93
|
+
export const VpaHelmRepositorySingletonStatusSchema = type({
|
|
94
|
+
ready: 'boolean',
|
|
95
|
+
});
|
|
96
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/factories/vpa/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { VpaBootstrapConfig } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Map the bootstrap spec onto Fairwinds `vpa` chart values.
|
|
4
|
+
*
|
|
5
|
+
* @param config - The bootstrap spec. Any field may be a schema reference.
|
|
6
|
+
* @param rawValues - Concrete chart values deep-merged over the result.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* mapVpaConfigToHelmValues({
|
|
11
|
+
* name: 'vpa',
|
|
12
|
+
* updater: { enabled: false },
|
|
13
|
+
* admissionController: { enabled: false },
|
|
14
|
+
* });
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare function mapVpaConfigToHelmValues(config: VpaBootstrapConfig, rawValues?: Record<string, unknown>): Record<string, unknown>;
|
|
18
|
+
//# sourceMappingURL=helm-values-mapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helm-values-mapper.d.ts","sourceRoot":"","sources":["../../../../src/factories/vpa/utils/helm-values-mapper.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,kBAAkB,EAA+C,MAAM,aAAa,CAAC;AA+CnG;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,kBAAkB,EAC1B,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACtC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAwFzB"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
// Vertical Pod Autoscaler Helm values mapping for the Fairwinds `vpa` chart 5.1.0.
|
|
2
|
+
//
|
|
3
|
+
// Every spec field may be a schema reference in KRO mode, so the mapper only
|
|
4
|
+
// places values into the tree and never branches on them. Defaults go through
|
|
5
|
+
// `Cel.default`, never `??`: a schema proxy is a truthy object.
|
|
6
|
+
//
|
|
7
|
+
// The chart renders each component's `extraArgs` map as `--key=value`, and
|
|
8
|
+
// Helm merges that map with the chart's own (`v`, the two minimum-recommendation
|
|
9
|
+
// flags), so the typed flags below land there key by key.
|
|
10
|
+
import { Cel } from '../../../core/references/cel.js';
|
|
11
|
+
import { isCelExpression, isKubernetesRef } from '../../../utils/type-guards.js';
|
|
12
|
+
import { VPA_DEFAULT_RECOMMENDER_FLAGS, VPA_DEFAULT_RESOURCES, VPA_DEFAULT_UPDATER_FLAGS, } from '../constants.js';
|
|
13
|
+
const VPA_DEFAULT_TLS_SECRET_NAME = '{{ include "vpa.fullname" . }}-tls-secret';
|
|
14
|
+
function isPlainObject(value) {
|
|
15
|
+
return (typeof value === 'object' &&
|
|
16
|
+
value !== null &&
|
|
17
|
+
!Array.isArray(value) &&
|
|
18
|
+
!isKubernetesRef(value) &&
|
|
19
|
+
!isCelExpression(value));
|
|
20
|
+
}
|
|
21
|
+
// Plain objects merge key by key; lists, primitives and graph values replace.
|
|
22
|
+
function deepMerge(base, override) {
|
|
23
|
+
const merged = { ...base };
|
|
24
|
+
for (const [key, value] of Object.entries(override)) {
|
|
25
|
+
if (key === '__proto__' || key === 'constructor' || key === 'prototype')
|
|
26
|
+
continue;
|
|
27
|
+
if (value === undefined)
|
|
28
|
+
continue;
|
|
29
|
+
const existing = merged[key];
|
|
30
|
+
merged[key] =
|
|
31
|
+
isPlainObject(existing) && isPlainObject(value) ? deepMerge(existing, value) : value;
|
|
32
|
+
}
|
|
33
|
+
return merged;
|
|
34
|
+
}
|
|
35
|
+
function component(config, defaultResources) {
|
|
36
|
+
return {
|
|
37
|
+
enabled: Cel.default(config?.enabled, true),
|
|
38
|
+
replicaCount: Cel.default(config?.replicas, 1),
|
|
39
|
+
resources: Cel.default(config?.resources, {
|
|
40
|
+
requests: { ...defaultResources.requests },
|
|
41
|
+
}),
|
|
42
|
+
podDisruptionBudget: Cel.default(config?.podDisruptionBudget, { maxUnavailable: 1 }),
|
|
43
|
+
nodeSelector: Cel.default(config?.nodeSelector, {}),
|
|
44
|
+
tolerations: Cel.default(config?.tolerations, []),
|
|
45
|
+
affinity: Cel.default(config?.affinity, {}),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Map the bootstrap spec onto Fairwinds `vpa` chart values.
|
|
50
|
+
*
|
|
51
|
+
* @param config - The bootstrap spec. Any field may be a schema reference.
|
|
52
|
+
* @param rawValues - Concrete chart values deep-merged over the result.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* mapVpaConfigToHelmValues({
|
|
57
|
+
* name: 'vpa',
|
|
58
|
+
* updater: { enabled: false },
|
|
59
|
+
* admissionController: { enabled: false },
|
|
60
|
+
* });
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
export function mapVpaConfigToHelmValues(config, rawValues = {}) {
|
|
64
|
+
const recommender = config.recommender;
|
|
65
|
+
const updater = config.updater;
|
|
66
|
+
const admission = config.admissionController;
|
|
67
|
+
const flags = VPA_DEFAULT_RECOMMENDER_FLAGS;
|
|
68
|
+
const mapped = {
|
|
69
|
+
// Fixes every object name to `<name>-<component>`, independent of the chart name.
|
|
70
|
+
fullnameOverride: config.name,
|
|
71
|
+
priorityClassName: Cel.default(config.priorityClassName, ''),
|
|
72
|
+
serviceAccount: {
|
|
73
|
+
create: true,
|
|
74
|
+
annotations: Cel.default(config.serviceAccountAnnotations, {}),
|
|
75
|
+
},
|
|
76
|
+
recommender: {
|
|
77
|
+
...component(recommender, VPA_DEFAULT_RESOURCES.recommender),
|
|
78
|
+
extraArgs: {
|
|
79
|
+
v: Cel.default(recommender?.logLevel, 4),
|
|
80
|
+
'pod-recommendation-min-cpu-millicores': Cel.default(recommender?.podRecommendationMinCpuMillicores, flags.podRecommendationMinCpuMillicores),
|
|
81
|
+
'pod-recommendation-min-memory-mb': Cel.default(recommender?.podRecommendationMinMemoryMb, flags.podRecommendationMinMemoryMb),
|
|
82
|
+
'target-cpu-percentile': Cel.default(recommender?.targetCpuPercentile, flags.targetCpuPercentile),
|
|
83
|
+
'target-memory-percentile': Cel.default(recommender?.targetMemoryPercentile, flags.targetMemoryPercentile),
|
|
84
|
+
'recommendation-margin-fraction': Cel.default(recommender?.recommendationMarginFraction, flags.recommendationMarginFraction),
|
|
85
|
+
'cpu-histogram-decay-half-life': Cel.default(recommender?.cpuHistogramDecayHalfLife, flags.cpuHistogramDecayHalfLife),
|
|
86
|
+
'memory-histogram-decay-half-life': Cel.default(recommender?.memoryHistogramDecayHalfLife, flags.memoryHistogramDecayHalfLife),
|
|
87
|
+
'memory-aggregation-interval': Cel.default(recommender?.memoryAggregationInterval, flags.memoryAggregationInterval),
|
|
88
|
+
'memory-aggregation-interval-count': Cel.default(recommender?.memoryAggregationIntervalCount, flags.memoryAggregationIntervalCount),
|
|
89
|
+
storage: Cel.default(recommender?.storage, flags.storage),
|
|
90
|
+
'history-length': Cel.default(recommender?.historyLength, flags.historyLength),
|
|
91
|
+
'prometheus-address': Cel.default(recommender?.prometheusAddress, flags.prometheusAddress),
|
|
92
|
+
'recommender-name': Cel.default(recommender?.recommenderName, flags.recommenderName),
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
updater: {
|
|
96
|
+
...component(updater, VPA_DEFAULT_RESOURCES.updater),
|
|
97
|
+
extraArgs: {
|
|
98
|
+
'min-replicas': Cel.default(updater?.minReplicas, VPA_DEFAULT_UPDATER_FLAGS.minReplicas),
|
|
99
|
+
'eviction-tolerance': Cel.default(updater?.evictionTolerance, VPA_DEFAULT_UPDATER_FLAGS.evictionTolerance),
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
admissionController: {
|
|
103
|
+
...component(admission, VPA_DEFAULT_RESOURCES.admissionController),
|
|
104
|
+
registerWebhook: false,
|
|
105
|
+
generateCertificate: Cel.default(admission?.certificate?.generate, true),
|
|
106
|
+
// The chart's own default, which it renders through `tpl`: `<name>-tls-secret`.
|
|
107
|
+
secretName: Cel.default(admission?.certificate?.secretName, VPA_DEFAULT_TLS_SECRET_NAME),
|
|
108
|
+
tlsSecretKeys: Cel.default(admission?.certificate?.secretKeys, []),
|
|
109
|
+
mutatingWebhookConfiguration: {
|
|
110
|
+
failurePolicy: Cel.default(admission?.webhook?.failurePolicy, 'Ignore'),
|
|
111
|
+
timeoutSeconds: Cel.default(admission?.webhook?.timeoutSeconds, 5),
|
|
112
|
+
namespaceSelector: Cel.default(admission?.webhook?.namespaceSelector, {}),
|
|
113
|
+
objectSelector: Cel.default(admission?.webhook?.objectSelector, {}),
|
|
114
|
+
annotations: Cel.default(admission?.webhook?.annotations, {}),
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
'metrics-server': { enabled: Cel.default(config.metricsServer?.enabled, false) },
|
|
118
|
+
};
|
|
119
|
+
return deepMerge(mapped, rawValues);
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=helm-values-mapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helm-values-mapper.js","sourceRoot":"","sources":["../../../../src/factories/vpa/utils/helm-values-mapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factories/vpa/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EACL,0BAA0B,EAC1B,KAAK,kBAAkB,EACvB,iCAAiC,EACjC,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/factories/vpa/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EACL,0BAA0B,EAE1B,iCAAiC,EACjC,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { VerticalPodAutoscalerSpec, VpaBootstrapConfig } from '../types.js';
|
|
2
|
+
/** One finding from a VPA validator. */
|
|
3
|
+
export interface VpaValidationIssue {
|
|
4
|
+
severity: 'error' | 'warning';
|
|
5
|
+
/** Dotted path of the offending field, relative to `spec`. */
|
|
6
|
+
path: string;
|
|
7
|
+
message: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Validate a `VerticalPodAutoscaler` spec.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const errors = validateVerticalPodAutoscalerSpec(spec).filter((i) => i.severity === 'error');
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare function validateVerticalPodAutoscalerSpec(spec: VerticalPodAutoscalerSpec): VpaValidationIssue[];
|
|
18
|
+
/**
|
|
19
|
+
* Validate the `vpaBootstrap` spec. All findings are warnings.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* validateVpaBootstrapConfig({ name: 'vpa', admissionController: { enabled: false } });
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare function validateVpaBootstrapConfig(config: VpaBootstrapConfig): VpaValidationIssue[];
|
|
27
|
+
/**
|
|
28
|
+
* Warnings for autoscalers declared in the current composition that scale the
|
|
29
|
+
* VPA's target on a resource the VPA also sets. Empty outside a composition
|
|
30
|
+
* and for `updateMode: 'Off'`.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* findVpaAutoscalerConflicts(spec, 'default');
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare function findVpaAutoscalerConflicts(spec: VerticalPodAutoscalerSpec, namespace: string | undefined): VpaValidationIssue[];
|
|
38
|
+
/** Log validator warnings, once per composition run. Used by the factories. */
|
|
39
|
+
export declare function warnVpaIssues(source: string, issues: VpaValidationIssue[]): void;
|
|
40
|
+
/** Throw on validator errors. Used by the factories. */
|
|
41
|
+
export declare function assertNoVpaErrors(name: unknown, issues: VpaValidationIssue[]): void;
|
|
42
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/factories/vpa/utils/validation.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACV,yBAAyB,EACzB,kBAAkB,EAEnB,MAAM,aAAa,CAAC;AAErB,wCAAwC;AACxC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAcD;;;;;;;GAOG;AACH,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,yBAAyB,GAC9B,kBAAkB,EAAE,CA0DtB;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB,EAAE,CA+B3F;AA0DD;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,yBAAyB,EAC/B,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,kBAAkB,EAAE,CAwCtB;AAED,+EAA+E;AAC/E,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAKhF;AAED,wDAAwD;AACxD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAI,CASnF"}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
// Checks for common Vertical Pod Autoscaler mistakes.
|
|
2
|
+
//
|
|
3
|
+
// Errors are things the API server or the VPA rejects; the factory throws on
|
|
4
|
+
// them. Warnings are legal but usually unintended. Values that are schema
|
|
5
|
+
// references or CEL expressions are only known at reconcile time and are
|
|
6
|
+
// skipped.
|
|
7
|
+
//
|
|
8
|
+
// The HPA check reads the other resources already declared in the current
|
|
9
|
+
// composition. A VPA that sets CPU or memory while an HPA (or a KEDA
|
|
10
|
+
// ScaledObject, which creates one) scales the same workload on that resource
|
|
11
|
+
// makes the two controllers fight: the VPA changes the requests the HPA's
|
|
12
|
+
// utilization is computed against. The KEDA factory makes the same check the
|
|
13
|
+
// other way round, so declaration order does not matter.
|
|
14
|
+
import { getCurrentCompositionContext } from '../../../core/composition/context.js';
|
|
15
|
+
import { TypeKroError } from '../../../core/errors.js';
|
|
16
|
+
import { getComponentLogger } from '../../../core/logging/index.js';
|
|
17
|
+
import { isCelExpression, isKubernetesRef } from '../../../utils/type-guards.js';
|
|
18
|
+
const logger = getComponentLogger('vpa-validation');
|
|
19
|
+
const RESOURCES = ['cpu', 'memory'];
|
|
20
|
+
function isGraphValue(value) {
|
|
21
|
+
return isKubernetesRef(value) || isCelExpression(value);
|
|
22
|
+
}
|
|
23
|
+
function concrete(value) {
|
|
24
|
+
return value === undefined || isGraphValue(value) ? undefined : value;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Validate a `VerticalPodAutoscaler` spec.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* const errors = validateVerticalPodAutoscalerSpec(spec).filter((i) => i.severity === 'error');
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export function validateVerticalPodAutoscalerSpec(spec) {
|
|
35
|
+
const issues = [];
|
|
36
|
+
if (isGraphValue(spec))
|
|
37
|
+
return issues;
|
|
38
|
+
const error = (path, message) => issues.push({ severity: 'error', path, message });
|
|
39
|
+
const warn = (path, message) => issues.push({ severity: 'warning', path, message });
|
|
40
|
+
const target = spec?.targetRef;
|
|
41
|
+
if (!target || (!isGraphValue(target) && (!target.kind || !target.name))) {
|
|
42
|
+
error('targetRef', 'targetRef needs a kind and a name');
|
|
43
|
+
}
|
|
44
|
+
const mode = concrete(spec?.updatePolicy?.updateMode);
|
|
45
|
+
if (mode === 'Auto') {
|
|
46
|
+
warn('updatePolicy.updateMode', '"Auto" is deprecated since VPA 1.5; use "Recreate" or "InPlaceOrRecreate"');
|
|
47
|
+
}
|
|
48
|
+
if (mode === 'InPlace') {
|
|
49
|
+
warn('updatePolicy.updateMode', '"InPlace" needs the InPlace feature gate on the admission controller and the updater ' +
|
|
50
|
+
'(--feature-gates=InPlace=true)');
|
|
51
|
+
}
|
|
52
|
+
const recommenders = concrete(spec?.recommenders);
|
|
53
|
+
if (Array.isArray(recommenders) && recommenders.length > 1) {
|
|
54
|
+
error('recommenders', 'at most one recommender is supported');
|
|
55
|
+
}
|
|
56
|
+
const policies = concrete(spec?.resourcePolicy?.containerPolicies);
|
|
57
|
+
if (Array.isArray(policies)) {
|
|
58
|
+
const seen = new Set();
|
|
59
|
+
policies.forEach((policy, index) => {
|
|
60
|
+
const name = concrete(policy?.containerName);
|
|
61
|
+
if (typeof name === 'string') {
|
|
62
|
+
if (seen.has(name)) {
|
|
63
|
+
error(`resourcePolicy.containerPolicies[${index}].containerName`, `duplicate policy for "${name}"`);
|
|
64
|
+
}
|
|
65
|
+
seen.add(name);
|
|
66
|
+
}
|
|
67
|
+
const controlled = concrete(policy?.controlledResources);
|
|
68
|
+
if (Array.isArray(controlled) && controlled.length === 0) {
|
|
69
|
+
warn(`resourcePolicy.containerPolicies[${index}].controlledResources`, 'an empty list controls nothing; use mode: "Off" to exclude a container');
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
return issues;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Validate the `vpaBootstrap` spec. All findings are warnings.
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```typescript
|
|
80
|
+
* validateVpaBootstrapConfig({ name: 'vpa', admissionController: { enabled: false } });
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
export function validateVpaBootstrapConfig(config) {
|
|
84
|
+
const issues = [];
|
|
85
|
+
if (isGraphValue(config))
|
|
86
|
+
return issues;
|
|
87
|
+
const warn = (path, message) => issues.push({ severity: 'warning', path, message });
|
|
88
|
+
const enabled = (value) => concrete(value) !== false;
|
|
89
|
+
if (!enabled(config.recommender?.enabled)) {
|
|
90
|
+
warn('recommender.enabled', 'no VPA gets a recommendation without a recommender');
|
|
91
|
+
}
|
|
92
|
+
if (enabled(config.updater?.enabled) && !enabled(config.admissionController?.enabled)) {
|
|
93
|
+
warn('updater.enabled', 'the updater evicts pods that only the admission controller resizes on restart; ' +
|
|
94
|
+
'disable both for recommend-only');
|
|
95
|
+
}
|
|
96
|
+
for (const name of ['recommender', 'updater']) {
|
|
97
|
+
const replicas = concrete(config[name]?.replicas);
|
|
98
|
+
if (typeof replicas === 'number' && replicas > 1) {
|
|
99
|
+
warn(`${name}.replicas`, 'this chart grants no leader-election lease, so extra replicas run in parallel');
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
const storage = concrete(config.recommender?.storage);
|
|
103
|
+
if (storage === 'prometheus' && concrete(config.recommender?.prometheusAddress) === undefined) {
|
|
104
|
+
warn('recommender.prometheusAddress', 'defaults to http://prometheus.monitoring.svc');
|
|
105
|
+
}
|
|
106
|
+
return issues;
|
|
107
|
+
}
|
|
108
|
+
// A plain clone of a declared resource. `toJSON` drops schema references
|
|
109
|
+
// (functions), so only concrete names are compared.
|
|
110
|
+
function manifestOf(resource) {
|
|
111
|
+
try {
|
|
112
|
+
return JSON.parse(JSON.stringify(resource));
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
return undefined;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
function hpaResources(spec) {
|
|
119
|
+
if (typeof spec.targetCPUUtilizationPercentage === 'number')
|
|
120
|
+
return ['cpu'];
|
|
121
|
+
const metrics = spec.metrics;
|
|
122
|
+
// autoscaling/v2 without metrics defaults to 80% CPU.
|
|
123
|
+
if (!Array.isArray(metrics) || metrics.length === 0)
|
|
124
|
+
return ['cpu'];
|
|
125
|
+
return RESOURCES.filter((name) => metrics.some((metric) => (metric.resource ?? metric.containerResource)?.name === name));
|
|
126
|
+
}
|
|
127
|
+
function scaledObjectResources(spec) {
|
|
128
|
+
const triggers = spec.triggers;
|
|
129
|
+
if (!Array.isArray(triggers))
|
|
130
|
+
return [];
|
|
131
|
+
return RESOURCES.filter((name) => triggers.some((trigger) => trigger.type === name));
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Resources the VPA sets. Containers without a policy of their own follow the
|
|
135
|
+
* `'*'` policy, or get cpu and memory when there is none, so only a `'*'`
|
|
136
|
+
* policy can narrow them; named policies can only add.
|
|
137
|
+
*/
|
|
138
|
+
function vpaResources(spec) {
|
|
139
|
+
const list = concrete(spec.resourcePolicy?.containerPolicies);
|
|
140
|
+
const policies = Array.isArray(list) ? list : [];
|
|
141
|
+
const controlledBy = (policy) => {
|
|
142
|
+
if (concrete(policy?.mode) === 'Off')
|
|
143
|
+
return [];
|
|
144
|
+
const resources = concrete(policy?.controlledResources);
|
|
145
|
+
return Array.isArray(resources) ? resources : RESOURCES;
|
|
146
|
+
};
|
|
147
|
+
const star = policies.find((policy) => concrete(policy?.containerName) === '*');
|
|
148
|
+
const controlled = new Set(star ? controlledBy(star) : RESOURCES);
|
|
149
|
+
for (const policy of policies) {
|
|
150
|
+
if (policy !== star)
|
|
151
|
+
for (const name of controlledBy(policy))
|
|
152
|
+
controlled.add(name);
|
|
153
|
+
}
|
|
154
|
+
return RESOURCES.filter((name) => controlled.has(name));
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Warnings for autoscalers declared in the current composition that scale the
|
|
158
|
+
* VPA's target on a resource the VPA also sets. Empty outside a composition
|
|
159
|
+
* and for `updateMode: 'Off'`.
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
* ```typescript
|
|
163
|
+
* findVpaAutoscalerConflicts(spec, 'default');
|
|
164
|
+
* ```
|
|
165
|
+
*/
|
|
166
|
+
export function findVpaAutoscalerConflicts(spec, namespace) {
|
|
167
|
+
const context = getCurrentCompositionContext();
|
|
168
|
+
if (!context || isGraphValue(spec) || concrete(spec.updatePolicy?.updateMode) === 'Off') {
|
|
169
|
+
return [];
|
|
170
|
+
}
|
|
171
|
+
const kind = concrete(spec.targetRef?.kind);
|
|
172
|
+
const name = concrete(spec.targetRef?.name);
|
|
173
|
+
if (typeof kind !== 'string' || typeof name !== 'string')
|
|
174
|
+
return [];
|
|
175
|
+
const ours = vpaResources(spec);
|
|
176
|
+
const issues = [];
|
|
177
|
+
for (const resource of Object.values(context.resources)) {
|
|
178
|
+
const manifest = manifestOf(resource);
|
|
179
|
+
const other = manifest?.spec;
|
|
180
|
+
if (!manifest || !other)
|
|
181
|
+
continue;
|
|
182
|
+
if (concrete(namespace) !== undefined && manifest.metadata?.namespace !== undefined) {
|
|
183
|
+
if (manifest.metadata.namespace !== namespace)
|
|
184
|
+
continue;
|
|
185
|
+
}
|
|
186
|
+
const isHpa = manifest.kind === 'HorizontalPodAutoscaler';
|
|
187
|
+
const isScaledObject = manifest.kind === 'ScaledObject' && manifest.apiVersion?.startsWith('keda.sh/') === true;
|
|
188
|
+
if (!isHpa && !isScaledObject)
|
|
189
|
+
continue;
|
|
190
|
+
const ref = other.scaleTargetRef;
|
|
191
|
+
// A ScaledObject's scaleTargetRef.kind defaults to Deployment.
|
|
192
|
+
const refKind = ref?.kind ?? (isScaledObject ? 'Deployment' : undefined);
|
|
193
|
+
if (ref?.name !== name || refKind !== kind)
|
|
194
|
+
continue;
|
|
195
|
+
const shared = (isHpa ? hpaResources(other) : scaledObjectResources(other)).filter((r) => ours.includes(r));
|
|
196
|
+
if (shared.length === 0)
|
|
197
|
+
continue;
|
|
198
|
+
issues.push({
|
|
199
|
+
severity: 'warning',
|
|
200
|
+
path: 'updatePolicy.updateMode',
|
|
201
|
+
message: `${manifest.kind} "${manifest.metadata?.name}" also scales ${kind}/${name} on ` +
|
|
202
|
+
`${shared.join(' and ')}; set updateMode "Off", or limit controlledResources to what ` +
|
|
203
|
+
'the horizontal autoscaler does not use',
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
return issues;
|
|
207
|
+
}
|
|
208
|
+
/** Log validator warnings, once per composition run. Used by the factories. */
|
|
209
|
+
export function warnVpaIssues(source, issues) {
|
|
210
|
+
if (getCurrentCompositionContext()?.suppressResourceDiagnostics)
|
|
211
|
+
return;
|
|
212
|
+
for (const issue of issues) {
|
|
213
|
+
if (issue.severity === 'warning')
|
|
214
|
+
logger.warn(`${source}: ${issue.path}: ${issue.message}`);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
/** Throw on validator errors. Used by the factories. */
|
|
218
|
+
export function assertNoVpaErrors(name, issues) {
|
|
219
|
+
const errors = issues.filter((issue) => issue.severity === 'error');
|
|
220
|
+
if (errors.length === 0)
|
|
221
|
+
return;
|
|
222
|
+
const label = typeof name === 'string' && !isGraphValue(name) ? ` "${name}"` : '';
|
|
223
|
+
throw new TypeKroError(`Invalid VerticalPodAutoscaler${label}: ${errors.map((i) => `${i.path}: ${i.message}`).join('; ')}`, 'VPA_INVALID_SPEC', { issues: errors });
|
|
224
|
+
}
|
|
225
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../../src/factories/vpa/utils/validation.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "typekro",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.45.0",
|
|
4
4
|
"description": "A control plane aware framework for orchestrating kubernetes resources like a programmer.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -26,6 +26,10 @@
|
|
|
26
26
|
"import": "./dist/factories/helm/index.js",
|
|
27
27
|
"types": "./dist/factories/helm/index.d.ts"
|
|
28
28
|
},
|
|
29
|
+
"./keda": {
|
|
30
|
+
"import": "./dist/factories/keda/index.js",
|
|
31
|
+
"types": "./dist/factories/keda/index.d.ts"
|
|
32
|
+
},
|
|
29
33
|
"./harbor": {
|
|
30
34
|
"import": "./dist/factories/harbor/index.js",
|
|
31
35
|
"types": "./dist/factories/harbor/index.d.ts"
|
|
@@ -42,10 +46,18 @@
|
|
|
42
46
|
"import": "./dist/factories/kubernetes/index.js",
|
|
43
47
|
"types": "./dist/factories/kubernetes/index.d.ts"
|
|
44
48
|
},
|
|
49
|
+
"./vpa": {
|
|
50
|
+
"import": "./dist/factories/vpa/index.js",
|
|
51
|
+
"types": "./dist/factories/vpa/index.d.ts"
|
|
52
|
+
},
|
|
45
53
|
"./traefik": {
|
|
46
54
|
"import": "./dist/factories/traefik/index.js",
|
|
47
55
|
"types": "./dist/factories/traefik/index.d.ts"
|
|
48
56
|
},
|
|
57
|
+
"./crowdsec": {
|
|
58
|
+
"import": "./dist/factories/crowdsec/index.js",
|
|
59
|
+
"types": "./dist/factories/crowdsec/index.d.ts"
|
|
60
|
+
},
|
|
49
61
|
"./gateway-api": {
|
|
50
62
|
"import": "./dist/factories/gateway-api/index.js",
|
|
51
63
|
"types": "./dist/factories/gateway-api/index.d.ts"
|
|
@@ -126,10 +138,18 @@
|
|
|
126
138
|
"import": "./dist/factories/hatchet/index.js",
|
|
127
139
|
"types": "./dist/factories/hatchet/index.d.ts"
|
|
128
140
|
},
|
|
141
|
+
"./karpenter": {
|
|
142
|
+
"import": "./dist/factories/karpenter/index.js",
|
|
143
|
+
"types": "./dist/factories/karpenter/index.d.ts"
|
|
144
|
+
},
|
|
129
145
|
"./containers": {
|
|
130
146
|
"import": "./dist/core/containers/index.js",
|
|
131
147
|
"types": "./dist/core/containers/index.d.ts"
|
|
132
148
|
},
|
|
149
|
+
"./aws-load-balancer-controller": {
|
|
150
|
+
"import": "./dist/factories/aws-load-balancer-controller/index.js",
|
|
151
|
+
"types": "./dist/factories/aws-load-balancer-controller/index.d.ts"
|
|
152
|
+
},
|
|
133
153
|
"./searxng": {
|
|
134
154
|
"import": "./dist/factories/searxng/index.js",
|
|
135
155
|
"types": "./dist/factories/searxng/index.d.ts"
|