@r8s/recipes 0.1.0 → 0.2.1
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/app.d.ts +11 -2
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +16 -13
- package/dist/app.js.map +1 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +48 -84
- package/dist/auth.js.map +1 -1
- package/dist/database.d.ts +97 -5
- package/dist/database.d.ts.map +1 -1
- package/dist/database.js +196 -86
- package/dist/database.js.map +1 -1
- package/dist/dns-provider.js +1 -1
- package/dist/dns-provider.js.map +1 -1
- package/dist/endpoint-provider.d.ts.map +1 -1
- package/dist/endpoint-provider.js +22 -2
- package/dist/endpoint-provider.js.map +1 -1
- package/dist/endpoint.d.ts +18 -1
- package/dist/endpoint.d.ts.map +1 -1
- package/dist/endpoint.js +92 -37
- package/dist/endpoint.js.map +1 -1
- package/dist/errors.d.ts +16 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +19 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -1
- package/dist/index.js.map +1 -1
- package/dist/operators.d.ts +16 -2
- package/dist/operators.d.ts.map +1 -1
- package/dist/operators.js +26 -0
- package/dist/operators.js.map +1 -1
- package/dist/platform.d.ts +9 -0
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js.map +1 -1
- package/dist/r8s-cluster.d.ts +105 -0
- package/dist/r8s-cluster.d.ts.map +1 -0
- package/dist/r8s-cluster.js +187 -0
- package/dist/r8s-cluster.js.map +1 -0
- package/dist/secret-provider.d.ts +15 -2
- package/dist/secret-provider.d.ts.map +1 -1
- package/dist/secret-provider.js +77 -1
- package/dist/secret-provider.js.map +1 -1
- package/dist/static-secret.d.ts +107 -0
- package/dist/static-secret.d.ts.map +1 -0
- package/dist/static-secret.js +87 -0
- package/dist/static-secret.js.map +1 -0
- package/dist/web-service.d.ts +97 -0
- package/dist/web-service.d.ts.map +1 -1
- package/dist/web-service.js +117 -17
- package/dist/web-service.js.map +1 -1
- package/package.json +4 -4
package/dist/endpoint.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Endpoint = Endpoint;
|
|
4
4
|
const core_1 = require("@r8s/core");
|
|
5
5
|
const defaults_1 = require("@r8s/core/defaults");
|
|
6
|
+
const defaults_2 = require("@r8s/core/defaults");
|
|
6
7
|
const endpoint_provider_1 = require("./endpoint-provider");
|
|
7
8
|
const operators_1 = require("./operators");
|
|
8
9
|
const crds_1 = require("@r8s/crds");
|
|
@@ -37,18 +38,38 @@ const dns_provider_1 = require("./dns-provider");
|
|
|
37
38
|
* )
|
|
38
39
|
*/
|
|
39
40
|
function Endpoint(props) {
|
|
40
|
-
const { name, namespace
|
|
41
|
-
const
|
|
41
|
+
const { name, namespace: namespaceProp, host, serviceName, servicePort = 80, path, pathType, tls, annotations = {}, dns, dnsTtl = 300, sharedGateway, } = props;
|
|
42
|
+
const namespace = (0, defaults_1.useNamespace)(namespaceProp);
|
|
43
|
+
const routing = (0, core_1.useContext)(defaults_2.RoutingContext);
|
|
42
44
|
const endpointConfig = (0, core_1.useContext)(endpoint_provider_1.EndpointContext);
|
|
43
|
-
const sharedOperators = (0, core_1.useContext)(
|
|
45
|
+
const sharedOperators = (0, core_1.useContext)(defaults_2.OperatorContext);
|
|
44
46
|
const dnsConfig = (0, core_1.useContext)(dns_provider_1.DnsContext);
|
|
45
47
|
// DNS defaults to true when DnsProvider is set, unless explicitly disabled
|
|
46
48
|
const createDnsRecord = dns ?? dnsConfig !== null;
|
|
49
|
+
// Custom route provisioner hook: a RoutingConfig carrying route() owns the
|
|
50
|
+
// whole render for this endpoint (custom ingress controllers / L7 stacks)
|
|
51
|
+
if (routing.route) {
|
|
52
|
+
const el = routing.route({
|
|
53
|
+
name,
|
|
54
|
+
namespace,
|
|
55
|
+
host,
|
|
56
|
+
serviceName,
|
|
57
|
+
servicePort,
|
|
58
|
+
pathPrefix: path,
|
|
59
|
+
annotations,
|
|
60
|
+
tls,
|
|
61
|
+
});
|
|
62
|
+
return Array.isArray(el) ? (0, core_1.jsx)(core_1.Fragment, { children: el }) : el;
|
|
63
|
+
}
|
|
64
|
+
// Mode resolution: the Platform RoutingContext describes the cluster, but
|
|
65
|
+
// an explicit EndpointProvider with <EnvoyGateway /> opts this endpoint
|
|
66
|
+
// into Gateway API even without a Platform (or CLI route-level default)
|
|
67
|
+
const gatewayMode = routing.mode === 'gateway' || endpointConfig.provider === 'envoy-gateway';
|
|
47
68
|
const resources = [];
|
|
48
|
-
if (
|
|
49
|
-
const gatewayClassName = routing.gatewayClassName
|
|
69
|
+
if (gatewayMode) {
|
|
70
|
+
const gatewayClassName = endpointConfig.settings?.gatewayClassName ?? routing.gatewayClassName ?? 'eg';
|
|
50
71
|
const secretName = tls?.secretName || `${name}-tls`;
|
|
51
|
-
const issuerName = tls?.clusterIssuer
|
|
72
|
+
const issuerName = tls?.clusterIssuer ?? endpointConfig.settings?.tls?.clusterIssuer ?? 'letsencrypt-prod';
|
|
52
73
|
const hasCertManager = sharedOperators.some((op) => op.name === 'cert-manager');
|
|
53
74
|
const hasEnvoyGateway = sharedOperators.some((op) => op.name === 'envoy-gateway');
|
|
54
75
|
if (tls && !hasCertManager) {
|
|
@@ -77,46 +98,77 @@ function Endpoint(props) {
|
|
|
77
98
|
}
|
|
78
99
|
// HTTPS listener with TLS, HTTP listener without
|
|
79
100
|
const useHttps = !!tls;
|
|
80
|
-
|
|
101
|
+
// Only create a Gateway when no sharedGateway is provided.
|
|
102
|
+
// When sharedGateway is set, attach an HTTPRoute to the existing
|
|
103
|
+
// gateway instead of allocating a new LoadBalancer IP.
|
|
104
|
+
if (!sharedGateway) {
|
|
105
|
+
resources.push((0, core_1.jsx)('Gateway', {
|
|
106
|
+
apiVersion: 'gateway.networking.k8s.io/v1',
|
|
107
|
+
kind: 'Gateway',
|
|
108
|
+
metadata: {
|
|
109
|
+
name: `${name}-gateway`,
|
|
110
|
+
namespace,
|
|
111
|
+
// ExternalDNS gateway source picks up hostnames from this annotation
|
|
112
|
+
...(createDnsRecord && {
|
|
113
|
+
annotations: {
|
|
114
|
+
'external-dns.alpha.kubernetes.io/hostname': host,
|
|
115
|
+
},
|
|
116
|
+
}),
|
|
117
|
+
},
|
|
118
|
+
spec: {
|
|
119
|
+
gatewayClassName,
|
|
120
|
+
listeners: [
|
|
121
|
+
{
|
|
122
|
+
name: useHttps ? 'https' : 'http',
|
|
123
|
+
protocol: useHttps ? 'HTTPS' : 'HTTP',
|
|
124
|
+
port: useHttps ? 443 : 80,
|
|
125
|
+
hostname: host,
|
|
126
|
+
...(tls && {
|
|
127
|
+
tls: {
|
|
128
|
+
mode: 'Terminate',
|
|
129
|
+
certificateRefs: [{ name: secretName }],
|
|
130
|
+
},
|
|
131
|
+
}),
|
|
132
|
+
},
|
|
133
|
+
],
|
|
134
|
+
},
|
|
135
|
+
}));
|
|
136
|
+
}
|
|
137
|
+
const parentRef = sharedGateway
|
|
138
|
+
? {
|
|
139
|
+
name: sharedGateway.name,
|
|
140
|
+
...(sharedGateway.namespace && { namespace: sharedGateway.namespace }),
|
|
141
|
+
}
|
|
142
|
+
: { name: `${name}-gateway` };
|
|
143
|
+
resources.push((0, core_1.jsx)('HTTPRoute', {
|
|
81
144
|
apiVersion: 'gateway.networking.k8s.io/v1',
|
|
82
|
-
kind: '
|
|
145
|
+
kind: 'HTTPRoute',
|
|
83
146
|
metadata: {
|
|
84
|
-
name: `${name}-
|
|
147
|
+
name: `${name}-route`,
|
|
85
148
|
namespace,
|
|
86
|
-
// ExternalDNS
|
|
87
|
-
...(createDnsRecord &&
|
|
149
|
+
// ExternalDNS picks up hostnames from HTTPRoute annotations
|
|
150
|
+
...(createDnsRecord &&
|
|
151
|
+
sharedGateway && {
|
|
88
152
|
annotations: {
|
|
89
153
|
'external-dns.alpha.kubernetes.io/hostname': host,
|
|
90
154
|
},
|
|
91
155
|
}),
|
|
92
156
|
},
|
|
93
157
|
spec: {
|
|
94
|
-
|
|
95
|
-
listeners: [
|
|
96
|
-
{
|
|
97
|
-
name: useHttps ? 'https' : 'http',
|
|
98
|
-
protocol: useHttps ? 'HTTPS' : 'HTTP',
|
|
99
|
-
port: useHttps ? 443 : 80,
|
|
100
|
-
hostname: host,
|
|
101
|
-
...(tls && {
|
|
102
|
-
tls: {
|
|
103
|
-
mode: 'Terminate',
|
|
104
|
-
certificateRefs: [{ name: secretName }],
|
|
105
|
-
},
|
|
106
|
-
}),
|
|
107
|
-
},
|
|
108
|
-
],
|
|
109
|
-
},
|
|
110
|
-
}));
|
|
111
|
-
resources.push((0, core_1.jsx)('HTTPRoute', {
|
|
112
|
-
apiVersion: 'gateway.networking.k8s.io/v1',
|
|
113
|
-
kind: 'HTTPRoute',
|
|
114
|
-
metadata: { name: `${name}-route`, namespace },
|
|
115
|
-
spec: {
|
|
116
|
-
parentRefs: [{ name: `${name}-gateway` }],
|
|
158
|
+
parentRefs: [parentRef],
|
|
117
159
|
hostnames: [host],
|
|
118
160
|
rules: [
|
|
119
161
|
{
|
|
162
|
+
...(path && {
|
|
163
|
+
matches: [
|
|
164
|
+
{
|
|
165
|
+
path: {
|
|
166
|
+
type: 'PathPrefix',
|
|
167
|
+
value: path,
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
],
|
|
171
|
+
}),
|
|
120
172
|
backendRefs: [{ name: serviceName, port: servicePort }],
|
|
121
173
|
},
|
|
122
174
|
],
|
|
@@ -139,7 +191,10 @@ function Endpoint(props) {
|
|
|
139
191
|
name,
|
|
140
192
|
namespace,
|
|
141
193
|
annotations: {
|
|
142
|
-
|
|
194
|
+
// NOTE: no rewrite-target on host-level routes — setting it to
|
|
195
|
+
// '/' rewrites EVERY request path to '/' and breaks path-based
|
|
196
|
+
// upstreams (webhooks, APIs, OAuth callbacks). Set annotations
|
|
197
|
+
// explicitly when a captured-regex path needs one.
|
|
143
198
|
// ExternalDNS ingress source picks up hostnames from this annotation
|
|
144
199
|
...(createDnsRecord ? { 'external-dns.alpha.kubernetes.io/hostname': host } : {}),
|
|
145
200
|
...(tls?.clusterIssuer
|
|
@@ -158,8 +213,8 @@ function Endpoint(props) {
|
|
|
158
213
|
http: {
|
|
159
214
|
paths: [
|
|
160
215
|
{
|
|
161
|
-
path: '/',
|
|
162
|
-
pathType: 'Prefix',
|
|
216
|
+
path: path ?? '/',
|
|
217
|
+
pathType: pathType ?? 'Prefix',
|
|
163
218
|
backend: {
|
|
164
219
|
service: {
|
|
165
220
|
name: serviceName,
|
package/dist/endpoint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.tsx"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.tsx"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Actionable errors for the recurring "app needs secrets but no
|
|
3
|
+
* provisioning backend exists" case. Packages reference this factory
|
|
4
|
+
* instead of hand-writing the same 15-line guidance block per app —
|
|
5
|
+
* the advice lives in one place.
|
|
6
|
+
*/
|
|
7
|
+
export interface SecretsRequiredOptions {
|
|
8
|
+
/** Prop that carries the fallback pre-created Secret name */
|
|
9
|
+
propName?: string;
|
|
10
|
+
/** Example Secret name to suggest */
|
|
11
|
+
exampleValue?: string;
|
|
12
|
+
/** Expected keys on the pre-created Secret */
|
|
13
|
+
keys?: string[];
|
|
14
|
+
}
|
|
15
|
+
export declare function secretsRequiredError(app: string, resourceName: string, what: string, opts?: SecretsRequiredOptions): Error;
|
|
16
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,qCAAqC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,sBAA2B,GAChC,KAAK,CAgBP"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.secretsRequiredError = secretsRequiredError;
|
|
4
|
+
function secretsRequiredError(app, resourceName, what, opts = {}) {
|
|
5
|
+
const { propName = 'secretsName', exampleValue = `${resourceName}-secrets`, keys } = opts;
|
|
6
|
+
return new Error(`${app} "${resourceName}" requires ${what}\n` +
|
|
7
|
+
`\n` +
|
|
8
|
+
`Secrets must never be rendered as plaintext.\n` +
|
|
9
|
+
`\n` +
|
|
10
|
+
`Fix: configure a provisioning secrets backend on the Platform\n` +
|
|
11
|
+
`(openbao, vault, or any provider with a provision() hook):\n` +
|
|
12
|
+
` <Platform secrets={{ backend: 'openbao', mount: 'kv', path: 'apps' }}>\n` +
|
|
13
|
+
` <${app} name="${resourceName}" />\n` +
|
|
14
|
+
` </Platform>\n` +
|
|
15
|
+
`\n` +
|
|
16
|
+
`Or reference a pre-created Secret${keys ? ` (keys: ${keys.join(', ')})` : ''}:\n` +
|
|
17
|
+
` ${propName}: "${exampleValue}"`);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;AAeA,oDAqBC;AArBD,SAAgB,oBAAoB,CAClC,GAAW,EACX,YAAoB,EACpB,IAAY,EACZ,OAA+B,EAAE;IAEjC,MAAM,EAAE,QAAQ,GAAG,aAAa,EAAE,YAAY,GAAG,GAAG,YAAY,UAAU,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;IACzF,OAAO,IAAI,KAAK,CACd,GAAG,GAAG,KAAK,YAAY,cAAc,IAAI,IAAI;QAC3C,IAAI;QACJ,gDAAgD;QAChD,IAAI;QACJ,iEAAiE;QACjE,8DAA8D;QAC9D,4EAA4E;QAC5E,QAAQ,GAAG,UAAU,YAAY,QAAQ;QACzC,iBAAiB;QACjB,IAAI;QACJ,oCAAoC,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK;QAClF,KAAK,QAAQ,MAAM,YAAY,GAAG,CACrC,CAAA;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { Platform, type PlatformProps, type RoutingMode } from './platform';
|
|
2
|
+
export { R8sCluster, type R8sClusterProps } from './r8s-cluster';
|
|
2
3
|
export { App, type AppProps } from './app';
|
|
3
4
|
export { Database, type DatabaseProps } from './database';
|
|
4
5
|
export { Endpoint, type EndpointProps } from './endpoint';
|
|
@@ -6,9 +7,12 @@ export { WebService, type WebServiceProps, type SecretRef, type VaultSecretRef,
|
|
|
6
7
|
export { Auth, type AuthProps } from './auth';
|
|
7
8
|
export { Monitoring, type MonitoringProps } from './monitoring';
|
|
8
9
|
export { Backup, type BackupProps } from './backup';
|
|
9
|
-
export { SecretProvider, type SecretProviderProps, type SecretProviderValue, OpenBao, type OpenBaoProps, Vault, type VaultProps, SealedSecrets, type SealedSecretsProps, ManualSecrets, type ManualSecretsProps, } from './secret-provider';
|
|
10
|
+
export { SecretProvider, type SecretProviderProps, type SecretProviderValue, OpenBao, type OpenBaoProps, Vault, type VaultProps, SealedSecrets, type SealedSecretsProps, ManualSecrets, type ManualSecretsProps, provisionerForSecretProvider, canProvisionSecrets, } from './secret-provider';
|
|
10
11
|
export { DnsProvider, type DnsProviderProps, type DnsProviderValue, type DnsConfig, DnsContext, ExternalDns, type ExternalDnsProps, } from './dns-provider';
|
|
11
12
|
export { EndpointProvider, type EndpointProviderProps, type EndpointProviderValue, type EndpointConfig, EndpointContext, Nginx, type NginxProps, EnvoyGateway, type EnvoyGatewayProps, } from './endpoint-provider';
|
|
12
13
|
export { CertProvider, type CertProviderProps, type CertProviderValue, type CertConfig, CertContext, CertManager, type CertManagerProps, } from './cert-provider';
|
|
13
14
|
export { cnpgOperator, nginxIngressOperator, vaultSecretsOperator } from './operators';
|
|
15
|
+
export { StaticSecret, type StaticSecretProps } from './static-secret';
|
|
16
|
+
export { useOperators, maybeOperator } from './operators';
|
|
17
|
+
export { secretsRequiredError, type SecretsRequiredOptions } from './errors';
|
|
14
18
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AAC3E,OAAO,EAAE,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AACzD,OAAO,EACL,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,cAAc,GACpB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAA;AAGnD,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,OAAO,EACP,KAAK,YAAY,EACjB,KAAK,EACL,KAAK,UAAU,EACf,aAAa,EACb,KAAK,kBAAkB,EACvB,aAAa,EACb,KAAK,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AAC3E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,EAAE,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AACzD,OAAO,EACL,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,cAAc,GACpB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAA;AAGnD,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,OAAO,EACP,KAAK,YAAY,EACjB,KAAK,EACL,KAAK,UAAU,EACf,aAAa,EACb,KAAK,kBAAkB,EACvB,aAAa,EACb,KAAK,kBAAkB,EACvB,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,WAAW,EACX,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,UAAU,EACV,WAAW,EACX,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,eAAe,EACf,KAAK,EACL,KAAK,UAAU,EACf,YAAY,EACZ,KAAK,iBAAiB,GACvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,WAAW,EACX,WAAW,EACX,KAAK,gBAAgB,GACtB,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAEtF,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAGtE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAE,KAAK,sBAAsB,EAAE,MAAM,UAAU,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -4,9 +4,11 @@
|
|
|
4
4
|
// with good defaults. Named after what the user wants to achieve, not the
|
|
5
5
|
// underlying tools.
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.vaultSecretsOperator = exports.nginxIngressOperator = exports.cnpgOperator = exports.CertManager = exports.CertContext = exports.CertProvider = exports.EnvoyGateway = exports.Nginx = exports.EndpointContext = exports.EndpointProvider = exports.ExternalDns = exports.DnsContext = exports.DnsProvider = exports.ManualSecrets = exports.SealedSecrets = exports.Vault = exports.OpenBao = exports.SecretProvider = exports.Backup = exports.Monitoring = exports.Auth = exports.WebService = exports.Endpoint = exports.Database = exports.App = exports.Platform = void 0;
|
|
7
|
+
exports.secretsRequiredError = exports.maybeOperator = exports.useOperators = exports.StaticSecret = exports.vaultSecretsOperator = exports.nginxIngressOperator = exports.cnpgOperator = exports.CertManager = exports.CertContext = exports.CertProvider = exports.EnvoyGateway = exports.Nginx = exports.EndpointContext = exports.EndpointProvider = exports.ExternalDns = exports.DnsContext = exports.DnsProvider = exports.canProvisionSecrets = exports.provisionerForSecretProvider = exports.ManualSecrets = exports.SealedSecrets = exports.Vault = exports.OpenBao = exports.SecretProvider = exports.Backup = exports.Monitoring = exports.Auth = exports.WebService = exports.Endpoint = exports.Database = exports.App = exports.R8sCluster = exports.Platform = void 0;
|
|
8
8
|
var platform_1 = require("./platform");
|
|
9
9
|
Object.defineProperty(exports, "Platform", { enumerable: true, get: function () { return platform_1.Platform; } });
|
|
10
|
+
var r8s_cluster_1 = require("./r8s-cluster");
|
|
11
|
+
Object.defineProperty(exports, "R8sCluster", { enumerable: true, get: function () { return r8s_cluster_1.R8sCluster; } });
|
|
10
12
|
var app_1 = require("./app");
|
|
11
13
|
Object.defineProperty(exports, "App", { enumerable: true, get: function () { return app_1.App; } });
|
|
12
14
|
var database_1 = require("./database");
|
|
@@ -28,6 +30,8 @@ Object.defineProperty(exports, "OpenBao", { enumerable: true, get: function () {
|
|
|
28
30
|
Object.defineProperty(exports, "Vault", { enumerable: true, get: function () { return secret_provider_1.Vault; } });
|
|
29
31
|
Object.defineProperty(exports, "SealedSecrets", { enumerable: true, get: function () { return secret_provider_1.SealedSecrets; } });
|
|
30
32
|
Object.defineProperty(exports, "ManualSecrets", { enumerable: true, get: function () { return secret_provider_1.ManualSecrets; } });
|
|
33
|
+
Object.defineProperty(exports, "provisionerForSecretProvider", { enumerable: true, get: function () { return secret_provider_1.provisionerForSecretProvider; } });
|
|
34
|
+
Object.defineProperty(exports, "canProvisionSecrets", { enumerable: true, get: function () { return secret_provider_1.canProvisionSecrets; } });
|
|
31
35
|
var dns_provider_1 = require("./dns-provider");
|
|
32
36
|
Object.defineProperty(exports, "DnsProvider", { enumerable: true, get: function () { return dns_provider_1.DnsProvider; } });
|
|
33
37
|
Object.defineProperty(exports, "DnsContext", { enumerable: true, get: function () { return dns_provider_1.DnsContext; } });
|
|
@@ -46,4 +50,12 @@ var operators_1 = require("./operators");
|
|
|
46
50
|
Object.defineProperty(exports, "cnpgOperator", { enumerable: true, get: function () { return operators_1.cnpgOperator; } });
|
|
47
51
|
Object.defineProperty(exports, "nginxIngressOperator", { enumerable: true, get: function () { return operators_1.nginxIngressOperator; } });
|
|
48
52
|
Object.defineProperty(exports, "vaultSecretsOperator", { enumerable: true, get: function () { return operators_1.vaultSecretsOperator; } });
|
|
53
|
+
var static_secret_1 = require("./static-secret");
|
|
54
|
+
Object.defineProperty(exports, "StaticSecret", { enumerable: true, get: function () { return static_secret_1.StaticSecret; } });
|
|
55
|
+
// Composition helpers — loose building blocks for packages
|
|
56
|
+
var operators_2 = require("./operators");
|
|
57
|
+
Object.defineProperty(exports, "useOperators", { enumerable: true, get: function () { return operators_2.useOperators; } });
|
|
58
|
+
Object.defineProperty(exports, "maybeOperator", { enumerable: true, get: function () { return operators_2.maybeOperator; } });
|
|
59
|
+
var errors_1 = require("./errors");
|
|
60
|
+
Object.defineProperty(exports, "secretsRequiredError", { enumerable: true, get: function () { return errors_1.secretsRequiredError; } });
|
|
49
61
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,wDAAwD;AACxD,4EAA4E;AAC5E,0EAA0E;AAC1E,oBAAoB;;;AAEpB,uCAA2E;AAAlE,oGAAA,QAAQ,OAAA;AACjB,6BAA0C;AAAjC,0FAAA,GAAG,OAAA;AACZ,uCAAyD;AAAhD,oGAAA,QAAQ,OAAA;AACjB,uCAAyD;AAAhD,oGAAA,QAAQ,OAAA;AACjB,6CAKsB;AAJpB,yGAAA,UAAU,OAAA;AAKZ,+BAA6C;AAApC,4FAAA,IAAI,OAAA;AACb,2CAA+D;AAAtD,wGAAA,UAAU,OAAA;AACnB,mCAAmD;AAA1C,gGAAA,MAAM,OAAA;AAEf,wEAAwE;AACxE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,wDAAwD;AACxD,4EAA4E;AAC5E,0EAA0E;AAC1E,oBAAoB;;;AAEpB,uCAA2E;AAAlE,oGAAA,QAAQ,OAAA;AACjB,6CAAgE;AAAvD,yGAAA,UAAU,OAAA;AACnB,6BAA0C;AAAjC,0FAAA,GAAG,OAAA;AACZ,uCAAyD;AAAhD,oGAAA,QAAQ,OAAA;AACjB,uCAAyD;AAAhD,oGAAA,QAAQ,OAAA;AACjB,6CAKsB;AAJpB,yGAAA,UAAU,OAAA;AAKZ,+BAA6C;AAApC,4FAAA,IAAI,OAAA;AACb,2CAA+D;AAAtD,wGAAA,UAAU,OAAA;AACnB,mCAAmD;AAA1C,gGAAA,MAAM,OAAA;AAEf,wEAAwE;AACxE,qDAc0B;AAbxB,iHAAA,cAAc,OAAA;AAGd,0GAAA,OAAO,OAAA;AAEP,wGAAA,KAAK,OAAA;AAEL,gHAAA,aAAa,OAAA;AAEb,gHAAA,aAAa,OAAA;AAEb,+HAAA,4BAA4B,OAAA;AAC5B,sHAAA,mBAAmB,OAAA;AAErB,+CAQuB;AAPrB,2GAAA,WAAW,OAAA;AAIX,0GAAA,UAAU,OAAA;AACV,2GAAA,WAAW,OAAA;AAGb,yDAU4B;AAT1B,qHAAA,gBAAgB,OAAA;AAIhB,oHAAA,eAAe,OAAA;AACf,0GAAA,KAAK,OAAA;AAEL,iHAAA,YAAY,OAAA;AAGd,iDAQwB;AAPtB,6GAAA,YAAY,OAAA;AAIZ,4GAAA,WAAW,OAAA;AACX,4GAAA,WAAW,OAAA;AAIb,uDAAuD;AACvD,yCAAsF;AAA7E,yGAAA,YAAY,OAAA;AAAE,iHAAA,oBAAoB,OAAA;AAAE,iHAAA,oBAAoB,OAAA;AAEjE,iDAAsE;AAA7D,6GAAA,YAAY,OAAA;AAErB,2DAA2D;AAC3D,yCAAyD;AAAhD,yGAAA,YAAY,OAAA;AAAE,0GAAA,aAAa,OAAA;AACpC,mCAA4E;AAAnE,8GAAA,oBAAoB,OAAA"}
|
package/dist/operators.d.ts
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
|
+
import { declareOperator } from '@r8s/core';
|
|
2
|
+
import type { Operator } from '@r8s/k8s-types';
|
|
3
|
+
/**
|
|
4
|
+
* Read the operators already declared by the Platform tree. Packages call
|
|
5
|
+
* this once (unconditionally) and pass the result to maybeOperator() —
|
|
6
|
+
* no sharedOperators.some(...) boilerplate in every package.
|
|
7
|
+
*/
|
|
8
|
+
export declare function useOperators(): Operator[];
|
|
9
|
+
/**
|
|
10
|
+
* Declare an operator unless the Platform already provides it. Returns
|
|
11
|
+
* [] (nothing to add) or a one-element array — spread into resources:
|
|
12
|
+
* `resources_.push(...maybeOperator('redis-operator', shared))`
|
|
13
|
+
*/
|
|
14
|
+
export declare function maybeOperator(name: string, shared: Operator[], version?: string): ReturnType<typeof declareOperator>[];
|
|
1
15
|
/** CloudNativePG operator declaration */
|
|
2
|
-
export declare const cnpgOperator: (version?: string) =>
|
|
16
|
+
export declare const cnpgOperator: (version?: string) => Operator;
|
|
3
17
|
/** NGINX Ingress Controller operator declaration (not in operators.yaml — nginx-specific) */
|
|
4
18
|
export declare const nginxIngressOperator: (version?: string) => {
|
|
5
19
|
name: string;
|
|
@@ -15,5 +29,5 @@ export declare const nginxIngressOperator: (version?: string) => {
|
|
|
15
29
|
installCommand: string;
|
|
16
30
|
};
|
|
17
31
|
/** Vault Secrets Operator declaration */
|
|
18
|
-
export declare const vaultSecretsOperator: (version?: string) =>
|
|
32
|
+
export declare const vaultSecretsOperator: (version?: string) => Operator;
|
|
19
33
|
//# sourceMappingURL=operators.d.ts.map
|
package/dist/operators.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../src/operators.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../src/operators.ts"],"names":[],"mappings":"AAOA,OAAO,EAAc,eAAe,EAAE,MAAM,WAAW,CAAA;AAEvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAE9C;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,QAAQ,EAAE,CAEzC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,QAAQ,EAAE,EAClB,OAAO,CAAC,EAAE,MAAM,GACf,UAAU,CAAC,OAAO,eAAe,CAAC,EAAE,CAMtC;AAED,yCAAyC;AACzC,eAAO,MAAM,YAAY,gCAAoB,CAAA;AAE7C,6FAA6F;AAC7F,eAAO,MAAM,oBAAoB,GAAI,gBAAkB;;;;;;;;;;;;CAYrD,CAAA;AAEF,yCAAyC;AACzC,eAAO,MAAM,oBAAoB,gCAAsC,CAAA"}
|
package/dist/operators.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.vaultSecretsOperator = exports.nginxIngressOperator = exports.cnpgOperator = void 0;
|
|
4
|
+
exports.useOperators = useOperators;
|
|
5
|
+
exports.maybeOperator = maybeOperator;
|
|
4
6
|
/**
|
|
5
7
|
* Operator declarations re-exported from @r8s/crds.
|
|
6
8
|
*
|
|
@@ -8,6 +10,30 @@ exports.vaultSecretsOperator = exports.nginxIngressOperator = exports.cnpgOperat
|
|
|
8
10
|
* exist for backwards compatibility with recipes that import from here.
|
|
9
11
|
*/
|
|
10
12
|
const crds_1 = require("@r8s/crds");
|
|
13
|
+
const core_1 = require("@r8s/core");
|
|
14
|
+
const defaults_1 = require("@r8s/core/defaults");
|
|
15
|
+
/**
|
|
16
|
+
* Read the operators already declared by the Platform tree. Packages call
|
|
17
|
+
* this once (unconditionally) and pass the result to maybeOperator() —
|
|
18
|
+
* no sharedOperators.some(...) boilerplate in every package.
|
|
19
|
+
*/
|
|
20
|
+
function useOperators() {
|
|
21
|
+
return (0, core_1.useContext)(defaults_1.OperatorContext);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Declare an operator unless the Platform already provides it. Returns
|
|
25
|
+
* [] (nothing to add) or a one-element array — spread into resources:
|
|
26
|
+
* `resources_.push(...maybeOperator('redis-operator', shared))`
|
|
27
|
+
*/
|
|
28
|
+
function maybeOperator(name, shared, version) {
|
|
29
|
+
if (shared.some((op) => op.name === name))
|
|
30
|
+
return [];
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
32
|
+
const factory = crds_1.operators[name];
|
|
33
|
+
if (!factory)
|
|
34
|
+
throw new Error(`Unknown operator '${name}' — check packages/crds/operators.yaml`);
|
|
35
|
+
return [(0, core_1.declareOperator)(factory(version))];
|
|
36
|
+
}
|
|
11
37
|
/** CloudNativePG operator declaration */
|
|
12
38
|
exports.cnpgOperator = crds_1.operators['cnpg'];
|
|
13
39
|
/** NGINX Ingress Controller operator declaration (not in operators.yaml — nginx-specific) */
|
package/dist/operators.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operators.js","sourceRoot":"","sources":["../src/operators.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"operators.js","sourceRoot":"","sources":["../src/operators.ts"],"names":[],"mappings":";;;AAgBA,oCAEC;AAOD,sCAUC;AAnCD;;;;;GAKG;AACH,oCAAqC;AACrC,oCAAuD;AACvD,iDAAoD;AAGpD;;;;GAIG;AACH,SAAgB,YAAY;IAC1B,OAAO,IAAA,iBAAU,EAAC,0BAAe,CAAC,CAAA;AACpC,CAAC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAC3B,IAAY,EACZ,MAAkB,EAClB,OAAgB;IAEhB,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,EAAE,CAAA;IACpD,8DAA8D;IAC9D,MAAM,OAAO,GAAI,gBAAmE,CAAC,IAAI,CAAC,CAAA;IAC1F,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,wCAAwC,CAAC,CAAA;IAChG,OAAO,CAAC,IAAA,sBAAe,EAAC,OAAO,CAAC,OAAO,CAAU,CAAC,CAAC,CAAA;AACrD,CAAC;AAED,yCAAyC;AAC5B,QAAA,YAAY,GAAG,gBAAS,CAAC,MAAM,CAAC,CAAA;AAE7C,6FAA6F;AACtF,MAAM,oBAAoB,GAAG,CAAC,OAAO,GAAG,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC3D,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,0BAA0B;IACvC,MAAM,EAAE;QACN,IAAI,EAAE,UAAmB;QACzB,GAAG,EAAE,0EAA0E,OAAO,2CAA2C;QACjI,OAAO;QACP,SAAS,EAAE,eAAe;KAC3B;IACD,OAAO;IACP,SAAS,EAAE,eAAe;IAC1B,cAAc,EAAE,yGAAyG,OAAO,2CAA2C;CAC5K,CAAC,CAAA;AAZW,QAAA,oBAAoB,wBAY/B;AAEF,yCAAyC;AAC5B,QAAA,oBAAoB,GAAG,gBAAS,CAAC,wBAAwB,CAAC,CAAA"}
|
package/dist/platform.d.ts
CHANGED
|
@@ -11,6 +11,15 @@ export interface PlatformProps {
|
|
|
11
11
|
routing?: RoutingMode;
|
|
12
12
|
/** Gateway class name (only used when routing='gateway', default: 'eg') */
|
|
13
13
|
gatewayClassName?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Reference to a shared Gateway for all child endpoints.
|
|
16
|
+
* When set, App/Endpoint create only HTTPRoutes (no per-app Gateway),
|
|
17
|
+
* avoiding a new LoadBalancer IP per app.
|
|
18
|
+
*/
|
|
19
|
+
sharedGateway?: {
|
|
20
|
+
name: string;
|
|
21
|
+
namespace?: string;
|
|
22
|
+
};
|
|
14
23
|
/** Default namespace for all child resources */
|
|
15
24
|
namespace?: string;
|
|
16
25
|
/** Default labels applied to all child resources */
|
package/dist/platform.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAC5E,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAOnE,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,CAAA;AAE/C,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,+CAA+C;IAC/C,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;IACtB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,EAAE,mBAAmB,CAAA;IAC7B;;;;;;OAMG;IACH,GAAG,CAAC,EAAE,gBAAgB,CAAA;IACtB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,WA4D5C"}
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAC5E,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAOnE,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,CAAA;AAE/C,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;OAIG;IACH,aAAa,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACpD,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,+CAA+C;IAC/C,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;IACtB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,EAAE,mBAAmB,CAAA;IAC7B;;;;;;OAMG;IACH,GAAG,CAAC,EAAE,gBAAgB,CAAA;IACtB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,WA4D5C"}
|
package/dist/platform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.tsx"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.tsx"],"names":[],"mappings":";;AAyIA,4BA4DC;AArMD,oCAAqD;AACrD,iDAO2B;AAE3B,uDAA4E;AAC5E,iDAAmE;AACnE,2DAI4B;AAmD5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AACH,SAAgB,QAAQ,CAAC,KAAoB;IAC3C,MAAM,EACJ,OAAO,GAAG,SAAS,EACnB,gBAAgB,GAAG,IAAI,EACvB,SAAS,EACT,MAAM,EACN,SAAS,EACT,OAAO,EACP,GAAG,EACH,QAAQ,GACT,GAAG,KAAK,CAAA;IAET,IAAI,MAAM,GAAY,QAAQ,CAAA;IAE9B,2EAA2E;IAC3E,0EAA0E;IAC1E,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,GAAG,IAAA,UAAG,EAAC,eAAQ,EAAE;YACrB,QAAQ,EAAE;gBACR,IAAA,UAAG,EAAC,WAAW,EAAE;oBACf,UAAU,EAAE,IAAI;oBAChB,IAAI,EAAE,WAAW;oBACjB,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;iBAC9B,CAAC;gBACF,MAAM;aACP;SACF,CAAC,CAAA;IACJ,CAAC;IAED,qFAAqF;IACrF,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,GAAG,IAAA,UAAG,EAAC,0BAAW,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;IAChE,CAAC;IAED,iEAAiE;IACjE,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,GAAG,IAAA,UAAG,EAAC,gCAAc,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;IACvE,CAAC;IAED,6CAA6C;IAC7C,MAAM,gBAAgB,GACpB,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAA;IACjG,MAAM,GAAG,IAAA,UAAG,EAAC,oCAAgB,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;IAEhF,0BAA0B;IAC1B,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,GAAG,IAAA,UAAG,EAAC,0BAAe,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;IAChF,CAAC;IAED,uBAAuB;IACvB,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,GAAG,IAAA,UAAG,EAAC,iBAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;IACpE,CAAC;IAED,0BAA0B;IAC1B,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,GAAG,IAAA,UAAG,EAAC,oBAAS,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;IAC1E,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import type { Operator } from '@r8s/k8s-types';
|
|
2
|
+
export interface R8sClusterProps {
|
|
3
|
+
/**
|
|
4
|
+
* OpenBao secrets backend configuration. VSO (Vault Secrets Operator)
|
|
5
|
+
* is declared automatically. This context is inherited by all
|
|
6
|
+
* children (App, Database, Auth, etc.) so credentials are managed
|
|
7
|
+
* by VSO — never plaintext.
|
|
8
|
+
*/
|
|
9
|
+
secrets: {
|
|
10
|
+
/** OpenBao mount path (e.g., 'secret') */
|
|
11
|
+
mount: string;
|
|
12
|
+
/** OpenBao path prefix for this cluster (e.g., 'production') */
|
|
13
|
+
path: string;
|
|
14
|
+
/** Optional VSO auth reference name */
|
|
15
|
+
authRef?: string;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* ExternalDNS configuration with TSIG for secure RFC 2136 updates.
|
|
19
|
+
* The external-dns operator is declared automatically, and a
|
|
20
|
+
* VaultStaticSecret is created for the TSIG key in the external-dns
|
|
21
|
+
* namespace.
|
|
22
|
+
*/
|
|
23
|
+
dns: {
|
|
24
|
+
/** RFC 2136 DNS server (e.g., 'ns1.example.com') */
|
|
25
|
+
server: string;
|
|
26
|
+
/** DNS zone (e.g., 'example.com') */
|
|
27
|
+
zone: string;
|
|
28
|
+
/** TSIG key path in OpenBao (e.g., 'dns/tsig') */
|
|
29
|
+
tsigPath: string;
|
|
30
|
+
/** TSIG key name in the secret (default: 'secret') */
|
|
31
|
+
tsigKey?: string;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Gateway class name for Envoy Gateway (default: 'eg').
|
|
35
|
+
* The envoy-gateway operator is declared automatically.
|
|
36
|
+
*/
|
|
37
|
+
gatewayClassName?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Default labels applied to all resources.
|
|
40
|
+
*/
|
|
41
|
+
labels?: Record<string, string>;
|
|
42
|
+
/**
|
|
43
|
+
* Pre-installed operators. R8sCluster won't re-declare these.
|
|
44
|
+
*/
|
|
45
|
+
operators?: Operator[];
|
|
46
|
+
/**
|
|
47
|
+
* Namespace for LokiStack and logging resources (default: 'logging').
|
|
48
|
+
* This is separate from app namespaces — logging infra lives in
|
|
49
|
+
* its own namespace.
|
|
50
|
+
*/
|
|
51
|
+
logsNamespace?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Storage class for Loki logs (default: 'standard').
|
|
54
|
+
*/
|
|
55
|
+
logsStorageClass?: string;
|
|
56
|
+
/**
|
|
57
|
+
* Application components (App, Database, Auth, etc.).
|
|
58
|
+
* Children inherit routing, secrets, and DNS contexts.
|
|
59
|
+
* Optional — R8sCluster can be used standalone to set up cluster
|
|
60
|
+
* infrastructure without any apps.
|
|
61
|
+
*/
|
|
62
|
+
children?: unknown;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* R8sCluster — opinionated cluster foundation with all recommended operators.
|
|
66
|
+
*
|
|
67
|
+
* @title R8sCluster
|
|
68
|
+
* @category Complete Solution
|
|
69
|
+
*
|
|
70
|
+
* Sets up a complete cluster foundation in one component:
|
|
71
|
+
* - **cert-manager** for TLS certificate automation
|
|
72
|
+
* - **external-dns** with TSIG for secure DNS updates
|
|
73
|
+
* - **Envoy Gateway** for Gateway API routing
|
|
74
|
+
* - **OpenBao VSO** for secrets management
|
|
75
|
+
* - **Prometheus** for metrics and alerting
|
|
76
|
+
* - **Loki + FluentBit** for log aggregation of all user pods
|
|
77
|
+
*
|
|
78
|
+
* All operators are declared automatically. Children inherit routing,
|
|
79
|
+
* secrets, and DNS contexts — just add your apps.
|
|
80
|
+
*
|
|
81
|
+
* R8sCluster is cluster-scoped — it does not take a namespace. Operators
|
|
82
|
+
* install to their own namespaces (cert-manager, external-dns, etc.).
|
|
83
|
+
* Logging infrastructure lives in a dedicated namespace (default:
|
|
84
|
+
* 'logging'). App namespaces are managed by Platform or the apps
|
|
85
|
+
* themselves.
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* import { R8sCluster, Platform, App, Database } from '@r8s/recipes'
|
|
89
|
+
*
|
|
90
|
+
* export default (
|
|
91
|
+
* <>
|
|
92
|
+
* <R8sCluster
|
|
93
|
+
* secrets={{ mount: 'secret', path: 'production' }}
|
|
94
|
+
* dns={{ server: 'ns1.example.com', zone: 'example.com', tsigPath: 'dns/tsig' }}
|
|
95
|
+
* >
|
|
96
|
+
* <Platform namespace="production">
|
|
97
|
+
* <Database name="api-db" storage="20Gi" />
|
|
98
|
+
* <App name="api" image="api:v1" host="api.example.com" />
|
|
99
|
+
* </Platform>
|
|
100
|
+
* </R8sCluster>
|
|
101
|
+
* </>
|
|
102
|
+
* )
|
|
103
|
+
*/
|
|
104
|
+
export declare function R8sCluster(props: R8sClusterProps): unknown;
|
|
105
|
+
//# sourceMappingURL=r8s-cluster.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"r8s-cluster.d.ts","sourceRoot":"","sources":["../src/r8s-cluster.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAE9C,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,OAAO,EAAE;QACP,0CAA0C;QAC1C,KAAK,EAAE,MAAM,CAAA;QACb,gEAAgE;QAChE,IAAI,EAAE,MAAM,CAAA;QACZ,uCAAuC;QACvC,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,CAAA;IACD;;;;;OAKG;IACH,GAAG,EAAE;QACH,oDAAoD;QACpD,MAAM,EAAE,MAAM,CAAA;QACd,qCAAqC;QACrC,IAAI,EAAE,MAAM,CAAA;QACZ,kDAAkD;QAClD,QAAQ,EAAE,MAAM,CAAA;QAChB,sDAAsD;QACtD,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,CAAA;IACD;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B;;OAEG;IACH,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;IACtB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,WA2KhD"}
|