typekro 0.3.0 → 0.4.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/README.md +142 -1054
- package/dist/.tsbuildinfo +1 -1
- package/dist/alchemy/deployers.d.ts +0 -5
- package/dist/alchemy/deployers.d.ts.map +1 -1
- package/dist/alchemy/deployers.js +25 -72
- package/dist/alchemy/deployers.js.map +1 -1
- package/dist/core/composition/imperative.d.ts +2 -2
- package/dist/core/composition/imperative.d.ts.map +1 -1
- package/dist/core/composition/imperative.js +394 -10
- package/dist/core/composition/imperative.js.map +1 -1
- package/dist/core/composition/typekro-runtime/typekro-runtime.d.ts +1 -9
- package/dist/core/composition/typekro-runtime/typekro-runtime.d.ts.map +1 -1
- package/dist/core/composition/typekro-runtime/typekro-runtime.js +76 -10
- package/dist/core/composition/typekro-runtime/typekro-runtime.js.map +1 -1
- package/dist/core/composition/typekro-runtime/types.d.ts +8 -5
- package/dist/core/composition/typekro-runtime/types.d.ts.map +1 -1
- package/dist/core/composition/typekro-runtime/types.js.map +1 -1
- package/dist/core/constants/brands.d.ts +20 -0
- package/dist/core/constants/brands.d.ts.map +1 -1
- package/dist/core/constants/brands.js +20 -0
- package/dist/core/constants/brands.js.map +1 -1
- package/dist/core/deployment/direct-factory.d.ts +36 -1
- package/dist/core/deployment/direct-factory.d.ts.map +1 -1
- package/dist/core/deployment/direct-factory.js +289 -4
- package/dist/core/deployment/direct-factory.js.map +1 -1
- package/dist/core/deployment/engine.d.ts +57 -2
- package/dist/core/deployment/engine.d.ts.map +1 -1
- package/dist/core/deployment/engine.js +677 -49
- package/dist/core/deployment/engine.js.map +1 -1
- package/dist/core/deployment/event-filter.d.ts.map +1 -1
- package/dist/core/deployment/event-filter.js +6 -7
- package/dist/core/deployment/event-filter.js.map +1 -1
- package/dist/core/deployment/event-monitor.d.ts +36 -2
- package/dist/core/deployment/event-monitor.d.ts.map +1 -1
- package/dist/core/deployment/event-monitor.js +183 -33
- package/dist/core/deployment/event-monitor.js.map +1 -1
- package/dist/core/deployment/kro-factory.d.ts +22 -0
- package/dist/core/deployment/kro-factory.d.ts.map +1 -1
- package/dist/core/deployment/kro-factory.js +291 -27
- package/dist/core/deployment/kro-factory.js.map +1 -1
- package/dist/core/deployment/readiness.d.ts.map +1 -1
- package/dist/core/deployment/readiness.js +4 -2
- package/dist/core/deployment/readiness.js.map +1 -1
- package/dist/core/deployment/rollback-manager.d.ts +2 -1
- package/dist/core/deployment/rollback-manager.d.ts.map +1 -1
- package/dist/core/deployment/rollback-manager.js +5 -2
- package/dist/core/deployment/rollback-manager.js.map +1 -1
- package/dist/core/deployment/shared-utilities.js.map +1 -1
- package/dist/core/deployment/status-hydrator.d.ts +1 -1
- package/dist/core/deployment/status-hydrator.d.ts.map +1 -1
- package/dist/core/deployment/status-hydrator.js +8 -5
- package/dist/core/deployment/status-hydrator.js.map +1 -1
- package/dist/core/deployment/strategies/base-strategy.d.ts.map +1 -1
- package/dist/core/deployment/strategies/base-strategy.js +60 -21
- package/dist/core/deployment/strategies/base-strategy.js.map +1 -1
- package/dist/core/deployment/strategies/direct-strategy.d.ts +7 -0
- package/dist/core/deployment/strategies/direct-strategy.d.ts.map +1 -1
- package/dist/core/deployment/strategies/direct-strategy.js +50 -0
- package/dist/core/deployment/strategies/direct-strategy.js.map +1 -1
- package/dist/core/deployment/strategies/kro-strategy.d.ts +5 -0
- package/dist/core/deployment/strategies/kro-strategy.d.ts.map +1 -1
- package/dist/core/deployment/strategies/kro-strategy.js +53 -4
- package/dist/core/deployment/strategies/kro-strategy.js.map +1 -1
- package/dist/core/evaluation/cel-optimizer.d.ts.map +1 -1
- package/dist/core/evaluation/cel-optimizer.js +7 -13
- package/dist/core/evaluation/cel-optimizer.js.map +1 -1
- package/dist/core/expressions/analyzer.d.ts +6 -6
- package/dist/core/expressions/analyzer.d.ts.map +1 -1
- package/dist/core/expressions/analyzer.js +40 -75
- package/dist/core/expressions/analyzer.js.map +1 -1
- package/dist/core/expressions/cel-conversion-engine.d.ts.map +1 -1
- package/dist/core/expressions/cel-conversion-engine.js +10 -11
- package/dist/core/expressions/cel-conversion-engine.js.map +1 -1
- package/dist/core/expressions/composition-integration.d.ts +2 -2
- package/dist/core/expressions/composition-integration.d.ts.map +1 -1
- package/dist/core/expressions/composition-integration.js +20 -12
- package/dist/core/expressions/composition-integration.js.map +1 -1
- package/dist/core/expressions/field-hydration-processor.d.ts +4 -1
- package/dist/core/expressions/field-hydration-processor.d.ts.map +1 -1
- package/dist/core/expressions/field-hydration-processor.js +12 -13
- package/dist/core/expressions/field-hydration-processor.js.map +1 -1
- package/dist/core/expressions/imperative-analyzer.d.ts.map +1 -1
- package/dist/core/expressions/imperative-analyzer.js +193 -49
- package/dist/core/expressions/imperative-analyzer.js.map +1 -1
- package/dist/core/expressions/index.d.ts +2 -0
- package/dist/core/expressions/index.d.ts.map +1 -1
- package/dist/core/expressions/index.js +2 -0
- package/dist/core/expressions/index.js.map +1 -1
- package/dist/core/expressions/magic-proxy-analyzer.d.ts +1 -1
- package/dist/core/expressions/magic-proxy-analyzer.d.ts.map +1 -1
- package/dist/core/expressions/magic-proxy-analyzer.js +8 -7
- package/dist/core/expressions/magic-proxy-analyzer.js.map +1 -1
- package/dist/core/expressions/parser.d.ts +163 -0
- package/dist/core/expressions/parser.d.ts.map +1 -0
- package/dist/core/expressions/parser.js +272 -0
- package/dist/core/expressions/parser.js.map +1 -0
- package/dist/core/expressions/status-builder-analyzer.d.ts.map +1 -1
- package/dist/core/expressions/status-builder-analyzer.js +15 -5
- package/dist/core/expressions/status-builder-analyzer.js.map +1 -1
- package/dist/core/kubernetes/api.d.ts.map +1 -1
- package/dist/core/kubernetes/api.js +5 -6
- package/dist/core/kubernetes/api.js.map +1 -1
- package/dist/core/kubernetes/bun-api-client.d.ts +95 -0
- package/dist/core/kubernetes/bun-api-client.d.ts.map +1 -0
- package/dist/core/kubernetes/bun-api-client.js +160 -0
- package/dist/core/kubernetes/bun-api-client.js.map +1 -0
- package/dist/core/kubernetes/bun-http-library.d.ts +38 -0
- package/dist/core/kubernetes/bun-http-library.d.ts.map +1 -0
- package/dist/core/kubernetes/bun-http-library.js +133 -0
- package/dist/core/kubernetes/bun-http-library.js.map +1 -0
- package/dist/core/kubernetes/client-provider.d.ts +3 -0
- package/dist/core/kubernetes/client-provider.d.ts.map +1 -1
- package/dist/core/kubernetes/client-provider.js +32 -23
- package/dist/core/kubernetes/client-provider.js.map +1 -1
- package/dist/core/kubernetes/errors.d.ts +189 -0
- package/dist/core/kubernetes/errors.d.ts.map +1 -0
- package/dist/core/kubernetes/errors.js +298 -0
- package/dist/core/kubernetes/errors.js.map +1 -0
- package/dist/core/kubernetes/index.d.ts +19 -0
- package/dist/core/kubernetes/index.d.ts.map +1 -0
- package/dist/core/kubernetes/index.js +23 -0
- package/dist/core/kubernetes/index.js.map +1 -0
- package/dist/core/kubernetes/type-guards.d.ts +142 -0
- package/dist/core/kubernetes/type-guards.d.ts.map +1 -0
- package/dist/core/kubernetes/type-guards.js +151 -0
- package/dist/core/kubernetes/type-guards.js.map +1 -0
- package/dist/core/logging/logger.d.ts.map +1 -1
- package/dist/core/logging/logger.js +8 -0
- package/dist/core/logging/logger.js.map +1 -1
- package/dist/core/readiness/cluster-state.d.ts.map +1 -1
- package/dist/core/readiness/cluster-state.js +6 -4
- package/dist/core/readiness/cluster-state.js.map +1 -1
- package/dist/core/references/cel-evaluator.d.ts.map +1 -1
- package/dist/core/references/cel-evaluator.js +12 -2
- package/dist/core/references/cel-evaluator.js.map +1 -1
- package/dist/core/references/cel.d.ts +13 -1
- package/dist/core/references/cel.d.ts.map +1 -1
- package/dist/core/references/cel.js +50 -0
- package/dist/core/references/cel.js.map +1 -1
- package/dist/core/references/resolver.d.ts +28 -1
- package/dist/core/references/resolver.d.ts.map +1 -1
- package/dist/core/references/resolver.js +325 -11
- package/dist/core/references/resolver.js.map +1 -1
- package/dist/core/references/schema-proxy.d.ts.map +1 -1
- package/dist/core/references/schema-proxy.js +27 -13
- package/dist/core/references/schema-proxy.js.map +1 -1
- package/dist/core/scope/resolver.d.ts +16 -0
- package/dist/core/scope/resolver.d.ts.map +1 -0
- package/dist/core/scope/resolver.js +45 -0
- package/dist/core/scope/resolver.js.map +1 -0
- package/dist/core/serialization/core.d.ts +1 -1
- package/dist/core/serialization/core.d.ts.map +1 -1
- package/dist/core/serialization/core.js +78 -54
- package/dist/core/serialization/core.js.map +1 -1
- package/dist/core/types/common.d.ts +23 -1
- package/dist/core/types/common.d.ts.map +1 -1
- package/dist/core/types/deployment.d.ts +71 -1
- package/dist/core/types/deployment.d.ts.map +1 -1
- package/dist/core/types/deployment.js +24 -0
- package/dist/core/types/deployment.js.map +1 -1
- package/dist/core/types/factory-scope.d.ts +42 -0
- package/dist/core/types/factory-scope.d.ts.map +1 -0
- package/dist/core/types/factory-scope.js +14 -0
- package/dist/core/types/factory-scope.js.map +1 -0
- package/dist/core/types/kubernetes.d.ts +146 -4
- package/dist/core/types/kubernetes.d.ts.map +1 -1
- package/dist/core/types/references.d.ts +47 -3
- package/dist/core/types/references.d.ts.map +1 -1
- package/dist/core/types/references.js.map +1 -1
- package/dist/core/types/serialization.d.ts +17 -6
- package/dist/core/types/serialization.d.ts.map +1 -1
- package/dist/core/utils/crd-patcher.d.ts +30 -0
- package/dist/core/utils/crd-patcher.d.ts.map +1 -0
- package/dist/core/utils/crd-patcher.js +198 -0
- package/dist/core/utils/crd-patcher.js.map +1 -0
- package/dist/core/utils/crd-schema-fix.d.ts +108 -0
- package/dist/core/utils/crd-schema-fix.d.ts.map +1 -0
- package/dist/core/utils/crd-schema-fix.js +245 -0
- package/dist/core/utils/crd-schema-fix.js.map +1 -0
- package/dist/core/utils/index.d.ts +12 -0
- package/dist/core/utils/index.d.ts.map +1 -0
- package/dist/core/utils/index.js +12 -0
- package/dist/core/utils/index.js.map +1 -0
- package/dist/core/utils/minimal-connection-reset-suppression.d.ts +16 -0
- package/dist/core/utils/minimal-connection-reset-suppression.d.ts.map +1 -0
- package/dist/core/utils/minimal-connection-reset-suppression.js +72 -0
- package/dist/core/utils/minimal-connection-reset-suppression.js.map +1 -0
- package/dist/core/utils/output-filter.d.ts +16 -0
- package/dist/core/utils/output-filter.d.ts.map +1 -0
- package/dist/core/utils/output-filter.js +90 -0
- package/dist/core/utils/output-filter.js.map +1 -0
- package/dist/core/utils/scoped-error-suppression.d.ts +25 -0
- package/dist/core/utils/scoped-error-suppression.d.ts.map +1 -0
- package/dist/core/utils/scoped-error-suppression.js +226 -0
- package/dist/core/utils/scoped-error-suppression.js.map +1 -0
- package/dist/core/validation/cel-validator.d.ts.map +1 -1
- package/dist/core/validation/cel-validator.js +51 -15
- package/dist/core/validation/cel-validator.js.map +1 -1
- package/dist/factories/apisix/compositions/apisix-bootstrap.d.ts +38 -0
- package/dist/factories/apisix/compositions/apisix-bootstrap.d.ts.map +1 -0
- package/dist/factories/apisix/compositions/apisix-bootstrap.js +280 -0
- package/dist/factories/apisix/compositions/apisix-bootstrap.js.map +1 -0
- package/dist/factories/apisix/compositions/index.d.ts +5 -0
- package/dist/factories/apisix/compositions/index.d.ts.map +1 -0
- package/dist/factories/apisix/compositions/index.js +5 -0
- package/dist/factories/apisix/compositions/index.js.map +1 -0
- package/dist/factories/apisix/index.d.ts +11 -0
- package/dist/factories/apisix/index.d.ts.map +1 -0
- package/dist/factories/apisix/index.js +11 -0
- package/dist/factories/apisix/index.js.map +1 -0
- package/dist/factories/apisix/resources/helm.d.ts +59 -0
- package/dist/factories/apisix/resources/helm.d.ts.map +1 -0
- package/dist/factories/apisix/resources/helm.js +175 -0
- package/dist/factories/apisix/resources/helm.js.map +1 -0
- package/dist/factories/apisix/resources/index.d.ts +5 -0
- package/dist/factories/apisix/resources/index.d.ts.map +1 -0
- package/dist/factories/apisix/resources/index.js +5 -0
- package/dist/factories/apisix/resources/index.js.map +1 -0
- package/dist/factories/apisix/types.d.ts +339 -0
- package/dist/factories/apisix/types.d.ts.map +1 -0
- package/dist/factories/apisix/types.js +88 -0
- package/dist/factories/apisix/types.js.map +1 -0
- package/dist/factories/apisix/utils/helm-values-mapper.d.ts +19 -0
- package/dist/factories/apisix/utils/helm-values-mapper.d.ts.map +1 -0
- package/dist/factories/apisix/utils/helm-values-mapper.js +108 -0
- package/dist/factories/apisix/utils/helm-values-mapper.js.map +1 -0
- package/dist/factories/apisix/utils/index.d.ts +5 -0
- package/dist/factories/apisix/utils/index.d.ts.map +1 -0
- package/dist/factories/apisix/utils/index.js +5 -0
- package/dist/factories/apisix/utils/index.js.map +1 -0
- package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.d.ts +45 -0
- package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.d.ts.map +1 -0
- package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.js +323 -0
- package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.js.map +1 -0
- package/dist/factories/cert-manager/compositions/index.d.ts +2 -0
- package/dist/factories/cert-manager/compositions/index.d.ts.map +1 -0
- package/dist/factories/cert-manager/compositions/index.js +2 -0
- package/dist/factories/cert-manager/compositions/index.js.map +1 -0
- package/dist/factories/cert-manager/index.d.ts +10 -0
- package/dist/factories/cert-manager/index.d.ts.map +1 -0
- package/dist/factories/cert-manager/index.js +19 -0
- package/dist/factories/cert-manager/index.js.map +1 -0
- package/dist/factories/cert-manager/resources/certificates.d.ts +39 -0
- package/dist/factories/cert-manager/resources/certificates.d.ts.map +1 -0
- package/dist/factories/cert-manager/resources/certificates.js +132 -0
- package/dist/factories/cert-manager/resources/certificates.js.map +1 -0
- package/dist/factories/cert-manager/resources/challenges.d.ts +113 -0
- package/dist/factories/cert-manager/resources/challenges.d.ts.map +1 -0
- package/dist/factories/cert-manager/resources/challenges.js +281 -0
- package/dist/factories/cert-manager/resources/challenges.js.map +1 -0
- package/dist/factories/cert-manager/resources/helm.d.ts +57 -0
- package/dist/factories/cert-manager/resources/helm.d.ts.map +1 -0
- package/dist/factories/cert-manager/resources/helm.js +390 -0
- package/dist/factories/cert-manager/resources/helm.js.map +1 -0
- package/dist/factories/cert-manager/resources/index.d.ts +5 -0
- package/dist/factories/cert-manager/resources/index.d.ts.map +1 -0
- package/dist/factories/cert-manager/resources/index.js +6 -0
- package/dist/factories/cert-manager/resources/index.js.map +1 -0
- package/dist/factories/cert-manager/resources/issuers.d.ts +79 -0
- package/dist/factories/cert-manager/resources/issuers.d.ts.map +1 -0
- package/dist/factories/cert-manager/resources/issuers.js +204 -0
- package/dist/factories/cert-manager/resources/issuers.js.map +1 -0
- package/dist/factories/cert-manager/types.d.ts +1015 -0
- package/dist/factories/cert-manager/types.d.ts.map +1 -0
- package/dist/factories/cert-manager/types.js +198 -0
- package/dist/factories/cert-manager/types.js.map +1 -0
- package/dist/factories/cert-manager/utils/helm-values-mapper.d.ts +19 -0
- package/dist/factories/cert-manager/utils/helm-values-mapper.d.ts.map +1 -0
- package/dist/factories/cert-manager/utils/helm-values-mapper.js +117 -0
- package/dist/factories/cert-manager/utils/helm-values-mapper.js.map +1 -0
- package/dist/factories/cert-manager/utils/index.d.ts +2 -0
- package/dist/factories/cert-manager/utils/index.d.ts.map +1 -0
- package/dist/factories/cert-manager/utils/index.js +2 -0
- package/dist/factories/cert-manager/utils/index.js.map +1 -0
- package/dist/factories/cilium/compositions/cilium-bootstrap.d.ts +220 -0
- package/dist/factories/cilium/compositions/cilium-bootstrap.d.ts.map +1 -0
- package/dist/factories/cilium/compositions/cilium-bootstrap.js +293 -0
- package/dist/factories/cilium/compositions/cilium-bootstrap.js.map +1 -0
- package/dist/factories/cilium/compositions/index.d.ts +8 -0
- package/dist/factories/cilium/compositions/index.d.ts.map +1 -0
- package/dist/factories/cilium/compositions/index.js +11 -0
- package/dist/factories/cilium/compositions/index.js.map +1 -0
- package/dist/factories/cilium/index.d.ts +10 -0
- package/dist/factories/cilium/index.d.ts.map +1 -0
- package/dist/factories/cilium/index.js +19 -0
- package/dist/factories/cilium/index.js.map +1 -0
- package/dist/factories/cilium/resources/bgp.d.ts +10 -0
- package/dist/factories/cilium/resources/bgp.d.ts.map +1 -0
- package/dist/factories/cilium/resources/bgp.js +14 -0
- package/dist/factories/cilium/resources/bgp.js.map +1 -0
- package/dist/factories/cilium/resources/gateway.d.ts +72 -0
- package/dist/factories/cilium/resources/gateway.d.ts.map +1 -0
- package/dist/factories/cilium/resources/gateway.js +118 -0
- package/dist/factories/cilium/resources/gateway.js.map +1 -0
- package/dist/factories/cilium/resources/helm.d.ts +93 -0
- package/dist/factories/cilium/resources/helm.d.ts.map +1 -0
- package/dist/factories/cilium/resources/helm.js +377 -0
- package/dist/factories/cilium/resources/helm.js.map +1 -0
- package/dist/factories/cilium/resources/index.d.ts +14 -0
- package/dist/factories/cilium/resources/index.d.ts.map +1 -0
- package/dist/factories/cilium/resources/index.js +35 -0
- package/dist/factories/cilium/resources/index.js.map +1 -0
- package/dist/factories/cilium/resources/load-balancer.d.ts +9 -0
- package/dist/factories/cilium/resources/load-balancer.d.ts.map +1 -0
- package/dist/factories/cilium/resources/load-balancer.js +12 -0
- package/dist/factories/cilium/resources/load-balancer.js.map +1 -0
- package/dist/factories/cilium/resources/networking.d.ts +202 -0
- package/dist/factories/cilium/resources/networking.d.ts.map +1 -0
- package/dist/factories/cilium/resources/networking.js +581 -0
- package/dist/factories/cilium/resources/networking.js.map +1 -0
- package/dist/factories/cilium/resources/observability.d.ts +9 -0
- package/dist/factories/cilium/resources/observability.d.ts.map +1 -0
- package/dist/factories/cilium/resources/observability.js +11 -0
- package/dist/factories/cilium/resources/observability.js.map +1 -0
- package/dist/factories/cilium/resources/security.d.ts +10 -0
- package/dist/factories/cilium/resources/security.d.ts.map +1 -0
- package/dist/factories/cilium/resources/security.js +14 -0
- package/dist/factories/cilium/resources/security.js.map +1 -0
- package/dist/factories/cilium/types.d.ts +1001 -0
- package/dist/factories/cilium/types.d.ts.map +1 -0
- package/dist/factories/cilium/types.js +79 -0
- package/dist/factories/cilium/types.js.map +1 -0
- package/dist/factories/external-dns/compositions/external-dns-bootstrap.d.ts +32 -0
- package/dist/factories/external-dns/compositions/external-dns-bootstrap.d.ts.map +1 -0
- package/dist/factories/external-dns/compositions/external-dns-bootstrap.js +152 -0
- package/dist/factories/external-dns/compositions/external-dns-bootstrap.js.map +1 -0
- package/dist/factories/external-dns/compositions/index.d.ts +2 -0
- package/dist/factories/external-dns/compositions/index.d.ts.map +1 -0
- package/dist/factories/external-dns/compositions/index.js +3 -0
- package/dist/factories/external-dns/compositions/index.js.map +1 -0
- package/dist/factories/external-dns/index.d.ts +10 -0
- package/dist/factories/external-dns/index.d.ts.map +1 -0
- package/dist/factories/external-dns/index.js +19 -0
- package/dist/factories/external-dns/index.js.map +1 -0
- package/dist/factories/external-dns/resources/dns-endpoint.d.ts +54 -0
- package/dist/factories/external-dns/resources/dns-endpoint.d.ts.map +1 -0
- package/dist/factories/external-dns/resources/dns-endpoint.js +53 -0
- package/dist/factories/external-dns/resources/dns-endpoint.js.map +1 -0
- package/dist/factories/external-dns/resources/helm.d.ts +57 -0
- package/dist/factories/external-dns/resources/helm.d.ts.map +1 -0
- package/dist/factories/external-dns/resources/helm.js +435 -0
- package/dist/factories/external-dns/resources/helm.js.map +1 -0
- package/dist/factories/external-dns/resources/index.d.ts +3 -0
- package/dist/factories/external-dns/resources/index.d.ts.map +1 -0
- package/dist/factories/external-dns/resources/index.js +4 -0
- package/dist/factories/external-dns/resources/index.js.map +1 -0
- package/dist/factories/external-dns/types.d.ts +180 -0
- package/dist/factories/external-dns/types.d.ts.map +1 -0
- package/dist/factories/external-dns/types.js +39 -0
- package/dist/factories/external-dns/types.js.map +1 -0
- package/dist/factories/flux/git-repository.d.ts +2 -2
- package/dist/factories/flux/git-repository.d.ts.map +1 -1
- package/dist/factories/helm/types.d.ts +24 -3
- package/dist/factories/helm/types.d.ts.map +1 -1
- package/dist/factories/index.d.ts +7 -1
- package/dist/factories/index.d.ts.map +1 -1
- package/dist/factories/index.js +21 -1
- package/dist/factories/index.js.map +1 -1
- package/dist/factories/kubernetes/config/config-map.d.ts +4 -1
- package/dist/factories/kubernetes/config/config-map.d.ts.map +1 -1
- package/dist/factories/kubernetes/config/config-map.js +4 -0
- package/dist/factories/kubernetes/config/config-map.js.map +1 -1
- package/dist/factories/kubernetes/config/secret.d.ts +6 -1
- package/dist/factories/kubernetes/config/secret.d.ts.map +1 -1
- package/dist/factories/kubernetes/config/secret.js +4 -0
- package/dist/factories/kubernetes/config/secret.js.map +1 -1
- package/dist/factories/kubernetes/networking/service.d.ts.map +1 -1
- package/dist/factories/kubernetes/networking/service.js +6 -1
- package/dist/factories/kubernetes/networking/service.js.map +1 -1
- package/dist/factories/kubernetes/rbac/cluster-role-binding.d.ts.map +1 -1
- package/dist/factories/kubernetes/rbac/cluster-role-binding.js +1 -1
- package/dist/factories/kubernetes/rbac/cluster-role-binding.js.map +1 -1
- package/dist/factories/kubernetes/rbac/cluster-role.d.ts.map +1 -1
- package/dist/factories/kubernetes/rbac/cluster-role.js +1 -1
- package/dist/factories/kubernetes/rbac/cluster-role.js.map +1 -1
- package/dist/factories/kubernetes/scheduling/priority-class.d.ts.map +1 -1
- package/dist/factories/kubernetes/scheduling/priority-class.js +1 -1
- package/dist/factories/kubernetes/scheduling/priority-class.js.map +1 -1
- package/dist/factories/kubernetes/storage/storage-class.d.ts.map +1 -1
- package/dist/factories/kubernetes/storage/storage-class.js +1 -1
- package/dist/factories/kubernetes/storage/storage-class.js.map +1 -1
- package/dist/factories/kubernetes/workloads/deployment.d.ts.map +1 -1
- package/dist/factories/kubernetes/workloads/deployment.js +9 -4
- package/dist/factories/kubernetes/workloads/deployment.js.map +1 -1
- package/dist/factories/kubernetes/yaml/yaml-directory.js +2 -2
- package/dist/factories/kubernetes/yaml/yaml-directory.js.map +1 -1
- package/dist/factories/kubernetes/yaml/yaml-file.d.ts +31 -1
- package/dist/factories/kubernetes/yaml/yaml-file.d.ts.map +1 -1
- package/dist/factories/kubernetes/yaml/yaml-file.js +80 -7
- package/dist/factories/kubernetes/yaml/yaml-file.js.map +1 -1
- package/dist/factories/pebble/compositions/index.d.ts +2 -0
- package/dist/factories/pebble/compositions/index.d.ts.map +1 -0
- package/dist/factories/pebble/compositions/index.js +3 -0
- package/dist/factories/pebble/compositions/index.js.map +1 -0
- package/dist/factories/pebble/compositions/pebble-bootstrap.d.ts +56 -0
- package/dist/factories/pebble/compositions/pebble-bootstrap.d.ts.map +1 -0
- package/dist/factories/pebble/compositions/pebble-bootstrap.js +97 -0
- package/dist/factories/pebble/compositions/pebble-bootstrap.js.map +1 -0
- package/dist/factories/pebble/index.d.ts +10 -0
- package/dist/factories/pebble/index.d.ts.map +1 -0
- package/dist/factories/pebble/index.js +19 -0
- package/dist/factories/pebble/index.js.map +1 -0
- package/dist/factories/pebble/resources/helm.d.ts +99 -0
- package/dist/factories/pebble/resources/helm.d.ts.map +1 -0
- package/dist/factories/pebble/resources/helm.js +167 -0
- package/dist/factories/pebble/resources/helm.js.map +1 -0
- package/dist/factories/pebble/resources/index.d.ts +2 -0
- package/dist/factories/pebble/resources/index.d.ts.map +1 -0
- package/dist/factories/pebble/resources/index.js +3 -0
- package/dist/factories/pebble/resources/index.js.map +1 -0
- package/dist/factories/pebble/types.d.ts +184 -0
- package/dist/factories/pebble/types.d.ts.map +1 -0
- package/dist/factories/pebble/types.js +23 -0
- package/dist/factories/pebble/types.js.map +1 -0
- package/dist/factories/pebble/utils/helm-values-mapper.d.ts +21 -0
- package/dist/factories/pebble/utils/helm-values-mapper.d.ts.map +1 -0
- package/dist/factories/pebble/utils/helm-values-mapper.js +96 -0
- package/dist/factories/pebble/utils/helm-values-mapper.js.map +1 -0
- package/dist/factories/shared.d.ts +18 -1
- package/dist/factories/shared.d.ts.map +1 -1
- package/dist/factories/shared.js +89 -8
- package/dist/factories/shared.js.map +1 -1
- package/dist/factories/simple/config/config-map.d.ts +7 -2
- package/dist/factories/simple/config/config-map.d.ts.map +1 -1
- package/dist/factories/simple/config/config-map.js +3 -0
- package/dist/factories/simple/config/config-map.js.map +1 -1
- package/dist/factories/simple/config/secret.d.ts +11 -2
- package/dist/factories/simple/config/secret.d.ts.map +1 -1
- package/dist/factories/simple/config/secret.js +23 -1
- package/dist/factories/simple/config/secret.js.map +1 -1
- package/dist/factories/simple/storage/persistent-volume-claim.d.ts.map +1 -1
- package/dist/factories/simple/storage/persistent-volume-claim.js +1 -0
- package/dist/factories/simple/storage/persistent-volume-claim.js.map +1 -1
- package/dist/factories/simple/types.d.ts +5 -1
- package/dist/factories/simple/types.d.ts.map +1 -1
- package/dist/utils/helpers.d.ts.map +1 -1
- package/dist/utils/helpers.js +67 -0
- package/dist/utils/helpers.js.map +1 -1
- package/dist/utils/type-guards.d.ts +5 -0
- package/dist/utils/type-guards.d.ts.map +1 -1
- package/dist/utils/type-guards.js +9 -3
- package/dist/utils/type-guards.js.map +1 -1
- package/package.json +49 -5
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
import { kubernetesComposition } from '../../../index.js';
|
|
2
|
+
import { APISixBootstrapConfigSchema, APISixBootstrapStatusSchema, } from '../types.js';
|
|
3
|
+
import { apisixHelmRepository, apisixHelmRelease } from '../resources/helm.js';
|
|
4
|
+
import { mapAPISixConfigToHelmValues } from '../utils/helm-values-mapper.js';
|
|
5
|
+
import { namespace } from '../../kubernetes/core/namespace.js';
|
|
6
|
+
import { createResource } from '../../shared.js';
|
|
7
|
+
/**
|
|
8
|
+
* Helper function to ensure version has 'v' prefix for image tags if needed
|
|
9
|
+
*/
|
|
10
|
+
function _ensureVersionPrefix(version) {
|
|
11
|
+
// APISix versions don't typically use 'v' prefix, so return as-is
|
|
12
|
+
return version;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* APISix Bootstrap Composition
|
|
16
|
+
*
|
|
17
|
+
* Creates a complete APISix ingress controller deployment using HelmRepository and HelmRelease resources.
|
|
18
|
+
* Provides comprehensive configuration options and status expressions derived from actual resource status.
|
|
19
|
+
*
|
|
20
|
+
* Features:
|
|
21
|
+
* - Complete APISix deployment (gateway, ingress controller, dashboard, etcd)
|
|
22
|
+
* - Configurable ingress class and gateway settings
|
|
23
|
+
* - Production-ready defaults with customization options
|
|
24
|
+
* - Status expressions for monitoring deployment health
|
|
25
|
+
* - Integration with external-dns and cert-manager
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* const apisix = apisixBootstrap({
|
|
30
|
+
* name: 'apisix',
|
|
31
|
+
* namespace: 'apisix-system',
|
|
32
|
+
* version: '2.8.0',
|
|
33
|
+
* ingressController: {
|
|
34
|
+
* enabled: true,
|
|
35
|
+
* config: {
|
|
36
|
+
* kubernetes: {
|
|
37
|
+
* ingressClass: 'apisix'
|
|
38
|
+
* }
|
|
39
|
+
* }
|
|
40
|
+
* },
|
|
41
|
+
* gateway: {
|
|
42
|
+
* type: 'LoadBalancer',
|
|
43
|
+
* http: { enabled: true, servicePort: 80 },
|
|
44
|
+
* https: { enabled: true, servicePort: 443 }
|
|
45
|
+
* }
|
|
46
|
+
* });
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export const apisixBootstrap = kubernetesComposition({
|
|
50
|
+
name: 'apisix-bootstrap',
|
|
51
|
+
kind: 'APISixBootstrap',
|
|
52
|
+
spec: APISixBootstrapConfigSchema,
|
|
53
|
+
status: APISixBootstrapStatusSchema,
|
|
54
|
+
}, (spec) => {
|
|
55
|
+
// Extract actual values from spec - these may be KubernetesRef proxies during initial composition
|
|
56
|
+
// but will be actual values during re-execution
|
|
57
|
+
const specName = spec.name;
|
|
58
|
+
const specNamespace = spec.namespace;
|
|
59
|
+
const specVersion = spec.version;
|
|
60
|
+
// Use string coercion to get actual values from potential KubernetesRef proxies
|
|
61
|
+
const actualName = String(specName || 'apisix');
|
|
62
|
+
const actualNamespace = String(specNamespace || 'apisix-system');
|
|
63
|
+
const actualVersion = String(specVersion || '2.8.0');
|
|
64
|
+
// Apply default configuration values using actual string values
|
|
65
|
+
const fullConfig = {
|
|
66
|
+
// Basic defaults - use actual string values
|
|
67
|
+
name: actualName,
|
|
68
|
+
namespace: actualNamespace,
|
|
69
|
+
version: actualVersion,
|
|
70
|
+
installCRDs: spec.installCRDs !== undefined ? spec.installCRDs : true,
|
|
71
|
+
replicaCount: spec.replicaCount || 1,
|
|
72
|
+
// Global defaults
|
|
73
|
+
global: {
|
|
74
|
+
...spec.global,
|
|
75
|
+
imagePullSecrets: spec.global?.imagePullSecrets || [],
|
|
76
|
+
imageRegistry: spec.global?.imageRegistry || '',
|
|
77
|
+
},
|
|
78
|
+
// Gateway defaults - enable both HTTP and HTTPS with LoadBalancer
|
|
79
|
+
gateway: {
|
|
80
|
+
...spec.gateway,
|
|
81
|
+
type: spec.gateway?.type || 'LoadBalancer',
|
|
82
|
+
http: {
|
|
83
|
+
enabled: spec.gateway?.http?.enabled !== undefined ? spec.gateway.http.enabled : true,
|
|
84
|
+
servicePort: spec.gateway?.http?.servicePort || 80,
|
|
85
|
+
containerPort: spec.gateway?.http?.containerPort || 9080,
|
|
86
|
+
},
|
|
87
|
+
https: {
|
|
88
|
+
enabled: spec.gateway?.https?.enabled !== undefined ? spec.gateway.https.enabled : true,
|
|
89
|
+
servicePort: spec.gateway?.https?.servicePort || 443,
|
|
90
|
+
containerPort: spec.gateway?.https?.containerPort || 9443,
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
// Ingress Controller defaults
|
|
94
|
+
ingressController: {
|
|
95
|
+
...spec.ingressController,
|
|
96
|
+
enabled: spec.ingressController?.enabled !== undefined ? spec.ingressController.enabled : true,
|
|
97
|
+
extraArgs: spec.ingressController?.extraArgs || [],
|
|
98
|
+
config: {
|
|
99
|
+
...spec.ingressController?.config,
|
|
100
|
+
kubernetes: {
|
|
101
|
+
ingressClass: spec.ingressController?.config?.kubernetes?.ingressClass || 'apisix',
|
|
102
|
+
// Watch all namespaces by default (empty string means all namespaces)
|
|
103
|
+
watchedNamespace: spec.ingressController?.config?.kubernetes?.watchedNamespace || '',
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
// Service Account defaults
|
|
108
|
+
serviceAccount: {
|
|
109
|
+
...spec.serviceAccount,
|
|
110
|
+
create: spec.serviceAccount?.create !== undefined ? spec.serviceAccount.create : true,
|
|
111
|
+
name: spec.serviceAccount?.name || '',
|
|
112
|
+
},
|
|
113
|
+
// RBAC defaults
|
|
114
|
+
rbac: {
|
|
115
|
+
...spec.rbac,
|
|
116
|
+
create: spec.rbac?.create !== undefined ? spec.rbac.create : true,
|
|
117
|
+
},
|
|
118
|
+
};
|
|
119
|
+
// Ensure consistent admin key between gateway and ingress controller
|
|
120
|
+
const adminKey = 'edd1c9f034335f136f87ad84b625c8f1';
|
|
121
|
+
// Map configuration to Helm values
|
|
122
|
+
const helmValues = mapAPISixConfigToHelmValues(fullConfig);
|
|
123
|
+
// Configure service type and ports for the gateway
|
|
124
|
+
if (!helmValues.service) {
|
|
125
|
+
helmValues.service = {};
|
|
126
|
+
}
|
|
127
|
+
helmValues.service.type = fullConfig.gateway?.type || 'LoadBalancer';
|
|
128
|
+
// Enable HTTP port
|
|
129
|
+
if (!helmValues.service.http) {
|
|
130
|
+
helmValues.service.http = {};
|
|
131
|
+
}
|
|
132
|
+
helmValues.service.http.enabled = fullConfig.gateway?.http?.enabled !== false;
|
|
133
|
+
// Enable TLS/HTTPS port
|
|
134
|
+
if (!helmValues.service.tls) {
|
|
135
|
+
helmValues.service.tls = {};
|
|
136
|
+
}
|
|
137
|
+
helmValues.service.tls.enabled = fullConfig.gateway?.https?.enabled !== false;
|
|
138
|
+
helmValues.service.tls.servicePort = fullConfig.gateway?.https?.servicePort || 443;
|
|
139
|
+
helmValues.service.tls.containerPort = fullConfig.gateway?.https?.containerPort || 9443;
|
|
140
|
+
// Configure admin API access - allow from all IPs for cluster-internal access
|
|
141
|
+
if (!helmValues.apisix) {
|
|
142
|
+
helmValues.apisix = {};
|
|
143
|
+
}
|
|
144
|
+
helmValues.apisix.admin = {
|
|
145
|
+
allow: {
|
|
146
|
+
ipList: ['0.0.0.0/0'], // Allow from anywhere within the cluster
|
|
147
|
+
},
|
|
148
|
+
};
|
|
149
|
+
// Enable SSL in APISix
|
|
150
|
+
helmValues.apisix.ssl = {
|
|
151
|
+
enabled: true,
|
|
152
|
+
};
|
|
153
|
+
// Create namespace for APISix (required before HelmRelease)
|
|
154
|
+
const _apisixNamespace = namespace({
|
|
155
|
+
metadata: {
|
|
156
|
+
name: actualNamespace,
|
|
157
|
+
labels: {
|
|
158
|
+
'app.kubernetes.io/name': 'apisix',
|
|
159
|
+
'app.kubernetes.io/instance': actualName,
|
|
160
|
+
'app.kubernetes.io/version': actualVersion,
|
|
161
|
+
'app.kubernetes.io/managed-by': 'typekro',
|
|
162
|
+
},
|
|
163
|
+
},
|
|
164
|
+
id: 'apisixNamespace',
|
|
165
|
+
});
|
|
166
|
+
// Create HelmRepository for APISix charts
|
|
167
|
+
const _helmRepository = apisixHelmRepository({
|
|
168
|
+
name: 'apisix-repo',
|
|
169
|
+
namespace: 'flux-system',
|
|
170
|
+
url: 'https://charts.apiseven.com',
|
|
171
|
+
interval: '1h',
|
|
172
|
+
id: 'apisixHelmRepository',
|
|
173
|
+
});
|
|
174
|
+
// Create HelmRelease for APISix Gateway
|
|
175
|
+
const helmRelease = apisixHelmRelease({
|
|
176
|
+
name: actualName,
|
|
177
|
+
namespace: 'flux-system',
|
|
178
|
+
targetNamespace: actualNamespace,
|
|
179
|
+
chart: 'apisix',
|
|
180
|
+
version: actualVersion,
|
|
181
|
+
interval: '5m',
|
|
182
|
+
timeout: '10m',
|
|
183
|
+
values: helmValues,
|
|
184
|
+
id: 'apisixHelmRelease',
|
|
185
|
+
});
|
|
186
|
+
// Create HelmRelease for APISix Ingress Controller (separate chart)
|
|
187
|
+
// Use actual string values for service names to avoid KubernetesRef serialization issues
|
|
188
|
+
const ingressControllerHelmRelease = apisixHelmRelease({
|
|
189
|
+
name: `${actualName}-ingress-controller`,
|
|
190
|
+
namespace: 'flux-system',
|
|
191
|
+
targetNamespace: actualNamespace,
|
|
192
|
+
chart: 'apisix-ingress-controller',
|
|
193
|
+
version: '0.13.0', // Use a stable version of the ingress controller
|
|
194
|
+
repositoryName: 'apisix-repo', // Use the same repository as the main APISix chart
|
|
195
|
+
interval: '5m',
|
|
196
|
+
timeout: '10m',
|
|
197
|
+
values: {
|
|
198
|
+
config: {
|
|
199
|
+
apisix: {
|
|
200
|
+
// Use actual string values for service configuration
|
|
201
|
+
serviceName: `${actualNamespace}-${actualName}-admin`,
|
|
202
|
+
serviceNamespace: actualNamespace,
|
|
203
|
+
servicePort: 9180,
|
|
204
|
+
adminKey: adminKey, // Use admin key for authentication
|
|
205
|
+
adminAPIVersion: 'v3', // Use v3 API version for APISix 3.9.1
|
|
206
|
+
},
|
|
207
|
+
kubernetes: {
|
|
208
|
+
ingressClass: fullConfig.ingressController?.config?.kubernetes?.ingressClass || 'apisix',
|
|
209
|
+
// Watch all namespaces (empty string means all namespaces)
|
|
210
|
+
watchedNamespace: fullConfig.ingressController?.config?.kubernetes?.watchedNamespace || '',
|
|
211
|
+
},
|
|
212
|
+
// Configure ingress status update with the gateway service
|
|
213
|
+
ingressPublishService: `${actualNamespace}/${actualNamespace}-${actualName}-gateway`,
|
|
214
|
+
},
|
|
215
|
+
serviceAccount: {
|
|
216
|
+
create: true,
|
|
217
|
+
},
|
|
218
|
+
rbac: {
|
|
219
|
+
create: true,
|
|
220
|
+
},
|
|
221
|
+
ingressClass: {
|
|
222
|
+
create: false, // Don't create IngressClass - we create it manually
|
|
223
|
+
},
|
|
224
|
+
},
|
|
225
|
+
id: 'apisixIngressControllerHelmRelease',
|
|
226
|
+
});
|
|
227
|
+
// Create IngressClass for APISix ingress controller
|
|
228
|
+
const _apisixIngressClass = createResource({
|
|
229
|
+
apiVersion: 'networking.k8s.io/v1',
|
|
230
|
+
kind: 'IngressClass',
|
|
231
|
+
metadata: {
|
|
232
|
+
name: fullConfig.ingressController?.config?.kubernetes?.ingressClass || 'apisix',
|
|
233
|
+
labels: {
|
|
234
|
+
'app.kubernetes.io/name': 'apisix',
|
|
235
|
+
'app.kubernetes.io/instance': actualName,
|
|
236
|
+
'app.kubernetes.io/version': actualVersion,
|
|
237
|
+
'app.kubernetes.io/managed-by': 'typekro',
|
|
238
|
+
},
|
|
239
|
+
},
|
|
240
|
+
spec: {
|
|
241
|
+
controller: 'apisix.apache.org/apisix-ingress',
|
|
242
|
+
},
|
|
243
|
+
id: 'apisixIngressClass',
|
|
244
|
+
}).withReadinessEvaluator(() => ({
|
|
245
|
+
ready: true,
|
|
246
|
+
message: 'IngressClass is ready when created (configuration resource)',
|
|
247
|
+
}));
|
|
248
|
+
// Return status with resources AND dynamic references
|
|
249
|
+
// The imperative pattern expects resources to be returned as part of the status object
|
|
250
|
+
// so they can be referenced by the status fields
|
|
251
|
+
return {
|
|
252
|
+
// Include the resources so they can be referenced
|
|
253
|
+
helmRelease,
|
|
254
|
+
ingressControllerHelmRelease,
|
|
255
|
+
// Status fields with dynamic resource references
|
|
256
|
+
// The magic proxy system will convert these to CEL expressions during serialization
|
|
257
|
+
ready: helmRelease.status.phase === 'Ready' &&
|
|
258
|
+
ingressControllerHelmRelease.status.phase === 'Ready',
|
|
259
|
+
phase: (helmRelease.status.phase === 'Ready' &&
|
|
260
|
+
ingressControllerHelmRelease.status.phase === 'Ready'
|
|
261
|
+
? 'Ready'
|
|
262
|
+
: 'Installing'),
|
|
263
|
+
gatewayReady: helmRelease.status.phase === 'Ready',
|
|
264
|
+
ingressControllerReady: ingressControllerHelmRelease.status.phase === 'Ready',
|
|
265
|
+
dashboardReady: false, // Dashboard not deployed in this composition
|
|
266
|
+
etcdReady: false, // etcd not deployed in this composition (using external etcd assumed)
|
|
267
|
+
gatewayService: {
|
|
268
|
+
name: `${actualName}-gateway`,
|
|
269
|
+
namespace: actualNamespace,
|
|
270
|
+
type: fullConfig.gateway?.type || 'LoadBalancer',
|
|
271
|
+
clusterIP: '', // Will be populated by actual service
|
|
272
|
+
externalIP: '', // Will be populated by actual service
|
|
273
|
+
},
|
|
274
|
+
ingressClass: {
|
|
275
|
+
name: fullConfig.ingressController?.config?.kubernetes?.ingressClass || 'apisix',
|
|
276
|
+
controller: 'apisix.apache.org/apisix-ingress',
|
|
277
|
+
},
|
|
278
|
+
};
|
|
279
|
+
});
|
|
280
|
+
//# sourceMappingURL=apisix-bootstrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apisix-bootstrap.js","sourceRoot":"","sources":["../../../../src/factories/apisix/compositions/apisix-bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,GAE5B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;GAEG;AACH,SAAS,oBAAoB,CAAC,OAAe;IAC3C,kEAAkE;IAClE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,qBAAqB,CAClD;IACE,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,2BAA2B;IACjC,MAAM,EAAE,2BAA2B;CACpC,EACD,CAAC,IAAI,EAAE,EAAE;IACP,kGAAkG;IAClG,gDAAgD;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;IAC3B,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;IACrC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;IAEjC,gFAAgF;IAChF,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;IAChD,MAAM,eAAe,GAAG,MAAM,CAAC,aAAa,IAAI,eAAe,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,IAAI,OAAO,CAAC,CAAC;IAErD,gEAAgE;IAChE,MAAM,UAAU,GAA0B;QACxC,4CAA4C;QAC5C,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,eAAe;QAC1B,OAAO,EAAE,aAAa;QACtB,WAAW,EAAE,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;QACrE,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,CAAC;QAEpC,kBAAkB;QAClB,MAAM,EAAE;YACN,GAAG,IAAI,CAAC,MAAM;YACd,gBAAgB,EAAE,IAAI,CAAC,MAAM,EAAE,gBAAgB,IAAI,EAAE;YACrD,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE,aAAa,IAAI,EAAE;SAChD;QAED,kEAAkE;QAClE,OAAO,EAAE;YACP,GAAG,IAAI,CAAC,OAAO;YACf,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,cAAc;YAC1C,IAAI,EAAE;gBACJ,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;gBACrF,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,IAAI,EAAE;gBAClD,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,aAAa,IAAI,IAAI;aACzD;YACD,KAAK,EAAE;gBACL,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;gBACvF,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,IAAI,GAAG;gBACpD,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,aAAa,IAAI,IAAI;aAC1D;SACF;QAED,8BAA8B;QAC9B,iBAAiB,EAAE;YACjB,GAAG,IAAI,CAAC,iBAAiB;YACzB,OAAO,EACL,IAAI,CAAC,iBAAiB,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YACvF,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,IAAI,EAAE;YAClD,MAAM,EAAE;gBACN,GAAG,IAAI,CAAC,iBAAiB,EAAE,MAAM;gBACjC,UAAU,EAAE;oBACV,YAAY,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,IAAI,QAAQ;oBAClF,sEAAsE;oBACtE,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,IAAI,EAAE;iBACrF;aACF;SACF;QAED,2BAA2B;QAC3B,cAAc,EAAE;YACd,GAAG,IAAI,CAAC,cAAc;YACtB,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;YACrF,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,EAAE;SACtC;QAED,gBAAgB;QAChB,IAAI,EAAE;YACJ,GAAG,IAAI,CAAC,IAAI;YACZ,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;SAClE;KACF,CAAC;IAEF,qEAAqE;IACrE,MAAM,QAAQ,GAAG,kCAAkC,CAAC;IAEpD,mCAAmC;IACnC,MAAM,UAAU,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;IAE3D,mDAAmD;IACnD,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACxB,UAAU,CAAC,OAAO,GAAG,EAAE,CAAC;IAC1B,CAAC;IACD,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,IAAI,cAAc,CAAC;IAErE,mBAAmB;IACnB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7B,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC;IAC/B,CAAC;IACD,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,KAAK,KAAK,CAAC;IAE9E,wBAAwB;IACxB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QAC5B,UAAU,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC;IAC9B,CAAC;IACD,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC;IAC9E,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,IAAI,GAAG,CAAC;IACnF,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,aAAa,IAAI,IAAI,CAAC;IAExF,8EAA8E;IAC9E,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QACvB,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC;IACzB,CAAC;IACA,UAAU,CAAC,MAA8B,CAAC,KAAK,GAAG;QACjD,KAAK,EAAE;YACL,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,yCAAyC;SACjE;KACF,CAAC;IAEF,uBAAuB;IACtB,UAAU,CAAC,MAA8B,CAAC,GAAG,GAAG;QAC/C,OAAO,EAAE,IAAI;KACd,CAAC;IAEF,4DAA4D;IAC5D,MAAM,gBAAgB,GAAG,SAAS,CAAC;QACjC,QAAQ,EAAE;YACR,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE;gBACN,wBAAwB,EAAE,QAAQ;gBAClC,4BAA4B,EAAE,UAAU;gBACxC,2BAA2B,EAAE,aAAa;gBAC1C,8BAA8B,EAAE,SAAS;aAC1C;SACF;QACD,EAAE,EAAE,iBAAiB;KACtB,CAAC,CAAC;IAEH,0CAA0C;IAC1C,MAAM,eAAe,GAAG,oBAAoB,CAAC;QAC3C,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE,aAAa;QACxB,GAAG,EAAE,6BAA6B;QAClC,QAAQ,EAAE,IAAI;QACd,EAAE,EAAE,sBAAsB;KAC3B,CAAC,CAAC;IAEH,wCAAwC;IACxC,MAAM,WAAW,GAAG,iBAAiB,CAAC;QACpC,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,aAAa;QACxB,eAAe,EAAE,eAAe;QAChC,KAAK,EAAE,QAAQ;QACf,OAAO,EAAE,aAAa;QACtB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,UAAU;QAClB,EAAE,EAAE,mBAAmB;KACxB,CAAC,CAAC;IAEH,oEAAoE;IACpE,yFAAyF;IACzF,MAAM,4BAA4B,GAAG,iBAAiB,CAAC;QACrD,IAAI,EAAE,GAAG,UAAU,qBAAqB;QACxC,SAAS,EAAE,aAAa;QACxB,eAAe,EAAE,eAAe;QAChC,KAAK,EAAE,2BAA2B;QAClC,OAAO,EAAE,QAAQ,EAAE,iDAAiD;QACpE,cAAc,EAAE,aAAa,EAAE,mDAAmD;QAClF,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,KAAK;QACd,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,MAAM,EAAE;oBACN,qDAAqD;oBACrD,WAAW,EAAE,GAAG,eAAe,IAAI,UAAU,QAAQ;oBACrD,gBAAgB,EAAE,eAAe;oBACjC,WAAW,EAAE,IAAI;oBACjB,QAAQ,EAAE,QAAQ,EAAE,mCAAmC;oBACvD,eAAe,EAAE,IAAI,EAAE,sCAAsC;iBAC9D;gBACD,UAAU,EAAE;oBACV,YAAY,EAAE,UAAU,CAAC,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,IAAI,QAAQ;oBACxF,2DAA2D;oBAC3D,gBAAgB,EAAE,UAAU,CAAC,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,IAAI,EAAE;iBAC3F;gBACD,2DAA2D;gBAC3D,qBAAqB,EAAE,GAAG,eAAe,IAAI,eAAe,IAAI,UAAU,UAAU;aACrF;YACD,cAAc,EAAE;gBACd,MAAM,EAAE,IAAI;aACb;YACD,IAAI,EAAE;gBACJ,MAAM,EAAE,IAAI;aACb;YACD,YAAY,EAAE;gBACZ,MAAM,EAAE,KAAK,EAAE,oDAAoD;aACpE;SACF;QACD,EAAE,EAAE,oCAAoC;KACzC,CAAC,CAAC;IAEH,oDAAoD;IACpD,MAAM,mBAAmB,GAAG,cAAc,CAAC;QACzC,UAAU,EAAE,sBAAsB;QAClC,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE;YACR,IAAI,EAAE,UAAU,CAAC,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,IAAI,QAAQ;YAChF,MAAM,EAAE;gBACN,wBAAwB,EAAE,QAAQ;gBAClC,4BAA4B,EAAE,UAAU;gBACxC,2BAA2B,EAAE,aAAa;gBAC1C,8BAA8B,EAAE,SAAS;aAC1C;SACF;QACD,IAAI,EAAE;YACJ,UAAU,EAAE,kCAAkC;SAC/C;QACD,EAAE,EAAE,oBAAoB;KACzB,CAAC,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/B,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,6DAA6D;KACvE,CAAC,CAAC,CAAC;IAEJ,sDAAsD;IACtD,uFAAuF;IACvF,iDAAiD;IACjD,OAAO;QACL,kDAAkD;QAClD,WAAW;QACX,4BAA4B;QAE5B,iDAAiD;QACjD,oFAAoF;QACpF,KAAK,EACH,WAAW,CAAC,MAAM,CAAC,KAAK,KAAK,OAAO;YACpC,4BAA4B,CAAC,MAAM,CAAC,KAAK,KAAK,OAAO;QACvD,KAAK,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,KAAK,OAAO;YAC5C,4BAA4B,CAAC,MAAM,CAAC,KAAK,KAAK,OAAO;YACnD,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,YAAY,CAAgE;QAChF,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,KAAK,OAAO;QAClD,sBAAsB,EAAE,4BAA4B,CAAC,MAAM,CAAC,KAAK,KAAK,OAAO;QAC7E,cAAc,EAAE,KAAK,EAAE,6CAA6C;QACpE,SAAS,EAAE,KAAK,EAAE,sEAAsE;QACxF,cAAc,EAAE;YACd,IAAI,EAAE,GAAG,UAAU,UAAU;YAC7B,SAAS,EAAE,eAAe;YAC1B,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,IAAI,cAAc;YAChD,SAAS,EAAE,EAAE,EAAE,sCAAsC;YACrD,UAAU,EAAE,EAAE,EAAE,sCAAsC;SACvD;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,UAAU,CAAC,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,IAAI,QAAQ;YAChF,UAAU,EAAE,kCAAkC;SAC/C;KACF,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factories/apisix/compositions/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/factories/apisix/compositions/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* APISix Ingress Controller Factory
|
|
3
|
+
*
|
|
4
|
+
* Provides TypeKro compositions for deploying APISix ingress controller
|
|
5
|
+
* following the same patterns as cert-manager and external-dns factories.
|
|
6
|
+
*/
|
|
7
|
+
export * from './compositions/index.js';
|
|
8
|
+
export * from './resources/index.js';
|
|
9
|
+
export * from './types.js';
|
|
10
|
+
export { mapAPISixConfigToHelmValues as mapAPISixBootstrapConfigToHelmValues, validateAPISixHelmValues } from './utils/index.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/factories/apisix/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,2BAA2B,IAAI,oCAAoC,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* APISix Ingress Controller Factory
|
|
3
|
+
*
|
|
4
|
+
* Provides TypeKro compositions for deploying APISix ingress controller
|
|
5
|
+
* following the same patterns as cert-manager and external-dns factories.
|
|
6
|
+
*/
|
|
7
|
+
export * from './compositions/index.js';
|
|
8
|
+
export * from './resources/index.js';
|
|
9
|
+
export * from './types.js';
|
|
10
|
+
export { mapAPISixConfigToHelmValues as mapAPISixBootstrapConfigToHelmValues, validateAPISixHelmValues } from './utils/index.js';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/factories/apisix/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,2BAA2B,IAAI,oCAAoC,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* APISix Helm Resources
|
|
3
|
+
*
|
|
4
|
+
* Factory functions for creating APISix HelmRepository and HelmRelease resources
|
|
5
|
+
* following the same patterns as cert-manager.
|
|
6
|
+
*/
|
|
7
|
+
import type { Enhanced } from '../../../core/types/index.js';
|
|
8
|
+
import type { APISixHelmValues } from '../types.js';
|
|
9
|
+
import type { HelmRepositorySpec, HelmRepositoryStatus } from '../../helm/helm-repository.js';
|
|
10
|
+
/**
|
|
11
|
+
* Configuration for APISix HelmRepository
|
|
12
|
+
*/
|
|
13
|
+
export interface APISixHelmRepositoryConfig {
|
|
14
|
+
name: string;
|
|
15
|
+
namespace?: string;
|
|
16
|
+
url?: string;
|
|
17
|
+
interval?: string;
|
|
18
|
+
id?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Configuration for APISix HelmRelease
|
|
22
|
+
*/
|
|
23
|
+
export interface APISixHelmReleaseConfig {
|
|
24
|
+
name: string;
|
|
25
|
+
namespace?: string;
|
|
26
|
+
targetNamespace?: string;
|
|
27
|
+
chart?: string;
|
|
28
|
+
version?: string;
|
|
29
|
+
interval?: string;
|
|
30
|
+
timeout?: string;
|
|
31
|
+
values?: APISixHelmValues;
|
|
32
|
+
repositoryName?: string;
|
|
33
|
+
id?: string;
|
|
34
|
+
}
|
|
35
|
+
export declare function apisixHelmRepository(config: APISixHelmRepositoryConfig): Enhanced<HelmRepositorySpec, HelmRepositoryStatus>;
|
|
36
|
+
/**
|
|
37
|
+
* Creates an APISix HelmRelease resource
|
|
38
|
+
*
|
|
39
|
+
* @param config - HelmRelease configuration
|
|
40
|
+
* @returns Enhanced HelmRelease resource
|
|
41
|
+
*/
|
|
42
|
+
export declare function apisixHelmRelease(config: APISixHelmReleaseConfig): Enhanced<any, any>;
|
|
43
|
+
/**
|
|
44
|
+
* Maps APISix configuration to Helm values for the HelmRelease
|
|
45
|
+
* This is a simpler version that just passes through the values
|
|
46
|
+
*
|
|
47
|
+
* @param config - The APISix Helm values
|
|
48
|
+
* @returns Helm values object for the APISix chart
|
|
49
|
+
*/
|
|
50
|
+
export declare function mapAPISixConfigToHelmValues(config: APISixHelmValues): Record<string, any>;
|
|
51
|
+
/**
|
|
52
|
+
* Readiness evaluator for APISix HelmRelease
|
|
53
|
+
* Checks if the HelmRelease is ready and all components are deployed
|
|
54
|
+
*/
|
|
55
|
+
export declare function apisixHelmReleaseReadinessEvaluator(resource: any): {
|
|
56
|
+
ready: boolean;
|
|
57
|
+
message: string;
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=helm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helm.d.ts","sourceRoot":"","sources":["../../../../src/factories/apisix/resources/helm.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE9F;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAuBD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,0BAA0B,GAAG,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAc3H;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CA8CrF;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA2DzF;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CAAC,QAAQ,EAAE,GAAG;;;EAyBhE"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* APISix Helm Resources
|
|
3
|
+
*
|
|
4
|
+
* Factory functions for creating APISix HelmRepository and HelmRelease resources
|
|
5
|
+
* following the same patterns as cert-manager.
|
|
6
|
+
*/
|
|
7
|
+
import { createResource } from '../../shared.js';
|
|
8
|
+
/**
|
|
9
|
+
* Creates an APISix HelmRepository resource
|
|
10
|
+
*
|
|
11
|
+
* @param config - HelmRepository configuration
|
|
12
|
+
* @returns Enhanced HelmRepository resource
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Readiness evaluator for APISix HelmRepository resources
|
|
16
|
+
* HelmRepository is ready when it has a Ready condition with status True
|
|
17
|
+
*/
|
|
18
|
+
function apisixHelmRepositoryReadinessEvaluator(resource) {
|
|
19
|
+
const conditions = resource.status?.conditions || [];
|
|
20
|
+
const readyCondition = conditions.find((c) => c.type === 'Ready');
|
|
21
|
+
const isReady = readyCondition?.status === 'True';
|
|
22
|
+
return {
|
|
23
|
+
ready: isReady,
|
|
24
|
+
message: isReady ? 'APISix HelmRepository is ready' : 'APISix HelmRepository is not ready',
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export function apisixHelmRepository(config) {
|
|
28
|
+
return createResource({
|
|
29
|
+
...(config.id && { id: config.id }),
|
|
30
|
+
apiVersion: 'source.toolkit.fluxcd.io/v1',
|
|
31
|
+
kind: 'HelmRepository',
|
|
32
|
+
metadata: {
|
|
33
|
+
name: config.name,
|
|
34
|
+
namespace: config.namespace || 'flux-system',
|
|
35
|
+
},
|
|
36
|
+
spec: {
|
|
37
|
+
url: config.url || 'https://charts.apiseven.com',
|
|
38
|
+
interval: config.interval || '1h',
|
|
39
|
+
},
|
|
40
|
+
}).withReadinessEvaluator(apisixHelmRepositoryReadinessEvaluator);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Creates an APISix HelmRelease resource
|
|
44
|
+
*
|
|
45
|
+
* @param config - HelmRelease configuration
|
|
46
|
+
* @returns Enhanced HelmRelease resource
|
|
47
|
+
*/
|
|
48
|
+
export function apisixHelmRelease(config) {
|
|
49
|
+
// Determine if values should be passed through raw or mapped
|
|
50
|
+
// If values has 'config' key (ingress controller chart structure), pass through raw
|
|
51
|
+
// Otherwise, map using APISix values mapper
|
|
52
|
+
const rawValues = config.values;
|
|
53
|
+
const isRawValues = rawValues && ('config' in rawValues || 'serviceAccount' in rawValues || 'rbac' in rawValues);
|
|
54
|
+
const helmValues = isRawValues ? rawValues : mapAPISixConfigToHelmValues(config.values || {});
|
|
55
|
+
return createResource({
|
|
56
|
+
...(config.id && { id: config.id }),
|
|
57
|
+
apiVersion: 'helm.toolkit.fluxcd.io/v2',
|
|
58
|
+
kind: 'HelmRelease',
|
|
59
|
+
metadata: {
|
|
60
|
+
name: config.name,
|
|
61
|
+
namespace: config.namespace || 'flux-system',
|
|
62
|
+
},
|
|
63
|
+
spec: {
|
|
64
|
+
interval: config.interval || '5m',
|
|
65
|
+
timeout: config.timeout || '10m',
|
|
66
|
+
chart: {
|
|
67
|
+
spec: {
|
|
68
|
+
chart: config.chart || 'apisix',
|
|
69
|
+
version: config.version || '2.8.0',
|
|
70
|
+
sourceRef: {
|
|
71
|
+
kind: 'HelmRepository',
|
|
72
|
+
name: config.repositoryName || `${config.name.replace('-release', '')}-repo`,
|
|
73
|
+
namespace: config.namespace || 'flux-system'
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
targetNamespace: config.targetNamespace || config.namespace || 'apisix',
|
|
78
|
+
install: {
|
|
79
|
+
createNamespace: true,
|
|
80
|
+
remediation: {
|
|
81
|
+
retries: 3
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
upgrade: {
|
|
85
|
+
remediation: {
|
|
86
|
+
retries: 3
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
values: helmValues,
|
|
90
|
+
},
|
|
91
|
+
}).withReadinessEvaluator(apisixHelmReleaseReadinessEvaluator);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Maps APISix configuration to Helm values for the HelmRelease
|
|
95
|
+
* This is a simpler version that just passes through the values
|
|
96
|
+
*
|
|
97
|
+
* @param config - The APISix Helm values
|
|
98
|
+
* @returns Helm values object for the APISix chart
|
|
99
|
+
*/
|
|
100
|
+
export function mapAPISixConfigToHelmValues(config) {
|
|
101
|
+
const values = {
|
|
102
|
+
// Installation configuration - default to true for TypeKro comprehensive deployment
|
|
103
|
+
installCRDs: config.installCRDs ?? true,
|
|
104
|
+
};
|
|
105
|
+
// Global configuration
|
|
106
|
+
if (config.global) {
|
|
107
|
+
values.global = { ...config.global };
|
|
108
|
+
}
|
|
109
|
+
// Replica configuration
|
|
110
|
+
if (config.replicaCount !== undefined) {
|
|
111
|
+
values.replicaCount = config.replicaCount;
|
|
112
|
+
}
|
|
113
|
+
// Gateway configuration
|
|
114
|
+
if (config.gateway) {
|
|
115
|
+
values.gateway = { ...config.gateway };
|
|
116
|
+
}
|
|
117
|
+
// Ingress Controller configuration
|
|
118
|
+
if (config.ingressController) {
|
|
119
|
+
values.ingressController = { ...config.ingressController };
|
|
120
|
+
}
|
|
121
|
+
// APISix configuration
|
|
122
|
+
if (config.apisix) {
|
|
123
|
+
values.apisix = { ...config.apisix };
|
|
124
|
+
}
|
|
125
|
+
// Dashboard configuration
|
|
126
|
+
if (config.dashboard) {
|
|
127
|
+
values.dashboard = { ...config.dashboard };
|
|
128
|
+
}
|
|
129
|
+
// etcd configuration
|
|
130
|
+
if (config.etcd) {
|
|
131
|
+
values.etcd = { ...config.etcd };
|
|
132
|
+
}
|
|
133
|
+
// Service Account configuration
|
|
134
|
+
if (config.serviceAccount) {
|
|
135
|
+
values.serviceAccount = { ...config.serviceAccount };
|
|
136
|
+
}
|
|
137
|
+
// RBAC configuration
|
|
138
|
+
if (config.rbac) {
|
|
139
|
+
values.rbac = { ...config.rbac };
|
|
140
|
+
}
|
|
141
|
+
// Add any additional custom values
|
|
142
|
+
Object.keys(config).forEach(key => {
|
|
143
|
+
if (!values[key] && config[key] !== undefined) {
|
|
144
|
+
values[key] = config[key];
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
return values;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Readiness evaluator for APISix HelmRelease
|
|
151
|
+
* Checks if the HelmRelease is ready and all components are deployed
|
|
152
|
+
*/
|
|
153
|
+
export function apisixHelmReleaseReadinessEvaluator(resource) {
|
|
154
|
+
const status = resource?.status;
|
|
155
|
+
if (!status) {
|
|
156
|
+
return {
|
|
157
|
+
ready: false,
|
|
158
|
+
message: 'APISix HelmRelease status not available',
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
// Check if HelmRelease is ready
|
|
162
|
+
const conditions = status.conditions || [];
|
|
163
|
+
const readyCondition = conditions.find((c) => c.type === 'Ready');
|
|
164
|
+
if (!readyCondition || readyCondition.status !== 'True') {
|
|
165
|
+
return {
|
|
166
|
+
ready: false,
|
|
167
|
+
message: 'APISix HelmRelease is not ready',
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
return {
|
|
171
|
+
ready: true,
|
|
172
|
+
message: 'APISix HelmRelease is ready',
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=helm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helm.js","sourceRoot":"","sources":["../../../../src/factories/apisix/resources/helm.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factories/apisix/resources/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/factories/apisix/resources/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,WAAW,CAAC"}
|