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
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* @see https://cloudnative-pg.io/documentation/1.25/cloudnative-pg.v1/
|
|
8
8
|
*/
|
|
9
9
|
import type { TypeKroChartValue } from '../../core/types/common.js';
|
|
10
|
+
import type { HelmReleaseLifecycleOptions } from '../helm/types.js';
|
|
10
11
|
/** Reference to a key in a Kubernetes Secret. */
|
|
11
12
|
export interface SecretKeyRef {
|
|
12
13
|
name: string;
|
|
@@ -508,7 +509,7 @@ export declare const CnpgHelmReleaseConfigSchema: import("arktype/internal/varia
|
|
|
508
509
|
id?: string;
|
|
509
510
|
}, {}>;
|
|
510
511
|
/** Configuration for the CNPG Helm release. */
|
|
511
|
-
export type CnpgHelmReleaseConfig = Omit<typeof CnpgHelmReleaseConfigSchema.infer, 'values'> & {
|
|
512
|
+
export type CnpgHelmReleaseConfig = Omit<typeof CnpgHelmReleaseConfigSchema.infer, 'values'> & HelmReleaseLifecycleOptions & {
|
|
512
513
|
/**
|
|
513
514
|
* Graph-aware Helm values serialized recursively by TypeKro. Accepts a
|
|
514
515
|
* whole-object schema reference or a runtime values-merge node so per-instance
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/factories/cnpg/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/factories/cnpg/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAMpE,iDAAiD;AACjD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,4CAA4C;AAC5C,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wCAAwC;AACxC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,MAAM,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5C;AAED,gDAAgD;AAChD,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,YAAY,GAAG,kBAAkB,GAAG,WAAW,CAAC;IACzD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAmDD;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;MA+BpC,CAAC;AAEH,wEAAwE;AACxE,MAAM,MAAM,mBAAmB,GAAG,OAAO,yBAAyB,CAAC,KAAK,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,2EAA2E;IAC3E,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,QAAQ,CAAC;IACzC,wDAAwD;IACxD,KAAK,EAAE,OAAO,CAAC;IACf,mEAAmE;IACnE,MAAM,EAAE,OAAO,CAAC;IAChB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,8CAA8C;AAC9C,eAAO,MAAM,yBAAyB;;;;;MAKpC,CAAC;AAMH;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA+I9B,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,mBAAmB,CAAC,KAAK,CAAC;AAE7D,2CAA2C;AAC3C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAChC,wCAAwC;IACxC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,0BAA0B;IAC1B,YAAY,CAAC,EAAE;QACb,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACtC,CAAC;CACH;AAMD;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;MAuB7B,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,kBAAkB,CAAC,KAAK,CAAC;AAE3D;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,8BAA8B;IAC9B,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IACnD,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAMD;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;MA2BtC,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,OAAO,2BAA2B,CAAC,KAAK,CAAC;AAE7E;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,yBAAyB;IACzB,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAChC,uCAAuC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gCAAgC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yCAAyC;IACzC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,+BAA+B;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAMD;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;MAiC7B,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,kBAAkB,CAAC,KAAK,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACjC;AAMD;;;;GAIG;AACH,eAAO,MAAM,8BAA8B;;;;;;MAWzC,CAAC;AAEH,wDAAwD;AACxD,MAAM,MAAM,wBAAwB,GAAG,OAAO,8BAA8B,CAAC,KAAK,CAAC;AAEnF;;;;GAIG;AACH,eAAO,MAAM,2BAA2B;;;;;;;MAatC,CAAC;AAEH,+CAA+C;AAC/C,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,OAAO,2BAA2B,CAAC,KAAK,EAAE,QAAQ,CAAC,GAC1F,2BAA2B,GAAG;IAC5B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACrD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/factories/cnpg/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/factories/cnpg/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { CallableComposition } from '../../../core/types/deployment.js';
|
|
2
|
+
import { type CrowdsecBootstrapConfig, type CrowdsecBootstrapOptions, type CrowdsecBootstrapStatus } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Build a CrowdSec bootstrap composition.
|
|
5
|
+
*
|
|
6
|
+
* Options decide what CrowdSec runs and are concrete at build time; the
|
|
7
|
+
* runtime spec carries the release name, namespace, chart version and sizing.
|
|
8
|
+
*
|
|
9
|
+
* @throws {TypeKroError} `CROWDSEC_INVALID_OPTIONS` for an option combination CrowdSec cannot run.
|
|
10
|
+
* @see docs/api/crowdsec/index.md
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const crowdsec = makeCrowdsecBootstrap({
|
|
15
|
+
* bouncers: [{ name: 'traefik', keySecretRef: { name: 'crowdsec-bouncer', key: 'api-key' } }],
|
|
16
|
+
* simulation: { global: true },
|
|
17
|
+
* });
|
|
18
|
+
* await crowdsec.factory('direct', { kubeConfig, waitForReady: true }).deploy({ name: 'crowdsec' });
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare function makeCrowdsecBootstrap(options?: CrowdsecBootstrapOptions): CallableComposition<CrowdsecBootstrapConfig, CrowdsecBootstrapStatus>;
|
|
22
|
+
/**
|
|
23
|
+
* The default CrowdSec bootstrap: SQLite LAPI, a DaemonSet agent reading the
|
|
24
|
+
* `traefik` namespace, the Traefik collections, CAPI off and AppSec off.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* await crowdsecBootstrap.factory('direct', { kubeConfig, waitForReady: true })
|
|
29
|
+
* .deploy({ name: 'crowdsec', namespace: 'crowdsec' });
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export declare const crowdsecBootstrap: CallableComposition<CrowdsecBootstrapConfig, CrowdsecBootstrapStatus>;
|
|
33
|
+
//# sourceMappingURL=crowdsec-bootstrap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crowdsec-bootstrap.d.ts","sourceRoot":"","sources":["../../../../src/factories/crowdsec/compositions/crowdsec-bootstrap.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAe7E,OAAO,EACL,KAAK,uBAAuB,EAE5B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAE7B,MAAM,aAAa,CAAC;AAyBrB;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,GAAE,wBAA6B,GACrC,mBAAmB,CAAC,uBAAuB,EAAE,uBAAuB,CAAC,CAiIvE;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,EAAE,mBAAmB,CACjD,uBAAuB,EACvB,uBAAuB,CACE,CAAC"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { kubernetesComposition } from '../../../core/composition/imperative.js';
|
|
2
|
+
import { DEFAULT_FLUX_NAMESPACE } from '../../../core/config/defaults.js';
|
|
3
|
+
import { Cel } from '../../../core/references/cel.js';
|
|
4
|
+
import { singleton } from '../../../core/singleton/singleton.js';
|
|
5
|
+
import { helmReleaseConditionSummary } from '../../helm/status.js';
|
|
6
|
+
import { namespace } from '../../kubernetes/core/namespace.js';
|
|
7
|
+
import { networkPolicy } from '../../kubernetes/networking/network-policy.js';
|
|
8
|
+
import { podDisruptionBudget } from '../../kubernetes/policy/pod-disruption-budget.js';
|
|
9
|
+
import { CROWDSEC_APPSEC_PORT, CROWDSEC_LAPI_PORT, CROWDSEC_METRICS_PORT, DEFAULT_CROWDSEC_CHART_VERSION, DEFAULT_CROWDSEC_NAMESPACE, DEFAULT_CROWDSEC_REPOSITORY_NAME, DEFAULT_CROWDSEC_REPOSITORY_URL, } from '../constants.js';
|
|
10
|
+
import { crowdsecHelmRelease } from '../resources/helm.js';
|
|
11
|
+
import { CrowdsecBootstrapConfigSchema, CrowdsecBootstrapStatusSchema, } from '../types.js';
|
|
12
|
+
import { assertCrowdsecBootstrapOptions, mapCrowdsecConfigToHelmValues, } from '../utils/helm-values-mapper.js';
|
|
13
|
+
import { crowdsecHelmRepositoryBootstrap } from './crowdsec-helm-repository.js';
|
|
14
|
+
const RELEASE_ID = 'crowdsecHelmRelease';
|
|
15
|
+
// Service hosts are read off the owned release (a resource projection), not
|
|
16
|
+
// echoed from the spec: KRO drops literal status fields (#188).
|
|
17
|
+
function serviceHost(suffix, port) {
|
|
18
|
+
return (`${RELEASE_ID}.spec.releaseName + "${suffix}." + ` +
|
|
19
|
+
`${RELEASE_ID}.spec.targetNamespace + ".svc.cluster.local:${port}"`);
|
|
20
|
+
}
|
|
21
|
+
// Lazy ternaries over `status.history`, for the reasons given on the Traefik
|
|
22
|
+
// bootstrap's `chartVersionExpression`: cel-js propagates errors through `&&`.
|
|
23
|
+
const CHART_VERSION_EXPRESSION = `has(${RELEASE_ID}.status.history) ? ` +
|
|
24
|
+
`(size(${RELEASE_ID}.status.history.filter(e, has(e.chartVersion))) > 0 ? ` +
|
|
25
|
+
`${RELEASE_ID}.status.history.filter(e, has(e.chartVersion))[0].chartVersion : "") : ""`;
|
|
26
|
+
/**
|
|
27
|
+
* Build a CrowdSec bootstrap composition.
|
|
28
|
+
*
|
|
29
|
+
* Options decide what CrowdSec runs and are concrete at build time; the
|
|
30
|
+
* runtime spec carries the release name, namespace, chart version and sizing.
|
|
31
|
+
*
|
|
32
|
+
* @throws {TypeKroError} `CROWDSEC_INVALID_OPTIONS` for an option combination CrowdSec cannot run.
|
|
33
|
+
* @see docs/api/crowdsec/index.md
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* const crowdsec = makeCrowdsecBootstrap({
|
|
38
|
+
* bouncers: [{ name: 'traefik', keySecretRef: { name: 'crowdsec-bouncer', key: 'api-key' } }],
|
|
39
|
+
* simulation: { global: true },
|
|
40
|
+
* });
|
|
41
|
+
* await crowdsec.factory('direct', { kubeConfig, waitForReady: true }).deploy({ name: 'crowdsec' });
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export function makeCrowdsecBootstrap(options = {}) {
|
|
45
|
+
assertCrowdsecBootstrapOptions(options);
|
|
46
|
+
const ownsNamespace = (options.namespaceOwnership ?? 'owned') === 'owned';
|
|
47
|
+
return kubernetesComposition({
|
|
48
|
+
name: options.name ?? 'crowdsec-bootstrap',
|
|
49
|
+
kind: options.kind ?? 'CrowdsecBootstrap',
|
|
50
|
+
spec: CrowdsecBootstrapConfigSchema,
|
|
51
|
+
status: CrowdsecBootstrapStatusSchema,
|
|
52
|
+
}, (spec) => {
|
|
53
|
+
const installNamespace = Cel.default(spec.namespace, DEFAULT_CROWDSEC_NAMESPACE);
|
|
54
|
+
const labels = {
|
|
55
|
+
'app.kubernetes.io/name': 'crowdsec',
|
|
56
|
+
'app.kubernetes.io/instance': spec.name,
|
|
57
|
+
'app.kubernetes.io/managed-by': 'typekro',
|
|
58
|
+
};
|
|
59
|
+
if (ownsNamespace) {
|
|
60
|
+
namespace({ metadata: { name: installNamespace, labels }, id: 'crowdsecNamespace' });
|
|
61
|
+
}
|
|
62
|
+
singleton(crowdsecHelmRepositoryBootstrap, {
|
|
63
|
+
id: 'crowdsecHelmRepository',
|
|
64
|
+
spec: {
|
|
65
|
+
name: DEFAULT_CROWDSEC_REPOSITORY_NAME,
|
|
66
|
+
namespace: DEFAULT_FLUX_NAMESPACE,
|
|
67
|
+
url: DEFAULT_CROWDSEC_REPOSITORY_URL,
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
const release = crowdsecHelmRelease({
|
|
71
|
+
name: spec.name,
|
|
72
|
+
namespace: DEFAULT_FLUX_NAMESPACE,
|
|
73
|
+
targetNamespace: installNamespace,
|
|
74
|
+
version: Cel.default(spec.chartVersion, DEFAULT_CROWDSEC_CHART_VERSION),
|
|
75
|
+
repositoryName: DEFAULT_CROWDSEC_REPOSITORY_NAME,
|
|
76
|
+
repositoryNamespace: DEFAULT_FLUX_NAMESPACE,
|
|
77
|
+
createNamespace: !ownsNamespace,
|
|
78
|
+
...(options.install ? { install: options.install } : {}),
|
|
79
|
+
...(options.upgrade ? { upgrade: options.upgrade } : {}),
|
|
80
|
+
...(options.driftDetection ? { driftDetection: options.driftDetection } : {}),
|
|
81
|
+
values: mapCrowdsecConfigToHelmValues(spec, options),
|
|
82
|
+
id: RELEASE_ID,
|
|
83
|
+
});
|
|
84
|
+
// The chart ships no PodDisruptionBudget. maxUnavailable 1 never blocks
|
|
85
|
+
// a drain, even with a single replica.
|
|
86
|
+
const disruptionBudget = (component, id) => podDisruptionBudget({
|
|
87
|
+
metadata: { name: `${spec.name}-${component}`, namespace: installNamespace, labels },
|
|
88
|
+
spec: {
|
|
89
|
+
maxUnavailable: 1,
|
|
90
|
+
selector: { matchLabels: { 'k8s-app': spec.name, type: component } },
|
|
91
|
+
},
|
|
92
|
+
id,
|
|
93
|
+
});
|
|
94
|
+
if (options.lapi?.pdb ?? true)
|
|
95
|
+
disruptionBudget('lapi', 'crowdsecLapiPdb');
|
|
96
|
+
if (options.appsec && (options.appsec.pdb ?? true)) {
|
|
97
|
+
disruptionBudget('appsec', 'crowdsecAppsecPdb');
|
|
98
|
+
}
|
|
99
|
+
const policy = options.networkPolicy;
|
|
100
|
+
if (policy) {
|
|
101
|
+
const inNamespace = (name) => ({
|
|
102
|
+
namespaceSelector: { matchLabels: { 'kubernetes.io/metadata.name': name } },
|
|
103
|
+
});
|
|
104
|
+
const metricsRule = {
|
|
105
|
+
_from: [
|
|
106
|
+
policy.metricsNamespace
|
|
107
|
+
? inNamespace(policy.metricsNamespace)
|
|
108
|
+
: { namespaceSelector: {} },
|
|
109
|
+
],
|
|
110
|
+
ports: [{ port: CROWDSEC_METRICS_PORT, protocol: 'TCP' }],
|
|
111
|
+
};
|
|
112
|
+
const component = (type) => ({ matchLabels: { 'k8s-app': spec.name, type } });
|
|
113
|
+
networkPolicy({
|
|
114
|
+
metadata: { name: `${spec.name}-lapi`, namespace: installNamespace, labels },
|
|
115
|
+
spec: {
|
|
116
|
+
podSelector: component('lapi'),
|
|
117
|
+
policyTypes: ['Ingress'],
|
|
118
|
+
ingress: [
|
|
119
|
+
{
|
|
120
|
+
// Agents and AppSec push alerts; the bouncer pulls decisions.
|
|
121
|
+
_from: [
|
|
122
|
+
{ podSelector: component('agent') },
|
|
123
|
+
{ podSelector: component('appsec') },
|
|
124
|
+
inNamespace(policy.traefikNamespace),
|
|
125
|
+
],
|
|
126
|
+
ports: [{ port: CROWDSEC_LAPI_PORT, protocol: 'TCP' }],
|
|
127
|
+
},
|
|
128
|
+
metricsRule,
|
|
129
|
+
],
|
|
130
|
+
},
|
|
131
|
+
id: 'crowdsecLapiNetworkPolicy',
|
|
132
|
+
});
|
|
133
|
+
if (options.appsec) {
|
|
134
|
+
networkPolicy({
|
|
135
|
+
metadata: { name: `${spec.name}-appsec`, namespace: installNamespace, labels },
|
|
136
|
+
spec: {
|
|
137
|
+
podSelector: component('appsec'),
|
|
138
|
+
policyTypes: ['Ingress'],
|
|
139
|
+
ingress: [
|
|
140
|
+
{
|
|
141
|
+
_from: [inNamespace(policy.traefikNamespace)],
|
|
142
|
+
ports: [{ port: CROWDSEC_APPSEC_PORT, protocol: 'TCP' }],
|
|
143
|
+
},
|
|
144
|
+
metricsRule,
|
|
145
|
+
],
|
|
146
|
+
},
|
|
147
|
+
id: 'crowdsecAppsecNetworkPolicy',
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
const summary = helmReleaseConditionSummary(release);
|
|
152
|
+
return {
|
|
153
|
+
ready: summary.ready,
|
|
154
|
+
failed: summary.failed,
|
|
155
|
+
phase: summary.phase,
|
|
156
|
+
lapiHost: Cel.expr(serviceHost('-service', CROWDSEC_LAPI_PORT)),
|
|
157
|
+
appsecHost: Cel.expr(`${RELEASE_ID}.spec.values.appsec.enabled ? ` +
|
|
158
|
+
`${serviceHost('-appsec-service', CROWDSEC_APPSEC_PORT)} : ""`),
|
|
159
|
+
version: Cel.expr(CHART_VERSION_EXPRESSION),
|
|
160
|
+
};
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* The default CrowdSec bootstrap: SQLite LAPI, a DaemonSet agent reading the
|
|
165
|
+
* `traefik` namespace, the Traefik collections, CAPI off and AppSec off.
|
|
166
|
+
*
|
|
167
|
+
* @example
|
|
168
|
+
* ```typescript
|
|
169
|
+
* await crowdsecBootstrap.factory('direct', { kubeConfig, waitForReady: true })
|
|
170
|
+
* .deploy({ name: 'crowdsec', namespace: 'crowdsec' });
|
|
171
|
+
* ```
|
|
172
|
+
*/
|
|
173
|
+
export const crowdsecBootstrap = makeCrowdsecBootstrap();
|
|
174
|
+
//# sourceMappingURL=crowdsec-bootstrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crowdsec-bootstrap.js","sourceRoot":"","sources":["../../../../src/factories/crowdsec/compositions/crowdsec-bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { CallableComposition } from '../../../core/types/deployment.js';
|
|
2
|
+
import { type CrowdsecHelmRepositorySpec } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Shared CrowdSec `HelmRepository` singleton, so one installation's teardown
|
|
5
|
+
* cannot delete the chart source another release resolves against.
|
|
6
|
+
*/
|
|
7
|
+
export declare const crowdsecHelmRepositoryBootstrap: CallableComposition<CrowdsecHelmRepositorySpec, {
|
|
8
|
+
ready: boolean;
|
|
9
|
+
}>;
|
|
10
|
+
//# sourceMappingURL=crowdsec-helm-repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crowdsec-helm-repository.d.ts","sourceRoot":"","sources":["../../../../src/factories/crowdsec/compositions/crowdsec-helm-repository.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAE7E,OAAO,EACL,KAAK,0BAA0B,EAGhC,MAAM,aAAa,CAAC;AAErB;;;GAGG;AACH,eAAO,MAAM,+BAA+B,EAAE,mBAAmB,CAC/D,0BAA0B,EAC1B;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,CAsBnB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { kubernetesComposition } from '../../../core/composition/imperative.js';
|
|
2
|
+
import { Cel } from '../../../core/references/cel.js';
|
|
3
|
+
import { crowdsecHelmRepository } from '../resources/helm.js';
|
|
4
|
+
import { CrowdsecHelmRepositorySpecSchema, CrowdsecHelmRepositoryStatusSchema, } from '../types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Shared CrowdSec `HelmRepository` singleton, so one installation's teardown
|
|
7
|
+
* cannot delete the chart source another release resolves against.
|
|
8
|
+
*/
|
|
9
|
+
export const crowdsecHelmRepositoryBootstrap = kubernetesComposition({
|
|
10
|
+
name: 'crowdsec-helm-repository',
|
|
11
|
+
kind: 'CrowdsecHelmRepository',
|
|
12
|
+
spec: CrowdsecHelmRepositorySpecSchema,
|
|
13
|
+
status: CrowdsecHelmRepositoryStatusSchema,
|
|
14
|
+
}, (spec) => {
|
|
15
|
+
const repository = crowdsecHelmRepository({
|
|
16
|
+
name: spec.name,
|
|
17
|
+
namespace: spec.namespace,
|
|
18
|
+
url: spec.url,
|
|
19
|
+
id: 'repository',
|
|
20
|
+
});
|
|
21
|
+
return {
|
|
22
|
+
ready: Cel.expr(repository.status.conditions, '.exists(c, c.type == "Ready" && c.status == "True")'),
|
|
23
|
+
};
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=crowdsec-helm-repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crowdsec-helm-repository.js","sourceRoot":"","sources":["../../../../src/factories/crowdsec/compositions/crowdsec-helm-repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AAEtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAEL,gCAAgC,EAChC,kCAAkC,GACnC,MAAM,aAAa,CAAC;AAErB;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAGxC,qBAAqB,CACvB;IACE,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,gCAAgC;IACtC,MAAM,EAAE,kCAAkC;CAC3C,EACD,CAAC,IAAI,EAAE,EAAE;IACP,MAAM,UAAU,GAAG,sBAAsB,CAAC;QACxC,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,EAAE,EAAE,YAAY;KACjB,CAAC,CAAC;IACH,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,IAAI,CACb,UAAU,CAAC,MAAM,CAAC,UAAU,EAC5B,qDAAqD,CACtD;KACF,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factories/crowdsec/compositions/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/factories/crowdsec/compositions/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CrowdSec factory constants.
|
|
3
|
+
*
|
|
4
|
+
* Verified against the official `crowdsec` chart 0.24.2 (CrowdSec v1.8.1) from
|
|
5
|
+
* https://crowdsecurity.github.io/helm-charts and the Traefik bouncer plugin
|
|
6
|
+
* `github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin` v1.7.1 (Apache-2.0).
|
|
7
|
+
*/
|
|
8
|
+
/** Pinned official chart version. */
|
|
9
|
+
export declare const DEFAULT_CROWDSEC_CHART_VERSION = "0.24.2";
|
|
10
|
+
/** CrowdSec version bundled with {@link DEFAULT_CROWDSEC_CHART_VERSION}. */
|
|
11
|
+
export declare const DEFAULT_CROWDSEC_APP_VERSION = "v1.8.1";
|
|
12
|
+
/** Chart name inside the official repository. */
|
|
13
|
+
export declare const DEFAULT_CROWDSEC_CHART_NAME = "crowdsec";
|
|
14
|
+
/** Official classic (non-OCI) Helm repository. */
|
|
15
|
+
export declare const DEFAULT_CROWDSEC_REPOSITORY_URL = "https://crowdsecurity.github.io/helm-charts";
|
|
16
|
+
/** `HelmRepository` name the bootstrap owns through a singleton. */
|
|
17
|
+
export declare const DEFAULT_CROWDSEC_REPOSITORY_NAME = "crowdsec-repo";
|
|
18
|
+
/** Namespace CrowdSec is installed into by default. */
|
|
19
|
+
export declare const DEFAULT_CROWDSEC_NAMESPACE = "crowdsec";
|
|
20
|
+
/** `alpine/kubectl` tag for the chart's register Jobs, pinned instead of `latest`. */
|
|
21
|
+
export declare const CROWDSEC_KUBECTL_IMAGE_TAG = "1.36.4";
|
|
22
|
+
/** Port of the Local API (LAPI) Service. */
|
|
23
|
+
export declare const CROWDSEC_LAPI_PORT = 8080;
|
|
24
|
+
/** Port of the AppSec (WAF) Service. */
|
|
25
|
+
export declare const CROWDSEC_APPSEC_PORT = 7422;
|
|
26
|
+
/** Prometheus port on every CrowdSec pod. */
|
|
27
|
+
export declare const CROWDSEC_METRICS_PORT = 6060;
|
|
28
|
+
/** Hub collections every bootstrap installs on the agents. */
|
|
29
|
+
export declare const DEFAULT_CROWDSEC_COLLECTIONS: readonly string[];
|
|
30
|
+
/** Go module of the Traefik bouncer plugin. */
|
|
31
|
+
export declare const CROWDSEC_BOUNCER_PLUGIN_MODULE = "github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin";
|
|
32
|
+
/** Pinned bouncer plugin release. */
|
|
33
|
+
export declare const DEFAULT_CROWDSEC_BOUNCER_PLUGIN_VERSION = "v1.7.1";
|
|
34
|
+
/** SHA-256 of the v1.7.1 archive served by plugins.traefik.io, as Traefik checks it. */
|
|
35
|
+
export declare const DEFAULT_CROWDSEC_BOUNCER_PLUGIN_HASH = "500739fc1600c12a651433b13a81693470cd336dbc7864cb85ee42098c93d884";
|
|
36
|
+
/** Default key of the plugin under Traefik's `experimental.plugins`. */
|
|
37
|
+
export declare const DEFAULT_CROWDSEC_PLUGIN_NAME = "crowdsec";
|
|
38
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/factories/crowdsec/constants.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,qCAAqC;AACrC,eAAO,MAAM,8BAA8B,WAAW,CAAC;AACvD,4EAA4E;AAC5E,eAAO,MAAM,4BAA4B,WAAW,CAAC;AACrD,iDAAiD;AACjD,eAAO,MAAM,2BAA2B,aAAa,CAAC;AACtD,kDAAkD;AAClD,eAAO,MAAM,+BAA+B,gDAAgD,CAAC;AAC7F,oEAAoE;AACpE,eAAO,MAAM,gCAAgC,kBAAkB,CAAC;AAChE,uDAAuD;AACvD,eAAO,MAAM,0BAA0B,aAAa,CAAC;AAErD,sFAAsF;AACtF,eAAO,MAAM,0BAA0B,WAAW,CAAC;AAEnD,4CAA4C;AAC5C,eAAO,MAAM,kBAAkB,OAAO,CAAC;AACvC,wCAAwC;AACxC,eAAO,MAAM,oBAAoB,OAAO,CAAC;AACzC,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,8DAA8D;AAC9D,eAAO,MAAM,4BAA4B,EAAE,SAAS,MAAM,EAIzD,CAAC;AAEF,+CAA+C;AAC/C,eAAO,MAAM,8BAA8B,4DACgB,CAAC;AAC5D,qCAAqC;AACrC,eAAO,MAAM,uCAAuC,WAAW,CAAC;AAChE,wFAAwF;AACxF,eAAO,MAAM,oCAAoC,qEACmB,CAAC;AACrE,wEAAwE;AACxE,eAAO,MAAM,4BAA4B,aAAa,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CrowdSec factory constants.
|
|
3
|
+
*
|
|
4
|
+
* Verified against the official `crowdsec` chart 0.24.2 (CrowdSec v1.8.1) from
|
|
5
|
+
* https://crowdsecurity.github.io/helm-charts and the Traefik bouncer plugin
|
|
6
|
+
* `github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin` v1.7.1 (Apache-2.0).
|
|
7
|
+
*/
|
|
8
|
+
/** Pinned official chart version. */
|
|
9
|
+
export const DEFAULT_CROWDSEC_CHART_VERSION = '0.24.2';
|
|
10
|
+
/** CrowdSec version bundled with {@link DEFAULT_CROWDSEC_CHART_VERSION}. */
|
|
11
|
+
export const DEFAULT_CROWDSEC_APP_VERSION = 'v1.8.1';
|
|
12
|
+
/** Chart name inside the official repository. */
|
|
13
|
+
export const DEFAULT_CROWDSEC_CHART_NAME = 'crowdsec';
|
|
14
|
+
/** Official classic (non-OCI) Helm repository. */
|
|
15
|
+
export const DEFAULT_CROWDSEC_REPOSITORY_URL = 'https://crowdsecurity.github.io/helm-charts';
|
|
16
|
+
/** `HelmRepository` name the bootstrap owns through a singleton. */
|
|
17
|
+
export const DEFAULT_CROWDSEC_REPOSITORY_NAME = 'crowdsec-repo';
|
|
18
|
+
/** Namespace CrowdSec is installed into by default. */
|
|
19
|
+
export const DEFAULT_CROWDSEC_NAMESPACE = 'crowdsec';
|
|
20
|
+
/** `alpine/kubectl` tag for the chart's register Jobs, pinned instead of `latest`. */
|
|
21
|
+
export const CROWDSEC_KUBECTL_IMAGE_TAG = '1.36.4';
|
|
22
|
+
/** Port of the Local API (LAPI) Service. */
|
|
23
|
+
export const CROWDSEC_LAPI_PORT = 8080;
|
|
24
|
+
/** Port of the AppSec (WAF) Service. */
|
|
25
|
+
export const CROWDSEC_APPSEC_PORT = 7422;
|
|
26
|
+
/** Prometheus port on every CrowdSec pod. */
|
|
27
|
+
export const CROWDSEC_METRICS_PORT = 6060;
|
|
28
|
+
/** Hub collections every bootstrap installs on the agents. */
|
|
29
|
+
export const DEFAULT_CROWDSEC_COLLECTIONS = [
|
|
30
|
+
'crowdsecurity/traefik',
|
|
31
|
+
'crowdsecurity/base-http-scenarios',
|
|
32
|
+
'crowdsecurity/http-cve',
|
|
33
|
+
];
|
|
34
|
+
/** Go module of the Traefik bouncer plugin. */
|
|
35
|
+
export const CROWDSEC_BOUNCER_PLUGIN_MODULE = 'github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin';
|
|
36
|
+
/** Pinned bouncer plugin release. */
|
|
37
|
+
export const DEFAULT_CROWDSEC_BOUNCER_PLUGIN_VERSION = 'v1.7.1';
|
|
38
|
+
/** SHA-256 of the v1.7.1 archive served by plugins.traefik.io, as Traefik checks it. */
|
|
39
|
+
export const DEFAULT_CROWDSEC_BOUNCER_PLUGIN_HASH = '500739fc1600c12a651433b13a81693470cd336dbc7864cb85ee42098c93d884';
|
|
40
|
+
/** Default key of the plugin under Traefik's `experimental.plugins`. */
|
|
41
|
+
export const DEFAULT_CROWDSEC_PLUGIN_NAME = 'crowdsec';
|
|
42
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/factories/crowdsec/constants.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,qCAAqC;AACrC,MAAM,CAAC,MAAM,8BAA8B,GAAG,QAAQ,CAAC;AACvD,4EAA4E;AAC5E,MAAM,CAAC,MAAM,4BAA4B,GAAG,QAAQ,CAAC;AACrD,iDAAiD;AACjD,MAAM,CAAC,MAAM,2BAA2B,GAAG,UAAU,CAAC;AACtD,kDAAkD;AAClD,MAAM,CAAC,MAAM,+BAA+B,GAAG,6CAA6C,CAAC;AAC7F,oEAAoE;AACpE,MAAM,CAAC,MAAM,gCAAgC,GAAG,eAAe,CAAC;AAChE,uDAAuD;AACvD,MAAM,CAAC,MAAM,0BAA0B,GAAG,UAAU,CAAC;AAErD,sFAAsF;AACtF,MAAM,CAAC,MAAM,0BAA0B,GAAG,QAAQ,CAAC;AAEnD,4CAA4C;AAC5C,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AACvC,wCAAwC;AACxC,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AACzC,6CAA6C;AAC7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAE1C,8DAA8D;AAC9D,MAAM,CAAC,MAAM,4BAA4B,GAAsB;IAC7D,uBAAuB;IACvB,mCAAmC;IACnC,wBAAwB;CACzB,CAAC;AAEF,+CAA+C;AAC/C,MAAM,CAAC,MAAM,8BAA8B,GACzC,yDAAyD,CAAC;AAC5D,qCAAqC;AACrC,MAAM,CAAC,MAAM,uCAAuC,GAAG,QAAQ,CAAC;AAChE,wFAAwF;AACxF,MAAM,CAAC,MAAM,oCAAoC,GAC/C,kEAAkE,CAAC;AACrE,wEAAwE;AACxE,MAAM,CAAC,MAAM,4BAA4B,GAAG,UAAU,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CrowdSec for a Traefik-fronted API: a Flux bootstrap for LAPI, the log
|
|
3
|
+
* agents and AppSec, plus the Traefik bouncer plugin and Middleware helpers.
|
|
4
|
+
*
|
|
5
|
+
* @see docs/api/crowdsec/index.md
|
|
6
|
+
*/
|
|
7
|
+
export * from './compositions/index.js';
|
|
8
|
+
export * from './constants.js';
|
|
9
|
+
export * from './resources/index.js';
|
|
10
|
+
export * from './types.js';
|
|
11
|
+
export * from './utils/index.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/factories/crowdsec/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CrowdSec for a Traefik-fronted API: a Flux bootstrap for LAPI, the log
|
|
3
|
+
* agents and AppSec, plus the Traefik bouncer plugin and Middleware helpers.
|
|
4
|
+
*
|
|
5
|
+
* @see docs/api/crowdsec/index.md
|
|
6
|
+
*/
|
|
7
|
+
export * from './compositions/index.js';
|
|
8
|
+
export * from './constants.js';
|
|
9
|
+
export * from './resources/index.js';
|
|
10
|
+
export * from './types.js';
|
|
11
|
+
export * from './utils/index.js';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/factories/crowdsec/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CrowdSec Helm resources: the chart source and the release.
|
|
3
|
+
*/
|
|
4
|
+
import type { Composable, Enhanced, ReadinessEvaluator } from '../../../core/types/index.js';
|
|
5
|
+
import { type HelmRepositorySpec, type HelmRepositoryStatus } from '../../helm/helm-repository.js';
|
|
6
|
+
import type { HelmReleaseLifecycleOptions, HelmReleaseSpec, HelmReleaseStatus } from '../../helm/types.js';
|
|
7
|
+
/** Configuration of {@link crowdsecHelmRepository}. */
|
|
8
|
+
export interface CrowdsecHelmRepositoryConfig {
|
|
9
|
+
name: string;
|
|
10
|
+
/** @default the Flux namespace */
|
|
11
|
+
namespace?: string;
|
|
12
|
+
/** @default DEFAULT_CROWDSEC_REPOSITORY_URL */
|
|
13
|
+
url?: string;
|
|
14
|
+
id?: string;
|
|
15
|
+
}
|
|
16
|
+
/** Configuration of {@link crowdsecHelmRelease}. */
|
|
17
|
+
export interface CrowdsecHelmReleaseConfig extends HelmReleaseLifecycleOptions {
|
|
18
|
+
/** Release name, pinned as Helm's `releaseName`. */
|
|
19
|
+
name: string;
|
|
20
|
+
/** Namespace of the HelmRelease object. @default the Flux namespace */
|
|
21
|
+
namespace?: string;
|
|
22
|
+
/** @default 'crowdsec' */
|
|
23
|
+
targetNamespace?: string;
|
|
24
|
+
/** @default DEFAULT_CROWDSEC_CHART_VERSION */
|
|
25
|
+
version?: string;
|
|
26
|
+
/** @default DEFAULT_CROWDSEC_REPOSITORY_NAME */
|
|
27
|
+
repositoryName?: string;
|
|
28
|
+
repositoryNamespace?: string;
|
|
29
|
+
/** @default false */
|
|
30
|
+
createNamespace?: boolean;
|
|
31
|
+
values?: Record<string, unknown>;
|
|
32
|
+
id?: string;
|
|
33
|
+
}
|
|
34
|
+
/** CrowdSec `HelmRelease` readiness (the shared Flux evaluator). */
|
|
35
|
+
export declare const crowdsecHelmReleaseReadinessEvaluator: ReadinessEvaluator<unknown>;
|
|
36
|
+
/**
|
|
37
|
+
* Create the Flux `HelmRepository` for the official CrowdSec charts.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```typescript
|
|
41
|
+
* crowdsecHelmRepository({ name: 'crowdsec-repo', id: 'repository' });
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export declare function crowdsecHelmRepository(config: Composable<CrowdsecHelmRepositoryConfig>): Enhanced<HelmRepositorySpec, HelmRepositoryStatus>;
|
|
45
|
+
/**
|
|
46
|
+
* Create the Flux `HelmRelease` installing CrowdSec.
|
|
47
|
+
*
|
|
48
|
+
* The chart ships no CRDs. Values are passed through unchanged; build them
|
|
49
|
+
* with `mapCrowdsecConfigToHelmValues`.
|
|
50
|
+
*/
|
|
51
|
+
export declare function crowdsecHelmRelease(config: Composable<CrowdsecHelmReleaseConfig>): Enhanced<HelmReleaseSpec, HelmReleaseStatus>;
|
|
52
|
+
//# sourceMappingURL=helm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helm.d.ts","sourceRoot":"","sources":["../../../../src/factories/crowdsec/resources/helm.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC7F,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,+BAA+B,CAAC;AAGvC,OAAO,KAAK,EACV,2BAA2B,EAC3B,eAAe,EACf,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAU7B,uDAAuD;AACvD,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,oDAAoD;AACpD,MAAM,WAAW,yBAA0B,SAAQ,2BAA2B;IAC5E,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qBAAqB;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAID,oEAAoE;AACpE,eAAO,MAAM,qCAAqC,EAAE,kBAAkB,CAAC,OAAO,CAC/B,CAAC;AAEhD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,UAAU,CAAC,4BAA4B,CAAC,GAC/C,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAQpD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,UAAU,CAAC,yBAAyB,CAAC,GAC5C,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAyC9C"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CrowdSec Helm resources: the chart source and the release.
|
|
3
|
+
*/
|
|
4
|
+
import { DEFAULT_FLUX_NAMESPACE } from '../../../core/config/defaults.js';
|
|
5
|
+
import { createHelmRepositoryReadinessEvaluator, } from '../../helm/helm-repository.js';
|
|
6
|
+
import { helmReleaseLifecycle } from '../../helm/lifecycle.js';
|
|
7
|
+
import { createLabeledHelmReleaseEvaluator } from '../../helm/readiness-evaluators.js';
|
|
8
|
+
import { createResource } from '../../shared.js';
|
|
9
|
+
import { DEFAULT_CROWDSEC_CHART_NAME, DEFAULT_CROWDSEC_CHART_VERSION, DEFAULT_CROWDSEC_NAMESPACE, DEFAULT_CROWDSEC_REPOSITORY_NAME, DEFAULT_CROWDSEC_REPOSITORY_URL, } from '../constants.js';
|
|
10
|
+
const repositoryReadiness = createHelmRepositoryReadinessEvaluator('CrowdSec');
|
|
11
|
+
/** CrowdSec `HelmRelease` readiness (the shared Flux evaluator). */
|
|
12
|
+
export const crowdsecHelmReleaseReadinessEvaluator = createLabeledHelmReleaseEvaluator('CrowdSec');
|
|
13
|
+
/**
|
|
14
|
+
* Create the Flux `HelmRepository` for the official CrowdSec charts.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* crowdsecHelmRepository({ name: 'crowdsec-repo', id: 'repository' });
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export function crowdsecHelmRepository(config) {
|
|
22
|
+
return createResource({
|
|
23
|
+
...(config.id ? { id: config.id } : {}),
|
|
24
|
+
apiVersion: 'source.toolkit.fluxcd.io/v1',
|
|
25
|
+
kind: 'HelmRepository',
|
|
26
|
+
metadata: { name: config.name, namespace: config.namespace ?? DEFAULT_FLUX_NAMESPACE },
|
|
27
|
+
spec: { url: config.url ?? DEFAULT_CROWDSEC_REPOSITORY_URL, interval: '1h' },
|
|
28
|
+
}).withReadinessEvaluator(repositoryReadiness);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Create the Flux `HelmRelease` installing CrowdSec.
|
|
32
|
+
*
|
|
33
|
+
* The chart ships no CRDs. Values are passed through unchanged; build them
|
|
34
|
+
* with `mapCrowdsecConfigToHelmValues`.
|
|
35
|
+
*/
|
|
36
|
+
export function crowdsecHelmRelease(config) {
|
|
37
|
+
const namespace = config.namespace ?? DEFAULT_FLUX_NAMESPACE;
|
|
38
|
+
return createResource({
|
|
39
|
+
...(config.id ? { id: config.id } : {}),
|
|
40
|
+
apiVersion: 'helm.toolkit.fluxcd.io/v2',
|
|
41
|
+
kind: 'HelmRelease',
|
|
42
|
+
metadata: { name: config.name, namespace },
|
|
43
|
+
spec: {
|
|
44
|
+
interval: '5m',
|
|
45
|
+
// The registration Jobs and the hub downloads on first start are slow.
|
|
46
|
+
timeout: '15m',
|
|
47
|
+
chart: {
|
|
48
|
+
spec: {
|
|
49
|
+
chart: DEFAULT_CROWDSEC_CHART_NAME,
|
|
50
|
+
version: config.version ?? DEFAULT_CROWDSEC_CHART_VERSION,
|
|
51
|
+
sourceRef: {
|
|
52
|
+
kind: 'HelmRepository',
|
|
53
|
+
name: config.repositoryName ?? DEFAULT_CROWDSEC_REPOSITORY_NAME,
|
|
54
|
+
namespace: config.repositoryNamespace ?? namespace,
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
targetNamespace: config.targetNamespace ?? DEFAULT_CROWDSEC_NAMESPACE,
|
|
59
|
+
// Without it Flux composes `<targetNamespace>-<name>`, and every chart
|
|
60
|
+
// resource name (`<release>-service`, ...) would change with it.
|
|
61
|
+
releaseName: config.name,
|
|
62
|
+
// The CrowdSec 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
|
+
remediation: { retries: 3 },
|
|
69
|
+
},
|
|
70
|
+
upgrade: {
|
|
71
|
+
remediation: { retries: 3, remediateLastFailure: true, strategy: 'rollback' },
|
|
72
|
+
},
|
|
73
|
+
}),
|
|
74
|
+
...(config.values ? { values: config.values } : {}),
|
|
75
|
+
},
|
|
76
|
+
}).withReadinessEvaluator(crowdsecHelmReleaseReadinessEvaluator);
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=helm.js.map
|