typekro 0.1.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/LICENSE +185 -0
- package/README.md +1137 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/alchemy/deployers.d.ts +39 -0
- package/dist/alchemy/deployers.d.ts.map +1 -0
- package/dist/alchemy/deployers.js +194 -0
- package/dist/alchemy/deployers.js.map +1 -0
- package/dist/alchemy/deployment.d.ts +12 -0
- package/dist/alchemy/deployment.d.ts.map +1 -0
- package/dist/alchemy/deployment.js +12 -0
- package/dist/alchemy/deployment.js.map +1 -0
- package/dist/alchemy/index.d.ts +17 -0
- package/dist/alchemy/index.d.ts.map +1 -0
- package/dist/alchemy/index.js +20 -0
- package/dist/alchemy/index.js.map +1 -0
- package/dist/alchemy/resolver.d.ts +127 -0
- package/dist/alchemy/resolver.d.ts.map +1 -0
- package/dist/alchemy/resolver.js +341 -0
- package/dist/alchemy/resolver.js.map +1 -0
- package/dist/alchemy/resource-registration.d.ts +22 -0
- package/dist/alchemy/resource-registration.d.ts.map +1 -0
- package/dist/alchemy/resource-registration.js +218 -0
- package/dist/alchemy/resource-registration.js.map +1 -0
- package/dist/alchemy/type-inference.d.ts +13 -0
- package/dist/alchemy/type-inference.d.ts.map +1 -0
- package/dist/alchemy/type-inference.js +67 -0
- package/dist/alchemy/type-inference.js.map +1 -0
- package/dist/alchemy/types.d.ts +92 -0
- package/dist/alchemy/types.d.ts.map +1 -0
- package/dist/alchemy/types.js +8 -0
- package/dist/alchemy/types.js.map +1 -0
- package/dist/alchemy/utilities.d.ts +12 -0
- package/dist/alchemy/utilities.d.ts.map +1 -0
- package/dist/alchemy/utilities.js +16 -0
- package/dist/alchemy/utilities.js.map +1 -0
- package/dist/alchemy/wrapper.d.ts +16 -0
- package/dist/alchemy/wrapper.d.ts.map +1 -0
- package/dist/alchemy/wrapper.js +23 -0
- package/dist/alchemy/wrapper.js.map +1 -0
- package/dist/core/composition/composition.d.ts +94 -0
- package/dist/core/composition/composition.d.ts.map +1 -0
- package/dist/core/composition/composition.js +230 -0
- package/dist/core/composition/composition.js.map +1 -0
- package/dist/core/composition/index.d.ts +12 -0
- package/dist/core/composition/index.d.ts.map +1 -0
- package/dist/core/composition/index.js +12 -0
- package/dist/core/composition/index.js.map +1 -0
- package/dist/core/composition/typekro-runtime/index.d.ts +3 -0
- package/dist/core/composition/typekro-runtime/index.d.ts.map +1 -0
- package/dist/core/composition/typekro-runtime/index.js +2 -0
- package/dist/core/composition/typekro-runtime/index.js.map +1 -0
- package/dist/core/composition/typekro-runtime/typekro-runtime.d.ts +39 -0
- package/dist/core/composition/typekro-runtime/typekro-runtime.d.ts.map +1 -0
- package/dist/core/composition/typekro-runtime/typekro-runtime.js +100 -0
- package/dist/core/composition/typekro-runtime/typekro-runtime.js.map +1 -0
- package/dist/core/composition/typekro-runtime/types.d.ts +16 -0
- package/dist/core/composition/typekro-runtime/types.d.ts.map +1 -0
- package/dist/core/composition/typekro-runtime/types.js +12 -0
- package/dist/core/composition/typekro-runtime/types.js.map +1 -0
- package/dist/core/composition/types.d.ts +264 -0
- package/dist/core/composition/types.d.ts.map +1 -0
- package/dist/core/composition/types.js +2 -0
- package/dist/core/composition/types.js.map +1 -0
- package/dist/core/constants/brands.d.ts +42 -0
- package/dist/core/constants/brands.d.ts.map +1 -0
- package/dist/core/constants/brands.js +51 -0
- package/dist/core/constants/brands.js.map +1 -0
- package/dist/core/dependencies/graph.d.ts +67 -0
- package/dist/core/dependencies/graph.d.ts.map +1 -0
- package/dist/core/dependencies/graph.js +220 -0
- package/dist/core/dependencies/graph.js.map +1 -0
- package/dist/core/dependencies/index.d.ts +7 -0
- package/dist/core/dependencies/index.d.ts.map +1 -0
- package/dist/core/dependencies/index.js +8 -0
- package/dist/core/dependencies/index.js.map +1 -0
- package/dist/core/dependencies/resolver.d.ts +53 -0
- package/dist/core/dependencies/resolver.d.ts.map +1 -0
- package/dist/core/dependencies/resolver.js +167 -0
- package/dist/core/dependencies/resolver.js.map +1 -0
- package/dist/core/dependencies/type-guards.d.ts +17 -0
- package/dist/core/dependencies/type-guards.d.ts.map +1 -0
- package/dist/core/dependencies/type-guards.js +35 -0
- package/dist/core/dependencies/type-guards.js.map +1 -0
- package/dist/core/deployment/deployment-strategies.d.ts +12 -0
- package/dist/core/deployment/deployment-strategies.d.ts.map +1 -0
- package/dist/core/deployment/deployment-strategies.js +11 -0
- package/dist/core/deployment/deployment-strategies.js.map +1 -0
- package/dist/core/deployment/direct-factory.d.ts +111 -0
- package/dist/core/deployment/direct-factory.d.ts.map +1 -0
- package/dist/core/deployment/direct-factory.js +627 -0
- package/dist/core/deployment/direct-factory.js.map +1 -0
- package/dist/core/deployment/engine.d.ts +128 -0
- package/dist/core/deployment/engine.d.ts.map +1 -0
- package/dist/core/deployment/engine.js +1408 -0
- package/dist/core/deployment/engine.js.map +1 -0
- package/dist/core/deployment/index.d.ts +14 -0
- package/dist/core/deployment/index.d.ts.map +1 -0
- package/dist/core/deployment/index.js +14 -0
- package/dist/core/deployment/index.js.map +1 -0
- package/dist/core/deployment/kro-factory.d.ts +143 -0
- package/dist/core/deployment/kro-factory.d.ts.map +1 -0
- package/dist/core/deployment/kro-factory.js +837 -0
- package/dist/core/deployment/kro-factory.js.map +1 -0
- package/dist/core/deployment/readiness.d.ts +54 -0
- package/dist/core/deployment/readiness.d.ts.map +1 -0
- package/dist/core/deployment/readiness.js +175 -0
- package/dist/core/deployment/readiness.js.map +1 -0
- package/dist/core/deployment/rollback-manager.d.ts +63 -0
- package/dist/core/deployment/rollback-manager.d.ts.map +1 -0
- package/dist/core/deployment/rollback-manager.js +225 -0
- package/dist/core/deployment/rollback-manager.js.map +1 -0
- package/dist/core/deployment/shared-utilities.d.ts +41 -0
- package/dist/core/deployment/shared-utilities.d.ts.map +1 -0
- package/dist/core/deployment/shared-utilities.js +100 -0
- package/dist/core/deployment/shared-utilities.js.map +1 -0
- package/dist/core/deployment/status-hydrator.d.ts +86 -0
- package/dist/core/deployment/status-hydrator.d.ts.map +1 -0
- package/dist/core/deployment/status-hydrator.js +262 -0
- package/dist/core/deployment/status-hydrator.js.map +1 -0
- package/dist/core/deployment/strategies/alchemy-strategy.d.ts +107 -0
- package/dist/core/deployment/strategies/alchemy-strategy.d.ts.map +1 -0
- package/dist/core/deployment/strategies/alchemy-strategy.js +446 -0
- package/dist/core/deployment/strategies/alchemy-strategy.js.map +1 -0
- package/dist/core/deployment/strategies/base-strategy.d.ts +50 -0
- package/dist/core/deployment/strategies/base-strategy.d.ts.map +1 -0
- package/dist/core/deployment/strategies/base-strategy.js +82 -0
- package/dist/core/deployment/strategies/base-strategy.js.map +1 -0
- package/dist/core/deployment/strategies/direct-strategy.d.ts +29 -0
- package/dist/core/deployment/strategies/direct-strategy.d.ts.map +1 -0
- package/dist/core/deployment/strategies/direct-strategy.js +80 -0
- package/dist/core/deployment/strategies/direct-strategy.js.map +1 -0
- package/dist/core/deployment/strategies/index.d.ts +12 -0
- package/dist/core/deployment/strategies/index.d.ts.map +1 -0
- package/dist/core/deployment/strategies/index.js +12 -0
- package/dist/core/deployment/strategies/index.js.map +1 -0
- package/dist/core/deployment/strategies/kro-strategy.d.ts +41 -0
- package/dist/core/deployment/strategies/kro-strategy.d.ts.map +1 -0
- package/dist/core/deployment/strategies/kro-strategy.js +270 -0
- package/dist/core/deployment/strategies/kro-strategy.js.map +1 -0
- package/dist/core/direct-deployment.d.ts +8 -0
- package/dist/core/direct-deployment.d.ts.map +1 -0
- package/dist/core/direct-deployment.js +9 -0
- package/dist/core/direct-deployment.js.map +1 -0
- package/dist/core/errors.d.ts +73 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +250 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/evaluation/cel-optimizer.d.ts +48 -0
- package/dist/core/evaluation/cel-optimizer.d.ts.map +1 -0
- package/dist/core/evaluation/cel-optimizer.js +176 -0
- package/dist/core/evaluation/cel-optimizer.js.map +1 -0
- package/dist/core/factory.d.ts +12 -0
- package/dist/core/factory.d.ts.map +1 -0
- package/dist/core/factory.js +13 -0
- package/dist/core/factory.js.map +1 -0
- package/dist/core/kubernetes/api.d.ts +43 -0
- package/dist/core/kubernetes/api.d.ts.map +1 -0
- package/dist/core/kubernetes/api.js +209 -0
- package/dist/core/kubernetes/api.js.map +1 -0
- package/dist/core/kubernetes/client-provider.d.ts +204 -0
- package/dist/core/kubernetes/client-provider.d.ts.map +1 -0
- package/dist/core/kubernetes/client-provider.js +421 -0
- package/dist/core/kubernetes/client-provider.js.map +1 -0
- package/dist/core/logging/config.d.ts +14 -0
- package/dist/core/logging/config.d.ts.map +1 -0
- package/dist/core/logging/config.js +57 -0
- package/dist/core/logging/config.js.map +1 -0
- package/dist/core/logging/index.d.ts +4 -0
- package/dist/core/logging/index.d.ts.map +1 -0
- package/dist/core/logging/index.js +4 -0
- package/dist/core/logging/index.js.map +1 -0
- package/dist/core/logging/logger.d.ts +26 -0
- package/dist/core/logging/logger.d.ts.map +1 -0
- package/dist/core/logging/logger.js +114 -0
- package/dist/core/logging/logger.js.map +1 -0
- package/dist/core/logging/types.d.ts +93 -0
- package/dist/core/logging/types.d.ts.map +1 -0
- package/dist/core/logging/types.js +2 -0
- package/dist/core/logging/types.js.map +1 -0
- package/dist/core/readiness/cluster-state.d.ts +229 -0
- package/dist/core/readiness/cluster-state.d.ts.map +1 -0
- package/dist/core/readiness/cluster-state.js +360 -0
- package/dist/core/readiness/cluster-state.js.map +1 -0
- package/dist/core/readiness/index.d.ts +5 -0
- package/dist/core/readiness/index.d.ts.map +1 -0
- package/dist/core/readiness/index.js +5 -0
- package/dist/core/readiness/index.js.map +1 -0
- package/dist/core/readiness/registry.d.ts +45 -0
- package/dist/core/readiness/registry.d.ts.map +1 -0
- package/dist/core/readiness/registry.js +62 -0
- package/dist/core/readiness/registry.js.map +1 -0
- package/dist/core/references/cel-evaluator.d.ts +102 -0
- package/dist/core/references/cel-evaluator.d.ts.map +1 -0
- package/dist/core/references/cel-evaluator.js +288 -0
- package/dist/core/references/cel-evaluator.js.map +1 -0
- package/dist/core/references/cel.d.ts +75 -0
- package/dist/core/references/cel.d.ts.map +1 -0
- package/dist/core/references/cel.js +213 -0
- package/dist/core/references/cel.js.map +1 -0
- package/dist/core/references/external-refs.d.ts +37 -0
- package/dist/core/references/external-refs.d.ts.map +1 -0
- package/dist/core/references/external-refs.js +53 -0
- package/dist/core/references/external-refs.js.map +1 -0
- package/dist/core/references/index.d.ts +15 -0
- package/dist/core/references/index.d.ts.map +1 -0
- package/dist/core/references/index.js +19 -0
- package/dist/core/references/index.js.map +1 -0
- package/dist/core/references/resolver.d.ts +117 -0
- package/dist/core/references/resolver.d.ts.map +1 -0
- package/dist/core/references/resolver.js +554 -0
- package/dist/core/references/resolver.js.map +1 -0
- package/dist/core/references/schema-proxy.d.ts +38 -0
- package/dist/core/references/schema-proxy.d.ts.map +1 -0
- package/dist/core/references/schema-proxy.js +163 -0
- package/dist/core/references/schema-proxy.js.map +1 -0
- package/dist/core/serialization/core.d.ts +15 -0
- package/dist/core/serialization/core.d.ts.map +1 -0
- package/dist/core/serialization/core.js +169 -0
- package/dist/core/serialization/core.js.map +1 -0
- package/dist/core/serialization/index.d.ts +9 -0
- package/dist/core/serialization/index.d.ts.map +1 -0
- package/dist/core/serialization/index.js +12 -0
- package/dist/core/serialization/index.js.map +1 -0
- package/dist/core/serialization/schema.d.ts +14 -0
- package/dist/core/serialization/schema.d.ts.map +1 -0
- package/dist/core/serialization/schema.js +33 -0
- package/dist/core/serialization/schema.js.map +1 -0
- package/dist/core/serialization/validation.d.ts +18 -0
- package/dist/core/serialization/validation.d.ts.map +1 -0
- package/dist/core/serialization/validation.js +165 -0
- package/dist/core/serialization/validation.js.map +1 -0
- package/dist/core/serialization/yaml.d.ts +10 -0
- package/dist/core/serialization/yaml.d.ts.map +1 -0
- package/dist/core/serialization/yaml.js +63 -0
- package/dist/core/serialization/yaml.js.map +1 -0
- package/dist/core/types/common.d.ts +41 -0
- package/dist/core/types/common.d.ts.map +1 -0
- package/dist/core/types/common.js +9 -0
- package/dist/core/types/common.js.map +1 -0
- package/dist/core/types/dependencies.d.ts +14 -0
- package/dist/core/types/dependencies.d.ts.map +1 -0
- package/dist/core/types/dependencies.js +5 -0
- package/dist/core/types/dependencies.js.map +1 -0
- package/dist/core/types/deployment.d.ts +265 -0
- package/dist/core/types/deployment.d.ts.map +1 -0
- package/dist/core/types/deployment.js +20 -0
- package/dist/core/types/deployment.js.map +1 -0
- package/dist/core/types/index.d.ts +19 -0
- package/dist/core/types/index.d.ts.map +1 -0
- package/dist/core/types/index.js +15 -0
- package/dist/core/types/index.js.map +1 -0
- package/dist/core/types/kubernetes.d.ts +352 -0
- package/dist/core/types/kubernetes.d.ts.map +1 -0
- package/dist/core/types/kubernetes.js +5 -0
- package/dist/core/types/kubernetes.js.map +1 -0
- package/dist/core/types/references.d.ts +54 -0
- package/dist/core/types/references.d.ts.map +1 -0
- package/dist/core/types/references.js +14 -0
- package/dist/core/types/references.js.map +1 -0
- package/dist/core/types/resource-graph.d.ts +93 -0
- package/dist/core/types/resource-graph.d.ts.map +1 -0
- package/dist/core/types/resource-graph.js +8 -0
- package/dist/core/types/resource-graph.js.map +1 -0
- package/dist/core/types/serialization.d.ts +210 -0
- package/dist/core/types/serialization.d.ts.map +1 -0
- package/dist/core/types/serialization.js +5 -0
- package/dist/core/types/serialization.js.map +1 -0
- package/dist/core/types/yaml.d.ts +92 -0
- package/dist/core/types/yaml.d.ts.map +1 -0
- package/dist/core/types/yaml.js +2 -0
- package/dist/core/types/yaml.js.map +1 -0
- package/dist/core/types.d.ts +8 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +9 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/validation/cel-validator.d.ts +47 -0
- package/dist/core/validation/cel-validator.d.ts.map +1 -0
- package/dist/core/validation/cel-validator.js +200 -0
- package/dist/core/validation/cel-validator.js.map +1 -0
- package/dist/core/yaml/index.d.ts +5 -0
- package/dist/core/yaml/index.d.ts.map +1 -0
- package/dist/core/yaml/index.js +5 -0
- package/dist/core/yaml/index.js.map +1 -0
- package/dist/core/yaml/path-resolver.d.ts +122 -0
- package/dist/core/yaml/path-resolver.d.ts.map +1 -0
- package/dist/core/yaml/path-resolver.js +556 -0
- package/dist/core/yaml/path-resolver.js.map +1 -0
- package/dist/core.d.ts +30 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +59 -0
- package/dist/core.js.map +1 -0
- package/dist/factories/flux/git-repository.d.ts +62 -0
- package/dist/factories/flux/git-repository.d.ts.map +1 -0
- package/dist/factories/flux/git-repository.js +34 -0
- package/dist/factories/flux/git-repository.js.map +1 -0
- package/dist/factories/flux/index.d.ts +10 -0
- package/dist/factories/flux/index.d.ts.map +1 -0
- package/dist/factories/flux/index.js +11 -0
- package/dist/factories/flux/index.js.map +1 -0
- package/dist/factories/flux/kustomize/index.d.ts +4 -0
- package/dist/factories/flux/kustomize/index.d.ts.map +1 -0
- package/dist/factories/flux/kustomize/index.js +3 -0
- package/dist/factories/flux/kustomize/index.js.map +1 -0
- package/dist/factories/flux/kustomize/kustomization.d.ts +178 -0
- package/dist/factories/flux/kustomize/kustomization.d.ts.map +1 -0
- package/dist/factories/flux/kustomize/kustomization.js +108 -0
- package/dist/factories/flux/kustomize/kustomization.js.map +1 -0
- package/dist/factories/flux/kustomize/readiness-evaluators.d.ts +9 -0
- package/dist/factories/flux/kustomize/readiness-evaluators.d.ts.map +1 -0
- package/dist/factories/flux/kustomize/readiness-evaluators.js +71 -0
- package/dist/factories/flux/kustomize/readiness-evaluators.js.map +1 -0
- package/dist/factories/flux/kustomize/types.d.ts +2 -0
- package/dist/factories/flux/kustomize/types.d.ts.map +1 -0
- package/dist/factories/flux/kustomize/types.js +2 -0
- package/dist/factories/flux/kustomize/types.js.map +1 -0
- package/dist/factories/helm/helm-release.d.ts +139 -0
- package/dist/factories/helm/helm-release.d.ts.map +1 -0
- package/dist/factories/helm/helm-release.js +180 -0
- package/dist/factories/helm/helm-release.js.map +1 -0
- package/dist/factories/helm/helm-repository.d.ts +24 -0
- package/dist/factories/helm/helm-repository.d.ts.map +1 -0
- package/dist/factories/helm/helm-repository.js +57 -0
- package/dist/factories/helm/helm-repository.js.map +1 -0
- package/dist/factories/helm/index.d.ts +8 -0
- package/dist/factories/helm/index.d.ts.map +1 -0
- package/dist/factories/helm/index.js +8 -0
- package/dist/factories/helm/index.js.map +1 -0
- package/dist/factories/helm/readiness-evaluators.d.ts +55 -0
- package/dist/factories/helm/readiness-evaluators.d.ts.map +1 -0
- package/dist/factories/helm/readiness-evaluators.js +295 -0
- package/dist/factories/helm/readiness-evaluators.js.map +1 -0
- package/dist/factories/helm/types.d.ts +21 -0
- package/dist/factories/helm/types.d.ts.map +1 -0
- package/dist/factories/helm/types.js +2 -0
- package/dist/factories/helm/types.js.map +1 -0
- package/dist/factories/index.d.ts +12 -0
- package/dist/factories/index.d.ts.map +1 -0
- package/dist/factories/index.js +31 -0
- package/dist/factories/index.js.map +1 -0
- package/dist/factories/kro/index.d.ts +11 -0
- package/dist/factories/kro/index.d.ts.map +1 -0
- package/dist/factories/kro/index.js +10 -0
- package/dist/factories/kro/index.js.map +1 -0
- package/dist/factories/kro/kro-crd.d.ts +14 -0
- package/dist/factories/kro/kro-crd.d.ts.map +1 -0
- package/dist/factories/kro/kro-crd.js +51 -0
- package/dist/factories/kro/kro-crd.js.map +1 -0
- package/dist/factories/kro/kro-custom-resource.d.ts +23 -0
- package/dist/factories/kro/kro-custom-resource.d.ts.map +1 -0
- package/dist/factories/kro/kro-custom-resource.js +153 -0
- package/dist/factories/kro/kro-custom-resource.js.map +1 -0
- package/dist/factories/kro/resource-graph-definition.d.ts +12 -0
- package/dist/factories/kro/resource-graph-definition.d.ts.map +1 -0
- package/dist/factories/kro/resource-graph-definition.js +94 -0
- package/dist/factories/kro/resource-graph-definition.js.map +1 -0
- package/dist/factories/kubernetes/admission/index.d.ts +9 -0
- package/dist/factories/kubernetes/admission/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/admission/index.js +9 -0
- package/dist/factories/kubernetes/admission/index.js.map +1 -0
- package/dist/factories/kubernetes/admission/mutating-webhook-configuration.d.ts +5 -0
- package/dist/factories/kubernetes/admission/mutating-webhook-configuration.d.ts.map +1 -0
- package/dist/factories/kubernetes/admission/mutating-webhook-configuration.js +10 -0
- package/dist/factories/kubernetes/admission/mutating-webhook-configuration.js.map +1 -0
- package/dist/factories/kubernetes/admission/validating-webhook-configuration.d.ts +5 -0
- package/dist/factories/kubernetes/admission/validating-webhook-configuration.d.ts.map +1 -0
- package/dist/factories/kubernetes/admission/validating-webhook-configuration.js +10 -0
- package/dist/factories/kubernetes/admission/validating-webhook-configuration.js.map +1 -0
- package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler-v1.d.ts +6 -0
- package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler-v1.d.ts.map +1 -0
- package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler-v1.js +35 -0
- package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler-v1.js.map +1 -0
- package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler.d.ts +6 -0
- package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler.d.ts.map +1 -0
- package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler.js +31 -0
- package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler.js.map +1 -0
- package/dist/factories/kubernetes/autoscaling/index.d.ts +9 -0
- package/dist/factories/kubernetes/autoscaling/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/autoscaling/index.js +9 -0
- package/dist/factories/kubernetes/autoscaling/index.js.map +1 -0
- package/dist/factories/kubernetes/certificates/certificate-signing-request.d.ts +6 -0
- package/dist/factories/kubernetes/certificates/certificate-signing-request.d.ts.map +1 -0
- package/dist/factories/kubernetes/certificates/certificate-signing-request.js +48 -0
- package/dist/factories/kubernetes/certificates/certificate-signing-request.js.map +1 -0
- package/dist/factories/kubernetes/certificates/index.d.ts +8 -0
- package/dist/factories/kubernetes/certificates/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/certificates/index.js +8 -0
- package/dist/factories/kubernetes/certificates/index.js.map +1 -0
- package/dist/factories/kubernetes/config/config-map.d.ts +5 -0
- package/dist/factories/kubernetes/config/config-map.d.ts.map +1 -0
- package/dist/factories/kubernetes/config/config-map.js +16 -0
- package/dist/factories/kubernetes/config/config-map.js.map +1 -0
- package/dist/factories/kubernetes/config/index.d.ts +9 -0
- package/dist/factories/kubernetes/config/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/config/index.js +9 -0
- package/dist/factories/kubernetes/config/index.js.map +1 -0
- package/dist/factories/kubernetes/config/secret.d.ts +5 -0
- package/dist/factories/kubernetes/config/secret.d.ts.map +1 -0
- package/dist/factories/kubernetes/config/secret.js +16 -0
- package/dist/factories/kubernetes/config/secret.js.map +1 -0
- package/dist/factories/kubernetes/coordination/index.d.ts +8 -0
- package/dist/factories/kubernetes/coordination/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/coordination/index.js +8 -0
- package/dist/factories/kubernetes/coordination/index.js.map +1 -0
- package/dist/factories/kubernetes/coordination/lease.d.ts +5 -0
- package/dist/factories/kubernetes/coordination/lease.d.ts.map +1 -0
- package/dist/factories/kubernetes/coordination/lease.js +10 -0
- package/dist/factories/kubernetes/coordination/lease.js.map +1 -0
- package/dist/factories/kubernetes/core/component-status.d.ts +4 -0
- package/dist/factories/kubernetes/core/component-status.d.ts.map +1 -0
- package/dist/factories/kubernetes/core/component-status.js +25 -0
- package/dist/factories/kubernetes/core/component-status.js.map +1 -0
- package/dist/factories/kubernetes/core/index.d.ts +11 -0
- package/dist/factories/kubernetes/core/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/core/index.js +11 -0
- package/dist/factories/kubernetes/core/index.js.map +1 -0
- package/dist/factories/kubernetes/core/namespace.d.ts +9 -0
- package/dist/factories/kubernetes/core/namespace.d.ts.map +1 -0
- package/dist/factories/kubernetes/core/namespace.js +48 -0
- package/dist/factories/kubernetes/core/namespace.js.map +1 -0
- package/dist/factories/kubernetes/core/node.d.ts +6 -0
- package/dist/factories/kubernetes/core/node.d.ts.map +1 -0
- package/dist/factories/kubernetes/core/node.js +34 -0
- package/dist/factories/kubernetes/core/node.js.map +1 -0
- package/dist/factories/kubernetes/core/pod.d.ts +6 -0
- package/dist/factories/kubernetes/core/pod.d.ts.map +1 -0
- package/dist/factories/kubernetes/core/pod.js +44 -0
- package/dist/factories/kubernetes/core/pod.js.map +1 -0
- package/dist/factories/kubernetes/extensions/custom-resource-definition.d.ts +6 -0
- package/dist/factories/kubernetes/extensions/custom-resource-definition.d.ts.map +1 -0
- package/dist/factories/kubernetes/extensions/custom-resource-definition.js +45 -0
- package/dist/factories/kubernetes/extensions/custom-resource-definition.js.map +1 -0
- package/dist/factories/kubernetes/extensions/custom-resource.d.ts +12 -0
- package/dist/factories/kubernetes/extensions/custom-resource.d.ts.map +1 -0
- package/dist/factories/kubernetes/extensions/custom-resource.js +17 -0
- package/dist/factories/kubernetes/extensions/custom-resource.js.map +1 -0
- package/dist/factories/kubernetes/extensions/index.d.ts +9 -0
- package/dist/factories/kubernetes/extensions/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/extensions/index.js +9 -0
- package/dist/factories/kubernetes/extensions/index.js.map +1 -0
- package/dist/factories/kubernetes/index.d.ts +24 -0
- package/dist/factories/kubernetes/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/index.js +75 -0
- package/dist/factories/kubernetes/index.js.map +1 -0
- package/dist/factories/kubernetes/networking/endpoint-slice.d.ts +4 -0
- package/dist/factories/kubernetes/networking/endpoint-slice.d.ts.map +1 -0
- package/dist/factories/kubernetes/networking/endpoint-slice.js +10 -0
- package/dist/factories/kubernetes/networking/endpoint-slice.js.map +1 -0
- package/dist/factories/kubernetes/networking/endpoints.d.ts +4 -0
- package/dist/factories/kubernetes/networking/endpoints.d.ts.map +1 -0
- package/dist/factories/kubernetes/networking/endpoints.js +39 -0
- package/dist/factories/kubernetes/networking/endpoints.js.map +1 -0
- package/dist/factories/kubernetes/networking/index.d.ts +13 -0
- package/dist/factories/kubernetes/networking/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/networking/index.js +13 -0
- package/dist/factories/kubernetes/networking/index.js.map +1 -0
- package/dist/factories/kubernetes/networking/ingress-class.d.ts +5 -0
- package/dist/factories/kubernetes/networking/ingress-class.d.ts.map +1 -0
- package/dist/factories/kubernetes/networking/ingress-class.js +16 -0
- package/dist/factories/kubernetes/networking/ingress-class.js.map +1 -0
- package/dist/factories/kubernetes/networking/ingress.d.ts +5 -0
- package/dist/factories/kubernetes/networking/ingress.d.ts.map +1 -0
- package/dist/factories/kubernetes/networking/ingress.js +33 -0
- package/dist/factories/kubernetes/networking/ingress.js.map +1 -0
- package/dist/factories/kubernetes/networking/network-policy.d.ts +5 -0
- package/dist/factories/kubernetes/networking/network-policy.d.ts.map +1 -0
- package/dist/factories/kubernetes/networking/network-policy.js +17 -0
- package/dist/factories/kubernetes/networking/network-policy.js.map +1 -0
- package/dist/factories/kubernetes/networking/service.d.ts +5 -0
- package/dist/factories/kubernetes/networking/service.d.ts.map +1 -0
- package/dist/factories/kubernetes/networking/service.js +64 -0
- package/dist/factories/kubernetes/networking/service.js.map +1 -0
- package/dist/factories/kubernetes/policy/index.d.ts +10 -0
- package/dist/factories/kubernetes/policy/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/policy/index.js +10 -0
- package/dist/factories/kubernetes/policy/index.js.map +1 -0
- package/dist/factories/kubernetes/policy/limit-range.d.ts +5 -0
- package/dist/factories/kubernetes/policy/limit-range.d.ts.map +1 -0
- package/dist/factories/kubernetes/policy/limit-range.js +17 -0
- package/dist/factories/kubernetes/policy/limit-range.js.map +1 -0
- package/dist/factories/kubernetes/policy/pod-disruption-budget.d.ts +6 -0
- package/dist/factories/kubernetes/policy/pod-disruption-budget.d.ts.map +1 -0
- package/dist/factories/kubernetes/policy/pod-disruption-budget.js +55 -0
- package/dist/factories/kubernetes/policy/pod-disruption-budget.js.map +1 -0
- package/dist/factories/kubernetes/policy/resource-quota.d.ts +6 -0
- package/dist/factories/kubernetes/policy/resource-quota.d.ts.map +1 -0
- package/dist/factories/kubernetes/policy/resource-quota.js +43 -0
- package/dist/factories/kubernetes/policy/resource-quota.js.map +1 -0
- package/dist/factories/kubernetes/rbac/cluster-role-binding.d.ts +4 -0
- package/dist/factories/kubernetes/rbac/cluster-role-binding.d.ts.map +1 -0
- package/dist/factories/kubernetes/rbac/cluster-role-binding.js +17 -0
- package/dist/factories/kubernetes/rbac/cluster-role-binding.js.map +1 -0
- package/dist/factories/kubernetes/rbac/cluster-role.d.ts +4 -0
- package/dist/factories/kubernetes/rbac/cluster-role.d.ts.map +1 -0
- package/dist/factories/kubernetes/rbac/cluster-role.js +17 -0
- package/dist/factories/kubernetes/rbac/cluster-role.js.map +1 -0
- package/dist/factories/kubernetes/rbac/index.d.ts +12 -0
- package/dist/factories/kubernetes/rbac/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/rbac/index.js +12 -0
- package/dist/factories/kubernetes/rbac/index.js.map +1 -0
- package/dist/factories/kubernetes/rbac/role-binding.d.ts +4 -0
- package/dist/factories/kubernetes/rbac/role-binding.d.ts.map +1 -0
- package/dist/factories/kubernetes/rbac/role-binding.js +17 -0
- package/dist/factories/kubernetes/rbac/role-binding.js.map +1 -0
- package/dist/factories/kubernetes/rbac/role.d.ts +4 -0
- package/dist/factories/kubernetes/rbac/role.d.ts.map +1 -0
- package/dist/factories/kubernetes/rbac/role.js +17 -0
- package/dist/factories/kubernetes/rbac/role.js.map +1 -0
- package/dist/factories/kubernetes/rbac/service-account.d.ts +4 -0
- package/dist/factories/kubernetes/rbac/service-account.d.ts.map +1 -0
- package/dist/factories/kubernetes/rbac/service-account.js +17 -0
- package/dist/factories/kubernetes/rbac/service-account.js.map +1 -0
- package/dist/factories/kubernetes/scheduling/index.d.ts +9 -0
- package/dist/factories/kubernetes/scheduling/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/scheduling/index.js +9 -0
- package/dist/factories/kubernetes/scheduling/index.js.map +1 -0
- package/dist/factories/kubernetes/scheduling/priority-class.d.ts +4 -0
- package/dist/factories/kubernetes/scheduling/priority-class.d.ts.map +1 -0
- package/dist/factories/kubernetes/scheduling/priority-class.js +16 -0
- package/dist/factories/kubernetes/scheduling/priority-class.js.map +1 -0
- package/dist/factories/kubernetes/scheduling/runtime-class.d.ts +5 -0
- package/dist/factories/kubernetes/scheduling/runtime-class.d.ts.map +1 -0
- package/dist/factories/kubernetes/scheduling/runtime-class.js +10 -0
- package/dist/factories/kubernetes/scheduling/runtime-class.js.map +1 -0
- package/dist/factories/kubernetes/storage/csi-driver.d.ts +5 -0
- package/dist/factories/kubernetes/storage/csi-driver.d.ts.map +1 -0
- package/dist/factories/kubernetes/storage/csi-driver.js +16 -0
- package/dist/factories/kubernetes/storage/csi-driver.js.map +1 -0
- package/dist/factories/kubernetes/storage/csi-node.d.ts +5 -0
- package/dist/factories/kubernetes/storage/csi-node.d.ts.map +1 -0
- package/dist/factories/kubernetes/storage/csi-node.js +10 -0
- package/dist/factories/kubernetes/storage/csi-node.js.map +1 -0
- package/dist/factories/kubernetes/storage/index.d.ts +13 -0
- package/dist/factories/kubernetes/storage/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/storage/index.js +13 -0
- package/dist/factories/kubernetes/storage/index.js.map +1 -0
- package/dist/factories/kubernetes/storage/persistent-volume-claim.d.ts +6 -0
- package/dist/factories/kubernetes/storage/persistent-volume-claim.d.ts.map +1 -0
- package/dist/factories/kubernetes/storage/persistent-volume-claim.js +30 -0
- package/dist/factories/kubernetes/storage/persistent-volume-claim.js.map +1 -0
- package/dist/factories/kubernetes/storage/persistent-volume.d.ts +6 -0
- package/dist/factories/kubernetes/storage/persistent-volume.d.ts.map +1 -0
- package/dist/factories/kubernetes/storage/persistent-volume.js +47 -0
- package/dist/factories/kubernetes/storage/persistent-volume.js.map +1 -0
- package/dist/factories/kubernetes/storage/storage-class.d.ts +4 -0
- package/dist/factories/kubernetes/storage/storage-class.d.ts.map +1 -0
- package/dist/factories/kubernetes/storage/storage-class.js +17 -0
- package/dist/factories/kubernetes/storage/storage-class.js.map +1 -0
- package/dist/factories/kubernetes/storage/volume-attachment.d.ts +6 -0
- package/dist/factories/kubernetes/storage/volume-attachment.d.ts.map +1 -0
- package/dist/factories/kubernetes/storage/volume-attachment.js +10 -0
- package/dist/factories/kubernetes/storage/volume-attachment.js.map +1 -0
- package/dist/factories/kubernetes/types.d.ts +8 -0
- package/dist/factories/kubernetes/types.d.ts.map +1 -0
- package/dist/factories/kubernetes/types.js +8 -0
- package/dist/factories/kubernetes/types.js.map +1 -0
- package/dist/factories/kubernetes/workloads/cron-job.d.ts +6 -0
- package/dist/factories/kubernetes/workloads/cron-job.d.ts.map +1 -0
- package/dist/factories/kubernetes/workloads/cron-job.js +53 -0
- package/dist/factories/kubernetes/workloads/cron-job.js.map +1 -0
- package/dist/factories/kubernetes/workloads/daemon-set.d.ts +6 -0
- package/dist/factories/kubernetes/workloads/daemon-set.d.ts.map +1 -0
- package/dist/factories/kubernetes/workloads/daemon-set.js +32 -0
- package/dist/factories/kubernetes/workloads/daemon-set.js.map +1 -0
- package/dist/factories/kubernetes/workloads/deployment.d.ts +5 -0
- package/dist/factories/kubernetes/workloads/deployment.d.ts.map +1 -0
- package/dist/factories/kubernetes/workloads/deployment.js +59 -0
- package/dist/factories/kubernetes/workloads/deployment.js.map +1 -0
- package/dist/factories/kubernetes/workloads/index.d.ts +14 -0
- package/dist/factories/kubernetes/workloads/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/workloads/index.js +14 -0
- package/dist/factories/kubernetes/workloads/index.js.map +1 -0
- package/dist/factories/kubernetes/workloads/job.d.ts +6 -0
- package/dist/factories/kubernetes/workloads/job.d.ts.map +1 -0
- package/dist/factories/kubernetes/workloads/job.js +105 -0
- package/dist/factories/kubernetes/workloads/job.js.map +1 -0
- package/dist/factories/kubernetes/workloads/replica-set.d.ts +6 -0
- package/dist/factories/kubernetes/workloads/replica-set.d.ts.map +1 -0
- package/dist/factories/kubernetes/workloads/replica-set.js +33 -0
- package/dist/factories/kubernetes/workloads/replica-set.js.map +1 -0
- package/dist/factories/kubernetes/workloads/replication-controller.d.ts +6 -0
- package/dist/factories/kubernetes/workloads/replication-controller.d.ts.map +1 -0
- package/dist/factories/kubernetes/workloads/replication-controller.js +56 -0
- package/dist/factories/kubernetes/workloads/replication-controller.js.map +1 -0
- package/dist/factories/kubernetes/workloads/stateful-set.d.ts +6 -0
- package/dist/factories/kubernetes/workloads/stateful-set.d.ts.map +1 -0
- package/dist/factories/kubernetes/workloads/stateful-set.js +81 -0
- package/dist/factories/kubernetes/workloads/stateful-set.js.map +1 -0
- package/dist/factories/kubernetes/yaml/index.d.ts +6 -0
- package/dist/factories/kubernetes/yaml/index.d.ts.map +1 -0
- package/dist/factories/kubernetes/yaml/index.js +6 -0
- package/dist/factories/kubernetes/yaml/index.js.map +1 -0
- package/dist/factories/kubernetes/yaml/yaml-directory.d.ts +54 -0
- package/dist/factories/kubernetes/yaml/yaml-directory.d.ts.map +1 -0
- package/dist/factories/kubernetes/yaml/yaml-directory.js +178 -0
- package/dist/factories/kubernetes/yaml/yaml-directory.js.map +1 -0
- package/dist/factories/kubernetes/yaml/yaml-file.d.ts +54 -0
- package/dist/factories/kubernetes/yaml/yaml-file.d.ts.map +1 -0
- package/dist/factories/kubernetes/yaml/yaml-file.js +181 -0
- package/dist/factories/kubernetes/yaml/yaml-file.js.map +1 -0
- package/dist/factories/shared.d.ts +11 -0
- package/dist/factories/shared.d.ts.map +1 -0
- package/dist/factories/shared.js +364 -0
- package/dist/factories/shared.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +49 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/helpers.d.ts +69 -0
- package/dist/utils/helpers.d.ts.map +1 -0
- package/dist/utils/helpers.js +405 -0
- package/dist/utils/helpers.js.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +11 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/type-guards.d.ts +34 -0
- package/dist/utils/type-guards.d.ts.map +1 -0
- package/dist/utils/type-guards.js +66 -0
- package/dist/utils/type-guards.js.map +1 -0
- package/package.json +109 -0
|
@@ -0,0 +1,627 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DirectResourceFactory implementation for direct deployment mode
|
|
3
|
+
*
|
|
4
|
+
* This factory handles direct deployment of Kubernetes resources using TypeKro's
|
|
5
|
+
* internal dependency resolution engine, without requiring the Kro controller.
|
|
6
|
+
*/
|
|
7
|
+
import { DependencyResolver } from '../dependencies/index.js';
|
|
8
|
+
import { DirectDeploymentEngine } from './engine.js';
|
|
9
|
+
import { getComponentLogger } from '../logging/index.js';
|
|
10
|
+
import { createRollbackManagerWithKubeConfig } from './rollback-manager.js';
|
|
11
|
+
import { createKubernetesClientProvider, createKubernetesClientProviderWithKubeConfig, } from '../kubernetes/client-provider.js';
|
|
12
|
+
import { DirectDeploymentStrategy, AlchemyDeploymentStrategy } from './strategies/index.js';
|
|
13
|
+
import { ResourceReadinessChecker } from './readiness.js';
|
|
14
|
+
import { generateInstanceName } from './shared-utilities.js';
|
|
15
|
+
import { toCamelCase } from '../../utils/helpers.js';
|
|
16
|
+
import { isCelExpression, isKubernetesRef } from '../dependencies/type-guards.js';
|
|
17
|
+
/**
|
|
18
|
+
* DirectResourceFactory implementation
|
|
19
|
+
*
|
|
20
|
+
* Handles direct deployment of Kubernetes resources using TypeKro's dependency resolution.
|
|
21
|
+
* Each deployment creates individual Kubernetes resources directly in the cluster.
|
|
22
|
+
*/
|
|
23
|
+
export class DirectResourceFactoryImpl {
|
|
24
|
+
mode = 'direct';
|
|
25
|
+
name;
|
|
26
|
+
namespace;
|
|
27
|
+
isAlchemyManaged;
|
|
28
|
+
resources;
|
|
29
|
+
closures;
|
|
30
|
+
schemaDefinition;
|
|
31
|
+
deploymentEngine;
|
|
32
|
+
alchemyScope;
|
|
33
|
+
factoryOptions;
|
|
34
|
+
deployedInstances = new Map();
|
|
35
|
+
logger = getComponentLogger('direct-factory');
|
|
36
|
+
clientProvider;
|
|
37
|
+
constructor(name, resources, schemaDefinition, options = {}) {
|
|
38
|
+
this.name = name;
|
|
39
|
+
this.namespace = options.namespace || 'default';
|
|
40
|
+
this.alchemyScope = options.alchemyScope;
|
|
41
|
+
this.isAlchemyManaged = !!options.alchemyScope;
|
|
42
|
+
this.resources = resources;
|
|
43
|
+
this.closures = options.closures || {};
|
|
44
|
+
this.schemaDefinition = schemaDefinition;
|
|
45
|
+
this.factoryOptions = options;
|
|
46
|
+
// Don't initialize client provider in constructor - do it lazily when needed
|
|
47
|
+
// This allows tests to create factories without requiring a kubeconfig
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get or create the Kubernetes client provider (lazy initialization)
|
|
51
|
+
*/
|
|
52
|
+
getClientProvider() {
|
|
53
|
+
if (!this.clientProvider) {
|
|
54
|
+
this.clientProvider = this.createClientProvider(this.factoryOptions);
|
|
55
|
+
}
|
|
56
|
+
return this.clientProvider;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Create and configure the Kubernetes client provider
|
|
60
|
+
*/
|
|
61
|
+
createClientProvider(options) {
|
|
62
|
+
// If a pre-configured kubeConfig is provided, use it directly
|
|
63
|
+
if (options.kubeConfig) {
|
|
64
|
+
this.logger.debug('Using pre-configured KubeConfig from factory options');
|
|
65
|
+
return createKubernetesClientProviderWithKubeConfig(options.kubeConfig);
|
|
66
|
+
}
|
|
67
|
+
// Create client provider with configuration from factory options
|
|
68
|
+
const clientConfig = {
|
|
69
|
+
...(options.skipTLSVerify !== undefined && { skipTLSVerify: options.skipTLSVerify }),
|
|
70
|
+
// Add other configuration options as needed
|
|
71
|
+
};
|
|
72
|
+
this.logger.debug('Creating new KubernetesClientProvider with configuration', {
|
|
73
|
+
skipTLSVerify: clientConfig.skipTLSVerify,
|
|
74
|
+
});
|
|
75
|
+
return createKubernetesClientProvider(clientConfig);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Get or create the deployment engine using the centralized client provider
|
|
79
|
+
*/
|
|
80
|
+
getDeploymentEngine() {
|
|
81
|
+
if (!this.deploymentEngine) {
|
|
82
|
+
this.logger.debug('Creating DirectDeploymentEngine with KubernetesClientProvider');
|
|
83
|
+
// Get the KubeConfig from the centralized provider (lazy initialization)
|
|
84
|
+
const clientProvider = this.getClientProvider();
|
|
85
|
+
const kubeConfig = clientProvider.getKubeConfig();
|
|
86
|
+
// Create the deployment engine with the provider's KubeConfig
|
|
87
|
+
this.deploymentEngine = new DirectDeploymentEngine(kubeConfig, undefined, undefined, 'direct');
|
|
88
|
+
this.logger.debug('DirectDeploymentEngine created successfully', {
|
|
89
|
+
currentContext: kubeConfig.getCurrentContext(),
|
|
90
|
+
server: kubeConfig.getCurrentCluster()?.server,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
return this.deploymentEngine;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Deploy a new instance with the given spec
|
|
97
|
+
*/
|
|
98
|
+
async deploy(spec) {
|
|
99
|
+
// Use the consolidated deployment strategy
|
|
100
|
+
const strategy = this.getDeploymentStrategy();
|
|
101
|
+
const instance = await strategy.deploy(spec);
|
|
102
|
+
// Check if deployment failed and throw for user-facing error handling
|
|
103
|
+
if (instance.metadata?.annotations?.['typekro.io/deployment-status'] === 'failed') {
|
|
104
|
+
const errorMessage = instance.metadata?.annotations?.['typekro.io/deployment-error'] ||
|
|
105
|
+
'Deployment failed - check logs for details';
|
|
106
|
+
throw new Error(errorMessage);
|
|
107
|
+
}
|
|
108
|
+
// Track the deployed instance
|
|
109
|
+
const instanceName = this.generateInstanceName(spec);
|
|
110
|
+
this.deployedInstances.set(instanceName, instance);
|
|
111
|
+
return instance;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Get the appropriate deployment strategy based on configuration
|
|
115
|
+
*/
|
|
116
|
+
getDeploymentStrategy() {
|
|
117
|
+
// Create base strategy
|
|
118
|
+
const baseStrategy = new DirectDeploymentStrategy(this.name, this.namespace, this.schemaDefinition, this.factoryOptions, this.getDeploymentEngine(), this // This factory acts as the resource resolver
|
|
119
|
+
);
|
|
120
|
+
// Wrap with alchemy if needed
|
|
121
|
+
if (this.isAlchemyManaged && this.alchemyScope) {
|
|
122
|
+
return new AlchemyDeploymentStrategy(this.name, this.namespace, this.schemaDefinition, this.factoryOptions, this.alchemyScope, baseStrategy);
|
|
123
|
+
}
|
|
124
|
+
return baseStrategy;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Get all deployed instances
|
|
128
|
+
*/
|
|
129
|
+
async getInstances() {
|
|
130
|
+
return Array.from(this.deployedInstances.values());
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Delete a specific instance by name
|
|
134
|
+
*/
|
|
135
|
+
async deleteInstance(name) {
|
|
136
|
+
const instance = this.deployedInstances.get(name);
|
|
137
|
+
if (!instance) {
|
|
138
|
+
throw new Error(`Instance not found: ${name}`);
|
|
139
|
+
}
|
|
140
|
+
try {
|
|
141
|
+
// Use the deployment engine to delete the resources
|
|
142
|
+
const engine = this.getDeploymentEngine();
|
|
143
|
+
await engine.rollback(`${this.name}-${name}`);
|
|
144
|
+
// Remove from tracking
|
|
145
|
+
this.deployedInstances.delete(name);
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
throw new Error(`Failed to delete instance ${name}: ${error instanceof Error ? error.message : String(error)}`);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Get factory status with real health checking using readiness evaluators
|
|
153
|
+
*/
|
|
154
|
+
async getStatus() {
|
|
155
|
+
const instances = await this.getInstances();
|
|
156
|
+
// If no instances, we're healthy by definition
|
|
157
|
+
let health = 'healthy';
|
|
158
|
+
if (instances.length > 0) {
|
|
159
|
+
// Only perform cluster health checking if we have deployed instances
|
|
160
|
+
health = await this.checkFactoryHealth();
|
|
161
|
+
}
|
|
162
|
+
return {
|
|
163
|
+
name: this.name,
|
|
164
|
+
mode: this.mode,
|
|
165
|
+
isAlchemyManaged: this.isAlchemyManaged,
|
|
166
|
+
namespace: this.namespace,
|
|
167
|
+
instanceCount: instances.length,
|
|
168
|
+
health,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Check the overall health of the factory by leveraging existing ResourceReadinessChecker
|
|
173
|
+
*/
|
|
174
|
+
async checkFactoryHealth() {
|
|
175
|
+
const healthLogger = this.logger.child({ method: 'checkFactoryHealth' });
|
|
176
|
+
try {
|
|
177
|
+
const engine = this.getDeploymentEngine();
|
|
178
|
+
// Get all deployment states from the engine
|
|
179
|
+
const deploymentStates = engine.getAllDeploymentStates();
|
|
180
|
+
if (deploymentStates.length === 0) {
|
|
181
|
+
healthLogger.debug('No deployments found, factory is healthy');
|
|
182
|
+
return 'healthy';
|
|
183
|
+
}
|
|
184
|
+
let healthyCount = 0;
|
|
185
|
+
let degradedCount = 0;
|
|
186
|
+
let failedCount = 0;
|
|
187
|
+
let totalResources = 0;
|
|
188
|
+
const healthErrors = [];
|
|
189
|
+
// Check health of all resources across all deployments
|
|
190
|
+
for (const deploymentState of deploymentStates) {
|
|
191
|
+
for (const deployedResource of deploymentState.resources) {
|
|
192
|
+
totalResources++;
|
|
193
|
+
try {
|
|
194
|
+
// Use the deployment engine's readiness logic (includes custom evaluators + fallback)
|
|
195
|
+
const engine = this.getDeploymentEngine();
|
|
196
|
+
const isReady = await engine.isDeployedResourceReady(deployedResource);
|
|
197
|
+
if (isReady) {
|
|
198
|
+
healthyCount++;
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
// Resource exists but not ready - consider degraded
|
|
202
|
+
degradedCount++;
|
|
203
|
+
healthLogger.info('Resource not ready', {
|
|
204
|
+
resourceId: deployedResource.id,
|
|
205
|
+
kind: deployedResource.kind,
|
|
206
|
+
name: deployedResource.name,
|
|
207
|
+
namespace: deployedResource.namespace,
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
catch (error) {
|
|
212
|
+
// Resource not found or API error - consider it failed
|
|
213
|
+
failedCount++;
|
|
214
|
+
const healthError = {
|
|
215
|
+
resourceId: deployedResource.id,
|
|
216
|
+
phase: 'readiness',
|
|
217
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
218
|
+
timestamp: new Date(),
|
|
219
|
+
};
|
|
220
|
+
healthErrors.push(healthError);
|
|
221
|
+
healthLogger.error('Failed to check resource health', error, {
|
|
222
|
+
resourceId: deployedResource.id,
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
// Log health errors for debugging
|
|
228
|
+
if (healthErrors.length > 0) {
|
|
229
|
+
healthLogger.debug('Health check errors encountered', {
|
|
230
|
+
errorCount: healthErrors.length,
|
|
231
|
+
errors: healthErrors.map((e) => ({
|
|
232
|
+
resourceId: e.resourceId,
|
|
233
|
+
phase: e.phase,
|
|
234
|
+
message: e.error.message,
|
|
235
|
+
})),
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
// Determine overall health based on resource status distribution
|
|
239
|
+
if (failedCount > 0) {
|
|
240
|
+
healthLogger.info('Factory health: failed', {
|
|
241
|
+
healthy: healthyCount,
|
|
242
|
+
degraded: degradedCount,
|
|
243
|
+
failed: failedCount,
|
|
244
|
+
total: totalResources,
|
|
245
|
+
errorCount: healthErrors.length,
|
|
246
|
+
});
|
|
247
|
+
return 'failed';
|
|
248
|
+
}
|
|
249
|
+
else if (degradedCount > 0) {
|
|
250
|
+
healthLogger.info('Factory health: degraded', {
|
|
251
|
+
healthy: healthyCount,
|
|
252
|
+
degraded: degradedCount,
|
|
253
|
+
failed: failedCount,
|
|
254
|
+
total: totalResources,
|
|
255
|
+
});
|
|
256
|
+
return 'degraded';
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
healthLogger.info('Factory health: healthy', {
|
|
260
|
+
healthy: healthyCount,
|
|
261
|
+
degraded: degradedCount,
|
|
262
|
+
failed: failedCount,
|
|
263
|
+
total: totalResources,
|
|
264
|
+
});
|
|
265
|
+
return 'healthy';
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
catch (error) {
|
|
269
|
+
healthLogger.error('Error checking factory health', error);
|
|
270
|
+
return 'failed';
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Get detailed health information including any errors encountered
|
|
275
|
+
* Useful for debugging and monitoring
|
|
276
|
+
*/
|
|
277
|
+
async getHealthDetails() {
|
|
278
|
+
const healthLogger = this.logger.child({ method: 'getHealthDetails' });
|
|
279
|
+
// Check if we have any instances first to avoid initializing engine unnecessarily
|
|
280
|
+
const instances = await this.getInstances();
|
|
281
|
+
if (instances.length === 0) {
|
|
282
|
+
return {
|
|
283
|
+
health: 'healthy',
|
|
284
|
+
resourceCounts: { healthy: 0, degraded: 0, failed: 0, total: 0 },
|
|
285
|
+
errors: [],
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
try {
|
|
289
|
+
const engine = this.getDeploymentEngine();
|
|
290
|
+
const deploymentStates = engine.getAllDeploymentStates();
|
|
291
|
+
if (deploymentStates.length === 0) {
|
|
292
|
+
return {
|
|
293
|
+
health: 'healthy',
|
|
294
|
+
resourceCounts: { healthy: 0, degraded: 0, failed: 0, total: 0 },
|
|
295
|
+
errors: [],
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
const k8sApi = engine.getKubernetesApi();
|
|
299
|
+
const readinessChecker = new ResourceReadinessChecker(k8sApi);
|
|
300
|
+
let healthyCount = 0;
|
|
301
|
+
let degradedCount = 0;
|
|
302
|
+
let failedCount = 0;
|
|
303
|
+
let totalResources = 0;
|
|
304
|
+
const healthErrors = [];
|
|
305
|
+
// Check health of all resources across all deployments
|
|
306
|
+
for (const deploymentState of deploymentStates) {
|
|
307
|
+
for (const deployedResource of deploymentState.resources) {
|
|
308
|
+
totalResources++;
|
|
309
|
+
try {
|
|
310
|
+
const resourceRef = {
|
|
311
|
+
apiVersion: deployedResource.manifest.apiVersion || '',
|
|
312
|
+
kind: deployedResource.kind,
|
|
313
|
+
metadata: {
|
|
314
|
+
name: deployedResource.name,
|
|
315
|
+
namespace: deployedResource.namespace,
|
|
316
|
+
},
|
|
317
|
+
};
|
|
318
|
+
const liveResource = await k8sApi.read(resourceRef);
|
|
319
|
+
const isReady = readinessChecker.isResourceReady(liveResource.body);
|
|
320
|
+
if (isReady) {
|
|
321
|
+
healthyCount++;
|
|
322
|
+
}
|
|
323
|
+
else {
|
|
324
|
+
degradedCount++;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
catch (error) {
|
|
328
|
+
failedCount++;
|
|
329
|
+
const healthError = {
|
|
330
|
+
resourceId: deployedResource.id,
|
|
331
|
+
phase: 'readiness',
|
|
332
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
333
|
+
timestamp: new Date(),
|
|
334
|
+
};
|
|
335
|
+
healthErrors.push(healthError);
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
const health = failedCount > 0 ? 'failed' : degradedCount > 0 ? 'degraded' : 'healthy';
|
|
340
|
+
return {
|
|
341
|
+
health,
|
|
342
|
+
resourceCounts: {
|
|
343
|
+
healthy: healthyCount,
|
|
344
|
+
degraded: degradedCount,
|
|
345
|
+
failed: failedCount,
|
|
346
|
+
total: totalResources,
|
|
347
|
+
},
|
|
348
|
+
errors: healthErrors,
|
|
349
|
+
};
|
|
350
|
+
}
|
|
351
|
+
catch (error) {
|
|
352
|
+
healthLogger.error('Error getting health details', error);
|
|
353
|
+
return {
|
|
354
|
+
health: 'failed',
|
|
355
|
+
resourceCounts: { healthy: 0, degraded: 0, failed: 0, total: 0 },
|
|
356
|
+
errors: [
|
|
357
|
+
{
|
|
358
|
+
resourceId: 'factory',
|
|
359
|
+
phase: 'readiness',
|
|
360
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
361
|
+
timestamp: new Date(),
|
|
362
|
+
},
|
|
363
|
+
],
|
|
364
|
+
};
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* Rollback all deployments made by this factory
|
|
369
|
+
*/
|
|
370
|
+
async rollback() {
|
|
371
|
+
this.logger.debug('Starting rollback for all deployed instances');
|
|
372
|
+
// Get kubeConfig from the centralized provider (lazy initialization)
|
|
373
|
+
const clientProvider = this.getClientProvider();
|
|
374
|
+
const kubeConfig = clientProvider.getKubeConfig();
|
|
375
|
+
// Create rollback manager with the provider's KubeConfig
|
|
376
|
+
const rollbackManager = createRollbackManagerWithKubeConfig(kubeConfig);
|
|
377
|
+
// Get all deployed instances as Enhanced resources
|
|
378
|
+
const resourcesToRollback = Array.from(this.deployedInstances.values());
|
|
379
|
+
this.logger.debug('Rolling back resources', {
|
|
380
|
+
resourceCount: resourcesToRollback.length,
|
|
381
|
+
instanceNames: Array.from(this.deployedInstances.keys()),
|
|
382
|
+
});
|
|
383
|
+
// Perform rollback using consolidated logic
|
|
384
|
+
const result = await rollbackManager.rollbackResources(resourcesToRollback, {
|
|
385
|
+
timeout: this.factoryOptions.timeout || undefined,
|
|
386
|
+
emitEvent: this.factoryOptions.progressCallback || undefined,
|
|
387
|
+
});
|
|
388
|
+
// Clear all tracked instances after rollback
|
|
389
|
+
this.deployedInstances.clear();
|
|
390
|
+
this.logger.info('Rollback completed', {
|
|
391
|
+
status: result.status,
|
|
392
|
+
resourceCount: result.rolledBackResources.length,
|
|
393
|
+
});
|
|
394
|
+
return result;
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* Perform a dry run deployment
|
|
398
|
+
*/
|
|
399
|
+
async toDryRun(spec) {
|
|
400
|
+
const resourceGraph = this.createResourceGraphForInstance(spec);
|
|
401
|
+
const deploymentOptions = {
|
|
402
|
+
mode: 'direct',
|
|
403
|
+
namespace: this.namespace,
|
|
404
|
+
...(this.factoryOptions.timeout && { timeout: this.factoryOptions.timeout }),
|
|
405
|
+
waitForReady: false, // Don't wait for readiness in dry run
|
|
406
|
+
dryRun: true,
|
|
407
|
+
...(this.factoryOptions.retryPolicy && { retryPolicy: this.factoryOptions.retryPolicy }),
|
|
408
|
+
...(this.factoryOptions.progressCallback && {
|
|
409
|
+
progressCallback: this.factoryOptions.progressCallback,
|
|
410
|
+
}),
|
|
411
|
+
};
|
|
412
|
+
return this.getDeploymentEngine().deploy(resourceGraph, deploymentOptions);
|
|
413
|
+
}
|
|
414
|
+
/**
|
|
415
|
+
* Generate YAML for instance deployment
|
|
416
|
+
*/
|
|
417
|
+
toYaml(spec) {
|
|
418
|
+
// Resolve references with the actual spec values
|
|
419
|
+
const resolvedResources = this.resolveResourcesForSpec(spec);
|
|
420
|
+
// Generate individual Kubernetes resource YAML manifests (not RGD)
|
|
421
|
+
const yamlParts = Object.values(resolvedResources).map((resource) => {
|
|
422
|
+
// Remove TypeKro-specific fields and generate clean Kubernetes YAML
|
|
423
|
+
const cleanResource = { ...resource };
|
|
424
|
+
delete cleanResource.id; // Remove TypeKro id field
|
|
425
|
+
// Simple YAML serialization for Kubernetes resources
|
|
426
|
+
let yamlContent = `apiVersion: ${cleanResource.apiVersion}
|
|
427
|
+
kind: ${cleanResource.kind}
|
|
428
|
+
metadata:
|
|
429
|
+
name: ${cleanResource.metadata?.name}
|
|
430
|
+
namespace: ${this.namespace}`;
|
|
431
|
+
// Add labels if present
|
|
432
|
+
if (cleanResource.metadata?.labels) {
|
|
433
|
+
yamlContent += `\n labels:\n${Object.entries(cleanResource.metadata.labels)
|
|
434
|
+
.map(([k, v]) => ` ${k}: ${v}`)
|
|
435
|
+
.join('\n')}`;
|
|
436
|
+
}
|
|
437
|
+
// Handle different resource types
|
|
438
|
+
const resourceWithSpec = cleanResource;
|
|
439
|
+
if (resourceWithSpec.spec) {
|
|
440
|
+
yamlContent += `\nspec:\n${Object.entries(resourceWithSpec.spec)
|
|
441
|
+
.map(([key, value]) => ` ${key}: ${typeof value === 'object'
|
|
442
|
+
? JSON.stringify(value, null, 2)
|
|
443
|
+
.split('\n')
|
|
444
|
+
.map((line, i) => (i === 0 ? line : ` ${line}`))
|
|
445
|
+
.join('\n')
|
|
446
|
+
: value}`)
|
|
447
|
+
.join('\n')}`;
|
|
448
|
+
}
|
|
449
|
+
const resourceWithData = cleanResource;
|
|
450
|
+
if (resourceWithData.data) {
|
|
451
|
+
yamlContent += `\ndata:\n${Object.entries(resourceWithData.data)
|
|
452
|
+
.map(([key, value]) => ` ${key}: ${typeof value === 'string' ? JSON.stringify(value) : value}`)
|
|
453
|
+
.join('\n')}`;
|
|
454
|
+
}
|
|
455
|
+
return yamlContent;
|
|
456
|
+
});
|
|
457
|
+
return yamlParts.join('\n---\n');
|
|
458
|
+
}
|
|
459
|
+
/**
|
|
460
|
+
* Create a resource graph for a specific instance
|
|
461
|
+
*/
|
|
462
|
+
createResourceGraphForInstance(spec) {
|
|
463
|
+
const dependencyResolver = new DependencyResolver();
|
|
464
|
+
const resolvedResources = this.resolveResourcesForSpec(spec);
|
|
465
|
+
const instanceName = this.generateInstanceName(spec);
|
|
466
|
+
const resourceArray = Object.values(resolvedResources).map((resource, index) => {
|
|
467
|
+
const baseId = `${instanceName}-resource-${index}-${resource.id || resource.kind?.toLowerCase() || 'unknown'}`;
|
|
468
|
+
const resourceWithId = {
|
|
469
|
+
...resource,
|
|
470
|
+
id: toCamelCase(baseId),
|
|
471
|
+
};
|
|
472
|
+
// Preserve the readinessEvaluator function if it exists (it's non-enumerable)
|
|
473
|
+
const originalResource = resource;
|
|
474
|
+
if (originalResource.readinessEvaluator &&
|
|
475
|
+
typeof originalResource.readinessEvaluator === 'function') {
|
|
476
|
+
Object.defineProperty(resourceWithId, 'readinessEvaluator', {
|
|
477
|
+
value: originalResource.readinessEvaluator,
|
|
478
|
+
enumerable: false,
|
|
479
|
+
configurable: true,
|
|
480
|
+
writable: false,
|
|
481
|
+
});
|
|
482
|
+
}
|
|
483
|
+
return resourceWithId;
|
|
484
|
+
});
|
|
485
|
+
// Convert to DeployableK8sResource format expected by dependency resolver
|
|
486
|
+
const deployableResources = resourceArray;
|
|
487
|
+
const dependencyGraph = dependencyResolver.buildDependencyGraph(deployableResources);
|
|
488
|
+
// Create resources in the format expected by DirectDeploymentEngine
|
|
489
|
+
const formattedResources = deployableResources.map((resource) => ({
|
|
490
|
+
id: resource.id, // Already prefixed with instance name above
|
|
491
|
+
manifest: resource,
|
|
492
|
+
}));
|
|
493
|
+
return {
|
|
494
|
+
name: `${this.name}-instance`,
|
|
495
|
+
resources: formattedResources,
|
|
496
|
+
dependencyGraph,
|
|
497
|
+
};
|
|
498
|
+
}
|
|
499
|
+
/**
|
|
500
|
+
* Resolve resources for a specific spec
|
|
501
|
+
* This uses the existing processResourceReferences system to handle schema references
|
|
502
|
+
*/
|
|
503
|
+
resolveResourcesForSpec(spec) {
|
|
504
|
+
const resolvedResources = {};
|
|
505
|
+
for (const [key, resource] of Object.entries(this.resources)) {
|
|
506
|
+
try {
|
|
507
|
+
// CORRECTED: Go directly from the resource template (with proxy objects)
|
|
508
|
+
// to resolving the values from the provided spec.
|
|
509
|
+
const resolvedResource = this.resolveSchemaReferencesToValues(resource, spec);
|
|
510
|
+
resolvedResources[key] = resolvedResource;
|
|
511
|
+
}
|
|
512
|
+
catch (error) {
|
|
513
|
+
// If resolution fails, use the original resource
|
|
514
|
+
this.logger.warn('Failed to resolve references for resource', error);
|
|
515
|
+
resolvedResources[key] = resource;
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
return resolvedResources;
|
|
519
|
+
}
|
|
520
|
+
/**
|
|
521
|
+
* Resolve schema references and CEL expressions to actual values for direct deployment.
|
|
522
|
+
* This is the final, corrected version that handles both direct proxies and Cel.expr wrappers.
|
|
523
|
+
*/
|
|
524
|
+
resolveSchemaReferencesToValues(resource, spec, path = 'root') {
|
|
525
|
+
this.logger.trace('Resolving schema references', {
|
|
526
|
+
path,
|
|
527
|
+
type: typeof resource,
|
|
528
|
+
isObject: resource !== null && typeof resource === 'object',
|
|
529
|
+
});
|
|
530
|
+
// Case 1: Handle direct schema proxy objects (e.g., schema.spec.replicas)
|
|
531
|
+
if (isKubernetesRef(resource) && resource.resourceId === '__schema__') {
|
|
532
|
+
this.logger.trace('Found schema KubernetesRef', { path, fieldPath: resource.fieldPath });
|
|
533
|
+
const pathParts = resource.fieldPath.split('.');
|
|
534
|
+
let currentValue = spec;
|
|
535
|
+
// Skip the first part ('spec') and traverse the spec object
|
|
536
|
+
this.logger.trace('Traversing spec with path parts', { pathParts: pathParts.slice(1) });
|
|
537
|
+
for (const part of pathParts.slice(1)) {
|
|
538
|
+
if (currentValue && typeof currentValue === 'object' && part in currentValue) {
|
|
539
|
+
const oldValue = currentValue;
|
|
540
|
+
currentValue = currentValue[part];
|
|
541
|
+
this.logger.trace('Successfully traversed spec part', {
|
|
542
|
+
part,
|
|
543
|
+
oldValue: JSON.stringify(oldValue),
|
|
544
|
+
newValue: JSON.stringify(currentValue),
|
|
545
|
+
});
|
|
546
|
+
}
|
|
547
|
+
else {
|
|
548
|
+
this.logger.warn('Path part not found in spec, returning original reference', {
|
|
549
|
+
path,
|
|
550
|
+
part,
|
|
551
|
+
spec: JSON.stringify(spec),
|
|
552
|
+
});
|
|
553
|
+
return resource;
|
|
554
|
+
// Path not found, return original
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
this.logger.trace('Resolved schema KubernetesRef to value', {
|
|
558
|
+
path,
|
|
559
|
+
resolvedValue: currentValue,
|
|
560
|
+
});
|
|
561
|
+
return currentValue;
|
|
562
|
+
}
|
|
563
|
+
// Case 2: Handle CelExpression objects (e.g., Cel.expr(schema.spec.name, '-db'))
|
|
564
|
+
if (isCelExpression(resource)) {
|
|
565
|
+
this.logger.trace('Found CEL Expression', { path, expression: resource.expression });
|
|
566
|
+
// The .expression property holds a string like "schema.spec.name-db-config"
|
|
567
|
+
let expressionString = resource.expression;
|
|
568
|
+
// Use regex to find all `schema.spec.fieldName` placeholders in the string
|
|
569
|
+
// and replace them with the corresponding values from the spec object.
|
|
570
|
+
// The 'g' flag ensures all occurrences are replaced.
|
|
571
|
+
expressionString = expressionString.replace(/schema\.spec\.(\w+)/g, (_match, fieldName) => {
|
|
572
|
+
const value = spec[fieldName];
|
|
573
|
+
this.logger.trace('Replacing CEL placeholder', { fieldName, value });
|
|
574
|
+
// If the value exists in the spec, convert it to a string for concatenation.
|
|
575
|
+
// Otherwise, keep the original placeholder (though this shouldn't happen in valid cases).
|
|
576
|
+
return value !== undefined ? String(value) : _match;
|
|
577
|
+
});
|
|
578
|
+
this.logger.trace('Resolved CEL expression to value', {
|
|
579
|
+
path,
|
|
580
|
+
resolvedValue: expressionString,
|
|
581
|
+
});
|
|
582
|
+
// The result is the final, resolved string.
|
|
583
|
+
return expressionString;
|
|
584
|
+
}
|
|
585
|
+
// Case 3: Recursively traverse arrays and plain objects (no changes here)
|
|
586
|
+
if (Array.isArray(resource)) {
|
|
587
|
+
this.logger.trace('Traversing array', { path });
|
|
588
|
+
return resource.map((item, index) => this.resolveSchemaReferencesToValues(item, spec, `${path}[${index}]`));
|
|
589
|
+
}
|
|
590
|
+
if (resource && typeof resource === 'object') {
|
|
591
|
+
this.logger.trace('Traversing object', { path, keys: Object.keys(resource) });
|
|
592
|
+
const resolved = {};
|
|
593
|
+
for (const [key, value] of Object.entries(resource)) {
|
|
594
|
+
resolved[key] = this.resolveSchemaReferencesToValues(value, spec, `${path}.${key}`);
|
|
595
|
+
}
|
|
596
|
+
// FIX: Explicitly check for and preserve the non-enumerable readinessEvaluator property.
|
|
597
|
+
const evaluator = resource.readinessEvaluator;
|
|
598
|
+
if (typeof evaluator === 'function') {
|
|
599
|
+
this.logger.trace('Preserving readiness evaluator for resource', { path });
|
|
600
|
+
Object.defineProperty(resolved, 'readinessEvaluator', {
|
|
601
|
+
value: evaluator,
|
|
602
|
+
enumerable: false,
|
|
603
|
+
configurable: false,
|
|
604
|
+
writable: false,
|
|
605
|
+
});
|
|
606
|
+
}
|
|
607
|
+
return resolved;
|
|
608
|
+
}
|
|
609
|
+
this.logger.trace('Returning primitive value as-is', { path, value: resource });
|
|
610
|
+
// Return primitives and other types as-is.
|
|
611
|
+
return resource;
|
|
612
|
+
}
|
|
613
|
+
/**
|
|
614
|
+
* Generate instance name from spec
|
|
615
|
+
*/
|
|
616
|
+
generateInstanceName(spec) {
|
|
617
|
+
// Use the imported shared utility
|
|
618
|
+
return generateInstanceName(spec);
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
/**
|
|
622
|
+
* Create a DirectResourceFactory instance
|
|
623
|
+
*/
|
|
624
|
+
export function createDirectResourceFactory(name, resources, schemaDefinition, options = {}) {
|
|
625
|
+
return new DirectResourceFactoryImpl(name, resources, schemaDefinition, options);
|
|
626
|
+
}
|
|
627
|
+
//# sourceMappingURL=direct-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"direct-factory.js","sourceRoot":"","sources":["../../../src/core/deployment/direct-factory.ts"],"names":[],"mappings":"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"}
|