@bluedynamics/cdk8s-monitoring 0.0.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/CLAUDE.md +76 -0
- package/LICENSE +202 -0
- package/README.md +87 -0
- package/examples/synth.ts +17 -0
- package/lib/constructs/alloy.d.ts +29 -0
- package/lib/constructs/alloy.js +214 -0
- package/lib/constructs/grafana-password-secret.d.ts +57 -0
- package/lib/constructs/grafana-password-secret.js +99 -0
- package/lib/constructs/loki-s3-bucket.d.ts +24 -0
- package/lib/constructs/loki-s3-bucket.js +147 -0
- package/lib/constructs/loki-s3-credentials.d.ts +27 -0
- package/lib/constructs/loki-s3-credentials.js +71 -0
- package/lib/constructs/loki.d.ts +30 -0
- package/lib/constructs/loki.js +185 -0
- package/lib/constructs/namespace.d.ts +13 -0
- package/lib/constructs/namespace.js +34 -0
- package/lib/constructs/priority-class.d.ts +12 -0
- package/lib/constructs/priority-class.js +38 -0
- package/lib/constructs/prometheus-stack.d.ts +30 -0
- package/lib/constructs/prometheus-stack.js +477 -0
- package/lib/constructs/thanos-compactor.d.ts +35 -0
- package/lib/constructs/thanos-compactor.js +198 -0
- package/lib/constructs/thanos-query.d.ts +30 -0
- package/lib/constructs/thanos-query.js +205 -0
- package/lib/constructs/thanos-s3-bucket.d.ts +24 -0
- package/lib/constructs/thanos-s3-bucket.js +147 -0
- package/lib/constructs/thanos-s3-credentials.d.ts +27 -0
- package/lib/constructs/thanos-s3-credentials.js +93 -0
- package/lib/constructs/thanos-store.d.ts +30 -0
- package/lib/constructs/thanos-store.js +239 -0
- package/lib/default-config.d.ts +12 -0
- package/lib/default-config.js +77 -0
- package/lib/imports/external-secrets.io.d.ts +39243 -0
- package/lib/imports/external-secrets.io.js +23112 -0
- package/lib/imports/generators.external-secrets.io.d.ts +7831 -0
- package/lib/imports/generators.external-secrets.io.js +4895 -0
- package/lib/imports/k8s.d.ts +24537 -0
- package/lib/imports/k8s.js +18268 -0
- package/lib/imports/s3.aws.upbound.io.d.ts +2882 -0
- package/lib/imports/s3.aws.upbound.io.js +1828 -0
- package/lib/index.d.ts +17 -0
- package/lib/index.js +38 -0
- package/lib/monitoring-chart.d.ts +39 -0
- package/lib/monitoring-chart.js +127 -0
- package/lib/types.d.ts +142 -0
- package/lib/types.js +3 -0
- package/package.json +117 -0
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export * from './types';
|
|
2
|
+
export * from './default-config';
|
|
3
|
+
export * from './monitoring-chart';
|
|
4
|
+
export { KubeConfigMap } from './imports/k8s';
|
|
5
|
+
export * from './constructs/namespace';
|
|
6
|
+
export * from './constructs/priority-class';
|
|
7
|
+
export * from './constructs/thanos-s3-bucket';
|
|
8
|
+
export * from './constructs/loki-s3-bucket';
|
|
9
|
+
export * from './constructs/thanos-s3-credentials';
|
|
10
|
+
export * from './constructs/loki-s3-credentials';
|
|
11
|
+
export * from './constructs/grafana-password-secret';
|
|
12
|
+
export * from './constructs/prometheus-stack';
|
|
13
|
+
export * from './constructs/loki';
|
|
14
|
+
export * from './constructs/alloy';
|
|
15
|
+
export * from './constructs/thanos-query';
|
|
16
|
+
export * from './constructs/thanos-store';
|
|
17
|
+
export * from './constructs/thanos-compactor';
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.KubeConfigMap = void 0;
|
|
18
|
+
__exportStar(require("./types"), exports);
|
|
19
|
+
__exportStar(require("./default-config"), exports);
|
|
20
|
+
__exportStar(require("./monitoring-chart"), exports);
|
|
21
|
+
// Convenience re-export so integration charts can build dashboard ConfigMaps
|
|
22
|
+
// (Grafana sidecar discovery) without depending on the generated imports directly.
|
|
23
|
+
var k8s_1 = require("./imports/k8s");
|
|
24
|
+
Object.defineProperty(exports, "KubeConfigMap", { enumerable: true, get: function () { return k8s_1.KubeConfigMap; } });
|
|
25
|
+
__exportStar(require("./constructs/namespace"), exports);
|
|
26
|
+
__exportStar(require("./constructs/priority-class"), exports);
|
|
27
|
+
__exportStar(require("./constructs/thanos-s3-bucket"), exports);
|
|
28
|
+
__exportStar(require("./constructs/loki-s3-bucket"), exports);
|
|
29
|
+
__exportStar(require("./constructs/thanos-s3-credentials"), exports);
|
|
30
|
+
__exportStar(require("./constructs/loki-s3-credentials"), exports);
|
|
31
|
+
__exportStar(require("./constructs/grafana-password-secret"), exports);
|
|
32
|
+
__exportStar(require("./constructs/prometheus-stack"), exports);
|
|
33
|
+
__exportStar(require("./constructs/loki"), exports);
|
|
34
|
+
__exportStar(require("./constructs/alloy"), exports);
|
|
35
|
+
__exportStar(require("./constructs/thanos-query"), exports);
|
|
36
|
+
__exportStar(require("./constructs/thanos-store"), exports);
|
|
37
|
+
__exportStar(require("./constructs/thanos-compactor"), exports);
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwQ0FBd0I7QUFDeEIsbURBQWlDO0FBQ2pDLHFEQUFtQztBQUNuQyw2RUFBNkU7QUFDN0UsbUZBQW1GO0FBQ25GLHFDQUE4QztBQUFyQyxvR0FBQSxhQUFhLE9BQUE7QUFDdEIseURBQXVDO0FBQ3ZDLDhEQUE0QztBQUM1QyxnRUFBOEM7QUFDOUMsOERBQTRDO0FBQzVDLHFFQUFtRDtBQUNuRCxtRUFBaUQ7QUFDakQsdUVBQXFEO0FBQ3JELGdFQUE4QztBQUM5QyxvREFBa0M7QUFDbEMscURBQW1DO0FBQ25DLDREQUEwQztBQUMxQyw0REFBMEM7QUFDMUMsZ0VBQThDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2RlZmF1bHQtY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vbW9uaXRvcmluZy1jaGFydCc7XG4vLyBDb252ZW5pZW5jZSByZS1leHBvcnQgc28gaW50ZWdyYXRpb24gY2hhcnRzIGNhbiBidWlsZCBkYXNoYm9hcmQgQ29uZmlnTWFwc1xuLy8gKEdyYWZhbmEgc2lkZWNhciBkaXNjb3ZlcnkpIHdpdGhvdXQgZGVwZW5kaW5nIG9uIHRoZSBnZW5lcmF0ZWQgaW1wb3J0cyBkaXJlY3RseS5cbmV4cG9ydCB7IEt1YmVDb25maWdNYXAgfSBmcm9tICcuL2ltcG9ydHMvazhzJztcbmV4cG9ydCAqIGZyb20gJy4vY29uc3RydWN0cy9uYW1lc3BhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdHJ1Y3RzL3ByaW9yaXR5LWNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vY29uc3RydWN0cy90aGFub3MtczMtYnVja2V0JztcbmV4cG9ydCAqIGZyb20gJy4vY29uc3RydWN0cy9sb2tpLXMzLWJ1Y2tldCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnN0cnVjdHMvdGhhbm9zLXMzLWNyZWRlbnRpYWxzJztcbmV4cG9ydCAqIGZyb20gJy4vY29uc3RydWN0cy9sb2tpLXMzLWNyZWRlbnRpYWxzJztcbmV4cG9ydCAqIGZyb20gJy4vY29uc3RydWN0cy9ncmFmYW5hLXBhc3N3b3JkLXNlY3JldCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnN0cnVjdHMvcHJvbWV0aGV1cy1zdGFjayc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnN0cnVjdHMvbG9raSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnN0cnVjdHMvYWxsb3knO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdHJ1Y3RzL3RoYW5vcy1xdWVyeSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnN0cnVjdHMvdGhhbm9zLXN0b3JlJztcbmV4cG9ydCAqIGZyb20gJy4vY29uc3RydWN0cy90aGFub3MtY29tcGFjdG9yJztcbiJdfQ==
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Chart, ChartProps } from 'cdk8s';
|
|
2
|
+
import { Construct } from 'constructs';
|
|
3
|
+
import { MonitoringConfig } from './types';
|
|
4
|
+
/**
|
|
5
|
+
* MonitoringChart orchestrates the complete monitoring stack.
|
|
6
|
+
*
|
|
7
|
+
* This chart creates all resources in the correct order using ArgoCD sync-waves:
|
|
8
|
+
*
|
|
9
|
+
* Wave 0: Foundation
|
|
10
|
+
* - Namespace
|
|
11
|
+
* - PriorityClass
|
|
12
|
+
*
|
|
13
|
+
* Wave 1: External Dependencies
|
|
14
|
+
* - S3 Buckets (Crossplane)
|
|
15
|
+
* - S3 Credentials (ExternalSecret)
|
|
16
|
+
*
|
|
17
|
+
* Wave 2: Core Services
|
|
18
|
+
* - Prometheus Stack (Prometheus, Grafana, Alertmanager)
|
|
19
|
+
* - Loki (log aggregation)
|
|
20
|
+
*
|
|
21
|
+
* Wave 3: Advanced Services
|
|
22
|
+
* - Alloy (log collection)
|
|
23
|
+
* - Thanos Query (unified metrics query)
|
|
24
|
+
* - Thanos Store (S3 gateway)
|
|
25
|
+
* - Thanos Compactor (downsampling)
|
|
26
|
+
*
|
|
27
|
+
* App-specific dashboards and alert rules are intentionally NOT part of this
|
|
28
|
+
* chart. Integration charts attach their own dashboard/alert constructs beside
|
|
29
|
+
* this one (the Grafana sidecar discovers ConfigMaps labeled
|
|
30
|
+
* `grafana_dashboard: "1"` in the same namespace).
|
|
31
|
+
*
|
|
32
|
+
* Configuration is provided via the MonitoringConfig interface, which combines:
|
|
33
|
+
* - config.yaml (default values)
|
|
34
|
+
* - Environment variables (overrides)
|
|
35
|
+
*/
|
|
36
|
+
export declare class MonitoringChart extends Chart {
|
|
37
|
+
readonly config: MonitoringConfig;
|
|
38
|
+
constructor(scope: Construct, id: string, config: MonitoringConfig, props?: ChartProps);
|
|
39
|
+
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MonitoringChart = void 0;
|
|
4
|
+
const cdk8s_1 = require("cdk8s");
|
|
5
|
+
// Import all constructs
|
|
6
|
+
const alloy_1 = require("./constructs/alloy");
|
|
7
|
+
const grafana_password_secret_1 = require("./constructs/grafana-password-secret");
|
|
8
|
+
const loki_1 = require("./constructs/loki");
|
|
9
|
+
const loki_s3_bucket_1 = require("./constructs/loki-s3-bucket");
|
|
10
|
+
const loki_s3_credentials_1 = require("./constructs/loki-s3-credentials");
|
|
11
|
+
const namespace_1 = require("./constructs/namespace");
|
|
12
|
+
const priority_class_1 = require("./constructs/priority-class");
|
|
13
|
+
const prometheus_stack_1 = require("./constructs/prometheus-stack");
|
|
14
|
+
const thanos_compactor_1 = require("./constructs/thanos-compactor");
|
|
15
|
+
const thanos_query_1 = require("./constructs/thanos-query");
|
|
16
|
+
const thanos_s3_bucket_1 = require("./constructs/thanos-s3-bucket");
|
|
17
|
+
const thanos_s3_credentials_1 = require("./constructs/thanos-s3-credentials");
|
|
18
|
+
const thanos_store_1 = require("./constructs/thanos-store");
|
|
19
|
+
/**
|
|
20
|
+
* MonitoringChart orchestrates the complete monitoring stack.
|
|
21
|
+
*
|
|
22
|
+
* This chart creates all resources in the correct order using ArgoCD sync-waves:
|
|
23
|
+
*
|
|
24
|
+
* Wave 0: Foundation
|
|
25
|
+
* - Namespace
|
|
26
|
+
* - PriorityClass
|
|
27
|
+
*
|
|
28
|
+
* Wave 1: External Dependencies
|
|
29
|
+
* - S3 Buckets (Crossplane)
|
|
30
|
+
* - S3 Credentials (ExternalSecret)
|
|
31
|
+
*
|
|
32
|
+
* Wave 2: Core Services
|
|
33
|
+
* - Prometheus Stack (Prometheus, Grafana, Alertmanager)
|
|
34
|
+
* - Loki (log aggregation)
|
|
35
|
+
*
|
|
36
|
+
* Wave 3: Advanced Services
|
|
37
|
+
* - Alloy (log collection)
|
|
38
|
+
* - Thanos Query (unified metrics query)
|
|
39
|
+
* - Thanos Store (S3 gateway)
|
|
40
|
+
* - Thanos Compactor (downsampling)
|
|
41
|
+
*
|
|
42
|
+
* App-specific dashboards and alert rules are intentionally NOT part of this
|
|
43
|
+
* chart. Integration charts attach their own dashboard/alert constructs beside
|
|
44
|
+
* this one (the Grafana sidecar discovers ConfigMaps labeled
|
|
45
|
+
* `grafana_dashboard: "1"` in the same namespace).
|
|
46
|
+
*
|
|
47
|
+
* Configuration is provided via the MonitoringConfig interface, which combines:
|
|
48
|
+
* - config.yaml (default values)
|
|
49
|
+
* - Environment variables (overrides)
|
|
50
|
+
*/
|
|
51
|
+
class MonitoringChart extends cdk8s_1.Chart {
|
|
52
|
+
constructor(scope, id, config, props = {}) {
|
|
53
|
+
super(scope, id, props);
|
|
54
|
+
this.config = config;
|
|
55
|
+
const namespace = config.namespace;
|
|
56
|
+
// =========================================================================
|
|
57
|
+
// Wave 0: Foundation
|
|
58
|
+
// =========================================================================
|
|
59
|
+
// Must exist before any other resources
|
|
60
|
+
new namespace_1.NamespaceConstruct(this, 'namespace', {
|
|
61
|
+
name: namespace,
|
|
62
|
+
});
|
|
63
|
+
new priority_class_1.PriorityClassConstruct(this, 'priority-class');
|
|
64
|
+
// =========================================================================
|
|
65
|
+
// Wave 1: External Dependencies
|
|
66
|
+
// =========================================================================
|
|
67
|
+
// S3 buckets must be created before pods try to access them
|
|
68
|
+
new thanos_s3_bucket_1.ThanosS3BucketConstruct(this, 'thanos-s3-bucket', {
|
|
69
|
+
config,
|
|
70
|
+
});
|
|
71
|
+
new loki_s3_bucket_1.LokiS3BucketConstruct(this, 'loki-s3-bucket', {
|
|
72
|
+
config,
|
|
73
|
+
});
|
|
74
|
+
// Secrets must exist before pods mount them
|
|
75
|
+
new thanos_s3_credentials_1.ThanosS3CredentialsConstruct(this, 'thanos-s3-credentials', {
|
|
76
|
+
namespace,
|
|
77
|
+
config,
|
|
78
|
+
});
|
|
79
|
+
const lokiS3Credentials = new loki_s3_credentials_1.LokiS3CredentialsConstruct(this, 'loki-s3-credentials', {
|
|
80
|
+
namespace,
|
|
81
|
+
config,
|
|
82
|
+
});
|
|
83
|
+
// Grafana admin credentials (stable password across Helm upgrades)
|
|
84
|
+
new grafana_password_secret_1.GrafanaPasswordSecret(this, 'grafana-password', {
|
|
85
|
+
namespace,
|
|
86
|
+
});
|
|
87
|
+
// =========================================================================
|
|
88
|
+
// Wave 2: Core Services
|
|
89
|
+
// =========================================================================
|
|
90
|
+
// Prometheus Stack (includes Prometheus, Grafana, Alertmanager, operators)
|
|
91
|
+
new prometheus_stack_1.PrometheusStackConstruct(this, 'prometheus-stack', {
|
|
92
|
+
namespace,
|
|
93
|
+
config,
|
|
94
|
+
});
|
|
95
|
+
// Loki (log aggregation)
|
|
96
|
+
new loki_1.LokiConstruct(this, 'loki', {
|
|
97
|
+
namespace,
|
|
98
|
+
config,
|
|
99
|
+
s3CredentialsSecretName: lokiS3Credentials.secretName,
|
|
100
|
+
});
|
|
101
|
+
// =========================================================================
|
|
102
|
+
// Wave 3: Advanced Services
|
|
103
|
+
// =========================================================================
|
|
104
|
+
// Alloy (log collection - after Loki is ready)
|
|
105
|
+
new alloy_1.AlloyConstruct(this, 'alloy', {
|
|
106
|
+
namespace,
|
|
107
|
+
config,
|
|
108
|
+
});
|
|
109
|
+
// Thanos Query (unified query interface - after Prometheus is ready)
|
|
110
|
+
new thanos_query_1.ThanosQueryConstruct(this, 'thanos-query', {
|
|
111
|
+
namespace,
|
|
112
|
+
config,
|
|
113
|
+
});
|
|
114
|
+
// Thanos Store (S3 gateway - after S3 bucket and credentials)
|
|
115
|
+
new thanos_store_1.ThanosStoreConstruct(this, 'thanos-store', {
|
|
116
|
+
namespace,
|
|
117
|
+
config,
|
|
118
|
+
});
|
|
119
|
+
// Thanos Compactor (downsampling - after S3 bucket and credentials)
|
|
120
|
+
new thanos_compactor_1.ThanosCompactorConstruct(this, 'thanos-compactor', {
|
|
121
|
+
namespace,
|
|
122
|
+
config,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
exports.MonitoringChart = MonitoringChart;
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uaXRvcmluZy1jaGFydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tb25pdG9yaW5nLWNoYXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUEwQztBQUcxQyx3QkFBd0I7QUFDeEIsOENBQW9EO0FBQ3BELGtGQUE2RTtBQUM3RSw0Q0FBa0Q7QUFDbEQsZ0VBQW9FO0FBQ3BFLDBFQUE4RTtBQUM5RSxzREFBNEQ7QUFDNUQsZ0VBQXFFO0FBQ3JFLG9FQUF5RTtBQUN6RSxvRUFBeUU7QUFDekUsNERBQWlFO0FBQ2pFLG9FQUF3RTtBQUN4RSw4RUFBa0Y7QUFDbEYsNERBQWlFO0FBR2pFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JHO0FBQ0gsTUFBYSxlQUFnQixTQUFRLGFBQUs7SUFDeEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBVyxNQUF3QixFQUFFLFFBQW9CLEVBQUU7UUFDakcsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFEeUIsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7UUFHekUsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUVuQyw0RUFBNEU7UUFDNUUscUJBQXFCO1FBQ3JCLDRFQUE0RTtRQUM1RSx3Q0FBd0M7UUFDeEMsSUFBSSw4QkFBa0IsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQ3hDLElBQUksRUFBRSxTQUFTO1NBQ2hCLENBQUMsQ0FBQztRQUVILElBQUksdUNBQXNCLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFFbkQsNEVBQTRFO1FBQzVFLGdDQUFnQztRQUNoQyw0RUFBNEU7UUFDNUUsNERBQTREO1FBQzVELElBQUksMENBQXVCLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1lBQ3BELE1BQU07U0FDUCxDQUFDLENBQUM7UUFFSCxJQUFJLHNDQUFxQixDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtZQUNoRCxNQUFNO1NBQ1AsQ0FBQyxDQUFDO1FBRUgsNENBQTRDO1FBQzVDLElBQUksb0RBQTRCLENBQUMsSUFBSSxFQUFFLHVCQUF1QixFQUFFO1lBQzlELFNBQVM7WUFDVCxNQUFNO1NBQ1AsQ0FBQyxDQUFDO1FBRUgsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGdEQUEwQixDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRTtZQUNwRixTQUFTO1lBQ1QsTUFBTTtTQUNQLENBQUMsQ0FBQztRQUVILG1FQUFtRTtRQUNuRSxJQUFJLCtDQUFxQixDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRTtZQUNsRCxTQUFTO1NBQ1YsQ0FBQyxDQUFDO1FBRUgsNEVBQTRFO1FBQzVFLHdCQUF3QjtRQUN4Qiw0RUFBNEU7UUFDNUUsMkVBQTJFO1FBQzNFLElBQUksMkNBQXdCLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1lBQ3JELFNBQVM7WUFDVCxNQUFNO1NBQ1AsQ0FBQyxDQUFDO1FBRUgseUJBQXlCO1FBQ3pCLElBQUksb0JBQWEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQzlCLFNBQVM7WUFDVCxNQUFNO1lBQ04sdUJBQXVCLEVBQUUsaUJBQWlCLENBQUMsVUFBVTtTQUN0RCxDQUFDLENBQUM7UUFFSCw0RUFBNEU7UUFDNUUsNEJBQTRCO1FBQzVCLDRFQUE0RTtRQUM1RSwrQ0FBK0M7UUFDL0MsSUFBSSxzQkFBYyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUU7WUFDaEMsU0FBUztZQUNULE1BQU07U0FDUCxDQUFDLENBQUM7UUFFSCxxRUFBcUU7UUFDckUsSUFBSSxtQ0FBb0IsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFO1lBQzdDLFNBQVM7WUFDVCxNQUFNO1NBQ1AsQ0FBQyxDQUFDO1FBRUgsOERBQThEO1FBQzlELElBQUksbUNBQW9CLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTtZQUM3QyxTQUFTO1lBQ1QsTUFBTTtTQUNQLENBQUMsQ0FBQztRQUVILG9FQUFvRTtRQUNwRSxJQUFJLDJDQUF3QixDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRTtZQUNyRCxTQUFTO1lBQ1QsTUFBTTtTQUNQLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXZGRCwwQ0F1RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFydCwgQ2hhcnRQcm9wcyB9IGZyb20gJ2NkazhzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vLyBJbXBvcnQgYWxsIGNvbnN0cnVjdHNcbmltcG9ydCB7IEFsbG95Q29uc3RydWN0IH0gZnJvbSAnLi9jb25zdHJ1Y3RzL2FsbG95JztcbmltcG9ydCB7IEdyYWZhbmFQYXNzd29yZFNlY3JldCB9IGZyb20gJy4vY29uc3RydWN0cy9ncmFmYW5hLXBhc3N3b3JkLXNlY3JldCc7XG5pbXBvcnQgeyBMb2tpQ29uc3RydWN0IH0gZnJvbSAnLi9jb25zdHJ1Y3RzL2xva2knO1xuaW1wb3J0IHsgTG9raVMzQnVja2V0Q29uc3RydWN0IH0gZnJvbSAnLi9jb25zdHJ1Y3RzL2xva2ktczMtYnVja2V0JztcbmltcG9ydCB7IExva2lTM0NyZWRlbnRpYWxzQ29uc3RydWN0IH0gZnJvbSAnLi9jb25zdHJ1Y3RzL2xva2ktczMtY3JlZGVudGlhbHMnO1xuaW1wb3J0IHsgTmFtZXNwYWNlQ29uc3RydWN0IH0gZnJvbSAnLi9jb25zdHJ1Y3RzL25hbWVzcGFjZSc7XG5pbXBvcnQgeyBQcmlvcml0eUNsYXNzQ29uc3RydWN0IH0gZnJvbSAnLi9jb25zdHJ1Y3RzL3ByaW9yaXR5LWNsYXNzJztcbmltcG9ydCB7IFByb21ldGhldXNTdGFja0NvbnN0cnVjdCB9IGZyb20gJy4vY29uc3RydWN0cy9wcm9tZXRoZXVzLXN0YWNrJztcbmltcG9ydCB7IFRoYW5vc0NvbXBhY3RvckNvbnN0cnVjdCB9IGZyb20gJy4vY29uc3RydWN0cy90aGFub3MtY29tcGFjdG9yJztcbmltcG9ydCB7IFRoYW5vc1F1ZXJ5Q29uc3RydWN0IH0gZnJvbSAnLi9jb25zdHJ1Y3RzL3RoYW5vcy1xdWVyeSc7XG5pbXBvcnQgeyBUaGFub3NTM0J1Y2tldENvbnN0cnVjdCB9IGZyb20gJy4vY29uc3RydWN0cy90aGFub3MtczMtYnVja2V0JztcbmltcG9ydCB7IFRoYW5vc1MzQ3JlZGVudGlhbHNDb25zdHJ1Y3QgfSBmcm9tICcuL2NvbnN0cnVjdHMvdGhhbm9zLXMzLWNyZWRlbnRpYWxzJztcbmltcG9ydCB7IFRoYW5vc1N0b3JlQ29uc3RydWN0IH0gZnJvbSAnLi9jb25zdHJ1Y3RzL3RoYW5vcy1zdG9yZSc7XG5pbXBvcnQgeyBNb25pdG9yaW5nQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogTW9uaXRvcmluZ0NoYXJ0IG9yY2hlc3RyYXRlcyB0aGUgY29tcGxldGUgbW9uaXRvcmluZyBzdGFjay5cbiAqXG4gKiBUaGlzIGNoYXJ0IGNyZWF0ZXMgYWxsIHJlc291cmNlcyBpbiB0aGUgY29ycmVjdCBvcmRlciB1c2luZyBBcmdvQ0Qgc3luYy13YXZlczpcbiAqXG4gKiBXYXZlIDA6IEZvdW5kYXRpb25cbiAqIC0gTmFtZXNwYWNlXG4gKiAtIFByaW9yaXR5Q2xhc3NcbiAqXG4gKiBXYXZlIDE6IEV4dGVybmFsIERlcGVuZGVuY2llc1xuICogLSBTMyBCdWNrZXRzIChDcm9zc3BsYW5lKVxuICogLSBTMyBDcmVkZW50aWFscyAoRXh0ZXJuYWxTZWNyZXQpXG4gKlxuICogV2F2ZSAyOiBDb3JlIFNlcnZpY2VzXG4gKiAtIFByb21ldGhldXMgU3RhY2sgKFByb21ldGhldXMsIEdyYWZhbmEsIEFsZXJ0bWFuYWdlcilcbiAqIC0gTG9raSAobG9nIGFnZ3JlZ2F0aW9uKVxuICpcbiAqIFdhdmUgMzogQWR2YW5jZWQgU2VydmljZXNcbiAqIC0gQWxsb3kgKGxvZyBjb2xsZWN0aW9uKVxuICogLSBUaGFub3MgUXVlcnkgKHVuaWZpZWQgbWV0cmljcyBxdWVyeSlcbiAqIC0gVGhhbm9zIFN0b3JlIChTMyBnYXRld2F5KVxuICogLSBUaGFub3MgQ29tcGFjdG9yIChkb3duc2FtcGxpbmcpXG4gKlxuICogQXBwLXNwZWNpZmljIGRhc2hib2FyZHMgYW5kIGFsZXJ0IHJ1bGVzIGFyZSBpbnRlbnRpb25hbGx5IE5PVCBwYXJ0IG9mIHRoaXNcbiAqIGNoYXJ0LiBJbnRlZ3JhdGlvbiBjaGFydHMgYXR0YWNoIHRoZWlyIG93biBkYXNoYm9hcmQvYWxlcnQgY29uc3RydWN0cyBiZXNpZGVcbiAqIHRoaXMgb25lICh0aGUgR3JhZmFuYSBzaWRlY2FyIGRpc2NvdmVycyBDb25maWdNYXBzIGxhYmVsZWRcbiAqIGBncmFmYW5hX2Rhc2hib2FyZDogXCIxXCJgIGluIHRoZSBzYW1lIG5hbWVzcGFjZSkuXG4gKlxuICogQ29uZmlndXJhdGlvbiBpcyBwcm92aWRlZCB2aWEgdGhlIE1vbml0b3JpbmdDb25maWcgaW50ZXJmYWNlLCB3aGljaCBjb21iaW5lczpcbiAqIC0gY29uZmlnLnlhbWwgKGRlZmF1bHQgdmFsdWVzKVxuICogLSBFbnZpcm9ubWVudCB2YXJpYWJsZXMgKG92ZXJyaWRlcylcbiAqL1xuZXhwb3J0IGNsYXNzIE1vbml0b3JpbmdDaGFydCBleHRlbmRzIENoYXJ0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcmVhZG9ubHkgY29uZmlnOiBNb25pdG9yaW5nQ29uZmlnLCBwcm9wczogQ2hhcnRQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICBjb25zdCBuYW1lc3BhY2UgPSBjb25maWcubmFtZXNwYWNlO1xuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vIFdhdmUgMDogRm91bmRhdGlvblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAvLyBNdXN0IGV4aXN0IGJlZm9yZSBhbnkgb3RoZXIgcmVzb3VyY2VzXG4gICAgbmV3IE5hbWVzcGFjZUNvbnN0cnVjdCh0aGlzLCAnbmFtZXNwYWNlJywge1xuICAgICAgbmFtZTogbmFtZXNwYWNlLFxuICAgIH0pO1xuXG4gICAgbmV3IFByaW9yaXR5Q2xhc3NDb25zdHJ1Y3QodGhpcywgJ3ByaW9yaXR5LWNsYXNzJyk7XG5cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gV2F2ZSAxOiBFeHRlcm5hbCBEZXBlbmRlbmNpZXNcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gUzMgYnVja2V0cyBtdXN0IGJlIGNyZWF0ZWQgYmVmb3JlIHBvZHMgdHJ5IHRvIGFjY2VzcyB0aGVtXG4gICAgbmV3IFRoYW5vc1MzQnVja2V0Q29uc3RydWN0KHRoaXMsICd0aGFub3MtczMtYnVja2V0Jywge1xuICAgICAgY29uZmlnLFxuICAgIH0pO1xuXG4gICAgbmV3IExva2lTM0J1Y2tldENvbnN0cnVjdCh0aGlzLCAnbG9raS1zMy1idWNrZXQnLCB7XG4gICAgICBjb25maWcsXG4gICAgfSk7XG5cbiAgICAvLyBTZWNyZXRzIG11c3QgZXhpc3QgYmVmb3JlIHBvZHMgbW91bnQgdGhlbVxuICAgIG5ldyBUaGFub3NTM0NyZWRlbnRpYWxzQ29uc3RydWN0KHRoaXMsICd0aGFub3MtczMtY3JlZGVudGlhbHMnLCB7XG4gICAgICBuYW1lc3BhY2UsXG4gICAgICBjb25maWcsXG4gICAgfSk7XG5cbiAgICBjb25zdCBsb2tpUzNDcmVkZW50aWFscyA9IG5ldyBMb2tpUzNDcmVkZW50aWFsc0NvbnN0cnVjdCh0aGlzLCAnbG9raS1zMy1jcmVkZW50aWFscycsIHtcbiAgICAgIG5hbWVzcGFjZSxcbiAgICAgIGNvbmZpZyxcbiAgICB9KTtcblxuICAgIC8vIEdyYWZhbmEgYWRtaW4gY3JlZGVudGlhbHMgKHN0YWJsZSBwYXNzd29yZCBhY3Jvc3MgSGVsbSB1cGdyYWRlcylcbiAgICBuZXcgR3JhZmFuYVBhc3N3b3JkU2VjcmV0KHRoaXMsICdncmFmYW5hLXBhc3N3b3JkJywge1xuICAgICAgbmFtZXNwYWNlLFxuICAgIH0pO1xuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vIFdhdmUgMjogQ29yZSBTZXJ2aWNlc1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAvLyBQcm9tZXRoZXVzIFN0YWNrIChpbmNsdWRlcyBQcm9tZXRoZXVzLCBHcmFmYW5hLCBBbGVydG1hbmFnZXIsIG9wZXJhdG9ycylcbiAgICBuZXcgUHJvbWV0aGV1c1N0YWNrQ29uc3RydWN0KHRoaXMsICdwcm9tZXRoZXVzLXN0YWNrJywge1xuICAgICAgbmFtZXNwYWNlLFxuICAgICAgY29uZmlnLFxuICAgIH0pO1xuXG4gICAgLy8gTG9raSAobG9nIGFnZ3JlZ2F0aW9uKVxuICAgIG5ldyBMb2tpQ29uc3RydWN0KHRoaXMsICdsb2tpJywge1xuICAgICAgbmFtZXNwYWNlLFxuICAgICAgY29uZmlnLFxuICAgICAgczNDcmVkZW50aWFsc1NlY3JldE5hbWU6IGxva2lTM0NyZWRlbnRpYWxzLnNlY3JldE5hbWUsXG4gICAgfSk7XG5cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gV2F2ZSAzOiBBZHZhbmNlZCBTZXJ2aWNlc1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAvLyBBbGxveSAobG9nIGNvbGxlY3Rpb24gLSBhZnRlciBMb2tpIGlzIHJlYWR5KVxuICAgIG5ldyBBbGxveUNvbnN0cnVjdCh0aGlzLCAnYWxsb3knLCB7XG4gICAgICBuYW1lc3BhY2UsXG4gICAgICBjb25maWcsXG4gICAgfSk7XG5cbiAgICAvLyBUaGFub3MgUXVlcnkgKHVuaWZpZWQgcXVlcnkgaW50ZXJmYWNlIC0gYWZ0ZXIgUHJvbWV0aGV1cyBpcyByZWFkeSlcbiAgICBuZXcgVGhhbm9zUXVlcnlDb25zdHJ1Y3QodGhpcywgJ3RoYW5vcy1xdWVyeScsIHtcbiAgICAgIG5hbWVzcGFjZSxcbiAgICAgIGNvbmZpZyxcbiAgICB9KTtcblxuICAgIC8vIFRoYW5vcyBTdG9yZSAoUzMgZ2F0ZXdheSAtIGFmdGVyIFMzIGJ1Y2tldCBhbmQgY3JlZGVudGlhbHMpXG4gICAgbmV3IFRoYW5vc1N0b3JlQ29uc3RydWN0KHRoaXMsICd0aGFub3Mtc3RvcmUnLCB7XG4gICAgICBuYW1lc3BhY2UsXG4gICAgICBjb25maWcsXG4gICAgfSk7XG5cbiAgICAvLyBUaGFub3MgQ29tcGFjdG9yIChkb3duc2FtcGxpbmcgLSBhZnRlciBTMyBidWNrZXQgYW5kIGNyZWRlbnRpYWxzKVxuICAgIG5ldyBUaGFub3NDb21wYWN0b3JDb25zdHJ1Y3QodGhpcywgJ3RoYW5vcy1jb21wYWN0b3InLCB7XG4gICAgICBuYW1lc3BhY2UsXG4gICAgICBjb25maWcsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
package/lib/types.d.ts
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resource allocation for a component (CPU and memory)
|
|
3
|
+
*/
|
|
4
|
+
export interface ResourceAllocation {
|
|
5
|
+
cpu: string;
|
|
6
|
+
memory: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Resource requests and limits for a component
|
|
10
|
+
*/
|
|
11
|
+
export interface ResourceRequirements {
|
|
12
|
+
requests: ResourceAllocation;
|
|
13
|
+
limits: ResourceAllocation;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* S3 configuration for object storage
|
|
17
|
+
*/
|
|
18
|
+
export interface S3Config {
|
|
19
|
+
endpoint: string;
|
|
20
|
+
endpointNoProtocol: string;
|
|
21
|
+
region: string;
|
|
22
|
+
buckets: {
|
|
23
|
+
thanos: string;
|
|
24
|
+
loki: string;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* SMTP configuration for alerting
|
|
29
|
+
*/
|
|
30
|
+
export interface SmtpConfig {
|
|
31
|
+
host: string;
|
|
32
|
+
port: number;
|
|
33
|
+
from: string;
|
|
34
|
+
username?: string;
|
|
35
|
+
password?: string;
|
|
36
|
+
requireTls: boolean;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Domain configuration for ingresses
|
|
40
|
+
*/
|
|
41
|
+
export interface DomainConfig {
|
|
42
|
+
grafana: string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Retention policies for metrics and logs
|
|
46
|
+
*/
|
|
47
|
+
export interface RetentionConfig {
|
|
48
|
+
prometheus: string;
|
|
49
|
+
prometheusS3Raw: number;
|
|
50
|
+
prometheusS35m: number;
|
|
51
|
+
prometheusS31h: number;
|
|
52
|
+
loki: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Storage sizes for persistent volumes
|
|
56
|
+
*/
|
|
57
|
+
export interface StorageConfig {
|
|
58
|
+
prometheus: string;
|
|
59
|
+
grafana: string;
|
|
60
|
+
alertmanager: string;
|
|
61
|
+
lokiBackend: string;
|
|
62
|
+
lokiWrite: string;
|
|
63
|
+
thanosStore: string;
|
|
64
|
+
thanosCompactor: string;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Replica counts for high availability
|
|
68
|
+
*/
|
|
69
|
+
export interface ReplicaConfig {
|
|
70
|
+
prometheus: number;
|
|
71
|
+
alertmanager: number;
|
|
72
|
+
grafana: number;
|
|
73
|
+
lokiBackend: number;
|
|
74
|
+
lokiRead: number;
|
|
75
|
+
lokiWrite: number;
|
|
76
|
+
thanosQuery: number;
|
|
77
|
+
thanosStore: number;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Resource requirements for all components
|
|
81
|
+
*/
|
|
82
|
+
export interface ResourceConfig {
|
|
83
|
+
prometheus: ResourceRequirements;
|
|
84
|
+
grafana: ResourceRequirements;
|
|
85
|
+
alertmanager: ResourceRequirements;
|
|
86
|
+
lokiBackend: ResourceRequirements;
|
|
87
|
+
lokiRead: ResourceRequirements;
|
|
88
|
+
lokiWrite: ResourceRequirements;
|
|
89
|
+
lokiGateway: ResourceRequirements;
|
|
90
|
+
alloy: ResourceRequirements;
|
|
91
|
+
thanosQuery: ResourceRequirements;
|
|
92
|
+
thanosStore: ResourceRequirements;
|
|
93
|
+
thanosCompactor: ResourceRequirements;
|
|
94
|
+
configReloader: ResourceRequirements;
|
|
95
|
+
thanosSidecar: ResourceRequirements;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Helm chart version configuration
|
|
99
|
+
*/
|
|
100
|
+
export interface VersionConfig {
|
|
101
|
+
prometheusStack: string;
|
|
102
|
+
loki: string;
|
|
103
|
+
alloy: string;
|
|
104
|
+
thanos: string;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Configuration the package ships sensible defaults for.
|
|
108
|
+
* Integration charts may override any of these (deep-merged over DEFAULT_CONFIG).
|
|
109
|
+
*/
|
|
110
|
+
export interface DefaultableConfig {
|
|
111
|
+
versions: VersionConfig;
|
|
112
|
+
retention: RetentionConfig;
|
|
113
|
+
storage: StorageConfig;
|
|
114
|
+
replicas: ReplicaConfig;
|
|
115
|
+
resources: ResourceConfig;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Cluster-specific configuration with no sensible universal default.
|
|
119
|
+
* Integration charts must provide these.
|
|
120
|
+
*/
|
|
121
|
+
export interface RequiredClusterConfig {
|
|
122
|
+
namespace: string;
|
|
123
|
+
domains: DomainConfig;
|
|
124
|
+
s3: S3Config;
|
|
125
|
+
smtp: SmtpConfig;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Recursive partial — every property (including nested ones) becomes optional.
|
|
129
|
+
*/
|
|
130
|
+
export type DeepPartial<T> = {
|
|
131
|
+
[P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* Input accepted by mergeConfig: required cluster values plus optional,
|
|
135
|
+
* deeply-partial overrides of the package defaults.
|
|
136
|
+
*/
|
|
137
|
+
export type MonitoringConfigInput = RequiredClusterConfig & DeepPartial<DefaultableConfig>;
|
|
138
|
+
/**
|
|
139
|
+
* Complete, resolved monitoring stack configuration consumed by MonitoringChart.
|
|
140
|
+
*/
|
|
141
|
+
export interface MonitoringConfig extends RequiredClusterConfig, DefaultableConfig {
|
|
142
|
+
}
|
package/lib/types.js
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVzb3VyY2UgYWxsb2NhdGlvbiBmb3IgYSBjb21wb25lbnQgKENQVSBhbmQgbWVtb3J5KVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlQWxsb2NhdGlvbiB7XG4gIGNwdTogc3RyaW5nO1xuICBtZW1vcnk6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNvdXJjZSByZXF1ZXN0cyBhbmQgbGltaXRzIGZvciBhIGNvbXBvbmVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlUmVxdWlyZW1lbnRzIHtcbiAgcmVxdWVzdHM6IFJlc291cmNlQWxsb2NhdGlvbjtcbiAgbGltaXRzOiBSZXNvdXJjZUFsbG9jYXRpb247XG59XG5cbi8qKlxuICogUzMgY29uZmlndXJhdGlvbiBmb3Igb2JqZWN0IHN0b3JhZ2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTM0NvbmZpZyB7XG4gIGVuZHBvaW50OiBzdHJpbmc7IC8vIEZ1bGwgZW5kcG9pbnQgd2l0aCBwcm90b2NvbCAoZS5nLiwgaHR0cHM6Ly9mc24xLnlvdXItb2JqZWN0c3RvcmFnZS5jb20pXG4gIGVuZHBvaW50Tm9Qcm90b2NvbDogc3RyaW5nOyAvLyBFbmRwb2ludCB3aXRob3V0IHByb3RvY29sIChmb3IgVGhhbm9zKVxuICByZWdpb246IHN0cmluZzsgLy8gUzMgcmVnaW9uIChlLmcuLCBmc24xKVxuICBidWNrZXRzOiB7XG4gICAgdGhhbm9zOiBzdHJpbmc7IC8vIFRoYW5vcyBtZXRyaWNzIGJ1Y2tldFxuICAgIGxva2k6IHN0cmluZzsgLy8gTG9raSBsb2dzIGJ1Y2tldFxuICB9O1xufVxuXG4vKipcbiAqIFNNVFAgY29uZmlndXJhdGlvbiBmb3IgYWxlcnRpbmdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTbXRwQ29uZmlnIHtcbiAgaG9zdDogc3RyaW5nOyAvLyBTTVRQIHNlcnZlciBob3N0bmFtZVxuICBwb3J0OiBudW1iZXI7IC8vIFNNVFAgc2VydmVyIHBvcnRcbiAgZnJvbTogc3RyaW5nOyAvLyBGcm9tIGVtYWlsIGFkZHJlc3NcbiAgdXNlcm5hbWU/OiBzdHJpbmc7IC8vIFNNVFAgdXNlcm5hbWUgKG9wdGlvbmFsKVxuICBwYXNzd29yZD86IHN0cmluZzsgLy8gU01UUCBwYXNzd29yZCAob3B0aW9uYWwpXG4gIHJlcXVpcmVUbHM6IGJvb2xlYW47IC8vIFJlcXVpcmUgVExTIGZvciBTTVRQXG59XG5cbi8qKlxuICogRG9tYWluIGNvbmZpZ3VyYXRpb24gZm9yIGluZ3Jlc3Nlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIERvbWFpbkNvbmZpZyB7XG4gIGdyYWZhbmE6IHN0cmluZzsgLy8gR3JhZmFuYSBkb21haW4gKGUuZy4sIGdyYWZhbmEub3BzLmt1cDZzLm5ldClcbn1cblxuLyoqXG4gKiBSZXRlbnRpb24gcG9saWNpZXMgZm9yIG1ldHJpY3MgYW5kIGxvZ3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXRlbnRpb25Db25maWcge1xuICBwcm9tZXRoZXVzOiBzdHJpbmc7IC8vIFByb21ldGhldXMgbG9jYWwgcmV0ZW50aW9uIChlLmcuLCBcIjNkXCIpXG4gIHByb21ldGhldXNTM1JhdzogbnVtYmVyOyAvLyBUaGFub3MgcmF3IGRhdGEgcmV0ZW50aW9uIChkYXlzKVxuICBwcm9tZXRoZXVzUzM1bTogbnVtYmVyOyAvLyBUaGFub3MgNS1taW51dGUgZG93bnNhbXBsZWQgcmV0ZW50aW9uIChkYXlzKVxuICBwcm9tZXRoZXVzUzMxaDogbnVtYmVyOyAvLyBUaGFub3MgMS1ob3VyIGRvd25zYW1wbGVkIHJldGVudGlvbiAoZGF5cylcbiAgbG9raTogc3RyaW5nOyAvLyBMb2tpIHJldGVudGlvbiAoZS5nLiwgXCI3NDRoXCIgZm9yIDMxIGRheXMpXG59XG5cbi8qKlxuICogU3RvcmFnZSBzaXplcyBmb3IgcGVyc2lzdGVudCB2b2x1bWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmFnZUNvbmZpZyB7XG4gIHByb21ldGhldXM6IHN0cmluZzsgLy8gUHJvbWV0aGV1cyBQVkMgc2l6ZVxuICBncmFmYW5hOiBzdHJpbmc7IC8vIEdyYWZhbmEgUFZDIHNpemVcbiAgYWxlcnRtYW5hZ2VyOiBzdHJpbmc7IC8vIEFsZXJ0bWFuYWdlciBQVkMgc2l6ZVxuICBsb2tpQmFja2VuZDogc3RyaW5nOyAvLyBMb2tpIGJhY2tlbmQgUFZDIHNpemVcbiAgbG9raVdyaXRlOiBzdHJpbmc7IC8vIExva2kgd3JpdGUgUFZDIHNpemVcbiAgdGhhbm9zU3RvcmU6IHN0cmluZzsgLy8gVGhhbm9zIHN0b3JlIFBWQyBzaXplIChwZXIgcmVwbGljYSlcbiAgdGhhbm9zQ29tcGFjdG9yOiBzdHJpbmc7IC8vIFRoYW5vcyBjb21wYWN0b3IgUFZDIHNpemVcbn1cblxuLyoqXG4gKiBSZXBsaWNhIGNvdW50cyBmb3IgaGlnaCBhdmFpbGFiaWxpdHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBsaWNhQ29uZmlnIHtcbiAgcHJvbWV0aGV1czogbnVtYmVyOyAvLyBQcm9tZXRoZXVzIHJlcGxpY2FzXG4gIGFsZXJ0bWFuYWdlcjogbnVtYmVyOyAvLyBBbGVydG1hbmFnZXIgcmVwbGljYXNcbiAgZ3JhZmFuYTogbnVtYmVyOyAvLyBHcmFmYW5hIHJlcGxpY2FzICh1c3VhbGx5IDEpXG4gIGxva2lCYWNrZW5kOiBudW1iZXI7IC8vIExva2kgYmFja2VuZCByZXBsaWNhc1xuICBsb2tpUmVhZDogbnVtYmVyOyAvLyBMb2tpIHJlYWQgcmVwbGljYXNcbiAgbG9raVdyaXRlOiBudW1iZXI7IC8vIExva2kgd3JpdGUgcmVwbGljYXNcbiAgdGhhbm9zUXVlcnk6IG51bWJlcjsgLy8gVGhhbm9zIFF1ZXJ5IHJlcGxpY2FzXG4gIHRoYW5vc1N0b3JlOiBudW1iZXI7IC8vIFRoYW5vcyBTdG9yZSByZXBsaWNhc1xufVxuXG4vKipcbiAqIFJlc291cmNlIHJlcXVpcmVtZW50cyBmb3IgYWxsIGNvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZUNvbmZpZyB7XG4gIHByb21ldGhldXM6IFJlc291cmNlUmVxdWlyZW1lbnRzO1xuICBncmFmYW5hOiBSZXNvdXJjZVJlcXVpcmVtZW50cztcbiAgYWxlcnRtYW5hZ2VyOiBSZXNvdXJjZVJlcXVpcmVtZW50cztcbiAgbG9raUJhY2tlbmQ6IFJlc291cmNlUmVxdWlyZW1lbnRzO1xuICBsb2tpUmVhZDogUmVzb3VyY2VSZXF1aXJlbWVudHM7XG4gIGxva2lXcml0ZTogUmVzb3VyY2VSZXF1aXJlbWVudHM7XG4gIGxva2lHYXRld2F5OiBSZXNvdXJjZVJlcXVpcmVtZW50cztcbiAgYWxsb3k6IFJlc291cmNlUmVxdWlyZW1lbnRzO1xuICB0aGFub3NRdWVyeTogUmVzb3VyY2VSZXF1aXJlbWVudHM7XG4gIHRoYW5vc1N0b3JlOiBSZXNvdXJjZVJlcXVpcmVtZW50cztcbiAgdGhhbm9zQ29tcGFjdG9yOiBSZXNvdXJjZVJlcXVpcmVtZW50cztcbiAgLy8gU2lkZWNhciBjb250YWluZXJzIChhZGRlZCAyMDI1LTExLTE4KVxuICBjb25maWdSZWxvYWRlcjogUmVzb3VyY2VSZXF1aXJlbWVudHM7IC8vIGNvbmZpZy1yZWxvYWRlciBzaWRlY2FyIChQcm9tZXRoZXVzLCBBbGVydG1hbmFnZXIsIEFsbG95KVxuICB0aGFub3NTaWRlY2FyOiBSZXNvdXJjZVJlcXVpcmVtZW50czsgLy8gdGhhbm9zLXNpZGVjYXIgZm9yIFByb21ldGhldXNcbn1cblxuLyoqXG4gKiBIZWxtIGNoYXJ0IHZlcnNpb24gY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZlcnNpb25Db25maWcge1xuICBwcm9tZXRoZXVzU3RhY2s6IHN0cmluZzsgLy8ga3ViZS1wcm9tZXRoZXVzLXN0YWNrIGNoYXJ0IHZlcnNpb24gKGUuZy4sIFwibGF0ZXN0XCIgb3IgXCI2NS4wLjBcIilcbiAgbG9raTogc3RyaW5nOyAvLyBMb2tpIGNoYXJ0IHZlcnNpb25cbiAgYWxsb3k6IHN0cmluZzsgLy8gQWxsb3kgY2hhcnQgdmVyc2lvblxuICB0aGFub3M6IHN0cmluZzsgLy8gVGhhbm9zIGltYWdlIHZlcnNpb24gKGUuZy4sIFwidjAuMzYuMVwiKVxufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gdGhlIHBhY2thZ2Ugc2hpcHMgc2Vuc2libGUgZGVmYXVsdHMgZm9yLlxuICogSW50ZWdyYXRpb24gY2hhcnRzIG1heSBvdmVycmlkZSBhbnkgb2YgdGhlc2UgKGRlZXAtbWVyZ2VkIG92ZXIgREVGQVVMVF9DT05GSUcpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlZmF1bHRhYmxlQ29uZmlnIHtcbiAgdmVyc2lvbnM6IFZlcnNpb25Db25maWc7IC8vIENoYXJ0IGFuZCBpbWFnZSB2ZXJzaW9uc1xuICByZXRlbnRpb246IFJldGVudGlvbkNvbmZpZzsgLy8gRGF0YSByZXRlbnRpb24gcG9saWNpZXNcbiAgc3RvcmFnZTogU3RvcmFnZUNvbmZpZzsgLy8gUFZDIHN0b3JhZ2Ugc2l6ZXNcbiAgcmVwbGljYXM6IFJlcGxpY2FDb25maWc7IC8vIFJlcGxpY2EgY291bnRzXG4gIHJlc291cmNlczogUmVzb3VyY2VDb25maWc7IC8vIFJlc291cmNlIHJlcXVlc3RzIGFuZCBsaW1pdHNcbn1cblxuLyoqXG4gKiBDbHVzdGVyLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24gd2l0aCBubyBzZW5zaWJsZSB1bml2ZXJzYWwgZGVmYXVsdC5cbiAqIEludGVncmF0aW9uIGNoYXJ0cyBtdXN0IHByb3ZpZGUgdGhlc2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWlyZWRDbHVzdGVyQ29uZmlnIHtcbiAgbmFtZXNwYWNlOiBzdHJpbmc7IC8vIEt1YmVybmV0ZXMgbmFtZXNwYWNlXG4gIGRvbWFpbnM6IERvbWFpbkNvbmZpZzsgLy8gRG9tYWluIG5hbWVzIGZvciBpbmdyZXNzZXNcbiAgczM6IFMzQ29uZmlnOyAvLyBTMyBvYmplY3Qgc3RvcmFnZSBjb25maWd1cmF0aW9uXG4gIHNtdHA6IFNtdHBDb25maWc7IC8vIFNNVFAgYWxlcnRpbmcgY29uZmlndXJhdGlvblxufVxuXG4vKipcbiAqIFJlY3Vyc2l2ZSBwYXJ0aWFsIOKAlCBldmVyeSBwcm9wZXJ0eSAoaW5jbHVkaW5nIG5lc3RlZCBvbmVzKSBiZWNvbWVzIG9wdGlvbmFsLlxuICovXG5leHBvcnQgdHlwZSBEZWVwUGFydGlhbDxUPiA9IHtcbiAgW1AgaW4ga2V5b2YgVF0/OiBUW1BdIGV4dGVuZHMgb2JqZWN0ID8gRGVlcFBhcnRpYWw8VFtQXT4gOiBUW1BdO1xufTtcblxuLyoqXG4gKiBJbnB1dCBhY2NlcHRlZCBieSBtZXJnZUNvbmZpZzogcmVxdWlyZWQgY2x1c3RlciB2YWx1ZXMgcGx1cyBvcHRpb25hbCxcbiAqIGRlZXBseS1wYXJ0aWFsIG92ZXJyaWRlcyBvZiB0aGUgcGFja2FnZSBkZWZhdWx0cy5cbiAqL1xuZXhwb3J0IHR5cGUgTW9uaXRvcmluZ0NvbmZpZ0lucHV0ID0gUmVxdWlyZWRDbHVzdGVyQ29uZmlnICYgRGVlcFBhcnRpYWw8RGVmYXVsdGFibGVDb25maWc+O1xuXG4vKipcbiAqIENvbXBsZXRlLCByZXNvbHZlZCBtb25pdG9yaW5nIHN0YWNrIGNvbmZpZ3VyYXRpb24gY29uc3VtZWQgYnkgTW9uaXRvcmluZ0NoYXJ0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vbml0b3JpbmdDb25maWcgZXh0ZW5kcyBSZXF1aXJlZENsdXN0ZXJDb25maWcsIERlZmF1bHRhYmxlQ29uZmlnIHt9XG4iXX0=
|
package/package.json
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@bluedynamics/cdk8s-monitoring",
|
|
3
|
+
"description": "Generic cdk8s monitoring stack (Prometheus, Thanos, Loki, Grafana, Alloy) for Kubernetes",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "https://github.com/bluedynamics/cdk8s-monitoring.git"
|
|
7
|
+
},
|
|
8
|
+
"scripts": {
|
|
9
|
+
"build": "projen build",
|
|
10
|
+
"bump": "projen bump",
|
|
11
|
+
"clobber": "projen clobber",
|
|
12
|
+
"compile": "projen compile",
|
|
13
|
+
"default": "projen default",
|
|
14
|
+
"eject": "projen eject",
|
|
15
|
+
"eslint": "projen eslint",
|
|
16
|
+
"package": "projen package",
|
|
17
|
+
"post-compile": "projen post-compile",
|
|
18
|
+
"post-upgrade": "projen post-upgrade",
|
|
19
|
+
"pre-compile": "projen pre-compile",
|
|
20
|
+
"release": "projen release",
|
|
21
|
+
"test": "projen test",
|
|
22
|
+
"test:watch": "projen test:watch",
|
|
23
|
+
"unbump": "projen unbump",
|
|
24
|
+
"upgrade": "projen upgrade",
|
|
25
|
+
"watch": "projen watch",
|
|
26
|
+
"projen": "projen"
|
|
27
|
+
},
|
|
28
|
+
"author": {
|
|
29
|
+
"name": "Jens W. Klein",
|
|
30
|
+
"email": "jk@kleinundpartner.at",
|
|
31
|
+
"organization": false
|
|
32
|
+
},
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@stylistic/eslint-plugin": "^2",
|
|
35
|
+
"@types/jest": "^30.0.0",
|
|
36
|
+
"@types/node": "^26.0.0",
|
|
37
|
+
"@typescript-eslint/eslint-plugin": "^8",
|
|
38
|
+
"@typescript-eslint/parser": "^8",
|
|
39
|
+
"cdk8s-cli": "^2.207.28",
|
|
40
|
+
"commit-and-tag-version": "^12",
|
|
41
|
+
"constructs": "10.4.2",
|
|
42
|
+
"eslint": "^9",
|
|
43
|
+
"eslint-import-resolver-typescript": "^4.4.5",
|
|
44
|
+
"eslint-plugin-import": "^2.32.0",
|
|
45
|
+
"jest": "^30.4.2",
|
|
46
|
+
"jest-junit": "^17",
|
|
47
|
+
"projen": "^0.100.5",
|
|
48
|
+
"ts-jest": "^29.4.11",
|
|
49
|
+
"ts-node": "^10.9.2",
|
|
50
|
+
"typescript": "^6.0.3",
|
|
51
|
+
"yaml": "^2.8.1"
|
|
52
|
+
},
|
|
53
|
+
"peerDependencies": {
|
|
54
|
+
"cdk8s": "^2.70.0",
|
|
55
|
+
"cdk8s-plus-33": "^2.4.0",
|
|
56
|
+
"constructs": "^10.4.2"
|
|
57
|
+
},
|
|
58
|
+
"dependencies": {
|
|
59
|
+
"cdk8s": "^2.70.0",
|
|
60
|
+
"cdk8s-plus-33": "^2.4.0",
|
|
61
|
+
"constructs": "^10.4.2",
|
|
62
|
+
"deepmerge-ts": "^7.1.5"
|
|
63
|
+
},
|
|
64
|
+
"main": "lib/index.js",
|
|
65
|
+
"license": "Apache-2.0",
|
|
66
|
+
"publishConfig": {
|
|
67
|
+
"access": "public"
|
|
68
|
+
},
|
|
69
|
+
"version": "0.0.1",
|
|
70
|
+
"jest": {
|
|
71
|
+
"coverageProvider": "v8",
|
|
72
|
+
"testMatch": [
|
|
73
|
+
"<rootDir>/@(src|test)/**/*(*.)@(spec|test).ts?(x)",
|
|
74
|
+
"<rootDir>/@(src|test)/**/__tests__/**/*.ts?(x)",
|
|
75
|
+
"<rootDir>/@(projenrc)/**/*(*.)@(spec|test).ts?(x)",
|
|
76
|
+
"<rootDir>/@(projenrc)/**/__tests__/**/*.ts?(x)"
|
|
77
|
+
],
|
|
78
|
+
"clearMocks": true,
|
|
79
|
+
"collectCoverage": true,
|
|
80
|
+
"coverageReporters": [
|
|
81
|
+
"json",
|
|
82
|
+
"lcov",
|
|
83
|
+
"clover",
|
|
84
|
+
"cobertura",
|
|
85
|
+
"text"
|
|
86
|
+
],
|
|
87
|
+
"coverageDirectory": "coverage",
|
|
88
|
+
"coveragePathIgnorePatterns": [
|
|
89
|
+
"/node_modules/"
|
|
90
|
+
],
|
|
91
|
+
"testPathIgnorePatterns": [
|
|
92
|
+
"/node_modules/"
|
|
93
|
+
],
|
|
94
|
+
"watchPathIgnorePatterns": [
|
|
95
|
+
"/node_modules/"
|
|
96
|
+
],
|
|
97
|
+
"reporters": [
|
|
98
|
+
"default",
|
|
99
|
+
[
|
|
100
|
+
"jest-junit",
|
|
101
|
+
{
|
|
102
|
+
"outputDirectory": "test-reports"
|
|
103
|
+
}
|
|
104
|
+
]
|
|
105
|
+
],
|
|
106
|
+
"transform": {
|
|
107
|
+
"^.+\\.[t]sx?$": [
|
|
108
|
+
"ts-jest",
|
|
109
|
+
{
|
|
110
|
+
"tsconfig": "test/tsconfig.json"
|
|
111
|
+
}
|
|
112
|
+
]
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
"types": "lib/index.d.ts",
|
|
116
|
+
"//": "~~ Generated by projen. To modify, edit .projenrc.ts and run \"npx projen\"."
|
|
117
|
+
}
|