typekro 0.1.0 → 0.2.2
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 +201 -185
- package/README.md +581 -563
- package/dist/.tsbuildinfo +1 -1
- package/dist/alchemy/deployers.d.ts +1 -1
- package/dist/alchemy/deployers.d.ts.map +1 -1
- package/dist/alchemy/deployers.js +25 -20
- package/dist/alchemy/deployers.js.map +1 -1
- package/dist/alchemy/deployment.d.ts +3 -3
- package/dist/alchemy/deployment.d.ts.map +1 -1
- package/dist/alchemy/deployment.js +2 -2
- package/dist/alchemy/deployment.js.map +1 -1
- package/dist/alchemy/index.d.ts +4 -4
- package/dist/alchemy/index.d.ts.map +1 -1
- package/dist/alchemy/index.js +6 -6
- package/dist/alchemy/index.js.map +1 -1
- package/dist/alchemy/resolver.d.ts +3 -3
- package/dist/alchemy/resolver.d.ts.map +1 -1
- package/dist/alchemy/resolver.js +70 -17
- package/dist/alchemy/resolver.js.map +1 -1
- package/dist/alchemy/resource-registration.d.ts.map +1 -1
- package/dist/alchemy/resource-registration.js +3 -3
- package/dist/alchemy/resource-registration.js.map +1 -1
- package/dist/alchemy/type-inference.d.ts.map +1 -1
- package/dist/alchemy/type-inference.js.map +1 -1
- package/dist/alchemy/types.d.ts +2 -2
- package/dist/alchemy/types.d.ts.map +1 -1
- package/dist/alchemy/utilities.d.ts.map +1 -1
- package/dist/alchemy/utilities.js.map +1 -1
- package/dist/alchemy/wrapper.d.ts.map +1 -1
- package/dist/alchemy/wrapper.js +2 -2
- package/dist/alchemy/wrapper.js.map +1 -1
- package/dist/core/composition/composition.d.ts +1 -85
- package/dist/core/composition/composition.d.ts.map +1 -1
- package/dist/core/composition/composition.js +3 -214
- package/dist/core/composition/composition.js.map +1 -1
- package/dist/core/composition/imperative.d.ts +39 -0
- package/dist/core/composition/imperative.d.ts.map +1 -0
- package/dist/core/composition/imperative.js +219 -0
- package/dist/core/composition/imperative.js.map +1 -0
- package/dist/core/composition/index.d.ts +5 -3
- package/dist/core/composition/index.d.ts.map +1 -1
- package/dist/core/composition/index.js +4 -2
- package/dist/core/composition/index.js.map +1 -1
- package/dist/core/composition/typekro-runtime/index.d.ts +1 -1
- package/dist/core/composition/typekro-runtime/index.d.ts.map +1 -1
- package/dist/core/composition/typekro-runtime/typekro-runtime.d.ts.map +1 -1
- package/dist/core/composition/typekro-runtime/typekro-runtime.js +3 -3
- package/dist/core/composition/typekro-runtime/typekro-runtime.js.map +1 -1
- package/dist/core/composition/types.d.ts +0 -237
- package/dist/core/composition/types.d.ts.map +1 -1
- package/dist/core/composition/types.js +6 -0
- package/dist/core/composition/types.js.map +1 -1
- package/dist/core/constants/brands.d.ts.map +1 -1
- package/dist/core/constants/brands.js +3 -9
- package/dist/core/constants/brands.js.map +1 -1
- package/dist/core/dependencies/resolver.d.ts.map +1 -1
- package/dist/core/dependencies/resolver.js +3 -3
- package/dist/core/dependencies/resolver.js.map +1 -1
- package/dist/core/dependencies/type-guards.d.ts +3 -3
- package/dist/core/dependencies/type-guards.d.ts.map +1 -1
- package/dist/core/dependencies/type-guards.js +3 -3
- package/dist/core/dependencies/type-guards.js.map +1 -1
- package/dist/core/deployment/debug-logger.d.ts +119 -0
- package/dist/core/deployment/debug-logger.d.ts.map +1 -0
- package/dist/core/deployment/debug-logger.js +372 -0
- package/dist/core/deployment/debug-logger.js.map +1 -0
- package/dist/core/deployment/deployment-strategies.d.ts +1 -1
- package/dist/core/deployment/deployment-strategies.d.ts.map +1 -1
- package/dist/core/deployment/deployment-strategies.js +1 -1
- package/dist/core/deployment/deployment-strategies.js.map +1 -1
- package/dist/core/deployment/direct-factory.d.ts +11 -5
- package/dist/core/deployment/direct-factory.d.ts.map +1 -1
- package/dist/core/deployment/direct-factory.js +22 -12
- package/dist/core/deployment/direct-factory.js.map +1 -1
- package/dist/core/deployment/engine.d.ts +9 -6
- package/dist/core/deployment/engine.d.ts.map +1 -1
- package/dist/core/deployment/engine.js +184 -95
- package/dist/core/deployment/engine.js.map +1 -1
- package/dist/core/deployment/event-filter.d.ts +142 -0
- package/dist/core/deployment/event-filter.d.ts.map +1 -0
- package/dist/core/deployment/event-filter.js +420 -0
- package/dist/core/deployment/event-filter.js.map +1 -0
- package/dist/core/deployment/event-monitor.d.ts +197 -0
- package/dist/core/deployment/event-monitor.d.ts.map +1 -0
- package/dist/core/deployment/event-monitor.js +738 -0
- package/dist/core/deployment/event-monitor.js.map +1 -0
- package/dist/core/deployment/event-streamer.d.ts +112 -0
- package/dist/core/deployment/event-streamer.d.ts.map +1 -0
- package/dist/core/deployment/event-streamer.js +348 -0
- package/dist/core/deployment/event-streamer.js.map +1 -0
- package/dist/core/deployment/index.d.ts +5 -5
- package/dist/core/deployment/index.d.ts.map +1 -1
- package/dist/core/deployment/index.js +5 -5
- package/dist/core/deployment/index.js.map +1 -1
- package/dist/core/deployment/kro-factory.d.ts +2 -8
- package/dist/core/deployment/kro-factory.d.ts.map +1 -1
- package/dist/core/deployment/kro-factory.js +63 -109
- package/dist/core/deployment/kro-factory.js.map +1 -1
- package/dist/core/deployment/readiness.d.ts +6 -0
- package/dist/core/deployment/readiness.d.ts.map +1 -1
- package/dist/core/deployment/readiness.js +45 -1
- package/dist/core/deployment/readiness.js.map +1 -1
- package/dist/core/deployment/rollback-manager.d.ts.map +1 -1
- package/dist/core/deployment/rollback-manager.js +3 -3
- package/dist/core/deployment/rollback-manager.js.map +1 -1
- package/dist/core/deployment/shared-utilities.d.ts +1 -1
- package/dist/core/deployment/shared-utilities.d.ts.map +1 -1
- package/dist/core/deployment/shared-utilities.js +2 -0
- package/dist/core/deployment/shared-utilities.js.map +1 -1
- package/dist/core/deployment/status-hydrator.d.ts.map +1 -1
- package/dist/core/deployment/status-hydrator.js +31 -12
- package/dist/core/deployment/status-hydrator.js.map +1 -1
- package/dist/core/deployment/strategies/alchemy-strategy.d.ts +4 -4
- package/dist/core/deployment/strategies/alchemy-strategy.d.ts.map +1 -1
- package/dist/core/deployment/strategies/alchemy-strategy.js +9 -9
- package/dist/core/deployment/strategies/alchemy-strategy.js.map +1 -1
- package/dist/core/deployment/strategies/base-strategy.d.ts +7 -4
- package/dist/core/deployment/strategies/base-strategy.d.ts.map +1 -1
- package/dist/core/deployment/strategies/base-strategy.js +257 -11
- package/dist/core/deployment/strategies/base-strategy.js.map +1 -1
- package/dist/core/deployment/strategies/direct-strategy.d.ts +4 -3
- package/dist/core/deployment/strategies/direct-strategy.d.ts.map +1 -1
- package/dist/core/deployment/strategies/direct-strategy.js +4 -4
- package/dist/core/deployment/strategies/direct-strategy.js.map +1 -1
- package/dist/core/deployment/strategies/index.d.ts +1 -1
- package/dist/core/deployment/strategies/index.d.ts.map +1 -1
- package/dist/core/deployment/strategies/index.js +1 -1
- package/dist/core/deployment/strategies/index.js.map +1 -1
- package/dist/core/deployment/strategies/kro-strategy.d.ts +1 -1
- package/dist/core/deployment/strategies/kro-strategy.d.ts.map +1 -1
- package/dist/core/deployment/strategies/kro-strategy.js +14 -14
- package/dist/core/deployment/strategies/kro-strategy.js.map +1 -1
- package/dist/core/errors.d.ts +136 -0
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +362 -0
- package/dist/core/errors.js.map +1 -1
- package/dist/core/evaluation/cel-optimizer.d.ts.map +1 -1
- package/dist/core/evaluation/cel-optimizer.js +33 -11
- package/dist/core/evaluation/cel-optimizer.js.map +1 -1
- package/dist/core/factory.d.ts.map +1 -1
- package/dist/core/factory.js.map +1 -1
- package/dist/core/kubernetes/api.d.ts +13 -2
- package/dist/core/kubernetes/api.d.ts.map +1 -1
- package/dist/core/kubernetes/api.js +21 -8
- package/dist/core/kubernetes/api.js.map +1 -1
- package/dist/core/kubernetes/client-provider.d.ts +192 -0
- package/dist/core/kubernetes/client-provider.d.ts.map +1 -1
- package/dist/core/kubernetes/client-provider.js +423 -22
- package/dist/core/kubernetes/client-provider.js.map +1 -1
- package/dist/core/logging/config.d.ts.map +1 -1
- package/dist/core/logging/config.js.map +1 -1
- package/dist/core/logging/index.d.ts +1 -1
- package/dist/core/logging/index.d.ts.map +1 -1
- package/dist/core/logging/index.js +1 -1
- package/dist/core/logging/index.js.map +1 -1
- package/dist/core/logging/logger.d.ts +1 -1
- package/dist/core/logging/logger.d.ts.map +1 -1
- package/dist/core/logging/logger.js.map +1 -1
- package/dist/core/readiness/cluster-state.d.ts.map +1 -1
- package/dist/core/readiness/cluster-state.js +12 -6
- package/dist/core/readiness/cluster-state.js.map +1 -1
- package/dist/core/references/cel-evaluator.js +1 -1
- package/dist/core/references/cel-evaluator.js.map +1 -1
- package/dist/core/references/cel.d.ts.map +1 -1
- package/dist/core/references/cel.js +1 -1
- package/dist/core/references/cel.js.map +1 -1
- package/dist/core/references/external-refs.d.ts +1 -1
- package/dist/core/references/external-refs.js +1 -1
- package/dist/core/references/index.d.ts +4 -4
- package/dist/core/references/index.d.ts.map +1 -1
- package/dist/core/references/index.js +6 -6
- package/dist/core/references/index.js.map +1 -1
- package/dist/core/references/resolver.d.ts +1 -1
- package/dist/core/references/resolver.d.ts.map +1 -1
- package/dist/core/references/resolver.js +69 -44
- package/dist/core/references/resolver.js.map +1 -1
- package/dist/core/references/schema-proxy.d.ts.map +1 -1
- package/dist/core/references/schema-proxy.js +2 -4
- package/dist/core/references/schema-proxy.js.map +1 -1
- package/dist/core/serialization/core.d.ts +1 -1
- package/dist/core/serialization/core.d.ts.map +1 -1
- package/dist/core/serialization/core.js +122 -16
- package/dist/core/serialization/core.js.map +1 -1
- package/dist/core/serialization/schema.js +1 -1
- package/dist/core/serialization/schema.js.map +1 -1
- package/dist/core/serialization/validation.js +1 -1
- package/dist/core/serialization/validation.js.map +1 -1
- package/dist/core/serialization/yaml.js +1 -1
- package/dist/core/serialization/yaml.js.map +1 -1
- package/dist/core/types/common.d.ts.map +1 -1
- package/dist/core/types/deployment.d.ts +116 -3
- package/dist/core/types/deployment.d.ts.map +1 -1
- package/dist/core/types/deployment.js.map +1 -1
- package/dist/core/types/index.d.ts +1 -1
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/index.js.map +1 -1
- package/dist/core/types/kubernetes.d.ts.map +1 -1
- package/dist/core/types/serialization.d.ts +14 -3
- package/dist/core/types/serialization.d.ts.map +1 -1
- package/dist/core/validation/cel-validator.d.ts.map +1 -1
- package/dist/core/validation/cel-validator.js +28 -10
- package/dist/core/validation/cel-validator.js.map +1 -1
- package/dist/core/yaml/index.d.ts +1 -1
- package/dist/core/yaml/index.d.ts.map +1 -1
- package/dist/core/yaml/index.js +1 -1
- package/dist/core/yaml/index.js.map +1 -1
- package/dist/core/yaml/path-resolver.d.ts.map +1 -1
- package/dist/core/yaml/path-resolver.js +6 -6
- package/dist/core/yaml/path-resolver.js.map +1 -1
- package/dist/core.d.ts +10 -10
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +14 -14
- package/dist/core.js.map +1 -1
- package/dist/factories/flux/git-repository.d.ts.map +1 -1
- package/dist/factories/flux/git-repository.js.map +1 -1
- package/dist/factories/flux/index.d.ts +1 -1
- package/dist/factories/flux/index.d.ts.map +1 -1
- package/dist/factories/flux/index.js.map +1 -1
- package/dist/factories/flux/kustomize/index.d.ts +1 -1
- package/dist/factories/flux/kustomize/index.d.ts.map +1 -1
- package/dist/factories/flux/kustomize/index.js.map +1 -1
- package/dist/factories/flux/kustomize/readiness-evaluators.d.ts.map +1 -1
- package/dist/factories/flux/kustomize/readiness-evaluators.js +9 -9
- package/dist/factories/flux/kustomize/readiness-evaluators.js.map +1 -1
- package/dist/factories/flux/kustomize/types.d.ts +1 -1
- package/dist/factories/flux/kustomize/types.d.ts.map +1 -1
- package/dist/factories/helm/helm-release.d.ts +7 -4
- package/dist/factories/helm/helm-release.d.ts.map +1 -1
- package/dist/factories/helm/helm-release.js +7 -4
- package/dist/factories/helm/helm-release.js.map +1 -1
- package/dist/factories/helm/helm-repository.d.ts.map +1 -1
- package/dist/factories/helm/helm-repository.js.map +1 -1
- package/dist/factories/helm/index.d.ts +1 -1
- package/dist/factories/helm/index.d.ts.map +1 -1
- package/dist/factories/helm/index.js +1 -1
- package/dist/factories/helm/index.js.map +1 -1
- package/dist/factories/helm/readiness-evaluators.d.ts.map +1 -1
- package/dist/factories/helm/readiness-evaluators.js +4 -2
- package/dist/factories/helm/readiness-evaluators.js.map +1 -1
- package/dist/factories/index.d.ts +6 -3
- package/dist/factories/index.d.ts.map +1 -1
- package/dist/factories/index.js +10 -6
- package/dist/factories/index.js.map +1 -1
- package/dist/factories/kro/index.d.ts +3 -3
- package/dist/factories/kro/index.d.ts.map +1 -1
- package/dist/factories/kro/index.js +2 -2
- package/dist/factories/kro/index.js.map +1 -1
- package/dist/factories/kro/kro-crd.d.ts.map +1 -1
- package/dist/factories/kro/kro-crd.js +5 -5
- package/dist/factories/kro/kro-crd.js.map +1 -1
- package/dist/factories/kro/kro-custom-resource.d.ts.map +1 -1
- package/dist/factories/kro/kro-custom-resource.js +21 -21
- package/dist/factories/kro/kro-custom-resource.js.map +1 -1
- package/dist/factories/kro/resource-graph-definition.d.ts.map +1 -1
- package/dist/factories/kro/resource-graph-definition.js +7 -7
- package/dist/factories/kro/resource-graph-definition.js.map +1 -1
- package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler-v1.d.ts.map +1 -1
- package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler-v1.js.map +1 -1
- package/dist/factories/kubernetes/autoscaling/horizontal-pod-autoscaler.js +2 -2
- package/dist/factories/kubernetes/certificates/certificate-signing-request.js +2 -2
- package/dist/factories/kubernetes/certificates/certificate-signing-request.js.map +1 -1
- package/dist/factories/kubernetes/config/config-map.js +1 -1
- package/dist/factories/kubernetes/config/config-map.js.map +1 -1
- package/dist/factories/kubernetes/config/secret.js +1 -1
- package/dist/factories/kubernetes/config/secret.js.map +1 -1
- package/dist/factories/kubernetes/core/component-status.js +1 -1
- package/dist/factories/kubernetes/core/component-status.js.map +1 -1
- package/dist/factories/kubernetes/core/node.js +1 -1
- package/dist/factories/kubernetes/core/node.js.map +1 -1
- package/dist/factories/kubernetes/core/pod.js +4 -4
- package/dist/factories/kubernetes/core/pod.js.map +1 -1
- package/dist/factories/kubernetes/extensions/custom-resource-definition.js +2 -2
- package/dist/factories/kubernetes/extensions/custom-resource-definition.js.map +1 -1
- package/dist/factories/kubernetes/index.d.ts +2 -2
- package/dist/factories/kubernetes/index.d.ts.map +1 -1
- package/dist/factories/kubernetes/index.js +8 -8
- package/dist/factories/kubernetes/index.js.map +1 -1
- package/dist/factories/kubernetes/networking/endpoints.d.ts.map +1 -1
- package/dist/factories/kubernetes/networking/endpoints.js +4 -4
- package/dist/factories/kubernetes/networking/endpoints.js.map +1 -1
- package/dist/factories/kubernetes/networking/ingress.js +2 -2
- package/dist/factories/kubernetes/networking/network-policy.js +2 -2
- package/dist/factories/kubernetes/networking/network-policy.js.map +1 -1
- package/dist/factories/kubernetes/networking/service.d.ts.map +1 -1
- package/dist/factories/kubernetes/networking/service.js +8 -7
- package/dist/factories/kubernetes/networking/service.js.map +1 -1
- package/dist/factories/kubernetes/policy/limit-range.js +2 -2
- package/dist/factories/kubernetes/policy/limit-range.js.map +1 -1
- package/dist/factories/kubernetes/policy/pod-disruption-budget.js +5 -5
- package/dist/factories/kubernetes/policy/resource-quota.js +4 -4
- package/dist/factories/kubernetes/rbac/cluster-role-binding.js +2 -2
- package/dist/factories/kubernetes/rbac/cluster-role-binding.js.map +1 -1
- package/dist/factories/kubernetes/rbac/cluster-role.js +2 -2
- package/dist/factories/kubernetes/rbac/cluster-role.js.map +1 -1
- package/dist/factories/kubernetes/rbac/role-binding.js +2 -2
- package/dist/factories/kubernetes/rbac/role-binding.js.map +1 -1
- package/dist/factories/kubernetes/rbac/role.js +2 -2
- package/dist/factories/kubernetes/rbac/role.js.map +1 -1
- package/dist/factories/kubernetes/rbac/service-account.js +2 -2
- package/dist/factories/kubernetes/rbac/service-account.js.map +1 -1
- package/dist/factories/kubernetes/storage/persistent-volume-claim.js +2 -2
- package/dist/factories/kubernetes/storage/persistent-volume.js +4 -4
- package/dist/factories/kubernetes/storage/storage-class.js +2 -2
- package/dist/factories/kubernetes/storage/storage-class.js.map +1 -1
- package/dist/factories/kubernetes/workloads/cron-job.js +5 -5
- package/dist/factories/kubernetes/workloads/daemon-set.js +2 -2
- package/dist/factories/kubernetes/workloads/deployment.d.ts.map +1 -1
- package/dist/factories/kubernetes/workloads/deployment.js +5 -6
- package/dist/factories/kubernetes/workloads/deployment.js.map +1 -1
- package/dist/factories/kubernetes/workloads/job.js +10 -10
- package/dist/factories/kubernetes/workloads/replica-set.js +2 -2
- package/dist/factories/kubernetes/workloads/replication-controller.js +5 -5
- package/dist/factories/kubernetes/workloads/stateful-set.d.ts.map +1 -1
- package/dist/factories/kubernetes/workloads/stateful-set.js +7 -7
- package/dist/factories/kubernetes/workloads/stateful-set.js.map +1 -1
- package/dist/factories/kubernetes/yaml/index.d.ts +1 -1
- package/dist/factories/kubernetes/yaml/index.d.ts.map +1 -1
- package/dist/factories/kubernetes/yaml/index.js +1 -1
- package/dist/factories/kubernetes/yaml/index.js.map +1 -1
- package/dist/factories/kubernetes/yaml/yaml-directory.d.ts +2 -2
- package/dist/factories/kubernetes/yaml/yaml-directory.d.ts.map +1 -1
- package/dist/factories/kubernetes/yaml/yaml-directory.js +106 -101
- package/dist/factories/kubernetes/yaml/yaml-directory.js.map +1 -1
- package/dist/factories/kubernetes/yaml/yaml-file.d.ts +7 -4
- package/dist/factories/kubernetes/yaml/yaml-file.d.ts.map +1 -1
- package/dist/factories/kubernetes/yaml/yaml-file.js +110 -99
- package/dist/factories/kubernetes/yaml/yaml-file.js.map +1 -1
- package/dist/factories/shared.d.ts +49 -0
- package/dist/factories/shared.d.ts.map +1 -1
- package/dist/factories/shared.js +75 -3
- package/dist/factories/shared.js.map +1 -1
- package/dist/factories/simple/autoscaling/horizontal-pod-autoscaler.d.ts +17 -0
- package/dist/factories/simple/autoscaling/horizontal-pod-autoscaler.d.ts.map +1 -0
- package/dist/factories/simple/autoscaling/horizontal-pod-autoscaler.js +46 -0
- package/dist/factories/simple/autoscaling/horizontal-pod-autoscaler.js.map +1 -0
- package/dist/factories/simple/autoscaling/index.d.ts +8 -0
- package/dist/factories/simple/autoscaling/index.d.ts.map +1 -0
- package/dist/factories/simple/autoscaling/index.js +8 -0
- package/dist/factories/simple/autoscaling/index.js.map +1 -0
- package/dist/factories/simple/config/config-map.d.ts +17 -0
- package/dist/factories/simple/config/config-map.d.ts.map +1 -0
- package/dist/factories/simple/config/config-map.js +25 -0
- package/dist/factories/simple/config/config-map.js.map +1 -0
- package/dist/factories/simple/config/index.d.ts +9 -0
- package/dist/factories/simple/config/index.d.ts.map +1 -0
- package/dist/factories/simple/config/index.js +9 -0
- package/dist/factories/simple/config/index.js.map +1 -0
- package/dist/factories/simple/config/secret.d.ts +17 -0
- package/dist/factories/simple/config/secret.d.ts.map +1 -0
- package/dist/factories/simple/config/secret.js +24 -0
- package/dist/factories/simple/config/secret.js.map +1 -0
- package/dist/factories/simple/helm/index.d.ts +16 -0
- package/dist/factories/simple/helm/index.d.ts.map +1 -0
- package/dist/factories/simple/helm/index.js +21 -0
- package/dist/factories/simple/helm/index.js.map +1 -0
- package/dist/factories/simple/index.d.ts +50 -0
- package/dist/factories/simple/index.d.ts.map +1 -0
- package/dist/factories/simple/index.js +58 -0
- package/dist/factories/simple/index.js.map +1 -0
- package/dist/factories/simple/networking/index.d.ts +10 -0
- package/dist/factories/simple/networking/index.d.ts.map +1 -0
- package/dist/factories/simple/networking/index.js +10 -0
- package/dist/factories/simple/networking/index.js.map +1 -0
- package/dist/factories/simple/networking/ingress.d.ts +17 -0
- package/dist/factories/simple/networking/ingress.d.ts.map +1 -0
- package/dist/factories/simple/networking/ingress.js +30 -0
- package/dist/factories/simple/networking/ingress.js.map +1 -0
- package/dist/factories/simple/networking/network-policy.d.ts +17 -0
- package/dist/factories/simple/networking/network-policy.d.ts.map +1 -0
- package/dist/factories/simple/networking/network-policy.js +30 -0
- package/dist/factories/simple/networking/network-policy.js.map +1 -0
- package/dist/factories/simple/networking/service.d.ts +17 -0
- package/dist/factories/simple/networking/service.d.ts.map +1 -0
- package/dist/factories/simple/networking/service.js +27 -0
- package/dist/factories/simple/networking/service.js.map +1 -0
- package/dist/factories/simple/storage/index.d.ts +9 -0
- package/dist/factories/simple/storage/index.d.ts.map +1 -0
- package/dist/factories/simple/storage/index.js +9 -0
- package/dist/factories/simple/storage/index.js.map +1 -0
- package/dist/factories/simple/storage/persistent-volume-claim.d.ts +17 -0
- package/dist/factories/simple/storage/persistent-volume-claim.d.ts.map +1 -0
- package/dist/factories/simple/storage/persistent-volume-claim.js +32 -0
- package/dist/factories/simple/storage/persistent-volume-claim.js.map +1 -0
- package/dist/factories/simple/storage/persistent-volume.d.ts +17 -0
- package/dist/factories/simple/storage/persistent-volume.d.ts.map +1 -0
- package/dist/factories/simple/storage/persistent-volume.js +44 -0
- package/dist/factories/simple/storage/persistent-volume.js.map +1 -0
- package/dist/factories/simple/types.d.ts +165 -0
- package/dist/factories/simple/types.d.ts.map +1 -0
- package/dist/factories/simple/types.js +9 -0
- package/dist/factories/simple/types.js.map +1 -0
- package/dist/factories/simple/workloads/cron-job.d.ts +17 -0
- package/dist/factories/simple/workloads/cron-job.d.ts.map +1 -0
- package/dist/factories/simple/workloads/cron-job.js +43 -0
- package/dist/factories/simple/workloads/cron-job.js.map +1 -0
- package/dist/factories/simple/workloads/daemon-set.d.ts +17 -0
- package/dist/factories/simple/workloads/daemon-set.d.ts.map +1 -0
- package/dist/factories/simple/workloads/daemon-set.js +46 -0
- package/dist/factories/simple/workloads/daemon-set.js.map +1 -0
- package/dist/factories/simple/workloads/deployment.d.ts +17 -0
- package/dist/factories/simple/workloads/deployment.d.ts.map +1 -0
- package/dist/factories/simple/workloads/deployment.js +47 -0
- package/dist/factories/simple/workloads/deployment.js.map +1 -0
- package/dist/factories/simple/workloads/index.d.ts +12 -0
- package/dist/factories/simple/workloads/index.d.ts.map +1 -0
- package/dist/factories/simple/workloads/index.js +12 -0
- package/dist/factories/simple/workloads/index.js.map +1 -0
- package/dist/factories/simple/workloads/job.d.ts +17 -0
- package/dist/factories/simple/workloads/job.d.ts.map +1 -0
- package/dist/factories/simple/workloads/job.js +40 -0
- package/dist/factories/simple/workloads/job.js.map +1 -0
- package/dist/factories/simple/workloads/stateful-set.d.ts +17 -0
- package/dist/factories/simple/workloads/stateful-set.d.ts.map +1 -0
- package/dist/factories/simple/workloads/stateful-set.js +47 -0
- package/dist/factories/simple/workloads/stateful-set.js.map +1 -0
- package/dist/factories/simple/yaml/index.d.ts +13 -0
- package/dist/factories/simple/yaml/index.d.ts.map +1 -0
- package/dist/factories/simple/yaml/index.js +23 -0
- package/dist/factories/simple/yaml/index.js.map +1 -0
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -22
- package/dist/index.js.map +1 -1
- package/dist/utils/helpers.d.ts +1 -1
- package/dist/utils/helpers.d.ts.map +1 -1
- package/dist/utils/helpers.js +53 -7
- package/dist/utils/helpers.js.map +1 -1
- package/dist/utils/index.d.ts +2 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -2
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/type-guards.d.ts +1 -1
- package/dist/utils/type-guards.d.ts.map +1 -1
- package/dist/utils/type-guards.js +3 -9
- package/dist/utils/type-guards.js.map +1 -1
- package/package.json +12 -6
|
@@ -0,0 +1,420 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EventFilter - Server-side and Client-side Event Filtering
|
|
3
|
+
*
|
|
4
|
+
* Provides both server-side field selector generation and client-side
|
|
5
|
+
* filtering for complex relationships that cannot be expressed server-side.
|
|
6
|
+
*/
|
|
7
|
+
import { getComponentLogger } from '../logging/index.js';
|
|
8
|
+
/**
|
|
9
|
+
* Field selector builder for server-side filtering
|
|
10
|
+
*/
|
|
11
|
+
export class FieldSelectorBuilder {
|
|
12
|
+
logger = getComponentLogger('field-selector-builder');
|
|
13
|
+
/**
|
|
14
|
+
* Build field selector for specific resources
|
|
15
|
+
*/
|
|
16
|
+
buildForResources(resources) {
|
|
17
|
+
if (resources.length === 0) {
|
|
18
|
+
return '';
|
|
19
|
+
}
|
|
20
|
+
// Group resources by kind and namespace for efficient filtering
|
|
21
|
+
const resourceGroups = this.groupResourcesByKindAndNamespace(resources);
|
|
22
|
+
const selectors = [];
|
|
23
|
+
for (const [key, resourceList] of resourceGroups) {
|
|
24
|
+
const [kindRaw, namespaceRaw] = key.split('/');
|
|
25
|
+
const kind = kindRaw || 'unknown';
|
|
26
|
+
const namespace = namespaceRaw || 'default';
|
|
27
|
+
const selector = this.buildSelectorForResourceGroup(kind, namespace, resourceList);
|
|
28
|
+
if (selector) {
|
|
29
|
+
selectors.push(selector);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return selectors.join(',');
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Build field selector for resource kinds (broader filtering)
|
|
36
|
+
*/
|
|
37
|
+
buildForResourceKinds(kinds, namespace) {
|
|
38
|
+
const selectors = [];
|
|
39
|
+
for (const kind of kinds) {
|
|
40
|
+
let selector = `involvedObject.kind=${kind}`;
|
|
41
|
+
if (namespace) {
|
|
42
|
+
selector += `,involvedObject.namespace=${namespace}`;
|
|
43
|
+
}
|
|
44
|
+
selectors.push(selector);
|
|
45
|
+
}
|
|
46
|
+
return selectors.join(',');
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Build field selector for time-based filtering
|
|
50
|
+
*/
|
|
51
|
+
buildForTimeRange(startTime, endTime) {
|
|
52
|
+
const selectors = [];
|
|
53
|
+
if (startTime) {
|
|
54
|
+
// Note: Kubernetes doesn't support time-based field selectors directly
|
|
55
|
+
// We'll use resource version for time-based filtering instead
|
|
56
|
+
this.logger.debug('Time-based filtering requires resource version management');
|
|
57
|
+
}
|
|
58
|
+
if (endTime) {
|
|
59
|
+
this.logger.debug('End time filtering not directly supported via field selectors');
|
|
60
|
+
}
|
|
61
|
+
return selectors.join(',');
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Build field selector for event types
|
|
65
|
+
*/
|
|
66
|
+
buildForEventTypes(eventTypes) {
|
|
67
|
+
if (eventTypes.length === 0) {
|
|
68
|
+
return '';
|
|
69
|
+
}
|
|
70
|
+
// Kubernetes field selectors don't support OR operations for the same field
|
|
71
|
+
// So we can't filter by multiple event types server-side efficiently
|
|
72
|
+
// This will need to be done client-side
|
|
73
|
+
this.logger.debug('Event type filtering requires client-side processing for multiple types');
|
|
74
|
+
if (eventTypes.length === 1) {
|
|
75
|
+
return `type=${eventTypes[0]}`;
|
|
76
|
+
}
|
|
77
|
+
return ''; // Multiple types require client-side filtering
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Group resources by kind and namespace
|
|
81
|
+
*/
|
|
82
|
+
groupResourcesByKindAndNamespace(resources) {
|
|
83
|
+
const groups = new Map();
|
|
84
|
+
for (const resource of resources) {
|
|
85
|
+
const key = `${resource.kind}/${resource.namespace || 'default'}`;
|
|
86
|
+
const group = groups.get(key) || [];
|
|
87
|
+
group.push(resource);
|
|
88
|
+
groups.set(key, group);
|
|
89
|
+
}
|
|
90
|
+
return groups;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Build selector for a group of resources of the same kind/namespace
|
|
94
|
+
*/
|
|
95
|
+
buildSelectorForResourceGroup(kind, namespace, resources) {
|
|
96
|
+
const baseSelector = `involvedObject.kind=${kind},involvedObject.namespace=${namespace}`;
|
|
97
|
+
if (resources.length === 1) {
|
|
98
|
+
// Single resource - can filter by name server-side
|
|
99
|
+
return `${baseSelector},involvedObject.name=${resources[0]?.name || 'unknown'}`;
|
|
100
|
+
}
|
|
101
|
+
else if (resources.length <= 5) {
|
|
102
|
+
// Small number of resources - use kind filter and do name filtering client-side
|
|
103
|
+
// This is more efficient than multiple watch connections for small numbers
|
|
104
|
+
return baseSelector;
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
// Large number of resources - use kind filter only
|
|
108
|
+
// Client-side filtering will handle name matching
|
|
109
|
+
return baseSelector;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* EventFilter handles both server-side and client-side event filtering
|
|
115
|
+
*/
|
|
116
|
+
export class EventFilter {
|
|
117
|
+
options;
|
|
118
|
+
logger = getComponentLogger('event-filter');
|
|
119
|
+
fieldSelectorBuilder = new FieldSelectorBuilder();
|
|
120
|
+
deduplicationCache = new Map();
|
|
121
|
+
monitoredResources = new Set();
|
|
122
|
+
constructor(options = {}) {
|
|
123
|
+
this.options = {
|
|
124
|
+
eventTypes: options.eventTypes || ['Warning', 'Error'],
|
|
125
|
+
includeChildResources: options.includeChildResources ?? true,
|
|
126
|
+
deduplicationWindow: options.deduplicationWindow || 60, // 1 minute
|
|
127
|
+
maxEventsPerResource: options.maxEventsPerResource || 100,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Generate server-side field selectors for resources
|
|
132
|
+
*/
|
|
133
|
+
generateFieldSelectors(resources) {
|
|
134
|
+
const resourceIdentifiers = resources
|
|
135
|
+
.filter((r) => r.manifest.metadata?.uid) // Only include resources with UIDs
|
|
136
|
+
.map((r) => ({
|
|
137
|
+
kind: r.kind,
|
|
138
|
+
name: r.name,
|
|
139
|
+
namespace: r.namespace,
|
|
140
|
+
uid: r.manifest.metadata?.uid, // Safe to use ! since we filtered above
|
|
141
|
+
}));
|
|
142
|
+
// Update monitored resources
|
|
143
|
+
this.updateMonitoredResources(resourceIdentifiers);
|
|
144
|
+
// Generate field selectors grouped by namespace and kind
|
|
145
|
+
const selectorsByNamespace = new Map();
|
|
146
|
+
const resourcesByNamespace = this.groupResourcesByNamespace(resourceIdentifiers);
|
|
147
|
+
for (const [namespace, namespaceResources] of resourcesByNamespace) {
|
|
148
|
+
const selector = this.fieldSelectorBuilder.buildForResources(namespaceResources);
|
|
149
|
+
if (selector) {
|
|
150
|
+
selectorsByNamespace.set(namespace, selector);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
this.logger.debug('Generated field selectors', {
|
|
154
|
+
namespaces: Array.from(selectorsByNamespace.keys()),
|
|
155
|
+
totalResources: resourceIdentifiers.length,
|
|
156
|
+
});
|
|
157
|
+
return selectorsByNamespace;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Check if an event is relevant to monitored resources (client-side filtering)
|
|
161
|
+
*/
|
|
162
|
+
isRelevant(event, deployedResources) {
|
|
163
|
+
// Check event type filter
|
|
164
|
+
if (!this.options.eventTypes.includes(event.eventType)) {
|
|
165
|
+
return false;
|
|
166
|
+
}
|
|
167
|
+
// Check if event is for a monitored resource
|
|
168
|
+
const eventResourceId = this.getResourceId(event.involvedObject.kind, event.involvedObject.name, event.involvedObject.namespace);
|
|
169
|
+
if (this.monitoredResources.has(eventResourceId)) {
|
|
170
|
+
return true;
|
|
171
|
+
}
|
|
172
|
+
// Check child resources if enabled
|
|
173
|
+
if (this.options.includeChildResources) {
|
|
174
|
+
return this.isChildResourceEvent(event, deployedResources);
|
|
175
|
+
}
|
|
176
|
+
return false;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Check if event should be deduplicated
|
|
180
|
+
*/
|
|
181
|
+
shouldDeduplicate(event) {
|
|
182
|
+
const deduplicationKey = this.getDeduplicationKey(event);
|
|
183
|
+
const keyString = this.serializeDeduplicationKey(deduplicationKey);
|
|
184
|
+
const now = new Date();
|
|
185
|
+
const existing = this.deduplicationCache.get(keyString);
|
|
186
|
+
if (!existing) {
|
|
187
|
+
// First occurrence - add to cache
|
|
188
|
+
this.deduplicationCache.set(keyString, {
|
|
189
|
+
key: deduplicationKey,
|
|
190
|
+
firstSeen: now,
|
|
191
|
+
lastSeen: now,
|
|
192
|
+
count: 1,
|
|
193
|
+
lastEvent: event,
|
|
194
|
+
});
|
|
195
|
+
return false; // Don't deduplicate first occurrence
|
|
196
|
+
}
|
|
197
|
+
// Check if within deduplication window
|
|
198
|
+
const timeSinceFirst = now.getTime() - existing.firstSeen.getTime();
|
|
199
|
+
const windowMs = this.options.deduplicationWindow * 1000;
|
|
200
|
+
if (timeSinceFirst > windowMs) {
|
|
201
|
+
// Outside window - reset entry
|
|
202
|
+
this.deduplicationCache.set(keyString, {
|
|
203
|
+
key: deduplicationKey,
|
|
204
|
+
firstSeen: now,
|
|
205
|
+
lastSeen: now,
|
|
206
|
+
count: 1,
|
|
207
|
+
lastEvent: event,
|
|
208
|
+
});
|
|
209
|
+
return false;
|
|
210
|
+
}
|
|
211
|
+
// Within window - update entry and deduplicate
|
|
212
|
+
existing.lastSeen = now;
|
|
213
|
+
existing.count++;
|
|
214
|
+
existing.lastEvent = event;
|
|
215
|
+
// Deduplicate if we've seen this event multiple times recently
|
|
216
|
+
return existing.count > 1;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Get event priority for filtering and display
|
|
220
|
+
*/
|
|
221
|
+
getEventPriority(event) {
|
|
222
|
+
// Error events are always high priority
|
|
223
|
+
if (event.eventType === 'Error') {
|
|
224
|
+
return 'high';
|
|
225
|
+
}
|
|
226
|
+
// Warning events are medium priority, but some reasons are high priority
|
|
227
|
+
if (event.eventType === 'Warning') {
|
|
228
|
+
const highPriorityReasons = [
|
|
229
|
+
'Failed',
|
|
230
|
+
'FailedMount',
|
|
231
|
+
'FailedScheduling',
|
|
232
|
+
'FailedCreatePodSandBox',
|
|
233
|
+
'FailedPostStartHook',
|
|
234
|
+
'FailedPreStopHook',
|
|
235
|
+
'Unhealthy',
|
|
236
|
+
'ProbeWarning',
|
|
237
|
+
];
|
|
238
|
+
if (highPriorityReasons.some((reason) => event.reason.includes(reason))) {
|
|
239
|
+
return 'high';
|
|
240
|
+
}
|
|
241
|
+
return 'medium';
|
|
242
|
+
}
|
|
243
|
+
// Normal events are generally low priority
|
|
244
|
+
if (event.eventType === 'Normal') {
|
|
245
|
+
const mediumPriorityReasons = [
|
|
246
|
+
'Scheduled',
|
|
247
|
+
'Pulled',
|
|
248
|
+
'Created',
|
|
249
|
+
'Started',
|
|
250
|
+
'Killing',
|
|
251
|
+
'ScalingReplicaSet',
|
|
252
|
+
];
|
|
253
|
+
if (mediumPriorityReasons.some((reason) => event.reason.includes(reason))) {
|
|
254
|
+
return 'medium';
|
|
255
|
+
}
|
|
256
|
+
return 'low';
|
|
257
|
+
}
|
|
258
|
+
return 'low';
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Discover child resources from owner references
|
|
262
|
+
*/
|
|
263
|
+
async discoverChildResources(parentResource, k8sApi) {
|
|
264
|
+
const childResources = [];
|
|
265
|
+
try {
|
|
266
|
+
// This is a simplified implementation
|
|
267
|
+
// In a full implementation, we would query various resource types
|
|
268
|
+
// and check their ownerReferences to find children
|
|
269
|
+
if (parentResource.kind === 'Deployment') {
|
|
270
|
+
// Find ReplicaSets owned by this Deployment
|
|
271
|
+
const replicaSets = await this.findReplicaSetsForDeployment(parentResource, k8sApi);
|
|
272
|
+
childResources.push(...replicaSets);
|
|
273
|
+
// Find Pods owned by the ReplicaSets
|
|
274
|
+
for (const replicaSet of replicaSets) {
|
|
275
|
+
const pods = await this.findPodsForReplicaSet(replicaSet, k8sApi);
|
|
276
|
+
childResources.push(...pods);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
this.logger.debug('Discovered child resources', {
|
|
280
|
+
parent: `${parentResource.kind}/${parentResource.name}`,
|
|
281
|
+
childCount: childResources.length,
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
catch (error) {
|
|
285
|
+
this.logger.warn('Failed to discover child resources', error);
|
|
286
|
+
}
|
|
287
|
+
return childResources;
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Clean up old deduplication entries
|
|
291
|
+
*/
|
|
292
|
+
cleanupDeduplicationCache() {
|
|
293
|
+
const now = new Date();
|
|
294
|
+
const windowMs = this.options.deduplicationWindow * 1000;
|
|
295
|
+
let cleanedCount = 0;
|
|
296
|
+
for (const [key, entry] of this.deduplicationCache) {
|
|
297
|
+
const age = now.getTime() - entry.lastSeen.getTime();
|
|
298
|
+
if (age > windowMs * 2) {
|
|
299
|
+
// Keep entries for 2x the window
|
|
300
|
+
this.deduplicationCache.delete(key);
|
|
301
|
+
cleanedCount++;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
if (cleanedCount > 0) {
|
|
305
|
+
this.logger.debug('Cleaned up deduplication cache', {
|
|
306
|
+
cleanedEntries: cleanedCount,
|
|
307
|
+
remainingEntries: this.deduplicationCache.size,
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Update monitored resources set
|
|
313
|
+
*/
|
|
314
|
+
updateMonitoredResources(resources) {
|
|
315
|
+
this.monitoredResources.clear();
|
|
316
|
+
for (const resource of resources) {
|
|
317
|
+
const resourceId = this.getResourceId(resource.kind, resource.name, resource.namespace);
|
|
318
|
+
this.monitoredResources.add(resourceId);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Group resources by namespace
|
|
323
|
+
*/
|
|
324
|
+
groupResourcesByNamespace(resources) {
|
|
325
|
+
const groups = new Map();
|
|
326
|
+
for (const resource of resources) {
|
|
327
|
+
const namespace = resource.namespace || 'default';
|
|
328
|
+
const group = groups.get(namespace) || [];
|
|
329
|
+
group.push(resource);
|
|
330
|
+
groups.set(namespace, group);
|
|
331
|
+
}
|
|
332
|
+
return groups;
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Check if event is for a child resource
|
|
336
|
+
*/
|
|
337
|
+
isChildResourceEvent(event, deployedResources) {
|
|
338
|
+
// This is a simplified implementation
|
|
339
|
+
// In practice, we would maintain a comprehensive mapping of parent-child relationships
|
|
340
|
+
// Check if this could be a child resource based on naming patterns
|
|
341
|
+
for (const resource of deployedResources) {
|
|
342
|
+
if (resource.kind === 'Deployment' && event.involvedObject.kind === 'ReplicaSet') {
|
|
343
|
+
// ReplicaSet names typically start with deployment name
|
|
344
|
+
if (event.involvedObject.name.startsWith(`${resource.name}-`)) {
|
|
345
|
+
return true;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
if (resource.kind === 'Deployment' && event.involvedObject.kind === 'Pod') {
|
|
349
|
+
// Pod names typically start with deployment name
|
|
350
|
+
if (event.involvedObject.name.startsWith(`${resource.name}-`)) {
|
|
351
|
+
return true;
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
return false;
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Get deduplication key for event
|
|
359
|
+
*/
|
|
360
|
+
getDeduplicationKey(event) {
|
|
361
|
+
return {
|
|
362
|
+
involvedObjectUid: event.involvedObject.uid || `${event.involvedObject.kind}/${event.involvedObject.name}`,
|
|
363
|
+
reason: event.reason,
|
|
364
|
+
message: event.eventMessage,
|
|
365
|
+
};
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* Serialize deduplication key to string
|
|
369
|
+
*/
|
|
370
|
+
serializeDeduplicationKey(key) {
|
|
371
|
+
return `${key.involvedObjectUid}:${key.reason}:${key.message}`;
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* Get resource identifier string
|
|
375
|
+
*/
|
|
376
|
+
getResourceId(kind, name, namespace) {
|
|
377
|
+
return `${kind}/${name}/${namespace || 'default'}`;
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Find ReplicaSets for a Deployment (simplified implementation)
|
|
381
|
+
*/
|
|
382
|
+
async findReplicaSetsForDeployment(_deployment, _k8sApi) {
|
|
383
|
+
// This would require the Apps API, not Core API
|
|
384
|
+
// For now, return empty array
|
|
385
|
+
// TODO: Implement proper ReplicaSet discovery
|
|
386
|
+
return [];
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* Find Pods for a ReplicaSet (simplified implementation)
|
|
390
|
+
*/
|
|
391
|
+
async findPodsForReplicaSet(replicaSet, k8sApi) {
|
|
392
|
+
try {
|
|
393
|
+
const pods = await k8sApi.listNamespacedPod(replicaSet.namespace || 'default', undefined, // pretty
|
|
394
|
+
undefined, // allowWatchBookmarks
|
|
395
|
+
undefined, // continue
|
|
396
|
+
undefined, // fieldSelector
|
|
397
|
+
`app=${replicaSet.name}` // labelSelector - simplified
|
|
398
|
+
);
|
|
399
|
+
return pods.body.items
|
|
400
|
+
.filter((pod) => pod.metadata?.name && pod.metadata?.namespace && pod.metadata?.uid)
|
|
401
|
+
.map((pod) => ({
|
|
402
|
+
kind: 'Pod',
|
|
403
|
+
name: pod.metadata?.name,
|
|
404
|
+
namespace: pod.metadata?.namespace,
|
|
405
|
+
uid: pod.metadata?.uid,
|
|
406
|
+
}));
|
|
407
|
+
}
|
|
408
|
+
catch (error) {
|
|
409
|
+
this.logger.warn('Failed to find pods for ReplicaSet', error);
|
|
410
|
+
return [];
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
/**
|
|
415
|
+
* Create an EventFilter instance
|
|
416
|
+
*/
|
|
417
|
+
export function createEventFilter(options = {}) {
|
|
418
|
+
return new EventFilter(options);
|
|
419
|
+
}
|
|
420
|
+
//# sourceMappingURL=event-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-filter.js","sourceRoot":"","sources":["../../../src/core/deployment/event-filter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EventMonitor - Kubernetes Events Monitoring with Server-Side Filtering
|
|
3
|
+
*
|
|
4
|
+
* Monitors Kubernetes events related to deployed resources using efficient
|
|
5
|
+
* server-side filtering to minimize network traffic and improve performance.
|
|
6
|
+
*/
|
|
7
|
+
import * as k8s from '@kubernetes/client-node';
|
|
8
|
+
import type { DeployedResource, DeploymentEvent } from '../types/deployment.js';
|
|
9
|
+
/**
|
|
10
|
+
* Configuration options for event monitoring
|
|
11
|
+
*/
|
|
12
|
+
export interface EventMonitoringOptions {
|
|
13
|
+
/** Namespace to monitor events in */
|
|
14
|
+
namespace?: string;
|
|
15
|
+
/** Types of events to monitor */
|
|
16
|
+
eventTypes?: readonly ('Normal' | 'Warning' | 'Error')[] | ('Normal' | 'Warning' | 'Error')[];
|
|
17
|
+
/** Whether to discover and monitor child resources */
|
|
18
|
+
includeChildResources?: boolean;
|
|
19
|
+
/** Start time for filtering events (only events after this time) */
|
|
20
|
+
startTime?: Date;
|
|
21
|
+
/** Progress callback for delivering events */
|
|
22
|
+
progressCallback?: (event: DeploymentEvent) => void;
|
|
23
|
+
/** Maximum number of watch connections per namespace */
|
|
24
|
+
maxWatchConnections?: number;
|
|
25
|
+
/** Timeout for watch connections in seconds */
|
|
26
|
+
watchTimeoutSeconds?: number;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Resource identifier for event filtering
|
|
30
|
+
*/
|
|
31
|
+
export interface ResourceIdentifier {
|
|
32
|
+
kind: string;
|
|
33
|
+
name: string;
|
|
34
|
+
namespace?: string;
|
|
35
|
+
uid?: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Resource relationship tracking
|
|
39
|
+
*/
|
|
40
|
+
export interface ResourceRelationship {
|
|
41
|
+
parent: ResourceIdentifier;
|
|
42
|
+
children: ResourceIdentifier[];
|
|
43
|
+
discoveredAt: Date;
|
|
44
|
+
relationshipType: 'owns' | 'creates' | 'manages';
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Child resource discovered event
|
|
48
|
+
*/
|
|
49
|
+
export interface ChildResourceDiscoveredEvent extends DeploymentEvent {
|
|
50
|
+
type: 'child-resource-discovered';
|
|
51
|
+
parentResource: ResourceIdentifier;
|
|
52
|
+
childResource: ResourceIdentifier;
|
|
53
|
+
relationshipType: 'owns' | 'creates' | 'manages';
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Kubernetes event extended with additional metadata
|
|
57
|
+
*/
|
|
58
|
+
export interface KubernetesEventData extends DeploymentEvent {
|
|
59
|
+
type: 'kubernetes-event';
|
|
60
|
+
eventType: 'Normal' | 'Warning' | 'Error';
|
|
61
|
+
reason: string;
|
|
62
|
+
source: {
|
|
63
|
+
component: string;
|
|
64
|
+
host?: string | undefined;
|
|
65
|
+
};
|
|
66
|
+
involvedObject: {
|
|
67
|
+
kind: string;
|
|
68
|
+
name: string;
|
|
69
|
+
namespace?: string | undefined;
|
|
70
|
+
uid?: string | undefined;
|
|
71
|
+
};
|
|
72
|
+
count?: number;
|
|
73
|
+
firstTimestamp?: Date;
|
|
74
|
+
lastTimestamp?: Date;
|
|
75
|
+
eventMessage: string;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* EventMonitor manages Kubernetes event watching with server-side filtering
|
|
79
|
+
*/
|
|
80
|
+
export declare class EventMonitor {
|
|
81
|
+
private k8sApi;
|
|
82
|
+
private kubeConfig;
|
|
83
|
+
private watchConnections;
|
|
84
|
+
private monitoredResources;
|
|
85
|
+
private resourceRelationships;
|
|
86
|
+
private childDiscoveryInProgress;
|
|
87
|
+
private options;
|
|
88
|
+
private logger;
|
|
89
|
+
private isMonitoring;
|
|
90
|
+
private startResourceVersion?;
|
|
91
|
+
private eventsProcessed;
|
|
92
|
+
private appsApi;
|
|
93
|
+
private watchFactory;
|
|
94
|
+
constructor(k8sApi: k8s.CoreV1Api, kubeConfig: k8s.KubeConfig, options?: EventMonitoringOptions, watchFactory?: (config: k8s.KubeConfig) => k8s.Watch);
|
|
95
|
+
/**
|
|
96
|
+
* Start monitoring events for deployed resources
|
|
97
|
+
*/
|
|
98
|
+
startMonitoring(deployedResources: DeployedResource[]): Promise<void>;
|
|
99
|
+
/**
|
|
100
|
+
* Stop monitoring and clean up all watch connections
|
|
101
|
+
*/
|
|
102
|
+
stopMonitoring(): Promise<void>;
|
|
103
|
+
/**
|
|
104
|
+
* Add a resource to monitoring
|
|
105
|
+
*/
|
|
106
|
+
addResource(resource: DeployedResource): Promise<void>;
|
|
107
|
+
/**
|
|
108
|
+
* Remove a resource from monitoring
|
|
109
|
+
*/
|
|
110
|
+
removeResource(resource: DeployedResource): Promise<void>;
|
|
111
|
+
/**
|
|
112
|
+
* Add additional resources to monitor (for child resource discovery)
|
|
113
|
+
*/
|
|
114
|
+
addResources(resources: DeployedResource[]): Promise<void>;
|
|
115
|
+
/**
|
|
116
|
+
* Discover and monitor child resources created by parent resources
|
|
117
|
+
*/
|
|
118
|
+
discoverChildResources(parentResource: DeployedResource): Promise<void>;
|
|
119
|
+
/**
|
|
120
|
+
* Find child resources using owner references
|
|
121
|
+
*/
|
|
122
|
+
private findChildResources;
|
|
123
|
+
/**
|
|
124
|
+
* List resources with specific owner reference
|
|
125
|
+
*/
|
|
126
|
+
private listResourcesWithOwnerReference;
|
|
127
|
+
/**
|
|
128
|
+
* Get potential child resource types for a parent resource kind
|
|
129
|
+
*/
|
|
130
|
+
private getChildResourceTypes;
|
|
131
|
+
/**
|
|
132
|
+
* Determine relationship type based on parent resource kind
|
|
133
|
+
*/
|
|
134
|
+
private determineRelationshipType;
|
|
135
|
+
/**
|
|
136
|
+
* Get API version for a resource kind
|
|
137
|
+
*/
|
|
138
|
+
private getApiVersionForKind;
|
|
139
|
+
/**
|
|
140
|
+
* Ensure a watch connection exists for the given resource
|
|
141
|
+
*/
|
|
142
|
+
private ensureWatchConnection;
|
|
143
|
+
/**
|
|
144
|
+
* Create a new watch connection for a resource kind/namespace combination
|
|
145
|
+
*/
|
|
146
|
+
private createWatchConnection;
|
|
147
|
+
/**
|
|
148
|
+
* Start a watch connection
|
|
149
|
+
*/
|
|
150
|
+
private startWatchConnection;
|
|
151
|
+
/**
|
|
152
|
+
* Handle watch events
|
|
153
|
+
*/
|
|
154
|
+
private handleWatchEvent;
|
|
155
|
+
/**
|
|
156
|
+
* Handle watch errors
|
|
157
|
+
*/
|
|
158
|
+
private handleWatchError;
|
|
159
|
+
/**
|
|
160
|
+
* Update watch connection when resources are added/removed
|
|
161
|
+
*/
|
|
162
|
+
private updateWatchConnection;
|
|
163
|
+
/**
|
|
164
|
+
* Update the field selector for a connection
|
|
165
|
+
*/
|
|
166
|
+
private updateConnectionFieldSelector;
|
|
167
|
+
/**
|
|
168
|
+
* Create a namespace-wide watch connection to capture all events
|
|
169
|
+
* This is used when starting monitoring without specific resources
|
|
170
|
+
*/
|
|
171
|
+
private createNamespaceWideWatchConnection;
|
|
172
|
+
/**
|
|
173
|
+
* Build field selector for resources
|
|
174
|
+
*/
|
|
175
|
+
private buildFieldSelector;
|
|
176
|
+
/**
|
|
177
|
+
* Convert Kubernetes event to our event format
|
|
178
|
+
*/
|
|
179
|
+
private convertToKubernetesEvent;
|
|
180
|
+
/**
|
|
181
|
+
* Get resource version for time-based filtering
|
|
182
|
+
*/
|
|
183
|
+
private getResourceVersionForTime;
|
|
184
|
+
/**
|
|
185
|
+
* Get unique resource identifier
|
|
186
|
+
*/
|
|
187
|
+
private getResourceId;
|
|
188
|
+
/**
|
|
189
|
+
* Get connection key for watch connection pooling
|
|
190
|
+
*/
|
|
191
|
+
private getConnectionKey;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Create an EventMonitor instance
|
|
195
|
+
*/
|
|
196
|
+
export declare function createEventMonitor(kubeConfig: k8s.KubeConfig, options?: EventMonitoringOptions, watchFactory?: (config: k8s.KubeConfig) => k8s.Watch): EventMonitor;
|
|
197
|
+
//# sourceMappingURL=event-monitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-monitor.d.ts","sourceRoot":"","sources":["../../../src/core/deployment/event-monitor.ts"],"names":[],"mappings":"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"}
|