@r8s/recipes 0.2.1 → 0.3.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/app.d.ts +1 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +3 -6
- package/dist/app.js.map +1 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +6 -10
- package/dist/auth.js.map +1 -1
- package/dist/backup.d.ts +18 -2
- package/dist/backup.d.ts.map +1 -1
- package/dist/backup.js +54 -6
- package/dist/backup.js.map +1 -1
- package/dist/cert-provider.d.ts.map +1 -1
- package/dist/cert-provider.js +2 -5
- package/dist/cert-provider.js.map +1 -1
- package/dist/database.d.ts +38 -13
- package/dist/database.d.ts.map +1 -1
- package/dist/database.js +103 -23
- package/dist/database.js.map +1 -1
- package/dist/dns-provider.d.ts.map +1 -1
- package/dist/dns-provider.js +2 -5
- package/dist/dns-provider.js.map +1 -1
- package/dist/endpoint.d.ts.map +1 -1
- package/dist/endpoint.js +11 -20
- package/dist/endpoint.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -8
- package/dist/index.js.map +1 -1
- package/dist/monitoring.d.ts.map +1 -1
- package/dist/monitoring.js +6 -13
- package/dist/monitoring.js.map +1 -1
- package/dist/platform.d.ts +3 -2
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +3 -2
- package/dist/platform.js.map +1 -1
- package/dist/r8s-cluster.d.ts +1 -1
- package/dist/r8s-cluster.d.ts.map +1 -1
- package/dist/r8s-cluster.js +25 -16
- package/dist/r8s-cluster.js.map +1 -1
- package/dist/s3-provider.d.ts +151 -0
- package/dist/s3-provider.d.ts.map +1 -0
- package/dist/s3-provider.js +126 -0
- package/dist/s3-provider.js.map +1 -0
- package/dist/secret-provider.d.ts +6 -6
- package/dist/secret-provider.d.ts.map +1 -1
- package/dist/secret-provider.js +6 -9
- package/dist/secret-provider.js.map +1 -1
- package/dist/use-operators.d.ts +7 -0
- package/dist/use-operators.d.ts.map +1 -0
- package/dist/use-operators.js +13 -0
- package/dist/use-operators.js.map +1 -0
- package/dist/web-service.d.ts.map +1 -1
- package/dist/web-service.js +2 -5
- package/dist/web-service.js.map +1 -1
- package/package.json +30 -5
- package/dist/operators.d.ts +0 -33
- package/dist/operators.d.ts.map +0 -1
- package/dist/operators.js +0 -56
- package/dist/operators.js.map +0 -1
package/dist/app.d.ts
CHANGED
package/dist/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAA;AAG/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAI/C,MAAM,WAAW,QAAQ;IACvB,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAA;IACb,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;4FACwF;IACxF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,8CAA8C;IAC9C,GAAG,CAAC,EAAE,SAAS,CAAA;IACf,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,CAAA;IAC5C,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IACtC,2DAA2D;IAC3D,SAAS,CAAC,EAAE;QACV,QAAQ,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;QAC5C,MAAM,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAC3C,CAAA;IACD,mEAAmE;IACnE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,2DAA2D;IAC3D,GAAG,CAAC,EAAE,OAAO,CAAA;IACb;;;OAGG;IACH,aAAa,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACpD,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAA;AAG/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAI/C,MAAM,WAAW,QAAQ;IACvB,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAA;IACb,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;4FACwF;IACxF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,8CAA8C;IAC9C,GAAG,CAAC,EAAE,SAAS,CAAA;IACf,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,CAAA;IAC5C,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IACtC,2DAA2D;IAC3D,SAAS,CAAC,EAAE;QACV,QAAQ,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;QAC5C,MAAM,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAC3C,CAAA;IACD,mEAAmE;IACnE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,2DAA2D;IAC3D,GAAG,CAAC,EAAE,OAAO,CAAA;IACb;;;OAGG;IACH,aAAa,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACpD,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,kCAuFlC"}
|
package/dist/app.js
CHANGED
|
@@ -5,7 +5,7 @@ const core_1 = require("@r8s/core");
|
|
|
5
5
|
const web_service_1 = require("./web-service");
|
|
6
6
|
const endpoint_1 = require("./endpoint");
|
|
7
7
|
const defaults_1 = require("@r8s/core/defaults");
|
|
8
|
-
const
|
|
8
|
+
const operator_redis_1 = require("@r8s/operator-redis");
|
|
9
9
|
const redis_1 = require("@r8s/crds/redis");
|
|
10
10
|
/**
|
|
11
11
|
* Simple application — Deployment + Service + Endpoint.
|
|
@@ -48,7 +48,7 @@ const redis_1 = require("@r8s/crds/redis");
|
|
|
48
48
|
*
|
|
49
49
|
* export default (
|
|
50
50
|
* <>
|
|
51
|
-
* <Database name="myapp-db" storage="20Gi" />
|
|
51
|
+
* <Database backup={false} name="myapp-db" storage="20Gi" />
|
|
52
52
|
* <App
|
|
53
53
|
* name="myapp"
|
|
54
54
|
* image="myapp/web:v1.2.3"
|
|
@@ -90,10 +90,7 @@ function App(props) {
|
|
|
90
90
|
// Redis cache
|
|
91
91
|
if (cache) {
|
|
92
92
|
const sharedOperators = (0, core_1.useContext)(defaults_1.OperatorContext);
|
|
93
|
-
|
|
94
|
-
if (!hasRedis) {
|
|
95
|
-
elements.push((0, core_1.declareOperator)(crds_1.operators['redis-operator']()));
|
|
96
|
-
}
|
|
93
|
+
elements.push(...(0, operator_redis_1.declareIfMissing)(sharedOperators));
|
|
97
94
|
elements.push((0, redis_1.RedisClusterComponent)({
|
|
98
95
|
metadata: { name: `${name}-cache`, namespace },
|
|
99
96
|
spec: {
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":";;AAmGA,
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":";;AAmGA,kBAuFC;AA1LD,oCAAsE;AACtE,+CAA+E;AAC/E,yCAAqC;AACrC,iDAAkE;AAElE,wDAAsD;AACtD,2CAAuD;AA0CvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,SAAgB,GAAG,CAAC,KAAe;IACjC,MAAM,EACJ,IAAI,EACJ,SAAS,EAAE,aAAa,EACxB,KAAK,EACL,IAAI,GAAG,IAAI,EACX,QAAQ,GAAG,CAAC,EACZ,IAAI,EACJ,GAAG,EACH,GAAG,GAAG,EAAE,EACR,OAAO,GAAG,EAAE,EACZ,KAAK,GAAG,EAAE,EACV,SAAS,EACT,KAAK,GAAG,KAAK,EACb,GAAG,EACH,aAAa,EACb,QAAQ,GACT,GAAG,KAAK,CAAA;IAET,kEAAkE;IAClE,MAAM,SAAS,GAAG,IAAA,uBAAY,EAAC,aAAa,CAAC,CAAA;IAE7C,MAAM,QAAQ,GAA6B,EAAE,CAAA;IAE7C,QAAQ,CAAC,IAAI,CACX,IAAA,UAAG,EAAC,wBAAU,EAAE;QACd,IAAI;QACJ,SAAS;QACT,KAAK;QACL,IAAI;QACJ,QAAQ;QACR,GAAG;QACH,OAAO;QACP,KAAK;QACL,SAAS;KACV,CAAC,CACH,CAAA;IAED,2CAA2C;IAC3C,IAAI,IAAI,EAAE,CAAC;QACT,QAAQ,CAAC,IAAI,CACX,IAAA,UAAG,EAAC,mBAAQ,EAAE;YACZ,IAAI,EAAE,GAAG,IAAI,WAAW;YACxB,SAAS;YACT,IAAI;YACJ,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,EAAE;YACf,GAAG;YACH,GAAG;YACH,GAAG,CAAC,aAAa,IAAI,EAAE,aAAa,EAAE,CAAC;SACxC,CAAC,CACH,CAAA;IACH,CAAC;IAED,cAAc;IACd,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,eAAe,GAAG,IAAA,iBAAU,EAAC,0BAAe,CAAC,CAAA;QACnD,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAA,iCAAgB,EAAC,eAAe,CAAC,CAAC,CAAA;QACnD,QAAQ,CAAC,IAAI,CACX,IAAA,6BAAqB,EAAC;YACpB,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,QAAQ,EAAE,SAAS,EAAE;YAC9C,IAAI,EAAE;gBACJ,WAAW,EAAE,CAAC;gBACd,gBAAgB,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE;gBAC/C,OAAO,EAAE;oBACP,mBAAmB,EAAE;wBACnB,IAAI,EAAE;4BACJ,WAAW,EAAE,CAAC,eAAe,CAAC;4BAC9B,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;yBAC5C;qBACF;iBACF;aACF;SACF,CAAC,CACH,CAAA;QACD,8BAA8B;QAC9B,GAAG,CAAC,SAAS,GAAG,WAAW,IAAI,iBAAiB,SAAS,yBAAyB,CAAA;IACpF,CAAC;IAED,oEAAoE;IACpE,sEAAsE;IACtE,0DAA0D;IAC1D,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,IAAI,CAAC,IAAA,UAAG,EAAC,eAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,OAAO,IAAA,UAAG,EAAC,eAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;AAC9C,CAAC"}
|
package/dist/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAa/C,MAAM,WAAW,SAAS;IACxB,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAA;IACZ,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,oCAAoC;IACpC,GAAG,CAAC,EAAE,SAAS,CAAA;IACf,gCAAgC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,kCA4GpC"}
|
package/dist/auth.js
CHANGED
|
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Auth = Auth;
|
|
4
4
|
const core_1 = require("@r8s/core");
|
|
5
5
|
const defaults_1 = require("@r8s/core/defaults");
|
|
6
|
-
const
|
|
6
|
+
const operator_keycloak_1 = require("@r8s/operator-keycloak");
|
|
7
|
+
const operator_cnpg_1 = require("@r8s/operator-cnpg");
|
|
7
8
|
const database_1 = require("./database");
|
|
8
9
|
const endpoint_1 = require("./endpoint");
|
|
9
10
|
const components_1 = require("./auth/components");
|
|
@@ -85,19 +86,14 @@ function Auth(props) {
|
|
|
85
86
|
// Inherit namespace from <Platform> context if not explicitly set
|
|
86
87
|
const namespace = (0, defaults_1.useNamespace)(namespaceProp);
|
|
87
88
|
const sharedOperators = (0, core_1.useContext)(defaults_1.OperatorContext);
|
|
88
|
-
const hasKeycloak = sharedOperators.some((op) => op.name === 'keycloak-operator');
|
|
89
|
-
const hasCNPG = sharedOperators.some((op) => op.name === 'cnpg');
|
|
90
89
|
const resources = [];
|
|
91
|
-
// Declare operators if not already provided
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}
|
|
95
|
-
if (!hasCNPG) {
|
|
96
|
-
resources.push((0, core_1.declareOperator)(crds_1.operators['cnpg']()));
|
|
97
|
-
}
|
|
90
|
+
// Declare operators if not already provided — via the operator-package contracts
|
|
91
|
+
resources.push(...(0, operator_keycloak_1.declareIfMissing)(sharedOperators));
|
|
92
|
+
resources.push(...(0, operator_cnpg_1.declareCnpg)(sharedOperators));
|
|
98
93
|
// Database for Keycloak — auto-wired via DatabaseContext.
|
|
99
94
|
// Credentials are managed by the secrets backend configured on the Platform.
|
|
100
95
|
resources.push((0, core_1.jsx)(database_1.Database, {
|
|
96
|
+
backup: false,
|
|
101
97
|
name: `${name}-db`,
|
|
102
98
|
namespace,
|
|
103
99
|
storage,
|
package/dist/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.tsx"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.tsx"],"names":[],"mappings":"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"}
|
package/dist/backup.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { r8sElement } from '@r8s/core';
|
|
1
2
|
export interface BackupProps {
|
|
2
3
|
/** Resource name */
|
|
3
4
|
name: string;
|
|
@@ -7,8 +8,23 @@ export interface BackupProps {
|
|
|
7
8
|
schedule?: string;
|
|
8
9
|
/** Namespaces to include in backups (defaults to the current namespace) */
|
|
9
10
|
namespaces?: string[];
|
|
10
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* Velero storage location name. With an S3 provider on the Platform this
|
|
13
|
+
* defaults to this component's name (the emitted BackupStorageLocation);
|
|
14
|
+
* without one, 'default' (an externally-managed location must exist).
|
|
15
|
+
*/
|
|
11
16
|
storageLocation?: string;
|
|
17
|
+
/**
|
|
18
|
+
* <Bucket name="…"/> descriptor element — scopes the BackupStorageLocation
|
|
19
|
+
* to that prefix (`<name>/velero`) of the surrounding provider's bucket.
|
|
20
|
+
*/
|
|
21
|
+
bucket?: r8sElement;
|
|
22
|
+
/**
|
|
23
|
+
* Key inside the store's credentials Secret holding a velero-format
|
|
24
|
+
* cloud credentials file (`[default] aws_access_key_id = …`). Omit on
|
|
25
|
+
* workload-identity / IRSA clusters.
|
|
26
|
+
*/
|
|
27
|
+
credentialKey?: string;
|
|
12
28
|
/** Backup retention (e.g., '720h' for 30 days) */
|
|
13
29
|
ttl?: string;
|
|
14
30
|
}
|
|
@@ -41,5 +57,5 @@ export interface BackupProps {
|
|
|
41
57
|
* />
|
|
42
58
|
* )
|
|
43
59
|
*/
|
|
44
|
-
export declare function Backup(props: BackupProps):
|
|
60
|
+
export declare function Backup(props: BackupProps): r8sElement;
|
|
45
61
|
//# sourceMappingURL=backup.d.ts.map
|
package/dist/backup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../src/backup.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB
|
|
1
|
+
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../src/backup.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE3C,MAAM,WAAW,WAAW;IAC1B,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB;;;;OAIG;IAEH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;OAGG;IACH,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,cA4FxC"}
|
package/dist/backup.js
CHANGED
|
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Backup = Backup;
|
|
4
4
|
const core_1 = require("@r8s/core");
|
|
5
5
|
const defaults_1 = require("@r8s/core/defaults");
|
|
6
|
-
const
|
|
6
|
+
const operator_velero_1 = require("@r8s/operator-velero");
|
|
7
|
+
const s3_provider_1 = require("./s3-provider");
|
|
7
8
|
/**
|
|
8
9
|
* Backup — scheduled cluster backups with Velero.
|
|
9
10
|
*
|
|
@@ -34,12 +35,59 @@ const crds_1 = require("@r8s/crds");
|
|
|
34
35
|
* )
|
|
35
36
|
*/
|
|
36
37
|
function Backup(props) {
|
|
37
|
-
const { name, namespace = 'default', schedule = '0 2 * * *', namespaces, storageLocation
|
|
38
|
+
const { name, namespace = 'default', schedule = '0 2 * * *', namespaces, storageLocation, bucket: bucketProp, credentialKey: credentialKeyProp, ttl = '720h', } = props;
|
|
38
39
|
const sharedOperators = (0, core_1.useContext)(defaults_1.OperatorContext);
|
|
39
|
-
const
|
|
40
|
+
const s3 = (0, s3_provider_1.useS3)();
|
|
41
|
+
let bucketDesc;
|
|
42
|
+
if (bucketProp) {
|
|
43
|
+
if (!(0, s3_provider_1.isBucketElement)(bucketProp)) {
|
|
44
|
+
throw new Error('Backup "bucket" prop takes a <Bucket name="…" /> descriptor — got ' +
|
|
45
|
+
(typeof bucketProp === 'object' ? 'another element/object' : `a ${typeof bucketProp}`));
|
|
46
|
+
}
|
|
47
|
+
bucketDesc = (0, s3_provider_1.resolveBucket)(bucketProp, s3);
|
|
48
|
+
}
|
|
49
|
+
if (storageLocation && (bucketProp || credentialKeyProp)) {
|
|
50
|
+
throw new Error(`<Backup "${name}">: storageLocation points at an externally-managed
|
|
51
|
+
` +
|
|
52
|
+
`BackupStorageLocation — bucket/credentialKey would be ignored.\n` +
|
|
53
|
+
`\n` +
|
|
54
|
+
`Remove storageLocation to target the platform S3 store, or drop\n` +
|
|
55
|
+
`bucket/credentialKey to keep the external location.`);
|
|
56
|
+
}
|
|
57
|
+
const storeS3 = bucketDesc ? bucketDesc.s3 : s3;
|
|
58
|
+
const storePrefix = bucketDesc ? bucketDesc.prefix : undefined;
|
|
40
59
|
const resources = [];
|
|
41
|
-
|
|
42
|
-
|
|
60
|
+
resources.push(...(0, operator_velero_1.declareIfMissing)(sharedOperators));
|
|
61
|
+
// S3 provider: emit the BackupStorageLocation against the 'velero/'
|
|
62
|
+
// prefix of the platform bucket and point the schedule at it. Without a
|
|
63
|
+
// provider the schedule references 'default' — a storage location the
|
|
64
|
+
// cluster is expected to manage itself.
|
|
65
|
+
const locationName = storeS3 && !storageLocation ? name : (storageLocation ?? 'default');
|
|
66
|
+
if (storeS3 && !storageLocation) {
|
|
67
|
+
resources.push((0, core_1.jsx)('BackupStorageLocation', {
|
|
68
|
+
apiVersion: 'velero.io/v1',
|
|
69
|
+
kind: 'BackupStorageLocation',
|
|
70
|
+
metadata: { name, namespace: 'velero' },
|
|
71
|
+
spec: {
|
|
72
|
+
// no `default: true` — two <Backup> components must not fight over
|
|
73
|
+
// it; each Schedule pins its storageLocation explicitly
|
|
74
|
+
provider: 'aws',
|
|
75
|
+
objectStorage: {
|
|
76
|
+
bucket: storeS3.bucket,
|
|
77
|
+
prefix: storePrefix ? `${storePrefix}/velero` : 'velero',
|
|
78
|
+
},
|
|
79
|
+
config: {
|
|
80
|
+
region: storeS3.region ?? 'us-east-1',
|
|
81
|
+
...(storeS3.forcePathStyle !== false && { s3ForcePathStyle: 'true' }),
|
|
82
|
+
s3Url: storeS3.endpoint,
|
|
83
|
+
},
|
|
84
|
+
// Velero owns how it reads the credential — its key inside the
|
|
85
|
+
// store's Secret. Omit on workload-identity/IRSA clusters.
|
|
86
|
+
...(credentialKeyProp && {
|
|
87
|
+
credential: { name: storeS3.credentialsSecret, key: credentialKeyProp },
|
|
88
|
+
}),
|
|
89
|
+
},
|
|
90
|
+
}));
|
|
43
91
|
}
|
|
44
92
|
resources.push((0, core_1.jsx)('Schedule', {
|
|
45
93
|
apiVersion: 'velero.io/v1',
|
|
@@ -49,7 +97,7 @@ function Backup(props) {
|
|
|
49
97
|
schedule,
|
|
50
98
|
template: {
|
|
51
99
|
includedNamespaces: namespaces ?? [namespace],
|
|
52
|
-
storageLocation,
|
|
100
|
+
storageLocation: locationName,
|
|
53
101
|
ttl,
|
|
54
102
|
},
|
|
55
103
|
},
|
package/dist/backup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup.js","sourceRoot":"","sources":["../src/backup.tsx"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"backup.js","sourceRoot":"","sources":["../src/backup.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cert-provider.d.ts","sourceRoot":"","sources":["../src/cert-provider.tsx"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,UAAU,CAS/D;AAED,yCAAyC;AACzC,MAAM,WAAW,UAAU;IACzB,gCAAgC;IAChC,QAAQ,EAAE,cAAc,CAAA;IACxB,iCAAiC;IACjC,QAAQ,EAAE;QACR,4BAA4B;QAC5B,aAAa,EAAE,MAAM,CAAA;QACrB,mCAAmC;QACnC,QAAQ,EAAE,MAAM,CAAA;QAChB,kCAAkC;QAClC,WAAW,EAAE,MAAM,CAAA;KACpB,CAAA;CACF;AAED,gDAAgD;AAChD,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG,UAAU,CAAA;AAE3D,eAAO,MAAM,WAAW,6DAAyC,CAAA;AAEjE,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;;OAUG;IACH,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"cert-provider.d.ts","sourceRoot":"","sources":["../src/cert-provider.tsx"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,UAAU,CAS/D;AAED,yCAAyC;AACzC,MAAM,WAAW,UAAU;IACzB,gCAAgC;IAChC,QAAQ,EAAE,cAAc,CAAA;IACxB,iCAAiC;IACjC,QAAQ,EAAE;QACR,4BAA4B;QAC5B,aAAa,EAAE,MAAM,CAAA;QACrB,mCAAmC;QACnC,QAAQ,EAAE,MAAM,CAAA;QAChB,kCAAkC;QAClC,WAAW,EAAE,MAAM,CAAA;KACpB,CAAA;CACF;AAED,gDAAgD;AAChD,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG,UAAU,CAAA;AAE3D,eAAO,MAAM,WAAW,6DAAyC,CAAA;AAEjE,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;;OAUG;IACH,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,kCA0BpD"}
|
package/dist/cert-provider.js
CHANGED
|
@@ -6,7 +6,7 @@ exports.CertProvider = CertProvider;
|
|
|
6
6
|
const core_1 = require("@r8s/core");
|
|
7
7
|
const defaults_1 = require("@r8s/core/defaults");
|
|
8
8
|
const defaults_2 = require("@r8s/core/defaults");
|
|
9
|
-
const
|
|
9
|
+
const operator_cert_manager_1 = require("@r8s/operator-cert-manager");
|
|
10
10
|
function CertManager(props) {
|
|
11
11
|
return {
|
|
12
12
|
provider: 'cert-manager',
|
|
@@ -60,10 +60,7 @@ function CertProvider(props) {
|
|
|
60
60
|
: provider;
|
|
61
61
|
const resources = [];
|
|
62
62
|
// Declare cert-manager operator
|
|
63
|
-
|
|
64
|
-
if (!hasCertManager) {
|
|
65
|
-
resources.push((0, core_1.declareOperator)(crds_1.operators['cert-manager']()));
|
|
66
|
-
}
|
|
63
|
+
resources.push(...(0, operator_cert_manager_1.declareIfMissing)(sharedOperators));
|
|
67
64
|
return (0, core_1.jsx)(core_1.Fragment, {
|
|
68
65
|
children: [...resources, (0, core_1.jsx)(exports.CertContext.Provider, { value: config, children })],
|
|
69
66
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cert-provider.js","sourceRoot":"","sources":["../src/cert-provider.tsx"],"names":[],"mappings":";;;AAsBA,kCASC;AAiED,
|
|
1
|
+
{"version":3,"file":"cert-provider.js","sourceRoot":"","sources":["../src/cert-provider.tsx"],"names":[],"mappings":";;;AAsBA,kCASC;AAiED,oCA0BC;AA1HD,oCAAsE;AACtE,iDAAkD;AAClD,iDAAoD;AACpD,sEAA6D;AAmB7D,SAAgB,WAAW,CAAC,KAAuB;IACjD,OAAO;QACL,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE;YACR,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,kBAAkB;YACxD,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,OAAO;YACnC,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,MAAM;SACzC;KACF,CAAA;AACH,CAAC;AAoBY,QAAA,WAAW,GAAG,IAAA,wBAAa,EAAoB,IAAI,CAAC,CAAA;AAmBjE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,SAAgB,YAAY,CAAC,KAAwB;IACnD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAA;IAEpC,MAAM,eAAe,GAAG,IAAA,iBAAU,EAAC,0BAAe,CAAC,CAAA;IAEnD,0BAA0B;IAC1B,MAAM,MAAM,GACV,OAAO,QAAQ,KAAK,QAAQ;QAC1B,CAAC,CAAC;YACE,QAAQ;YACR,QAAQ,EAAE;gBACR,aAAa,EAAE,kBAAkB;gBACjC,QAAQ,EAAE,OAAO;gBACjB,WAAW,EAAE,MAAM;aACpB;SACF;QACH,CAAC,CAAC,QAAQ,CAAA;IAEd,MAAM,SAAS,GAA6B,EAAE,CAAA;IAE9C,gCAAgC;IAChC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAA,wCAAgB,EAAC,eAAe,CAAC,CAAC,CAAA;IAEpD,OAAO,IAAA,UAAG,EAAC,eAAQ,EAAE;QACnB,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,IAAA,UAAG,EAAC,mBAAW,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;KACjF,CAAC,CAAA;AACJ,CAAC"}
|
package/dist/database.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type BucketProps } from './s3-provider';
|
|
1
2
|
/**
|
|
2
3
|
* Continuous + scheduled backup configuration for a dedicated CNPG cluster.
|
|
3
4
|
* Renders `spec.backup.barmanObjectStore` on the Cluster plus a
|
|
@@ -5,16 +6,16 @@
|
|
|
5
6
|
* unless this prop is set.
|
|
6
7
|
*/
|
|
7
8
|
export interface DatabaseBackupProps {
|
|
8
|
-
/** S3 destination path, e.g. 's3://backups/myapp-cnpg' */
|
|
9
|
-
destinationPath
|
|
10
|
-
/** S3 endpoint URL, e.g. 'https://s3.example.com' (RustFS/Scaleway/…) */
|
|
11
|
-
endpointURL
|
|
9
|
+
/** S3 destination path, e.g. 's3://backups/myapp-cnpg'. Derived from the S3 provider as `s3://<bucket>/<name>-cnpg` when omitted. */
|
|
10
|
+
destinationPath?: string;
|
|
11
|
+
/** S3 endpoint URL, e.g. 'https://s3.example.com' (RustFS/Scaleway/…). Derived from the S3 provider when omitted. */
|
|
12
|
+
endpointURL?: string;
|
|
12
13
|
/**
|
|
13
14
|
* Name of an existing Secret holding the S3 credentials with CNPG keys
|
|
14
|
-
* `access-key-id` and `secret-access-key`.
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
15
|
+
* `access-key-id` and `secret-access-key`. Resolution order: this prop →
|
|
16
|
+
* the S3 provider's credentialsSecret → the Platform secrets backend
|
|
17
|
+
* provisioner (`<name>-backup-credentials` from
|
|
18
|
+
* `<path>/<name>-s3-credentials`). Without any of the three this throws.
|
|
18
19
|
*/
|
|
19
20
|
credentialsSecret?: string;
|
|
20
21
|
/** Retention policy for barman backups (default: '30d') */
|
|
@@ -49,9 +50,15 @@ export interface DatabaseProps {
|
|
|
49
50
|
parameters?: Record<string, string>;
|
|
50
51
|
/**
|
|
51
52
|
* Continuous barman backup to S3 object storage + ScheduledBackup.
|
|
52
|
-
*
|
|
53
|
+
* REQUIRED decision point: omit → renderer throws with guidance.
|
|
54
|
+
* `false` → cluster without barman (forks, ephemeral CI).
|
|
55
|
+
* `true`/object → barman WAL + scheduled backups; target and credentials
|
|
56
|
+
* derive from the Platform's S3 provider, explicit object values win.
|
|
53
57
|
*/
|
|
54
|
-
backup
|
|
58
|
+
backup: DatabaseBackupProps | true | false | {
|
|
59
|
+
type: unknown;
|
|
60
|
+
props: BucketProps;
|
|
61
|
+
};
|
|
55
62
|
/**
|
|
56
63
|
* Workloads that consume the database credentials. Rendered as
|
|
57
64
|
* `rolloutRestartTargets` on the generated VaultStaticSecret/
|
|
@@ -90,7 +97,7 @@ export interface DatabaseProps {
|
|
|
90
97
|
* @category Data & Analytics
|
|
91
98
|
*
|
|
92
99
|
* Creates a dedicated 3-instance HA CloudNativePG cluster for this database.
|
|
93
|
-
* When wrapped in a `<Database>` component, child components receive the
|
|
100
|
+
* When wrapped in a `<Database backup={false}>` component, child components receive the
|
|
94
101
|
* connection info via DatabaseContext automatically.
|
|
95
102
|
*
|
|
96
103
|
* Credentials are managed by the secrets backend configured on the Platform.
|
|
@@ -102,14 +109,32 @@ export interface DatabaseProps {
|
|
|
102
109
|
* @example
|
|
103
110
|
* import { Database } from '@r8s/recipes'
|
|
104
111
|
*
|
|
105
|
-
*
|
|
112
|
+
* // Required target: explicit S3 settings (credentials from an existing Secret)
|
|
113
|
+
* export default (
|
|
114
|
+
* <Database
|
|
115
|
+
* name="app-db"
|
|
116
|
+
* storage="10Gi"
|
|
117
|
+
* backup={{
|
|
118
|
+
* destinationPath: 's3://backups/app-db-cnpg',
|
|
119
|
+
* endpointURL: 'https://s3.example.com',
|
|
120
|
+
* credentialsSecret: 'app-db-backup-creds',
|
|
121
|
+
* }}
|
|
122
|
+
* />
|
|
123
|
+
* )
|
|
106
124
|
*
|
|
107
125
|
* @example
|
|
108
126
|
* import { Platform, Database, WebService } from '@r8s/recipes'
|
|
109
127
|
*
|
|
110
128
|
* export default (
|
|
111
129
|
* <Platform secrets={{ backend: 'openbao' }}>
|
|
112
|
-
* <Database
|
|
130
|
+
* <Database
|
|
131
|
+
* name="app-db"
|
|
132
|
+
* storage="10Gi"
|
|
133
|
+
* backup={{
|
|
134
|
+
* destinationPath: 's3://backups/app-db-cnpg',
|
|
135
|
+
* endpointURL: 'https://s3.example.com',
|
|
136
|
+
* }}
|
|
137
|
+
* >
|
|
113
138
|
* <WebService name="api" image="myapp/api:v1" />
|
|
114
139
|
* </Database>
|
|
115
140
|
* </Platform>
|
package/dist/database.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAyC,KAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AAEvF;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,qIAAqI;IACrI,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,qHAAqH;IACrH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAA;IACzC,yCAAyC;IACzC,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAA;IACZ,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC;;;;;;OAMG;IACH,MAAM,EAAE,mBAAmB,GAAG,IAAI,GAAG,KAAK,GAAG;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,WAAW,CAAA;KAAE,CAAA;IAClF;;;;OAIG;IACH,qBAAqB,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC9E,yFAAyF;IACzF,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;IACpC,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,oCA0R5C"}
|