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,67 @@
|
|
|
1
|
+
/** API group/version of `NodePool` (and `NodeClaim`). */
|
|
2
|
+
export declare const KARPENTER_API_VERSION = "karpenter.sh/v1";
|
|
3
|
+
/** API group/version of the AWS provider's `EC2NodeClass`. */
|
|
4
|
+
export declare const KARPENTER_AWS_API_VERSION = "karpenter.k8s.aws/v1";
|
|
5
|
+
/** API group of `EC2NodeClass`, as a `nodeClassRef.group`. */
|
|
6
|
+
export declare const KARPENTER_AWS_GROUP = "karpenter.k8s.aws";
|
|
7
|
+
/** Pinned chart version, used for both `karpenter-crd` and `karpenter`. */
|
|
8
|
+
export declare const DEFAULT_KARPENTER_CHART_VERSION = "1.14.1";
|
|
9
|
+
/** Controller chart name inside the OCI registry. */
|
|
10
|
+
export declare const KARPENTER_CHART_NAME = "karpenter";
|
|
11
|
+
/** CRD chart name inside the OCI registry. */
|
|
12
|
+
export declare const KARPENTER_CRD_CHART_NAME = "karpenter-crd";
|
|
13
|
+
/** Official OCI registry holding both charts. */
|
|
14
|
+
export declare const DEFAULT_KARPENTER_REPOSITORY_URL = "oci://public.ecr.aws/karpenter";
|
|
15
|
+
/** `HelmRepository` name owned by the shared singleton composition. */
|
|
16
|
+
export declare const DEFAULT_KARPENTER_REPOSITORY_NAME = "karpenter-repo";
|
|
17
|
+
/** Install namespace, as in the upstream getting-started guide. */
|
|
18
|
+
export declare const DEFAULT_KARPENTER_NAMESPACE = "kube-system";
|
|
19
|
+
/**
|
|
20
|
+
* Well-known label keys usable in `NodePool` requirements. (`karpenter.sh/nodepool`
|
|
21
|
+
* is set on every node but is not allowed as a requirement.)
|
|
22
|
+
*
|
|
23
|
+
* @see https://karpenter.sh/docs/concepts/scheduling/#well-known-labels
|
|
24
|
+
*/
|
|
25
|
+
export declare const KARPENTER_LABELS: {
|
|
26
|
+
readonly capacityType: "karpenter.sh/capacity-type";
|
|
27
|
+
readonly instanceType: "node.kubernetes.io/instance-type";
|
|
28
|
+
readonly instanceCategory: "karpenter.k8s.aws/instance-category";
|
|
29
|
+
readonly instanceFamily: "karpenter.k8s.aws/instance-family";
|
|
30
|
+
readonly instanceGeneration: "karpenter.k8s.aws/instance-generation";
|
|
31
|
+
readonly instanceSize: "karpenter.k8s.aws/instance-size";
|
|
32
|
+
readonly instanceCpu: "karpenter.k8s.aws/instance-cpu";
|
|
33
|
+
readonly instanceMemory: "karpenter.k8s.aws/instance-memory";
|
|
34
|
+
readonly zone: "topology.kubernetes.io/zone";
|
|
35
|
+
readonly arch: "kubernetes.io/arch";
|
|
36
|
+
readonly os: "kubernetes.io/os";
|
|
37
|
+
};
|
|
38
|
+
/** Subnet and security-group tag Karpenter's getting-started guide discovers by. */
|
|
39
|
+
export declare const KARPENTER_DISCOVERY_TAG = "karpenter.sh/discovery";
|
|
40
|
+
/**
|
|
41
|
+
* Chart default tolerations, restated because a Helm list value replaces the
|
|
42
|
+
* chart's list rather than merging with it.
|
|
43
|
+
*/
|
|
44
|
+
export declare const KARPENTER_DEFAULT_TOLERATIONS: readonly [{
|
|
45
|
+
readonly key: "CriticalAddonsOnly";
|
|
46
|
+
readonly operator: "Exists";
|
|
47
|
+
}];
|
|
48
|
+
/** Chart default topology spread: one controller replica per zone. */
|
|
49
|
+
export declare const KARPENTER_DEFAULT_TOPOLOGY_SPREAD_CONSTRAINTS: readonly [{
|
|
50
|
+
readonly maxSkew: 1;
|
|
51
|
+
readonly topologyKey: "topology.kubernetes.io/zone";
|
|
52
|
+
readonly whenUnsatisfiable: "DoNotSchedule";
|
|
53
|
+
}];
|
|
54
|
+
/**
|
|
55
|
+
* Default controller resources. A BestEffort controller is first to be starved
|
|
56
|
+
* and cannot reschedule onto the nodes it launches. Pass `resources: {}` to opt out.
|
|
57
|
+
*/
|
|
58
|
+
export declare const KARPENTER_DEFAULT_RESOURCES: {
|
|
59
|
+
readonly requests: {
|
|
60
|
+
readonly cpu: "1";
|
|
61
|
+
readonly memory: "1Gi";
|
|
62
|
+
};
|
|
63
|
+
readonly limits: {
|
|
64
|
+
readonly memory: "1Gi";
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/factories/karpenter/constants.ts"],"names":[],"mappings":"AAOA,yDAAyD;AACzD,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,8DAA8D;AAC9D,eAAO,MAAM,yBAAyB,yBAAyB,CAAC;AAChE,8DAA8D;AAC9D,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AAEvD,2EAA2E;AAC3E,eAAO,MAAM,+BAA+B,WAAW,CAAC;AACxD,qDAAqD;AACrD,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAChD,8CAA8C;AAC9C,eAAO,MAAM,wBAAwB,kBAAkB,CAAC;AACxD,iDAAiD;AACjD,eAAO,MAAM,gCAAgC,mCAAmC,CAAC;AACjF,uEAAuE;AACvE,eAAO,MAAM,iCAAiC,mBAAmB,CAAC;AAClE,mEAAmE;AACnE,eAAO,MAAM,2BAA2B,gBAAgB,CAAC;AAEzD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;CAYnB,CAAC;AAEX,oFAAoF;AACpF,eAAO,MAAM,uBAAuB,2BAA2B,CAAC;AAEhE;;;GAGG;AACH,eAAO,MAAM,6BAA6B;;;EAEhC,CAAC;AAEX,sEAAsE;AACtE,eAAO,MAAM,6CAA6C;;;;EAEhD,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;CAG9B,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
// Karpenter factory constants.
|
|
2
|
+
//
|
|
3
|
+
// Verified against the official charts `karpenter` and `karpenter-crd` 1.14.1
|
|
4
|
+
// (appVersion `1.14.1`) published at `oci://public.ecr.aws/karpenter`.
|
|
5
|
+
//
|
|
6
|
+
// @see https://karpenter.sh/docs/upgrading/upgrade-guide/#crd-upgrades
|
|
7
|
+
/** API group/version of `NodePool` (and `NodeClaim`). */
|
|
8
|
+
export const KARPENTER_API_VERSION = 'karpenter.sh/v1';
|
|
9
|
+
/** API group/version of the AWS provider's `EC2NodeClass`. */
|
|
10
|
+
export const KARPENTER_AWS_API_VERSION = 'karpenter.k8s.aws/v1';
|
|
11
|
+
/** API group of `EC2NodeClass`, as a `nodeClassRef.group`. */
|
|
12
|
+
export const KARPENTER_AWS_GROUP = 'karpenter.k8s.aws';
|
|
13
|
+
/** Pinned chart version, used for both `karpenter-crd` and `karpenter`. */
|
|
14
|
+
export const DEFAULT_KARPENTER_CHART_VERSION = '1.14.1';
|
|
15
|
+
/** Controller chart name inside the OCI registry. */
|
|
16
|
+
export const KARPENTER_CHART_NAME = 'karpenter';
|
|
17
|
+
/** CRD chart name inside the OCI registry. */
|
|
18
|
+
export const KARPENTER_CRD_CHART_NAME = 'karpenter-crd';
|
|
19
|
+
/** Official OCI registry holding both charts. */
|
|
20
|
+
export const DEFAULT_KARPENTER_REPOSITORY_URL = 'oci://public.ecr.aws/karpenter';
|
|
21
|
+
/** `HelmRepository` name owned by the shared singleton composition. */
|
|
22
|
+
export const DEFAULT_KARPENTER_REPOSITORY_NAME = 'karpenter-repo';
|
|
23
|
+
/** Install namespace, as in the upstream getting-started guide. */
|
|
24
|
+
export const DEFAULT_KARPENTER_NAMESPACE = 'kube-system';
|
|
25
|
+
/**
|
|
26
|
+
* Well-known label keys usable in `NodePool` requirements. (`karpenter.sh/nodepool`
|
|
27
|
+
* is set on every node but is not allowed as a requirement.)
|
|
28
|
+
*
|
|
29
|
+
* @see https://karpenter.sh/docs/concepts/scheduling/#well-known-labels
|
|
30
|
+
*/
|
|
31
|
+
export const KARPENTER_LABELS = {
|
|
32
|
+
capacityType: 'karpenter.sh/capacity-type',
|
|
33
|
+
instanceType: 'node.kubernetes.io/instance-type',
|
|
34
|
+
instanceCategory: 'karpenter.k8s.aws/instance-category',
|
|
35
|
+
instanceFamily: 'karpenter.k8s.aws/instance-family',
|
|
36
|
+
instanceGeneration: 'karpenter.k8s.aws/instance-generation',
|
|
37
|
+
instanceSize: 'karpenter.k8s.aws/instance-size',
|
|
38
|
+
instanceCpu: 'karpenter.k8s.aws/instance-cpu',
|
|
39
|
+
instanceMemory: 'karpenter.k8s.aws/instance-memory',
|
|
40
|
+
zone: 'topology.kubernetes.io/zone',
|
|
41
|
+
arch: 'kubernetes.io/arch',
|
|
42
|
+
os: 'kubernetes.io/os',
|
|
43
|
+
};
|
|
44
|
+
/** Subnet and security-group tag Karpenter's getting-started guide discovers by. */
|
|
45
|
+
export const KARPENTER_DISCOVERY_TAG = 'karpenter.sh/discovery';
|
|
46
|
+
/**
|
|
47
|
+
* Chart default tolerations, restated because a Helm list value replaces the
|
|
48
|
+
* chart's list rather than merging with it.
|
|
49
|
+
*/
|
|
50
|
+
export const KARPENTER_DEFAULT_TOLERATIONS = [
|
|
51
|
+
{ key: 'CriticalAddonsOnly', operator: 'Exists' },
|
|
52
|
+
];
|
|
53
|
+
/** Chart default topology spread: one controller replica per zone. */
|
|
54
|
+
export const KARPENTER_DEFAULT_TOPOLOGY_SPREAD_CONSTRAINTS = [
|
|
55
|
+
{ maxSkew: 1, topologyKey: 'topology.kubernetes.io/zone', whenUnsatisfiable: 'DoNotSchedule' },
|
|
56
|
+
];
|
|
57
|
+
/**
|
|
58
|
+
* Default controller resources. A BestEffort controller is first to be starved
|
|
59
|
+
* and cannot reschedule onto the nodes it launches. Pass `resources: {}` to opt out.
|
|
60
|
+
*/
|
|
61
|
+
export const KARPENTER_DEFAULT_RESOURCES = {
|
|
62
|
+
requests: { cpu: '1', memory: '1Gi' },
|
|
63
|
+
limits: { memory: '1Gi' },
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/factories/karpenter/constants.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,EAAE;AACF,8EAA8E;AAC9E,uEAAuE;AACvE,EAAE;AACF,uEAAuE;AAEvE,yDAAyD;AACzD,MAAM,CAAC,MAAM,qBAAqB,GAAG,iBAAiB,CAAC;AACvD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,yBAAyB,GAAG,sBAAsB,CAAC;AAChE,8DAA8D;AAC9D,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAEvD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,+BAA+B,GAAG,QAAQ,CAAC;AACxD,qDAAqD;AACrD,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAAC;AAChD,8CAA8C;AAC9C,MAAM,CAAC,MAAM,wBAAwB,GAAG,eAAe,CAAC;AACxD,iDAAiD;AACjD,MAAM,CAAC,MAAM,gCAAgC,GAAG,gCAAgC,CAAC;AACjF,uEAAuE;AACvE,MAAM,CAAC,MAAM,iCAAiC,GAAG,gBAAgB,CAAC;AAClE,mEAAmE;AACnE,MAAM,CAAC,MAAM,2BAA2B,GAAG,aAAa,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,YAAY,EAAE,4BAA4B;IAC1C,YAAY,EAAE,kCAAkC;IAChD,gBAAgB,EAAE,qCAAqC;IACvD,cAAc,EAAE,mCAAmC;IACnD,kBAAkB,EAAE,uCAAuC;IAC3D,YAAY,EAAE,iCAAiC;IAC/C,WAAW,EAAE,gCAAgC;IAC7C,cAAc,EAAE,mCAAmC;IACnD,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE,oBAAoB;IAC1B,EAAE,EAAE,kBAAkB;CACd,CAAC;AAEX,oFAAoF;AACpF,MAAM,CAAC,MAAM,uBAAuB,GAAG,wBAAwB,CAAC;AAEhE;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,EAAE,GAAG,EAAE,oBAAoB,EAAE,QAAQ,EAAE,QAAQ,EAAE;CACzC,CAAC;AAEX,sEAAsE;AACtE,MAAM,CAAC,MAAM,6CAA6C,GAAG;IAC3D,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,6BAA6B,EAAE,iBAAiB,EAAE,eAAe,EAAE;CACtF,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE;IACrC,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;CACjB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Karpenter for EKS: a Flux bootstrap for the controller plus typed
|
|
3
|
+
* `NodePool` (`karpenter.sh/v1`) and `EC2NodeClass` (`karpenter.k8s.aws/v1`)
|
|
4
|
+
* factories. TypeKro creates no AWS resources.
|
|
5
|
+
*
|
|
6
|
+
* @see docs/api/karpenter/index.md
|
|
7
|
+
* @see https://karpenter.sh/docs/
|
|
8
|
+
*/
|
|
9
|
+
export * from './compositions/index.js';
|
|
10
|
+
export * from './constants.js';
|
|
11
|
+
export * from './resources/index.js';
|
|
12
|
+
export * from './types.js';
|
|
13
|
+
export * from './utils/index.js';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/factories/karpenter/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Karpenter for EKS: a Flux bootstrap for the controller plus typed
|
|
3
|
+
* `NodePool` (`karpenter.sh/v1`) and `EC2NodeClass` (`karpenter.k8s.aws/v1`)
|
|
4
|
+
* factories. TypeKro creates no AWS resources.
|
|
5
|
+
*
|
|
6
|
+
* @see docs/api/karpenter/index.md
|
|
7
|
+
* @see https://karpenter.sh/docs/
|
|
8
|
+
*/
|
|
9
|
+
export * from './compositions/index.js';
|
|
10
|
+
export * from './constants.js';
|
|
11
|
+
export * from './resources/index.js';
|
|
12
|
+
export * from './types.js';
|
|
13
|
+
export * from './utils/index.js';
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/factories/karpenter/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Composable, Enhanced, ReadinessEvaluator } from '../../../core/types/index.js';
|
|
2
|
+
import type { EC2NodeClassConfig, EC2NodeClassSpec, EC2NodeClassStatus } from '../types.js';
|
|
3
|
+
/** `EC2NodeClass` readiness: `Ready=True` (AMIs, subnets, security groups and profile resolved). */
|
|
4
|
+
export declare const ec2NodeClassReadinessEvaluator: ReadinessEvaluator<unknown>;
|
|
5
|
+
/**
|
|
6
|
+
* Create a Karpenter `EC2NodeClass`.
|
|
7
|
+
*
|
|
8
|
+
* IMDS options are left to the CRD default (IMDSv2 required, hop limit 1).
|
|
9
|
+
* Throws on the errors {@link validateEC2NodeClassSpec} reports.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* ec2NodeClass({
|
|
14
|
+
* name: 'default',
|
|
15
|
+
* spec: {
|
|
16
|
+
* role: 'KarpenterNodeRole-my-cluster',
|
|
17
|
+
* amiSelectorTerms: [{ alias: 'al2023@latest' }],
|
|
18
|
+
* subnetSelectorTerms: [{ tags: { 'karpenter.sh/discovery': 'my-cluster' } }],
|
|
19
|
+
* securityGroupSelectorTerms: [{ tags: { 'karpenter.sh/discovery': 'my-cluster' } }],
|
|
20
|
+
* },
|
|
21
|
+
* id: 'defaultNodeClass',
|
|
22
|
+
* });
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export declare function ec2NodeClass(config: Composable<EC2NodeClassConfig>): Enhanced<EC2NodeClassSpec, EC2NodeClassStatus>;
|
|
26
|
+
//# sourceMappingURL=ec2-node-class.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ec2-node-class.d.ts","sourceRoot":"","sources":["../../../../src/factories/karpenter/resources/ec2-node-class.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAG7F,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAQ5F,oGAAoG;AACpG,eAAO,MAAM,8BAA8B,EAAE,kBAAkB,CAAC,OAAO,CAKpE,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,UAAU,CAAC,kBAAkB,CAAC,GACrC,QAAQ,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAqBhD"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
// Karpenter `EC2NodeClass` factory (`karpenter.k8s.aws/v1`, cluster-scoped).
|
|
2
|
+
import { registerPortableReadinessEvaluator } from '../../../core/readiness/index.js';
|
|
3
|
+
import { createResource } from '../../shared.js';
|
|
4
|
+
import { KARPENTER_AWS_API_VERSION } from '../constants.js';
|
|
5
|
+
import { assertNoKarpenterErrors, validateEC2NodeClassSpec, warnKarpenterIssues, } from '../utils/validation.js';
|
|
6
|
+
import { evaluateKarpenterReadiness } from './readiness.js';
|
|
7
|
+
/** `EC2NodeClass` readiness: `Ready=True` (AMIs, subnets, security groups and profile resolved). */
|
|
8
|
+
export const ec2NodeClassReadinessEvaluator = registerPortableReadinessEvaluator('typekro.readiness.karpenter.ec2-node-class', '1', (resource) => evaluateKarpenterReadiness('EC2NodeClass', resource));
|
|
9
|
+
/**
|
|
10
|
+
* Create a Karpenter `EC2NodeClass`.
|
|
11
|
+
*
|
|
12
|
+
* IMDS options are left to the CRD default (IMDSv2 required, hop limit 1).
|
|
13
|
+
* Throws on the errors {@link validateEC2NodeClassSpec} reports.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* ec2NodeClass({
|
|
18
|
+
* name: 'default',
|
|
19
|
+
* spec: {
|
|
20
|
+
* role: 'KarpenterNodeRole-my-cluster',
|
|
21
|
+
* amiSelectorTerms: [{ alias: 'al2023@latest' }],
|
|
22
|
+
* subnetSelectorTerms: [{ tags: { 'karpenter.sh/discovery': 'my-cluster' } }],
|
|
23
|
+
* securityGroupSelectorTerms: [{ tags: { 'karpenter.sh/discovery': 'my-cluster' } }],
|
|
24
|
+
* },
|
|
25
|
+
* id: 'defaultNodeClass',
|
|
26
|
+
* });
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export function ec2NodeClass(config) {
|
|
30
|
+
const spec = config.spec;
|
|
31
|
+
const issues = validateEC2NodeClassSpec(spec, config.name);
|
|
32
|
+
assertNoKarpenterErrors('EC2NodeClass', config.name, issues);
|
|
33
|
+
warnKarpenterIssues('ec2NodeClass', issues);
|
|
34
|
+
return createResource({
|
|
35
|
+
apiVersion: KARPENTER_AWS_API_VERSION,
|
|
36
|
+
kind: 'EC2NodeClass',
|
|
37
|
+
metadata: {
|
|
38
|
+
name: config.name,
|
|
39
|
+
...(config.labels ? { labels: config.labels } : {}),
|
|
40
|
+
...(config.annotations
|
|
41
|
+
? { annotations: config.annotations }
|
|
42
|
+
: {}),
|
|
43
|
+
},
|
|
44
|
+
spec,
|
|
45
|
+
...(config.id ? { id: config.id } : {}),
|
|
46
|
+
}, { scope: 'cluster' }).withReadinessEvaluator(ec2NodeClassReadinessEvaluator);
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=ec2-node-class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ec2-node-class.js","sourceRoot":"","sources":["../../../../src/factories/karpenter/resources/ec2-node-class.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAE7E,OAAO,EAAE,kCAAkC,EAAE,MAAM,kCAAkC,CAAC;AAEtF,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAE5D,oGAAoG;AACpG,MAAM,CAAC,MAAM,8BAA8B,GACzC,kCAAkC,CAChC,4CAA4C,EAC5C,GAAG,EACH,CAAC,QAAQ,EAAE,EAAE,CAAC,0BAA0B,CAAC,cAAc,EAAE,QAAQ,CAAC,CACnE,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAsC;IAEtC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAwB,CAAC;IAC7C,MAAM,MAAM,GAAG,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAc,CAAC,CAAC;IACrE,uBAAuB,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7D,mBAAmB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAC5C,OAAO,cAAc,CACnB;QACE,UAAU,EAAE,yBAAyB;QACrC,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAgC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7E,GAAG,CAAC,MAAM,CAAC,WAAW;gBACpB,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAqC,EAAE;gBAC/D,CAAC,CAAC,EAAE,CAAC;SACR;QACD,IAAI;QACJ,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxC,EACD,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC,sBAAsB,CAAC,8BAA8B,CAAC,CAAC;AAC3D,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { Composable, Enhanced, ReadinessEvaluator } from '../../../core/types/index.js';
|
|
2
|
+
import { type HelmRepositorySpec, type HelmRepositoryStatus } from '../../helm/helm-repository.js';
|
|
3
|
+
import type { HelmReleaseSpec, HelmReleaseStatus } from '../../helm/types.js';
|
|
4
|
+
import type { KarpenterHelmReleaseConfig, KarpenterHelmRepositoryConfig } from '../types.js';
|
|
5
|
+
/** Karpenter `HelmRelease` readiness (the shared Flux evaluator). */
|
|
6
|
+
export declare const karpenterHelmReleaseReadinessEvaluator: ReadinessEvaluator<unknown>;
|
|
7
|
+
/**
|
|
8
|
+
* Create the Flux `HelmRepository` for the official Karpenter OCI registry.
|
|
9
|
+
*
|
|
10
|
+
* OCI repositories publish no `Ready` condition; readiness falls back to Flux
|
|
11
|
+
* having accepted the object.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* karpenterHelmRepository({ id: 'karpenterRepository' });
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare function karpenterHelmRepository(config?: Composable<KarpenterHelmRepositoryConfig>): Enhanced<HelmRepositorySpec, HelmRepositoryStatus>;
|
|
19
|
+
/**
|
|
20
|
+
* Create the `HelmRelease` for the `karpenter-crd` chart.
|
|
21
|
+
*
|
|
22
|
+
* That chart ships the CRDs as templates, so Helm upgrades them with the
|
|
23
|
+
* release. Upstream recommends it over the controller chart's `crds/`
|
|
24
|
+
* directory, which Helm never upgrades.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* karpenterCrdHelmRelease({ name: 'karpenter-crd', id: 'karpenterCrdRelease' });
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function karpenterCrdHelmRelease(config: Composable<KarpenterHelmReleaseConfig>): Enhanced<HelmReleaseSpec, HelmReleaseStatus>;
|
|
32
|
+
/**
|
|
33
|
+
* Create the `HelmRelease` for the Karpenter controller chart.
|
|
34
|
+
*
|
|
35
|
+
* The chart's `crds/` directory is skipped on install and upgrade: install the
|
|
36
|
+
* CRDs with {@link karpenterCrdHelmRelease} or manage them elsewhere.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```typescript
|
|
40
|
+
* karpenterHelmRelease({
|
|
41
|
+
* name: 'karpenter',
|
|
42
|
+
* values: { settings: { clusterName: 'my-cluster' } },
|
|
43
|
+
* id: 'karpenterRelease',
|
|
44
|
+
* });
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export declare function karpenterHelmRelease(config: Composable<KarpenterHelmReleaseConfig>): Enhanced<HelmReleaseSpec, HelmReleaseStatus>;
|
|
48
|
+
//# sourceMappingURL=helm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helm.d.ts","sourceRoot":"","sources":["../../../../src/factories/karpenter/resources/helm.ts"],"names":[],"mappings":"AAIA,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,EAEV,eAAe,EACf,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAU7B,OAAO,KAAK,EAAE,0BAA0B,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAE7F,qEAAqE;AACrE,eAAO,MAAM,sCAAsC,EAAE,kBAAkB,CAAC,OAAO,CAC/B,CAAC;AAEjD;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,GAAE,UAAU,CAAC,6BAA6B,CAAM,GACrD,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAepD;AAqDD;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,UAAU,CAAC,0BAA0B,CAAC,GAC7C,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAE9C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,UAAU,CAAC,0BAA0B,CAAC,GAC7C,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAE9C"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
// Karpenter Helm resources: the shared OCI `HelmRepository` and the two
|
|
2
|
+
// `HelmRelease`s, `karpenter-crd` and `karpenter`.
|
|
3
|
+
import { DEFAULT_FLUX_NAMESPACE } from '../../../core/config/defaults.js';
|
|
4
|
+
import { createHelmRepositoryReadinessEvaluator, } from '../../helm/helm-repository.js';
|
|
5
|
+
import { helmReleaseLifecycle } from '../../helm/lifecycle.js';
|
|
6
|
+
import { createLabeledHelmReleaseEvaluator } from '../../helm/readiness-evaluators.js';
|
|
7
|
+
import { createResource } from '../../shared.js';
|
|
8
|
+
import { DEFAULT_KARPENTER_CHART_VERSION, DEFAULT_KARPENTER_NAMESPACE, DEFAULT_KARPENTER_REPOSITORY_NAME, DEFAULT_KARPENTER_REPOSITORY_URL, KARPENTER_CHART_NAME, KARPENTER_CRD_CHART_NAME, } from '../constants.js';
|
|
9
|
+
/** Karpenter `HelmRelease` readiness (the shared Flux evaluator). */
|
|
10
|
+
export const karpenterHelmReleaseReadinessEvaluator = createLabeledHelmReleaseEvaluator('Karpenter');
|
|
11
|
+
/**
|
|
12
|
+
* Create the Flux `HelmRepository` for the official Karpenter OCI registry.
|
|
13
|
+
*
|
|
14
|
+
* OCI repositories publish no `Ready` condition; readiness falls back to Flux
|
|
15
|
+
* having accepted the object.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* karpenterHelmRepository({ id: 'karpenterRepository' });
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export function karpenterHelmRepository(config = {}) {
|
|
23
|
+
return createResource({
|
|
24
|
+
...(config.id ? { id: config.id } : {}),
|
|
25
|
+
apiVersion: 'source.toolkit.fluxcd.io/v1',
|
|
26
|
+
kind: 'HelmRepository',
|
|
27
|
+
metadata: {
|
|
28
|
+
name: config.name ?? DEFAULT_KARPENTER_REPOSITORY_NAME,
|
|
29
|
+
namespace: config.namespace ?? DEFAULT_FLUX_NAMESPACE,
|
|
30
|
+
},
|
|
31
|
+
spec: {
|
|
32
|
+
type: 'oci',
|
|
33
|
+
url: config.url ?? DEFAULT_KARPENTER_REPOSITORY_URL,
|
|
34
|
+
interval: config.interval ?? '1h',
|
|
35
|
+
},
|
|
36
|
+
}).withReadinessEvaluator(createHelmRepositoryReadinessEvaluator('Karpenter'));
|
|
37
|
+
}
|
|
38
|
+
function karpenterRelease(chart, crds, config) {
|
|
39
|
+
const namespace = config.namespace ?? DEFAULT_FLUX_NAMESPACE;
|
|
40
|
+
return createResource({
|
|
41
|
+
...(config.id ? { id: config.id } : {}),
|
|
42
|
+
apiVersion: 'helm.toolkit.fluxcd.io/v2',
|
|
43
|
+
kind: 'HelmRelease',
|
|
44
|
+
metadata: { name: config.name, namespace },
|
|
45
|
+
spec: {
|
|
46
|
+
interval: '10m',
|
|
47
|
+
timeout: '10m',
|
|
48
|
+
chart: {
|
|
49
|
+
spec: {
|
|
50
|
+
chart,
|
|
51
|
+
version: config.version ?? DEFAULT_KARPENTER_CHART_VERSION,
|
|
52
|
+
sourceRef: {
|
|
53
|
+
kind: 'HelmRepository',
|
|
54
|
+
name: config.repositoryName ?? DEFAULT_KARPENTER_REPOSITORY_NAME,
|
|
55
|
+
namespace: config.repositoryNamespace ?? namespace,
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
targetNamespace: config.targetNamespace ?? DEFAULT_KARPENTER_NAMESPACE,
|
|
60
|
+
// Pinned so Flux does not compose `<targetNamespace>-<name>`.
|
|
61
|
+
releaseName: config.name,
|
|
62
|
+
// Karpenter's own policy, through the shared lifecycle helper: caller
|
|
63
|
+
// `install`, `upgrade` and `driftDetection` override it field by field.
|
|
64
|
+
// Install and upgrade take their timeout from `spec.timeout`.
|
|
65
|
+
...helmReleaseLifecycle(config, {
|
|
66
|
+
install: {
|
|
67
|
+
createNamespace: config.createNamespace ?? false,
|
|
68
|
+
...(crds ? { crds } : {}),
|
|
69
|
+
remediation: { retries: 3 },
|
|
70
|
+
},
|
|
71
|
+
upgrade: {
|
|
72
|
+
...(crds ? { crds } : {}),
|
|
73
|
+
remediation: { retries: 3, remediateLastFailure: true, strategy: 'rollback' },
|
|
74
|
+
},
|
|
75
|
+
driftDetection: { mode: 'enabled' },
|
|
76
|
+
}),
|
|
77
|
+
...(config.dependsOn
|
|
78
|
+
? { dependsOn: config.dependsOn }
|
|
79
|
+
: {}),
|
|
80
|
+
...(config.values ? { values: config.values } : {}),
|
|
81
|
+
},
|
|
82
|
+
}).withReadinessEvaluator(karpenterHelmReleaseReadinessEvaluator);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Create the `HelmRelease` for the `karpenter-crd` chart.
|
|
86
|
+
*
|
|
87
|
+
* That chart ships the CRDs as templates, so Helm upgrades them with the
|
|
88
|
+
* release. Upstream recommends it over the controller chart's `crds/`
|
|
89
|
+
* directory, which Helm never upgrades.
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* ```typescript
|
|
93
|
+
* karpenterCrdHelmRelease({ name: 'karpenter-crd', id: 'karpenterCrdRelease' });
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
export function karpenterCrdHelmRelease(config) {
|
|
97
|
+
return karpenterRelease(KARPENTER_CRD_CHART_NAME, undefined, config);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Create the `HelmRelease` for the Karpenter controller chart.
|
|
101
|
+
*
|
|
102
|
+
* The chart's `crds/` directory is skipped on install and upgrade: install the
|
|
103
|
+
* CRDs with {@link karpenterCrdHelmRelease} or manage them elsewhere.
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```typescript
|
|
107
|
+
* karpenterHelmRelease({
|
|
108
|
+
* name: 'karpenter',
|
|
109
|
+
* values: { settings: { clusterName: 'my-cluster' } },
|
|
110
|
+
* id: 'karpenterRelease',
|
|
111
|
+
* });
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
export function karpenterHelmRelease(config) {
|
|
115
|
+
return karpenterRelease(KARPENTER_CHART_NAME, 'Skip', config);
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=helm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helm.js","sourceRoot":"","sources":["../../../../src/factories/karpenter/resources/helm.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,mDAAmD;AAEnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE1E,OAAO,EACL,sCAAsC,GAGvC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,iCAAiC,EAAE,MAAM,oCAAoC,CAAC;AAMvF,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,EAC3B,iCAAiC,EACjC,gCAAgC,EAChC,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AAGzB,qEAAqE;AACrE,MAAM,CAAC,MAAM,sCAAsC,GACjD,iCAAiC,CAAC,WAAW,CAAC,CAAC;AAEjD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CACrC,SAAoD,EAAE;IAEtD,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,IAAI,iCAAiC;YACtD,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,sBAAsB;SACtD;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,KAAK;YACX,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,gCAAgC;YACnD,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;SAClC;KACF,CAAC,CAAC,sBAAsB,CAAC,sCAAsC,CAAC,WAAW,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,gBAAgB,CACvB,KAAa,EACb,IAAuC,EACvC,MAA8C;IAE9C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,sBAAsB,CAAC;IAC7D,OAAO,cAAc,CAAqC;QACxD,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,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE;QAC1C,IAAI,EAAE;YACJ,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,IAAI,EAAE;oBACJ,KAAK;oBACL,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,+BAA+B;oBAC1D,SAAS,EAAE;wBACT,IAAI,EAAE,gBAAyB;wBAC/B,IAAI,EAAE,MAAM,CAAC,cAAc,IAAI,iCAAiC;wBAChE,SAAS,EAAE,MAAM,CAAC,mBAAmB,IAAI,SAAS;qBACnD;iBACF;aACF;YACD,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,2BAA2B;YACtE,8DAA8D;YAC9D,WAAW,EAAE,MAAM,CAAC,IAAI;YACxB,sEAAsE;YACtE,wEAAwE;YACxE,8DAA8D;YAC9D,GAAG,oBAAoB,CAAC,MAAM,EAAE;gBAC9B,OAAO,EAAE;oBACP,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,KAAK;oBAChD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzB,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;iBAC5B;gBACD,OAAO,EAAE;oBACP,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzB,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE;iBAC9E;gBACD,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;aACpC,CAAC;YACF,GAAG,CAAC,MAAM,CAAC,SAAS;gBAClB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAmD,EAAE;gBAC3E,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAiC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/E;KACF,CAAC,CAAC,sBAAsB,CAAC,sCAAsC,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAA8C;IAE9C,OAAO,gBAAgB,CAAC,wBAAwB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACvE,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAA8C;IAE9C,OAAO,gBAAgB,CAAC,oBAAoB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factories/karpenter/resources/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/factories/karpenter/resources/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Composable, Enhanced, ReadinessEvaluator } from '../../../core/types/index.js';
|
|
2
|
+
import type { NodePoolConfig, NodePoolSpec, NodePoolStatus } from '../types.js';
|
|
3
|
+
/** `NodePool` readiness: `Ready=True` for the current generation. */
|
|
4
|
+
export declare const nodePoolReadinessEvaluator: ReadinessEvaluator<unknown>;
|
|
5
|
+
/**
|
|
6
|
+
* Create a Karpenter `NodePool`.
|
|
7
|
+
*
|
|
8
|
+
* `nodeClassRef.group` and `nodeClassRef.kind` default to the AWS
|
|
9
|
+
* `EC2NodeClass`. Throws on the errors {@link validateNodePoolSpec} reports.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* nodePool({
|
|
14
|
+
* name: 'general',
|
|
15
|
+
* spec: {
|
|
16
|
+
* template: {
|
|
17
|
+
* spec: {
|
|
18
|
+
* nodeClassRef: { name: 'default' },
|
|
19
|
+
* requirements: [
|
|
20
|
+
* { key: 'karpenter.sh/capacity-type', operator: 'In', values: ['on-demand'] },
|
|
21
|
+
* { key: 'karpenter.k8s.aws/instance-category', operator: 'In', values: ['c', 'm', 'r'] },
|
|
22
|
+
* ],
|
|
23
|
+
* },
|
|
24
|
+
* },
|
|
25
|
+
* limits: { cpu: '200', memory: '800Gi' },
|
|
26
|
+
* },
|
|
27
|
+
* id: 'generalPool',
|
|
28
|
+
* });
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function nodePool(config: Composable<NodePoolConfig>): Enhanced<NodePoolSpec, NodePoolStatus>;
|
|
32
|
+
//# sourceMappingURL=node-pool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-pool.d.ts","sourceRoot":"","sources":["../../../../src/factories/karpenter/resources/node-pool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAI7F,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAQhF,qEAAqE;AACrE,eAAO,MAAM,0BAA0B,EAAE,kBAAkB,CAAC,OAAO,CAGhE,CAAC;AA8BJ;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,UAAU,CAAC,cAAc,CAAC,GACjC,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC,CAqBxC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
// Karpenter `NodePool` factory (`karpenter.sh/v1`, cluster-scoped).
|
|
2
|
+
import { registerPortableReadinessEvaluator } from '../../../core/readiness/index.js';
|
|
3
|
+
import { isKubernetesRef } from '../../../utils/type-guards.js';
|
|
4
|
+
import { createResource } from '../../shared.js';
|
|
5
|
+
import { KARPENTER_API_VERSION, KARPENTER_AWS_GROUP } from '../constants.js';
|
|
6
|
+
import { assertNoKarpenterErrors, validateNodePoolSpec, warnKarpenterIssues, } from '../utils/validation.js';
|
|
7
|
+
import { evaluateKarpenterReadiness } from './readiness.js';
|
|
8
|
+
/** `NodePool` readiness: `Ready=True` for the current generation. */
|
|
9
|
+
export const nodePoolReadinessEvaluator = registerPortableReadinessEvaluator('typekro.readiness.karpenter.node-pool', '1', (resource) => evaluateKarpenterReadiness('NodePool', resource));
|
|
10
|
+
// A spec (or nodeClassRef) passed whole as a schema reference cannot be
|
|
11
|
+
// spread; it goes through unchanged and must carry group/kind itself.
|
|
12
|
+
function withNodeClassDefaults(spec) {
|
|
13
|
+
const ref = isKubernetesRef(spec) ? undefined : spec.template?.spec?.nodeClassRef;
|
|
14
|
+
if (!ref ||
|
|
15
|
+
isKubernetesRef(spec.template) ||
|
|
16
|
+
isKubernetesRef(spec.template.spec) ||
|
|
17
|
+
isKubernetesRef(ref)) {
|
|
18
|
+
return spec;
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
...spec,
|
|
22
|
+
template: {
|
|
23
|
+
...spec.template,
|
|
24
|
+
spec: {
|
|
25
|
+
...spec.template.spec,
|
|
26
|
+
nodeClassRef: {
|
|
27
|
+
group: ref.group ?? KARPENTER_AWS_GROUP,
|
|
28
|
+
kind: ref.kind ?? 'EC2NodeClass',
|
|
29
|
+
name: ref.name,
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Create a Karpenter `NodePool`.
|
|
37
|
+
*
|
|
38
|
+
* `nodeClassRef.group` and `nodeClassRef.kind` default to the AWS
|
|
39
|
+
* `EC2NodeClass`. Throws on the errors {@link validateNodePoolSpec} reports.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* nodePool({
|
|
44
|
+
* name: 'general',
|
|
45
|
+
* spec: {
|
|
46
|
+
* template: {
|
|
47
|
+
* spec: {
|
|
48
|
+
* nodeClassRef: { name: 'default' },
|
|
49
|
+
* requirements: [
|
|
50
|
+
* { key: 'karpenter.sh/capacity-type', operator: 'In', values: ['on-demand'] },
|
|
51
|
+
* { key: 'karpenter.k8s.aws/instance-category', operator: 'In', values: ['c', 'm', 'r'] },
|
|
52
|
+
* ],
|
|
53
|
+
* },
|
|
54
|
+
* },
|
|
55
|
+
* limits: { cpu: '200', memory: '800Gi' },
|
|
56
|
+
* },
|
|
57
|
+
* id: 'generalPool',
|
|
58
|
+
* });
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export function nodePool(config) {
|
|
62
|
+
const spec = config.spec;
|
|
63
|
+
const issues = validateNodePoolSpec(spec, config.name);
|
|
64
|
+
assertNoKarpenterErrors('NodePool', config.name, issues);
|
|
65
|
+
warnKarpenterIssues('nodePool', issues);
|
|
66
|
+
return createResource({
|
|
67
|
+
apiVersion: KARPENTER_API_VERSION,
|
|
68
|
+
kind: 'NodePool',
|
|
69
|
+
metadata: {
|
|
70
|
+
name: config.name,
|
|
71
|
+
...(config.labels ? { labels: config.labels } : {}),
|
|
72
|
+
...(config.annotations
|
|
73
|
+
? { annotations: config.annotations }
|
|
74
|
+
: {}),
|
|
75
|
+
},
|
|
76
|
+
spec: withNodeClassDefaults(spec),
|
|
77
|
+
...(config.id ? { id: config.id } : {}),
|
|
78
|
+
}, { scope: 'cluster' }).withReadinessEvaluator(nodePoolReadinessEvaluator);
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=node-pool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-pool.js","sourceRoot":"","sources":["../../../../src/factories/karpenter/resources/node-pool.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAEpE,OAAO,EAAE,kCAAkC,EAAE,MAAM,kCAAkC,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE7E,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAE5D,qEAAqE;AACrE,MAAM,CAAC,MAAM,0BAA0B,GACrC,kCAAkC,CAAC,uCAAuC,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC5F,0BAA0B,CAAC,UAAU,EAAE,QAAQ,CAAC,CACjD,CAAC;AAEJ,wEAAwE;AACxE,sEAAsE;AACtE,SAAS,qBAAqB,CAAC,IAAkB;IAC/C,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC;IAClF,IACE,CAAC,GAAG;QACJ,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC9B,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACnC,eAAe,CAAC,GAAG,CAAC,EACpB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO;QACL,GAAG,IAAI;QACP,QAAQ,EAAE;YACR,GAAG,IAAI,CAAC,QAAQ;YAChB,IAAI,EAAE;gBACJ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI;gBACrB,YAAY,EAAE;oBACZ,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,mBAAmB;oBACvC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,cAAc;oBAChC,IAAI,EAAE,GAAG,CAAC,IAAI;iBACf;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,QAAQ,CACtB,MAAkC;IAElC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAoB,CAAC;IACzC,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAc,CAAC,CAAC;IACjE,uBAAuB,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzD,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,cAAc,CACnB;QACE,UAAU,EAAE,qBAAqB;QACjC,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAgC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7E,GAAG,CAAC,MAAM,CAAC,WAAW;gBACpB,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAqC,EAAE;gBAC/D,CAAC,CAAC,EAAE,CAAC;SACR;QACD,IAAI,EAAE,qBAAqB,CAAC,IAAI,CAAC;QACjC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxC,EACD,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC,sBAAsB,CAAC,0BAA0B,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Enhanced, ResourceStatus } from '../../../core/types/index.js';
|
|
2
|
+
import type { KarpenterCondition } from '../types.js';
|
|
3
|
+
/** Evaluate the `Ready` condition of a Karpenter resource of the given kind. */
|
|
4
|
+
export declare function evaluateKarpenterReadiness(kind: string, liveResource: unknown): ResourceStatus;
|
|
5
|
+
type KarpenterResource = Enhanced<object, {
|
|
6
|
+
conditions?: KarpenterCondition[];
|
|
7
|
+
}>;
|
|
8
|
+
/**
|
|
9
|
+
* A status expression that is `true` once every given `NodePool` or
|
|
10
|
+
* `EC2NodeClass` has `Ready=True` for its current generation. Pass several
|
|
11
|
+
* resources rather than joining calls with `&&`, which JavaScript evaluates
|
|
12
|
+
* before TypeKro sees it.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* return { ready: karpenterReady(nodeClass, pool), nodes: pool.status.nodes };
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare function karpenterReady(...resources: [KarpenterResource, ...KarpenterResource[]]): boolean;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=readiness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readiness.d.ts","sourceRoot":"","sources":["../../../../src/factories/karpenter/resources/readiness.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAc,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAOtD,gFAAgF;AAChF,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,cAAc,CAkC9F;AAED,KAAK,iBAAiB,GAAG,QAAQ,CAAC,MAAM,EAAE;IAAE,UAAU,CAAC,EAAE,kBAAkB,EAAE,CAAA;CAAE,CAAC,CAAC;AAEjF;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,GAAG,SAAS,EAAE,CAAC,iBAAiB,EAAE,GAAG,iBAAiB,EAAE,CAAC,GAAG,OAAO,CAejG"}
|