typekro 0.5.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/compositions/typekro-runtime/typekro-runtime.d.ts +1 -1
- package/dist/compositions/typekro-runtime/typekro-runtime.d.ts.map +1 -1
- package/dist/compositions/typekro-runtime/typekro-runtime.js +16 -2
- package/dist/compositions/typekro-runtime/typekro-runtime.js.map +1 -1
- package/dist/core/composition/context.d.ts +14 -0
- package/dist/core/composition/context.d.ts.map +1 -1
- package/dist/core/composition/context.js.map +1 -1
- package/dist/core/composition/imperative.d.ts.map +1 -1
- package/dist/core/composition/imperative.js +59 -30
- package/dist/core/composition/imperative.js.map +1 -1
- package/dist/core/composition/nested-status-cel.d.ts +50 -0
- package/dist/core/composition/nested-status-cel.d.ts.map +1 -0
- package/dist/core/composition/nested-status-cel.js +169 -0
- package/dist/core/composition/nested-status-cel.js.map +1 -0
- package/dist/core/constants/brands.d.ts +1 -1
- package/dist/core/constants/brands.d.ts.map +1 -1
- package/dist/core/constants/brands.js +1 -1
- package/dist/core/constants/brands.js.map +1 -1
- package/dist/core/containers/build.d.ts +50 -0
- package/dist/core/containers/build.d.ts.map +1 -0
- package/dist/core/containers/build.js +146 -0
- package/dist/core/containers/build.js.map +1 -0
- package/dist/core/containers/errors.d.ts +14 -0
- package/dist/core/containers/errors.d.ts.map +1 -0
- package/dist/core/containers/errors.js +48 -0
- package/dist/core/containers/errors.js.map +1 -0
- package/dist/core/containers/exec.d.ts +36 -0
- package/dist/core/containers/exec.d.ts.map +1 -0
- package/dist/core/containers/exec.js +110 -0
- package/dist/core/containers/exec.js.map +1 -0
- package/dist/core/containers/index.d.ts +21 -0
- package/dist/core/containers/index.d.ts.map +1 -0
- package/dist/core/containers/index.js +20 -0
- package/dist/core/containers/index.js.map +1 -0
- package/dist/core/containers/registries/ecr.d.ts +22 -0
- package/dist/core/containers/registries/ecr.d.ts.map +1 -0
- package/dist/core/containers/registries/ecr.js +118 -0
- package/dist/core/containers/registries/ecr.js.map +1 -0
- package/dist/core/containers/registries/index.d.ts +9 -0
- package/dist/core/containers/registries/index.d.ts.map +1 -0
- package/dist/core/containers/registries/index.js +23 -0
- package/dist/core/containers/registries/index.js.map +1 -0
- package/dist/core/containers/registries/orbstack.d.ts +14 -0
- package/dist/core/containers/registries/orbstack.d.ts.map +1 -0
- package/dist/core/containers/registries/orbstack.js +24 -0
- package/dist/core/containers/registries/orbstack.js.map +1 -0
- package/dist/core/containers/registries/types.d.ts +94 -0
- package/dist/core/containers/registries/types.d.ts.map +1 -0
- package/dist/core/containers/registries/types.js +11 -0
- package/dist/core/containers/registries/types.js.map +1 -0
- package/dist/core/dependencies/graph.d.ts +4 -0
- package/dist/core/dependencies/graph.d.ts.map +1 -1
- package/dist/core/dependencies/graph.js +6 -0
- package/dist/core/dependencies/graph.js.map +1 -1
- package/dist/core/dependencies/resolver.d.ts +28 -0
- package/dist/core/dependencies/resolver.d.ts.map +1 -1
- package/dist/core/dependencies/resolver.js +138 -5
- package/dist/core/dependencies/resolver.js.map +1 -1
- package/dist/core/deployment/direct-factory.d.ts +13 -0
- package/dist/core/deployment/direct-factory.d.ts.map +1 -1
- package/dist/core/deployment/direct-factory.js +99 -0
- package/dist/core/deployment/direct-factory.js.map +1 -1
- package/dist/core/deployment/engine.d.ts.map +1 -1
- package/dist/core/deployment/engine.js +45 -2
- package/dist/core/deployment/engine.js.map +1 -1
- package/dist/core/deployment/kro-factory.d.ts +28 -0
- package/dist/core/deployment/kro-factory.d.ts.map +1 -1
- package/dist/core/deployment/kro-factory.js +243 -13
- package/dist/core/deployment/kro-factory.js.map +1 -1
- package/dist/core/deployment/kro-readiness.d.ts.map +1 -1
- package/dist/core/deployment/kro-readiness.js +10 -1
- package/dist/core/deployment/kro-readiness.js.map +1 -1
- package/dist/core/deployment/nested-composition-status.d.ts +33 -0
- package/dist/core/deployment/nested-composition-status.d.ts.map +1 -0
- package/dist/core/deployment/nested-composition-status.js +101 -0
- package/dist/core/deployment/nested-composition-status.js.map +1 -0
- package/dist/core/deployment/readiness-waiter.d.ts.map +1 -1
- package/dist/core/deployment/readiness-waiter.js +23 -6
- package/dist/core/deployment/readiness-waiter.js.map +1 -1
- package/dist/core/deployment/rollback-manager.d.ts.map +1 -1
- package/dist/core/deployment/rollback-manager.js +19 -0
- package/dist/core/deployment/rollback-manager.js.map +1 -1
- package/dist/core/deployment/strategies/direct-strategy.d.ts +6 -0
- package/dist/core/deployment/strategies/direct-strategy.d.ts.map +1 -1
- package/dist/core/deployment/strategies/direct-strategy.js +133 -35
- package/dist/core/deployment/strategies/direct-strategy.js.map +1 -1
- package/dist/core/expressions/composition/composition-analyzer-helpers.d.ts +8 -2
- package/dist/core/expressions/composition/composition-analyzer-helpers.d.ts.map +1 -1
- package/dist/core/expressions/composition/composition-analyzer-helpers.js +34 -2
- package/dist/core/expressions/composition/composition-analyzer-helpers.js.map +1 -1
- package/dist/core/expressions/composition/composition-analyzer-ternary.d.ts.map +1 -1
- package/dist/core/expressions/composition/composition-analyzer-ternary.js +52 -28
- package/dist/core/expressions/composition/composition-analyzer-ternary.js.map +1 -1
- package/dist/core/expressions/composition/composition-analyzer-traversal.d.ts.map +1 -1
- package/dist/core/expressions/composition/composition-analyzer-traversal.js +11 -4
- package/dist/core/expressions/composition/composition-analyzer-traversal.js.map +1 -1
- package/dist/core/expressions/composition/composition-analyzer-types.d.ts +8 -0
- package/dist/core/expressions/composition/composition-analyzer-types.d.ts.map +1 -1
- package/dist/core/expressions/composition/composition-analyzer.d.ts +1 -1
- package/dist/core/expressions/composition/composition-analyzer.d.ts.map +1 -1
- package/dist/core/expressions/composition/composition-analyzer.js +8 -2
- package/dist/core/expressions/composition/composition-analyzer.js.map +1 -1
- package/dist/core/expressions/composition/imperative-analyzer.d.ts +8 -0
- package/dist/core/expressions/composition/imperative-analyzer.d.ts.map +1 -1
- package/dist/core/expressions/composition/imperative-analyzer.js +111 -16
- package/dist/core/expressions/composition/imperative-analyzer.js.map +1 -1
- package/dist/core/metadata/resource-metadata.d.ts +4 -0
- package/dist/core/metadata/resource-metadata.d.ts.map +1 -1
- package/dist/core/metadata/resource-metadata.js.map +1 -1
- package/dist/core/proxy/create-resource.d.ts.map +1 -1
- package/dist/core/proxy/create-resource.js +63 -21
- package/dist/core/proxy/create-resource.js.map +1 -1
- package/dist/core/references/cel.d.ts +48 -0
- package/dist/core/references/cel.d.ts.map +1 -1
- package/dist/core/references/cel.js +82 -0
- package/dist/core/references/cel.js.map +1 -1
- package/dist/core/references/external-refs.d.ts +2 -0
- package/dist/core/references/external-refs.d.ts.map +1 -1
- package/dist/core/references/external-refs.js +3 -0
- package/dist/core/references/external-refs.js.map +1 -1
- package/dist/core/references/resolver.d.ts +12 -4
- package/dist/core/references/resolver.d.ts.map +1 -1
- package/dist/core/references/resolver.js +152 -69
- 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 +5 -4
- package/dist/core/references/schema-proxy.js.map +1 -1
- package/dist/core/serialization/cel-references.d.ts +1 -1
- package/dist/core/serialization/cel-references.d.ts.map +1 -1
- package/dist/core/serialization/cel-references.js +191 -24
- package/dist/core/serialization/cel-references.js.map +1 -1
- package/dist/core/serialization/core.d.ts +8 -1
- package/dist/core/serialization/core.d.ts.map +1 -1
- package/dist/core/serialization/core.js +434 -7
- package/dist/core/serialization/core.js.map +1 -1
- package/dist/core/serialization/kro-post-processing.d.ts +46 -0
- package/dist/core/serialization/kro-post-processing.d.ts.map +1 -0
- package/dist/core/serialization/kro-post-processing.js +103 -0
- package/dist/core/serialization/kro-post-processing.js.map +1 -0
- package/dist/core/serialization/schema.d.ts +61 -3
- package/dist/core/serialization/schema.d.ts.map +1 -1
- package/dist/core/serialization/schema.js +520 -18
- package/dist/core/serialization/schema.js.map +1 -1
- package/dist/core/serialization/status-analysis-pipeline.d.ts +4 -0
- package/dist/core/serialization/status-analysis-pipeline.d.ts.map +1 -1
- package/dist/core/serialization/status-analysis-pipeline.js +127 -10
- package/dist/core/serialization/status-analysis-pipeline.js.map +1 -1
- package/dist/core/serialization/yaml.d.ts.map +1 -1
- package/dist/core/serialization/yaml.js +27 -4
- package/dist/core/serialization/yaml.js.map +1 -1
- package/dist/core/types/composable.d.ts +62 -0
- package/dist/core/types/composable.d.ts.map +1 -0
- package/dist/core/types/composable.js +51 -0
- package/dist/core/types/composable.js.map +1 -0
- package/dist/core/types/deployment.d.ts +2 -1
- package/dist/core/types/deployment.d.ts.map +1 -1
- package/dist/core/types/index.d.ts +1 -0
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/index.js +1 -0
- package/dist/core/types/index.js.map +1 -1
- package/dist/core/types/serialization.d.ts +40 -1
- 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 +55 -31
- package/dist/core/validation/cel-validator.js.map +1 -1
- package/dist/factories/cnpg/compositions/cnpg-bootstrap.d.ts +55 -0
- package/dist/factories/cnpg/compositions/cnpg-bootstrap.d.ts.map +1 -0
- package/dist/factories/cnpg/compositions/cnpg-bootstrap.js +92 -0
- package/dist/factories/cnpg/compositions/cnpg-bootstrap.js.map +1 -0
- package/dist/factories/cnpg/compositions/index.d.ts +2 -0
- package/dist/factories/cnpg/compositions/index.d.ts.map +1 -0
- package/dist/factories/cnpg/compositions/index.js +2 -0
- package/dist/factories/cnpg/compositions/index.js.map +1 -0
- package/dist/factories/cnpg/index.d.ts +42 -0
- package/dist/factories/cnpg/index.d.ts.map +1 -0
- package/dist/factories/cnpg/index.js +42 -0
- package/dist/factories/cnpg/index.js.map +1 -0
- package/dist/factories/cnpg/resources/backup.d.ts +34 -0
- package/dist/factories/cnpg/resources/backup.d.ts.map +1 -0
- package/dist/factories/cnpg/resources/backup.js +87 -0
- package/dist/factories/cnpg/resources/backup.js.map +1 -0
- package/dist/factories/cnpg/resources/cluster.d.ts +55 -0
- package/dist/factories/cnpg/resources/cluster.d.ts.map +1 -0
- package/dist/factories/cnpg/resources/cluster.js +123 -0
- package/dist/factories/cnpg/resources/cluster.js.map +1 -0
- package/dist/factories/cnpg/resources/helm.d.ts +45 -0
- package/dist/factories/cnpg/resources/helm.d.ts.map +1 -0
- package/dist/factories/cnpg/resources/helm.js +78 -0
- package/dist/factories/cnpg/resources/helm.js.map +1 -0
- package/dist/factories/cnpg/resources/index.d.ts +6 -0
- package/dist/factories/cnpg/resources/index.d.ts.map +1 -0
- package/dist/factories/cnpg/resources/index.js +6 -0
- package/dist/factories/cnpg/resources/index.js.map +1 -0
- package/dist/factories/cnpg/resources/pooler.d.ts +38 -0
- package/dist/factories/cnpg/resources/pooler.d.ts.map +1 -0
- package/dist/factories/cnpg/resources/pooler.js +97 -0
- package/dist/factories/cnpg/resources/pooler.js.map +1 -0
- package/dist/factories/cnpg/resources/scheduled-backup.d.ts +35 -0
- package/dist/factories/cnpg/resources/scheduled-backup.d.ts.map +1 -0
- package/dist/factories/cnpg/resources/scheduled-backup.js +68 -0
- package/dist/factories/cnpg/resources/scheduled-backup.js.map +1 -0
- package/dist/factories/cnpg/types.d.ts +507 -0
- package/dist/factories/cnpg/types.d.ts.map +1 -0
- package/dist/factories/cnpg/types.js +398 -0
- package/dist/factories/cnpg/types.js.map +1 -0
- package/dist/factories/cnpg/utils/helm-values-mapper.d.ts +70 -0
- package/dist/factories/cnpg/utils/helm-values-mapper.d.ts.map +1 -0
- package/dist/factories/cnpg/utils/helm-values-mapper.js +79 -0
- package/dist/factories/cnpg/utils/helm-values-mapper.js.map +1 -0
- package/dist/factories/cnpg/utils/index.d.ts +2 -0
- package/dist/factories/cnpg/utils/index.d.ts.map +1 -0
- package/dist/factories/cnpg/utils/index.js +2 -0
- package/dist/factories/cnpg/utils/index.js.map +1 -0
- package/dist/factories/helm/helm-release.d.ts.map +1 -1
- package/dist/factories/helm/helm-release.js +4 -0
- package/dist/factories/helm/helm-release.js.map +1 -1
- package/dist/factories/helm/types.d.ts +2 -0
- package/dist/factories/helm/types.d.ts.map +1 -1
- package/dist/factories/inngest/compositions/index.d.ts +2 -0
- package/dist/factories/inngest/compositions/index.d.ts.map +1 -0
- package/dist/factories/inngest/compositions/index.js +2 -0
- package/dist/factories/inngest/compositions/index.js.map +1 -0
- package/dist/factories/inngest/compositions/inngest-bootstrap.d.ts +150 -0
- package/dist/factories/inngest/compositions/inngest-bootstrap.d.ts.map +1 -0
- package/dist/factories/inngest/compositions/inngest-bootstrap.js +90 -0
- package/dist/factories/inngest/compositions/inngest-bootstrap.js.map +1 -0
- package/dist/factories/inngest/index.d.ts +45 -0
- package/dist/factories/inngest/index.d.ts.map +1 -0
- package/dist/factories/inngest/index.js +45 -0
- package/dist/factories/inngest/index.js.map +1 -0
- package/dist/factories/inngest/resources/helm.d.ts +53 -0
- package/dist/factories/inngest/resources/helm.d.ts.map +1 -0
- package/dist/factories/inngest/resources/helm.js +88 -0
- package/dist/factories/inngest/resources/helm.js.map +1 -0
- package/dist/factories/inngest/resources/index.d.ts +2 -0
- package/dist/factories/inngest/resources/index.d.ts.map +1 -0
- package/dist/factories/inngest/resources/index.js +2 -0
- package/dist/factories/inngest/resources/index.js.map +1 -0
- package/dist/factories/inngest/types.d.ts +177 -0
- package/dist/factories/inngest/types.d.ts.map +1 -0
- package/dist/factories/inngest/types.js +189 -0
- package/dist/factories/inngest/types.js.map +1 -0
- package/dist/factories/inngest/utils/helm-values-mapper.d.ts +127 -0
- package/dist/factories/inngest/utils/helm-values-mapper.d.ts.map +1 -0
- package/dist/factories/inngest/utils/helm-values-mapper.js +116 -0
- package/dist/factories/inngest/utils/helm-values-mapper.js.map +1 -0
- package/dist/factories/inngest/utils/index.d.ts +2 -0
- package/dist/factories/inngest/utils/index.d.ts.map +1 -0
- package/dist/factories/inngest/utils/index.js +2 -0
- package/dist/factories/inngest/utils/index.js.map +1 -0
- package/dist/factories/kubernetes/config/secret.d.ts.map +1 -1
- package/dist/factories/kubernetes/config/secret.js +11 -1
- package/dist/factories/kubernetes/config/secret.js.map +1 -1
- package/dist/factories/kubernetes/core/namespace.d.ts.map +1 -1
- package/dist/factories/kubernetes/core/namespace.js +1 -1
- package/dist/factories/kubernetes/core/namespace.js.map +1 -1
- package/dist/factories/searxng/compositions/index.d.ts +2 -0
- package/dist/factories/searxng/compositions/index.d.ts.map +1 -0
- package/dist/factories/searxng/compositions/index.js +2 -0
- package/dist/factories/searxng/compositions/index.js.map +1 -0
- package/dist/factories/searxng/compositions/searxng-bootstrap.d.ts +65 -0
- package/dist/factories/searxng/compositions/searxng-bootstrap.d.ts.map +1 -0
- package/dist/factories/searxng/compositions/searxng-bootstrap.js +237 -0
- package/dist/factories/searxng/compositions/searxng-bootstrap.js.map +1 -0
- package/dist/factories/searxng/index.d.ts +29 -0
- package/dist/factories/searxng/index.d.ts.map +1 -0
- package/dist/factories/searxng/index.js +27 -0
- package/dist/factories/searxng/index.js.map +1 -0
- package/dist/factories/searxng/resources/index.d.ts +2 -0
- package/dist/factories/searxng/resources/index.d.ts.map +1 -0
- package/dist/factories/searxng/resources/index.js +2 -0
- package/dist/factories/searxng/resources/index.js.map +1 -0
- package/dist/factories/searxng/resources/searxng.d.ts +65 -0
- package/dist/factories/searxng/resources/searxng.d.ts.map +1 -0
- package/dist/factories/searxng/resources/searxng.js +188 -0
- package/dist/factories/searxng/resources/searxng.js.map +1 -0
- package/dist/factories/searxng/types.d.ts +126 -0
- package/dist/factories/searxng/types.d.ts.map +1 -0
- package/dist/factories/searxng/types.js +176 -0
- package/dist/factories/searxng/types.js.map +1 -0
- package/dist/factories/searxng/utils/settings-builder.d.ts +46 -0
- package/dist/factories/searxng/utils/settings-builder.d.ts.map +1 -0
- package/dist/factories/searxng/utils/settings-builder.js +52 -0
- package/dist/factories/searxng/utils/settings-builder.js.map +1 -0
- package/dist/factories/simple/config/secret.d.ts.map +1 -1
- package/dist/factories/simple/config/secret.js +28 -0
- package/dist/factories/simple/config/secret.js.map +1 -1
- package/dist/factories/valkey/compositions/index.d.ts +2 -0
- package/dist/factories/valkey/compositions/index.d.ts.map +1 -0
- package/dist/factories/valkey/compositions/index.js +2 -0
- package/dist/factories/valkey/compositions/index.js.map +1 -0
- package/dist/factories/valkey/compositions/valkey-bootstrap.d.ts +41 -0
- package/dist/factories/valkey/compositions/valkey-bootstrap.d.ts.map +1 -0
- package/dist/factories/valkey/compositions/valkey-bootstrap.js +105 -0
- package/dist/factories/valkey/compositions/valkey-bootstrap.js.map +1 -0
- package/dist/factories/valkey/index.d.ts +50 -0
- package/dist/factories/valkey/index.d.ts.map +1 -0
- package/dist/factories/valkey/index.js +50 -0
- package/dist/factories/valkey/index.js.map +1 -0
- package/dist/factories/valkey/resources/helm.d.ts +53 -0
- package/dist/factories/valkey/resources/helm.d.ts.map +1 -0
- package/dist/factories/valkey/resources/helm.js +82 -0
- package/dist/factories/valkey/resources/helm.js.map +1 -0
- package/dist/factories/valkey/resources/index.d.ts +3 -0
- package/dist/factories/valkey/resources/index.d.ts.map +1 -0
- package/dist/factories/valkey/resources/index.js +3 -0
- package/dist/factories/valkey/resources/index.js.map +1 -0
- package/dist/factories/valkey/resources/valkey.d.ts +46 -0
- package/dist/factories/valkey/resources/valkey.d.ts.map +1 -0
- package/dist/factories/valkey/resources/valkey.js +123 -0
- package/dist/factories/valkey/resources/valkey.js.map +1 -0
- package/dist/factories/valkey/types.d.ts +185 -0
- package/dist/factories/valkey/types.d.ts.map +1 -0
- package/dist/factories/valkey/types.js +204 -0
- package/dist/factories/valkey/types.js.map +1 -0
- package/dist/factories/valkey/utils/helm-values-mapper.d.ts +32 -0
- package/dist/factories/valkey/utils/helm-values-mapper.d.ts.map +1 -0
- package/dist/factories/valkey/utils/helm-values-mapper.js +58 -0
- package/dist/factories/valkey/utils/helm-values-mapper.js.map +1 -0
- package/dist/factories/valkey/utils/index.d.ts +2 -0
- package/dist/factories/valkey/utils/index.d.ts.map +1 -0
- package/dist/factories/valkey/utils/index.js +2 -0
- package/dist/factories/valkey/utils/index.js.map +1 -0
- package/dist/factories/webapp/compositions/index.d.ts +2 -0
- package/dist/factories/webapp/compositions/index.d.ts.map +1 -0
- package/dist/factories/webapp/compositions/index.js +2 -0
- package/dist/factories/webapp/compositions/index.js.map +1 -0
- package/dist/factories/webapp/compositions/web-app-with-processing.d.ts +97 -0
- package/dist/factories/webapp/compositions/web-app-with-processing.d.ts.map +1 -0
- package/dist/factories/webapp/compositions/web-app-with-processing.js +220 -0
- package/dist/factories/webapp/compositions/web-app-with-processing.js.map +1 -0
- package/dist/factories/webapp/index.d.ts +53 -0
- package/dist/factories/webapp/index.d.ts.map +1 -0
- package/dist/factories/webapp/index.js +53 -0
- package/dist/factories/webapp/index.js.map +1 -0
- package/dist/factories/webapp/types.d.ts +69 -0
- package/dist/factories/webapp/types.d.ts.map +1 -0
- package/dist/factories/webapp/types.js +92 -0
- package/dist/factories/webapp/types.js.map +1 -0
- package/dist/shared/brands.d.ts +16 -0
- package/dist/shared/brands.d.ts.map +1 -1
- package/dist/shared/brands.js +16 -0
- package/dist/shared/brands.js.map +1 -1
- package/package.json +29 -1
|
@@ -131,6 +131,86 @@ function join(...parts) {
|
|
|
131
131
|
function conditional(condition, trueValue, falseValue) {
|
|
132
132
|
return expr(condition, ' ? ', trueValue, ' : ', falseValue);
|
|
133
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* Creates a CEL `has(path)` expression for checking whether an optional
|
|
136
|
+
* schema or resource field is present.
|
|
137
|
+
*
|
|
138
|
+
* Use this in `includeWhen`, `readyWhen`, and other conditional contexts
|
|
139
|
+
* where you need to test whether a user provided an optional spec field.
|
|
140
|
+
* In KRO mode, the result is emitted as `has(schema.spec.X)` (or
|
|
141
|
+
* `has(resources.X.Y)`); in direct mode, the caller should use native
|
|
142
|
+
* JavaScript truthiness checks instead — this helper is only meaningful
|
|
143
|
+
* when the argument is a KubernetesRef proxy.
|
|
144
|
+
*
|
|
145
|
+
* @example
|
|
146
|
+
* ```typescript
|
|
147
|
+
* // Create a Secret only when the user did NOT provide an external ref
|
|
148
|
+
* setIncludeWhen(autoSecret, [Cel.not(Cel.has(spec.externalSecretRef))]);
|
|
149
|
+
*
|
|
150
|
+
* // Branch a field value on whether an optional field is present
|
|
151
|
+
* valueFrom: {
|
|
152
|
+
* secretKeyRef: {
|
|
153
|
+
* name: Cel.conditional(
|
|
154
|
+
* Cel.has(spec.externalSecretRef),
|
|
155
|
+
* spec.externalSecretRef.name,
|
|
156
|
+
* Cel.str(spec.name, '-secret')
|
|
157
|
+
* ),
|
|
158
|
+
* },
|
|
159
|
+
* }
|
|
160
|
+
* ```
|
|
161
|
+
*/
|
|
162
|
+
function has(ref) {
|
|
163
|
+
if (isKubernetesRef(ref)) {
|
|
164
|
+
return {
|
|
165
|
+
[CEL_EXPRESSION_BRAND]: true,
|
|
166
|
+
expression: `has(${getInnerCelPath(ref)})`,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
if (isCelExpression(ref)) {
|
|
170
|
+
return {
|
|
171
|
+
[CEL_EXPRESSION_BRAND]: true,
|
|
172
|
+
expression: `has(${ref.expression})`,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
throw new Error('Cel.has() requires a KubernetesRef or CelExpression argument. Direct-mode callers should use native JavaScript truthiness checks instead.');
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Negate a CEL boolean expression or a KubernetesRef.
|
|
179
|
+
*
|
|
180
|
+
* When passed a bare KubernetesRef, this is equivalent to
|
|
181
|
+
* `!has(path)` — i.e., "the optional field is NOT set". This is the
|
|
182
|
+
* natural read for conditions like "create this resource only when the
|
|
183
|
+
* user didn't provide X".
|
|
184
|
+
*
|
|
185
|
+
* When passed a CelExpression, it produces `!(expression)`.
|
|
186
|
+
*
|
|
187
|
+
* @example
|
|
188
|
+
* ```typescript
|
|
189
|
+
* // Create the auto-Secret only when the user hasn't provided an external one
|
|
190
|
+
* setIncludeWhen(autoSecret, [Cel.not(spec.externalSecretRef)]);
|
|
191
|
+
* ```
|
|
192
|
+
*/
|
|
193
|
+
function not(operand) {
|
|
194
|
+
if (isKubernetesRef(operand)) {
|
|
195
|
+
return {
|
|
196
|
+
[CEL_EXPRESSION_BRAND]: true,
|
|
197
|
+
expression: `!has(${getInnerCelPath(operand)})`,
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
if (isCelExpression(operand)) {
|
|
201
|
+
return {
|
|
202
|
+
[CEL_EXPRESSION_BRAND]: true,
|
|
203
|
+
expression: `!(${operand.expression})`,
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
if (typeof operand === 'boolean') {
|
|
207
|
+
return {
|
|
208
|
+
[CEL_EXPRESSION_BRAND]: true,
|
|
209
|
+
expression: String(!operand),
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
throw new Error('Cel.not() requires a KubernetesRef, CelExpression, or boolean argument.');
|
|
213
|
+
}
|
|
134
214
|
/**
|
|
135
215
|
* Creates a CEL expression for mathematical operations
|
|
136
216
|
*/
|
|
@@ -302,6 +382,8 @@ export const Cel = {
|
|
|
302
382
|
math,
|
|
303
383
|
template,
|
|
304
384
|
concat,
|
|
385
|
+
has,
|
|
386
|
+
not,
|
|
305
387
|
/** Tagged template literal for CEL expressions. Alias: standalone `cel` export. */
|
|
306
388
|
tag: cel,
|
|
307
389
|
// Typed convenience methods — pre-bound type parameters for Cel.expr
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cel.js","sourceRoot":"","sources":["../../../src/core/references/cel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cel.js","sourceRoot":"","sources":["../../../src/core/references/cel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAGrE,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAEzC;;;GAGG;AACH,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED;+EAC+E;AAC/E,MAAM,sBAAsB,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAE9C;;;;;;;GAOG;AACH,MAAM,qBAAqB,GAAG,sCAAsC,CAAC;AAErE;;;GAGG;AACH,SAAS,iBAAiB,CAAC,KAA4B;IACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEtB,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,IAAI,YAAY,CACpB,uBAAuB,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,sBAAsB,CAAC,IAAI;gBACpF,4FAA4F,EAC9F,mBAAmB,CACpB,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,YAAY,CACpB,yDAAyD,CAAC,IAAI;oBAC5D,kDAAkD,EACpD,mBAAmB,CACpB,CAAC;YACJ,CAAC;YAED,KAAK,MAAM,OAAO,IAAI,sBAAsB,EAAE,CAAC;gBAC7C,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvB,MAAM,IAAI,YAAY,CACpB,gCAAgC,CAAC,kCAAkC,OAAO,CAAC,MAAM,+BAA+B;wBAC9G,oDAAoD,EACtD,yBAAyB,CAC1B,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,sDAAsD;YACtD,8EAA8E;YAC9E,+EAA+E;YAC/E,IAAI,CAAC,GAAG,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9C,MAAM,CAAC,IAAI,CACT,gDAAgD,CAAC,+BAA+B;oBAC9E,QAAQ,IAAI,sBAAsB,IAAI,0CAA0C;oBAChF,gFAAgF;oBAChF,kEAAkE,EACpE;oBACE,aAAa,EAAE,CAAC;oBAChB,KAAK,EAAE,IAAI;iBACZ,CACF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,SAAS,IAAI,CAAc,GAAG,KAA4B;IACxD,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAEzB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAClC,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,mEAAmE;YACnE,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,SAAS,EAAE,CAAC;YAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QAED,qCAAqC;QACrC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAErC,OAAO;QACL,CAAC,oBAAoB,CAAC,EAAE,IAAI;QAC5B,UAAU;KACa,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,SAAS,IAAI,CAAc,GAAG,KAA4B;IACxD,2CAA2C;IAC3C,MAAM,WAAW,GAA0B,EAAE,CAAC;IAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAI,GAAG,WAAW,CAAC,CAAC;AACjC,CAAC;AAKD;;GAEG;AACH,SAAS,WAAW,CAClB,SAA+B,EAC/B,SAA+B,EAC/B,UAAgC;IAEhC,OAAO,IAAI,CAAI,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,SAAS,GAAG,CAAC,GAAwB;IACnC,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,CAAC,oBAAoB,CAAC,EAAE,IAAI;YAC5B,UAAU,EAAE,OAAO,eAAe,CAAC,GAAG,CAAC,GAAG;SACP,CAAC;IACxC,CAAC;IACD,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,CAAC,oBAAoB,CAAC,EAAE,IAAI;YAC5B,UAAU,EAAE,OAAO,GAAG,CAAC,UAAU,GAAG;SACD,CAAC;IACxC,CAAC;IACD,MAAM,IAAI,KAAK,CACb,2IAA2I,CAC5I,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,GAAG,CAAC,OAA4B;IACvC,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,CAAC,oBAAoB,CAAC,EAAE,IAAI;YAC5B,UAAU,EAAE,QAAQ,eAAe,CAAC,OAAO,CAAC,GAAG;SACZ,CAAC;IACxC,CAAC;IACD,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,CAAC,oBAAoB,CAAC,EAAE,IAAI;YAC5B,UAAU,EAAE,KAAK,OAAO,CAAC,UAAU,GAAG;SACH,CAAC;IACxC,CAAC;IACD,IAAI,OAAO,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO;YACL,CAAC,oBAAoB,CAAC,EAAE,IAAI;YAC5B,UAAU,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC;SACO,CAAC;IACxC,CAAC;IACD,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,IAAI,CACX,SAAiB,EACjB,GAAG,QAAgC;IAEnC,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QACzC,IAAI,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC;YACxB,OAAO,eAAe,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,CAAC,UAAU,CAAC;QACvB,CAAC;QACD,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAI,GAAG,SAAS,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,QAAQ,CACf,cAAsB,EACtB,GAAG,MAA8B;IAEjC,IAAI,MAAM,GAAG,cAAc,CAAC;IAC5B,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,sDAAsD;IACtD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE;QAClC,IAAI,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YACnC,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,iDAAiD;gBACjD,OAAO,MAAM,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC;YACzC,CAAC;YACD,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,sCAAsC;gBACtC,OAAO,MAAM,KAAK,CAAC,UAAU,GAAG,CAAC;YACnC,CAAC;YACD,gEAAgE;YAChE,sEAAsE;YACtE,uEAAuE;YACvE,wEAAwE;YACxE,sEAAsE;YACtE,wCAAwC;YACxC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,kFAAkF;IAClF,OAAO;QACL,CAAC,oBAAoB,CAAC,EAAE,IAAI;QAC5B,UAAU,EAAE,MAAM;QAClB,YAAY,EAAE,IAAI,EAAE,oDAAoD;KAC5B,CAAC;AACjD,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,MAAM,CAAC,GAAG,KAA6B;IAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAClC,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,6DAA6D;YAC7D,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;QACtC,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,SAAS,EAAE,CAAC;YAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QAED,+CAA+C;QAC/C,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAExC,OAAO;QACL,CAAC,oBAAoB,CAAC,EAAE,IAAI;QAC5B,UAAU;KACuB,CAAC;AACtC,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,GAAG,CACV,OAA6B,EAC7B,GAAG,MAA6B;IAEhC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,8BAA8B;QAC9B,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;QACvD,CAAC;QAED,0CAA0C;QAC1C,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAExB,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,oCAAoC;gBACpC,IAAI,KAAK,CAAC,UAAU,KAAK,YAAY,EAAE,CAAC;oBACtC,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC1C,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;iBAAM,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC/B,CAAC;iBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACrC,KAAK,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAErC,OAAO;QACL,CAAC,oBAAoB,CAAC,EAAE,IAAI;QAC5B,UAAU;QACV,KAAK,EAAE,QAAa;KACG,CAAC;AAC5B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,IAAI;IACJ,IAAI;IACJ,WAAW;IACX,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,GAAG;IACH,GAAG;IACH,mFAAmF;IACnF,GAAG,EAAE,GAAG;IAER,qEAAqE;IACrE,6EAA6E;IAC7E,OAAO,EAAE,CAAC,GAAG,KAA4B,EAAoC,EAAE,CAC7E,IAAI,CAAU,GAAG,KAAK,CAAC;IAEzB,2EAA2E;IAC3E,GAAG,EAAE,CAAC,GAAG,KAA4B,EAAkC,EAAE,CAAC,IAAI,CAAS,GAAG,KAAK,CAAC;IAEhG,2EAA2E;IAC3E,MAAM,EAAE,CAAC,GAAG,KAA4B,EAAkC,EAAE,CAC1E,IAAI,CAAS,GAAG,KAAK,CAAC;IAExB,oCAAoC;IAEpC,8DAA8D;IAC9D,GAAG,EAAE,CAAC,GAAG,MAA8B,EAAE,EAAE,CAAC,IAAI,CAAS,KAAK,EAAE,GAAG,MAAM,CAAC;IAE1E,6DAA6D;IAC7D,GAAG,EAAE,CAAC,GAAG,MAA8B,EAAE,EAAE,CAAC,IAAI,CAAS,KAAK,EAAE,GAAG,MAAM,CAAC;IAE1E,mEAAmE;IACnE,IAAI,EAAE,CAAC,UAAgC,EAAE,EAAE,CAAC,IAAI,CAAS,MAAM,EAAE,UAAU,CAAC;IAE5E,sEAAsE;IACtE,MAAM,EAAE,CAAC,KAA2B,EAAE,EAAE,CACtC,IAAI,CAAS,QAAQ,EAAE,KAAK,CAAmC;IAEjE,oDAAoD;IACpD,GAAG,EAAE,CAAC,KAA2B,EAAE,EAAE,CAAC,IAAI,CAAS,KAAK,EAAE,KAAK,CAAC;IAEhE,oEAAoE;IACpE,MAAM,EAAE,CAAC,KAA2B,EAAE,EAAE,CAAC,IAAI,CAAS,QAAQ,EAAE,KAAK,CAAC;CACvE,CAAC;AAEF,iEAAiE;AACjE,OAAO,EAAE,GAAG,EAAE,CAAC"}
|
|
@@ -20,6 +20,8 @@ export interface ExternalRefConfig {
|
|
|
20
20
|
name: string;
|
|
21
21
|
namespace?: string;
|
|
22
22
|
};
|
|
23
|
+
/** Explicit resource ID for composition tracking. Required when name is dynamic. */
|
|
24
|
+
id?: string;
|
|
23
25
|
}
|
|
24
26
|
/**
|
|
25
27
|
* Create external reference to a pre-existing resource that is not managed by Kro.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-refs.d.ts","sourceRoot":"","sources":["../../../src/core/references/external-refs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,KAAK,EAAE,QAAQ,EAAsB,MAAM,aAAa,CAAC;AAWhE;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;
|
|
1
|
+
{"version":3,"file":"external-refs.d.ts","sourceRoot":"","sources":["../../../src/core/references/external-refs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,KAAK,EAAE,QAAQ,EAAsB,MAAM,aAAa,CAAC;AAWhE;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,oFAAoF;IACpF,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,WAAW,CAAC,KAAK,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,EACtE,MAAM,EAAE,iBAAiB,GACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC5B,wBAAgB,WAAW,CAAC,KAAK,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,EACtE,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AA+D5B;;;;;;GAMG;AACH,wBAAgB,oCAAoC,CAAC,KAAK,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,EAC/F,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAe1B"}
|
|
@@ -39,6 +39,8 @@ export function externalRef(configOrApiVersion, kind, instanceName, namespace) {
|
|
|
39
39
|
resolvedName = instanceName;
|
|
40
40
|
resolvedNamespace = namespace;
|
|
41
41
|
}
|
|
42
|
+
// Extract id from object-form config
|
|
43
|
+
const resolvedId = typeof configOrApiVersion === 'object' ? configOrApiVersion.id : undefined;
|
|
42
44
|
// Create a KubernetesResource marked as external reference
|
|
43
45
|
const resource = {
|
|
44
46
|
apiVersion,
|
|
@@ -51,6 +53,7 @@ export function externalRef(configOrApiVersion, kind, instanceName, namespace) {
|
|
|
51
53
|
status: {},
|
|
52
54
|
// Mark this as an external reference for serialization
|
|
53
55
|
__externalRef: true,
|
|
56
|
+
...(resolvedId && { id: resolvedId }),
|
|
54
57
|
};
|
|
55
58
|
// Use existing createResource function to get Enhanced proxy
|
|
56
59
|
// (createResource skips context registration for __externalRef resources)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-refs.js","sourceRoot":"","sources":["../../../src/core/references/external-refs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGnE,gFAAgF;AAChF,mFAAmF;AACnF,sFAAsF;AACtF,eAAe,CAAC;IACd,WAAW,EAAE,aAAa;IAC1B,IAAI,EAAE,aAAa;IACnB,UAAU,EAAE,YAAY;CACzB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"external-refs.js","sourceRoot":"","sources":["../../../src/core/references/external-refs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGnE,gFAAgF;AAChF,mFAAmF;AACnF,sFAAsF;AACtF,eAAe,CAAC;IACd,WAAW,EAAE,aAAa;IAC1B,IAAI,EAAE,aAAa;IACnB,UAAU,EAAE,YAAY;CACzB,CAAC,CAAC;AA+CH,MAAM,UAAU,WAAW,CACzB,kBAA8C,EAC9C,IAAa,EACb,YAAqB,EACrB,SAAkB;IAElB,IAAI,UAAkB,CAAC;IACvB,IAAI,YAAoB,CAAC;IACzB,IAAI,YAAoB,CAAC;IACzB,IAAI,iBAAqC,CAAC;IAE1C,IAAI,OAAO,kBAAkB,KAAK,QAAQ,EAAE,CAAC;QAC3C,gFAAgF;QAChF,UAAU,GAAG,kBAAkB,CAAC,UAAU,CAAC;QAC3C,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC;QACvC,YAAY,GAAG,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC;QAChD,iBAAiB,GAAG,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,2EAA2E;QAC3E,UAAU,GAAG,kBAAkB,CAAC;QAChC,YAAY,GAAG,IAAK,CAAC;QACrB,YAAY,GAAG,YAAa,CAAC;QAC7B,iBAAiB,GAAG,SAAS,CAAC;IAChC,CAAC;IAED,qCAAqC;IACrC,MAAM,UAAU,GAAG,OAAO,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAE9F,2DAA2D;IAC3D,MAAM,QAAQ,GAAuC;QACnD,UAAU;QACV,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE;YACR,IAAI,EAAE,YAAY;YAClB,GAAG,CAAC,iBAAiB,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;SAC3D;QACD,IAAI,EAAE,EAAW;QACjB,MAAM,EAAE,EAAa;QACrB,uDAAuD;QACvD,aAAa,EAAE,IAAI;QACnB,GAAG,CAAC,UAAU,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC;KACtC,CAAC;IAEF,6DAA6D;IAC7D,0EAA0E;IAC1E,MAAM,QAAQ,GAAG,cAAc,CAAiB,QAAQ,CAAC,CAAC;IAE1D,mFAAmF;IACnF,sFAAsF;IACtF,uEAAuE;IACvE,kDAAkD;IAClD,MAAM,OAAO,GAAG,4BAA4B,EAAE,CAAC;IAC/C,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,QAAsC,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oCAAoC,CAClD,UAAkB,EAClB,IAAY,EACZ,YAAoB,EACpB,SAAkB;IAElB,MAAM,QAAQ,GAAuC;QACnD,UAAU;QACV,IAAI;QACJ,QAAQ,EAAE;YACR,IAAI,EAAE,YAAY;YAClB,GAAG,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;SAChC;QACD,IAAI,EAAE,EAAW;QACjB,MAAM,EAAE,EAAa;QACrB,aAAa,EAAE,IAAI;KACpB,CAAC;IAEF,wEAAwE;IACxE,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -62,6 +62,18 @@ export declare class ReferenceResolver {
|
|
|
62
62
|
* Resolve a KubernetesRef to its actual value or CEL string based on deployment mode
|
|
63
63
|
*/
|
|
64
64
|
private resolveKubernetesRef;
|
|
65
|
+
/**
|
|
66
|
+
* Resolve __KUBERNETES_REF__ marker strings embedded in plain string values.
|
|
67
|
+
*
|
|
68
|
+
* Template literals like `redis://${cache.status.hostname}:6379` produce
|
|
69
|
+
* strings like `redis://__KUBERNETES_REF_cache_status.hostname__:6379`.
|
|
70
|
+
* In direct mode, these markers must be replaced with live values from
|
|
71
|
+
* deployed resources before the resource is sent to the cluster.
|
|
72
|
+
*
|
|
73
|
+
* Uses the same resolution logic as resolveKubernetesRef — checks deployed
|
|
74
|
+
* resources, resourceKeyMapping, then queries the cluster.
|
|
75
|
+
*/
|
|
76
|
+
private resolveMarkerStrings;
|
|
65
77
|
/**
|
|
66
78
|
* Convert a KubernetesRef to a CEL string for Kro controller evaluation
|
|
67
79
|
*/
|
|
@@ -105,10 +117,6 @@ export declare class ReferenceResolver {
|
|
|
105
117
|
* - Custom format: "kind:apiVersion:name" or "kind:name"
|
|
106
118
|
*/
|
|
107
119
|
private parseResourceId;
|
|
108
|
-
/**
|
|
109
|
-
* Infer Kubernetes resource type from resource name patterns
|
|
110
|
-
*/
|
|
111
|
-
private inferResourceTypeFromName;
|
|
112
120
|
/**
|
|
113
121
|
* Get default API version for a given Kubernetes kind
|
|
114
122
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/core/references/resolver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,GAAG,MAAM,yBAAyB,CAAC;AAMpD,OAAO,EAAe,YAAY,EAAE,MAAM,cAAc,CAAC;AAIzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,KAAK,EACV,aAAa,EAEb,aAAa,EAEd,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/core/references/resolver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,GAAG,MAAM,yBAAyB,CAAC;AAMpD,OAAO,EAAe,YAAY,EAAE,MAAM,cAAc,CAAC;AAIzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,KAAK,EACV,aAAa,EAEb,aAAa,EAEd,MAAM,aAAa,CAAC;AAwBrB;;GAEG;AACH,UAAU,eAAe;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC;AAED,eAAO,MAAM,cAAc;;;CAGjB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AAElF,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,cAAc,CAAiB;gBAGrC,UAAU,EAAE,GAAG,CAAC,UAAU,EAC1B,cAAc,GAAE,cAAsC,EACtD,MAAM,CAAC,EAAE,GAAG,CAAC,mBAAmB;IAUlC;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAqC5B;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAgDtB;;OAEG;IACG,iBAAiB,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC;IAuDhF;;OAEG;IACH,OAAO,CAAC,aAAa;IAoCrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAmDrB;;OAEG;YACW,kBAAkB;IA2EhC;;OAEG;YACW,oBAAoB;IAyFlC;;;;;;;;;;OAUG;YACW,oBAAoB;IAsClC;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAYpC;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAWpC;;;;;;;;OAQG;YACW,qBAAqB;IAwGnC;;;;;;OAMG;YACW,0BAA0B;IA+DxC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAO5B;;OAEG;YACW,wBAAwB;IAoGtC;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IA8BvB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA6B5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA8CzB;;OAEG;IACG,oBAAoB,CAAC,CAAC,GAAG,OAAO,EACpC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,EAC7B,OAAO,GAAE,MAAuC,GAC/C,OAAO,CAAC,OAAO,CAAC;IAsEnB;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,aAAa,IAAI,eAAe;CAMjC;AAgBD,qBAAa,wBAAyB,SAAQ,YAAY;gBAC5C,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK;CAS7C;AAED,qBAAa,kBAAmB,SAAQ,YAAY;gBACtC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK;CAS9C"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { isCelExpression, isKubernetesRef } from '../../utils/type-guards.js';
|
|
8
8
|
import { DEFAULT_RESOURCE_READY_TIMEOUT } from '../config/defaults.js';
|
|
9
|
-
import { CEL_EXPRESSION_BRAND } from '../constants/brands.js';
|
|
9
|
+
import { CEL_EXPRESSION_BRAND, KUBERNETES_REF_MARKER_PATTERN } from '../constants/brands.js';
|
|
10
10
|
import { ResourceReadinessTimeoutError } from '../deployment/errors.js';
|
|
11
11
|
import { ResourceReadinessChecker } from '../deployment/readiness.js';
|
|
12
12
|
import { ensureError, TypeKroError } from '../errors.js';
|
|
@@ -178,6 +178,10 @@ export class ReferenceResolver {
|
|
|
178
178
|
if (isKubernetesRef(obj) || isCelExpression(obj)) {
|
|
179
179
|
return true;
|
|
180
180
|
}
|
|
181
|
+
// Check strings for embedded __KUBERNETES_REF__ markers from template literals
|
|
182
|
+
if (typeof obj === 'string') {
|
|
183
|
+
return obj.includes('__KUBERNETES_REF_');
|
|
184
|
+
}
|
|
181
185
|
if (typeof obj !== 'object') {
|
|
182
186
|
return false;
|
|
183
187
|
}
|
|
@@ -255,8 +259,23 @@ export class ReferenceResolver {
|
|
|
255
259
|
return obj;
|
|
256
260
|
}
|
|
257
261
|
if (isKubernetesRef(obj)) {
|
|
258
|
-
// Replace with resolved value
|
|
259
|
-
|
|
262
|
+
// Replace with resolved value. If resolution fails for a virtual nested
|
|
263
|
+
// composition ID (not a real K8s resource), keep the original ref so
|
|
264
|
+
// downstream handlers (like reExecuteWithLiveStatus) can resolve it.
|
|
265
|
+
// Re-throw unexpected errors (permissions, network, etc.) immediately.
|
|
266
|
+
try {
|
|
267
|
+
return await this.resolveKubernetesRef(obj, context);
|
|
268
|
+
}
|
|
269
|
+
catch (error) {
|
|
270
|
+
if (isUnknownResourceTypeError(error)) {
|
|
271
|
+
this.logger.debug('Virtual resource ID not in deployment context, deferring resolution', {
|
|
272
|
+
resourceId: obj.resourceId,
|
|
273
|
+
fieldPath: obj.fieldPath,
|
|
274
|
+
});
|
|
275
|
+
return obj;
|
|
276
|
+
}
|
|
277
|
+
throw error;
|
|
278
|
+
}
|
|
260
279
|
}
|
|
261
280
|
if (isCelExpression(obj)) {
|
|
262
281
|
// Handle CEL expressions based on deployment mode
|
|
@@ -285,6 +304,15 @@ export class ReferenceResolver {
|
|
|
285
304
|
visited.delete(obj);
|
|
286
305
|
return obj;
|
|
287
306
|
}
|
|
307
|
+
// Resolve embedded __KUBERNETES_REF__ marker strings in plain string values.
|
|
308
|
+
// These are produced when a KubernetesRef proxy is used in a template literal
|
|
309
|
+
// (e.g., `redis://${cache.status.hostname}:6379`). In direct mode, the markers
|
|
310
|
+
// must be replaced with live values from deployed resources.
|
|
311
|
+
if (typeof obj === 'string' && obj.includes('__KUBERNETES_REF_') && this.deploymentMode !== DeploymentMode.KRO) {
|
|
312
|
+
// resolveMarkerStrings handles per-marker errors internally (keeps
|
|
313
|
+
// unresolvable markers in place), so no outer try/catch needed.
|
|
314
|
+
return await this.resolveMarkerStrings(obj, context);
|
|
315
|
+
}
|
|
288
316
|
return obj;
|
|
289
317
|
}
|
|
290
318
|
/**
|
|
@@ -315,8 +343,12 @@ export class ReferenceResolver {
|
|
|
315
343
|
const deployedResource = this.findDeployedResource(ref.resourceId, context);
|
|
316
344
|
if (deployedResource) {
|
|
317
345
|
const value = this.extractFieldValue(deployedResource.manifest, ref.fieldPath);
|
|
318
|
-
|
|
319
|
-
|
|
346
|
+
// For status fields, the manifest (applied spec) won't have live values.
|
|
347
|
+
// Fall through to cluster query if the value is undefined.
|
|
348
|
+
if (value !== undefined) {
|
|
349
|
+
this.cache.set(cacheKey, value);
|
|
350
|
+
return value;
|
|
351
|
+
}
|
|
320
352
|
}
|
|
321
353
|
// Check if resource is in the resourceKeyMapping (maps original keys like 'webappDeployment' to actual resources)
|
|
322
354
|
if (context.resourceKeyMapping) {
|
|
@@ -335,18 +367,22 @@ export class ReferenceResolver {
|
|
|
335
367
|
});
|
|
336
368
|
if (resource) {
|
|
337
369
|
const value = this.extractFieldValue(resource, ref.fieldPath);
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
370
|
+
// Fall through to cluster query for undefined status fields
|
|
371
|
+
if (value !== undefined) {
|
|
372
|
+
this.logger.debug('Extracted field value from resourceKeyMapping', {
|
|
373
|
+
resourceId: ref.resourceId,
|
|
374
|
+
fieldPath: ref.fieldPath,
|
|
375
|
+
value,
|
|
376
|
+
valueType: typeof value,
|
|
377
|
+
});
|
|
378
|
+
this.cache.set(cacheKey, value);
|
|
379
|
+
return value;
|
|
380
|
+
}
|
|
346
381
|
}
|
|
347
382
|
}
|
|
348
383
|
}
|
|
349
|
-
//
|
|
384
|
+
// Query live resource from cluster — needed for status fields that aren't
|
|
385
|
+
// in the manifest (the manifest is the applied spec, not live state).
|
|
350
386
|
try {
|
|
351
387
|
const resource = await this.queryResourceFromCluster(ref, context);
|
|
352
388
|
const value = this.extractFieldValue(resource, ref.fieldPath);
|
|
@@ -354,9 +390,59 @@ export class ReferenceResolver {
|
|
|
354
390
|
return value;
|
|
355
391
|
}
|
|
356
392
|
catch (error) {
|
|
393
|
+
// queryResourceFromCluster already wraps errors in ReferenceResolutionError
|
|
394
|
+
if (error instanceof ReferenceResolutionError)
|
|
395
|
+
throw error;
|
|
357
396
|
throw new ReferenceResolutionError(ref, ensureError(error));
|
|
358
397
|
}
|
|
359
398
|
}
|
|
399
|
+
/**
|
|
400
|
+
* Resolve __KUBERNETES_REF__ marker strings embedded in plain string values.
|
|
401
|
+
*
|
|
402
|
+
* Template literals like `redis://${cache.status.hostname}:6379` produce
|
|
403
|
+
* strings like `redis://__KUBERNETES_REF_cache_status.hostname__:6379`.
|
|
404
|
+
* In direct mode, these markers must be replaced with live values from
|
|
405
|
+
* deployed resources before the resource is sent to the cluster.
|
|
406
|
+
*
|
|
407
|
+
* Uses the same resolution logic as resolveKubernetesRef — checks deployed
|
|
408
|
+
* resources, resourceKeyMapping, then queries the cluster.
|
|
409
|
+
*/
|
|
410
|
+
async resolveMarkerStrings(value, context) {
|
|
411
|
+
const markerPattern = new RegExp(KUBERNETES_REF_MARKER_PATTERN.source, 'g');
|
|
412
|
+
let result = value;
|
|
413
|
+
// Collect all matches first (can't replace during iteration with async)
|
|
414
|
+
const replacements = [];
|
|
415
|
+
for (let match = markerPattern.exec(value); match !== null; match = markerPattern.exec(value)) {
|
|
416
|
+
replacements.push({
|
|
417
|
+
marker: match[0],
|
|
418
|
+
resourceId: match[1],
|
|
419
|
+
fieldPath: match[2],
|
|
420
|
+
});
|
|
421
|
+
}
|
|
422
|
+
for (const { marker, resourceId, fieldPath } of replacements) {
|
|
423
|
+
try {
|
|
424
|
+
// Construct a minimal ref-like object for the resolution logic.
|
|
425
|
+
// resolveKubernetesRef only needs resourceId and fieldPath.
|
|
426
|
+
const ref = { resourceId, fieldPath };
|
|
427
|
+
const resolved = await this.resolveKubernetesRef(ref, context);
|
|
428
|
+
if (resolved !== undefined && resolved !== null) {
|
|
429
|
+
result = result.replaceAll(marker, String(resolved));
|
|
430
|
+
}
|
|
431
|
+
else {
|
|
432
|
+
this.logger.warn('Marker ref resolved to null/undefined, keeping marker', {
|
|
433
|
+
marker, resourceId, fieldPath,
|
|
434
|
+
});
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
catch (error) {
|
|
438
|
+
this.logger.warn('Failed to resolve marker ref, keeping marker', {
|
|
439
|
+
marker, resourceId, fieldPath,
|
|
440
|
+
error: ensureError(error).message,
|
|
441
|
+
});
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
return result;
|
|
445
|
+
}
|
|
360
446
|
/**
|
|
361
447
|
* Convert a KubernetesRef to a CEL string for Kro controller evaluation
|
|
362
448
|
*/
|
|
@@ -450,15 +536,6 @@ export class ReferenceResolver {
|
|
|
450
536
|
schemaSpec: Object.keys((context.schema.spec ?? {})),
|
|
451
537
|
});
|
|
452
538
|
}
|
|
453
|
-
// Add schema to resourcesMap if provided in context
|
|
454
|
-
if (context.schema) {
|
|
455
|
-
resourcesMap.set('schema', context.schema);
|
|
456
|
-
// Also add as __schema__ for backward compatibility
|
|
457
|
-
resourcesMap.set('__schema__', context.schema);
|
|
458
|
-
this.logger.debug('Added schema to CEL context', {
|
|
459
|
-
schemaSpec: Object.keys((context.schema.spec ?? {})),
|
|
460
|
-
});
|
|
461
|
-
}
|
|
462
539
|
this.logger.debug('CEL context prepared', {
|
|
463
540
|
expression: expr.expression,
|
|
464
541
|
resourcesMapSize: resourcesMap.size,
|
|
@@ -567,8 +644,24 @@ export class ReferenceResolver {
|
|
|
567
644
|
fieldPath: ref.fieldPath,
|
|
568
645
|
});
|
|
569
646
|
try {
|
|
570
|
-
//
|
|
571
|
-
|
|
647
|
+
// Look up the actual resource from the deployment context first.
|
|
648
|
+
// This gives us the correct apiVersion/kind (e.g., postgresql.cnpg.io/v1 Cluster)
|
|
649
|
+
// instead of falling back to name-based inference (which defaults to Deployment).
|
|
650
|
+
const knownResource = context.resourceKeyMapping?.get(ref.resourceId);
|
|
651
|
+
let resourceInfo;
|
|
652
|
+
if (knownResource && typeof knownResource === 'object') {
|
|
653
|
+
const kr = knownResource;
|
|
654
|
+
const ns = typeof kr.metadata?.namespace === 'string' ? kr.metadata.namespace : undefined;
|
|
655
|
+
resourceInfo = {
|
|
656
|
+
apiVersion: kr.apiVersion || 'apps/v1',
|
|
657
|
+
kind: kr.kind || 'Deployment',
|
|
658
|
+
name: typeof kr.metadata?.name === 'string' ? kr.metadata.name : ref.resourceId,
|
|
659
|
+
...(ns && { namespace: ns }),
|
|
660
|
+
};
|
|
661
|
+
}
|
|
662
|
+
else {
|
|
663
|
+
resourceInfo = this.parseResourceId(ref.resourceId);
|
|
664
|
+
}
|
|
572
665
|
queryLogger.debug('Parsed resource info', { resourceInfo });
|
|
573
666
|
// Build the resource reference for the Kubernetes API
|
|
574
667
|
const resourceRef = {
|
|
@@ -611,11 +704,21 @@ export class ReferenceResolver {
|
|
|
611
704
|
});
|
|
612
705
|
throw new ReferenceResolutionError(ref, new Error(`Resource '${ref.resourceId}' not found in cluster`));
|
|
613
706
|
}
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
707
|
+
// Use debug level for "not in deployment context" errors (e.g., virtual
|
|
708
|
+
// nested composition IDs like "inngestBootstrap1"). These are expected when
|
|
709
|
+
// layered resolution handles them in a later pass.
|
|
710
|
+
if (error?.code === 'UNKNOWN_RESOURCE_TYPE') {
|
|
711
|
+
queryLogger.debug('Resource not in deployment context', {
|
|
712
|
+
resourceId: ref.resourceId,
|
|
713
|
+
});
|
|
714
|
+
}
|
|
715
|
+
else {
|
|
716
|
+
queryLogger.error('Failed to query cluster resource', ensureError(error), {
|
|
717
|
+
resourceId: ref.resourceId,
|
|
718
|
+
statusCode: k8sError.statusCode,
|
|
719
|
+
});
|
|
720
|
+
}
|
|
721
|
+
throw new ReferenceResolutionError(ref, ensureError(error));
|
|
619
722
|
}
|
|
620
723
|
}
|
|
621
724
|
/**
|
|
@@ -645,45 +748,11 @@ export class ReferenceResolver {
|
|
|
645
748
|
};
|
|
646
749
|
}
|
|
647
750
|
}
|
|
648
|
-
//
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
name: resourceId,
|
|
654
|
-
};
|
|
655
|
-
}
|
|
656
|
-
/**
|
|
657
|
-
* Infer Kubernetes resource type from resource name patterns
|
|
658
|
-
*/
|
|
659
|
-
inferResourceTypeFromName(name) {
|
|
660
|
-
// Common naming patterns for different resource types
|
|
661
|
-
if (name.includes('-deployment') || name.includes('-deploy')) {
|
|
662
|
-
return { kind: 'Deployment', apiVersion: 'apps/v1' };
|
|
663
|
-
}
|
|
664
|
-
if (name.includes('-service') || name.includes('-svc')) {
|
|
665
|
-
return { kind: 'Service', apiVersion: 'v1' };
|
|
666
|
-
}
|
|
667
|
-
if (name.includes('-configmap') || name.includes('-config')) {
|
|
668
|
-
return { kind: 'ConfigMap', apiVersion: 'v1' };
|
|
669
|
-
}
|
|
670
|
-
if (name.includes('-secret')) {
|
|
671
|
-
return { kind: 'Secret', apiVersion: 'v1' };
|
|
672
|
-
}
|
|
673
|
-
if (name.includes('-ingress')) {
|
|
674
|
-
return { kind: 'Ingress', apiVersion: 'networking.k8s.io/v1' };
|
|
675
|
-
}
|
|
676
|
-
if (name.includes('-pvc') || name.includes('-volume')) {
|
|
677
|
-
return { kind: 'PersistentVolumeClaim', apiVersion: 'v1' };
|
|
678
|
-
}
|
|
679
|
-
if (name.includes('-job')) {
|
|
680
|
-
return { kind: 'Job', apiVersion: 'batch/v1' };
|
|
681
|
-
}
|
|
682
|
-
if (name.includes('-cronjob')) {
|
|
683
|
-
return { kind: 'CronJob', apiVersion: 'batch/v1' };
|
|
684
|
-
}
|
|
685
|
-
// Default to Deployment if no pattern matches
|
|
686
|
-
return { kind: 'Deployment', apiVersion: 'apps/v1' };
|
|
751
|
+
// No colon-delimited format and no deployment context — we can't guess.
|
|
752
|
+
// Silently defaulting to Deployment caused a real bug: "database" (a CNPG Cluster)
|
|
753
|
+
// was queried as deployments.apps, got 404, and the error was swallowed.
|
|
754
|
+
throw new TypeKroError(`Cannot determine apiVersion/kind for resource '${resourceId}' — not found in deployment context. ` +
|
|
755
|
+
`The resolver needs the resource in resourceKeyMapping or deployedResources to know its type.`, 'UNKNOWN_RESOURCE_TYPE', { resourceId });
|
|
687
756
|
}
|
|
688
757
|
/**
|
|
689
758
|
* Get default API version for a given Kubernetes kind
|
|
@@ -836,6 +905,20 @@ export class ReferenceResolver {
|
|
|
836
905
|
};
|
|
837
906
|
}
|
|
838
907
|
}
|
|
908
|
+
/**
|
|
909
|
+
* Check if an error (or its cause chain) originated from an unknown resource type.
|
|
910
|
+
* This happens for virtual nested composition IDs like "inngestBootstrap1" that
|
|
911
|
+
* don't map to real Kubernetes resources. These are expected during layered
|
|
912
|
+
* resolution and should be deferred, not thrown.
|
|
913
|
+
*/
|
|
914
|
+
function isUnknownResourceTypeError(error) {
|
|
915
|
+
if (error instanceof TypeKroError && error.code === 'UNKNOWN_RESOURCE_TYPE')
|
|
916
|
+
return true;
|
|
917
|
+
const cause = error.cause;
|
|
918
|
+
if (cause instanceof TypeKroError && cause.code === 'UNKNOWN_RESOURCE_TYPE')
|
|
919
|
+
return true;
|
|
920
|
+
return false;
|
|
921
|
+
}
|
|
839
922
|
// Error classes
|
|
840
923
|
export class ReferenceResolutionError extends TypeKroError {
|
|
841
924
|
constructor(ref, cause) {
|