typekro 0.24.1 → 0.26.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/core/composition/context.d.ts +4 -0
- package/dist/core/composition/context.d.ts.map +1 -1
- package/dist/core/composition/context.js +1 -0
- 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 +24 -3
- package/dist/core/composition/imperative.js.map +1 -1
- package/dist/core/deployment/direct-factory.d.ts +8 -1
- package/dist/core/deployment/direct-factory.d.ts.map +1 -1
- package/dist/core/deployment/direct-factory.js +80 -61
- package/dist/core/deployment/direct-factory.js.map +1 -1
- package/dist/core/deployment/engine.d.ts +2 -0
- package/dist/core/deployment/engine.d.ts.map +1 -1
- package/dist/core/deployment/engine.js +22 -1
- package/dist/core/deployment/engine.js.map +1 -1
- package/dist/core/deployment/kro-factory.d.ts +2 -0
- package/dist/core/deployment/kro-factory.d.ts.map +1 -1
- package/dist/core/deployment/kro-factory.js +47 -11
- package/dist/core/deployment/kro-factory.js.map +1 -1
- package/dist/core/deployment/kro-instance-safety.d.ts +24 -0
- package/dist/core/deployment/kro-instance-safety.d.ts.map +1 -0
- package/dist/core/deployment/kro-instance-safety.js +157 -0
- package/dist/core/deployment/kro-instance-safety.js.map +1 -0
- package/dist/core/deployment/readiness-waiter.d.ts.map +1 -1
- package/dist/core/deployment/readiness-waiter.js +17 -2
- package/dist/core/deployment/readiness-waiter.js.map +1 -1
- package/dist/core/deployment/rollback-manager.d.ts +1 -1
- package/dist/core/deployment/rollback-manager.d.ts.map +1 -1
- package/dist/core/deployment/rollback-manager.js +16 -9
- package/dist/core/deployment/rollback-manager.js.map +1 -1
- package/dist/core/deployment/schema-cel-evaluator.d.ts +5 -0
- package/dist/core/deployment/schema-cel-evaluator.d.ts.map +1 -0
- package/dist/core/deployment/schema-cel-evaluator.js +36 -0
- package/dist/core/deployment/schema-cel-evaluator.js.map +1 -0
- package/dist/core/deployment/singleton-gitops.d.ts.map +1 -1
- package/dist/core/deployment/singleton-gitops.js +9 -2
- package/dist/core/deployment/singleton-gitops.js.map +1 -1
- package/dist/core/serialization/core.d.ts.map +1 -1
- package/dist/core/serialization/core.js +17 -4
- package/dist/core/serialization/core.js.map +1 -1
- package/dist/core/serialization/schema.d.ts.map +1 -1
- package/dist/core/serialization/schema.js +19 -4
- package/dist/core/serialization/schema.js.map +1 -1
- package/dist/core/serialization/yaml.d.ts.map +1 -1
- package/dist/core/serialization/yaml.js +15 -1
- package/dist/core/serialization/yaml.js.map +1 -1
- package/dist/core/types/kubernetes.d.ts +9 -0
- package/dist/core/types/kubernetes.d.ts.map +1 -1
- package/dist/core/types/serialization.d.ts +9 -0
- package/dist/core/types/serialization.d.ts.map +1 -1
- package/dist/factories/clickhouse/compositions/clickhouse-operator-bootstrap.d.ts +1 -1
- package/dist/factories/clickhouse/compositions/clickhouse-operator-bootstrap.js +1 -1
- package/dist/factories/clickhouse/index.d.ts +4 -1
- package/dist/factories/clickhouse/index.d.ts.map +1 -1
- package/dist/factories/clickhouse/index.js +4 -1
- package/dist/factories/clickhouse/index.js.map +1 -1
- package/dist/factories/clickstack/compositions/clickstack-bootstrap.d.ts +1 -1
- package/dist/factories/clickstack/compositions/clickstack-bootstrap.js +1 -1
- package/dist/factories/clickstack/compositions/k8s-telemetry.d.ts +1 -1
- package/dist/factories/clickstack/compositions/k8s-telemetry.js +1 -1
- package/dist/factories/clickstack/index.d.ts +1 -1
- package/dist/factories/clickstack/index.js +1 -1
- package/dist/factories/cnpg/compositions/cnpg-bootstrap.d.ts +1 -1
- package/dist/factories/cnpg/compositions/cnpg-bootstrap.js +1 -1
- package/dist/factories/cnpg/index.d.ts +1 -1
- package/dist/factories/cnpg/index.js +1 -1
- package/dist/factories/dagster/index.d.ts +1 -1
- package/dist/factories/dagster/index.js +1 -1
- package/dist/factories/index.d.ts +2 -0
- package/dist/factories/index.d.ts.map +1 -1
- package/dist/factories/index.js +8 -0
- package/dist/factories/index.js.map +1 -1
- package/dist/factories/inngest/compositions/inngest-bootstrap.d.ts +1 -1
- package/dist/factories/inngest/compositions/inngest-bootstrap.js +1 -1
- package/dist/factories/inngest/index.d.ts +1 -1
- package/dist/factories/inngest/index.js +1 -1
- package/dist/factories/kro/resource-graph-definition.d.ts.map +1 -1
- package/dist/factories/kro/resource-graph-definition.js +17 -1
- package/dist/factories/kro/resource-graph-definition.js.map +1 -1
- package/dist/factories/nats/compositions/index.d.ts +2 -0
- package/dist/factories/nats/compositions/index.d.ts.map +1 -0
- package/dist/factories/nats/compositions/index.js +2 -0
- package/dist/factories/nats/compositions/index.js.map +1 -0
- package/dist/factories/nats/compositions/nats-bootstrap.d.ts +49 -0
- package/dist/factories/nats/compositions/nats-bootstrap.d.ts.map +1 -0
- package/dist/factories/nats/compositions/nats-bootstrap.js +135 -0
- package/dist/factories/nats/compositions/nats-bootstrap.js.map +1 -0
- package/dist/factories/nats/index.d.ts +5 -0
- package/dist/factories/nats/index.d.ts.map +1 -0
- package/dist/factories/nats/index.js +5 -0
- package/dist/factories/nats/index.js.map +1 -0
- package/dist/factories/nats/resources/helm.d.ts +28 -0
- package/dist/factories/nats/resources/helm.d.ts.map +1 -0
- package/dist/factories/nats/resources/helm.js +39 -0
- package/dist/factories/nats/resources/helm.js.map +1 -0
- package/dist/factories/nats/resources/index.d.ts +3 -0
- package/dist/factories/nats/resources/index.d.ts.map +1 -0
- package/dist/factories/nats/resources/index.js +3 -0
- package/dist/factories/nats/resources/index.js.map +1 -0
- package/dist/factories/nats/resources/jetstream.d.ts +13 -0
- package/dist/factories/nats/resources/jetstream.d.ts.map +1 -0
- package/dist/factories/nats/resources/jetstream.js +105 -0
- package/dist/factories/nats/resources/jetstream.js.map +1 -0
- package/dist/factories/nats/types.d.ts +91 -0
- package/dist/factories/nats/types.d.ts.map +1 -0
- package/dist/factories/nats/types.js +72 -0
- package/dist/factories/nats/types.js.map +1 -0
- package/dist/factories/ory/compositions/ory-identity-stack.d.ts +1 -1
- package/dist/factories/ory/types.d.ts +2 -2
- package/dist/factories/rook/compositions/index.d.ts +4 -0
- package/dist/factories/rook/compositions/index.d.ts.map +1 -0
- package/dist/factories/rook/compositions/index.js +4 -0
- package/dist/factories/rook/compositions/index.js.map +1 -0
- package/dist/factories/rook/compositions/object-storage-claim.d.ts +32 -0
- package/dist/factories/rook/compositions/object-storage-claim.d.ts.map +1 -0
- package/dist/factories/rook/compositions/object-storage-claim.js +63 -0
- package/dist/factories/rook/compositions/object-storage-claim.js.map +1 -0
- package/dist/factories/rook/compositions/rook-ceph-helm-repository.d.ts +12 -0
- package/dist/factories/rook/compositions/rook-ceph-helm-repository.d.ts.map +1 -0
- package/dist/factories/rook/compositions/rook-ceph-helm-repository.js +25 -0
- package/dist/factories/rook/compositions/rook-ceph-helm-repository.js.map +1 -0
- package/dist/factories/rook/compositions/rook-ceph-operator-bootstrap.d.ts +2 -0
- package/dist/factories/rook/compositions/rook-ceph-operator-bootstrap.d.ts.map +1 -0
- package/dist/factories/rook/compositions/rook-ceph-operator-bootstrap.js +2 -0
- package/dist/factories/rook/compositions/rook-ceph-operator-bootstrap.js.map +1 -0
- package/dist/factories/rook/compositions/rook-ceph-operator-installation.d.ts +67 -0
- package/dist/factories/rook/compositions/rook-ceph-operator-installation.d.ts.map +1 -0
- package/dist/factories/rook/compositions/rook-ceph-operator-installation.js +71 -0
- package/dist/factories/rook/compositions/rook-ceph-operator-installation.js.map +1 -0
- package/dist/factories/rook/index.d.ts +15 -0
- package/dist/factories/rook/index.d.ts.map +1 -0
- package/dist/factories/rook/index.js +15 -0
- package/dist/factories/rook/index.js.map +1 -0
- package/dist/factories/rook/resources/bucket-storage-class.d.ts +12 -0
- package/dist/factories/rook/resources/bucket-storage-class.d.ts.map +1 -0
- package/dist/factories/rook/resources/bucket-storage-class.js +29 -0
- package/dist/factories/rook/resources/bucket-storage-class.js.map +1 -0
- package/dist/factories/rook/resources/ceph-object-store-user.d.ts +14 -0
- package/dist/factories/rook/resources/ceph-object-store-user.d.ts.map +1 -0
- package/dist/factories/rook/resources/ceph-object-store-user.js +42 -0
- package/dist/factories/rook/resources/ceph-object-store-user.js.map +1 -0
- package/dist/factories/rook/resources/ceph-object-store.d.ts +27 -0
- package/dist/factories/rook/resources/ceph-object-store.d.ts.map +1 -0
- package/dist/factories/rook/resources/ceph-object-store.js +56 -0
- package/dist/factories/rook/resources/ceph-object-store.js.map +1 -0
- package/dist/factories/rook/resources/helm.d.ts +18 -0
- package/dist/factories/rook/resources/helm.d.ts.map +1 -0
- package/dist/factories/rook/resources/helm.js +45 -0
- package/dist/factories/rook/resources/helm.js.map +1 -0
- package/dist/factories/rook/resources/index.d.ts +6 -0
- package/dist/factories/rook/resources/index.d.ts.map +1 -0
- package/dist/factories/rook/resources/index.js +6 -0
- package/dist/factories/rook/resources/index.js.map +1 -0
- package/dist/factories/rook/resources/object-bucket-claim.d.ts +15 -0
- package/dist/factories/rook/resources/object-bucket-claim.d.ts.map +1 -0
- package/dist/factories/rook/resources/object-bucket-claim.js +52 -0
- package/dist/factories/rook/resources/object-bucket-claim.js.map +1 -0
- package/dist/factories/rook/types.d.ts +307 -0
- package/dist/factories/rook/types.d.ts.map +1 -0
- package/dist/factories/rook/types.js +239 -0
- package/dist/factories/rook/types.js.map +1 -0
- package/dist/factories/rook/utils/helm-values-mapper.d.ts +33 -0
- package/dist/factories/rook/utils/helm-values-mapper.d.ts.map +1 -0
- package/dist/factories/rook/utils/helm-values-mapper.js +60 -0
- package/dist/factories/rook/utils/helm-values-mapper.js.map +1 -0
- package/dist/factories/rook/utils/index.d.ts +2 -0
- package/dist/factories/rook/utils/index.d.ts.map +1 -0
- package/dist/factories/rook/utils/index.js +2 -0
- package/dist/factories/rook/utils/index.js.map +1 -0
- package/dist/factories/valkey/compositions/index.d.ts +2 -1
- package/dist/factories/valkey/compositions/index.d.ts.map +1 -1
- package/dist/factories/valkey/compositions/index.js +2 -1
- package/dist/factories/valkey/compositions/index.js.map +1 -1
- package/dist/factories/valkey/compositions/valkey-bootstrap.d.ts +21 -2
- package/dist/factories/valkey/compositions/valkey-bootstrap.d.ts.map +1 -1
- package/dist/factories/valkey/compositions/valkey-bootstrap.js +26 -136
- package/dist/factories/valkey/compositions/valkey-bootstrap.js.map +1 -1
- package/dist/factories/valkey/compositions/valkey-helm-repository.d.ts +16 -0
- package/dist/factories/valkey/compositions/valkey-helm-repository.d.ts.map +1 -0
- package/dist/factories/valkey/compositions/valkey-helm-repository.js +29 -0
- package/dist/factories/valkey/compositions/valkey-helm-repository.js.map +1 -0
- package/dist/factories/valkey/index.d.ts +6 -3
- package/dist/factories/valkey/index.d.ts.map +1 -1
- package/dist/factories/valkey/index.js +6 -3
- package/dist/factories/valkey/index.js.map +1 -1
- package/dist/factories/valkey/resources/helm.d.ts.map +1 -1
- package/dist/factories/valkey/resources/helm.js +13 -11
- package/dist/factories/valkey/resources/helm.js.map +1 -1
- package/dist/factories/valkey/types.d.ts +29 -16
- package/dist/factories/valkey/types.d.ts.map +1 -1
- package/dist/factories/valkey/types.js +34 -22
- package/dist/factories/valkey/types.js.map +1 -1
- package/dist/factories/valkey/utils/helm-values-mapper.d.ts +6 -1
- package/dist/factories/valkey/utils/helm-values-mapper.d.ts.map +1 -1
- package/dist/factories/valkey/utils/helm-values-mapper.js +52 -19
- package/dist/factories/valkey/utils/helm-values-mapper.js.map +1 -1
- package/dist/factories/webapp/compositions/index.d.ts +1 -1
- package/dist/factories/webapp/compositions/index.d.ts.map +1 -1
- package/dist/factories/webapp/compositions/index.js +1 -1
- package/dist/factories/webapp/compositions/index.js.map +1 -1
- package/dist/factories/webapp/compositions/web-app-with-processing.d.ts +9 -13
- package/dist/factories/webapp/compositions/web-app-with-processing.d.ts.map +1 -1
- package/dist/factories/webapp/compositions/web-app-with-processing.js +290 -278
- package/dist/factories/webapp/compositions/web-app-with-processing.js.map +1 -1
- package/dist/factories/webapp/types.d.ts +26 -7
- package/dist/factories/webapp/types.d.ts.map +1 -1
- package/dist/factories/webapp/types.js +0 -9
- package/dist/factories/webapp/types.js.map +1 -1
- package/package.json +9 -1
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
import { kubernetesComposition } from '../../../core/composition/imperative.js';
|
|
2
|
-
import { DEFAULT_FLUX_NAMESPACE } from '../../../core/config/defaults.js';
|
|
3
|
-
import { setMetadataField } from '../../../core/metadata/index.js';
|
|
4
2
|
import { Cel } from '../../../core/references/cel.js';
|
|
5
3
|
import { namespace } from '../../kubernetes/core/namespace.js';
|
|
6
|
-
import {
|
|
7
|
-
import { clusterRoleBinding } from '../../kubernetes/rbac/cluster-role-binding.js';
|
|
8
|
-
import { DEFAULT_VALKEY_REPO_NAME, DEFAULT_VALKEY_VERSION, valkeyHelmRelease, valkeyHelmRepository, } from '../resources/helm.js';
|
|
4
|
+
import { DEFAULT_VALKEY_REPO_NAME, DEFAULT_VALKEY_REPO_URL, DEFAULT_VALKEY_VERSION, valkeyHelmRelease, valkeyHelmRepository, } from '../resources/helm.js';
|
|
9
5
|
import { ValkeyBootstrapConfigSchema, ValkeyBootstrapStatusSchema, } from '../types.js';
|
|
10
6
|
import { mapValkeyConfigToHelmValues } from '../utils/helm-values-mapper.js';
|
|
11
7
|
/**
|
|
12
|
-
* Strips the '-chart' suffix from
|
|
13
|
-
*
|
|
14
|
-
*
|
|
8
|
+
* Strips the '-chart' suffix from the verified built-in Hyperspike version.
|
|
9
|
+
* Runtime schema references cannot be normalized synchronously, so explicit
|
|
10
|
+
* version overrides are preserved as supplied.
|
|
15
11
|
*/
|
|
16
12
|
function stripChartSuffix(version) {
|
|
17
13
|
return version.replace(/-chart$/, '');
|
|
18
14
|
}
|
|
15
|
+
const DEFAULT_VALKEY_OPERATOR_NAMESPACE = 'valkey-operator-system';
|
|
19
16
|
/**
|
|
20
17
|
* Hyperspike Valkey Operator Bootstrap Composition
|
|
21
18
|
*
|
|
@@ -35,7 +32,7 @@ function stripChartSuffix(version) {
|
|
|
35
32
|
* // 'kro' = KRO mode (continuous reconciliation via ResourceGraphDefinition)
|
|
36
33
|
* // 'direct' = Direct mode (immediate apply, no KRO controller needed)
|
|
37
34
|
* const factory = valkeyBootstrap.factory('kro', {
|
|
38
|
-
* namespace: '
|
|
35
|
+
* namespace: 'typekro-system', // KRO instance/control-plane namespace
|
|
39
36
|
* waitForReady: true,
|
|
40
37
|
* });
|
|
41
38
|
*
|
|
@@ -51,17 +48,17 @@ export const valkeyBootstrap = kubernetesComposition({
|
|
|
51
48
|
spec: ValkeyBootstrapConfigSchema,
|
|
52
49
|
status: ValkeyBootstrapStatusSchema,
|
|
53
50
|
}, (spec) => {
|
|
54
|
-
const resolvedNamespace = spec.namespace
|
|
55
|
-
const resolvedVersion = spec.version
|
|
56
|
-
|
|
57
|
-
//
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
const
|
|
51
|
+
const resolvedNamespace = spec.namespace ?? DEFAULT_VALKEY_OPERATOR_NAMESPACE;
|
|
52
|
+
const resolvedVersion = spec.version ?? DEFAULT_VALKEY_VERSION;
|
|
53
|
+
// A schema-proxy string cannot be normalized synchronously. Keep the
|
|
54
|
+
// upstream chart tag for overrides; normalize the verified built-in default.
|
|
55
|
+
const reportedVersion = spec.version ? spec.version : stripChartSuffix(DEFAULT_VALKEY_VERSION);
|
|
56
|
+
const repositoryName = spec.repositoryName ?? DEFAULT_VALKEY_REPO_NAME;
|
|
57
|
+
const repositoryNamespace = spec.repositoryNamespace ?? resolvedNamespace;
|
|
58
|
+
const repositoryUrl = spec.repositoryUrl ?? DEFAULT_VALKEY_REPO_URL;
|
|
61
59
|
const helmValues = mapValkeyConfigToHelmValues({
|
|
62
|
-
...spec,
|
|
63
|
-
|
|
64
|
-
version: resolvedVersion,
|
|
60
|
+
...(spec.customValues !== undefined && { customValues: spec.customValues }),
|
|
61
|
+
...(spec.values !== undefined && { values: spec.values }),
|
|
65
62
|
});
|
|
66
63
|
// Resources are _-prefixed because they're registered via side effects in the
|
|
67
64
|
// kubernetesComposition callback — the composition captures them automatically.
|
|
@@ -72,18 +69,16 @@ export const valkeyBootstrap = kubernetesComposition({
|
|
|
72
69
|
labels: {
|
|
73
70
|
'app.kubernetes.io/name': 'valkey-operator',
|
|
74
71
|
'app.kubernetes.io/instance': spec.name,
|
|
75
|
-
'app.kubernetes.io/version':
|
|
72
|
+
'app.kubernetes.io/version': reportedVersion,
|
|
76
73
|
'app.kubernetes.io/managed-by': 'typekro',
|
|
77
74
|
},
|
|
78
75
|
},
|
|
79
76
|
id: 'valkeyNamespace',
|
|
80
77
|
});
|
|
81
|
-
// OCI HelmRepositories don't have status in Flux, which can cause the deploy
|
|
82
|
-
// engine to block waiting for readiness. Create both resources but don't depend
|
|
83
|
-
// on the repository readiness — Flux handles the OCI → chart resolution internally.
|
|
84
78
|
const _helmRepository = valkeyHelmRepository({
|
|
85
|
-
name:
|
|
86
|
-
namespace:
|
|
79
|
+
name: repositoryName,
|
|
80
|
+
namespace: repositoryNamespace,
|
|
81
|
+
url: repositoryUrl,
|
|
87
82
|
id: 'valkeyHelmRepository',
|
|
88
83
|
});
|
|
89
84
|
const _helmRelease = valkeyHelmRelease({
|
|
@@ -91,118 +86,11 @@ export const valkeyBootstrap = kubernetesComposition({
|
|
|
91
86
|
namespace: resolvedNamespace,
|
|
92
87
|
version: resolvedVersion,
|
|
93
88
|
values: helmValues,
|
|
94
|
-
repositoryName
|
|
89
|
+
repositoryName,
|
|
90
|
+
repositoryNamespace,
|
|
91
|
+
repositoryUrl,
|
|
95
92
|
id: 'valkeyHelmRelease',
|
|
96
93
|
});
|
|
97
|
-
const _managerRole = clusterRole({
|
|
98
|
-
metadata: {
|
|
99
|
-
name: 'valkey-operator-manager-role',
|
|
100
|
-
labels: {
|
|
101
|
-
'app.kubernetes.io/name': 'valkey-operator',
|
|
102
|
-
'app.kubernetes.io/instance': spec.name,
|
|
103
|
-
'app.kubernetes.io/version': appVersion,
|
|
104
|
-
'app.kubernetes.io/managed-by': 'typekro',
|
|
105
|
-
},
|
|
106
|
-
},
|
|
107
|
-
rules: [
|
|
108
|
-
{
|
|
109
|
-
apiGroups: [''],
|
|
110
|
-
resources: ['configmaps', 'secrets', 'serviceaccounts', 'services'],
|
|
111
|
-
verbs: ['create', 'delete', 'get', 'list', 'patch', 'update', 'watch'],
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
apiGroups: [''],
|
|
115
|
-
resources: ['pods'],
|
|
116
|
-
verbs: ['get', 'list', 'watch'],
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
apiGroups: [''],
|
|
120
|
-
resources: ['events'],
|
|
121
|
-
verbs: ['create', 'patch'],
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
apiGroups: ['apps'],
|
|
125
|
-
resources: ['deployments', 'statefulsets'],
|
|
126
|
-
verbs: ['create', 'delete', 'get', 'list', 'patch', 'update', 'watch'],
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
apiGroups: ['policy'],
|
|
130
|
-
resources: ['poddisruptionbudgets'],
|
|
131
|
-
verbs: ['create', 'delete', 'get', 'list', 'patch', 'update', 'watch'],
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
apiGroups: ['hyperspike.io'],
|
|
135
|
-
resources: ['valkeys'],
|
|
136
|
-
verbs: ['create', 'delete', 'get', 'list', 'patch', 'update', 'watch'],
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
apiGroups: ['hyperspike.io'],
|
|
140
|
-
resources: ['valkeys/status'],
|
|
141
|
-
verbs: ['get', 'patch', 'update'],
|
|
142
|
-
},
|
|
143
|
-
{
|
|
144
|
-
apiGroups: ['hyperspike.io'],
|
|
145
|
-
resources: ['valkeys/finalizers'],
|
|
146
|
-
verbs: ['update'],
|
|
147
|
-
},
|
|
148
|
-
{
|
|
149
|
-
apiGroups: ['storage.k8s.io'],
|
|
150
|
-
resources: ['storageclasses'],
|
|
151
|
-
verbs: ['get', 'list', 'watch'],
|
|
152
|
-
},
|
|
153
|
-
{
|
|
154
|
-
apiGroups: ['cert-manager.io'],
|
|
155
|
-
resources: ['certificates'],
|
|
156
|
-
verbs: ['create', 'delete', 'get', 'list', 'patch', 'update', 'watch'],
|
|
157
|
-
},
|
|
158
|
-
{
|
|
159
|
-
apiGroups: ['cert-manager.io'],
|
|
160
|
-
resources: ['clusterissuers', 'issuers'],
|
|
161
|
-
verbs: ['get', 'list', 'watch'],
|
|
162
|
-
},
|
|
163
|
-
{
|
|
164
|
-
apiGroups: ['monitoring.coreos.com'],
|
|
165
|
-
resources: ['servicemonitors'],
|
|
166
|
-
verbs: ['create', 'delete', 'get', 'list', 'patch', 'update', 'watch'],
|
|
167
|
-
},
|
|
168
|
-
],
|
|
169
|
-
id: 'valkeyManagerRole',
|
|
170
|
-
});
|
|
171
|
-
const _managerRoleBinding = clusterRoleBinding({
|
|
172
|
-
metadata: {
|
|
173
|
-
name: `${spec.name}-${resolvedNamespace}-manager-rolebinding`,
|
|
174
|
-
labels: {
|
|
175
|
-
'app.kubernetes.io/name': 'valkey-operator',
|
|
176
|
-
'app.kubernetes.io/instance': spec.name,
|
|
177
|
-
'app.kubernetes.io/version': appVersion,
|
|
178
|
-
'app.kubernetes.io/managed-by': 'typekro',
|
|
179
|
-
},
|
|
180
|
-
},
|
|
181
|
-
roleRef: {
|
|
182
|
-
apiGroup: 'rbac.authorization.k8s.io',
|
|
183
|
-
kind: 'ClusterRole',
|
|
184
|
-
name: 'valkey-operator-manager-role',
|
|
185
|
-
},
|
|
186
|
-
subjects: [
|
|
187
|
-
{
|
|
188
|
-
kind: 'ServiceAccount',
|
|
189
|
-
name: 'valkey-operator-controller-manager',
|
|
190
|
-
namespace: resolvedNamespace,
|
|
191
|
-
},
|
|
192
|
-
],
|
|
193
|
-
id: 'valkeyManagerRoleBinding',
|
|
194
|
-
});
|
|
195
|
-
// Tag all resources with 'cluster' scope so factory-level
|
|
196
|
-
// deleteInstance leaves the operator install intact. Callers can
|
|
197
|
-
// opt in to tearing down shared infra with
|
|
198
|
-
// `deleteInstance(name, { scopes: ['cluster'] })`.
|
|
199
|
-
if (isShared) {
|
|
200
|
-
setMetadataField(_valkeyNamespace, 'scopes', ['cluster']);
|
|
201
|
-
setMetadataField(_helmRepository, 'scopes', ['cluster']);
|
|
202
|
-
setMetadataField(_helmRelease, 'scopes', ['cluster']);
|
|
203
|
-
setMetadataField(_managerRole, 'scopes', ['cluster']);
|
|
204
|
-
setMetadataField(_managerRoleBinding, 'scopes', ['cluster']);
|
|
205
|
-
}
|
|
206
94
|
// Status derived from HelmRelease conditions.
|
|
207
95
|
return {
|
|
208
96
|
ready: Cel.expr(_helmRelease.status.conditions, '.exists(c, c.type == "Ready" && c.status == "True")'),
|
|
@@ -215,7 +103,9 @@ export const valkeyBootstrap = kubernetesComposition({
|
|
|
215
103
|
// Static version from deploy-time config, not derived from live HelmRelease
|
|
216
104
|
// status. If the operator is upgraded out-of-band (e.g. Flux automation),
|
|
217
105
|
// this value will not reflect the running version.
|
|
218
|
-
version:
|
|
106
|
+
version: reportedVersion,
|
|
219
107
|
};
|
|
220
108
|
});
|
|
109
|
+
/** Explicit lifecycle name for code that wants to emphasize ownership. */
|
|
110
|
+
export const valkeyOperatorInstallation = valkeyBootstrap;
|
|
221
111
|
//# sourceMappingURL=valkey-bootstrap.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valkey-bootstrap.js","sourceRoot":"","sources":["../../../../src/factories/valkey/compositions/valkey-bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"valkey-bootstrap.js","sourceRoot":"","sources":["../../../../src/factories/valkey/compositions/valkey-bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared owner for the cluster-wide Hyperspike OCI HelmRepository.
|
|
3
|
+
*
|
|
4
|
+
* Keeping this resource outside each operator instance's ApplySet prevents
|
|
5
|
+
* cross-instance ownership conflicts and preserves its `flux-system` namespace
|
|
6
|
+
* in direct factory YAML. OCI HelmRepositories do not consistently publish a
|
|
7
|
+
* Ready condition, so existence is represented by its positive generation.
|
|
8
|
+
*/
|
|
9
|
+
export declare const valkeyHelmRepositoryBootstrap: import("../../../index.js").CallableComposition<{
|
|
10
|
+
name: string;
|
|
11
|
+
namespace: string;
|
|
12
|
+
url: string;
|
|
13
|
+
}, {
|
|
14
|
+
ready: boolean;
|
|
15
|
+
}>;
|
|
16
|
+
//# sourceMappingURL=valkey-helm-repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valkey-helm-repository.d.ts","sourceRoot":"","sources":["../../../../src/factories/valkey/compositions/valkey-helm-repository.ts"],"names":[],"mappings":"AAQA;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B;;;;;;EAmBzC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { kubernetesComposition } from '../../../core/composition/imperative.js';
|
|
2
|
+
import { Cel } from '../../../core/references/cel.js';
|
|
3
|
+
import { valkeyHelmRepository } from '../resources/helm.js';
|
|
4
|
+
import { ValkeyHelmRepositorySingletonSpecSchema, ValkeyHelmRepositorySingletonStatusSchema, } from '../types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Shared owner for the cluster-wide Hyperspike OCI HelmRepository.
|
|
7
|
+
*
|
|
8
|
+
* Keeping this resource outside each operator instance's ApplySet prevents
|
|
9
|
+
* cross-instance ownership conflicts and preserves its `flux-system` namespace
|
|
10
|
+
* in direct factory YAML. OCI HelmRepositories do not consistently publish a
|
|
11
|
+
* Ready condition, so existence is represented by its positive generation.
|
|
12
|
+
*/
|
|
13
|
+
export const valkeyHelmRepositoryBootstrap = kubernetesComposition({
|
|
14
|
+
name: 'valkey-helm-repository',
|
|
15
|
+
kind: 'ValkeyHelmRepository',
|
|
16
|
+
spec: ValkeyHelmRepositorySingletonSpecSchema,
|
|
17
|
+
status: ValkeyHelmRepositorySingletonStatusSchema,
|
|
18
|
+
}, (spec) => {
|
|
19
|
+
const repository = valkeyHelmRepository({
|
|
20
|
+
name: spec.name,
|
|
21
|
+
namespace: spec.namespace,
|
|
22
|
+
url: spec.url,
|
|
23
|
+
id: 'repository',
|
|
24
|
+
});
|
|
25
|
+
return {
|
|
26
|
+
ready: Cel.expr(repository.metadata.generation, ' > 0'),
|
|
27
|
+
};
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=valkey-helm-repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valkey-helm-repository.js","sourceRoot":"","sources":["../../../../src/factories/valkey/compositions/valkey-helm-repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EACL,uCAAuC,EACvC,yCAAyC,GAC1C,MAAM,aAAa,CAAC;AAErB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,qBAAqB,CAChE;IACE,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,uCAAuC;IAC7C,MAAM,EAAE,yCAAyC;CAClD,EACD,CAAC,IAAI,EAAE,EAAE;IACP,MAAM,UAAU,GAAG,oBAAoB,CAAC;QACtC,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,EAAE,EAAE,YAAY;KACjB,CAAC,CAAC;IAEH,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,IAAI,CAAU,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KACjE,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -8,9 +8,10 @@
|
|
|
8
8
|
* - `valkey()` — Valkey cluster (sharded with optional replicas)
|
|
9
9
|
* - `valkeyHelmRepository()` — Helm chart repository (OCI)
|
|
10
10
|
* - `valkeyHelmRelease()` — Operator installation via Helm
|
|
11
|
+
* - `valkeyHelmRepositoryBootstrap` — Low-level shared OCI repository owner
|
|
11
12
|
*
|
|
12
13
|
* ## Compositions
|
|
13
|
-
* - `valkeyBootstrap` — Complete operator deployment
|
|
14
|
+
* - `valkeyBootstrap` / `valkeyOperatorInstallation` — Complete, explicitly owned operator deployment
|
|
14
15
|
*
|
|
15
16
|
* @example
|
|
16
17
|
* ```typescript
|
|
@@ -18,7 +19,7 @@
|
|
|
18
19
|
*
|
|
19
20
|
* // Install the operator
|
|
20
21
|
* const operatorFactory = valkeyBootstrap.factory('kro', {
|
|
21
|
-
* namespace: '
|
|
22
|
+
* namespace: 'typekro-system', // KRO instance/control-plane namespace
|
|
22
23
|
* });
|
|
23
24
|
* await operatorFactory.deploy({
|
|
24
25
|
* name: 'valkey-operator',
|
|
@@ -33,7 +34,9 @@
|
|
|
33
34
|
* shards: 3,
|
|
34
35
|
* replicas: 1,
|
|
35
36
|
* storage: {
|
|
36
|
-
*
|
|
37
|
+
* spec: {
|
|
38
|
+
* resources: { requests: { storage: '10Gi' } },
|
|
39
|
+
* },
|
|
37
40
|
* },
|
|
38
41
|
* },
|
|
39
42
|
* id: 'appCache',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/factories/valkey/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/factories/valkey/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
|
|
@@ -8,9 +8,10 @@
|
|
|
8
8
|
* - `valkey()` — Valkey cluster (sharded with optional replicas)
|
|
9
9
|
* - `valkeyHelmRepository()` — Helm chart repository (OCI)
|
|
10
10
|
* - `valkeyHelmRelease()` — Operator installation via Helm
|
|
11
|
+
* - `valkeyHelmRepositoryBootstrap` — Low-level shared OCI repository owner
|
|
11
12
|
*
|
|
12
13
|
* ## Compositions
|
|
13
|
-
* - `valkeyBootstrap` — Complete operator deployment
|
|
14
|
+
* - `valkeyBootstrap` / `valkeyOperatorInstallation` — Complete, explicitly owned operator deployment
|
|
14
15
|
*
|
|
15
16
|
* @example
|
|
16
17
|
* ```typescript
|
|
@@ -18,7 +19,7 @@
|
|
|
18
19
|
*
|
|
19
20
|
* // Install the operator
|
|
20
21
|
* const operatorFactory = valkeyBootstrap.factory('kro', {
|
|
21
|
-
* namespace: '
|
|
22
|
+
* namespace: 'typekro-system', // KRO instance/control-plane namespace
|
|
22
23
|
* });
|
|
23
24
|
* await operatorFactory.deploy({
|
|
24
25
|
* name: 'valkey-operator',
|
|
@@ -33,7 +34,9 @@
|
|
|
33
34
|
* shards: 3,
|
|
34
35
|
* replicas: 1,
|
|
35
36
|
* storage: {
|
|
36
|
-
*
|
|
37
|
+
* spec: {
|
|
38
|
+
* resources: { requests: { storage: '10Gi' } },
|
|
39
|
+
* },
|
|
37
40
|
* },
|
|
38
41
|
* },
|
|
39
42
|
* id: 'appCache',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/factories/valkey/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/factories/valkey/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helm.d.ts","sourceRoot":"","sources":["../../../../src/factories/valkey/resources/helm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE9E,OAAO,KAAK,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEvF,0DAA0D;AAC1D,eAAO,MAAM,uBAAuB,6BAA6B,CAAC;AAElE,6EAA6E;AAC7E,eAAO,MAAM,sBAAsB,kBAAkB,CAAC;AAEtD,4CAA4C;AAC5C,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAE/D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,UAAU,CAAC,0BAA0B,CAAC,GAC7C,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,
|
|
1
|
+
{"version":3,"file":"helm.d.ts","sourceRoot":"","sources":["../../../../src/factories/valkey/resources/helm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE9E,OAAO,KAAK,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEvF,0DAA0D;AAC1D,eAAO,MAAM,uBAAuB,6BAA6B,CAAC;AAElE,6EAA6E;AAC7E,eAAO,MAAM,sBAAsB,kBAAkB,CAAC;AAEtD,4CAA4C;AAC5C,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAE/D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,UAAU,CAAC,0BAA0B,CAAC,GAC7C,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAcpD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,CAAC,uBAAuB,CAAC,GAC1C,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAyB9C"}
|
|
@@ -34,14 +34,15 @@ export const DEFAULT_VALKEY_REPO_NAME = 'valkey-operator-repo';
|
|
|
34
34
|
* ```
|
|
35
35
|
*/
|
|
36
36
|
export function valkeyHelmRepository(config) {
|
|
37
|
-
|
|
38
|
-
name: config.name
|
|
39
|
-
namespace: config.namespace
|
|
40
|
-
url: config.url
|
|
37
|
+
const repo = helmRepository({
|
|
38
|
+
name: config.name ?? DEFAULT_VALKEY_REPO_NAME,
|
|
39
|
+
namespace: config.namespace ?? DEFAULT_FLUX_NAMESPACE,
|
|
40
|
+
url: config.url ?? DEFAULT_VALKEY_REPO_URL,
|
|
41
41
|
type: 'oci',
|
|
42
|
-
interval: config.interval
|
|
42
|
+
interval: config.interval ?? '5m',
|
|
43
43
|
...(config.id && { id: config.id }),
|
|
44
44
|
}).withReadinessEvaluator(createHelmRepositoryReadinessEvaluator('Valkey'));
|
|
45
|
+
return repo;
|
|
45
46
|
}
|
|
46
47
|
/**
|
|
47
48
|
* Create a HelmRelease for the Hyperspike Valkey operator.
|
|
@@ -64,18 +65,19 @@ export function valkeyHelmRelease(config) {
|
|
|
64
65
|
// actually uses to resolve the chart. Both are required by the helmRelease factory.
|
|
65
66
|
return helmRelease({
|
|
66
67
|
name: config.name,
|
|
67
|
-
namespace: config.namespace
|
|
68
|
+
namespace: config.namespace ?? 'valkey-operator-system',
|
|
68
69
|
chart: {
|
|
69
|
-
repository: DEFAULT_VALKEY_REPO_URL,
|
|
70
|
+
repository: config.repositoryUrl ?? DEFAULT_VALKEY_REPO_URL,
|
|
70
71
|
name: 'valkey-operator',
|
|
71
|
-
version: config.version
|
|
72
|
+
version: config.version ?? DEFAULT_VALKEY_VERSION,
|
|
72
73
|
},
|
|
73
74
|
sourceRef: {
|
|
74
|
-
name: config.repositoryName
|
|
75
|
-
namespace: DEFAULT_FLUX_NAMESPACE,
|
|
75
|
+
name: config.repositoryName ?? DEFAULT_VALKEY_REPO_NAME,
|
|
76
|
+
namespace: config.repositoryNamespace ?? DEFAULT_FLUX_NAMESPACE,
|
|
76
77
|
kind: 'HelmRepository',
|
|
77
78
|
},
|
|
78
|
-
|
|
79
|
+
driftDetection: { mode: 'enabled' },
|
|
80
|
+
values: config.values ?? {},
|
|
79
81
|
...(config.id && { id: config.id }),
|
|
80
82
|
}).withReadinessEvaluator(createLabeledHelmReleaseEvaluator('Valkey'));
|
|
81
83
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helm.js","sourceRoot":"","sources":["../../../../src/factories/valkey/resources/helm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE1E,OAAO,EACL,sCAAsC,EACtC,cAAc,GAGf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iCAAiC,EAAE,MAAM,oCAAoC,CAAC;AAEvF,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD,0DAA0D;AAC1D,MAAM,CAAC,MAAM,uBAAuB,GAAG,0BAA0B,CAAC;AAElE,6EAA6E;AAC7E,MAAM,CAAC,MAAM,sBAAsB,GAAG,eAAe,CAAC;AAEtD,4CAA4C;AAC5C,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAE/D;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAA8C;IAE9C,
|
|
1
|
+
{"version":3,"file":"helm.js","sourceRoot":"","sources":["../../../../src/factories/valkey/resources/helm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE1E,OAAO,EACL,sCAAsC,EACtC,cAAc,GAGf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iCAAiC,EAAE,MAAM,oCAAoC,CAAC;AAEvF,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD,0DAA0D;AAC1D,MAAM,CAAC,MAAM,uBAAuB,GAAG,0BAA0B,CAAC;AAElE,6EAA6E;AAC7E,MAAM,CAAC,MAAM,sBAAsB,GAAG,eAAe,CAAC;AAEtD,4CAA4C;AAC5C,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAE/D;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAA8C;IAE9C,MAAM,IAAI,GAAG,cAAc,CAAC;QAC1B,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,wBAAwB;QAC7C,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,sBAAsB;QACrD,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,uBAAuB;QAC1C,IAAI,EAAE,KAAK;QACX,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;QACjC,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;KACpC,CAAC,CAAC,sBAAsB,CAAC,sCAAsC,CAAC,QAAQ,CAAC,CAGzE,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAA2C;IAE3C,sEAAsE;IAEtE,4EAA4E;IAC5E,oFAAoF;IACpF,OAAO,WAAW,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,wBAAwB;QACvD,KAAK,EAAE;YACL,UAAU,EAAE,MAAM,CAAC,aAAa,IAAI,uBAAuB;YAC3D,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,sBAAsB;SAClD;QACD,SAAS,EAAE;YACT,IAAI,EAAE,MAAM,CAAC,cAAc,IAAI,wBAAwB;YACvD,SAAS,EAAE,MAAM,CAAC,mBAAmB,IAAI,sBAAsB;YAC/D,IAAI,EAAE,gBAAgB;SACvB;QACD,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QACnC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;KACpC,CAAC,CAAC,sBAAsB,CAAC,iCAAiC,CAAC,QAAQ,CAAC,CAGpE,CAAC;AACJ,CAAC"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* @see https://github.com/hyperspike/valkey-operator
|
|
10
10
|
* @see https://doc.crds.dev/github.com/hyperspike/valkey-operator
|
|
11
11
|
*/
|
|
12
|
-
import type {
|
|
12
|
+
import type { TypeKroChartValue } from '../../core/types/common.js';
|
|
13
13
|
/**
|
|
14
14
|
* ArkType schema for the Valkey operator bootstrap configuration.
|
|
15
15
|
*
|
|
@@ -20,8 +20,11 @@ export declare const ValkeyBootstrapConfigSchema: import("arktype/internal/varia
|
|
|
20
20
|
name: string;
|
|
21
21
|
namespace?: string;
|
|
22
22
|
version?: string;
|
|
23
|
+
repositoryName?: string;
|
|
24
|
+
repositoryNamespace?: string;
|
|
25
|
+
repositoryUrl?: string;
|
|
26
|
+
values?: Record<string, unknown>;
|
|
23
27
|
customValues?: Record<string, unknown>;
|
|
24
|
-
shared?: boolean;
|
|
25
28
|
}, {}>;
|
|
26
29
|
/** Configuration for installing the Hyperspike Valkey operator via Helm. */
|
|
27
30
|
export type ValkeyBootstrapConfig = typeof ValkeyBootstrapConfigSchema.infer;
|
|
@@ -47,19 +50,20 @@ export declare const ValkeyConfigSchema: import("arktype/internal/variants/objec
|
|
|
47
50
|
servicePassword?: {
|
|
48
51
|
name: string;
|
|
49
52
|
key: string;
|
|
53
|
+
optional?: boolean;
|
|
50
54
|
};
|
|
51
55
|
tls?: boolean;
|
|
52
56
|
certIssuer?: string;
|
|
53
|
-
certIssuerType?:
|
|
57
|
+
certIssuerType?: "Issuer" | "ClusterIssuer";
|
|
54
58
|
storage?: {
|
|
55
|
-
spec
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
requests?: {
|
|
60
|
-
storage?: string;
|
|
59
|
+
spec: {
|
|
60
|
+
resources: {
|
|
61
|
+
requests: {
|
|
62
|
+
storage: string;
|
|
61
63
|
};
|
|
62
64
|
};
|
|
65
|
+
accessModes?: string[];
|
|
66
|
+
storageClassName?: string;
|
|
63
67
|
};
|
|
64
68
|
};
|
|
65
69
|
volumePermissions?: boolean;
|
|
@@ -73,14 +77,13 @@ export declare const ValkeyConfigSchema: import("arktype/internal/variants/objec
|
|
|
73
77
|
memory?: string;
|
|
74
78
|
};
|
|
75
79
|
};
|
|
76
|
-
platformManagedSecurityContext?: boolean;
|
|
77
80
|
clusterPreferredEndpointType?: "ip" | "hostname" | "unknown-endpoint";
|
|
78
81
|
externalAccess?: {
|
|
79
82
|
enabled?: boolean;
|
|
80
83
|
type?: "Proxy" | "LoadBalancer";
|
|
81
84
|
externalDNS?: boolean;
|
|
82
85
|
certIssuer?: string;
|
|
83
|
-
certIssuerType?:
|
|
86
|
+
certIssuerType?: "Issuer" | "ClusterIssuer";
|
|
84
87
|
proxy?: {
|
|
85
88
|
image?: string;
|
|
86
89
|
replicas?: number;
|
|
@@ -126,6 +129,7 @@ export interface ValkeyCondition {
|
|
|
126
129
|
reason: string;
|
|
127
130
|
message: string;
|
|
128
131
|
lastTransitionTime: string;
|
|
132
|
+
observedGeneration?: number;
|
|
129
133
|
}
|
|
130
134
|
/**
|
|
131
135
|
* Observed status of a Valkey cluster.
|
|
@@ -133,8 +137,6 @@ export interface ValkeyCondition {
|
|
|
133
137
|
export interface ValkeyStatus {
|
|
134
138
|
/** Whether the cluster is operational. */
|
|
135
139
|
ready?: boolean;
|
|
136
|
-
/** Cluster service hostname (derived from resource name). */
|
|
137
|
-
hostname?: string;
|
|
138
140
|
/** Status conditions. */
|
|
139
141
|
conditions?: ValkeyCondition[];
|
|
140
142
|
}
|
|
@@ -152,7 +154,7 @@ export interface ValkeyBootstrapStatus {
|
|
|
152
154
|
ready: boolean;
|
|
153
155
|
/** Whether the HelmRelease Ready condition is explicitly False. */
|
|
154
156
|
failed: boolean;
|
|
155
|
-
/**
|
|
157
|
+
/** Deployment-time version (the built-in default is normalized to the app version). */
|
|
156
158
|
version?: string;
|
|
157
159
|
}
|
|
158
160
|
/** ArkType schema for ValkeyBootstrapStatus. */
|
|
@@ -162,12 +164,21 @@ export declare const ValkeyBootstrapStatusSchema: import("arktype/internal/varia
|
|
|
162
164
|
failed: boolean;
|
|
163
165
|
version?: string;
|
|
164
166
|
}, {}>;
|
|
167
|
+
/** Spec accepted by the shared Valkey HelmRepository singleton. */
|
|
168
|
+
export declare const ValkeyHelmRepositorySingletonSpecSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
169
|
+
name: string;
|
|
170
|
+
namespace: string;
|
|
171
|
+
url: string;
|
|
172
|
+
}, {}>;
|
|
173
|
+
/** Status surfaced by the shared Valkey HelmRepository singleton. */
|
|
174
|
+
export declare const ValkeyHelmRepositorySingletonStatusSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
175
|
+
ready: boolean;
|
|
176
|
+
}, {}>;
|
|
165
177
|
/** ArkType schema for the Valkey operator Helm chart repository configuration. */
|
|
166
178
|
export declare const ValkeyHelmRepositoryConfigSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
167
179
|
name?: string;
|
|
168
180
|
namespace?: string;
|
|
169
181
|
url?: string;
|
|
170
|
-
type?: "default" | "oci";
|
|
171
182
|
interval?: string;
|
|
172
183
|
id?: string;
|
|
173
184
|
}, {}>;
|
|
@@ -180,11 +191,13 @@ export declare const ValkeyHelmReleaseConfigSchema: import("arktype/internal/var
|
|
|
180
191
|
version?: string;
|
|
181
192
|
values?: Record<string, unknown>;
|
|
182
193
|
repositoryName?: string;
|
|
194
|
+
repositoryNamespace?: string;
|
|
195
|
+
repositoryUrl?: string;
|
|
183
196
|
id?: string;
|
|
184
197
|
}, {}>;
|
|
185
198
|
/** Configuration for the Valkey operator Helm release. */
|
|
186
199
|
export type ValkeyHelmReleaseConfig = Omit<typeof ValkeyHelmReleaseConfigSchema.infer, 'values'> & {
|
|
187
200
|
/** Graph-aware Helm values serialized recursively by TypeKro. */
|
|
188
|
-
values?:
|
|
201
|
+
values?: TypeKroChartValue<Record<string, unknown>>;
|
|
189
202
|
};
|
|
190
203
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/factories/valkey/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/factories/valkey/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAyBpE;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;MAiBtC,CAAC;AAEH,4EAA4E;AAC5E,MAAM,MAAM,qBAAqB,GAAG,OAAO,2BAA2B,CAAC,KAAK,CAAC;AAM7E;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6G7B,CAAC;AAEH,qDAAqD;AACrD,MAAM,MAAM,YAAY,GAAG,OAAO,kBAAkB,CAAC,KAAK,CAAC;AAM3D,6CAA6C;AAC7C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,0CAA0C;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yBAAyB;IACzB,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,KAAK,EAAE,OAAO,GAAG,YAAY,CAAC;IAC9B,+DAA+D;IAC/D,KAAK,EAAE,OAAO,CAAC;IACf,mEAAmE;IACnE,MAAM,EAAE,OAAO,CAAC;IAChB,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,gDAAgD;AAChD,eAAO,MAAM,2BAA2B;;;;;MAKtC,CAAC;AAMH,mEAAmE;AACnE,eAAO,MAAM,uCAAuC;;;;MAIlD,CAAC;AAEH,qEAAqE;AACrE,eAAO,MAAM,yCAAyC;;MAEpD,CAAC;AAMH,kFAAkF;AAClF,eAAO,MAAM,gCAAgC;;;;;;MAW3C,CAAC;AAEH,mEAAmE;AACnE,MAAM,MAAM,0BAA0B,GAAG,OAAO,gCAAgC,CAAC,KAAK,CAAC;AAEvF,yEAAyE;AACzE,eAAO,MAAM,6BAA6B;;;;;;;;;MAexC,CAAC;AAEH,0DAA0D;AAC1D,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,OAAO,6BAA6B,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG;IACjG,iEAAiE;IACjE,MAAM,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACrD,CAAC"}
|