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,209 @@
|
|
|
1
|
+
// kubernetes-api.ts
|
|
2
|
+
import * as k8s from '@kubernetes/client-node';
|
|
3
|
+
import { getComponentLogger } from '../logging/index.js';
|
|
4
|
+
import { createKubernetesClientProvider } from './client-provider.js';
|
|
5
|
+
/**
|
|
6
|
+
* A Kubernetes API client that reads configuration from environment variables.
|
|
7
|
+
* This client provides basic apply, get, and delete operations for Kubernetes resources.
|
|
8
|
+
*/
|
|
9
|
+
export class KubernetesApi {
|
|
10
|
+
kc;
|
|
11
|
+
k8sApi;
|
|
12
|
+
logger = getComponentLogger('kubernetes-api');
|
|
13
|
+
constructor() {
|
|
14
|
+
const config = this.loadConfigFromEnv();
|
|
15
|
+
// Use the centralized KubernetesClientProvider
|
|
16
|
+
const clientConfig = {
|
|
17
|
+
cluster: {
|
|
18
|
+
name: 'default-cluster',
|
|
19
|
+
server: config.apiServer,
|
|
20
|
+
skipTLSVerify: config.skipTLSVerify === true,
|
|
21
|
+
...(config.caCert && { caData: config.caCert }),
|
|
22
|
+
},
|
|
23
|
+
user: {
|
|
24
|
+
name: 'default-user',
|
|
25
|
+
token: config.apiToken,
|
|
26
|
+
},
|
|
27
|
+
context: 'default-context',
|
|
28
|
+
};
|
|
29
|
+
const clientProvider = createKubernetesClientProvider(clientConfig);
|
|
30
|
+
this.kc = clientProvider.getKubeConfig();
|
|
31
|
+
this.k8sApi = clientProvider.getKubernetesApi();
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Loads Kubernetes API configuration from environment variables.
|
|
35
|
+
* @throws Error if KUBERNETES_API_SERVER or KUBERNETES_API_TOKEN are not set.
|
|
36
|
+
*/
|
|
37
|
+
loadConfigFromEnv() {
|
|
38
|
+
const apiServer = process.env.KUBERNETES_API_SERVER;
|
|
39
|
+
const apiToken = process.env.KUBERNETES_API_TOKEN;
|
|
40
|
+
const caCert = process.env.KUBERNETES_CA_CERT;
|
|
41
|
+
const skipTLSVerify = process.env.KUBERNETES_SKIP_TLS_VERIFY === 'true';
|
|
42
|
+
if (!apiServer) {
|
|
43
|
+
throw new Error('KUBERNETES_API_SERVER environment variable is not set.');
|
|
44
|
+
}
|
|
45
|
+
if (!apiToken) {
|
|
46
|
+
throw new Error('KUBERNETES_API_TOKEN environment variable is not set.');
|
|
47
|
+
}
|
|
48
|
+
// Log security warning when TLS is disabled
|
|
49
|
+
if (skipTLSVerify) {
|
|
50
|
+
this.logger.warn('TLS verification disabled via environment variable - this is insecure and should only be used in development', {
|
|
51
|
+
component: 'kubernetes-api',
|
|
52
|
+
security: 'tls-disabled',
|
|
53
|
+
envVar: 'KUBERNETES_SKIP_TLS_VERIFY'
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
// Validate TLS configuration
|
|
57
|
+
this.validateTLSConfiguration(apiServer, caCert, skipTLSVerify);
|
|
58
|
+
return {
|
|
59
|
+
apiServer,
|
|
60
|
+
apiToken,
|
|
61
|
+
...(caCert && { caCert }),
|
|
62
|
+
skipTLSVerify,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Validate TLS configuration and provide actionable error messages
|
|
67
|
+
*/
|
|
68
|
+
validateTLSConfiguration(apiServer, caCert, skipTLSVerify) {
|
|
69
|
+
// Check if connecting to HTTPS endpoint without proper TLS configuration
|
|
70
|
+
if (apiServer.startsWith('https://')) {
|
|
71
|
+
if (skipTLSVerify && !caCert) {
|
|
72
|
+
this.logger.warn('Connecting to HTTPS endpoint with TLS verification disabled and no CA certificate', {
|
|
73
|
+
component: 'kubernetes-api',
|
|
74
|
+
security: 'tls-configuration-warning',
|
|
75
|
+
apiServer,
|
|
76
|
+
recommendation: 'Provide KUBERNETES_CA_CERT environment variable for secure connections'
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
else if (!skipTLSVerify && !caCert) {
|
|
80
|
+
this.logger.info('Connecting to HTTPS endpoint without custom CA certificate - using system trust store', {
|
|
81
|
+
component: 'kubernetes-api',
|
|
82
|
+
security: 'tls-configuration-info',
|
|
83
|
+
apiServer
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
else if (!skipTLSVerify && caCert) {
|
|
87
|
+
this.logger.info('Secure TLS connection configured with custom CA certificate', {
|
|
88
|
+
component: 'kubernetes-api',
|
|
89
|
+
security: 'tls-configuration-secure',
|
|
90
|
+
apiServer
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
else if (apiServer.startsWith('http://')) {
|
|
95
|
+
this.logger.warn('Connecting to HTTP endpoint - connection is not encrypted', {
|
|
96
|
+
component: 'kubernetes-api',
|
|
97
|
+
security: 'insecure-connection',
|
|
98
|
+
apiServer,
|
|
99
|
+
recommendation: 'Use HTTPS endpoint for secure connections'
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Applies a Kubernetes manifest (YAML or JSON string) to the cluster.
|
|
105
|
+
* This method handles both creation and updates of resources.
|
|
106
|
+
* @param manifestString The Kubernetes YAML or JSON manifest as a string.
|
|
107
|
+
*/
|
|
108
|
+
async apply(manifestString) {
|
|
109
|
+
// Parse the manifest string as a KubernetesObject
|
|
110
|
+
const manifest = k8s.loadYaml(manifestString);
|
|
111
|
+
// Ensure metadata and name exist for proper application
|
|
112
|
+
if (!manifest.metadata || !manifest.metadata.name) {
|
|
113
|
+
throw new Error('Kubernetes manifest must have metadata.name defined.');
|
|
114
|
+
}
|
|
115
|
+
const resourceLogger = this.logger.child({
|
|
116
|
+
kind: manifest.kind,
|
|
117
|
+
name: manifest.metadata.name,
|
|
118
|
+
namespace: manifest.metadata.namespace || 'default'
|
|
119
|
+
});
|
|
120
|
+
try {
|
|
121
|
+
// V1ObjectMeta's namespace property is string, not string | undefined.
|
|
122
|
+
// We must provide a string. Use a default if not present.
|
|
123
|
+
const manifestNamespace = manifest.metadata.namespace || 'default';
|
|
124
|
+
let existing;
|
|
125
|
+
try {
|
|
126
|
+
// Correctly access the body property from the response
|
|
127
|
+
// The read method of KubernetesObjectApi expects KubernetesObjectHeader
|
|
128
|
+
// Ensure that name and namespace are explicitly non-optional in the header
|
|
129
|
+
const { body } = await this.k8sApi.read({
|
|
130
|
+
metadata: { name: manifest.metadata.name, namespace: manifestNamespace },
|
|
131
|
+
});
|
|
132
|
+
existing = body;
|
|
133
|
+
}
|
|
134
|
+
catch (e) {
|
|
135
|
+
// If it's a 404, the resource doesn't exist, which is expected for creation
|
|
136
|
+
if (e.statusCode !== 404) {
|
|
137
|
+
resourceLogger.error('Error checking resource existence', e);
|
|
138
|
+
throw e;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
if (existing) {
|
|
142
|
+
// Resource exists, apply update using patch for safety
|
|
143
|
+
// Patch only updates the fields we specify, preserving other fields
|
|
144
|
+
await this.k8sApi.patch(manifest);
|
|
145
|
+
resourceLogger.debug('Resource patched');
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
// Resource does not exist, create it
|
|
149
|
+
await this.k8sApi.create(manifest);
|
|
150
|
+
resourceLogger.debug('Resource created');
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
resourceLogger.error('Error applying Kubernetes manifest', error);
|
|
155
|
+
throw new Error(`Failed to apply Kubernetes manifest: ${error.message}`);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Retrieves a Kubernetes resource.
|
|
160
|
+
* @param apiVersion The apiVersion of the resource (e.g., "apps/v1").
|
|
161
|
+
* @param kind The kind of the resource (e.g., "Deployment").
|
|
162
|
+
* @param name The name of the resource.
|
|
163
|
+
* @param namespace The namespace of the resource.
|
|
164
|
+
* @returns The retrieved resource object.
|
|
165
|
+
*/
|
|
166
|
+
async get(_apiVersion, kind, name, namespace = 'default') {
|
|
167
|
+
const getLogger = this.logger.child({ kind, name, namespace });
|
|
168
|
+
try {
|
|
169
|
+
const { body } = await this.k8sApi.read({
|
|
170
|
+
metadata: { name, namespace },
|
|
171
|
+
});
|
|
172
|
+
return body;
|
|
173
|
+
}
|
|
174
|
+
catch (error) {
|
|
175
|
+
getLogger.error('Error getting resource', error);
|
|
176
|
+
throw new Error(`Failed to get Kubernetes resource: ${error.message}`);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Deletes a Kubernetes resource.
|
|
181
|
+
* @param apiVersion The apiVersion of the resource (e.g., "apps/v1").
|
|
182
|
+
* @param kind The kind of the resource (e.g., "Deployment").
|
|
183
|
+
* @param name The name of the resource.
|
|
184
|
+
* @param namespace The namespace of the resource.
|
|
185
|
+
*/
|
|
186
|
+
async delete(apiVersion, kind, name, namespace = 'default') {
|
|
187
|
+
const deleteLogger = this.logger.child({ kind, name, namespace });
|
|
188
|
+
try {
|
|
189
|
+
// The delete method of KubernetesObjectApi takes the object to delete first,
|
|
190
|
+
// then an optional V1DeleteOptions object.
|
|
191
|
+
await this.k8sApi.delete({
|
|
192
|
+
apiVersion,
|
|
193
|
+
kind,
|
|
194
|
+
metadata: { name, namespace },
|
|
195
|
+
});
|
|
196
|
+
deleteLogger.debug('Resource deleted');
|
|
197
|
+
}
|
|
198
|
+
catch (error) {
|
|
199
|
+
// Don't throw if resource is already not found during deletion
|
|
200
|
+
if (error.statusCode === 404) {
|
|
201
|
+
deleteLogger.warn('Resource not found during deletion attempt, assuming already deleted');
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
deleteLogger.error('Error deleting resource', error);
|
|
205
|
+
throw new Error(`Failed to delete Kubernetes resource: ${error.message}`);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/core/kubernetes/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kubernetes Client Provider
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth for all Kubernetes API interactions.
|
|
5
|
+
* Manages KubeConfig loading and KubernetesObjectApi client instantiation
|
|
6
|
+
* with consistent configuration across the entire application.
|
|
7
|
+
*
|
|
8
|
+
* This provider implements the singleton pattern and serves as the central
|
|
9
|
+
* authority for all Kubernetes API client creation, ensuring consistent
|
|
10
|
+
* configuration, security settings, and lifecycle management.
|
|
11
|
+
*/
|
|
12
|
+
import * as k8s from '@kubernetes/client-node';
|
|
13
|
+
/**
|
|
14
|
+
* Configuration options for the Kubernetes client provider
|
|
15
|
+
*/
|
|
16
|
+
export interface KubernetesClientConfig {
|
|
17
|
+
/**
|
|
18
|
+
* SECURITY WARNING: Only set to true in non-production environments.
|
|
19
|
+
* This disables TLS certificate verification and makes connections vulnerable
|
|
20
|
+
* to man-in-the-middle attacks.
|
|
21
|
+
*
|
|
22
|
+
* @default false (secure by default)
|
|
23
|
+
*/
|
|
24
|
+
skipTLSVerify?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Custom cluster server URL (optional)
|
|
27
|
+
*/
|
|
28
|
+
server?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Custom context name (optional)
|
|
31
|
+
*/
|
|
32
|
+
context?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Complete cluster configuration (optional)
|
|
35
|
+
*/
|
|
36
|
+
cluster?: {
|
|
37
|
+
name: string;
|
|
38
|
+
server: string;
|
|
39
|
+
skipTLSVerify?: boolean;
|
|
40
|
+
caData?: string;
|
|
41
|
+
caFile?: string;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Complete user configuration (optional)
|
|
45
|
+
*/
|
|
46
|
+
user?: {
|
|
47
|
+
name: string;
|
|
48
|
+
token?: string;
|
|
49
|
+
certData?: string;
|
|
50
|
+
certFile?: string;
|
|
51
|
+
keyData?: string;
|
|
52
|
+
keyFile?: string;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Whether to load from default kubeconfig if no complete cluster/user config provided
|
|
56
|
+
* @default true
|
|
57
|
+
*/
|
|
58
|
+
loadFromDefault?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Custom kubeconfig file path (optional)
|
|
61
|
+
*/
|
|
62
|
+
kubeconfigPath?: string;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Interface for components that need Kubernetes API access
|
|
66
|
+
*/
|
|
67
|
+
export interface KubernetesApiConsumer {
|
|
68
|
+
/**
|
|
69
|
+
* Set the Kubernetes API client instance
|
|
70
|
+
*/
|
|
71
|
+
setKubernetesApi(api: k8s.KubernetesObjectApi): void;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Interface for components that need KubeConfig access
|
|
75
|
+
*/
|
|
76
|
+
export interface KubeConfigConsumer {
|
|
77
|
+
/**
|
|
78
|
+
* Set the KubeConfig instance
|
|
79
|
+
*/
|
|
80
|
+
setKubeConfig(config: k8s.KubeConfig): void;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Kubernetes Client Provider - Single source of truth for Kubernetes API access
|
|
84
|
+
*
|
|
85
|
+
* This class implements the singleton pattern and serves as the central authority
|
|
86
|
+
* for all Kubernetes API client creation. It ensures consistent configuration,
|
|
87
|
+
* security settings, and lifecycle management across the entire application.
|
|
88
|
+
*/
|
|
89
|
+
export declare class KubernetesClientProvider {
|
|
90
|
+
private static instance;
|
|
91
|
+
private kubeConfig;
|
|
92
|
+
private k8sApi;
|
|
93
|
+
private config;
|
|
94
|
+
private logger;
|
|
95
|
+
private initialized;
|
|
96
|
+
private constructor();
|
|
97
|
+
/**
|
|
98
|
+
* Get the singleton instance of KubernetesClientProvider
|
|
99
|
+
*/
|
|
100
|
+
static getInstance(): KubernetesClientProvider;
|
|
101
|
+
/**
|
|
102
|
+
* Create a new instance for dependency injection (non-singleton)
|
|
103
|
+
* Useful for testing or when you need multiple configurations
|
|
104
|
+
*/
|
|
105
|
+
static createInstance(config?: KubernetesClientConfig): KubernetesClientProvider;
|
|
106
|
+
/**
|
|
107
|
+
* Initialize the provider with configuration
|
|
108
|
+
* This method is idempotent - calling it multiple times with the same config is safe
|
|
109
|
+
*/
|
|
110
|
+
initialize(config?: KubernetesClientConfig): void;
|
|
111
|
+
/**
|
|
112
|
+
* Initialize the provider with a pre-configured KubeConfig
|
|
113
|
+
* Useful when you already have a KubeConfig instance
|
|
114
|
+
*/
|
|
115
|
+
initializeWithKubeConfig(kubeConfig: k8s.KubeConfig): void;
|
|
116
|
+
/**
|
|
117
|
+
* Get the configured KubeConfig instance
|
|
118
|
+
* @throws Error if provider is not initialized
|
|
119
|
+
*/
|
|
120
|
+
getKubeConfig(): k8s.KubeConfig;
|
|
121
|
+
/**
|
|
122
|
+
* Get the configured KubernetesObjectApi instance
|
|
123
|
+
* @throws Error if provider is not initialized
|
|
124
|
+
*/
|
|
125
|
+
getKubernetesApi(): k8s.KubernetesObjectApi;
|
|
126
|
+
/**
|
|
127
|
+
* Inject the Kubernetes API client into a consumer component
|
|
128
|
+
*/
|
|
129
|
+
injectKubernetesApi(consumer: KubernetesApiConsumer): void;
|
|
130
|
+
/**
|
|
131
|
+
* Inject the KubeConfig into a consumer component
|
|
132
|
+
*/
|
|
133
|
+
injectKubeConfig(consumer: KubeConfigConsumer): void;
|
|
134
|
+
/**
|
|
135
|
+
* Get current configuration (read-only)
|
|
136
|
+
*/
|
|
137
|
+
getConfiguration(): Readonly<KubernetesClientConfig> | null;
|
|
138
|
+
/**
|
|
139
|
+
* Create a new KubeConfig with the provided configuration
|
|
140
|
+
*/
|
|
141
|
+
private createKubeConfig;
|
|
142
|
+
/**
|
|
143
|
+
* Apply configuration modifications to an existing KubeConfig
|
|
144
|
+
*/
|
|
145
|
+
private applyConfigModifications;
|
|
146
|
+
/**
|
|
147
|
+
* Validate and log security configuration
|
|
148
|
+
*/
|
|
149
|
+
private validateAndLogSecurityConfiguration;
|
|
150
|
+
/**
|
|
151
|
+
* Check if two configurations are the same
|
|
152
|
+
*/
|
|
153
|
+
private isSameConfig;
|
|
154
|
+
/**
|
|
155
|
+
* Ensure the provider is initialized
|
|
156
|
+
*/
|
|
157
|
+
private ensureInitialized;
|
|
158
|
+
/**
|
|
159
|
+
* Reset the provider instance (useful for testing)
|
|
160
|
+
*/
|
|
161
|
+
private reset;
|
|
162
|
+
/**
|
|
163
|
+
* Reset the singleton instance (useful for testing)
|
|
164
|
+
*/
|
|
165
|
+
static reset(): void;
|
|
166
|
+
/**
|
|
167
|
+
* Check if the provider is initialized
|
|
168
|
+
*/
|
|
169
|
+
isInitialized(): boolean;
|
|
170
|
+
/**
|
|
171
|
+
* Get connection status information
|
|
172
|
+
*/
|
|
173
|
+
getConnectionInfo(): {
|
|
174
|
+
initialized: boolean;
|
|
175
|
+
currentContext?: string;
|
|
176
|
+
server?: string;
|
|
177
|
+
skipTLSVerify?: boolean;
|
|
178
|
+
clusterName?: string;
|
|
179
|
+
userName?: string;
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Convenience function to get the singleton instance
|
|
184
|
+
*/
|
|
185
|
+
export declare function getKubernetesClientProvider(): KubernetesClientProvider;
|
|
186
|
+
/**
|
|
187
|
+
* Factory function to create and initialize a provider instance
|
|
188
|
+
*/
|
|
189
|
+
export declare function createKubernetesClientProvider(config?: KubernetesClientConfig): KubernetesClientProvider;
|
|
190
|
+
/**
|
|
191
|
+
* Factory function to create a provider with a pre-configured KubeConfig
|
|
192
|
+
*/
|
|
193
|
+
export declare function createKubernetesClientProviderWithKubeConfig(kubeConfig: k8s.KubeConfig): KubernetesClientProvider;
|
|
194
|
+
/**
|
|
195
|
+
* Convenience function to get a configured Kubernetes API client
|
|
196
|
+
* Uses the singleton provider and initializes it with default config if needed
|
|
197
|
+
*/
|
|
198
|
+
export declare function getKubernetesApi(config?: KubernetesClientConfig): k8s.KubernetesObjectApi;
|
|
199
|
+
/**
|
|
200
|
+
* Convenience function to get a configured KubeConfig
|
|
201
|
+
* Uses the singleton provider and initializes it with default config if needed
|
|
202
|
+
*/
|
|
203
|
+
export declare function getKubeConfig(config?: KubernetesClientConfig): k8s.KubeConfig;
|
|
204
|
+
//# sourceMappingURL=client-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-provider.d.ts","sourceRoot":"","sources":["../../../src/core/kubernetes/client-provider.ts"],"names":[],"mappings":"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"}
|