@bluedynamics/cdk8s-monitoring 0.1.2 → 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/examples/synth.ts +6 -0
- package/lib/constructs/alloy-traces.d.ts +20 -0
- package/lib/constructs/alloy-traces.js +109 -0
- package/lib/constructs/prometheus-stack.js +18 -2
- package/lib/constructs/tempo-s3-bucket.d.ts +24 -0
- package/lib/constructs/tempo-s3-bucket.js +145 -0
- package/lib/constructs/tempo-s3-credentials.d.ts +27 -0
- package/lib/constructs/tempo-s3-credentials.js +66 -0
- package/lib/constructs/tempo.d.ts +20 -0
- package/lib/constructs/tempo.js +99 -0
- package/lib/default-config.js +17 -1
- package/lib/index.d.ts +4 -0
- package/lib/index.js +5 -1
- package/lib/monitoring-chart.js +23 -1
- package/lib/types.d.ts +22 -0
- package/lib/types.js +1 -1
- package/package.json +1 -1
package/examples/synth.ts
CHANGED
|
@@ -19,6 +19,12 @@ const config = mergeConfig({
|
|
|
19
19
|
grafanaSecretStore: 'example-app-secrets-store',
|
|
20
20
|
grafanaCredentialsKey: 'example-grafana-admin',
|
|
21
21
|
},
|
|
22
|
+
tempo: {
|
|
23
|
+
enabled: true,
|
|
24
|
+
bucket: 'example-tempo',
|
|
25
|
+
retention: '336h',
|
|
26
|
+
tailSampling: { latencyThresholdMs: 1000, probabilisticPercent: 10 },
|
|
27
|
+
},
|
|
22
28
|
});
|
|
23
29
|
new MonitoringChart(app, 'monitoring', config);
|
|
24
30
|
app.synth();
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Construct } from 'constructs';
|
|
2
|
+
import { MonitoringConfig } from '../types';
|
|
3
|
+
export interface AlloyTracesProps {
|
|
4
|
+
namespace: string;
|
|
5
|
+
config: MonitoringConfig;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Creates a dedicated Alloy deployment as the OTLP traces gateway.
|
|
9
|
+
*
|
|
10
|
+
* Apps send OTLP (gRPC 4317 / HTTP 4318) to the `alloy-traces` service. This
|
|
11
|
+
* single-replica gateway tail-samples (all errors + slow traces + a probabilistic
|
|
12
|
+
* remainder) and exports to Tempo's OTLP distributor. One replica guarantees a
|
|
13
|
+
* single instance sees all spans of a trace, which tail-sampling requires.
|
|
14
|
+
*
|
|
15
|
+
* Sync Wave: 3 (advanced services, alongside Tempo).
|
|
16
|
+
*/
|
|
17
|
+
export declare class AlloyTracesConstruct extends Construct {
|
|
18
|
+
constructor(scope: Construct, id: string, props: AlloyTracesProps);
|
|
19
|
+
private generateHelmValues;
|
|
20
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AlloyTracesConstruct = void 0;
|
|
4
|
+
const cdk8s_1 = require("cdk8s");
|
|
5
|
+
const constructs_1 = require("constructs");
|
|
6
|
+
/**
|
|
7
|
+
* Creates a dedicated Alloy deployment as the OTLP traces gateway.
|
|
8
|
+
*
|
|
9
|
+
* Apps send OTLP (gRPC 4317 / HTTP 4318) to the `alloy-traces` service. This
|
|
10
|
+
* single-replica gateway tail-samples (all errors + slow traces + a probabilistic
|
|
11
|
+
* remainder) and exports to Tempo's OTLP distributor. One replica guarantees a
|
|
12
|
+
* single instance sees all spans of a trace, which tail-sampling requires.
|
|
13
|
+
*
|
|
14
|
+
* Sync Wave: 3 (advanced services, alongside Tempo).
|
|
15
|
+
*/
|
|
16
|
+
class AlloyTracesConstruct extends constructs_1.Construct {
|
|
17
|
+
constructor(scope, id, props) {
|
|
18
|
+
super(scope, id);
|
|
19
|
+
const { namespace, config } = props;
|
|
20
|
+
new cdk8s_1.ApiObject(this, 'alloy-traces', {
|
|
21
|
+
apiVersion: 'helm.cattle.io/v1',
|
|
22
|
+
kind: 'HelmChart',
|
|
23
|
+
metadata: {
|
|
24
|
+
name: 'alloy-traces',
|
|
25
|
+
namespace: namespace,
|
|
26
|
+
labels: {
|
|
27
|
+
'app.kubernetes.io/name': 'alloy-traces',
|
|
28
|
+
'app.kubernetes.io/component': 'trace-collector',
|
|
29
|
+
'app.kubernetes.io/managed-by': 'cdk8s',
|
|
30
|
+
'app.kubernetes.io/part-of': 'monitoring',
|
|
31
|
+
},
|
|
32
|
+
annotations: {
|
|
33
|
+
'argocd.argoproj.io/sync-wave': '3',
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
spec: {
|
|
37
|
+
repo: 'https://grafana.github.io/helm-charts',
|
|
38
|
+
chart: 'alloy',
|
|
39
|
+
version: config.versions.alloy === 'latest' ? undefined : config.versions.alloy,
|
|
40
|
+
targetNamespace: namespace,
|
|
41
|
+
valuesContent: this.generateHelmValues(config),
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
generateHelmValues(config) {
|
|
46
|
+
const ts = config.tempo.tailSampling;
|
|
47
|
+
return `controller:
|
|
48
|
+
type: deployment
|
|
49
|
+
replicas: 1
|
|
50
|
+
alloy:
|
|
51
|
+
extraPorts:
|
|
52
|
+
- name: otlp-grpc
|
|
53
|
+
port: 4317
|
|
54
|
+
targetPort: 4317
|
|
55
|
+
protocol: TCP
|
|
56
|
+
- name: otlp-http
|
|
57
|
+
port: 4318
|
|
58
|
+
targetPort: 4318
|
|
59
|
+
protocol: TCP
|
|
60
|
+
configMap:
|
|
61
|
+
content: |-
|
|
62
|
+
otelcol.receiver.otlp "default" {
|
|
63
|
+
grpc { endpoint = "0.0.0.0:4317" }
|
|
64
|
+
http { endpoint = "0.0.0.0:4318" }
|
|
65
|
+
output { traces = [otelcol.processor.tail_sampling.default.input] }
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
otelcol.processor.tail_sampling "default" {
|
|
69
|
+
decision_wait = "10s"
|
|
70
|
+
|
|
71
|
+
policy {
|
|
72
|
+
name = "errors"
|
|
73
|
+
type = "status_code"
|
|
74
|
+
status_code { status_codes = ["ERROR"] }
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
policy {
|
|
78
|
+
name = "slow"
|
|
79
|
+
type = "latency"
|
|
80
|
+
latency { threshold_ms = ${ts.latencyThresholdMs} }
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
policy {
|
|
84
|
+
name = "rest"
|
|
85
|
+
type = "probabilistic"
|
|
86
|
+
probabilistic { sampling_percentage = ${ts.probabilisticPercent} }
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
output { traces = [otelcol.exporter.otlp.tempo.input] }
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
otelcol.exporter.otlp "tempo" {
|
|
93
|
+
client {
|
|
94
|
+
endpoint = "tempo.${config.namespace}.svc.cluster.local:4317"
|
|
95
|
+
tls { insecure = true }
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
resources:
|
|
99
|
+
requests:
|
|
100
|
+
cpu: ${config.resources.alloyTraces.requests.cpu}
|
|
101
|
+
memory: ${config.resources.alloyTraces.requests.memory}
|
|
102
|
+
limits:
|
|
103
|
+
cpu: ${config.resources.alloyTraces.limits.cpu}
|
|
104
|
+
memory: ${config.resources.alloyTraces.limits.memory}
|
|
105
|
+
`;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
exports.AlloyTracesConstruct = AlloyTracesConstruct;
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsb3ktdHJhY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0cnVjdHMvYWxsb3ktdHJhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUFrQztBQUNsQywyQ0FBdUM7QUFRdkM7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBYSxvQkFBcUIsU0FBUSxzQkFBUztJQUNqRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXVCO1FBQy9ELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFFcEMsSUFBSSxpQkFBUyxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDbEMsVUFBVSxFQUFFLG1CQUFtQjtZQUMvQixJQUFJLEVBQUUsV0FBVztZQUNqQixRQUFRLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixNQUFNLEVBQUU7b0JBQ04sd0JBQXdCLEVBQUUsY0FBYztvQkFDeEMsNkJBQTZCLEVBQUUsaUJBQWlCO29CQUNoRCw4QkFBOEIsRUFBRSxPQUFPO29CQUN2QywyQkFBMkIsRUFBRSxZQUFZO2lCQUMxQztnQkFDRCxXQUFXLEVBQUU7b0JBQ1gsOEJBQThCLEVBQUUsR0FBRztpQkFDcEM7YUFDRjtZQUNELElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsdUNBQXVDO2dCQUM3QyxLQUFLLEVBQUUsT0FBTztnQkFDZCxPQUFPLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSztnQkFDL0UsZUFBZSxFQUFFLFNBQVM7Z0JBQzFCLGFBQWEsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDO2FBQy9DO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGtCQUFrQixDQUFDLE1BQXdCO1FBQ2pELE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO1FBQ3JDLE9BQU87Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztxQ0FpQzBCLEVBQUUsQ0FBQyxrQkFBa0I7Ozs7OztrREFNUixFQUFFLENBQUMsb0JBQW9COzs7Ozs7Ozs4QkFRM0MsTUFBTSxDQUFDLFNBQVM7Ozs7OztXQU1uQyxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRztjQUN0QyxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTTs7V0FFL0MsTUFBTSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUc7Y0FDcEMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU07Q0FDdkQsQ0FBQztJQUNBLENBQUM7Q0FDRjtBQTlGRCxvREE4RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcGlPYmplY3QgfSBmcm9tICdjZGs4cyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IE1vbml0b3JpbmdDb25maWcgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWxsb3lUcmFjZXNQcm9wcyB7XG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuICBjb25maWc6IE1vbml0b3JpbmdDb25maWc7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIGRlZGljYXRlZCBBbGxveSBkZXBsb3ltZW50IGFzIHRoZSBPVExQIHRyYWNlcyBnYXRld2F5LlxuICpcbiAqIEFwcHMgc2VuZCBPVExQIChnUlBDIDQzMTcgLyBIVFRQIDQzMTgpIHRvIHRoZSBgYWxsb3ktdHJhY2VzYCBzZXJ2aWNlLiBUaGlzXG4gKiBzaW5nbGUtcmVwbGljYSBnYXRld2F5IHRhaWwtc2FtcGxlcyAoYWxsIGVycm9ycyArIHNsb3cgdHJhY2VzICsgYSBwcm9iYWJpbGlzdGljXG4gKiByZW1haW5kZXIpIGFuZCBleHBvcnRzIHRvIFRlbXBvJ3MgT1RMUCBkaXN0cmlidXRvci4gT25lIHJlcGxpY2EgZ3VhcmFudGVlcyBhXG4gKiBzaW5nbGUgaW5zdGFuY2Ugc2VlcyBhbGwgc3BhbnMgb2YgYSB0cmFjZSwgd2hpY2ggdGFpbC1zYW1wbGluZyByZXF1aXJlcy5cbiAqXG4gKiBTeW5jIFdhdmU6IDMgKGFkdmFuY2VkIHNlcnZpY2VzLCBhbG9uZ3NpZGUgVGVtcG8pLlxuICovXG5leHBvcnQgY2xhc3MgQWxsb3lUcmFjZXNDb25zdHJ1Y3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQWxsb3lUcmFjZXNQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCB7IG5hbWVzcGFjZSwgY29uZmlnIH0gPSBwcm9wcztcblxuICAgIG5ldyBBcGlPYmplY3QodGhpcywgJ2FsbG95LXRyYWNlcycsIHtcbiAgICAgIGFwaVZlcnNpb246ICdoZWxtLmNhdHRsZS5pby92MScsXG4gICAgICBraW5kOiAnSGVsbUNoYXJ0JyxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIG5hbWU6ICdhbGxveS10cmFjZXMnLFxuICAgICAgICBuYW1lc3BhY2U6IG5hbWVzcGFjZSxcbiAgICAgICAgbGFiZWxzOiB7XG4gICAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL25hbWUnOiAnYWxsb3ktdHJhY2VzJyxcbiAgICAgICAgICAnYXBwLmt1YmVybmV0ZXMuaW8vY29tcG9uZW50JzogJ3RyYWNlLWNvbGxlY3RvcicsXG4gICAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL21hbmFnZWQtYnknOiAnY2RrOHMnLFxuICAgICAgICAgICdhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mJzogJ21vbml0b3JpbmcnLFxuICAgICAgICB9LFxuICAgICAgICBhbm5vdGF0aW9uczoge1xuICAgICAgICAgICdhcmdvY2QuYXJnb3Byb2ouaW8vc3luYy13YXZlJzogJzMnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHNwZWM6IHtcbiAgICAgICAgcmVwbzogJ2h0dHBzOi8vZ3JhZmFuYS5naXRodWIuaW8vaGVsbS1jaGFydHMnLFxuICAgICAgICBjaGFydDogJ2FsbG95JyxcbiAgICAgICAgdmVyc2lvbjogY29uZmlnLnZlcnNpb25zLmFsbG95ID09PSAnbGF0ZXN0JyA/IHVuZGVmaW5lZCA6IGNvbmZpZy52ZXJzaW9ucy5hbGxveSxcbiAgICAgICAgdGFyZ2V0TmFtZXNwYWNlOiBuYW1lc3BhY2UsXG4gICAgICAgIHZhbHVlc0NvbnRlbnQ6IHRoaXMuZ2VuZXJhdGVIZWxtVmFsdWVzKGNvbmZpZyksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUhlbG1WYWx1ZXMoY29uZmlnOiBNb25pdG9yaW5nQ29uZmlnKTogc3RyaW5nIHtcbiAgICBjb25zdCB0cyA9IGNvbmZpZy50ZW1wby50YWlsU2FtcGxpbmc7XG4gICAgcmV0dXJuIGBjb250cm9sbGVyOlxuICB0eXBlOiBkZXBsb3ltZW50XG4gIHJlcGxpY2FzOiAxXG5hbGxveTpcbiAgZXh0cmFQb3J0czpcbiAgICAtIG5hbWU6IG90bHAtZ3JwY1xuICAgICAgcG9ydDogNDMxN1xuICAgICAgdGFyZ2V0UG9ydDogNDMxN1xuICAgICAgcHJvdG9jb2w6IFRDUFxuICAgIC0gbmFtZTogb3RscC1odHRwXG4gICAgICBwb3J0OiA0MzE4XG4gICAgICB0YXJnZXRQb3J0OiA0MzE4XG4gICAgICBwcm90b2NvbDogVENQXG4gIGNvbmZpZ01hcDpcbiAgICBjb250ZW50OiB8LVxuICAgICAgb3RlbGNvbC5yZWNlaXZlci5vdGxwIFwiZGVmYXVsdFwiIHtcbiAgICAgICAgZ3JwYyB7IGVuZHBvaW50ID0gXCIwLjAuMC4wOjQzMTdcIiB9XG4gICAgICAgIGh0dHAgeyBlbmRwb2ludCA9IFwiMC4wLjAuMDo0MzE4XCIgfVxuICAgICAgICBvdXRwdXQgeyB0cmFjZXMgPSBbb3RlbGNvbC5wcm9jZXNzb3IudGFpbF9zYW1wbGluZy5kZWZhdWx0LmlucHV0XSB9XG4gICAgICB9XG5cbiAgICAgIG90ZWxjb2wucHJvY2Vzc29yLnRhaWxfc2FtcGxpbmcgXCJkZWZhdWx0XCIge1xuICAgICAgICBkZWNpc2lvbl93YWl0ID0gXCIxMHNcIlxuXG4gICAgICAgIHBvbGljeSB7XG4gICAgICAgICAgbmFtZSA9IFwiZXJyb3JzXCJcbiAgICAgICAgICB0eXBlID0gXCJzdGF0dXNfY29kZVwiXG4gICAgICAgICAgc3RhdHVzX2NvZGUgeyBzdGF0dXNfY29kZXMgPSBbXCJFUlJPUlwiXSB9XG4gICAgICAgIH1cblxuICAgICAgICBwb2xpY3kge1xuICAgICAgICAgIG5hbWUgPSBcInNsb3dcIlxuICAgICAgICAgIHR5cGUgPSBcImxhdGVuY3lcIlxuICAgICAgICAgIGxhdGVuY3kgeyB0aHJlc2hvbGRfbXMgPSAke3RzLmxhdGVuY3lUaHJlc2hvbGRNc30gfVxuICAgICAgICB9XG5cbiAgICAgICAgcG9saWN5IHtcbiAgICAgICAgICBuYW1lID0gXCJyZXN0XCJcbiAgICAgICAgICB0eXBlID0gXCJwcm9iYWJpbGlzdGljXCJcbiAgICAgICAgICBwcm9iYWJpbGlzdGljIHsgc2FtcGxpbmdfcGVyY2VudGFnZSA9ICR7dHMucHJvYmFiaWxpc3RpY1BlcmNlbnR9IH1cbiAgICAgICAgfVxuXG4gICAgICAgIG91dHB1dCB7IHRyYWNlcyA9IFtvdGVsY29sLmV4cG9ydGVyLm90bHAudGVtcG8uaW5wdXRdIH1cbiAgICAgIH1cblxuICAgICAgb3RlbGNvbC5leHBvcnRlci5vdGxwIFwidGVtcG9cIiB7XG4gICAgICAgIGNsaWVudCB7XG4gICAgICAgICAgZW5kcG9pbnQgPSBcInRlbXBvLiR7Y29uZmlnLm5hbWVzcGFjZX0uc3ZjLmNsdXN0ZXIubG9jYWw6NDMxN1wiXG4gICAgICAgICAgdGxzIHsgaW5zZWN1cmUgPSB0cnVlIH1cbiAgICAgICAgfVxuICAgICAgfVxucmVzb3VyY2VzOlxuICByZXF1ZXN0czpcbiAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5hbGxveVRyYWNlcy5yZXF1ZXN0cy5jcHV9XG4gICAgbWVtb3J5OiAke2NvbmZpZy5yZXNvdXJjZXMuYWxsb3lUcmFjZXMucmVxdWVzdHMubWVtb3J5fVxuICBsaW1pdHM6XG4gICAgY3B1OiAke2NvbmZpZy5yZXNvdXJjZXMuYWxsb3lUcmFjZXMubGltaXRzLmNwdX1cbiAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy5hbGxveVRyYWNlcy5saW1pdHMubWVtb3J5fVxuYDtcbiAgfVxufVxuIl19
|
|
@@ -57,6 +57,22 @@ class PrometheusStackConstruct extends constructs_1.Construct {
|
|
|
57
57
|
});
|
|
58
58
|
}
|
|
59
59
|
generateHelmValues(config) {
|
|
60
|
+
// Tempo datasource is only provisioned when tracing is enabled. When
|
|
61
|
+
// disabled this is empty, so the Grafana block is byte-identical to before.
|
|
62
|
+
const tempoDatasource = config.tempo.enabled ? `
|
|
63
|
+
- name: Tempo
|
|
64
|
+
type: tempo
|
|
65
|
+
uid: tempo
|
|
66
|
+
access: proxy
|
|
67
|
+
url: http://tempo.${config.namespace}.svc.cluster.local:3200
|
|
68
|
+
jsonData:
|
|
69
|
+
tracesToLogsV2:
|
|
70
|
+
datasourceUid: loki
|
|
71
|
+
spanStartTimeShift: "-1h"
|
|
72
|
+
spanEndTimeShift: "1h"
|
|
73
|
+
filterByTraceID: true
|
|
74
|
+
tracesToMetrics:
|
|
75
|
+
datasourceUid: thanos` : '';
|
|
60
76
|
return `kubeEtcd:
|
|
61
77
|
enabled: false
|
|
62
78
|
|
|
@@ -436,7 +452,7 @@ grafana:
|
|
|
436
452
|
access: proxy
|
|
437
453
|
url: http://loki-gateway.${config.namespace}.svc.cluster.local
|
|
438
454
|
jsonData:
|
|
439
|
-
maxLines: 1000
|
|
455
|
+
maxLines: 1000${tempoDatasource}
|
|
440
456
|
|
|
441
457
|
prometheusOperator:
|
|
442
458
|
resources:
|
|
@@ -479,4 +495,4 @@ kube-state-metrics:
|
|
|
479
495
|
}
|
|
480
496
|
}
|
|
481
497
|
exports.PrometheusStackConstruct = PrometheusStackConstruct;
|
|
482
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWV0aGV1cy1zdGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25zdHJ1Y3RzL3Byb21ldGhldXMtc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQWtDO0FBQ2xDLDJDQUF1QztBQVF2Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE1BQWEsd0JBQXlCLFNBQVEsc0JBQVM7SUFDckQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEyQjtRQUNuRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBRXBDLDRCQUE0QjtRQUM1QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbkQsa0RBQWtEO1FBQ2xELDJDQUEyQztRQUMzQyxJQUFJLGlCQUFTLENBQUMsSUFBSSxFQUFFLHVCQUF1QixFQUFFO1lBQzNDLFVBQVUsRUFBRSxtQkFBbUI7WUFDL0IsSUFBSSxFQUFFLFdBQVc7WUFDakIsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSx1QkFBdUI7Z0JBQzdCLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixNQUFNLEVBQUU7b0JBQ04sd0JBQXdCLEVBQUUsdUJBQXVCO29CQUNqRCw2QkFBNkIsRUFBRSxZQUFZO29CQUMzQyw4QkFBOEIsRUFBRSxPQUFPO29CQUN2QywyQkFBMkIsRUFBRSxZQUFZO2lCQUMxQztnQkFDRCxXQUFXLEVBQUU7b0JBQ1gsOEJBQThCLEVBQUUsR0FBRztpQkFDcEM7YUFDRjtZQUNELElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsb0RBQW9EO2dCQUMxRCxLQUFLLEVBQUUsdUJBQXVCO2dCQUM5QixPQUFPLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsZUFBZTtnQkFDbkcsZUFBZSxFQUFFLFNBQVM7Z0JBQzFCLGFBQWEsRUFBRSxVQUFVO2FBQzFCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGtCQUFrQixDQUFDLE1BQXdCO1FBQ2pELE9BQU87Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7bUJBZ0hRLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSTt3QkFDWCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUk7MEJBQ2xDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVTs0QkFDcEIsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJOzRCQUN4QyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztjQTZCeEMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJOzs7Ozs7Ozs7Ozs7O2dCQWFkLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWTs7Ozs7Ozs7eUJBUW5CLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWTs7O2VBR3JDLE1BQU0sQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHO2tCQUNyQyxNQUFNLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsTUFBTTs7ZUFFOUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUc7a0JBQ3ZDLE1BQU0sQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNOzs7Ozs7OztpQkFROUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUc7b0JBQ3pDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxNQUFNOztpQkFFbEQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUc7b0JBQ3ZDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxNQUFNOzs7Ozs7Ozs7O2lCQVVoRCxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7Z0JBZ0I1QixNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVU7Ozs7Ozs7Ozt5QkFTakIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVOzs7O2VBSW5DLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHO2tCQUNuQyxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTTs7ZUFFNUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUc7a0JBQ3JDLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUJBMkI1QyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRztvQkFDekMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLE1BQU07O2lCQUVsRCxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRztvQkFDdkMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7VUF3Q3ZELE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTzs7Ozs7OztZQU9wQixNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU87Ozs7YUFJckIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUc7Z0JBQ2hDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNOzthQUV6QyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRztnQkFDbEMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7WUF5QjVDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzttQ0FzQkMsTUFBTSxDQUFDLFNBQVM7Ozs7Ozs7O3VEQVFJLE1BQU0sQ0FBQyxTQUFTOzs7Ozs7OzttQ0FRcEMsTUFBTSxDQUFDLFNBQVM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBeUNsRCxDQUFDO0lBQ0EsQ0FBQztDQUNGO0FBMWNELDREQTBjQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwaU9iamVjdCB9IGZyb20gJ2NkazhzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgTW9uaXRvcmluZ0NvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBQcm9tZXRoZXVzU3RhY2tQcm9wcyB7XG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuICBjb25maWc6IE1vbml0b3JpbmdDb25maWc7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBrdWJlLXByb21ldGhldXMtc3RhY2sgSGVsbUNoYXJ0IHdpdGggUHJvbWV0aGV1cywgR3JhZmFuYSwgYW5kIEFsZXJ0bWFuYWdlci5cbiAqXG4gKiBUaGlzIGlzIHRoZSBjb3JlIG1vbml0b3Jpbmcgc3RhY2sgdGhhdCBpbmNsdWRlczpcbiAqIC0gUHJvbWV0aGV1cyAobWV0cmljcyBjb2xsZWN0aW9uLCAyIHJlcGxpY2FzLCAzZCByZXRlbnRpb24pXG4gKiAtIEdyYWZhbmEgKHZpc3VhbGl6YXRpb24sIGluZ3Jlc3Mgd2l0aCBMZXQncyBFbmNyeXB0KVxuICogLSBBbGVydG1hbmFnZXIgKGFsZXJ0IHJvdXRpbmcsIFNNVFAgbm90aWZpY2F0aW9ucylcbiAqIC0gUHJvbWV0aGV1cyBPcGVyYXRvciAobWFuYWdlcyBQcm9tZXRoZXVzIENSRHMpXG4gKiAtIE5vZGUgRXhwb3J0ZXIgKHN5c3RlbSBtZXRyaWNzIERhZW1vblNldClcbiAqIC0ga3ViZS1zdGF0ZS1tZXRyaWNzIChLdWJlcm5ldGVzIHJlc291cmNlIG1ldHJpY3MpXG4gKlxuICogUHJlcmVxdWlzaXRlczpcbiAqIC0gTmFtZXNwYWNlIGV4aXN0c1xuICogLSBQcmlvcml0eUNsYXNzICdoaWdoLXByaW9yaXR5JyBleGlzdHNcbiAqIC0gTG9uZ2hvcm4gc3RvcmFnZSBjbGFzcyBhdmFpbGFibGVcbiAqIC0gY2VydC1tYW5hZ2VyIENsdXN0ZXJJc3N1ZXIgY29uZmlndXJlZFxuICogLSBUaGFub3MgUzMgc2VjcmV0IGV4aXN0cyAodGhhbm9zLW9ianN0b3JlLWNvbmZpZylcbiAqXG4gKiBTeW5jIFdhdmU6IDIgKGNvcmUgc2VydmljZXMgLSBhZnRlciBTMyBidWNrZXRzIGFuZCBzZWNyZXRzKVxuICovXG5leHBvcnQgY2xhc3MgUHJvbWV0aGV1c1N0YWNrQ29uc3RydWN0IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFByb21ldGhldXNTdGFja1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHsgbmFtZXNwYWNlLCBjb25maWcgfSA9IHByb3BzO1xuXG4gICAgLy8gR2VuZXJhdGUgSGVsbSB2YWx1ZXMgWUFNTFxuICAgIGNvbnN0IGhlbG1WYWx1ZXMgPSB0aGlzLmdlbmVyYXRlSGVsbVZhbHVlcyhjb25maWcpO1xuXG4gICAgLy8gQ3JlYXRlIEhlbG1DaGFydCByZXNvdXJjZSAoSzNTIEhlbG0gY29udHJvbGxlcilcbiAgICAvLyBXYXZlIDI6IENvcmUgU2VydmljZXMgLSBtb25pdG9yaW5nIHN0YWNrXG4gICAgbmV3IEFwaU9iamVjdCh0aGlzLCAna3ViZS1wcm9tZXRoZXVzLXN0YWNrJywge1xuICAgICAgYXBpVmVyc2lvbjogJ2hlbG0uY2F0dGxlLmlvL3YxJyxcbiAgICAgIGtpbmQ6ICdIZWxtQ2hhcnQnLFxuICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgbmFtZTogJ2t1YmUtcHJvbWV0aGV1cy1zdGFjaycsXG4gICAgICAgIG5hbWVzcGFjZTogbmFtZXNwYWNlLFxuICAgICAgICBsYWJlbHM6IHtcbiAgICAgICAgICAnYXBwLmt1YmVybmV0ZXMuaW8vbmFtZSc6ICdrdWJlLXByb21ldGhldXMtc3RhY2snLFxuICAgICAgICAgICdhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnQnOiAnbW9uaXRvcmluZycsXG4gICAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL21hbmFnZWQtYnknOiAnY2RrOHMnLFxuICAgICAgICAgICdhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mJzogJ21vbml0b3JpbmcnLFxuICAgICAgICB9LFxuICAgICAgICBhbm5vdGF0aW9uczoge1xuICAgICAgICAgICdhcmdvY2QuYXJnb3Byb2ouaW8vc3luYy13YXZlJzogJzInLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHNwZWM6IHtcbiAgICAgICAgcmVwbzogJ2h0dHBzOi8vcHJvbWV0aGV1cy1jb21tdW5pdHkuZ2l0aHViLmlvL2hlbG0tY2hhcnRzJyxcbiAgICAgICAgY2hhcnQ6ICdrdWJlLXByb21ldGhldXMtc3RhY2snLFxuICAgICAgICB2ZXJzaW9uOiBjb25maWcudmVyc2lvbnMucHJvbWV0aGV1c1N0YWNrID09PSAnbGF0ZXN0JyA/IHVuZGVmaW5lZCA6IGNvbmZpZy52ZXJzaW9ucy5wcm9tZXRoZXVzU3RhY2ssXG4gICAgICAgIHRhcmdldE5hbWVzcGFjZTogbmFtZXNwYWNlLFxuICAgICAgICB2YWx1ZXNDb250ZW50OiBoZWxtVmFsdWVzLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVIZWxtVmFsdWVzKGNvbmZpZzogTW9uaXRvcmluZ0NvbmZpZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBrdWJlRXRjZDpcbiAgZW5hYmxlZDogZmFsc2VcblxuIyBEaXNhYmxlIGt1YmUtY29udHJvbGxlci1tYW5hZ2VyIGFuZCBrdWJlLXNjaGVkdWxlciBtb25pdG9yaW5nLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NhYmxlc3BhZ2hldHRpL2szcy1tb25pdG9yaW5nL2lzc3Vlcy8yXG5rdWJlQ29udHJvbGxlck1hbmFnZXI6XG4gIGVuYWJsZWQ6IGZhbHNlXG5rdWJlU2NoZWR1bGVyOlxuICBlbmFibGVkOiBmYWxzZVxuXG4jIERldGVjdCBQb2REaXNydXB0aW9uQnVkZ2V0cyB0aGF0IHdvdWxkIGJsb2NrIGEgbm9kZSBkcmFpbiBkdXJpbmcgazNzIHVwZ3JhZGVzLlxuIyBPcGVyYXRvci1tYW5hZ2VkIFBEQnMgc2l0IGF0IGRpc3J1cHRpb25zQWxsb3dlZD0wIGJ5IGRlc2lnbiAoTG9uZ2hvcm4gaW5zdGFuY2UtbWFuYWdlcnMsXG4jIENOUEcgKi1wcmltYXJ5KSBhbmQgYXJlIGV4Y2x1ZGVkIHNvIHRoZSBhbGVydCBvbmx5IGZpcmVzIG9uIGFub21hbG91cyBhcHAgUERCcy5cbmFkZGl0aW9uYWxQcm9tZXRoZXVzUnVsZXNNYXA6XG4gIHBkYi1kcmFpbi1zYWZldHk6XG4gICAgZ3JvdXBzOlxuICAgICAgLSBuYW1lOiBwZGIucnVsZXNcbiAgICAgICAgaW50ZXJ2YWw6IDFtXG4gICAgICAgIHJ1bGVzOlxuICAgICAgICAgIC0gYWxlcnQ6IFBvZERpc3J1cHRpb25CdWRnZXRVbmRyYWluYWJsZVxuICAgICAgICAgICAgZXhwcjoga3ViZV9wb2RkaXNydXB0aW9uYnVkZ2V0X3N0YXR1c19wb2RfZGlzcnVwdGlvbnNfYWxsb3dlZHtuYW1lc3BhY2UhPVwibG9uZ2hvcm4tc3lzdGVtXCIsIHBvZGRpc3J1cHRpb25idWRnZXQhflwiLiotcHJpbWFyeVwifSA9PSAwXG4gICAgICAgICAgICBmb3I6IDE1bVxuICAgICAgICAgICAgbGFiZWxzOlxuICAgICAgICAgICAgICBzZXZlcml0eTogd2FybmluZ1xuICAgICAgICAgICAgICBjb21wb25lbnQ6IGNsdXN0ZXItdXBncmFkZVxuICAgICAgICAgICAgYW5ub3RhdGlvbnM6XG4gICAgICAgICAgICAgIHN1bW1hcnk6IFwiUERCIHt7ICRsYWJlbHMubmFtZXNwYWNlIH19L3t7ICRsYWJlbHMucG9kZGlzcnVwdGlvbmJ1ZGdldCB9fSBhbGxvd3MgMCB2b2x1bnRhcnkgZGlzcnVwdGlvbnNcIlxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogfFxuICAgICAgICAgICAgICAgIFRoZSBQb2REaXNydXB0aW9uQnVkZ2V0IHt7ICRsYWJlbHMubmFtZXNwYWNlIH19L3t7ICRsYWJlbHMucG9kZGlzcnVwdGlvbmJ1ZGdldCB9fVxuICAgICAgICAgICAgICAgIGhhcyBhbGxvd2VkIDAgdm9sdW50YXJ5IGRpc3J1cHRpb25zIGZvciBvdmVyIDE1IG1pbnV0ZXMuIFRoaXMgd2lsbCBibG9jayBhIG5vZGVcbiAgICAgICAgICAgICAgICBkcmFpbiBkdXJpbmcgazNzIHVwZ3JhZGVzLiBPcGVyYXRvci1tYW5hZ2VkIFBEQnMgKExvbmdob3JuLCBDTlBHIHByaW1hcmllcykgYXJlXG4gICAgICAgICAgICAgICAgZXhjbHVkZWQgZnJvbSB0aGlzIGFsZXJ0LiBMaWtlbHkgYSBkZWdyYWRlZCBkZXBsb3ltZW50ICgwIGhlYWx0aHkgcG9kcykgb3IgYVxuICAgICAgICAgICAgICAgIHNpbmdsZS1yZXBsaWNhIGRlcGxveW1lbnQgd2l0aCBtaW5BdmFpbGFibGU9MS5cbiAgICAgICAgICAgICAgICBDaGVjazoga3ViZWN0bCBnZXQgcGRiIC1uIHt7ICRsYWJlbHMubmFtZXNwYWNlIH19IHt7ICRsYWJlbHMucG9kZGlzcnVwdGlvbmJ1ZGdldCB9fVxuICAgICAgICAgIC0gYWxlcnQ6IFBvZERpc3J1cHRpb25CdWRnZXRVbmRyYWluYWJsZUNyaXRpY2FsXG4gICAgICAgICAgICBleHByOiBrdWJlX3BvZGRpc3J1cHRpb25idWRnZXRfc3RhdHVzX3BvZF9kaXNydXB0aW9uc19hbGxvd2Vke25hbWVzcGFjZSE9XCJsb25naG9ybi1zeXN0ZW1cIiwgcG9kZGlzcnVwdGlvbmJ1ZGdldCF+XCIuKi1wcmltYXJ5XCJ9ID09IDBcbiAgICAgICAgICAgIGZvcjogMWhcbiAgICAgICAgICAgIGxhYmVsczpcbiAgICAgICAgICAgICAgc2V2ZXJpdHk6IGNyaXRpY2FsXG4gICAgICAgICAgICAgIGNvbXBvbmVudDogY2x1c3Rlci11cGdyYWRlXG4gICAgICAgICAgICBhbm5vdGF0aW9uczpcbiAgICAgICAgICAgICAgc3VtbWFyeTogXCJQREIge3sgJGxhYmVscy5uYW1lc3BhY2UgfX0ve3sgJGxhYmVscy5wb2RkaXNydXB0aW9uYnVkZ2V0IH19IHVuZHJhaW5hYmxlID4xaFwiXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB8XG4gICAgICAgICAgICAgICAgUERCIHt7ICRsYWJlbHMubmFtZXNwYWNlIH19L3t7ICRsYWJlbHMucG9kZGlzcnVwdGlvbmJ1ZGdldCB9fSBoYXMgYmxvY2tlZFxuICAgICAgICAgICAgICAgIHZvbHVudGFyeSBkaXNydXB0aW9ucyBmb3Igb3ZlciBhbiBob3VyLiBBIGszcyBhZ2VudCB1cGdyYWRlIHdvdWxkIHN0YWxsIG9uIHRoaXMgbm9kZS5cbiAgIyBEZXRlY3QgYW4gRVggZGVkaWNhdGVkIHdvcmtlciBzdHVjayBOb3RSZWFkeSDigJQgbGlrZWx5IGEgTWljcm9PUyByZWJvb3QgaGFuZ1xuICAjIChwaW5ncyBidXQgc3NoZC9rdWJlbGV0IGRlYWQpLiBBIGh1bmcgbm9kZSBhbHNvIGhvbGRzIHRoZSBjbHVzdGVyLXdpZGUga3VyZWRcbiAgIyBsb2NrLCBibG9ja2luZyBhbGwgZnVydGhlciBncmFjZWZ1bCByZWJvb3RzLCBzbyB0aGlzIG11c3QgYmUgY2F1Z2h0IGZhc3QuXG4gIGV4LXdvcmtlci1yZWJvb3Q6XG4gICAgZ3JvdXBzOlxuICAgICAgLSBuYW1lOiBleC13b3JrZXIucnVsZXNcbiAgICAgICAgaW50ZXJ2YWw6IDFtXG4gICAgICAgIHJ1bGVzOlxuICAgICAgICAgIC0gYWxlcnQ6IEV4V29ya2VyTm90UmVhZHlcbiAgICAgICAgICAgIGV4cHI6IGt1YmVfbm9kZV9zdGF0dXNfY29uZGl0aW9ue2NvbmRpdGlvbj1cIlJlYWR5XCIsc3RhdHVzPVwidHJ1ZVwiLG5vZGU9flwia3VwNnMtZXgtLipcIn0gPT0gMFxuICAgICAgICAgICAgZm9yOiAxNW1cbiAgICAgICAgICAgIGxhYmVsczpcbiAgICAgICAgICAgICAgc2V2ZXJpdHk6IGNyaXRpY2FsXG4gICAgICAgICAgICAgIGNvbXBvbmVudDogbm9kZVxuICAgICAgICAgICAgYW5ub3RhdGlvbnM6XG4gICAgICAgICAgICAgIHN1bW1hcnk6IFwiRVggd29ya2VyIHt7ICRsYWJlbHMubm9kZSB9fSBOb3RSZWFkeSBmb3IgPjE1bVwiXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB8XG4gICAgICAgICAgICAgICAgRVggZGVkaWNhdGVkIHdvcmtlciB7eyAkbGFiZWxzLm5vZGUgfX0gaGFzIGJlZW4gTm90UmVhZHkgZm9yIG92ZXIgMTUgbWludXRlcy5cbiAgICAgICAgICAgICAgICBQb3NzaWJsZSBNaWNyb09TIHJlYm9vdCBoYW5nIChwaW5ncyBidXQgc3NoZC9rdWJlbGV0L2xvbmdob3JuLW1hbmFnZXIgZGVhZCkg4oCUIHRoZVxuICAgICAgICAgICAgICAgIG5vZGUgbWF5IHN0aWxsIGhvbGQgdGhlIGNsdXN0ZXItd2lkZSBrdXJlZCBsb2NrLCBibG9ja2luZyBhbGwgZnVydGhlciByZWJvb3RzLlxuICAgICAgICAgICAgICAgIFJlY292ZXJ5OiBIZXR6bmVyIFJvYm90IGhhcmR3YXJlIHJlc2V0LiBEbyBOT1QgZm9yY2UtZGV0YWNoIExvbmdob3JuIHZvbHVtZXMuXG4gICAgICAgICAgICAgIHJ1bmJvb2tfdXJsOiBcImh0dHBzOi8vZG9jcy5rdXA2cy5jb20vaG93LXRvL3Ryb3VibGVzaG9vdGluZy9leC13b3JrZXItcGluZy1idXQtZGVhZC5odG1sXCJcblxuIyBEcm9wIGhpZ2gtY2FyZGluYWxpdHkgQVBJIHNlcnZlciBhbmQgZXRjZCBoaXN0b2dyYW0gYnVja2V0cyB0byByZWR1Y2UgbWVtb3J5IHVzYWdlXG4jIFRoZXNlIG1ldHJpY3MgYWxvbmUgYWNjb3VudCBmb3IgfjIwMGsgc2VyaWVzICg0NyUgb2YgdG90YWwgY2FyZGluYWxpdHkpXG4jIFdlIGtlZXAgX3N1bSBhbmQgX2NvdW50IHN1ZmZpeGVzIHdoaWNoIGFyZSBzdWZmaWNpZW50IGZvciByYXRlIGNhbGN1bGF0aW9uc1xua3ViZUFwaVNlcnZlcjpcbiAgc2VydmljZU1vbml0b3I6XG4gICAgbWV0cmljUmVsYWJlbGluZ3M6XG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2FwaXNlcnZlcl9yZXF1ZXN0X2R1cmF0aW9uX3NlY29uZHNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcbiAgICAgIC0gc291cmNlTGFiZWxzOiBbX19uYW1lX19dXG4gICAgICAgIHJlZ2V4OiAnYXBpc2VydmVyX3JlcXVlc3Rfc2xpX2R1cmF0aW9uX3NlY29uZHNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcbiAgICAgIC0gc291cmNlTGFiZWxzOiBbX19uYW1lX19dXG4gICAgICAgIHJlZ2V4OiAnYXBpc2VydmVyX3JlcXVlc3RfYm9keV9zaXplX2J5dGVzX2J1Y2tldCdcbiAgICAgICAgYWN0aW9uOiBkcm9wXG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2FwaXNlcnZlcl9yZXNwb25zZV9zaXplc19idWNrZXQnXG4gICAgICAgIGFjdGlvbjogZHJvcFxuICAgICAgLSBzb3VyY2VMYWJlbHM6IFtfX25hbWVfX11cbiAgICAgICAgcmVnZXg6ICdldGNkX3JlcXVlc3RfZHVyYXRpb25fc2Vjb25kc19idWNrZXQnXG4gICAgICAgIGFjdGlvbjogZHJvcFxuXG4jIEt1YmVsZXQgYWxzbyBleHBvc2VzIGFwaXNlcnZlciBtZXRyaWNzIC0gYXBwbHkgc2FtZSBmaWx0ZXJzXG5rdWJlbGV0OlxuICBzZXJ2aWNlTW9uaXRvcjpcbiAgICBtZXRyaWNSZWxhYmVsaW5nczpcbiAgICAgIC0gc291cmNlTGFiZWxzOiBbX19uYW1lX19dXG4gICAgICAgIHJlZ2V4OiAnYXBpc2VydmVyX3JlcXVlc3RfZHVyYXRpb25fc2Vjb25kc19idWNrZXQnXG4gICAgICAgIGFjdGlvbjogZHJvcFxuICAgICAgLSBzb3VyY2VMYWJlbHM6IFtfX25hbWVfX11cbiAgICAgICAgcmVnZXg6ICdhcGlzZXJ2ZXJfcmVxdWVzdF9zbGlfZHVyYXRpb25fc2Vjb25kc19idWNrZXQnXG4gICAgICAgIGFjdGlvbjogZHJvcFxuICAgICAgLSBzb3VyY2VMYWJlbHM6IFtfX25hbWVfX11cbiAgICAgICAgcmVnZXg6ICdhcGlzZXJ2ZXJfcmVxdWVzdF9ib2R5X3NpemVfYnl0ZXNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcbiAgICAgIC0gc291cmNlTGFiZWxzOiBbX19uYW1lX19dXG4gICAgICAgIHJlZ2V4OiAnYXBpc2VydmVyX3Jlc3BvbnNlX3NpemVzX2J1Y2tldCdcbiAgICAgICAgYWN0aW9uOiBkcm9wXG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2V0Y2RfcmVxdWVzdF9kdXJhdGlvbl9zZWNvbmRzX2J1Y2tldCdcbiAgICAgICAgYWN0aW9uOiBkcm9wXG5cbmFsZXJ0bWFuYWdlcjpcbiAgY29uZmlnOlxuICAgIGdsb2JhbDpcbiAgICAgIHNtdHBfZnJvbTogJHtjb25maWcuc210cC5mcm9tfVxuICAgICAgc210cF9zbWFydGhvc3Q6ICR7Y29uZmlnLnNtdHAuaG9zdH06JHtjb25maWcuc210cC5wb3J0fVxuICAgICAgc210cF9yZXF1aXJlX3RsczogJHtjb25maWcuc210cC5yZXF1aXJlVGxzfVxuICAgICAgc210cF9hdXRoX3VzZXJuYW1lOiAke2NvbmZpZy5zbXRwLnVzZXJuYW1lIHx8IGNvbmZpZy5zbXRwLmZyb219XG4gICAgICBzbXRwX2F1dGhfcGFzc3dvcmQ6ICR7Y29uZmlnLnNtdHAucGFzc3dvcmQgfHwgJyd9XG4gICAgcm91dGU6XG4gICAgICBncm91cF9ieTogWydqb2InXVxuICAgICAgZ3JvdXBfd2FpdDogMzBzXG4gICAgICBncm91cF9pbnRlcnZhbDogNW1cbiAgICAgIHJlcGVhdF9pbnRlcnZhbDogMWhcbiAgICAgIHJlY2VpdmVyOiBlbWFpbFxuICAgICAgcm91dGVzOlxuICAgICAgLSBtYXRjaDpcbiAgICAgICAgICBhbGVydG5hbWU6IFdhdGNoZG9nXG4gICAgICAgIHJlY2VpdmVyOiAnbnVsbCdcbiAgICAgIC0gbWF0Y2g6XG4gICAgICAgICAgYWxlcnRuYW1lOiBDUFVUaHJvdHRsaW5nSGlnaFxuICAgICAgICByZWNlaXZlcjogJ251bGwnXG4gICAgICAtIG1hdGNoOlxuICAgICAgICAgIGFsZXJ0bmFtZTogS3ViZU1lbW9yeU92ZXJjb21taXRcbiAgICAgICAgcmVjZWl2ZXI6ICdudWxsJ1xuICAgICAgLSBtYXRjaDpcbiAgICAgICAgICBhbGVydG5hbWU6IEt1YmVDUFVPdmVyY29tbWl0XG4gICAgICAgIHJlY2VpdmVyOiAnbnVsbCdcbiAgICAgIC0gbWF0Y2g6XG4gICAgICAgICAgYWxlcnRuYW1lOiBLdWJlbGV0VG9vTWFueVBvZHNcbiAgICAgICAgcmVjZWl2ZXI6ICdudWxsJ1xuXG4gICAgcmVjZWl2ZXJzOlxuICAgIC0gbmFtZTogJ251bGwnXG4gICAgLSBuYW1lOiBlbWFpbFxuICAgICAgZW1haWxfY29uZmlnczpcbiAgICAgIC0gc2VuZF9yZXNvbHZlZDogdHJ1ZVxuICAgICAgICB0bzogJHtjb25maWcuc210cC5mcm9tfVxuXG4gICAgIyBJbmhpYml0aW9uIHJ1bGVzIGFsbG93IHRvIG11dGUgYSBzZXQgb2YgYWxlcnRzIGdpdmVuIHRoYXQgYW5vdGhlciBhbGVydCBpcyBmaXJpbmcuXG4gICAgIyBXZSB1c2UgdGhpcyB0byBtdXRlIGFueSB3YXJuaW5nLWxldmVsIG5vdGlmaWNhdGlvbnMgaWYgdGhlIHNhbWUgYWxlcnQgaXMgYWxyZWFkeSBjcml0aWNhbC5cbiAgICBpbmhpYml0X3J1bGVzOlxuICAgIC0gc291cmNlX21hdGNoOlxuICAgICAgICBzZXZlcml0eTogJ2NyaXRpY2FsJ1xuICAgICAgdGFyZ2V0X21hdGNoOlxuICAgICAgICBzZXZlcml0eTogJ3dhcm5pbmcnXG4gICAgICAjIEFwcGx5IGluaGliaXRpb24gaWYgdGhlIGFsZXJ0bmFtZSBpcyB0aGUgc2FtZS5cbiAgICAgIGVxdWFsOiBbJ2FsZXJ0bmFtZScsICduYW1lc3BhY2UnXVxuXG4gIGFsZXJ0bWFuYWdlclNwZWM6XG4gICAgcmVwbGljYXM6ICR7Y29uZmlnLnJlcGxpY2FzLmFsZXJ0bWFuYWdlcn1cbiAgICBwb2RBbnRpQWZmaW5pdHk6IFwic29mdFwiXG4gICAgc3RvcmFnZTpcbiAgICAgIHZvbHVtZUNsYWltVGVtcGxhdGU6XG4gICAgICAgIHNwZWM6XG4gICAgICAgICAgYWNjZXNzTW9kZXM6IFtcIlJlYWRXcml0ZU9uY2VcIl1cbiAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgc3RvcmFnZTogJHtjb25maWcuc3RvcmFnZS5hbGVydG1hbmFnZXJ9XG4gICAgcmVzb3VyY2VzOlxuICAgICAgbGltaXRzOlxuICAgICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5hbGVydG1hbmFnZXIubGltaXRzLmNwdX1cbiAgICAgICAgbWVtb3J5OiAke2NvbmZpZy5yZXNvdXJjZXMuYWxlcnRtYW5hZ2VyLmxpbWl0cy5tZW1vcnl9XG4gICAgICByZXF1ZXN0czpcbiAgICAgICAgY3B1OiAke2NvbmZpZy5yZXNvdXJjZXMuYWxlcnRtYW5hZ2VyLnJlcXVlc3RzLmNwdX1cbiAgICAgICAgbWVtb3J5OiAke2NvbmZpZy5yZXNvdXJjZXMuYWxlcnRtYW5hZ2VyLnJlcXVlc3RzLm1lbW9yeX1cbiAgICBwcmlvcml0eUNsYXNzTmFtZTogaGlnaC1wcmlvcml0eVxuXG4gICAgIyBTaWRlY2FyIGNvbnRhaW5lcnMgcmVzb3VyY2UgcmVxdWVzdHMgKGFkZGVkIDIwMjUtMTEtMTgpXG4gICAgY29udGFpbmVyczpcbiAgICAtIG5hbWU6IGNvbmZpZy1yZWxvYWRlclxuICAgICAgcmVzb3VyY2VzOlxuICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5jb25maWdSZWxvYWRlci5yZXF1ZXN0cy5jcHV9XG4gICAgICAgICAgbWVtb3J5OiAke2NvbmZpZy5yZXNvdXJjZXMuY29uZmlnUmVsb2FkZXIucmVxdWVzdHMubWVtb3J5fVxuICAgICAgICBsaW1pdHM6XG4gICAgICAgICAgY3B1OiAke2NvbmZpZy5yZXNvdXJjZXMuY29uZmlnUmVsb2FkZXIubGltaXRzLmNwdX1cbiAgICAgICAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy5jb25maWdSZWxvYWRlci5saW1pdHMubWVtb3J5fVxuXG5cbnByb21ldGhldXM6XG4gICMgRW5hYmxlIFRoYW5vcyBzZXJ2aWNlIGZvciBnUlBDIGNvbW11bmljYXRpb25cbiAgIyBSZXF1aXJlZCBmb3IgSGVsbSBjaGFydCB0byBwcm9wZXJseSByZW5kZXIgVGhhbm9zIHNpZGVjYXIgY29uZmlndXJhdGlvblxuICB0aGFub3NTZXJ2aWNlOlxuICAgIGVuYWJsZWQ6IHRydWVcblxuICBwcm9tZXRoZXVzU3BlYzpcbiAgICByZXRlbnRpb246ICR7Y29uZmlnLnJldGVudGlvbi5wcm9tZXRoZXVzfSAgIyBSZWR1Y2VkIGZyb20gN2QgLSBUaGFub3MgcHJvdmlkZXMgbG9uZy10ZXJtIHN0b3JhZ2UgaW4gUzNcblxuICAgICMgRGlzY292ZXIgQUxMIFNlcnZpY2VNb25pdG9ycywgUG9kTW9uaXRvcnMgYW5kIFByb21ldGhldXNSdWxlcyBpbiBBTEwgbmFtZXNwYWNlc1xuICAgICMgU2V0dGluZyBOaWxVc2VzSGVsbVZhbHVlczogZmFsc2UgbWVhbnMgbmlsIHNlbGVjdG9ycyA9IFwic2VsZWN0IGFsbFwiXG4gICAgIyBFbXB0eSBuYW1lc3BhY2Ugc2VsZWN0b3JzIHt9IG1lYW4gXCJzZWFyY2ggYWxsIG5hbWVzcGFjZXNcIlxuICAgICMgV2l0aG91dCB0aGUgcnVsZSogc2V0dGluZ3MsIHJ1bGVTZWxlY3RvciBrZWVwcyB0aGUgY2hhcnQgZGVmYXVsdFxuICAgICMgKG1hdGNoTGFiZWxzOiB7cmVsZWFzZTogPG5hbWU+fSkgYW5kIGhhbmQtYXV0aG9yZWQgUHJvbWV0aGV1c1J1bGVzIHRoYXRcbiAgICAjIGxhY2sgdGhlIHJlbGVhc2UgbGFiZWwgYXJlIHNpbGVudGx5IGlnbm9yZWQuXG4gICAgIyBOb3RlOiBUaGlzIGRvZXMgTk9UIGFmZmVjdCBUaGFub3Mgc2lkZWNhciAtIGNvbnRyb2xsZWQgYnkgdGhhbm9zLm9iamVjdFN0b3JhZ2VDb25maWdcbiAgICBzZXJ2aWNlTW9uaXRvclNlbGVjdG9yTmlsVXNlc0hlbG1WYWx1ZXM6IGZhbHNlXG4gICAgcG9kTW9uaXRvclNlbGVjdG9yTmlsVXNlc0hlbG1WYWx1ZXM6IGZhbHNlXG4gICAgcnVsZVNlbGVjdG9yTmlsVXNlc0hlbG1WYWx1ZXM6IGZhbHNlXG4gICAgc2VydmljZU1vbml0b3JOYW1lc3BhY2VTZWxlY3Rvcjoge31cbiAgICBwb2RNb25pdG9yTmFtZXNwYWNlU2VsZWN0b3I6IHt9XG4gICAgcnVsZU5hbWVzcGFjZVNlbGVjdG9yOiB7fVxuXG4gICAgcmVwbGljYXM6ICR7Y29uZmlnLnJlcGxpY2FzLnByb21ldGhldXN9XG4gICAgcG9kQW50aUFmZmluaXR5OiBcImhhcmRcIlxuICAgIHN0b3JhZ2VTcGVjOlxuICAgICAgdm9sdW1lQ2xhaW1UZW1wbGF0ZTpcbiAgICAgICAgc3BlYzpcbiAgICAgICAgICBzdG9yYWdlQ2xhc3NOYW1lOiBsb25naG9yblxuICAgICAgICAgIGFjY2Vzc01vZGVzOiBbXCJSZWFkV3JpdGVPbmNlXCJdXG4gICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgIHN0b3JhZ2U6ICR7Y29uZmlnLnN0b3JhZ2UucHJvbWV0aGV1c30gICMgUmVkdWNlZCBmcm9tIDZHaSAoM2QgcmV0ZW50aW9uIG5lZWRzIGxlc3Mgc3BhY2UpXG5cbiAgICByZXNvdXJjZXM6XG4gICAgICBsaW1pdHM6XG4gICAgICAgIGNwdTogJHtjb25maWcucmVzb3VyY2VzLnByb21ldGhldXMubGltaXRzLmNwdX1cbiAgICAgICAgbWVtb3J5OiAke2NvbmZpZy5yZXNvdXJjZXMucHJvbWV0aGV1cy5saW1pdHMubWVtb3J5fVxuICAgICAgcmVxdWVzdHM6XG4gICAgICAgIGNwdTogJHtjb25maWcucmVzb3VyY2VzLnByb21ldGhldXMucmVxdWVzdHMuY3B1fVxuICAgICAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy5wcm9tZXRoZXVzLnJlcXVlc3RzLm1lbW9yeX1cbiAgICBwcmlvcml0eUNsYXNzTmFtZTogaGlnaC1wcmlvcml0eVxuXG4gICAgIyBFeHRlcm5hbCBsYWJlbHMgZm9yIG11bHRpLWNsdXN0ZXIgaWRlbnRpZmljYXRpb24gYW5kIFRoYW5vc1xuICAgIGV4dGVybmFsTGFiZWxzOlxuICAgICAgY2x1c3Rlcjoga3VwNnNcbiAgICAgIHJlcGxpY2E6IFwiJChQT0RfTkFNRSlcIlxuXG4gICAgIyBUaGFub3Mgc2lkZWNhciBmb3IgbG9uZy10ZXJtIG1ldHJpY3Mgc3RvcmFnZSBpbiBTM1xuICAgICMgTk9URTogY2hhcnQgPj04NS54IHJlcXVpcmVzIHRoZSBleGlzdGluZ1NlY3JldCBzaGFwZS4gVGhlIGxlZ2FjeSBmbGF0XG4gICAgIyB7bmFtZSwga2V5fSBmb3JtIGlzIHNpbGVudGx5IGRyb3BwZWQgYnkgdGhlIGNoYXJ0LCB3aGljaCByZW1vdmVzIHRoZVxuICAgICMgc2lkZWNhciBhbmQgc3RvcHMgYWxsIFMzIGJsb2NrIHVwbG9hZHMgKHJlZ3Jlc3Npb24gc2VlbiAyMDI2LTAzLTMxKS5cbiAgICB0aGFub3M6XG4gICAgICBvYmplY3RTdG9yYWdlQ29uZmlnOlxuICAgICAgICBleGlzdGluZ1NlY3JldDpcbiAgICAgICAgICBuYW1lOiB0aGFub3Mtb2Jqc3RvcmUtY29uZmlnICAjIEVTTy1tYW5hZ2VkIHNlY3JldFxuICAgICAgICAgIGtleTogb2Jqc3RvcmUueW1sXG5cbiAgICAjIFNpZGVjYXIgY29udGFpbmVycyByZXNvdXJjZSByZXF1ZXN0cyAoYWRkZWQgMjAyNS0xMS0xOClcbiAgICAjIE5PVEU6IHRoYW5vcy1zaWRlY2FyIGlzIE5PVCBsaXN0ZWQgaGVyZSAtIGl0J3MgYXV0b21hdGljYWxseSBpbmplY3RlZCBieSBQcm9tZXRoZXVzIE9wZXJhdG9yXG4gICAgIyB3aGVuIHRoYW5vcy5vYmplY3RTdG9yYWdlQ29uZmlnIGlzIHNldC4gU3BlY2lmeWluZyBpdCBpbiBjb250YWluZXJzW10gd291bGQgb3ZlcnJpZGVcbiAgICAjIHRoZSBvcGVyYXRvcidzIGRlZmluaXRpb24gYW5kIHJlcXVpcmUgdXMgdG8gbWFudWFsbHkgc3BlY2lmeSB0aGUgaW1hZ2UsIHdoaWNoIGJyZWFrc1xuICAgICMgd2hlbiB0aGUgb3BlcmF0b3IgdXBkYXRlcyB0aGUgdGhhbm9zIHZlcnNpb24uXG4gICAgY29udGFpbmVyczpcbiAgICAtIG5hbWU6IGNvbmZpZy1yZWxvYWRlclxuICAgICAgcmVzb3VyY2VzOlxuICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5jb25maWdSZWxvYWRlci5yZXF1ZXN0cy5jcHV9XG4gICAgICAgICAgbWVtb3J5OiAke2NvbmZpZy5yZXNvdXJjZXMuY29uZmlnUmVsb2FkZXIucmVxdWVzdHMubWVtb3J5fVxuICAgICAgICBsaW1pdHM6XG4gICAgICAgICAgY3B1OiAke2NvbmZpZy5yZXNvdXJjZXMuY29uZmlnUmVsb2FkZXIubGltaXRzLmNwdX1cbiAgICAgICAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy5jb25maWdSZWxvYWRlci5saW1pdHMubWVtb3J5fVxuXG4gICAgc2VydmljZTpcbiAgICAgIHNlc3Npb25BZmZpbml0eTogXCJDbGllbnRJUFwiXG5cblxuZ3JhZmFuYTpcbiAgIyBSZWNyZWF0ZSBzdHJhdGVneSBpcyByZXF1aXJlZCBiZWNhdXNlIHRoZSBzdG9yYWdlIFBWQyBpcyBSV086XG4gICMgYSBSb2xsaW5nVXBkYXRlIHdvdWxkIHN1cmdlIGEgc2Vjb25kIHBvZCB0aGF0IGNhbm5vdCBtb3VudCB0aGVcbiAgIyB2b2x1bWUgKEZhaWxlZEF0dGFjaFZvbHVtZSksIGJsb2NraW5nIHRoZSByb2xsb3V0IGluZGVmaW5pdGVseS5cbiAgZGVwbG95bWVudFN0cmF0ZWd5OlxuICAgIHR5cGU6IFJlY3JlYXRlXG5cbiAgIyBVc2UgZXhpc3Rpbmcgc2VjcmV0IGZvciBhZG1pbiBjcmVkZW50aWFscyAobWFuYWdlZCBieSBFU08pXG4gICMgVGhpcyBwcmV2ZW50cyBwYXNzd29yZCByZWdlbmVyYXRpb24gb24gSGVsbSB1cGdyYWRlc1xuICBhZG1pbjpcbiAgICBleGlzdGluZ1NlY3JldDogXCJncmFmYW5hLWFkbWluLWNyZWRlbnRpYWxzXCJcbiAgICB1c2VyS2V5OiBcImFkbWluLXVzZXJcIlxuICAgIHBhc3N3b3JkS2V5OiBcImFkbWluLXBhc3N3b3JkXCJcblxuICAjIERpc2FibGUgZGVmYXVsdCBQcm9tZXRoZXVzIGRhdGFzb3VyY2UgKHdlIHByb3ZpZGUgb3VyIG93biBwb2ludGluZyB0byBUaGFub3MgUXVlcnkpXG4gIGRlZmF1bHREYXRhc291cmNlRW5hYmxlZDogZmFsc2VcblxuICAjIFNpZGVjYXIgY29udGFpbmVycyBmb3IgZGFzaGJvYXJkL2RhdGFzb3VyY2UgcHJvdmlzaW9uaW5nXG4gIHNpZGVjYXI6XG4gICAgcmVzb3VyY2VzOlxuICAgICAgcmVxdWVzdHM6XG4gICAgICAgIGNwdTogMTBtXG4gICAgICAgIG1lbW9yeTogMjU2TWlcbiAgICAgIGxpbWl0czpcbiAgICAgICAgY3B1OiAxMDBtXG4gICAgICAgIG1lbW9yeTogNTEyTWlcbiAgICBkYXNoYm9hcmRzOlxuICAgICAgZW5hYmxlZDogdHJ1ZVxuICAgIGRhdGFzb3VyY2VzOlxuICAgICAgZW5hYmxlZDogZmFsc2UgICMgV2UgbWFudWFsbHkgcHJvdmlzaW9uIGRhdGFzb3VyY2VzIChQcm9tZXRoZXVz4oaSVGhhbm9zLCBMb2tpKVxuXG4gIGluZ3Jlc3M6XG4gICAgZW5hYmxlZDogdHJ1ZVxuICAgIGhvc3RzOlxuICAgICAgLSAke2NvbmZpZy5kb21haW5zLmdyYWZhbmF9XG4gICAgYW5ub3RhdGlvbnM6XG4gICAgICBjZXJ0LW1hbmFnZXIuaW8vY2x1c3Rlci1pc3N1ZXI6IFwibGV0c2VuY3J5cHQtY2x1c3Rlci1pc3N1ZXJcIlxuICAgICAgdHJhZWZpay5pbmdyZXNzLmt1YmVybmV0ZXMuaW8vcm91dGVyLmVudHJ5cG9pbnRzOiB3ZWJzZWN1cmVcbiAgICB0bHM6XG4gICAgICAtIHNlY3JldE5hbWU6IGdyYWZhbmEtZ2VuZXJhbC10bHNcbiAgICAgICAgaG9zdHM6XG4gICAgICAgIC0gJHtjb25maWcuZG9tYWlucy5ncmFmYW5hfVxuXG4gIHJlc291cmNlczpcbiAgICBsaW1pdHM6XG4gICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5ncmFmYW5hLmxpbWl0cy5jcHV9XG4gICAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy5ncmFmYW5hLmxpbWl0cy5tZW1vcnl9XG4gICAgcmVxdWVzdHM6XG4gICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5ncmFmYW5hLnJlcXVlc3RzLmNwdX1cbiAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLmdyYWZhbmEucmVxdWVzdHMubWVtb3J5fVxuXG4gIHJlYWRpbmVzc1Byb2JlOlxuICAgIGh0dHBHZXQ6XG4gICAgICBwYXRoOiAvYXBpL2hlYWx0aFxuICAgICAgcG9ydDogMzAwMFxuICAgIGluaXRpYWxEZWxheVNlY29uZHM6IDMwXG4gICAgcGVyaW9kU2Vjb25kczogMTBcbiAgICB0aW1lb3V0U2Vjb25kczogNVxuICAgIGZhaWx1cmVUaHJlc2hvbGQ6IDNcblxuICBsaXZlbmVzc1Byb2JlOlxuICAgIGh0dHBHZXQ6XG4gICAgICBwYXRoOiAvYXBpL2hlYWx0aFxuICAgICAgcG9ydDogMzAwMFxuICAgIGluaXRpYWxEZWxheVNlY29uZHM6IDYwXG4gICAgcGVyaW9kU2Vjb25kczogMTBcbiAgICB0aW1lb3V0U2Vjb25kczogMzBcbiAgICBmYWlsdXJlVGhyZXNob2xkOiAxMFxuXG4gIHBlcnNpc3RlbmNlOlxuICAgIGVuYWJsZWQ6IHRydWVcbiAgICBzdG9yYWdlQ2xhc3NOYW1lOiBsb25naG9yblxuICAgIGFjY2Vzc01vZGVzOlxuICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgc2l6ZTogJHtjb25maWcuc3RvcmFnZS5ncmFmYW5hfVxuXG4gICMgTWFudWFsIGRhdGFzb3VyY2UgcHJvdmlzaW9uaW5nIChzaWRlY2FyIGRpc2FibGVkKVxuICAjIFRoYW5vcyBRdWVyeSDihpIgbG9uZy10ZXJtL2hpc3RvcmljYWwgbWV0cmljcyAoUzMgdmlhIFN0b3JlICsgbGl2ZSBzaWRlY2FyKSwgZGVmYXVsdFxuICAjIFByb21ldGhldXMg4oaSIGxvY2FsLCByZWNlbnQvaGlnaC1yZXMgb25seSAoa2VwdCBmb3IgbG93LWxhdGVuY3kgcmVjZW50IHF1ZXJpZXMpXG4gICMgTG9raSBmb3IgbG9nIGFnZ3JlZ2F0aW9uXG4gIGRhdGFzb3VyY2VzOlxuICAgIGRhdGFzb3VyY2VzLnlhbWw6XG4gICAgICBhcGlWZXJzaW9uOiAxXG4gICAgICAjIERlbGV0ZSBhbnkgcHJlLWV4aXN0aW5nIExva2kgZGF0YXNvdXJjZSAoZS5nLiBvbmUgY3JlYXRlZCB3aXRoIGFcbiAgICAgICMgcmFuZG9tbHkgZ2VuZXJhdGVkIFVJRCBiZWZvcmUgd2UgcGlubmVkIHVpZDogbG9raSkuIFdpdGhvdXQgdGhpcyxcbiAgICAgICMgR3JhZmFuYSBmYWlscyBwcm92aXNpb25pbmcgd2l0aCBcImRhdGEgc291cmNlIG5vdCBmb3VuZFwiIGJlY2F1c2VcbiAgICAgICMgdGhlIHVwc2VydCBjb2xsaWRlcyB3aXRoIHRoZSBleGlzdGluZyBlbnRyeS5cbiAgICAgIGRlbGV0ZURhdGFzb3VyY2VzOlxuICAgICAgLSBuYW1lOiBMb2tpXG4gICAgICAgIG9yZ0lkOiAxXG4gICAgICBkYXRhc291cmNlczpcbiAgICAgIC0gbmFtZTogVGhhbm9zXG4gICAgICAgIHR5cGU6IHByb21ldGhldXNcbiAgICAgICAgdWlkOiB0aGFub3NcbiAgICAgICAgYWNjZXNzOiBwcm94eVxuICAgICAgICAjIHRoYW5vcy1xdWVyeSBTZXJ2aWNlOiBodHRwIHBvcnQgOTA5MCAtPiBjb250YWluZXIgaHR0cCAxMDkwMlxuICAgICAgICB1cmw6IGh0dHA6Ly90aGFub3MtcXVlcnkuJHtjb25maWcubmFtZXNwYWNlfS5zdmMuY2x1c3Rlci5sb2NhbDo5MDkwXG4gICAgICAgIGlzRGVmYXVsdDogdHJ1ZVxuICAgICAgICBqc29uRGF0YTpcbiAgICAgICAgICB0aW1lSW50ZXJ2YWw6IDMwc1xuICAgICAgLSBuYW1lOiBQcm9tZXRoZXVzXG4gICAgICAgIHR5cGU6IHByb21ldGhldXNcbiAgICAgICAgdWlkOiBwcm9tZXRoZXVzXG4gICAgICAgIGFjY2VzczogcHJveHlcbiAgICAgICAgdXJsOiBodHRwOi8va3ViZS1wcm9tZXRoZXVzLXN0YWNrLXByb21ldGhldXMuJHtjb25maWcubmFtZXNwYWNlfS5zdmMuY2x1c3Rlci5sb2NhbDo5MDkwXG4gICAgICAgIGlzRGVmYXVsdDogZmFsc2VcbiAgICAgICAganNvbkRhdGE6XG4gICAgICAgICAgdGltZUludGVydmFsOiAzMHNcbiAgICAgIC0gbmFtZTogTG9raVxuICAgICAgICB0eXBlOiBsb2tpXG4gICAgICAgIHVpZDogbG9raVxuICAgICAgICBhY2Nlc3M6IHByb3h5XG4gICAgICAgIHVybDogaHR0cDovL2xva2ktZ2F0ZXdheS4ke2NvbmZpZy5uYW1lc3BhY2V9LnN2Yy5jbHVzdGVyLmxvY2FsXG4gICAgICAgIGpzb25EYXRhOlxuICAgICAgICAgIG1heExpbmVzOiAxMDAwXG5cbnByb21ldGhldXNPcGVyYXRvcjpcbiAgcmVzb3VyY2VzOlxuICAgIGxpbWl0czpcbiAgICAgIGNwdTogMVxuICAgICAgbWVtb3J5OiA1MTJNaVxuICAgIHJlcXVlc3RzOlxuICAgICAgY3B1OiA1MG1cbiAgICAgIG1lbW9yeTogMTI4TWlcbiAgcHJpb3JpdHlDbGFzc05hbWU6IGhpZ2gtcHJpb3JpdHlcblxucHJvbWV0aGV1cy1ub2RlLWV4cG9ydGVyOlxuICAjIEJpbmQgOjkxMDAgdG8gdGhlIG5vZGUgSW50ZXJuYWxJUCBvbmx5LCBub3QgMC4wLjAuMC4gV2l0aCBrdWJlUkJBQ1Byb3h5XG4gICMgZGlzYWJsZWQgdGhlIHN1Yi1jaGFydCBzZXRzIEhPU1RfSVAgZnJvbSBmaWVsZFJlZiBzdGF0dXMuaG9zdElQLCB3aGljaCBpc1xuICAjIHRoZSBub2RlJ3MgSW50ZXJuYWxJUCAoRVg6IHZTd2l0Y2ggMTAuNi4wLnggdmlhIC0tbm9kZS1pcDsgY2xvdWQ6IGhjbG91ZFxuICAjIHByaXZhdGUgSVApLiBub2RlLWV4cG9ydGVyIGlzIGhvc3ROZXR3b3JrLCBzbyBQcm9tZXRoZXVzIGFscmVhZHkgc2NyYXBlc1xuICAjIHRoYXQgSW50ZXJuYWxJUCBlbmRwb2ludCAtPiBzY3JhcGluZyBpcyB1bmFmZmVjdGVkLCBvbmx5IHRoZSBwdWJsaWMtTklDXG4gICMgZXhwb3N1cmUgb2YgdGhlIHVuYXV0aGVudGljYXRlZCBtZXRyaWNzIG9uIHRoZSBFWCBwdWJsaWMgSVBzIGdvZXMgYXdheS5cbiAgc2VydmljZTpcbiAgICBsaXN0ZW5PbkFsbEludGVyZmFjZXM6IGZhbHNlXG4gIHJlc291cmNlczpcbiAgICBsaW1pdHM6XG4gICAgICBjcHU6IDUwbVxuICAgICAgbWVtb3J5OiA1ME1pXG4gICAgcmVxdWVzdHM6XG4gICAgICBjcHU6IDVtXG4gICAgICBtZW1vcnk6IDE2TWlcbiAgcHJpb3JpdHlDbGFzc05hbWU6IGhpZ2gtcHJpb3JpdHlcblxua3ViZS1zdGF0ZS1tZXRyaWNzOlxuICByZXNvdXJjZXM6XG4gICAgbGltaXRzOlxuICAgICAgY3B1OiAxXG4gICAgICBtZW1vcnk6IDUxMk1pXG4gICAgcmVxdWVzdHM6XG4gICAgICBjcHU6IDVtXG4gICAgICBtZW1vcnk6IDEyOE1pXG4gIHByaW9yaXR5Q2xhc3NOYW1lOiBoaWdoLXByaW9yaXR5XG5gO1xuICB9XG59XG4iXX0=
|
|
498
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWV0aGV1cy1zdGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25zdHJ1Y3RzL3Byb21ldGhldXMtc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQWtDO0FBQ2xDLDJDQUF1QztBQVF2Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE1BQWEsd0JBQXlCLFNBQVEsc0JBQVM7SUFDckQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEyQjtRQUNuRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBRXBDLDRCQUE0QjtRQUM1QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbkQsa0RBQWtEO1FBQ2xELDJDQUEyQztRQUMzQyxJQUFJLGlCQUFTLENBQUMsSUFBSSxFQUFFLHVCQUF1QixFQUFFO1lBQzNDLFVBQVUsRUFBRSxtQkFBbUI7WUFDL0IsSUFBSSxFQUFFLFdBQVc7WUFDakIsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSx1QkFBdUI7Z0JBQzdCLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixNQUFNLEVBQUU7b0JBQ04sd0JBQXdCLEVBQUUsdUJBQXVCO29CQUNqRCw2QkFBNkIsRUFBRSxZQUFZO29CQUMzQyw4QkFBOEIsRUFBRSxPQUFPO29CQUN2QywyQkFBMkIsRUFBRSxZQUFZO2lCQUMxQztnQkFDRCxXQUFXLEVBQUU7b0JBQ1gsOEJBQThCLEVBQUUsR0FBRztpQkFDcEM7YUFDRjtZQUNELElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsb0RBQW9EO2dCQUMxRCxLQUFLLEVBQUUsdUJBQXVCO2dCQUM5QixPQUFPLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsZUFBZTtnQkFDbkcsZUFBZSxFQUFFLFNBQVM7Z0JBQzFCLGFBQWEsRUFBRSxVQUFVO2FBQzFCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGtCQUFrQixDQUFDLE1BQXdCO1FBQ2pELHFFQUFxRTtRQUNyRSw0RUFBNEU7UUFDNUUsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDOzs7Ozs0QkFLdkIsTUFBTSxDQUFDLFNBQVM7Ozs7Ozs7O2tDQVFWLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNwQyxPQUFPOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O21CQWdIUSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUk7d0JBQ1gsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJOzBCQUNsQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVU7NEJBQ3BCLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSTs0QkFDeEMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Y0E2QnhDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSTs7Ozs7Ozs7Ozs7OztnQkFhZCxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVk7Ozs7Ozs7O3lCQVFuQixNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVk7OztlQUdyQyxNQUFNLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRztrQkFDckMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU07O2VBRTlDLE1BQU0sQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHO2tCQUN2QyxNQUFNLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTTs7Ozs7Ozs7aUJBUTlDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxHQUFHO29CQUN6QyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTTs7aUJBRWxELE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHO29CQUN2QyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsTUFBTTs7Ozs7Ozs7OztpQkFVaEQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVOzs7Ozs7Ozs7Ozs7Ozs7O2dCQWdCNUIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVOzs7Ozs7Ozs7eUJBU2pCLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVTs7OztlQUluQyxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRztrQkFDbkMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU07O2VBRTVDLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHO2tCQUNyQyxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQTJCNUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUc7b0JBQ3pDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxNQUFNOztpQkFFbEQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUc7b0JBQ3ZDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1VBd0N2RCxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU87Ozs7Ozs7WUFPcEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPOzs7O2FBSXJCLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHO2dCQUNoQyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTTs7YUFFekMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUc7Z0JBQ2xDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1lBeUI1QyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU87Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7bUNBc0JDLE1BQU0sQ0FBQyxTQUFTOzs7Ozs7Ozt1REFRSSxNQUFNLENBQUMsU0FBUzs7Ozs7Ozs7bUNBUXBDLE1BQU0sQ0FBQyxTQUFTOzswQkFFekIsZUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBdUN4QyxDQUFDO0lBQ0EsQ0FBQztDQUNGO0FBMWRELDREQTBkQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwaU9iamVjdCB9IGZyb20gJ2NkazhzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgTW9uaXRvcmluZ0NvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBQcm9tZXRoZXVzU3RhY2tQcm9wcyB7XG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuICBjb25maWc6IE1vbml0b3JpbmdDb25maWc7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBrdWJlLXByb21ldGhldXMtc3RhY2sgSGVsbUNoYXJ0IHdpdGggUHJvbWV0aGV1cywgR3JhZmFuYSwgYW5kIEFsZXJ0bWFuYWdlci5cbiAqXG4gKiBUaGlzIGlzIHRoZSBjb3JlIG1vbml0b3Jpbmcgc3RhY2sgdGhhdCBpbmNsdWRlczpcbiAqIC0gUHJvbWV0aGV1cyAobWV0cmljcyBjb2xsZWN0aW9uLCAyIHJlcGxpY2FzLCAzZCByZXRlbnRpb24pXG4gKiAtIEdyYWZhbmEgKHZpc3VhbGl6YXRpb24sIGluZ3Jlc3Mgd2l0aCBMZXQncyBFbmNyeXB0KVxuICogLSBBbGVydG1hbmFnZXIgKGFsZXJ0IHJvdXRpbmcsIFNNVFAgbm90aWZpY2F0aW9ucylcbiAqIC0gUHJvbWV0aGV1cyBPcGVyYXRvciAobWFuYWdlcyBQcm9tZXRoZXVzIENSRHMpXG4gKiAtIE5vZGUgRXhwb3J0ZXIgKHN5c3RlbSBtZXRyaWNzIERhZW1vblNldClcbiAqIC0ga3ViZS1zdGF0ZS1tZXRyaWNzIChLdWJlcm5ldGVzIHJlc291cmNlIG1ldHJpY3MpXG4gKlxuICogUHJlcmVxdWlzaXRlczpcbiAqIC0gTmFtZXNwYWNlIGV4aXN0c1xuICogLSBQcmlvcml0eUNsYXNzICdoaWdoLXByaW9yaXR5JyBleGlzdHNcbiAqIC0gTG9uZ2hvcm4gc3RvcmFnZSBjbGFzcyBhdmFpbGFibGVcbiAqIC0gY2VydC1tYW5hZ2VyIENsdXN0ZXJJc3N1ZXIgY29uZmlndXJlZFxuICogLSBUaGFub3MgUzMgc2VjcmV0IGV4aXN0cyAodGhhbm9zLW9ianN0b3JlLWNvbmZpZylcbiAqXG4gKiBTeW5jIFdhdmU6IDIgKGNvcmUgc2VydmljZXMgLSBhZnRlciBTMyBidWNrZXRzIGFuZCBzZWNyZXRzKVxuICovXG5leHBvcnQgY2xhc3MgUHJvbWV0aGV1c1N0YWNrQ29uc3RydWN0IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFByb21ldGhldXNTdGFja1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHsgbmFtZXNwYWNlLCBjb25maWcgfSA9IHByb3BzO1xuXG4gICAgLy8gR2VuZXJhdGUgSGVsbSB2YWx1ZXMgWUFNTFxuICAgIGNvbnN0IGhlbG1WYWx1ZXMgPSB0aGlzLmdlbmVyYXRlSGVsbVZhbHVlcyhjb25maWcpO1xuXG4gICAgLy8gQ3JlYXRlIEhlbG1DaGFydCByZXNvdXJjZSAoSzNTIEhlbG0gY29udHJvbGxlcilcbiAgICAvLyBXYXZlIDI6IENvcmUgU2VydmljZXMgLSBtb25pdG9yaW5nIHN0YWNrXG4gICAgbmV3IEFwaU9iamVjdCh0aGlzLCAna3ViZS1wcm9tZXRoZXVzLXN0YWNrJywge1xuICAgICAgYXBpVmVyc2lvbjogJ2hlbG0uY2F0dGxlLmlvL3YxJyxcbiAgICAgIGtpbmQ6ICdIZWxtQ2hhcnQnLFxuICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgbmFtZTogJ2t1YmUtcHJvbWV0aGV1cy1zdGFjaycsXG4gICAgICAgIG5hbWVzcGFjZTogbmFtZXNwYWNlLFxuICAgICAgICBsYWJlbHM6IHtcbiAgICAgICAgICAnYXBwLmt1YmVybmV0ZXMuaW8vbmFtZSc6ICdrdWJlLXByb21ldGhldXMtc3RhY2snLFxuICAgICAgICAgICdhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnQnOiAnbW9uaXRvcmluZycsXG4gICAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL21hbmFnZWQtYnknOiAnY2RrOHMnLFxuICAgICAgICAgICdhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mJzogJ21vbml0b3JpbmcnLFxuICAgICAgICB9LFxuICAgICAgICBhbm5vdGF0aW9uczoge1xuICAgICAgICAgICdhcmdvY2QuYXJnb3Byb2ouaW8vc3luYy13YXZlJzogJzInLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHNwZWM6IHtcbiAgICAgICAgcmVwbzogJ2h0dHBzOi8vcHJvbWV0aGV1cy1jb21tdW5pdHkuZ2l0aHViLmlvL2hlbG0tY2hhcnRzJyxcbiAgICAgICAgY2hhcnQ6ICdrdWJlLXByb21ldGhldXMtc3RhY2snLFxuICAgICAgICB2ZXJzaW9uOiBjb25maWcudmVyc2lvbnMucHJvbWV0aGV1c1N0YWNrID09PSAnbGF0ZXN0JyA/IHVuZGVmaW5lZCA6IGNvbmZpZy52ZXJzaW9ucy5wcm9tZXRoZXVzU3RhY2ssXG4gICAgICAgIHRhcmdldE5hbWVzcGFjZTogbmFtZXNwYWNlLFxuICAgICAgICB2YWx1ZXNDb250ZW50OiBoZWxtVmFsdWVzLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVIZWxtVmFsdWVzKGNvbmZpZzogTW9uaXRvcmluZ0NvbmZpZyk6IHN0cmluZyB7XG4gICAgLy8gVGVtcG8gZGF0YXNvdXJjZSBpcyBvbmx5IHByb3Zpc2lvbmVkIHdoZW4gdHJhY2luZyBpcyBlbmFibGVkLiBXaGVuXG4gICAgLy8gZGlzYWJsZWQgdGhpcyBpcyBlbXB0eSwgc28gdGhlIEdyYWZhbmEgYmxvY2sgaXMgYnl0ZS1pZGVudGljYWwgdG8gYmVmb3JlLlxuICAgIGNvbnN0IHRlbXBvRGF0YXNvdXJjZSA9IGNvbmZpZy50ZW1wby5lbmFibGVkID8gYFxuICAgICAgLSBuYW1lOiBUZW1wb1xuICAgICAgICB0eXBlOiB0ZW1wb1xuICAgICAgICB1aWQ6IHRlbXBvXG4gICAgICAgIGFjY2VzczogcHJveHlcbiAgICAgICAgdXJsOiBodHRwOi8vdGVtcG8uJHtjb25maWcubmFtZXNwYWNlfS5zdmMuY2x1c3Rlci5sb2NhbDozMjAwXG4gICAgICAgIGpzb25EYXRhOlxuICAgICAgICAgIHRyYWNlc1RvTG9nc1YyOlxuICAgICAgICAgICAgZGF0YXNvdXJjZVVpZDogbG9raVxuICAgICAgICAgICAgc3BhblN0YXJ0VGltZVNoaWZ0OiBcIi0xaFwiXG4gICAgICAgICAgICBzcGFuRW5kVGltZVNoaWZ0OiBcIjFoXCJcbiAgICAgICAgICAgIGZpbHRlckJ5VHJhY2VJRDogdHJ1ZVxuICAgICAgICAgIHRyYWNlc1RvTWV0cmljczpcbiAgICAgICAgICAgIGRhdGFzb3VyY2VVaWQ6IHRoYW5vc2AgOiAnJztcbiAgICByZXR1cm4gYGt1YmVFdGNkOlxuICBlbmFibGVkOiBmYWxzZVxuXG4jIERpc2FibGUga3ViZS1jb250cm9sbGVyLW1hbmFnZXIgYW5kIGt1YmUtc2NoZWR1bGVyIG1vbml0b3JpbmcuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2FibGVzcGFnaGV0dGkvazNzLW1vbml0b3JpbmcvaXNzdWVzLzJcbmt1YmVDb250cm9sbGVyTWFuYWdlcjpcbiAgZW5hYmxlZDogZmFsc2Vcbmt1YmVTY2hlZHVsZXI6XG4gIGVuYWJsZWQ6IGZhbHNlXG5cbiMgRGV0ZWN0IFBvZERpc3J1cHRpb25CdWRnZXRzIHRoYXQgd291bGQgYmxvY2sgYSBub2RlIGRyYWluIGR1cmluZyBrM3MgdXBncmFkZXMuXG4jIE9wZXJhdG9yLW1hbmFnZWQgUERCcyBzaXQgYXQgZGlzcnVwdGlvbnNBbGxvd2VkPTAgYnkgZGVzaWduIChMb25naG9ybiBpbnN0YW5jZS1tYW5hZ2VycyxcbiMgQ05QRyAqLXByaW1hcnkpIGFuZCBhcmUgZXhjbHVkZWQgc28gdGhlIGFsZXJ0IG9ubHkgZmlyZXMgb24gYW5vbWFsb3VzIGFwcCBQREJzLlxuYWRkaXRpb25hbFByb21ldGhldXNSdWxlc01hcDpcbiAgcGRiLWRyYWluLXNhZmV0eTpcbiAgICBncm91cHM6XG4gICAgICAtIG5hbWU6IHBkYi5ydWxlc1xuICAgICAgICBpbnRlcnZhbDogMW1cbiAgICAgICAgcnVsZXM6XG4gICAgICAgICAgLSBhbGVydDogUG9kRGlzcnVwdGlvbkJ1ZGdldFVuZHJhaW5hYmxlXG4gICAgICAgICAgICBleHByOiBrdWJlX3BvZGRpc3J1cHRpb25idWRnZXRfc3RhdHVzX3BvZF9kaXNydXB0aW9uc19hbGxvd2Vke25hbWVzcGFjZSE9XCJsb25naG9ybi1zeXN0ZW1cIiwgcG9kZGlzcnVwdGlvbmJ1ZGdldCF+XCIuKi1wcmltYXJ5XCJ9ID09IDBcbiAgICAgICAgICAgIGZvcjogMTVtXG4gICAgICAgICAgICBsYWJlbHM6XG4gICAgICAgICAgICAgIHNldmVyaXR5OiB3YXJuaW5nXG4gICAgICAgICAgICAgIGNvbXBvbmVudDogY2x1c3Rlci11cGdyYWRlXG4gICAgICAgICAgICBhbm5vdGF0aW9uczpcbiAgICAgICAgICAgICAgc3VtbWFyeTogXCJQREIge3sgJGxhYmVscy5uYW1lc3BhY2UgfX0ve3sgJGxhYmVscy5wb2RkaXNydXB0aW9uYnVkZ2V0IH19IGFsbG93cyAwIHZvbHVudGFyeSBkaXNydXB0aW9uc1wiXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB8XG4gICAgICAgICAgICAgICAgVGhlIFBvZERpc3J1cHRpb25CdWRnZXQge3sgJGxhYmVscy5uYW1lc3BhY2UgfX0ve3sgJGxhYmVscy5wb2RkaXNydXB0aW9uYnVkZ2V0IH19XG4gICAgICAgICAgICAgICAgaGFzIGFsbG93ZWQgMCB2b2x1bnRhcnkgZGlzcnVwdGlvbnMgZm9yIG92ZXIgMTUgbWludXRlcy4gVGhpcyB3aWxsIGJsb2NrIGEgbm9kZVxuICAgICAgICAgICAgICAgIGRyYWluIGR1cmluZyBrM3MgdXBncmFkZXMuIE9wZXJhdG9yLW1hbmFnZWQgUERCcyAoTG9uZ2hvcm4sIENOUEcgcHJpbWFyaWVzKSBhcmVcbiAgICAgICAgICAgICAgICBleGNsdWRlZCBmcm9tIHRoaXMgYWxlcnQuIExpa2VseSBhIGRlZ3JhZGVkIGRlcGxveW1lbnQgKDAgaGVhbHRoeSBwb2RzKSBvciBhXG4gICAgICAgICAgICAgICAgc2luZ2xlLXJlcGxpY2EgZGVwbG95bWVudCB3aXRoIG1pbkF2YWlsYWJsZT0xLlxuICAgICAgICAgICAgICAgIENoZWNrOiBrdWJlY3RsIGdldCBwZGIgLW4ge3sgJGxhYmVscy5uYW1lc3BhY2UgfX0ge3sgJGxhYmVscy5wb2RkaXNydXB0aW9uYnVkZ2V0IH19XG4gICAgICAgICAgLSBhbGVydDogUG9kRGlzcnVwdGlvbkJ1ZGdldFVuZHJhaW5hYmxlQ3JpdGljYWxcbiAgICAgICAgICAgIGV4cHI6IGt1YmVfcG9kZGlzcnVwdGlvbmJ1ZGdldF9zdGF0dXNfcG9kX2Rpc3J1cHRpb25zX2FsbG93ZWR7bmFtZXNwYWNlIT1cImxvbmdob3JuLXN5c3RlbVwiLCBwb2RkaXNydXB0aW9uYnVkZ2V0IX5cIi4qLXByaW1hcnlcIn0gPT0gMFxuICAgICAgICAgICAgZm9yOiAxaFxuICAgICAgICAgICAgbGFiZWxzOlxuICAgICAgICAgICAgICBzZXZlcml0eTogY3JpdGljYWxcbiAgICAgICAgICAgICAgY29tcG9uZW50OiBjbHVzdGVyLXVwZ3JhZGVcbiAgICAgICAgICAgIGFubm90YXRpb25zOlxuICAgICAgICAgICAgICBzdW1tYXJ5OiBcIlBEQiB7eyAkbGFiZWxzLm5hbWVzcGFjZSB9fS97eyAkbGFiZWxzLnBvZGRpc3J1cHRpb25idWRnZXQgfX0gdW5kcmFpbmFibGUgPjFoXCJcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHxcbiAgICAgICAgICAgICAgICBQREIge3sgJGxhYmVscy5uYW1lc3BhY2UgfX0ve3sgJGxhYmVscy5wb2RkaXNydXB0aW9uYnVkZ2V0IH19IGhhcyBibG9ja2VkXG4gICAgICAgICAgICAgICAgdm9sdW50YXJ5IGRpc3J1cHRpb25zIGZvciBvdmVyIGFuIGhvdXIuIEEgazNzIGFnZW50IHVwZ3JhZGUgd291bGQgc3RhbGwgb24gdGhpcyBub2RlLlxuICAjIERldGVjdCBhbiBFWCBkZWRpY2F0ZWQgd29ya2VyIHN0dWNrIE5vdFJlYWR5IOKAlCBsaWtlbHkgYSBNaWNyb09TIHJlYm9vdCBoYW5nXG4gICMgKHBpbmdzIGJ1dCBzc2hkL2t1YmVsZXQgZGVhZCkuIEEgaHVuZyBub2RlIGFsc28gaG9sZHMgdGhlIGNsdXN0ZXItd2lkZSBrdXJlZFxuICAjIGxvY2ssIGJsb2NraW5nIGFsbCBmdXJ0aGVyIGdyYWNlZnVsIHJlYm9vdHMsIHNvIHRoaXMgbXVzdCBiZSBjYXVnaHQgZmFzdC5cbiAgZXgtd29ya2VyLXJlYm9vdDpcbiAgICBncm91cHM6XG4gICAgICAtIG5hbWU6IGV4LXdvcmtlci5ydWxlc1xuICAgICAgICBpbnRlcnZhbDogMW1cbiAgICAgICAgcnVsZXM6XG4gICAgICAgICAgLSBhbGVydDogRXhXb3JrZXJOb3RSZWFkeVxuICAgICAgICAgICAgZXhwcjoga3ViZV9ub2RlX3N0YXR1c19jb25kaXRpb257Y29uZGl0aW9uPVwiUmVhZHlcIixzdGF0dXM9XCJ0cnVlXCIsbm9kZT1+XCJrdXA2cy1leC0uKlwifSA9PSAwXG4gICAgICAgICAgICBmb3I6IDE1bVxuICAgICAgICAgICAgbGFiZWxzOlxuICAgICAgICAgICAgICBzZXZlcml0eTogY3JpdGljYWxcbiAgICAgICAgICAgICAgY29tcG9uZW50OiBub2RlXG4gICAgICAgICAgICBhbm5vdGF0aW9uczpcbiAgICAgICAgICAgICAgc3VtbWFyeTogXCJFWCB3b3JrZXIge3sgJGxhYmVscy5ub2RlIH19IE5vdFJlYWR5IGZvciA+MTVtXCJcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHxcbiAgICAgICAgICAgICAgICBFWCBkZWRpY2F0ZWQgd29ya2VyIHt7ICRsYWJlbHMubm9kZSB9fSBoYXMgYmVlbiBOb3RSZWFkeSBmb3Igb3ZlciAxNSBtaW51dGVzLlxuICAgICAgICAgICAgICAgIFBvc3NpYmxlIE1pY3JvT1MgcmVib290IGhhbmcgKHBpbmdzIGJ1dCBzc2hkL2t1YmVsZXQvbG9uZ2hvcm4tbWFuYWdlciBkZWFkKSDigJQgdGhlXG4gICAgICAgICAgICAgICAgbm9kZSBtYXkgc3RpbGwgaG9sZCB0aGUgY2x1c3Rlci13aWRlIGt1cmVkIGxvY2ssIGJsb2NraW5nIGFsbCBmdXJ0aGVyIHJlYm9vdHMuXG4gICAgICAgICAgICAgICAgUmVjb3Zlcnk6IEhldHpuZXIgUm9ib3QgaGFyZHdhcmUgcmVzZXQuIERvIE5PVCBmb3JjZS1kZXRhY2ggTG9uZ2hvcm4gdm9sdW1lcy5cbiAgICAgICAgICAgICAgcnVuYm9va191cmw6IFwiaHR0cHM6Ly9kb2NzLmt1cDZzLmNvbS9ob3ctdG8vdHJvdWJsZXNob290aW5nL2V4LXdvcmtlci1waW5nLWJ1dC1kZWFkLmh0bWxcIlxuXG4jIERyb3AgaGlnaC1jYXJkaW5hbGl0eSBBUEkgc2VydmVyIGFuZCBldGNkIGhpc3RvZ3JhbSBidWNrZXRzIHRvIHJlZHVjZSBtZW1vcnkgdXNhZ2VcbiMgVGhlc2UgbWV0cmljcyBhbG9uZSBhY2NvdW50IGZvciB+MjAwayBzZXJpZXMgKDQ3JSBvZiB0b3RhbCBjYXJkaW5hbGl0eSlcbiMgV2Uga2VlcCBfc3VtIGFuZCBfY291bnQgc3VmZml4ZXMgd2hpY2ggYXJlIHN1ZmZpY2llbnQgZm9yIHJhdGUgY2FsY3VsYXRpb25zXG5rdWJlQXBpU2VydmVyOlxuICBzZXJ2aWNlTW9uaXRvcjpcbiAgICBtZXRyaWNSZWxhYmVsaW5nczpcbiAgICAgIC0gc291cmNlTGFiZWxzOiBbX19uYW1lX19dXG4gICAgICAgIHJlZ2V4OiAnYXBpc2VydmVyX3JlcXVlc3RfZHVyYXRpb25fc2Vjb25kc19idWNrZXQnXG4gICAgICAgIGFjdGlvbjogZHJvcFxuICAgICAgLSBzb3VyY2VMYWJlbHM6IFtfX25hbWVfX11cbiAgICAgICAgcmVnZXg6ICdhcGlzZXJ2ZXJfcmVxdWVzdF9zbGlfZHVyYXRpb25fc2Vjb25kc19idWNrZXQnXG4gICAgICAgIGFjdGlvbjogZHJvcFxuICAgICAgLSBzb3VyY2VMYWJlbHM6IFtfX25hbWVfX11cbiAgICAgICAgcmVnZXg6ICdhcGlzZXJ2ZXJfcmVxdWVzdF9ib2R5X3NpemVfYnl0ZXNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcbiAgICAgIC0gc291cmNlTGFiZWxzOiBbX19uYW1lX19dXG4gICAgICAgIHJlZ2V4OiAnYXBpc2VydmVyX3Jlc3BvbnNlX3NpemVzX2J1Y2tldCdcbiAgICAgICAgYWN0aW9uOiBkcm9wXG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2V0Y2RfcmVxdWVzdF9kdXJhdGlvbl9zZWNvbmRzX2J1Y2tldCdcbiAgICAgICAgYWN0aW9uOiBkcm9wXG5cbiMgS3ViZWxldCBhbHNvIGV4cG9zZXMgYXBpc2VydmVyIG1ldHJpY3MgLSBhcHBseSBzYW1lIGZpbHRlcnNcbmt1YmVsZXQ6XG4gIHNlcnZpY2VNb25pdG9yOlxuICAgIG1ldHJpY1JlbGFiZWxpbmdzOlxuICAgICAgLSBzb3VyY2VMYWJlbHM6IFtfX25hbWVfX11cbiAgICAgICAgcmVnZXg6ICdhcGlzZXJ2ZXJfcmVxdWVzdF9kdXJhdGlvbl9zZWNvbmRzX2J1Y2tldCdcbiAgICAgICAgYWN0aW9uOiBkcm9wXG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2FwaXNlcnZlcl9yZXF1ZXN0X3NsaV9kdXJhdGlvbl9zZWNvbmRzX2J1Y2tldCdcbiAgICAgICAgYWN0aW9uOiBkcm9wXG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2FwaXNlcnZlcl9yZXF1ZXN0X2JvZHlfc2l6ZV9ieXRlc19idWNrZXQnXG4gICAgICAgIGFjdGlvbjogZHJvcFxuICAgICAgLSBzb3VyY2VMYWJlbHM6IFtfX25hbWVfX11cbiAgICAgICAgcmVnZXg6ICdhcGlzZXJ2ZXJfcmVzcG9uc2Vfc2l6ZXNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcbiAgICAgIC0gc291cmNlTGFiZWxzOiBbX19uYW1lX19dXG4gICAgICAgIHJlZ2V4OiAnZXRjZF9yZXF1ZXN0X2R1cmF0aW9uX3NlY29uZHNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcblxuYWxlcnRtYW5hZ2VyOlxuICBjb25maWc6XG4gICAgZ2xvYmFsOlxuICAgICAgc210cF9mcm9tOiAke2NvbmZpZy5zbXRwLmZyb219XG4gICAgICBzbXRwX3NtYXJ0aG9zdDogJHtjb25maWcuc210cC5ob3N0fToke2NvbmZpZy5zbXRwLnBvcnR9XG4gICAgICBzbXRwX3JlcXVpcmVfdGxzOiAke2NvbmZpZy5zbXRwLnJlcXVpcmVUbHN9XG4gICAgICBzbXRwX2F1dGhfdXNlcm5hbWU6ICR7Y29uZmlnLnNtdHAudXNlcm5hbWUgfHwgY29uZmlnLnNtdHAuZnJvbX1cbiAgICAgIHNtdHBfYXV0aF9wYXNzd29yZDogJHtjb25maWcuc210cC5wYXNzd29yZCB8fCAnJ31cbiAgICByb3V0ZTpcbiAgICAgIGdyb3VwX2J5OiBbJ2pvYiddXG4gICAgICBncm91cF93YWl0OiAzMHNcbiAgICAgIGdyb3VwX2ludGVydmFsOiA1bVxuICAgICAgcmVwZWF0X2ludGVydmFsOiAxaFxuICAgICAgcmVjZWl2ZXI6IGVtYWlsXG4gICAgICByb3V0ZXM6XG4gICAgICAtIG1hdGNoOlxuICAgICAgICAgIGFsZXJ0bmFtZTogV2F0Y2hkb2dcbiAgICAgICAgcmVjZWl2ZXI6ICdudWxsJ1xuICAgICAgLSBtYXRjaDpcbiAgICAgICAgICBhbGVydG5hbWU6IENQVVRocm90dGxpbmdIaWdoXG4gICAgICAgIHJlY2VpdmVyOiAnbnVsbCdcbiAgICAgIC0gbWF0Y2g6XG4gICAgICAgICAgYWxlcnRuYW1lOiBLdWJlTWVtb3J5T3ZlcmNvbW1pdFxuICAgICAgICByZWNlaXZlcjogJ251bGwnXG4gICAgICAtIG1hdGNoOlxuICAgICAgICAgIGFsZXJ0bmFtZTogS3ViZUNQVU92ZXJjb21taXRcbiAgICAgICAgcmVjZWl2ZXI6ICdudWxsJ1xuICAgICAgLSBtYXRjaDpcbiAgICAgICAgICBhbGVydG5hbWU6IEt1YmVsZXRUb29NYW55UG9kc1xuICAgICAgICByZWNlaXZlcjogJ251bGwnXG5cbiAgICByZWNlaXZlcnM6XG4gICAgLSBuYW1lOiAnbnVsbCdcbiAgICAtIG5hbWU6IGVtYWlsXG4gICAgICBlbWFpbF9jb25maWdzOlxuICAgICAgLSBzZW5kX3Jlc29sdmVkOiB0cnVlXG4gICAgICAgIHRvOiAke2NvbmZpZy5zbXRwLmZyb219XG5cbiAgICAjIEluaGliaXRpb24gcnVsZXMgYWxsb3cgdG8gbXV0ZSBhIHNldCBvZiBhbGVydHMgZ2l2ZW4gdGhhdCBhbm90aGVyIGFsZXJ0IGlzIGZpcmluZy5cbiAgICAjIFdlIHVzZSB0aGlzIHRvIG11dGUgYW55IHdhcm5pbmctbGV2ZWwgbm90aWZpY2F0aW9ucyBpZiB0aGUgc2FtZSBhbGVydCBpcyBhbHJlYWR5IGNyaXRpY2FsLlxuICAgIGluaGliaXRfcnVsZXM6XG4gICAgLSBzb3VyY2VfbWF0Y2g6XG4gICAgICAgIHNldmVyaXR5OiAnY3JpdGljYWwnXG4gICAgICB0YXJnZXRfbWF0Y2g6XG4gICAgICAgIHNldmVyaXR5OiAnd2FybmluZydcbiAgICAgICMgQXBwbHkgaW5oaWJpdGlvbiBpZiB0aGUgYWxlcnRuYW1lIGlzIHRoZSBzYW1lLlxuICAgICAgZXF1YWw6IFsnYWxlcnRuYW1lJywgJ25hbWVzcGFjZSddXG5cbiAgYWxlcnRtYW5hZ2VyU3BlYzpcbiAgICByZXBsaWNhczogJHtjb25maWcucmVwbGljYXMuYWxlcnRtYW5hZ2VyfVxuICAgIHBvZEFudGlBZmZpbml0eTogXCJzb2Z0XCJcbiAgICBzdG9yYWdlOlxuICAgICAgdm9sdW1lQ2xhaW1UZW1wbGF0ZTpcbiAgICAgICAgc3BlYzpcbiAgICAgICAgICBhY2Nlc3NNb2RlczogW1wiUmVhZFdyaXRlT25jZVwiXVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAke2NvbmZpZy5zdG9yYWdlLmFsZXJ0bWFuYWdlcn1cbiAgICByZXNvdXJjZXM6XG4gICAgICBsaW1pdHM6XG4gICAgICAgIGNwdTogJHtjb25maWcucmVzb3VyY2VzLmFsZXJ0bWFuYWdlci5saW1pdHMuY3B1fVxuICAgICAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy5hbGVydG1hbmFnZXIubGltaXRzLm1lbW9yeX1cbiAgICAgIHJlcXVlc3RzOlxuICAgICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5hbGVydG1hbmFnZXIucmVxdWVzdHMuY3B1fVxuICAgICAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy5hbGVydG1hbmFnZXIucmVxdWVzdHMubWVtb3J5fVxuICAgIHByaW9yaXR5Q2xhc3NOYW1lOiBoaWdoLXByaW9yaXR5XG5cbiAgICAjIFNpZGVjYXIgY29udGFpbmVycyByZXNvdXJjZSByZXF1ZXN0cyAoYWRkZWQgMjAyNS0xMS0xOClcbiAgICBjb250YWluZXJzOlxuICAgIC0gbmFtZTogY29uZmlnLXJlbG9hZGVyXG4gICAgICByZXNvdXJjZXM6XG4gICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgIGNwdTogJHtjb25maWcucmVzb3VyY2VzLmNvbmZpZ1JlbG9hZGVyLnJlcXVlc3RzLmNwdX1cbiAgICAgICAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy5jb25maWdSZWxvYWRlci5yZXF1ZXN0cy5tZW1vcnl9XG4gICAgICAgIGxpbWl0czpcbiAgICAgICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5jb25maWdSZWxvYWRlci5saW1pdHMuY3B1fVxuICAgICAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLmNvbmZpZ1JlbG9hZGVyLmxpbWl0cy5tZW1vcnl9XG5cblxucHJvbWV0aGV1czpcbiAgIyBFbmFibGUgVGhhbm9zIHNlcnZpY2UgZm9yIGdSUEMgY29tbXVuaWNhdGlvblxuICAjIFJlcXVpcmVkIGZvciBIZWxtIGNoYXJ0IHRvIHByb3Blcmx5IHJlbmRlciBUaGFub3Mgc2lkZWNhciBjb25maWd1cmF0aW9uXG4gIHRoYW5vc1NlcnZpY2U6XG4gICAgZW5hYmxlZDogdHJ1ZVxuXG4gIHByb21ldGhldXNTcGVjOlxuICAgIHJldGVudGlvbjogJHtjb25maWcucmV0ZW50aW9uLnByb21ldGhldXN9ICAjIFJlZHVjZWQgZnJvbSA3ZCAtIFRoYW5vcyBwcm92aWRlcyBsb25nLXRlcm0gc3RvcmFnZSBpbiBTM1xuXG4gICAgIyBEaXNjb3ZlciBBTEwgU2VydmljZU1vbml0b3JzLCBQb2RNb25pdG9ycyBhbmQgUHJvbWV0aGV1c1J1bGVzIGluIEFMTCBuYW1lc3BhY2VzXG4gICAgIyBTZXR0aW5nIE5pbFVzZXNIZWxtVmFsdWVzOiBmYWxzZSBtZWFucyBuaWwgc2VsZWN0b3JzID0gXCJzZWxlY3QgYWxsXCJcbiAgICAjIEVtcHR5IG5hbWVzcGFjZSBzZWxlY3RvcnMge30gbWVhbiBcInNlYXJjaCBhbGwgbmFtZXNwYWNlc1wiXG4gICAgIyBXaXRob3V0IHRoZSBydWxlKiBzZXR0aW5ncywgcnVsZVNlbGVjdG9yIGtlZXBzIHRoZSBjaGFydCBkZWZhdWx0XG4gICAgIyAobWF0Y2hMYWJlbHM6IHtyZWxlYXNlOiA8bmFtZT59KSBhbmQgaGFuZC1hdXRob3JlZCBQcm9tZXRoZXVzUnVsZXMgdGhhdFxuICAgICMgbGFjayB0aGUgcmVsZWFzZSBsYWJlbCBhcmUgc2lsZW50bHkgaWdub3JlZC5cbiAgICAjIE5vdGU6IFRoaXMgZG9lcyBOT1QgYWZmZWN0IFRoYW5vcyBzaWRlY2FyIC0gY29udHJvbGxlZCBieSB0aGFub3Mub2JqZWN0U3RvcmFnZUNvbmZpZ1xuICAgIHNlcnZpY2VNb25pdG9yU2VsZWN0b3JOaWxVc2VzSGVsbVZhbHVlczogZmFsc2VcbiAgICBwb2RNb25pdG9yU2VsZWN0b3JOaWxVc2VzSGVsbVZhbHVlczogZmFsc2VcbiAgICBydWxlU2VsZWN0b3JOaWxVc2VzSGVsbVZhbHVlczogZmFsc2VcbiAgICBzZXJ2aWNlTW9uaXRvck5hbWVzcGFjZVNlbGVjdG9yOiB7fVxuICAgIHBvZE1vbml0b3JOYW1lc3BhY2VTZWxlY3Rvcjoge31cbiAgICBydWxlTmFtZXNwYWNlU2VsZWN0b3I6IHt9XG5cbiAgICByZXBsaWNhczogJHtjb25maWcucmVwbGljYXMucHJvbWV0aGV1c31cbiAgICBwb2RBbnRpQWZmaW5pdHk6IFwiaGFyZFwiXG4gICAgc3RvcmFnZVNwZWM6XG4gICAgICB2b2x1bWVDbGFpbVRlbXBsYXRlOlxuICAgICAgICBzcGVjOlxuICAgICAgICAgIHN0b3JhZ2VDbGFzc05hbWU6IGxvbmdob3JuXG4gICAgICAgICAgYWNjZXNzTW9kZXM6IFtcIlJlYWRXcml0ZU9uY2VcIl1cbiAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgc3RvcmFnZTogJHtjb25maWcuc3RvcmFnZS5wcm9tZXRoZXVzfSAgIyBSZWR1Y2VkIGZyb20gNkdpICgzZCByZXRlbnRpb24gbmVlZHMgbGVzcyBzcGFjZSlcblxuICAgIHJlc291cmNlczpcbiAgICAgIGxpbWl0czpcbiAgICAgICAgY3B1OiAke2NvbmZpZy5yZXNvdXJjZXMucHJvbWV0aGV1cy5saW1pdHMuY3B1fVxuICAgICAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy5wcm9tZXRoZXVzLmxpbWl0cy5tZW1vcnl9XG4gICAgICByZXF1ZXN0czpcbiAgICAgICAgY3B1OiAke2NvbmZpZy5yZXNvdXJjZXMucHJvbWV0aGV1cy5yZXF1ZXN0cy5jcHV9XG4gICAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLnByb21ldGhldXMucmVxdWVzdHMubWVtb3J5fVxuICAgIHByaW9yaXR5Q2xhc3NOYW1lOiBoaWdoLXByaW9yaXR5XG5cbiAgICAjIEV4dGVybmFsIGxhYmVscyBmb3IgbXVsdGktY2x1c3RlciBpZGVudGlmaWNhdGlvbiBhbmQgVGhhbm9zXG4gICAgZXh0ZXJuYWxMYWJlbHM6XG4gICAgICBjbHVzdGVyOiBrdXA2c1xuICAgICAgcmVwbGljYTogXCIkKFBPRF9OQU1FKVwiXG5cbiAgICAjIFRoYW5vcyBzaWRlY2FyIGZvciBsb25nLXRlcm0gbWV0cmljcyBzdG9yYWdlIGluIFMzXG4gICAgIyBOT1RFOiBjaGFydCA+PTg1LnggcmVxdWlyZXMgdGhlIGV4aXN0aW5nU2VjcmV0IHNoYXBlLiBUaGUgbGVnYWN5IGZsYXRcbiAgICAjIHtuYW1lLCBrZXl9IGZvcm0gaXMgc2lsZW50bHkgZHJvcHBlZCBieSB0aGUgY2hhcnQsIHdoaWNoIHJlbW92ZXMgdGhlXG4gICAgIyBzaWRlY2FyIGFuZCBzdG9wcyBhbGwgUzMgYmxvY2sgdXBsb2FkcyAocmVncmVzc2lvbiBzZWVuIDIwMjYtMDMtMzEpLlxuICAgIHRoYW5vczpcbiAgICAgIG9iamVjdFN0b3JhZ2VDb25maWc6XG4gICAgICAgIGV4aXN0aW5nU2VjcmV0OlxuICAgICAgICAgIG5hbWU6IHRoYW5vcy1vYmpzdG9yZS1jb25maWcgICMgRVNPLW1hbmFnZWQgc2VjcmV0XG4gICAgICAgICAga2V5OiBvYmpzdG9yZS55bWxcblxuICAgICMgU2lkZWNhciBjb250YWluZXJzIHJlc291cmNlIHJlcXVlc3RzIChhZGRlZCAyMDI1LTExLTE4KVxuICAgICMgTk9URTogdGhhbm9zLXNpZGVjYXIgaXMgTk9UIGxpc3RlZCBoZXJlIC0gaXQncyBhdXRvbWF0aWNhbGx5IGluamVjdGVkIGJ5IFByb21ldGhldXMgT3BlcmF0b3JcbiAgICAjIHdoZW4gdGhhbm9zLm9iamVjdFN0b3JhZ2VDb25maWcgaXMgc2V0LiBTcGVjaWZ5aW5nIGl0IGluIGNvbnRhaW5lcnNbXSB3b3VsZCBvdmVycmlkZVxuICAgICMgdGhlIG9wZXJhdG9yJ3MgZGVmaW5pdGlvbiBhbmQgcmVxdWlyZSB1cyB0byBtYW51YWxseSBzcGVjaWZ5IHRoZSBpbWFnZSwgd2hpY2ggYnJlYWtzXG4gICAgIyB3aGVuIHRoZSBvcGVyYXRvciB1cGRhdGVzIHRoZSB0aGFub3MgdmVyc2lvbi5cbiAgICBjb250YWluZXJzOlxuICAgIC0gbmFtZTogY29uZmlnLXJlbG9hZGVyXG4gICAgICByZXNvdXJjZXM6XG4gICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgIGNwdTogJHtjb25maWcucmVzb3VyY2VzLmNvbmZpZ1JlbG9hZGVyLnJlcXVlc3RzLmNwdX1cbiAgICAgICAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy5jb25maWdSZWxvYWRlci5yZXF1ZXN0cy5tZW1vcnl9XG4gICAgICAgIGxpbWl0czpcbiAgICAgICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5jb25maWdSZWxvYWRlci5saW1pdHMuY3B1fVxuICAgICAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLmNvbmZpZ1JlbG9hZGVyLmxpbWl0cy5tZW1vcnl9XG5cbiAgICBzZXJ2aWNlOlxuICAgICAgc2Vzc2lvbkFmZmluaXR5OiBcIkNsaWVudElQXCJcblxuXG5ncmFmYW5hOlxuICAjIFJlY3JlYXRlIHN0cmF0ZWd5IGlzIHJlcXVpcmVkIGJlY2F1c2UgdGhlIHN0b3JhZ2UgUFZDIGlzIFJXTzpcbiAgIyBhIFJvbGxpbmdVcGRhdGUgd291bGQgc3VyZ2UgYSBzZWNvbmQgcG9kIHRoYXQgY2Fubm90IG1vdW50IHRoZVxuICAjIHZvbHVtZSAoRmFpbGVkQXR0YWNoVm9sdW1lKSwgYmxvY2tpbmcgdGhlIHJvbGxvdXQgaW5kZWZpbml0ZWx5LlxuICBkZXBsb3ltZW50U3RyYXRlZ3k6XG4gICAgdHlwZTogUmVjcmVhdGVcblxuICAjIFVzZSBleGlzdGluZyBzZWNyZXQgZm9yIGFkbWluIGNyZWRlbnRpYWxzIChtYW5hZ2VkIGJ5IEVTTylcbiAgIyBUaGlzIHByZXZlbnRzIHBhc3N3b3JkIHJlZ2VuZXJhdGlvbiBvbiBIZWxtIHVwZ3JhZGVzXG4gIGFkbWluOlxuICAgIGV4aXN0aW5nU2VjcmV0OiBcImdyYWZhbmEtYWRtaW4tY3JlZGVudGlhbHNcIlxuICAgIHVzZXJLZXk6IFwiYWRtaW4tdXNlclwiXG4gICAgcGFzc3dvcmRLZXk6IFwiYWRtaW4tcGFzc3dvcmRcIlxuXG4gICMgRGlzYWJsZSBkZWZhdWx0IFByb21ldGhldXMgZGF0YXNvdXJjZSAod2UgcHJvdmlkZSBvdXIgb3duIHBvaW50aW5nIHRvIFRoYW5vcyBRdWVyeSlcbiAgZGVmYXVsdERhdGFzb3VyY2VFbmFibGVkOiBmYWxzZVxuXG4gICMgU2lkZWNhciBjb250YWluZXJzIGZvciBkYXNoYm9hcmQvZGF0YXNvdXJjZSBwcm92aXNpb25pbmdcbiAgc2lkZWNhcjpcbiAgICByZXNvdXJjZXM6XG4gICAgICByZXF1ZXN0czpcbiAgICAgICAgY3B1OiAxMG1cbiAgICAgICAgbWVtb3J5OiAyNTZNaVxuICAgICAgbGltaXRzOlxuICAgICAgICBjcHU6IDEwMG1cbiAgICAgICAgbWVtb3J5OiA1MTJNaVxuICAgIGRhc2hib2FyZHM6XG4gICAgICBlbmFibGVkOiB0cnVlXG4gICAgZGF0YXNvdXJjZXM6XG4gICAgICBlbmFibGVkOiBmYWxzZSAgIyBXZSBtYW51YWxseSBwcm92aXNpb24gZGF0YXNvdXJjZXMgKFByb21ldGhldXPihpJUaGFub3MsIExva2kpXG5cbiAgaW5ncmVzczpcbiAgICBlbmFibGVkOiB0cnVlXG4gICAgaG9zdHM6XG4gICAgICAtICR7Y29uZmlnLmRvbWFpbnMuZ3JhZmFuYX1cbiAgICBhbm5vdGF0aW9uczpcbiAgICAgIGNlcnQtbWFuYWdlci5pby9jbHVzdGVyLWlzc3VlcjogXCJsZXRzZW5jcnlwdC1jbHVzdGVyLWlzc3VlclwiXG4gICAgICB0cmFlZmlrLmluZ3Jlc3Mua3ViZXJuZXRlcy5pby9yb3V0ZXIuZW50cnlwb2ludHM6IHdlYnNlY3VyZVxuICAgIHRsczpcbiAgICAgIC0gc2VjcmV0TmFtZTogZ3JhZmFuYS1nZW5lcmFsLXRsc1xuICAgICAgICBob3N0czpcbiAgICAgICAgLSAke2NvbmZpZy5kb21haW5zLmdyYWZhbmF9XG5cbiAgcmVzb3VyY2VzOlxuICAgIGxpbWl0czpcbiAgICAgIGNwdTogJHtjb25maWcucmVzb3VyY2VzLmdyYWZhbmEubGltaXRzLmNwdX1cbiAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLmdyYWZhbmEubGltaXRzLm1lbW9yeX1cbiAgICByZXF1ZXN0czpcbiAgICAgIGNwdTogJHtjb25maWcucmVzb3VyY2VzLmdyYWZhbmEucmVxdWVzdHMuY3B1fVxuICAgICAgbWVtb3J5OiAke2NvbmZpZy5yZXNvdXJjZXMuZ3JhZmFuYS5yZXF1ZXN0cy5tZW1vcnl9XG5cbiAgcmVhZGluZXNzUHJvYmU6XG4gICAgaHR0cEdldDpcbiAgICAgIHBhdGg6IC9hcGkvaGVhbHRoXG4gICAgICBwb3J0OiAzMDAwXG4gICAgaW5pdGlhbERlbGF5U2Vjb25kczogMzBcbiAgICBwZXJpb2RTZWNvbmRzOiAxMFxuICAgIHRpbWVvdXRTZWNvbmRzOiA1XG4gICAgZmFpbHVyZVRocmVzaG9sZDogM1xuXG4gIGxpdmVuZXNzUHJvYmU6XG4gICAgaHR0cEdldDpcbiAgICAgIHBhdGg6IC9hcGkvaGVhbHRoXG4gICAgICBwb3J0OiAzMDAwXG4gICAgaW5pdGlhbERlbGF5U2Vjb25kczogNjBcbiAgICBwZXJpb2RTZWNvbmRzOiAxMFxuICAgIHRpbWVvdXRTZWNvbmRzOiAzMFxuICAgIGZhaWx1cmVUaHJlc2hvbGQ6IDEwXG5cbiAgcGVyc2lzdGVuY2U6XG4gICAgZW5hYmxlZDogdHJ1ZVxuICAgIHN0b3JhZ2VDbGFzc05hbWU6IGxvbmdob3JuXG4gICAgYWNjZXNzTW9kZXM6XG4gICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICBzaXplOiAke2NvbmZpZy5zdG9yYWdlLmdyYWZhbmF9XG5cbiAgIyBNYW51YWwgZGF0YXNvdXJjZSBwcm92aXNpb25pbmcgKHNpZGVjYXIgZGlzYWJsZWQpXG4gICMgVGhhbm9zIFF1ZXJ5IOKGkiBsb25nLXRlcm0vaGlzdG9yaWNhbCBtZXRyaWNzIChTMyB2aWEgU3RvcmUgKyBsaXZlIHNpZGVjYXIpLCBkZWZhdWx0XG4gICMgUHJvbWV0aGV1cyDihpIgbG9jYWwsIHJlY2VudC9oaWdoLXJlcyBvbmx5IChrZXB0IGZvciBsb3ctbGF0ZW5jeSByZWNlbnQgcXVlcmllcylcbiAgIyBMb2tpIGZvciBsb2cgYWdncmVnYXRpb25cbiAgZGF0YXNvdXJjZXM6XG4gICAgZGF0YXNvdXJjZXMueWFtbDpcbiAgICAgIGFwaVZlcnNpb246IDFcbiAgICAgICMgRGVsZXRlIGFueSBwcmUtZXhpc3RpbmcgTG9raSBkYXRhc291cmNlIChlLmcuIG9uZSBjcmVhdGVkIHdpdGggYVxuICAgICAgIyByYW5kb21seSBnZW5lcmF0ZWQgVUlEIGJlZm9yZSB3ZSBwaW5uZWQgdWlkOiBsb2tpKS4gV2l0aG91dCB0aGlzLFxuICAgICAgIyBHcmFmYW5hIGZhaWxzIHByb3Zpc2lvbmluZyB3aXRoIFwiZGF0YSBzb3VyY2Ugbm90IGZvdW5kXCIgYmVjYXVzZVxuICAgICAgIyB0aGUgdXBzZXJ0IGNvbGxpZGVzIHdpdGggdGhlIGV4aXN0aW5nIGVudHJ5LlxuICAgICAgZGVsZXRlRGF0YXNvdXJjZXM6XG4gICAgICAtIG5hbWU6IExva2lcbiAgICAgICAgb3JnSWQ6IDFcbiAgICAgIGRhdGFzb3VyY2VzOlxuICAgICAgLSBuYW1lOiBUaGFub3NcbiAgICAgICAgdHlwZTogcHJvbWV0aGV1c1xuICAgICAgICB1aWQ6IHRoYW5vc1xuICAgICAgICBhY2Nlc3M6IHByb3h5XG4gICAgICAgICMgdGhhbm9zLXF1ZXJ5IFNlcnZpY2U6IGh0dHAgcG9ydCA5MDkwIC0+IGNvbnRhaW5lciBodHRwIDEwOTAyXG4gICAgICAgIHVybDogaHR0cDovL3RoYW5vcy1xdWVyeS4ke2NvbmZpZy5uYW1lc3BhY2V9LnN2Yy5jbHVzdGVyLmxvY2FsOjkwOTBcbiAgICAgICAgaXNEZWZhdWx0OiB0cnVlXG4gICAgICAgIGpzb25EYXRhOlxuICAgICAgICAgIHRpbWVJbnRlcnZhbDogMzBzXG4gICAgICAtIG5hbWU6IFByb21ldGhldXNcbiAgICAgICAgdHlwZTogcHJvbWV0aGV1c1xuICAgICAgICB1aWQ6IHByb21ldGhldXNcbiAgICAgICAgYWNjZXNzOiBwcm94eVxuICAgICAgICB1cmw6IGh0dHA6Ly9rdWJlLXByb21ldGhldXMtc3RhY2stcHJvbWV0aGV1cy4ke2NvbmZpZy5uYW1lc3BhY2V9LnN2Yy5jbHVzdGVyLmxvY2FsOjkwOTBcbiAgICAgICAgaXNEZWZhdWx0OiBmYWxzZVxuICAgICAgICBqc29uRGF0YTpcbiAgICAgICAgICB0aW1lSW50ZXJ2YWw6IDMwc1xuICAgICAgLSBuYW1lOiBMb2tpXG4gICAgICAgIHR5cGU6IGxva2lcbiAgICAgICAgdWlkOiBsb2tpXG4gICAgICAgIGFjY2VzczogcHJveHlcbiAgICAgICAgdXJsOiBodHRwOi8vbG9raS1nYXRld2F5LiR7Y29uZmlnLm5hbWVzcGFjZX0uc3ZjLmNsdXN0ZXIubG9jYWxcbiAgICAgICAganNvbkRhdGE6XG4gICAgICAgICAgbWF4TGluZXM6IDEwMDAke3RlbXBvRGF0YXNvdXJjZX1cblxucHJvbWV0aGV1c09wZXJhdG9yOlxuICByZXNvdXJjZXM6XG4gICAgbGltaXRzOlxuICAgICAgY3B1OiAxXG4gICAgICBtZW1vcnk6IDUxMk1pXG4gICAgcmVxdWVzdHM6XG4gICAgICBjcHU6IDUwbVxuICAgICAgbWVtb3J5OiAxMjhNaVxuICBwcmlvcml0eUNsYXNzTmFtZTogaGlnaC1wcmlvcml0eVxuXG5wcm9tZXRoZXVzLW5vZGUtZXhwb3J0ZXI6XG4gICMgQmluZCA6OTEwMCB0byB0aGUgbm9kZSBJbnRlcm5hbElQIG9ubHksIG5vdCAwLjAuMC4wLiBXaXRoIGt1YmVSQkFDUHJveHlcbiAgIyBkaXNhYmxlZCB0aGUgc3ViLWNoYXJ0IHNldHMgSE9TVF9JUCBmcm9tIGZpZWxkUmVmIHN0YXR1cy5ob3N0SVAsIHdoaWNoIGlzXG4gICMgdGhlIG5vZGUncyBJbnRlcm5hbElQIChFWDogdlN3aXRjaCAxMC42LjAueCB2aWEgLS1ub2RlLWlwOyBjbG91ZDogaGNsb3VkXG4gICMgcHJpdmF0ZSBJUCkuIG5vZGUtZXhwb3J0ZXIgaXMgaG9zdE5ldHdvcmssIHNvIFByb21ldGhldXMgYWxyZWFkeSBzY3JhcGVzXG4gICMgdGhhdCBJbnRlcm5hbElQIGVuZHBvaW50IC0+IHNjcmFwaW5nIGlzIHVuYWZmZWN0ZWQsIG9ubHkgdGhlIHB1YmxpYy1OSUNcbiAgIyBleHBvc3VyZSBvZiB0aGUgdW5hdXRoZW50aWNhdGVkIG1ldHJpY3Mgb24gdGhlIEVYIHB1YmxpYyBJUHMgZ29lcyBhd2F5LlxuICBzZXJ2aWNlOlxuICAgIGxpc3Rlbk9uQWxsSW50ZXJmYWNlczogZmFsc2VcbiAgcmVzb3VyY2VzOlxuICAgIGxpbWl0czpcbiAgICAgIGNwdTogNTBtXG4gICAgICBtZW1vcnk6IDUwTWlcbiAgICByZXF1ZXN0czpcbiAgICAgIGNwdTogNW1cbiAgICAgIG1lbW9yeTogMTZNaVxuICBwcmlvcml0eUNsYXNzTmFtZTogaGlnaC1wcmlvcml0eVxuXG5rdWJlLXN0YXRlLW1ldHJpY3M6XG4gIHJlc291cmNlczpcbiAgICBsaW1pdHM6XG4gICAgICBjcHU6IDFcbiAgICAgIG1lbW9yeTogNTEyTWlcbiAgICByZXF1ZXN0czpcbiAgICAgIGNwdTogNW1cbiAgICAgIG1lbW9yeTogMTI4TWlcbiAgcHJpb3JpdHlDbGFzc05hbWU6IGhpZ2gtcHJpb3JpdHlcbmA7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Construct } from 'constructs';
|
|
2
|
+
import { MonitoringConfig } from '../types';
|
|
3
|
+
export interface TempoS3BucketProps {
|
|
4
|
+
config: MonitoringConfig;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Creates Crossplane Bucket resources for Tempo trace storage.
|
|
8
|
+
*
|
|
9
|
+
* This construct generates:
|
|
10
|
+
* - S3 Bucket (via Crossplane Upbound provider-aws-s3)
|
|
11
|
+
* - BucketVersioning (for recovery of accidentally deleted blocks)
|
|
12
|
+
* - BucketLifecycleConfiguration (retention buffer)
|
|
13
|
+
*
|
|
14
|
+
* Prerequisites:
|
|
15
|
+
* - Crossplane operator installed
|
|
16
|
+
* - Upbound provider-aws-s3 installed
|
|
17
|
+
* - Crossplane ProviderConfig named by config.integrations.s3ProviderConfig exists
|
|
18
|
+
* - Hetzner S3 credentials secret exists in crossplane-system
|
|
19
|
+
*
|
|
20
|
+
* Sync Wave: 1 (external dependencies - must exist before pods access S3)
|
|
21
|
+
*/
|
|
22
|
+
export declare class TempoS3BucketConstruct extends Construct {
|
|
23
|
+
constructor(scope: Construct, id: string, props: TempoS3BucketProps);
|
|
24
|
+
}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TempoS3BucketConstruct = void 0;
|
|
4
|
+
const cdk8s_1 = require("cdk8s");
|
|
5
|
+
const constructs_1 = require("constructs");
|
|
6
|
+
const s3_aws_upbound_io_1 = require("../imports/s3.aws.upbound.io");
|
|
7
|
+
/**
|
|
8
|
+
* Creates Crossplane Bucket resources for Tempo trace storage.
|
|
9
|
+
*
|
|
10
|
+
* This construct generates:
|
|
11
|
+
* - S3 Bucket (via Crossplane Upbound provider-aws-s3)
|
|
12
|
+
* - BucketVersioning (for recovery of accidentally deleted blocks)
|
|
13
|
+
* - BucketLifecycleConfiguration (retention buffer)
|
|
14
|
+
*
|
|
15
|
+
* Prerequisites:
|
|
16
|
+
* - Crossplane operator installed
|
|
17
|
+
* - Upbound provider-aws-s3 installed
|
|
18
|
+
* - Crossplane ProviderConfig named by config.integrations.s3ProviderConfig exists
|
|
19
|
+
* - Hetzner S3 credentials secret exists in crossplane-system
|
|
20
|
+
*
|
|
21
|
+
* Sync Wave: 1 (external dependencies - must exist before pods access S3)
|
|
22
|
+
*/
|
|
23
|
+
class TempoS3BucketConstruct extends constructs_1.Construct {
|
|
24
|
+
constructor(scope, id, props) {
|
|
25
|
+
super(scope, id);
|
|
26
|
+
const { config } = props;
|
|
27
|
+
const bucketName = config.tempo.bucket;
|
|
28
|
+
const region = config.s3.region;
|
|
29
|
+
// Create Bucket
|
|
30
|
+
// Wave 1: External Dependencies - S3 bucket provisioned by Crossplane
|
|
31
|
+
new cdk8s_1.ApiObject(this, 'bucket', {
|
|
32
|
+
apiVersion: 's3.aws.upbound.io/v1beta2',
|
|
33
|
+
kind: 'Bucket',
|
|
34
|
+
metadata: {
|
|
35
|
+
name: bucketName,
|
|
36
|
+
namespace: 'crossplane-system',
|
|
37
|
+
labels: {
|
|
38
|
+
'app.kubernetes.io/name': 'tempo',
|
|
39
|
+
'app.kubernetes.io/component': 'storage',
|
|
40
|
+
'app.kubernetes.io/managed-by': 'cdk8s',
|
|
41
|
+
'app.kubernetes.io/part-of': 'monitoring',
|
|
42
|
+
},
|
|
43
|
+
annotations: {
|
|
44
|
+
'argocd.argoproj.io/sync-wave': '1',
|
|
45
|
+
'crossplane.io/external-name': bucketName,
|
|
46
|
+
'description': 'Tempo trace storage',
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
spec: {
|
|
50
|
+
deletionPolicy: 'Delete',
|
|
51
|
+
managementPolicies: [
|
|
52
|
+
'Observe',
|
|
53
|
+
'Create',
|
|
54
|
+
'Delete',
|
|
55
|
+
// Skip Update to avoid tagging operations (not supported by Hetzner S3)
|
|
56
|
+
],
|
|
57
|
+
forProvider: {
|
|
58
|
+
region: region, // Production region (endpoint determines actual location)
|
|
59
|
+
},
|
|
60
|
+
providerConfigRef: {
|
|
61
|
+
name: config.integrations.s3ProviderConfig,
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
// Create BucketVersioning
|
|
66
|
+
new cdk8s_1.ApiObject(this, 'versioning', {
|
|
67
|
+
apiVersion: 's3.aws.upbound.io/v1beta2',
|
|
68
|
+
kind: 'BucketVersioning',
|
|
69
|
+
metadata: {
|
|
70
|
+
name: 'tempo-traces-versioning',
|
|
71
|
+
namespace: 'crossplane-system',
|
|
72
|
+
labels: {
|
|
73
|
+
'app.kubernetes.io/name': 'tempo',
|
|
74
|
+
'app.kubernetes.io/component': 'storage',
|
|
75
|
+
'app.kubernetes.io/managed-by': 'cdk8s',
|
|
76
|
+
'app.kubernetes.io/part-of': 'monitoring',
|
|
77
|
+
},
|
|
78
|
+
annotations: {
|
|
79
|
+
'argocd.argoproj.io/sync-wave': '1',
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
spec: {
|
|
83
|
+
forProvider: {
|
|
84
|
+
region: region,
|
|
85
|
+
bucketRef: {
|
|
86
|
+
name: bucketName,
|
|
87
|
+
},
|
|
88
|
+
versioningConfiguration: {
|
|
89
|
+
status: 'Enabled',
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
providerConfigRef: {
|
|
93
|
+
name: config.integrations.s3ProviderConfig,
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
});
|
|
97
|
+
// Create BucketLifecycleConfiguration
|
|
98
|
+
// Lifecycle policy: delete trace blocks older than the buffer window.
|
|
99
|
+
// Tempo's own compactor enforces tempo.retention; this is a storage-side safety net.
|
|
100
|
+
new s3_aws_upbound_io_1.BucketLifecycleConfiguration(this, 'lifecycle', {
|
|
101
|
+
metadata: {
|
|
102
|
+
name: 'tempo-traces-lifecycle',
|
|
103
|
+
namespace: 'crossplane-system',
|
|
104
|
+
labels: {
|
|
105
|
+
'app.kubernetes.io/name': 'tempo',
|
|
106
|
+
'app.kubernetes.io/component': 'storage',
|
|
107
|
+
'app.kubernetes.io/managed-by': 'cdk8s',
|
|
108
|
+
'app.kubernetes.io/part-of': 'monitoring',
|
|
109
|
+
},
|
|
110
|
+
annotations: {
|
|
111
|
+
'argocd.argoproj.io/sync-wave': '1',
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
spec: {
|
|
115
|
+
managementPolicies: [
|
|
116
|
+
s3_aws_upbound_io_1.BucketLifecycleConfigurationSpecManagementPolicies.OBSERVE,
|
|
117
|
+
s3_aws_upbound_io_1.BucketLifecycleConfigurationSpecManagementPolicies.CREATE,
|
|
118
|
+
s3_aws_upbound_io_1.BucketLifecycleConfigurationSpecManagementPolicies.DELETE,
|
|
119
|
+
],
|
|
120
|
+
forProvider: {
|
|
121
|
+
region: region,
|
|
122
|
+
bucketRef: {
|
|
123
|
+
name: bucketName,
|
|
124
|
+
},
|
|
125
|
+
rule: [
|
|
126
|
+
{
|
|
127
|
+
id: 'delete-old-traces',
|
|
128
|
+
status: 'Enabled',
|
|
129
|
+
expiration: [
|
|
130
|
+
{
|
|
131
|
+
days: 30, // storage-side safety net beyond Tempo's block retention
|
|
132
|
+
},
|
|
133
|
+
],
|
|
134
|
+
},
|
|
135
|
+
],
|
|
136
|
+
},
|
|
137
|
+
providerConfigRef: {
|
|
138
|
+
name: config.integrations.s3ProviderConfig,
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
exports.TempoS3BucketConstruct = TempoS3BucketConstruct;
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcG8tczMtYnVja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0cnVjdHMvdGVtcG8tczMtYnVja2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUFrQztBQUNsQywyQ0FBdUM7QUFDdkMsb0VBQWdJO0FBT2hJOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQWEsc0JBQXVCLFNBQVEsc0JBQVM7SUFDbkQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF5QjtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDekIsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDdkMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUM7UUFFaEMsZ0JBQWdCO1FBQ2hCLHNFQUFzRTtRQUN0RSxJQUFJLGlCQUFTLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUM1QixVQUFVLEVBQUUsMkJBQTJCO1lBQ3ZDLElBQUksRUFBRSxRQUFRO1lBQ2QsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSxVQUFVO2dCQUNoQixTQUFTLEVBQUUsbUJBQW1CO2dCQUM5QixNQUFNLEVBQUU7b0JBQ04sd0JBQXdCLEVBQUUsT0FBTztvQkFDakMsNkJBQTZCLEVBQUUsU0FBUztvQkFDeEMsOEJBQThCLEVBQUUsT0FBTztvQkFDdkMsMkJBQTJCLEVBQUUsWUFBWTtpQkFDMUM7Z0JBQ0QsV0FBVyxFQUFFO29CQUNYLDhCQUE4QixFQUFFLEdBQUc7b0JBQ25DLDZCQUE2QixFQUFFLFVBQVU7b0JBQ3pDLGFBQWEsRUFBRSxxQkFBcUI7aUJBQ3JDO2FBQ0Y7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osY0FBYyxFQUFFLFFBQVE7Z0JBQ3hCLGtCQUFrQixFQUFFO29CQUNsQixTQUFTO29CQUNULFFBQVE7b0JBQ1IsUUFBUTtvQkFDUix3RUFBd0U7aUJBQ3pFO2dCQUNELFdBQVcsRUFBRTtvQkFDWCxNQUFNLEVBQUUsTUFBTSxFQUFFLDBEQUEwRDtpQkFDM0U7Z0JBQ0QsaUJBQWlCLEVBQUU7b0JBQ2pCLElBQUksRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLGdCQUFnQjtpQkFDM0M7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUVILDBCQUEwQjtRQUMxQixJQUFJLGlCQUFTLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUNoQyxVQUFVLEVBQUUsMkJBQTJCO1lBQ3ZDLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSx5QkFBeUI7Z0JBQy9CLFNBQVMsRUFBRSxtQkFBbUI7Z0JBQzlCLE1BQU0sRUFBRTtvQkFDTix3QkFBd0IsRUFBRSxPQUFPO29CQUNqQyw2QkFBNkIsRUFBRSxTQUFTO29CQUN4Qyw4QkFBOEIsRUFBRSxPQUFPO29CQUN2QywyQkFBMkIsRUFBRSxZQUFZO2lCQUMxQztnQkFDRCxXQUFXLEVBQUU7b0JBQ1gsOEJBQThCLEVBQUUsR0FBRztpQkFDcEM7YUFDRjtZQUNELElBQUksRUFBRTtnQkFDSixXQUFXLEVBQUU7b0JBQ1gsTUFBTSxFQUFFLE1BQU07b0JBQ2QsU0FBUyxFQUFFO3dCQUNULElBQUksRUFBRSxVQUFVO3FCQUNqQjtvQkFDRCx1QkFBdUIsRUFBRTt3QkFDdkIsTUFBTSxFQUFFLFNBQVM7cUJBQ2xCO2lCQUNGO2dCQUNELGlCQUFpQixFQUFFO29CQUNqQixJQUFJLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0I7aUJBQzNDO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCxzQ0FBc0M7UUFDdEMsc0VBQXNFO1FBQ3RFLHFGQUFxRjtRQUNyRixJQUFJLGdEQUE0QixDQUFDLElBQUksRUFBRSxXQUFXLEVBQUU7WUFDbEQsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSx3QkFBd0I7Z0JBQzlCLFNBQVMsRUFBRSxtQkFBbUI7Z0JBQzlCLE1BQU0sRUFBRTtvQkFDTix3QkFBd0IsRUFBRSxPQUFPO29CQUNqQyw2QkFBNkIsRUFBRSxTQUFTO29CQUN4Qyw4QkFBOEIsRUFBRSxPQUFPO29CQUN2QywyQkFBMkIsRUFBRSxZQUFZO2lCQUMxQztnQkFDRCxXQUFXLEVBQUU7b0JBQ1gsOEJBQThCLEVBQUUsR0FBRztpQkFDcEM7YUFDRjtZQUNELElBQUksRUFBRTtnQkFDSixrQkFBa0IsRUFBRTtvQkFDbEIsc0VBQWtELENBQUMsT0FBTztvQkFDMUQsc0VBQWtELENBQUMsTUFBTTtvQkFDekQsc0VBQWtELENBQUMsTUFBTTtpQkFDMUQ7Z0JBQ0QsV0FBVyxFQUFFO29CQUNYLE1BQU0sRUFBRSxNQUFNO29CQUNkLFNBQVMsRUFBRTt3QkFDVCxJQUFJLEVBQUUsVUFBVTtxQkFDakI7b0JBQ0QsSUFBSSxFQUFFO3dCQUNKOzRCQUNFLEVBQUUsRUFBRSxtQkFBbUI7NEJBQ3ZCLE1BQU0sRUFBRSxTQUFTOzRCQUNqQixVQUFVLEVBQUU7Z0NBQ1Y7b0NBQ0UsSUFBSSxFQUFFLEVBQUUsRUFBRSx5REFBeUQ7aUNBQ3BFOzZCQUNGO3lCQUNGO3FCQUNGO2lCQUNGO2dCQUNELGlCQUFpQixFQUFFO29CQUNqQixJQUFJLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0I7aUJBQzNDO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUE1SEQsd0RBNEhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBpT2JqZWN0IH0gZnJvbSAnY2RrOHMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uLCBCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uU3BlY01hbmFnZW1lbnRQb2xpY2llcyB9IGZyb20gJy4uL2ltcG9ydHMvczMuYXdzLnVwYm91bmQuaW8nO1xuaW1wb3J0IHsgTW9uaXRvcmluZ0NvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBUZW1wb1MzQnVja2V0UHJvcHMge1xuICBjb25maWc6IE1vbml0b3JpbmdDb25maWc7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBDcm9zc3BsYW5lIEJ1Y2tldCByZXNvdXJjZXMgZm9yIFRlbXBvIHRyYWNlIHN0b3JhZ2UuXG4gKlxuICogVGhpcyBjb25zdHJ1Y3QgZ2VuZXJhdGVzOlxuICogLSBTMyBCdWNrZXQgKHZpYSBDcm9zc3BsYW5lIFVwYm91bmQgcHJvdmlkZXItYXdzLXMzKVxuICogLSBCdWNrZXRWZXJzaW9uaW5nIChmb3IgcmVjb3Zlcnkgb2YgYWNjaWRlbnRhbGx5IGRlbGV0ZWQgYmxvY2tzKVxuICogLSBCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uIChyZXRlbnRpb24gYnVmZmVyKVxuICpcbiAqIFByZXJlcXVpc2l0ZXM6XG4gKiAtIENyb3NzcGxhbmUgb3BlcmF0b3IgaW5zdGFsbGVkXG4gKiAtIFVwYm91bmQgcHJvdmlkZXItYXdzLXMzIGluc3RhbGxlZFxuICogLSBDcm9zc3BsYW5lIFByb3ZpZGVyQ29uZmlnIG5hbWVkIGJ5IGNvbmZpZy5pbnRlZ3JhdGlvbnMuczNQcm92aWRlckNvbmZpZyBleGlzdHNcbiAqIC0gSGV0em5lciBTMyBjcmVkZW50aWFscyBzZWNyZXQgZXhpc3RzIGluIGNyb3NzcGxhbmUtc3lzdGVtXG4gKlxuICogU3luYyBXYXZlOiAxIChleHRlcm5hbCBkZXBlbmRlbmNpZXMgLSBtdXN0IGV4aXN0IGJlZm9yZSBwb2RzIGFjY2VzcyBTMylcbiAqL1xuZXhwb3J0IGNsYXNzIFRlbXBvUzNCdWNrZXRDb25zdHJ1Y3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogVGVtcG9TM0J1Y2tldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHsgY29uZmlnIH0gPSBwcm9wcztcbiAgICBjb25zdCBidWNrZXROYW1lID0gY29uZmlnLnRlbXBvLmJ1Y2tldDtcbiAgICBjb25zdCByZWdpb24gPSBjb25maWcuczMucmVnaW9uO1xuXG4gICAgLy8gQ3JlYXRlIEJ1Y2tldFxuICAgIC8vIFdhdmUgMTogRXh0ZXJuYWwgRGVwZW5kZW5jaWVzIC0gUzMgYnVja2V0IHByb3Zpc2lvbmVkIGJ5IENyb3NzcGxhbmVcbiAgICBuZXcgQXBpT2JqZWN0KHRoaXMsICdidWNrZXQnLCB7XG4gICAgICBhcGlWZXJzaW9uOiAnczMuYXdzLnVwYm91bmQuaW8vdjFiZXRhMicsXG4gICAgICBraW5kOiAnQnVja2V0JyxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIG5hbWU6IGJ1Y2tldE5hbWUsXG4gICAgICAgIG5hbWVzcGFjZTogJ2Nyb3NzcGxhbmUtc3lzdGVtJyxcbiAgICAgICAgbGFiZWxzOiB7XG4gICAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL25hbWUnOiAndGVtcG8nLFxuICAgICAgICAgICdhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnQnOiAnc3RvcmFnZScsXG4gICAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL21hbmFnZWQtYnknOiAnY2RrOHMnLFxuICAgICAgICAgICdhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mJzogJ21vbml0b3JpbmcnLFxuICAgICAgICB9LFxuICAgICAgICBhbm5vdGF0aW9uczoge1xuICAgICAgICAgICdhcmdvY2QuYXJnb3Byb2ouaW8vc3luYy13YXZlJzogJzEnLFxuICAgICAgICAgICdjcm9zc3BsYW5lLmlvL2V4dGVybmFsLW5hbWUnOiBidWNrZXROYW1lLFxuICAgICAgICAgICdkZXNjcmlwdGlvbic6ICdUZW1wbyB0cmFjZSBzdG9yYWdlJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBzcGVjOiB7XG4gICAgICAgIGRlbGV0aW9uUG9saWN5OiAnRGVsZXRlJyxcbiAgICAgICAgbWFuYWdlbWVudFBvbGljaWVzOiBbXG4gICAgICAgICAgJ09ic2VydmUnLFxuICAgICAgICAgICdDcmVhdGUnLFxuICAgICAgICAgICdEZWxldGUnLFxuICAgICAgICAgIC8vIFNraXAgVXBkYXRlIHRvIGF2b2lkIHRhZ2dpbmcgb3BlcmF0aW9ucyAobm90IHN1cHBvcnRlZCBieSBIZXR6bmVyIFMzKVxuICAgICAgICBdLFxuICAgICAgICBmb3JQcm92aWRlcjoge1xuICAgICAgICAgIHJlZ2lvbjogcmVnaW9uLCAvLyBQcm9kdWN0aW9uIHJlZ2lvbiAoZW5kcG9pbnQgZGV0ZXJtaW5lcyBhY3R1YWwgbG9jYXRpb24pXG4gICAgICAgIH0sXG4gICAgICAgIHByb3ZpZGVyQ29uZmlnUmVmOiB7XG4gICAgICAgICAgbmFtZTogY29uZmlnLmludGVncmF0aW9ucy5zM1Byb3ZpZGVyQ29uZmlnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBCdWNrZXRWZXJzaW9uaW5nXG4gICAgbmV3IEFwaU9iamVjdCh0aGlzLCAndmVyc2lvbmluZycsIHtcbiAgICAgIGFwaVZlcnNpb246ICdzMy5hd3MudXBib3VuZC5pby92MWJldGEyJyxcbiAgICAgIGtpbmQ6ICdCdWNrZXRWZXJzaW9uaW5nJyxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIG5hbWU6ICd0ZW1wby10cmFjZXMtdmVyc2lvbmluZycsXG4gICAgICAgIG5hbWVzcGFjZTogJ2Nyb3NzcGxhbmUtc3lzdGVtJyxcbiAgICAgICAgbGFiZWxzOiB7XG4gICAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL25hbWUnOiAndGVtcG8nLFxuICAgICAgICAgICdhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnQnOiAnc3RvcmFnZScsXG4gICAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL21hbmFnZWQtYnknOiAnY2RrOHMnLFxuICAgICAgICAgICdhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mJzogJ21vbml0b3JpbmcnLFxuICAgICAgICB9LFxuICAgICAgICBhbm5vdGF0aW9uczoge1xuICAgICAgICAgICdhcmdvY2QuYXJnb3Byb2ouaW8vc3luYy13YXZlJzogJzEnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHNwZWM6IHtcbiAgICAgICAgZm9yUHJvdmlkZXI6IHtcbiAgICAgICAgICByZWdpb246IHJlZ2lvbixcbiAgICAgICAgICBidWNrZXRSZWY6IHtcbiAgICAgICAgICAgIG5hbWU6IGJ1Y2tldE5hbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2ZXJzaW9uaW5nQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgICAgc3RhdHVzOiAnRW5hYmxlZCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcHJvdmlkZXJDb25maWdSZWY6IHtcbiAgICAgICAgICBuYW1lOiBjb25maWcuaW50ZWdyYXRpb25zLnMzUHJvdmlkZXJDb25maWcsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb25cbiAgICAvLyBMaWZlY3ljbGUgcG9saWN5OiBkZWxldGUgdHJhY2UgYmxvY2tzIG9sZGVyIHRoYW4gdGhlIGJ1ZmZlciB3aW5kb3cuXG4gICAgLy8gVGVtcG8ncyBvd24gY29tcGFjdG9yIGVuZm9yY2VzIHRlbXBvLnJldGVudGlvbjsgdGhpcyBpcyBhIHN0b3JhZ2Utc2lkZSBzYWZldHkgbmV0LlxuICAgIG5ldyBCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uKHRoaXMsICdsaWZlY3ljbGUnLCB7XG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICBuYW1lOiAndGVtcG8tdHJhY2VzLWxpZmVjeWNsZScsXG4gICAgICAgIG5hbWVzcGFjZTogJ2Nyb3NzcGxhbmUtc3lzdGVtJyxcbiAgICAgICAgbGFiZWxzOiB7XG4gICAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL25hbWUnOiAndGVtcG8nLFxuICAgICAgICAgICdhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnQnOiAnc3RvcmFnZScsXG4gICAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL21hbmFnZWQtYnknOiAnY2RrOHMnLFxuICAgICAgICAgICdhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mJzogJ21vbml0b3JpbmcnLFxuICAgICAgICB9LFxuICAgICAgICBhbm5vdGF0aW9uczoge1xuICAgICAgICAgICdhcmdvY2QuYXJnb3Byb2ouaW8vc3luYy13YXZlJzogJzEnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHNwZWM6IHtcbiAgICAgICAgbWFuYWdlbWVudFBvbGljaWVzOiBbXG4gICAgICAgICAgQnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvblNwZWNNYW5hZ2VtZW50UG9saWNpZXMuT0JTRVJWRSxcbiAgICAgICAgICBCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uU3BlY01hbmFnZW1lbnRQb2xpY2llcy5DUkVBVEUsXG4gICAgICAgICAgQnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvblNwZWNNYW5hZ2VtZW50UG9saWNpZXMuREVMRVRFLFxuICAgICAgICBdLFxuICAgICAgICBmb3JQcm92aWRlcjoge1xuICAgICAgICAgIHJlZ2lvbjogcmVnaW9uLFxuICAgICAgICAgIGJ1Y2tldFJlZjoge1xuICAgICAgICAgICAgbmFtZTogYnVja2V0TmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJ1bGU6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWQ6ICdkZWxldGUtb2xkLXRyYWNlcycsXG4gICAgICAgICAgICAgIHN0YXR1czogJ0VuYWJsZWQnLFxuICAgICAgICAgICAgICBleHBpcmF0aW9uOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgZGF5czogMzAsIC8vIHN0b3JhZ2Utc2lkZSBzYWZldHkgbmV0IGJleW9uZCBUZW1wbydzIGJsb2NrIHJldGVudGlvblxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIHByb3ZpZGVyQ29uZmlnUmVmOiB7XG4gICAgICAgICAgbmFtZTogY29uZmlnLmludGVncmF0aW9ucy5zM1Byb3ZpZGVyQ29uZmlnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Construct } from 'constructs';
|
|
2
|
+
import { MonitoringConfig } from '../types';
|
|
3
|
+
export interface TempoS3CredentialsProps {
|
|
4
|
+
namespace: string;
|
|
5
|
+
config: MonitoringConfig;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Creates ExternalSecret for Tempo S3 credentials.
|
|
9
|
+
*
|
|
10
|
+
* Replicates the S3 credentials (same store/key as Loki and Thanos) into the
|
|
11
|
+
* monitoring namespace for Tempo's object storage.
|
|
12
|
+
*
|
|
13
|
+
* Prerequisites:
|
|
14
|
+
* - External Secrets Operator installed
|
|
15
|
+
* - ClusterSecretStore named by config.integrations.s3SecretStore exists
|
|
16
|
+
* - Source secret addressed by config.integrations.s3CredentialsKey exists in that store
|
|
17
|
+
*
|
|
18
|
+
* Generated Secret:
|
|
19
|
+
* - Name: tempo-s3-credentials
|
|
20
|
+
* - Keys: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY
|
|
21
|
+
*
|
|
22
|
+
* Sync Wave: 1 (external dependencies - must exist before Tempo starts)
|
|
23
|
+
*/
|
|
24
|
+
export declare class TempoS3CredentialsConstruct extends Construct {
|
|
25
|
+
readonly secretName = "tempo-s3-credentials";
|
|
26
|
+
constructor(scope: Construct, id: string, props: TempoS3CredentialsProps);
|
|
27
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TempoS3CredentialsConstruct = void 0;
|
|
4
|
+
const constructs_1 = require("constructs");
|
|
5
|
+
const external_secrets_io_1 = require("../imports/external-secrets.io");
|
|
6
|
+
/**
|
|
7
|
+
* Creates ExternalSecret for Tempo S3 credentials.
|
|
8
|
+
*
|
|
9
|
+
* Replicates the S3 credentials (same store/key as Loki and Thanos) into the
|
|
10
|
+
* monitoring namespace for Tempo's object storage.
|
|
11
|
+
*
|
|
12
|
+
* Prerequisites:
|
|
13
|
+
* - External Secrets Operator installed
|
|
14
|
+
* - ClusterSecretStore named by config.integrations.s3SecretStore exists
|
|
15
|
+
* - Source secret addressed by config.integrations.s3CredentialsKey exists in that store
|
|
16
|
+
*
|
|
17
|
+
* Generated Secret:
|
|
18
|
+
* - Name: tempo-s3-credentials
|
|
19
|
+
* - Keys: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY
|
|
20
|
+
*
|
|
21
|
+
* Sync Wave: 1 (external dependencies - must exist before Tempo starts)
|
|
22
|
+
*/
|
|
23
|
+
class TempoS3CredentialsConstruct extends constructs_1.Construct {
|
|
24
|
+
constructor(scope, id, props) {
|
|
25
|
+
super(scope, id);
|
|
26
|
+
this.secretName = 'tempo-s3-credentials';
|
|
27
|
+
const { namespace, config } = props;
|
|
28
|
+
// Create ExternalSecret that replicates S3 credentials
|
|
29
|
+
// Wave 1: External Dependencies - credentials must exist before Tempo
|
|
30
|
+
new external_secrets_io_1.ExternalSecret(this, 'tempo-s3-external-secret', {
|
|
31
|
+
metadata: {
|
|
32
|
+
name: 'tempo-s3-credentials-es',
|
|
33
|
+
namespace: namespace,
|
|
34
|
+
labels: {
|
|
35
|
+
'app.kubernetes.io/name': 'tempo',
|
|
36
|
+
'app.kubernetes.io/component': 's3-credentials',
|
|
37
|
+
'app.kubernetes.io/managed-by': 'cdk8s',
|
|
38
|
+
'app.kubernetes.io/part-of': 'monitoring',
|
|
39
|
+
},
|
|
40
|
+
annotations: {
|
|
41
|
+
'argocd.argoproj.io/sync-wave': '1',
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
spec: {
|
|
45
|
+
refreshInterval: '1h0m0s',
|
|
46
|
+
secretStoreRef: {
|
|
47
|
+
name: config.integrations.s3SecretStore,
|
|
48
|
+
kind: external_secrets_io_1.ExternalSecretSpecSecretStoreRefKind.CLUSTER_SECRET_STORE,
|
|
49
|
+
},
|
|
50
|
+
target: {
|
|
51
|
+
name: this.secretName,
|
|
52
|
+
creationPolicy: external_secrets_io_1.ExternalSecretSpecTargetCreationPolicy.OWNER,
|
|
53
|
+
},
|
|
54
|
+
dataFrom: [
|
|
55
|
+
{
|
|
56
|
+
extract: {
|
|
57
|
+
key: config.integrations.s3CredentialsKey,
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.TempoS3CredentialsConstruct = TempoS3CredentialsConstruct;
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcG8tczMtY3JlZGVudGlhbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uc3RydWN0cy90ZW1wby1zMy1jcmVkZW50aWFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBdUM7QUFDdkMsd0VBSXdDO0FBUXhDOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBYSwyQkFBNEIsU0FBUSxzQkFBUztJQUd4RCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQThCO1FBQ3RFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFISCxlQUFVLEdBQUcsc0JBQXNCLENBQUM7UUFLbEQsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFFcEMsdURBQXVEO1FBQ3ZELHNFQUFzRTtRQUN0RSxJQUFJLG9DQUFjLENBQUMsSUFBSSxFQUFFLDBCQUEwQixFQUFFO1lBQ25ELFFBQVEsRUFBRTtnQkFDUixJQUFJLEVBQUUseUJBQXlCO2dCQUMvQixTQUFTLEVBQUUsU0FBUztnQkFDcEIsTUFBTSxFQUFFO29CQUNOLHdCQUF3QixFQUFFLE9BQU87b0JBQ2pDLDZCQUE2QixFQUFFLGdCQUFnQjtvQkFDL0MsOEJBQThCLEVBQUUsT0FBTztvQkFDdkMsMkJBQTJCLEVBQUUsWUFBWTtpQkFDMUM7Z0JBQ0QsV0FBVyxFQUFFO29CQUNYLDhCQUE4QixFQUFFLEdBQUc7aUJBQ3BDO2FBQ0Y7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osZUFBZSxFQUFFLFFBQVE7Z0JBQ3pCLGNBQWMsRUFBRTtvQkFDZCxJQUFJLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxhQUFhO29CQUN2QyxJQUFJLEVBQUUsMERBQW9DLENBQUMsb0JBQW9CO2lCQUNoRTtnQkFDRCxNQUFNLEVBQUU7b0JBQ04sSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVO29CQUNyQixjQUFjLEVBQUUsNERBQXNDLENBQUMsS0FBSztpQkFDN0Q7Z0JBQ0QsUUFBUSxFQUFFO29CQUNSO3dCQUNFLE9BQU8sRUFBRTs0QkFDUCxHQUFHLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0I7eUJBQzFDO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUE1Q0Qsa0VBNENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQge1xuICBFeHRlcm5hbFNlY3JldCxcbiAgRXh0ZXJuYWxTZWNyZXRTcGVjVGFyZ2V0Q3JlYXRpb25Qb2xpY3ksXG4gIEV4dGVybmFsU2VjcmV0U3BlY1NlY3JldFN0b3JlUmVmS2luZCxcbn0gZnJvbSAnLi4vaW1wb3J0cy9leHRlcm5hbC1zZWNyZXRzLmlvJztcbmltcG9ydCB7IE1vbml0b3JpbmdDb25maWcgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVtcG9TM0NyZWRlbnRpYWxzUHJvcHMge1xuICBuYW1lc3BhY2U6IHN0cmluZztcbiAgY29uZmlnOiBNb25pdG9yaW5nQ29uZmlnO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgRXh0ZXJuYWxTZWNyZXQgZm9yIFRlbXBvIFMzIGNyZWRlbnRpYWxzLlxuICpcbiAqIFJlcGxpY2F0ZXMgdGhlIFMzIGNyZWRlbnRpYWxzIChzYW1lIHN0b3JlL2tleSBhcyBMb2tpIGFuZCBUaGFub3MpIGludG8gdGhlXG4gKiBtb25pdG9yaW5nIG5hbWVzcGFjZSBmb3IgVGVtcG8ncyBvYmplY3Qgc3RvcmFnZS5cbiAqXG4gKiBQcmVyZXF1aXNpdGVzOlxuICogLSBFeHRlcm5hbCBTZWNyZXRzIE9wZXJhdG9yIGluc3RhbGxlZFxuICogLSBDbHVzdGVyU2VjcmV0U3RvcmUgbmFtZWQgYnkgY29uZmlnLmludGVncmF0aW9ucy5zM1NlY3JldFN0b3JlIGV4aXN0c1xuICogLSBTb3VyY2Ugc2VjcmV0IGFkZHJlc3NlZCBieSBjb25maWcuaW50ZWdyYXRpb25zLnMzQ3JlZGVudGlhbHNLZXkgZXhpc3RzIGluIHRoYXQgc3RvcmVcbiAqXG4gKiBHZW5lcmF0ZWQgU2VjcmV0OlxuICogLSBOYW1lOiB0ZW1wby1zMy1jcmVkZW50aWFsc1xuICogLSBLZXlzOiBBV1NfQUNDRVNTX0tFWV9JRCwgQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZXG4gKlxuICogU3luYyBXYXZlOiAxIChleHRlcm5hbCBkZXBlbmRlbmNpZXMgLSBtdXN0IGV4aXN0IGJlZm9yZSBUZW1wbyBzdGFydHMpXG4gKi9cbmV4cG9ydCBjbGFzcyBUZW1wb1MzQ3JlZGVudGlhbHNDb25zdHJ1Y3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgc2VjcmV0TmFtZSA9ICd0ZW1wby1zMy1jcmVkZW50aWFscyc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFRlbXBvUzNDcmVkZW50aWFsc1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHsgbmFtZXNwYWNlLCBjb25maWcgfSA9IHByb3BzO1xuXG4gICAgLy8gQ3JlYXRlIEV4dGVybmFsU2VjcmV0IHRoYXQgcmVwbGljYXRlcyBTMyBjcmVkZW50aWFsc1xuICAgIC8vIFdhdmUgMTogRXh0ZXJuYWwgRGVwZW5kZW5jaWVzIC0gY3JlZGVudGlhbHMgbXVzdCBleGlzdCBiZWZvcmUgVGVtcG9cbiAgICBuZXcgRXh0ZXJuYWxTZWNyZXQodGhpcywgJ3RlbXBvLXMzLWV4dGVybmFsLXNlY3JldCcsIHtcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIG5hbWU6ICd0ZW1wby1zMy1jcmVkZW50aWFscy1lcycsXG4gICAgICAgIG5hbWVzcGFjZTogbmFtZXNwYWNlLFxuICAgICAgICBsYWJlbHM6IHtcbiAgICAgICAgICAnYXBwLmt1YmVybmV0ZXMuaW8vbmFtZSc6ICd0ZW1wbycsXG4gICAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL2NvbXBvbmVudCc6ICdzMy1jcmVkZW50aWFscycsXG4gICAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL21hbmFnZWQtYnknOiAnY2RrOHMnLFxuICAgICAgICAgICdhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mJzogJ21vbml0b3JpbmcnLFxuICAgICAgICB9LFxuICAgICAgICBhbm5vdGF0aW9uczoge1xuICAgICAgICAgICdhcmdvY2QuYXJnb3Byb2ouaW8vc3luYy13YXZlJzogJzEnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHNwZWM6IHtcbiAgICAgICAgcmVmcmVzaEludGVydmFsOiAnMWgwbTBzJyxcbiAgICAgICAgc2VjcmV0U3RvcmVSZWY6IHtcbiAgICAgICAgICBuYW1lOiBjb25maWcuaW50ZWdyYXRpb25zLnMzU2VjcmV0U3RvcmUsXG4gICAgICAgICAga2luZDogRXh0ZXJuYWxTZWNyZXRTcGVjU2VjcmV0U3RvcmVSZWZLaW5kLkNMVVNURVJfU0VDUkVUX1NUT1JFLFxuICAgICAgICB9LFxuICAgICAgICB0YXJnZXQ6IHtcbiAgICAgICAgICBuYW1lOiB0aGlzLnNlY3JldE5hbWUsXG4gICAgICAgICAgY3JlYXRpb25Qb2xpY3k6IEV4dGVybmFsU2VjcmV0U3BlY1RhcmdldENyZWF0aW9uUG9saWN5Lk9XTkVSLFxuICAgICAgICB9LFxuICAgICAgICBkYXRhRnJvbTogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGV4dHJhY3Q6IHtcbiAgICAgICAgICAgICAga2V5OiBjb25maWcuaW50ZWdyYXRpb25zLnMzQ3JlZGVudGlhbHNLZXksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Construct } from 'constructs';
|
|
2
|
+
import { MonitoringConfig } from '../types';
|
|
3
|
+
export interface TempoProps {
|
|
4
|
+
namespace: string;
|
|
5
|
+
config: MonitoringConfig;
|
|
6
|
+
s3CredentialsSecretName: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Creates the Grafana Tempo (monolithic) HelmChart for trace storage on S3.
|
|
10
|
+
*
|
|
11
|
+
* Single-binary Tempo backed by object storage, exposing an OTLP receiver that
|
|
12
|
+
* the Alloy traces gateway forwards to. Block retention is enforced by Tempo's
|
|
13
|
+
* compactor (config.tempo.retention).
|
|
14
|
+
*
|
|
15
|
+
* Sync Wave: 3 (advanced services, after core stack).
|
|
16
|
+
*/
|
|
17
|
+
export declare class TempoConstruct extends Construct {
|
|
18
|
+
constructor(scope: Construct, id: string, props: TempoProps);
|
|
19
|
+
private generateHelmValues;
|
|
20
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TempoConstruct = void 0;
|
|
4
|
+
const cdk8s_1 = require("cdk8s");
|
|
5
|
+
const constructs_1 = require("constructs");
|
|
6
|
+
/**
|
|
7
|
+
* Creates the Grafana Tempo (monolithic) HelmChart for trace storage on S3.
|
|
8
|
+
*
|
|
9
|
+
* Single-binary Tempo backed by object storage, exposing an OTLP receiver that
|
|
10
|
+
* the Alloy traces gateway forwards to. Block retention is enforced by Tempo's
|
|
11
|
+
* compactor (config.tempo.retention).
|
|
12
|
+
*
|
|
13
|
+
* Sync Wave: 3 (advanced services, after core stack).
|
|
14
|
+
*/
|
|
15
|
+
class TempoConstruct extends constructs_1.Construct {
|
|
16
|
+
constructor(scope, id, props) {
|
|
17
|
+
super(scope, id);
|
|
18
|
+
const { namespace, config, s3CredentialsSecretName } = props;
|
|
19
|
+
new cdk8s_1.ApiObject(this, 'tempo', {
|
|
20
|
+
apiVersion: 'helm.cattle.io/v1',
|
|
21
|
+
kind: 'HelmChart',
|
|
22
|
+
metadata: {
|
|
23
|
+
name: 'tempo',
|
|
24
|
+
namespace: namespace,
|
|
25
|
+
labels: {
|
|
26
|
+
'app.kubernetes.io/name': 'tempo',
|
|
27
|
+
'app.kubernetes.io/component': 'tracing',
|
|
28
|
+
'app.kubernetes.io/managed-by': 'cdk8s',
|
|
29
|
+
'app.kubernetes.io/part-of': 'monitoring',
|
|
30
|
+
},
|
|
31
|
+
annotations: {
|
|
32
|
+
'argocd.argoproj.io/sync-wave': '3',
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
spec: {
|
|
36
|
+
repo: 'https://grafana.github.io/helm-charts',
|
|
37
|
+
chart: 'tempo',
|
|
38
|
+
version: config.versions.tempo === 'latest' ? undefined : config.versions.tempo,
|
|
39
|
+
targetNamespace: namespace,
|
|
40
|
+
valuesContent: this.generateHelmValues(config, s3CredentialsSecretName),
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
generateHelmValues(config, s3CredentialsSecretName) {
|
|
45
|
+
// Values follow the monolithic grafana/tempo chart schema: storage,
|
|
46
|
+
// receivers, resources, extraEnv live under `tempo:`; replicas/persistence/
|
|
47
|
+
// tempoQuery are top-level. S3 credentials are NOT inlined into the config;
|
|
48
|
+
// Tempo's S3 client picks up AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY from the
|
|
49
|
+
// environment (set below from the ESO-synced secret) via the default chain.
|
|
50
|
+
return `replicas: ${config.replicas.tempo}
|
|
51
|
+
tempo:
|
|
52
|
+
retention: ${config.tempo.retention}
|
|
53
|
+
storage:
|
|
54
|
+
trace:
|
|
55
|
+
backend: s3
|
|
56
|
+
s3:
|
|
57
|
+
bucket: ${config.tempo.bucket}
|
|
58
|
+
endpoint: ${config.s3.endpointNoProtocol}
|
|
59
|
+
region: ${config.s3.region}
|
|
60
|
+
forcepathstyle: false
|
|
61
|
+
insecure: false
|
|
62
|
+
wal:
|
|
63
|
+
path: /var/tempo/wal
|
|
64
|
+
receivers:
|
|
65
|
+
otlp:
|
|
66
|
+
protocols:
|
|
67
|
+
grpc:
|
|
68
|
+
endpoint: "0.0.0.0:4317"
|
|
69
|
+
http:
|
|
70
|
+
endpoint: "0.0.0.0:4318"
|
|
71
|
+
resources:
|
|
72
|
+
requests:
|
|
73
|
+
cpu: ${config.resources.tempo.requests.cpu}
|
|
74
|
+
memory: ${config.resources.tempo.requests.memory}
|
|
75
|
+
limits:
|
|
76
|
+
cpu: ${config.resources.tempo.limits.cpu}
|
|
77
|
+
memory: ${config.resources.tempo.limits.memory}
|
|
78
|
+
extraEnv:
|
|
79
|
+
- name: AWS_ACCESS_KEY_ID
|
|
80
|
+
valueFrom:
|
|
81
|
+
secretKeyRef:
|
|
82
|
+
name: ${s3CredentialsSecretName}
|
|
83
|
+
key: AWS_ACCESS_KEY_ID
|
|
84
|
+
- name: AWS_SECRET_ACCESS_KEY
|
|
85
|
+
valueFrom:
|
|
86
|
+
secretKeyRef:
|
|
87
|
+
name: ${s3CredentialsSecretName}
|
|
88
|
+
key: AWS_SECRET_ACCESS_KEY
|
|
89
|
+
persistence:
|
|
90
|
+
enabled: true
|
|
91
|
+
storageClassName: longhorn
|
|
92
|
+
size: ${config.storage.tempo}
|
|
93
|
+
tempoQuery:
|
|
94
|
+
enabled: false
|
|
95
|
+
`;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
exports.TempoConstruct = TempoConstruct;
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uc3RydWN0cy90ZW1wby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpQ0FBa0M7QUFDbEMsMkNBQXVDO0FBU3ZDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsc0JBQVM7SUFDM0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFpQjtRQUN6RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLHVCQUF1QixFQUFFLEdBQUcsS0FBSyxDQUFDO1FBRTdELElBQUksaUJBQVMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFO1lBQzNCLFVBQVUsRUFBRSxtQkFBbUI7WUFDL0IsSUFBSSxFQUFFLFdBQVc7WUFDakIsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSxPQUFPO2dCQUNiLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixNQUFNLEVBQUU7b0JBQ04sd0JBQXdCLEVBQUUsT0FBTztvQkFDakMsNkJBQTZCLEVBQUUsU0FBUztvQkFDeEMsOEJBQThCLEVBQUUsT0FBTztvQkFDdkMsMkJBQTJCLEVBQUUsWUFBWTtpQkFDMUM7Z0JBQ0QsV0FBVyxFQUFFO29CQUNYLDhCQUE4QixFQUFFLEdBQUc7aUJBQ3BDO2FBQ0Y7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osSUFBSSxFQUFFLHVDQUF1QztnQkFDN0MsS0FBSyxFQUFFLE9BQU87Z0JBQ2QsT0FBTyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUs7Z0JBQy9FLGVBQWUsRUFBRSxTQUFTO2dCQUMxQixhQUFhLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSx1QkFBdUIsQ0FBQzthQUN4RTtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxNQUF3QixFQUFFLHVCQUErQjtRQUNsRixvRUFBb0U7UUFDcEUsNEVBQTRFO1FBQzVFLDRFQUE0RTtRQUM1RSw4RUFBOEU7UUFDOUUsNEVBQTRFO1FBQzVFLE9BQU8sYUFBYSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUs7O2VBRTlCLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUzs7Ozs7a0JBS25CLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTTtvQkFDakIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0I7a0JBQzlCLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTTs7Ozs7Ozs7Ozs7Ozs7YUFjckIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUc7Z0JBQ2hDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNOzthQUV6QyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRztnQkFDOUIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07Ozs7O2tCQUtsQyx1QkFBdUI7Ozs7O2tCQUt2Qix1QkFBdUI7Ozs7O1VBSy9CLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSzs7O0NBRzdCLENBQUM7SUFDQSxDQUFDO0NBQ0Y7QUFyRkQsd0NBcUZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBpT2JqZWN0IH0gZnJvbSAnY2RrOHMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBNb25pdG9yaW5nQ29uZmlnIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBvUHJvcHMge1xuICBuYW1lc3BhY2U6IHN0cmluZztcbiAgY29uZmlnOiBNb25pdG9yaW5nQ29uZmlnO1xuICBzM0NyZWRlbnRpYWxzU2VjcmV0TmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgdGhlIEdyYWZhbmEgVGVtcG8gKG1vbm9saXRoaWMpIEhlbG1DaGFydCBmb3IgdHJhY2Ugc3RvcmFnZSBvbiBTMy5cbiAqXG4gKiBTaW5nbGUtYmluYXJ5IFRlbXBvIGJhY2tlZCBieSBvYmplY3Qgc3RvcmFnZSwgZXhwb3NpbmcgYW4gT1RMUCByZWNlaXZlciB0aGF0XG4gKiB0aGUgQWxsb3kgdHJhY2VzIGdhdGV3YXkgZm9yd2FyZHMgdG8uIEJsb2NrIHJldGVudGlvbiBpcyBlbmZvcmNlZCBieSBUZW1wbydzXG4gKiBjb21wYWN0b3IgKGNvbmZpZy50ZW1wby5yZXRlbnRpb24pLlxuICpcbiAqIFN5bmMgV2F2ZTogMyAoYWR2YW5jZWQgc2VydmljZXMsIGFmdGVyIGNvcmUgc3RhY2spLlxuICovXG5leHBvcnQgY2xhc3MgVGVtcG9Db25zdHJ1Y3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogVGVtcG9Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCB7IG5hbWVzcGFjZSwgY29uZmlnLCBzM0NyZWRlbnRpYWxzU2VjcmV0TmFtZSB9ID0gcHJvcHM7XG5cbiAgICBuZXcgQXBpT2JqZWN0KHRoaXMsICd0ZW1wbycsIHtcbiAgICAgIGFwaVZlcnNpb246ICdoZWxtLmNhdHRsZS5pby92MScsXG4gICAgICBraW5kOiAnSGVsbUNoYXJ0JyxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIG5hbWU6ICd0ZW1wbycsXG4gICAgICAgIG5hbWVzcGFjZTogbmFtZXNwYWNlLFxuICAgICAgICBsYWJlbHM6IHtcbiAgICAgICAgICAnYXBwLmt1YmVybmV0ZXMuaW8vbmFtZSc6ICd0ZW1wbycsXG4gICAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL2NvbXBvbmVudCc6ICd0cmFjaW5nJyxcbiAgICAgICAgICAnYXBwLmt1YmVybmV0ZXMuaW8vbWFuYWdlZC1ieSc6ICdjZGs4cycsXG4gICAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2YnOiAnbW9uaXRvcmluZycsXG4gICAgICAgIH0sXG4gICAgICAgIGFubm90YXRpb25zOiB7XG4gICAgICAgICAgJ2FyZ29jZC5hcmdvcHJvai5pby9zeW5jLXdhdmUnOiAnMycsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgc3BlYzoge1xuICAgICAgICByZXBvOiAnaHR0cHM6Ly9ncmFmYW5hLmdpdGh1Yi5pby9oZWxtLWNoYXJ0cycsXG4gICAgICAgIGNoYXJ0OiAndGVtcG8nLFxuICAgICAgICB2ZXJzaW9uOiBjb25maWcudmVyc2lvbnMudGVtcG8gPT09ICdsYXRlc3QnID8gdW5kZWZpbmVkIDogY29uZmlnLnZlcnNpb25zLnRlbXBvLFxuICAgICAgICB0YXJnZXROYW1lc3BhY2U6IG5hbWVzcGFjZSxcbiAgICAgICAgdmFsdWVzQ29udGVudDogdGhpcy5nZW5lcmF0ZUhlbG1WYWx1ZXMoY29uZmlnLCBzM0NyZWRlbnRpYWxzU2VjcmV0TmFtZSksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUhlbG1WYWx1ZXMoY29uZmlnOiBNb25pdG9yaW5nQ29uZmlnLCBzM0NyZWRlbnRpYWxzU2VjcmV0TmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBWYWx1ZXMgZm9sbG93IHRoZSBtb25vbGl0aGljIGdyYWZhbmEvdGVtcG8gY2hhcnQgc2NoZW1hOiBzdG9yYWdlLFxuICAgIC8vIHJlY2VpdmVycywgcmVzb3VyY2VzLCBleHRyYUVudiBsaXZlIHVuZGVyIGB0ZW1wbzpgOyByZXBsaWNhcy9wZXJzaXN0ZW5jZS9cbiAgICAvLyB0ZW1wb1F1ZXJ5IGFyZSB0b3AtbGV2ZWwuIFMzIGNyZWRlbnRpYWxzIGFyZSBOT1QgaW5saW5lZCBpbnRvIHRoZSBjb25maWc7XG4gICAgLy8gVGVtcG8ncyBTMyBjbGllbnQgcGlja3MgdXAgQVdTX0FDQ0VTU19LRVlfSUQvQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZIGZyb20gdGhlXG4gICAgLy8gZW52aXJvbm1lbnQgKHNldCBiZWxvdyBmcm9tIHRoZSBFU08tc3luY2VkIHNlY3JldCkgdmlhIHRoZSBkZWZhdWx0IGNoYWluLlxuICAgIHJldHVybiBgcmVwbGljYXM6ICR7Y29uZmlnLnJlcGxpY2FzLnRlbXBvfVxudGVtcG86XG4gIHJldGVudGlvbjogJHtjb25maWcudGVtcG8ucmV0ZW50aW9ufVxuICBzdG9yYWdlOlxuICAgIHRyYWNlOlxuICAgICAgYmFja2VuZDogczNcbiAgICAgIHMzOlxuICAgICAgICBidWNrZXQ6ICR7Y29uZmlnLnRlbXBvLmJ1Y2tldH1cbiAgICAgICAgZW5kcG9pbnQ6ICR7Y29uZmlnLnMzLmVuZHBvaW50Tm9Qcm90b2NvbH1cbiAgICAgICAgcmVnaW9uOiAke2NvbmZpZy5zMy5yZWdpb259XG4gICAgICAgIGZvcmNlcGF0aHN0eWxlOiBmYWxzZVxuICAgICAgICBpbnNlY3VyZTogZmFsc2VcbiAgICAgIHdhbDpcbiAgICAgICAgcGF0aDogL3Zhci90ZW1wby93YWxcbiAgcmVjZWl2ZXJzOlxuICAgIG90bHA6XG4gICAgICBwcm90b2NvbHM6XG4gICAgICAgIGdycGM6XG4gICAgICAgICAgZW5kcG9pbnQ6IFwiMC4wLjAuMDo0MzE3XCJcbiAgICAgICAgaHR0cDpcbiAgICAgICAgICBlbmRwb2ludDogXCIwLjAuMC4wOjQzMThcIlxuICByZXNvdXJjZXM6XG4gICAgcmVxdWVzdHM6XG4gICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy50ZW1wby5yZXF1ZXN0cy5jcHV9XG4gICAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy50ZW1wby5yZXF1ZXN0cy5tZW1vcnl9XG4gICAgbGltaXRzOlxuICAgICAgY3B1OiAke2NvbmZpZy5yZXNvdXJjZXMudGVtcG8ubGltaXRzLmNwdX1cbiAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLnRlbXBvLmxpbWl0cy5tZW1vcnl9XG4gIGV4dHJhRW52OlxuICAgIC0gbmFtZTogQVdTX0FDQ0VTU19LRVlfSURcbiAgICAgIHZhbHVlRnJvbTpcbiAgICAgICAgc2VjcmV0S2V5UmVmOlxuICAgICAgICAgIG5hbWU6ICR7czNDcmVkZW50aWFsc1NlY3JldE5hbWV9XG4gICAgICAgICAga2V5OiBBV1NfQUNDRVNTX0tFWV9JRFxuICAgIC0gbmFtZTogQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZXG4gICAgICB2YWx1ZUZyb206XG4gICAgICAgIHNlY3JldEtleVJlZjpcbiAgICAgICAgICBuYW1lOiAke3MzQ3JlZGVudGlhbHNTZWNyZXROYW1lfVxuICAgICAgICAgIGtleTogQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZXG5wZXJzaXN0ZW5jZTpcbiAgZW5hYmxlZDogdHJ1ZVxuICBzdG9yYWdlQ2xhc3NOYW1lOiBsb25naG9yblxuICBzaXplOiAke2NvbmZpZy5zdG9yYWdlLnRlbXBvfVxudGVtcG9RdWVyeTpcbiAgZW5hYmxlZDogZmFsc2VcbmA7XG4gIH1cbn1cbiJdfQ==
|
package/lib/default-config.js
CHANGED
|
@@ -14,6 +14,7 @@ exports.DEFAULT_CONFIG = {
|
|
|
14
14
|
loki: '7.0.0',
|
|
15
15
|
alloy: '1.10.0',
|
|
16
16
|
thanos: 'v0.41.0',
|
|
17
|
+
tempo: '1.24.4', // grafana/tempo chart (Tempo app 2.9.0)
|
|
17
18
|
},
|
|
18
19
|
retention: {
|
|
19
20
|
prometheus: '2d',
|
|
@@ -30,6 +31,7 @@ exports.DEFAULT_CONFIG = {
|
|
|
30
31
|
lokiWrite: '3Gi',
|
|
31
32
|
thanosStore: '10Gi',
|
|
32
33
|
thanosCompactor: '20Gi',
|
|
34
|
+
tempo: '5Gi',
|
|
33
35
|
},
|
|
34
36
|
replicas: {
|
|
35
37
|
prometheus: 2,
|
|
@@ -40,6 +42,7 @@ exports.DEFAULT_CONFIG = {
|
|
|
40
42
|
lokiWrite: 2,
|
|
41
43
|
thanosQuery: 2,
|
|
42
44
|
thanosStore: 2,
|
|
45
|
+
tempo: 1,
|
|
43
46
|
},
|
|
44
47
|
resources: {
|
|
45
48
|
prometheus: { requests: { cpu: '100m', memory: '1500Mi' }, limits: { cpu: '2', memory: '3000Mi' } },
|
|
@@ -55,6 +58,14 @@ exports.DEFAULT_CONFIG = {
|
|
|
55
58
|
thanosCompactor: { requests: { cpu: '500m', memory: '2Gi' }, limits: { cpu: '2000m', memory: '4Gi' } },
|
|
56
59
|
configReloader: { requests: { cpu: '10m', memory: '50Mi' }, limits: { cpu: '50m', memory: '100Mi' } },
|
|
57
60
|
thanosSidecar: { requests: { cpu: '10m', memory: '50Mi' }, limits: { cpu: '100m', memory: '100Mi' } },
|
|
61
|
+
tempo: { requests: { cpu: '100m', memory: '256Mi' }, limits: { cpu: '1', memory: '1Gi' } },
|
|
62
|
+
alloyTraces: { requests: { cpu: '100m', memory: '256Mi' }, limits: { cpu: '500m', memory: '512Mi' } },
|
|
63
|
+
},
|
|
64
|
+
tempo: {
|
|
65
|
+
enabled: false,
|
|
66
|
+
bucket: '',
|
|
67
|
+
retention: '336h',
|
|
68
|
+
tailSampling: { latencyThresholdMs: 1000, probabilisticPercent: 10 },
|
|
58
69
|
},
|
|
59
70
|
};
|
|
60
71
|
/**
|
|
@@ -62,6 +73,10 @@ exports.DEFAULT_CONFIG = {
|
|
|
62
73
|
* DEFAULT_CONFIG. Required cluster values are passed through verbatim.
|
|
63
74
|
*/
|
|
64
75
|
function mergeConfig(input) {
|
|
76
|
+
const tempo = (0, deepmerge_ts_1.deepmerge)(exports.DEFAULT_CONFIG.tempo, input.tempo ?? {});
|
|
77
|
+
if (tempo.enabled && !tempo.bucket) {
|
|
78
|
+
throw new Error('tempo.bucket is required when tempo.enabled is true');
|
|
79
|
+
}
|
|
65
80
|
return {
|
|
66
81
|
namespace: input.namespace,
|
|
67
82
|
domains: input.domains,
|
|
@@ -73,6 +88,7 @@ function mergeConfig(input) {
|
|
|
73
88
|
storage: (0, deepmerge_ts_1.deepmerge)(exports.DEFAULT_CONFIG.storage, input.storage ?? {}),
|
|
74
89
|
replicas: (0, deepmerge_ts_1.deepmerge)(exports.DEFAULT_CONFIG.replicas, input.replicas ?? {}),
|
|
75
90
|
resources: (0, deepmerge_ts_1.deepmerge)(exports.DEFAULT_CONFIG.resources, input.resources ?? {}),
|
|
91
|
+
tempo,
|
|
76
92
|
};
|
|
77
93
|
}
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGVmYXVsdC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBaUVBLGtDQWFDO0FBOUVELCtDQUF5QztBQU16Qzs7OztHQUlHO0FBQ1UsUUFBQSxjQUFjLEdBQXNCO0lBQy9DLFFBQVEsRUFBRTtRQUNSLGVBQWUsRUFBRSxRQUFRO1FBQ3pCLElBQUksRUFBRSxPQUFPO1FBQ2IsS0FBSyxFQUFFLFFBQVE7UUFDZixNQUFNLEVBQUUsU0FBUztLQUNsQjtJQUNELFNBQVMsRUFBRTtRQUNULFVBQVUsRUFBRSxJQUFJO1FBQ2hCLGVBQWUsRUFBRSxFQUFFO1FBQ25CLGNBQWMsRUFBRSxHQUFHO1FBQ25CLGNBQWMsRUFBRSxHQUFHO1FBQ25CLElBQUksRUFBRSxNQUFNO0tBQ2I7SUFDRCxPQUFPLEVBQUU7UUFDUCxVQUFVLEVBQUUsTUFBTTtRQUNsQixPQUFPLEVBQUUsS0FBSztRQUNkLFlBQVksRUFBRSxLQUFLO1FBQ25CLFdBQVcsRUFBRSxNQUFNO1FBQ25CLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLFdBQVcsRUFBRSxNQUFNO1FBQ25CLGVBQWUsRUFBRSxNQUFNO0tBQ3hCO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsVUFBVSxFQUFFLENBQUM7UUFDYixZQUFZLEVBQUUsQ0FBQztRQUNmLE9BQU8sRUFBRSxDQUFDO1FBQ1YsV0FBVyxFQUFFLENBQUM7UUFDZCxRQUFRLEVBQUUsQ0FBQztRQUNYLFNBQVMsRUFBRSxDQUFDO1FBQ1osV0FBVyxFQUFFLENBQUM7UUFDZCxXQUFXLEVBQUUsQ0FBQztLQUNmO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsVUFBVSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEVBQUU7UUFDbkcsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDOUYsWUFBWSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDckcsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDckcsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDbEcsU0FBUyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDOUYsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDcEcsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDL0YsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDcEcsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDbEcsZUFBZSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDdEcsY0FBYyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDckcsYUFBYSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUU7S0FDdEc7Q0FDRixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsU0FBZ0IsV0FBVyxDQUFDLEtBQTRCO0lBQ3RELE9BQU87UUFDTCxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7UUFDMUIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1FBQ3RCLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRTtRQUNaLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtRQUNoQixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7UUFDaEMsUUFBUSxFQUFFLElBQUEsd0JBQVMsRUFBQyxzQkFBYyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBa0I7UUFDbkYsU0FBUyxFQUFFLElBQUEsd0JBQVMsRUFBQyxzQkFBYyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBb0I7UUFDeEYsT0FBTyxFQUFFLElBQUEsd0JBQVMsRUFBQyxzQkFBYyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBa0I7UUFDaEYsUUFBUSxFQUFFLElBQUEsd0JBQVMsRUFBQyxzQkFBYyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBa0I7UUFDbkYsU0FBUyxFQUFFLElBQUEsd0JBQVMsRUFBQyxzQkFBYyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBbUI7S0FDeEYsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWVwbWVyZ2UgfSBmcm9tICdkZWVwbWVyZ2UtdHMnO1xuaW1wb3J0IHtcbiAgRGVmYXVsdGFibGVDb25maWcsIE1vbml0b3JpbmdDb25maWcsIE1vbml0b3JpbmdDb25maWdJbnB1dCxcbiAgVmVyc2lvbkNvbmZpZywgUmV0ZW50aW9uQ29uZmlnLCBTdG9yYWdlQ29uZmlnLCBSZXBsaWNhQ29uZmlnLCBSZXNvdXJjZUNvbmZpZyxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogUGFja2FnZS1zaGlwcGVkIGRlZmF1bHRzIGZvciBldmVyeXRoaW5nIHRoYXQgaGFzIGEgc2Vuc2libGUgdW5pdmVyc2FsIHZhbHVlLlxuICogVmFsdWVzIG1pcnJvciB0aGUga3VwNnMgcHJvZHVjdGlvbiBjb25maWcgYXQgdGhlIHRpbWUgb2YgZXh0cmFjdGlvbjsgaW50ZWdyYXRpb25cbiAqIGNoYXJ0cyBvdmVycmlkZSBvbmx5IHdoYXQgdGhleSBuZWVkIHZpYSB7QGxpbmsgbWVyZ2VDb25maWd9LlxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9DT05GSUc6IERlZmF1bHRhYmxlQ29uZmlnID0ge1xuICB2ZXJzaW9uczoge1xuICAgIHByb21ldGhldXNTdGFjazogJzg3LjAuMCcsXG4gICAgbG9raTogJzcuMC4wJyxcbiAgICBhbGxveTogJzEuMTAuMCcsXG4gICAgdGhhbm9zOiAndjAuNDEuMCcsXG4gIH0sXG4gIHJldGVudGlvbjoge1xuICAgIHByb21ldGhldXM6ICcyZCcsXG4gICAgcHJvbWV0aGV1c1MzUmF3OiAzMCxcbiAgICBwcm9tZXRoZXVzUzM1bTogMTgwLFxuICAgIHByb21ldGhldXNTMzFoOiA3MzAsXG4gICAgbG9raTogJzc0NGgnLFxuICB9LFxuICBzdG9yYWdlOiB7XG4gICAgcHJvbWV0aGV1czogJzE1R2knLFxuICAgIGdyYWZhbmE6ICc1R2knLFxuICAgIGFsZXJ0bWFuYWdlcjogJzFHaScsXG4gICAgbG9raUJhY2tlbmQ6ICcxMEdpJyxcbiAgICBsb2tpV3JpdGU6ICczR2knLFxuICAgIHRoYW5vc1N0b3JlOiAnMTBHaScsXG4gICAgdGhhbm9zQ29tcGFjdG9yOiAnMjBHaScsXG4gIH0sXG4gIHJlcGxpY2FzOiB7XG4gICAgcHJvbWV0aGV1czogMixcbiAgICBhbGVydG1hbmFnZXI6IDIsXG4gICAgZ3JhZmFuYTogMSxcbiAgICBsb2tpQmFja2VuZDogMixcbiAgICBsb2tpUmVhZDogMixcbiAgICBsb2tpV3JpdGU6IDIsXG4gICAgdGhhbm9zUXVlcnk6IDIsXG4gICAgdGhhbm9zU3RvcmU6IDIsXG4gIH0sXG4gIHJlc291cmNlczoge1xuICAgIHByb21ldGhldXM6IHsgcmVxdWVzdHM6IHsgY3B1OiAnMTAwbScsIG1lbW9yeTogJzE1MDBNaScgfSwgbGltaXRzOiB7IGNwdTogJzInLCBtZW1vcnk6ICczMDAwTWknIH0gfSxcbiAgICBncmFmYW5hOiB7IHJlcXVlc3RzOiB7IGNwdTogJzUwbScsIG1lbW9yeTogJzUxMk1pJyB9LCBsaW1pdHM6IHsgY3B1OiAnMjAwbScsIG1lbW9yeTogJzFHaScgfSB9LFxuICAgIGFsZXJ0bWFuYWdlcjogeyByZXF1ZXN0czogeyBjcHU6ICcyNW0nLCBtZW1vcnk6ICcxMDBNaScgfSwgbGltaXRzOiB7IGNwdTogJzEwMG0nLCBtZW1vcnk6ICcyMDBNaScgfSB9LFxuICAgIGxva2lCYWNrZW5kOiB7IHJlcXVlc3RzOiB7IGNwdTogJzEwMG0nLCBtZW1vcnk6ICcyNTZNaScgfSwgbGltaXRzOiB7IGNwdTogJzUwMG0nLCBtZW1vcnk6ICc1MTJNaScgfSB9LFxuICAgIGxva2lSZWFkOiB7IHJlcXVlc3RzOiB7IGNwdTogJzEwMG0nLCBtZW1vcnk6ICcyNTZNaScgfSwgbGltaXRzOiB7IGNwdTogJzUwMG0nLCBtZW1vcnk6ICc1MTJNaScgfSB9LFxuICAgIGxva2lXcml0ZTogeyByZXF1ZXN0czogeyBjcHU6ICcxMDBtJywgbWVtb3J5OiAnNTEyTWknIH0sIGxpbWl0czogeyBjcHU6ICcxJywgbWVtb3J5OiAnMUdpJyB9IH0sXG4gICAgbG9raUdhdGV3YXk6IHsgcmVxdWVzdHM6IHsgY3B1OiAnNTBtJywgbWVtb3J5OiAnMTI4TWknIH0sIGxpbWl0czogeyBjcHU6ICcyMDBtJywgbWVtb3J5OiAnMjU2TWknIH0gfSxcbiAgICBhbGxveTogeyByZXF1ZXN0czogeyBjcHU6ICcxMDBtJywgbWVtb3J5OiAnMTI4TWknIH0sIGxpbWl0czogeyBjcHU6ICcyMDBtJywgbWVtb3J5OiAnMjU2TWknIH0gfSxcbiAgICB0aGFub3NRdWVyeTogeyByZXF1ZXN0czogeyBjcHU6ICcyMDBtJywgbWVtb3J5OiAnNTEyTWknIH0sIGxpbWl0czogeyBjcHU6ICcxMDAwbScsIG1lbW9yeTogJzFHaScgfSB9LFxuICAgIHRoYW5vc1N0b3JlOiB7IHJlcXVlc3RzOiB7IGNwdTogJzIwMG0nLCBtZW1vcnk6ICcxR2knIH0sIGxpbWl0czogeyBjcHU6ICcxMDAwbScsIG1lbW9yeTogJzJHaScgfSB9LFxuICAgIHRoYW5vc0NvbXBhY3RvcjogeyByZXF1ZXN0czogeyBjcHU6ICc1MDBtJywgbWVtb3J5OiAnMkdpJyB9LCBsaW1pdHM6IHsgY3B1OiAnMjAwMG0nLCBtZW1vcnk6ICc0R2knIH0gfSxcbiAgICBjb25maWdSZWxvYWRlcjogeyByZXF1ZXN0czogeyBjcHU6ICcxMG0nLCBtZW1vcnk6ICc1ME1pJyB9LCBsaW1pdHM6IHsgY3B1OiAnNTBtJywgbWVtb3J5OiAnMTAwTWknIH0gfSxcbiAgICB0aGFub3NTaWRlY2FyOiB7IHJlcXVlc3RzOiB7IGNwdTogJzEwbScsIG1lbW9yeTogJzUwTWknIH0sIGxpbWl0czogeyBjcHU6ICcxMDBtJywgbWVtb3J5OiAnMTAwTWknIH0gfSxcbiAgfSxcbn07XG5cbi8qKlxuICogUmVzb2x2ZSBhIGZ1bGwgTW9uaXRvcmluZ0NvbmZpZyBieSBkZWVwLW1lcmdpbmcgdGhlIGNhbGxlcidzIG92ZXJyaWRlcyBvdmVyXG4gKiBERUZBVUxUX0NPTkZJRy4gUmVxdWlyZWQgY2x1c3RlciB2YWx1ZXMgYXJlIHBhc3NlZCB0aHJvdWdoIHZlcmJhdGltLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VDb25maWcoaW5wdXQ6IE1vbml0b3JpbmdDb25maWdJbnB1dCk6IE1vbml0b3JpbmdDb25maWcge1xuICByZXR1cm4ge1xuICAgIG5hbWVzcGFjZTogaW5wdXQubmFtZXNwYWNlLFxuICAgIGRvbWFpbnM6IGlucHV0LmRvbWFpbnMsXG4gICAgczM6IGlucHV0LnMzLFxuICAgIHNtdHA6IGlucHV0LnNtdHAsXG4gICAgaW50ZWdyYXRpb25zOiBpbnB1dC5pbnRlZ3JhdGlvbnMsXG4gICAgdmVyc2lvbnM6IGRlZXBtZXJnZShERUZBVUxUX0NPTkZJRy52ZXJzaW9ucywgaW5wdXQudmVyc2lvbnMgPz8ge30pIGFzIFZlcnNpb25Db25maWcsXG4gICAgcmV0ZW50aW9uOiBkZWVwbWVyZ2UoREVGQVVMVF9DT05GSUcucmV0ZW50aW9uLCBpbnB1dC5yZXRlbnRpb24gPz8ge30pIGFzIFJldGVudGlvbkNvbmZpZyxcbiAgICBzdG9yYWdlOiBkZWVwbWVyZ2UoREVGQVVMVF9DT05GSUcuc3RvcmFnZSwgaW5wdXQuc3RvcmFnZSA/PyB7fSkgYXMgU3RvcmFnZUNvbmZpZyxcbiAgICByZXBsaWNhczogZGVlcG1lcmdlKERFRkFVTFRfQ09ORklHLnJlcGxpY2FzLCBpbnB1dC5yZXBsaWNhcyA/PyB7fSkgYXMgUmVwbGljYUNvbmZpZyxcbiAgICByZXNvdXJjZXM6IGRlZXBtZXJnZShERUZBVUxUX0NPTkZJRy5yZXNvdXJjZXMsIGlucHV0LnJlc291cmNlcyA/PyB7fSkgYXMgUmVzb3VyY2VDb25maWcsXG4gIH07XG59XG4iXX0=
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGVmYXVsdC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBNEVBLGtDQWtCQztBQTlGRCwrQ0FBeUM7QUFNekM7Ozs7R0FJRztBQUNVLFFBQUEsY0FBYyxHQUFzQjtJQUMvQyxRQUFRLEVBQUU7UUFDUixlQUFlLEVBQUUsUUFBUTtRQUN6QixJQUFJLEVBQUUsT0FBTztRQUNiLEtBQUssRUFBRSxRQUFRO1FBQ2YsTUFBTSxFQUFFLFNBQVM7UUFDakIsS0FBSyxFQUFFLFFBQVEsRUFBRSx3Q0FBd0M7S0FDMUQ7SUFDRCxTQUFTLEVBQUU7UUFDVCxVQUFVLEVBQUUsSUFBSTtRQUNoQixlQUFlLEVBQUUsRUFBRTtRQUNuQixjQUFjLEVBQUUsR0FBRztRQUNuQixjQUFjLEVBQUUsR0FBRztRQUNuQixJQUFJLEVBQUUsTUFBTTtLQUNiO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsVUFBVSxFQUFFLE1BQU07UUFDbEIsT0FBTyxFQUFFLEtBQUs7UUFDZCxZQUFZLEVBQUUsS0FBSztRQUNuQixXQUFXLEVBQUUsTUFBTTtRQUNuQixTQUFTLEVBQUUsS0FBSztRQUNoQixXQUFXLEVBQUUsTUFBTTtRQUNuQixlQUFlLEVBQUUsTUFBTTtRQUN2QixLQUFLLEVBQUUsS0FBSztLQUNiO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsVUFBVSxFQUFFLENBQUM7UUFDYixZQUFZLEVBQUUsQ0FBQztRQUNmLE9BQU8sRUFBRSxDQUFDO1FBQ1YsV0FBVyxFQUFFLENBQUM7UUFDZCxRQUFRLEVBQUUsQ0FBQztRQUNYLFNBQVMsRUFBRSxDQUFDO1FBQ1osV0FBVyxFQUFFLENBQUM7UUFDZCxXQUFXLEVBQUUsQ0FBQztRQUNkLEtBQUssRUFBRSxDQUFDO0tBQ1Q7SUFDRCxTQUFTLEVBQUU7UUFDVCxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRTtRQUNuRyxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUM5RixZQUFZLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUNyRyxXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUNyRyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUNsRyxTQUFTLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUM5RixXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUNwRyxLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUMvRixXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUNwRyxXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUNsRyxlQUFlLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUN0RyxjQUFjLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUNyRyxhQUFhLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUNyRyxLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUMxRixXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtLQUN0RztJQUNELEtBQUssRUFBRTtRQUNMLE9BQU8sRUFBRSxLQUFLO1FBQ2QsTUFBTSxFQUFFLEVBQUU7UUFDVixTQUFTLEVBQUUsTUFBTTtRQUNqQixZQUFZLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxFQUFFO0tBQ3JFO0NBQ0YsQ0FBQztBQUVGOzs7R0FHRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxLQUE0QjtJQUN0RCxNQUFNLEtBQUssR0FBRyxJQUFBLHdCQUFTLEVBQUMsc0JBQWMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQWdCLENBQUM7SUFDaEYsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBQ0QsT0FBTztRQUNMLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztRQUMxQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87UUFDdEIsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFO1FBQ1osSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1FBQ2hCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtRQUNoQyxRQUFRLEVBQUUsSUFBQSx3QkFBUyxFQUFDLHNCQUFjLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFrQjtRQUNuRixTQUFTLEVBQUUsSUFBQSx3QkFBUyxFQUFDLHNCQUFjLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFvQjtRQUN4RixPQUFPLEVBQUUsSUFBQSx3QkFBUyxFQUFDLHNCQUFjLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFrQjtRQUNoRixRQUFRLEVBQUUsSUFBQSx3QkFBUyxFQUFDLHNCQUFjLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFrQjtRQUNuRixTQUFTLEVBQUUsSUFBQSx3QkFBUyxFQUFDLHNCQUFjLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFtQjtRQUN2RixLQUFLO0tBQ04sQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWVwbWVyZ2UgfSBmcm9tICdkZWVwbWVyZ2UtdHMnO1xuaW1wb3J0IHtcbiAgRGVmYXVsdGFibGVDb25maWcsIE1vbml0b3JpbmdDb25maWcsIE1vbml0b3JpbmdDb25maWdJbnB1dCxcbiAgVmVyc2lvbkNvbmZpZywgUmV0ZW50aW9uQ29uZmlnLCBTdG9yYWdlQ29uZmlnLCBSZXBsaWNhQ29uZmlnLCBSZXNvdXJjZUNvbmZpZywgVGVtcG9Db25maWcsXG59IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFBhY2thZ2Utc2hpcHBlZCBkZWZhdWx0cyBmb3IgZXZlcnl0aGluZyB0aGF0IGhhcyBhIHNlbnNpYmxlIHVuaXZlcnNhbCB2YWx1ZS5cbiAqIFZhbHVlcyBtaXJyb3IgdGhlIGt1cDZzIHByb2R1Y3Rpb24gY29uZmlnIGF0IHRoZSB0aW1lIG9mIGV4dHJhY3Rpb247IGludGVncmF0aW9uXG4gKiBjaGFydHMgb3ZlcnJpZGUgb25seSB3aGF0IHRoZXkgbmVlZCB2aWEge0BsaW5rIG1lcmdlQ29uZmlnfS5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ09ORklHOiBEZWZhdWx0YWJsZUNvbmZpZyA9IHtcbiAgdmVyc2lvbnM6IHtcbiAgICBwcm9tZXRoZXVzU3RhY2s6ICc4Ny4wLjAnLFxuICAgIGxva2k6ICc3LjAuMCcsXG4gICAgYWxsb3k6ICcxLjEwLjAnLFxuICAgIHRoYW5vczogJ3YwLjQxLjAnLFxuICAgIHRlbXBvOiAnMS4yNC40JywgLy8gZ3JhZmFuYS90ZW1wbyBjaGFydCAoVGVtcG8gYXBwIDIuOS4wKVxuICB9LFxuICByZXRlbnRpb246IHtcbiAgICBwcm9tZXRoZXVzOiAnMmQnLFxuICAgIHByb21ldGhldXNTM1JhdzogMzAsXG4gICAgcHJvbWV0aGV1c1MzNW06IDE4MCxcbiAgICBwcm9tZXRoZXVzUzMxaDogNzMwLFxuICAgIGxva2k6ICc3NDRoJyxcbiAgfSxcbiAgc3RvcmFnZToge1xuICAgIHByb21ldGhldXM6ICcxNUdpJyxcbiAgICBncmFmYW5hOiAnNUdpJyxcbiAgICBhbGVydG1hbmFnZXI6ICcxR2knLFxuICAgIGxva2lCYWNrZW5kOiAnMTBHaScsXG4gICAgbG9raVdyaXRlOiAnM0dpJyxcbiAgICB0aGFub3NTdG9yZTogJzEwR2knLFxuICAgIHRoYW5vc0NvbXBhY3RvcjogJzIwR2knLFxuICAgIHRlbXBvOiAnNUdpJyxcbiAgfSxcbiAgcmVwbGljYXM6IHtcbiAgICBwcm9tZXRoZXVzOiAyLFxuICAgIGFsZXJ0bWFuYWdlcjogMixcbiAgICBncmFmYW5hOiAxLFxuICAgIGxva2lCYWNrZW5kOiAyLFxuICAgIGxva2lSZWFkOiAyLFxuICAgIGxva2lXcml0ZTogMixcbiAgICB0aGFub3NRdWVyeTogMixcbiAgICB0aGFub3NTdG9yZTogMixcbiAgICB0ZW1wbzogMSxcbiAgfSxcbiAgcmVzb3VyY2VzOiB7XG4gICAgcHJvbWV0aGV1czogeyByZXF1ZXN0czogeyBjcHU6ICcxMDBtJywgbWVtb3J5OiAnMTUwME1pJyB9LCBsaW1pdHM6IHsgY3B1OiAnMicsIG1lbW9yeTogJzMwMDBNaScgfSB9LFxuICAgIGdyYWZhbmE6IHsgcmVxdWVzdHM6IHsgY3B1OiAnNTBtJywgbWVtb3J5OiAnNTEyTWknIH0sIGxpbWl0czogeyBjcHU6ICcyMDBtJywgbWVtb3J5OiAnMUdpJyB9IH0sXG4gICAgYWxlcnRtYW5hZ2VyOiB7IHJlcXVlc3RzOiB7IGNwdTogJzI1bScsIG1lbW9yeTogJzEwME1pJyB9LCBsaW1pdHM6IHsgY3B1OiAnMTAwbScsIG1lbW9yeTogJzIwME1pJyB9IH0sXG4gICAgbG9raUJhY2tlbmQ6IHsgcmVxdWVzdHM6IHsgY3B1OiAnMTAwbScsIG1lbW9yeTogJzI1Nk1pJyB9LCBsaW1pdHM6IHsgY3B1OiAnNTAwbScsIG1lbW9yeTogJzUxMk1pJyB9IH0sXG4gICAgbG9raVJlYWQ6IHsgcmVxdWVzdHM6IHsgY3B1OiAnMTAwbScsIG1lbW9yeTogJzI1Nk1pJyB9LCBsaW1pdHM6IHsgY3B1OiAnNTAwbScsIG1lbW9yeTogJzUxMk1pJyB9IH0sXG4gICAgbG9raVdyaXRlOiB7IHJlcXVlc3RzOiB7IGNwdTogJzEwMG0nLCBtZW1vcnk6ICc1MTJNaScgfSwgbGltaXRzOiB7IGNwdTogJzEnLCBtZW1vcnk6ICcxR2knIH0gfSxcbiAgICBsb2tpR2F0ZXdheTogeyByZXF1ZXN0czogeyBjcHU6ICc1MG0nLCBtZW1vcnk6ICcxMjhNaScgfSwgbGltaXRzOiB7IGNwdTogJzIwMG0nLCBtZW1vcnk6ICcyNTZNaScgfSB9LFxuICAgIGFsbG95OiB7IHJlcXVlc3RzOiB7IGNwdTogJzEwMG0nLCBtZW1vcnk6ICcxMjhNaScgfSwgbGltaXRzOiB7IGNwdTogJzIwMG0nLCBtZW1vcnk6ICcyNTZNaScgfSB9LFxuICAgIHRoYW5vc1F1ZXJ5OiB7IHJlcXVlc3RzOiB7IGNwdTogJzIwMG0nLCBtZW1vcnk6ICc1MTJNaScgfSwgbGltaXRzOiB7IGNwdTogJzEwMDBtJywgbWVtb3J5OiAnMUdpJyB9IH0sXG4gICAgdGhhbm9zU3RvcmU6IHsgcmVxdWVzdHM6IHsgY3B1OiAnMjAwbScsIG1lbW9yeTogJzFHaScgfSwgbGltaXRzOiB7IGNwdTogJzEwMDBtJywgbWVtb3J5OiAnMkdpJyB9IH0sXG4gICAgdGhhbm9zQ29tcGFjdG9yOiB7IHJlcXVlc3RzOiB7IGNwdTogJzUwMG0nLCBtZW1vcnk6ICcyR2knIH0sIGxpbWl0czogeyBjcHU6ICcyMDAwbScsIG1lbW9yeTogJzRHaScgfSB9LFxuICAgIGNvbmZpZ1JlbG9hZGVyOiB7IHJlcXVlc3RzOiB7IGNwdTogJzEwbScsIG1lbW9yeTogJzUwTWknIH0sIGxpbWl0czogeyBjcHU6ICc1MG0nLCBtZW1vcnk6ICcxMDBNaScgfSB9LFxuICAgIHRoYW5vc1NpZGVjYXI6IHsgcmVxdWVzdHM6IHsgY3B1OiAnMTBtJywgbWVtb3J5OiAnNTBNaScgfSwgbGltaXRzOiB7IGNwdTogJzEwMG0nLCBtZW1vcnk6ICcxMDBNaScgfSB9LFxuICAgIHRlbXBvOiB7IHJlcXVlc3RzOiB7IGNwdTogJzEwMG0nLCBtZW1vcnk6ICcyNTZNaScgfSwgbGltaXRzOiB7IGNwdTogJzEnLCBtZW1vcnk6ICcxR2knIH0gfSxcbiAgICBhbGxveVRyYWNlczogeyByZXF1ZXN0czogeyBjcHU6ICcxMDBtJywgbWVtb3J5OiAnMjU2TWknIH0sIGxpbWl0czogeyBjcHU6ICc1MDBtJywgbWVtb3J5OiAnNTEyTWknIH0gfSxcbiAgfSxcbiAgdGVtcG86IHtcbiAgICBlbmFibGVkOiBmYWxzZSxcbiAgICBidWNrZXQ6ICcnLFxuICAgIHJldGVudGlvbjogJzMzNmgnLFxuICAgIHRhaWxTYW1wbGluZzogeyBsYXRlbmN5VGhyZXNob2xkTXM6IDEwMDAsIHByb2JhYmlsaXN0aWNQZXJjZW50OiAxMCB9LFxuICB9LFxufTtcblxuLyoqXG4gKiBSZXNvbHZlIGEgZnVsbCBNb25pdG9yaW5nQ29uZmlnIGJ5IGRlZXAtbWVyZ2luZyB0aGUgY2FsbGVyJ3Mgb3ZlcnJpZGVzIG92ZXJcbiAqIERFRkFVTFRfQ09ORklHLiBSZXF1aXJlZCBjbHVzdGVyIHZhbHVlcyBhcmUgcGFzc2VkIHRocm91Z2ggdmVyYmF0aW0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZUNvbmZpZyhpbnB1dDogTW9uaXRvcmluZ0NvbmZpZ0lucHV0KTogTW9uaXRvcmluZ0NvbmZpZyB7XG4gIGNvbnN0IHRlbXBvID0gZGVlcG1lcmdlKERFRkFVTFRfQ09ORklHLnRlbXBvLCBpbnB1dC50ZW1wbyA/PyB7fSkgYXMgVGVtcG9Db25maWc7XG4gIGlmICh0ZW1wby5lbmFibGVkICYmICF0ZW1wby5idWNrZXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3RlbXBvLmJ1Y2tldCBpcyByZXF1aXJlZCB3aGVuIHRlbXBvLmVuYWJsZWQgaXMgdHJ1ZScpO1xuICB9XG4gIHJldHVybiB7XG4gICAgbmFtZXNwYWNlOiBpbnB1dC5uYW1lc3BhY2UsXG4gICAgZG9tYWluczogaW5wdXQuZG9tYWlucyxcbiAgICBzMzogaW5wdXQuczMsXG4gICAgc210cDogaW5wdXQuc210cCxcbiAgICBpbnRlZ3JhdGlvbnM6IGlucHV0LmludGVncmF0aW9ucyxcbiAgICB2ZXJzaW9uczogZGVlcG1lcmdlKERFRkFVTFRfQ09ORklHLnZlcnNpb25zLCBpbnB1dC52ZXJzaW9ucyA/PyB7fSkgYXMgVmVyc2lvbkNvbmZpZyxcbiAgICByZXRlbnRpb246IGRlZXBtZXJnZShERUZBVUxUX0NPTkZJRy5yZXRlbnRpb24sIGlucHV0LnJldGVudGlvbiA/PyB7fSkgYXMgUmV0ZW50aW9uQ29uZmlnLFxuICAgIHN0b3JhZ2U6IGRlZXBtZXJnZShERUZBVUxUX0NPTkZJRy5zdG9yYWdlLCBpbnB1dC5zdG9yYWdlID8/IHt9KSBhcyBTdG9yYWdlQ29uZmlnLFxuICAgIHJlcGxpY2FzOiBkZWVwbWVyZ2UoREVGQVVMVF9DT05GSUcucmVwbGljYXMsIGlucHV0LnJlcGxpY2FzID8/IHt9KSBhcyBSZXBsaWNhQ29uZmlnLFxuICAgIHJlc291cmNlczogZGVlcG1lcmdlKERFRkFVTFRfQ09ORklHLnJlc291cmNlcywgaW5wdXQucmVzb3VyY2VzID8/IHt9KSBhcyBSZXNvdXJjZUNvbmZpZyxcbiAgICB0ZW1wbyxcbiAgfTtcbn1cbiJdfQ==
|
package/lib/index.d.ts
CHANGED
|
@@ -15,3 +15,7 @@ export * from './constructs/alloy';
|
|
|
15
15
|
export * from './constructs/thanos-query';
|
|
16
16
|
export * from './constructs/thanos-store';
|
|
17
17
|
export * from './constructs/thanos-compactor';
|
|
18
|
+
export * from './constructs/tempo-s3-bucket';
|
|
19
|
+
export * from './constructs/tempo-s3-credentials';
|
|
20
|
+
export * from './constructs/tempo';
|
|
21
|
+
export * from './constructs/alloy-traces';
|
package/lib/index.js
CHANGED
|
@@ -35,4 +35,8 @@ __exportStar(require("./constructs/alloy"), exports);
|
|
|
35
35
|
__exportStar(require("./constructs/thanos-query"), exports);
|
|
36
36
|
__exportStar(require("./constructs/thanos-store"), exports);
|
|
37
37
|
__exportStar(require("./constructs/thanos-compactor"), exports);
|
|
38
|
-
|
|
38
|
+
__exportStar(require("./constructs/tempo-s3-bucket"), exports);
|
|
39
|
+
__exportStar(require("./constructs/tempo-s3-credentials"), exports);
|
|
40
|
+
__exportStar(require("./constructs/tempo"), exports);
|
|
41
|
+
__exportStar(require("./constructs/alloy-traces"), exports);
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwQ0FBd0I7QUFDeEIsbURBQWlDO0FBQ2pDLHFEQUFtQztBQUNuQyw2RUFBNkU7QUFDN0UsbUZBQW1GO0FBQ25GLHFDQUE4QztBQUFyQyxvR0FBQSxhQUFhLE9BQUE7QUFDdEIseURBQXVDO0FBQ3ZDLDhEQUE0QztBQUM1QyxnRUFBOEM7QUFDOUMsOERBQTRDO0FBQzVDLHFFQUFtRDtBQUNuRCxtRUFBaUQ7QUFDakQsdUVBQXFEO0FBQ3JELGdFQUE4QztBQUM5QyxvREFBa0M7QUFDbEMscURBQW1DO0FBQ25DLDREQUEwQztBQUMxQyw0REFBMEM7QUFDMUMsZ0VBQThDO0FBQzlDLCtEQUE2QztBQUM3QyxvRUFBa0Q7QUFDbEQscURBQW1DO0FBQ25DLDREQUEwQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWZhdWx0LWNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL21vbml0b3JpbmctY2hhcnQnO1xuLy8gQ29udmVuaWVuY2UgcmUtZXhwb3J0IHNvIGludGVncmF0aW9uIGNoYXJ0cyBjYW4gYnVpbGQgZGFzaGJvYXJkIENvbmZpZ01hcHNcbi8vIChHcmFmYW5hIHNpZGVjYXIgZGlzY292ZXJ5KSB3aXRob3V0IGRlcGVuZGluZyBvbiB0aGUgZ2VuZXJhdGVkIGltcG9ydHMgZGlyZWN0bHkuXG5leHBvcnQgeyBLdWJlQ29uZmlnTWFwIH0gZnJvbSAnLi9pbXBvcnRzL2s4cyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnN0cnVjdHMvbmFtZXNwYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29uc3RydWN0cy9wcmlvcml0eS1jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnN0cnVjdHMvdGhhbm9zLXMzLWJ1Y2tldCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnN0cnVjdHMvbG9raS1zMy1idWNrZXQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdHJ1Y3RzL3RoYW5vcy1zMy1jcmVkZW50aWFscyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnN0cnVjdHMvbG9raS1zMy1jcmVkZW50aWFscyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnN0cnVjdHMvZ3JhZmFuYS1wYXNzd29yZC1zZWNyZXQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdHJ1Y3RzL3Byb21ldGhldXMtc3RhY2snO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdHJ1Y3RzL2xva2knO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdHJ1Y3RzL2FsbG95JztcbmV4cG9ydCAqIGZyb20gJy4vY29uc3RydWN0cy90aGFub3MtcXVlcnknO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdHJ1Y3RzL3RoYW5vcy1zdG9yZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnN0cnVjdHMvdGhhbm9zLWNvbXBhY3Rvcic7XG5leHBvcnQgKiBmcm9tICcuL2NvbnN0cnVjdHMvdGVtcG8tczMtYnVja2V0JztcbmV4cG9ydCAqIGZyb20gJy4vY29uc3RydWN0cy90ZW1wby1zMy1jcmVkZW50aWFscyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnN0cnVjdHMvdGVtcG8nO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdHJ1Y3RzL2FsbG95LXRyYWNlcyc7XG4iXX0=
|
package/lib/monitoring-chart.js
CHANGED
|
@@ -4,6 +4,7 @@ exports.MonitoringChart = void 0;
|
|
|
4
4
|
const cdk8s_1 = require("cdk8s");
|
|
5
5
|
// Import all constructs
|
|
6
6
|
const alloy_1 = require("./constructs/alloy");
|
|
7
|
+
const alloy_traces_1 = require("./constructs/alloy-traces");
|
|
7
8
|
const grafana_password_secret_1 = require("./constructs/grafana-password-secret");
|
|
8
9
|
const loki_1 = require("./constructs/loki");
|
|
9
10
|
const loki_s3_bucket_1 = require("./constructs/loki-s3-bucket");
|
|
@@ -11,6 +12,9 @@ const loki_s3_credentials_1 = require("./constructs/loki-s3-credentials");
|
|
|
11
12
|
const namespace_1 = require("./constructs/namespace");
|
|
12
13
|
const priority_class_1 = require("./constructs/priority-class");
|
|
13
14
|
const prometheus_stack_1 = require("./constructs/prometheus-stack");
|
|
15
|
+
const tempo_1 = require("./constructs/tempo");
|
|
16
|
+
const tempo_s3_bucket_1 = require("./constructs/tempo-s3-bucket");
|
|
17
|
+
const tempo_s3_credentials_1 = require("./constructs/tempo-s3-credentials");
|
|
14
18
|
const thanos_compactor_1 = require("./constructs/thanos-compactor");
|
|
15
19
|
const thanos_query_1 = require("./constructs/thanos-query");
|
|
16
20
|
const thanos_s3_bucket_1 = require("./constructs/thanos-s3-bucket");
|
|
@@ -122,7 +126,25 @@ class MonitoringChart extends cdk8s_1.Chart {
|
|
|
122
126
|
namespace,
|
|
123
127
|
config,
|
|
124
128
|
});
|
|
129
|
+
// =========================================================================
|
|
130
|
+
// Tempo tracing (opt-in)
|
|
131
|
+
// =========================================================================
|
|
132
|
+
// Only created when config.tempo.enabled is true. Apps send OTLP to the
|
|
133
|
+
// alloy-traces gateway, which tail-samples and forwards to Tempo (S3-backed).
|
|
134
|
+
if (config.tempo.enabled) {
|
|
135
|
+
new tempo_s3_bucket_1.TempoS3BucketConstruct(this, 'tempo-s3-bucket', { config });
|
|
136
|
+
const tempoCreds = new tempo_s3_credentials_1.TempoS3CredentialsConstruct(this, 'tempo-s3-credentials', {
|
|
137
|
+
namespace,
|
|
138
|
+
config,
|
|
139
|
+
});
|
|
140
|
+
new tempo_1.TempoConstruct(this, 'tempo', {
|
|
141
|
+
namespace,
|
|
142
|
+
config,
|
|
143
|
+
s3CredentialsSecretName: tempoCreds.secretName,
|
|
144
|
+
});
|
|
145
|
+
new alloy_traces_1.AlloyTracesConstruct(this, 'alloy-traces', { namespace, config });
|
|
146
|
+
}
|
|
125
147
|
}
|
|
126
148
|
}
|
|
127
149
|
exports.MonitoringChart = MonitoringChart;
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uaXRvcmluZy1jaGFydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tb25pdG9yaW5nLWNoYXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUEwQztBQUcxQyx3QkFBd0I7QUFDeEIsOENBQW9EO0FBQ3BELGtGQUE2RTtBQUM3RSw0Q0FBa0Q7QUFDbEQsZ0VBQW9FO0FBQ3BFLDBFQUE4RTtBQUM5RSxzREFBNEQ7QUFDNUQsZ0VBQXFFO0FBQ3JFLG9FQUF5RTtBQUN6RSxvRUFBeUU7QUFDekUsNERBQWlFO0FBQ2pFLG9FQUF3RTtBQUN4RSw4RUFBa0Y7QUFDbEYsNERBQWlFO0FBR2pFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JHO0FBQ0gsTUFBYSxlQUFnQixTQUFRLGFBQUs7SUFDeEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBVyxNQUF3QixFQUFFLFFBQW9CLEVBQUU7UUFDakcsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFEeUIsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7UUFHekUsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUVuQyw0RUFBNEU7UUFDNUUscUJBQXFCO1FBQ3JCLDRFQUE0RTtRQUM1RSx3Q0FBd0M7UUFDeEMsSUFBSSw4QkFBa0IsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQ3hDLElBQUksRUFBRSxTQUFTO1NBQ2hCLENBQUMsQ0FBQztRQUVILElBQUksdUNBQXNCLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFFbkQsNEVBQTRFO1FBQzVFLGdDQUFnQztRQUNoQyw0RUFBNEU7UUFDNUUsNERBQTREO1FBQzVELElBQUksMENBQXVCLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1lBQ3BELE1BQU07U0FDUCxDQUFDLENBQUM7UUFFSCxJQUFJLHNDQUFxQixDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtZQUNoRCxNQUFNO1NBQ1AsQ0FBQyxDQUFDO1FBRUgsNENBQTRDO1FBQzVDLElBQUksb0RBQTRCLENBQUMsSUFBSSxFQUFFLHVCQUF1QixFQUFFO1lBQzlELFNBQVM7WUFDVCxNQUFNO1NBQ1AsQ0FBQyxDQUFDO1FBRUgsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGdEQUEwQixDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRTtZQUNwRixTQUFTO1lBQ1QsTUFBTTtTQUNQLENBQUMsQ0FBQztRQUVILG1FQUFtRTtRQUNuRSxJQUFJLCtDQUFxQixDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRTtZQUNsRCxTQUFTO1lBQ1QsTUFBTTtTQUNQLENBQUMsQ0FBQztRQUVILDRFQUE0RTtRQUM1RSx3QkFBd0I7UUFDeEIsNEVBQTRFO1FBQzVFLDJFQUEyRTtRQUMzRSxJQUFJLDJDQUF3QixDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRTtZQUNyRCxTQUFTO1lBQ1QsTUFBTTtTQUNQLENBQUMsQ0FBQztRQUVILHlCQUF5QjtRQUN6QixJQUFJLG9CQUFhLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUM5QixTQUFTO1lBQ1QsTUFBTTtZQUNOLHVCQUF1QixFQUFFLGlCQUFpQixDQUFDLFVBQVU7U0FDdEQsQ0FBQyxDQUFDO1FBRUgsNEVBQTRFO1FBQzVFLDRCQUE0QjtRQUM1Qiw0RUFBNEU7UUFDNUUsK0NBQStDO1FBQy9DLElBQUksc0JBQWMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFO1lBQ2hDLFNBQVM7WUFDVCxNQUFNO1NBQ1AsQ0FBQyxDQUFDO1FBRUgscUVBQXFFO1FBQ3JFLElBQUksbUNBQW9CLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTtZQUM3QyxTQUFTO1lBQ1QsTUFBTTtTQUNQLENBQUMsQ0FBQztRQUVILDhEQUE4RDtRQUM5RCxJQUFJLG1DQUFvQixDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDN0MsU0FBUztZQUNULE1BQU07U0FDUCxDQUFDLENBQUM7UUFFSCxvRUFBb0U7UUFDcEUsSUFBSSwyQ0FBd0IsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7WUFDckQsU0FBUztZQUNULE1BQU07U0FDUCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUF4RkQsMENBd0ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhcnQsIENoYXJ0UHJvcHMgfSBmcm9tICdjZGs4cyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuLy8gSW1wb3J0IGFsbCBjb25zdHJ1Y3RzXG5pbXBvcnQgeyBBbGxveUNvbnN0cnVjdCB9IGZyb20gJy4vY29uc3RydWN0cy9hbGxveSc7XG5pbXBvcnQgeyBHcmFmYW5hUGFzc3dvcmRTZWNyZXQgfSBmcm9tICcuL2NvbnN0cnVjdHMvZ3JhZmFuYS1wYXNzd29yZC1zZWNyZXQnO1xuaW1wb3J0IHsgTG9raUNvbnN0cnVjdCB9IGZyb20gJy4vY29uc3RydWN0cy9sb2tpJztcbmltcG9ydCB7IExva2lTM0J1Y2tldENvbnN0cnVjdCB9IGZyb20gJy4vY29uc3RydWN0cy9sb2tpLXMzLWJ1Y2tldCc7XG5pbXBvcnQgeyBMb2tpUzNDcmVkZW50aWFsc0NvbnN0cnVjdCB9IGZyb20gJy4vY29uc3RydWN0cy9sb2tpLXMzLWNyZWRlbnRpYWxzJztcbmltcG9ydCB7IE5hbWVzcGFjZUNvbnN0cnVjdCB9IGZyb20gJy4vY29uc3RydWN0cy9uYW1lc3BhY2UnO1xuaW1wb3J0IHsgUHJpb3JpdHlDbGFzc0NvbnN0cnVjdCB9IGZyb20gJy4vY29uc3RydWN0cy9wcmlvcml0eS1jbGFzcyc7XG5pbXBvcnQgeyBQcm9tZXRoZXVzU3RhY2tDb25zdHJ1Y3QgfSBmcm9tICcuL2NvbnN0cnVjdHMvcHJvbWV0aGV1cy1zdGFjayc7XG5pbXBvcnQgeyBUaGFub3NDb21wYWN0b3JDb25zdHJ1Y3QgfSBmcm9tICcuL2NvbnN0cnVjdHMvdGhhbm9zLWNvbXBhY3Rvcic7XG5pbXBvcnQgeyBUaGFub3NRdWVyeUNvbnN0cnVjdCB9IGZyb20gJy4vY29uc3RydWN0cy90aGFub3MtcXVlcnknO1xuaW1wb3J0IHsgVGhhbm9zUzNCdWNrZXRDb25zdHJ1Y3QgfSBmcm9tICcuL2NvbnN0cnVjdHMvdGhhbm9zLXMzLWJ1Y2tldCc7XG5pbXBvcnQgeyBUaGFub3NTM0NyZWRlbnRpYWxzQ29uc3RydWN0IH0gZnJvbSAnLi9jb25zdHJ1Y3RzL3RoYW5vcy1zMy1jcmVkZW50aWFscyc7XG5pbXBvcnQgeyBUaGFub3NTdG9yZUNvbnN0cnVjdCB9IGZyb20gJy4vY29uc3RydWN0cy90aGFub3Mtc3RvcmUnO1xuaW1wb3J0IHsgTW9uaXRvcmluZ0NvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIE1vbml0b3JpbmdDaGFydCBvcmNoZXN0cmF0ZXMgdGhlIGNvbXBsZXRlIG1vbml0b3Jpbmcgc3RhY2suXG4gKlxuICogVGhpcyBjaGFydCBjcmVhdGVzIGFsbCByZXNvdXJjZXMgaW4gdGhlIGNvcnJlY3Qgb3JkZXIgdXNpbmcgQXJnb0NEIHN5bmMtd2F2ZXM6XG4gKlxuICogV2F2ZSAwOiBGb3VuZGF0aW9uXG4gKiAtIE5hbWVzcGFjZVxuICogLSBQcmlvcml0eUNsYXNzXG4gKlxuICogV2F2ZSAxOiBFeHRlcm5hbCBEZXBlbmRlbmNpZXNcbiAqIC0gUzMgQnVja2V0cyAoQ3Jvc3NwbGFuZSlcbiAqIC0gUzMgQ3JlZGVudGlhbHMgKEV4dGVybmFsU2VjcmV0KVxuICpcbiAqIFdhdmUgMjogQ29yZSBTZXJ2aWNlc1xuICogLSBQcm9tZXRoZXVzIFN0YWNrIChQcm9tZXRoZXVzLCBHcmFmYW5hLCBBbGVydG1hbmFnZXIpXG4gKiAtIExva2kgKGxvZyBhZ2dyZWdhdGlvbilcbiAqXG4gKiBXYXZlIDM6IEFkdmFuY2VkIFNlcnZpY2VzXG4gKiAtIEFsbG95IChsb2cgY29sbGVjdGlvbilcbiAqIC0gVGhhbm9zIFF1ZXJ5ICh1bmlmaWVkIG1ldHJpY3MgcXVlcnkpXG4gKiAtIFRoYW5vcyBTdG9yZSAoUzMgZ2F0ZXdheSlcbiAqIC0gVGhhbm9zIENvbXBhY3RvciAoZG93bnNhbXBsaW5nKVxuICpcbiAqIEFwcC1zcGVjaWZpYyBkYXNoYm9hcmRzIGFuZCBhbGVydCBydWxlcyBhcmUgaW50ZW50aW9uYWxseSBOT1QgcGFydCBvZiB0aGlzXG4gKiBjaGFydC4gSW50ZWdyYXRpb24gY2hhcnRzIGF0dGFjaCB0aGVpciBvd24gZGFzaGJvYXJkL2FsZXJ0IGNvbnN0cnVjdHMgYmVzaWRlXG4gKiB0aGlzIG9uZSAodGhlIEdyYWZhbmEgc2lkZWNhciBkaXNjb3ZlcnMgQ29uZmlnTWFwcyBsYWJlbGVkXG4gKiBgZ3JhZmFuYV9kYXNoYm9hcmQ6IFwiMVwiYCBpbiB0aGUgc2FtZSBuYW1lc3BhY2UpLlxuICpcbiAqIENvbmZpZ3VyYXRpb24gaXMgcHJvdmlkZWQgdmlhIHRoZSBNb25pdG9yaW5nQ29uZmlnIGludGVyZmFjZSwgd2hpY2ggY29tYmluZXM6XG4gKiAtIGNvbmZpZy55YW1sIChkZWZhdWx0IHZhbHVlcylcbiAqIC0gRW52aXJvbm1lbnQgdmFyaWFibGVzIChvdmVycmlkZXMpXG4gKi9cbmV4cG9ydCBjbGFzcyBNb25pdG9yaW5nQ2hhcnQgZXh0ZW5kcyBDaGFydCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHJlYWRvbmx5IGNvbmZpZzogTW9uaXRvcmluZ0NvbmZpZywgcHJvcHM6IENoYXJ0UHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgY29uc3QgbmFtZXNwYWNlID0gY29uZmlnLm5hbWVzcGFjZTtcblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAvLyBXYXZlIDA6IEZvdW5kYXRpb25cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gTXVzdCBleGlzdCBiZWZvcmUgYW55IG90aGVyIHJlc291cmNlc1xuICAgIG5ldyBOYW1lc3BhY2VDb25zdHJ1Y3QodGhpcywgJ25hbWVzcGFjZScsIHtcbiAgICAgIG5hbWU6IG5hbWVzcGFjZSxcbiAgICB9KTtcblxuICAgIG5ldyBQcmlvcml0eUNsYXNzQ29uc3RydWN0KHRoaXMsICdwcmlvcml0eS1jbGFzcycpO1xuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vIFdhdmUgMTogRXh0ZXJuYWwgRGVwZW5kZW5jaWVzXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vIFMzIGJ1Y2tldHMgbXVzdCBiZSBjcmVhdGVkIGJlZm9yZSBwb2RzIHRyeSB0byBhY2Nlc3MgdGhlbVxuICAgIG5ldyBUaGFub3NTM0J1Y2tldENvbnN0cnVjdCh0aGlzLCAndGhhbm9zLXMzLWJ1Y2tldCcsIHtcbiAgICAgIGNvbmZpZyxcbiAgICB9KTtcblxuICAgIG5ldyBMb2tpUzNCdWNrZXRDb25zdHJ1Y3QodGhpcywgJ2xva2ktczMtYnVja2V0Jywge1xuICAgICAgY29uZmlnLFxuICAgIH0pO1xuXG4gICAgLy8gU2VjcmV0cyBtdXN0IGV4aXN0IGJlZm9yZSBwb2RzIG1vdW50IHRoZW1cbiAgICBuZXcgVGhhbm9zUzNDcmVkZW50aWFsc0NvbnN0cnVjdCh0aGlzLCAndGhhbm9zLXMzLWNyZWRlbnRpYWxzJywge1xuICAgICAgbmFtZXNwYWNlLFxuICAgICAgY29uZmlnLFxuICAgIH0pO1xuXG4gICAgY29uc3QgbG9raVMzQ3JlZGVudGlhbHMgPSBuZXcgTG9raVMzQ3JlZGVudGlhbHNDb25zdHJ1Y3QodGhpcywgJ2xva2ktczMtY3JlZGVudGlhbHMnLCB7XG4gICAgICBuYW1lc3BhY2UsXG4gICAgICBjb25maWcsXG4gICAgfSk7XG5cbiAgICAvLyBHcmFmYW5hIGFkbWluIGNyZWRlbnRpYWxzIChzdGFibGUgcGFzc3dvcmQgYWNyb3NzIEhlbG0gdXBncmFkZXMpXG4gICAgbmV3IEdyYWZhbmFQYXNzd29yZFNlY3JldCh0aGlzLCAnZ3JhZmFuYS1wYXNzd29yZCcsIHtcbiAgICAgIG5hbWVzcGFjZSxcbiAgICAgIGNvbmZpZyxcbiAgICB9KTtcblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAvLyBXYXZlIDI6IENvcmUgU2VydmljZXNcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gUHJvbWV0aGV1cyBTdGFjayAoaW5jbHVkZXMgUHJvbWV0aGV1cywgR3JhZmFuYSwgQWxlcnRtYW5hZ2VyLCBvcGVyYXRvcnMpXG4gICAgbmV3IFByb21ldGhldXNTdGFja0NvbnN0cnVjdCh0aGlzLCAncHJvbWV0aGV1cy1zdGFjaycsIHtcbiAgICAgIG5hbWVzcGFjZSxcbiAgICAgIGNvbmZpZyxcbiAgICB9KTtcblxuICAgIC8vIExva2kgKGxvZyBhZ2dyZWdhdGlvbilcbiAgICBuZXcgTG9raUNvbnN0cnVjdCh0aGlzLCAnbG9raScsIHtcbiAgICAgIG5hbWVzcGFjZSxcbiAgICAgIGNvbmZpZyxcbiAgICAgIHMzQ3JlZGVudGlhbHNTZWNyZXROYW1lOiBsb2tpUzNDcmVkZW50aWFscy5zZWNyZXROYW1lLFxuICAgIH0pO1xuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vIFdhdmUgMzogQWR2YW5jZWQgU2VydmljZXNcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gQWxsb3kgKGxvZyBjb2xsZWN0aW9uIC0gYWZ0ZXIgTG9raSBpcyByZWFkeSlcbiAgICBuZXcgQWxsb3lDb25zdHJ1Y3QodGhpcywgJ2FsbG95Jywge1xuICAgICAgbmFtZXNwYWNlLFxuICAgICAgY29uZmlnLFxuICAgIH0pO1xuXG4gICAgLy8gVGhhbm9zIFF1ZXJ5ICh1bmlmaWVkIHF1ZXJ5IGludGVyZmFjZSAtIGFmdGVyIFByb21ldGhldXMgaXMgcmVhZHkpXG4gICAgbmV3IFRoYW5vc1F1ZXJ5Q29uc3RydWN0KHRoaXMsICd0aGFub3MtcXVlcnknLCB7XG4gICAgICBuYW1lc3BhY2UsXG4gICAgICBjb25maWcsXG4gICAgfSk7XG5cbiAgICAvLyBUaGFub3MgU3RvcmUgKFMzIGdhdGV3YXkgLSBhZnRlciBTMyBidWNrZXQgYW5kIGNyZWRlbnRpYWxzKVxuICAgIG5ldyBUaGFub3NTdG9yZUNvbnN0cnVjdCh0aGlzLCAndGhhbm9zLXN0b3JlJywge1xuICAgICAgbmFtZXNwYWNlLFxuICAgICAgY29uZmlnLFxuICAgIH0pO1xuXG4gICAgLy8gVGhhbm9zIENvbXBhY3RvciAoZG93bnNhbXBsaW5nIC0gYWZ0ZXIgUzMgYnVja2V0IGFuZCBjcmVkZW50aWFscylcbiAgICBuZXcgVGhhbm9zQ29tcGFjdG9yQ29uc3RydWN0KHRoaXMsICd0aGFub3MtY29tcGFjdG9yJywge1xuICAgICAgbmFtZXNwYWNlLFxuICAgICAgY29uZmlnLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uaXRvcmluZy1jaGFydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tb25pdG9yaW5nLWNoYXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUEwQztBQUcxQyx3QkFBd0I7QUFDeEIsOENBQW9EO0FBQ3BELDREQUFpRTtBQUNqRSxrRkFBNkU7QUFDN0UsNENBQWtEO0FBQ2xELGdFQUFvRTtBQUNwRSwwRUFBOEU7QUFDOUUsc0RBQTREO0FBQzVELGdFQUFxRTtBQUNyRSxvRUFBeUU7QUFDekUsOENBQW9EO0FBQ3BELGtFQUFzRTtBQUN0RSw0RUFBZ0Y7QUFDaEYsb0VBQXlFO0FBQ3pFLDREQUFpRTtBQUNqRSxvRUFBd0U7QUFDeEUsOEVBQWtGO0FBQ2xGLDREQUFpRTtBQUdqRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxhQUFLO0lBQ3hDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQVcsTUFBd0IsRUFBRSxRQUFvQixFQUFFO1FBQ2pHLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRHlCLFdBQU0sR0FBTixNQUFNLENBQWtCO1FBR3pFLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFFbkMsNEVBQTRFO1FBQzVFLHFCQUFxQjtRQUNyQiw0RUFBNEU7UUFDNUUsd0NBQXdDO1FBQ3hDLElBQUksOEJBQWtCLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUN4QyxJQUFJLEVBQUUsU0FBUztTQUNoQixDQUFDLENBQUM7UUFFSCxJQUFJLHVDQUFzQixDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBRW5ELDRFQUE0RTtRQUM1RSxnQ0FBZ0M7UUFDaEMsNEVBQTRFO1FBQzVFLDREQUE0RDtRQUM1RCxJQUFJLDBDQUF1QixDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRTtZQUNwRCxNQUFNO1NBQ1AsQ0FBQyxDQUFDO1FBRUgsSUFBSSxzQ0FBcUIsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7WUFDaEQsTUFBTTtTQUNQLENBQUMsQ0FBQztRQUVILDRDQUE0QztRQUM1QyxJQUFJLG9EQUE0QixDQUFDLElBQUksRUFBRSx1QkFBdUIsRUFBRTtZQUM5RCxTQUFTO1lBQ1QsTUFBTTtTQUNQLENBQUMsQ0FBQztRQUVILE1BQU0saUJBQWlCLEdBQUcsSUFBSSxnREFBMEIsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUU7WUFDcEYsU0FBUztZQUNULE1BQU07U0FDUCxDQUFDLENBQUM7UUFFSCxtRUFBbUU7UUFDbkUsSUFBSSwrQ0FBcUIsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7WUFDbEQsU0FBUztZQUNULE1BQU07U0FDUCxDQUFDLENBQUM7UUFFSCw0RUFBNEU7UUFDNUUsd0JBQXdCO1FBQ3hCLDRFQUE0RTtRQUM1RSwyRUFBMkU7UUFDM0UsSUFBSSwyQ0FBd0IsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7WUFDckQsU0FBUztZQUNULE1BQU07U0FDUCxDQUFDLENBQUM7UUFFSCx5QkFBeUI7UUFDekIsSUFBSSxvQkFBYSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDOUIsU0FBUztZQUNULE1BQU07WUFDTix1QkFBdUIsRUFBRSxpQkFBaUIsQ0FBQyxVQUFVO1NBQ3RELENBQUMsQ0FBQztRQUVILDRFQUE0RTtRQUM1RSw0QkFBNEI7UUFDNUIsNEVBQTRFO1FBQzVFLCtDQUErQztRQUMvQyxJQUFJLHNCQUFjLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRTtZQUNoQyxTQUFTO1lBQ1QsTUFBTTtTQUNQLENBQUMsQ0FBQztRQUVILHFFQUFxRTtRQUNyRSxJQUFJLG1DQUFvQixDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDN0MsU0FBUztZQUNULE1BQU07U0FDUCxDQUFDLENBQUM7UUFFSCw4REFBOEQ7UUFDOUQsSUFBSSxtQ0FBb0IsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFO1lBQzdDLFNBQVM7WUFDVCxNQUFNO1NBQ1AsQ0FBQyxDQUFDO1FBRUgsb0VBQW9FO1FBQ3BFLElBQUksMkNBQXdCLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1lBQ3JELFNBQVM7WUFDVCxNQUFNO1NBQ1AsQ0FBQyxDQUFDO1FBRUgsNEVBQTRFO1FBQzVFLHlCQUF5QjtRQUN6Qiw0RUFBNEU7UUFDNUUsd0VBQXdFO1FBQ3hFLDhFQUE4RTtRQUM5RSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDekIsSUFBSSx3Q0FBc0IsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQ2hFLE1BQU0sVUFBVSxHQUFHLElBQUksa0RBQTJCLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFO2dCQUMvRSxTQUFTO2dCQUNULE1BQU07YUFDUCxDQUFDLENBQUM7WUFDSCxJQUFJLHNCQUFjLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRTtnQkFDaEMsU0FBUztnQkFDVCxNQUFNO2dCQUNOLHVCQUF1QixFQUFFLFVBQVUsQ0FBQyxVQUFVO2FBQy9DLENBQUMsQ0FBQztZQUNILElBQUksbUNBQW9CLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUEzR0QsMENBMkdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhcnQsIENoYXJ0UHJvcHMgfSBmcm9tICdjZGs4cyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuLy8gSW1wb3J0IGFsbCBjb25zdHJ1Y3RzXG5pbXBvcnQgeyBBbGxveUNvbnN0cnVjdCB9IGZyb20gJy4vY29uc3RydWN0cy9hbGxveSc7XG5pbXBvcnQgeyBBbGxveVRyYWNlc0NvbnN0cnVjdCB9IGZyb20gJy4vY29uc3RydWN0cy9hbGxveS10cmFjZXMnO1xuaW1wb3J0IHsgR3JhZmFuYVBhc3N3b3JkU2VjcmV0IH0gZnJvbSAnLi9jb25zdHJ1Y3RzL2dyYWZhbmEtcGFzc3dvcmQtc2VjcmV0JztcbmltcG9ydCB7IExva2lDb25zdHJ1Y3QgfSBmcm9tICcuL2NvbnN0cnVjdHMvbG9raSc7XG5pbXBvcnQgeyBMb2tpUzNCdWNrZXRDb25zdHJ1Y3QgfSBmcm9tICcuL2NvbnN0cnVjdHMvbG9raS1zMy1idWNrZXQnO1xuaW1wb3J0IHsgTG9raVMzQ3JlZGVudGlhbHNDb25zdHJ1Y3QgfSBmcm9tICcuL2NvbnN0cnVjdHMvbG9raS1zMy1jcmVkZW50aWFscyc7XG5pbXBvcnQgeyBOYW1lc3BhY2VDb25zdHJ1Y3QgfSBmcm9tICcuL2NvbnN0cnVjdHMvbmFtZXNwYWNlJztcbmltcG9ydCB7IFByaW9yaXR5Q2xhc3NDb25zdHJ1Y3QgfSBmcm9tICcuL2NvbnN0cnVjdHMvcHJpb3JpdHktY2xhc3MnO1xuaW1wb3J0IHsgUHJvbWV0aGV1c1N0YWNrQ29uc3RydWN0IH0gZnJvbSAnLi9jb25zdHJ1Y3RzL3Byb21ldGhldXMtc3RhY2snO1xuaW1wb3J0IHsgVGVtcG9Db25zdHJ1Y3QgfSBmcm9tICcuL2NvbnN0cnVjdHMvdGVtcG8nO1xuaW1wb3J0IHsgVGVtcG9TM0J1Y2tldENvbnN0cnVjdCB9IGZyb20gJy4vY29uc3RydWN0cy90ZW1wby1zMy1idWNrZXQnO1xuaW1wb3J0IHsgVGVtcG9TM0NyZWRlbnRpYWxzQ29uc3RydWN0IH0gZnJvbSAnLi9jb25zdHJ1Y3RzL3RlbXBvLXMzLWNyZWRlbnRpYWxzJztcbmltcG9ydCB7IFRoYW5vc0NvbXBhY3RvckNvbnN0cnVjdCB9IGZyb20gJy4vY29uc3RydWN0cy90aGFub3MtY29tcGFjdG9yJztcbmltcG9ydCB7IFRoYW5vc1F1ZXJ5Q29uc3RydWN0IH0gZnJvbSAnLi9jb25zdHJ1Y3RzL3RoYW5vcy1xdWVyeSc7XG5pbXBvcnQgeyBUaGFub3NTM0J1Y2tldENvbnN0cnVjdCB9IGZyb20gJy4vY29uc3RydWN0cy90aGFub3MtczMtYnVja2V0JztcbmltcG9ydCB7IFRoYW5vc1MzQ3JlZGVudGlhbHNDb25zdHJ1Y3QgfSBmcm9tICcuL2NvbnN0cnVjdHMvdGhhbm9zLXMzLWNyZWRlbnRpYWxzJztcbmltcG9ydCB7IFRoYW5vc1N0b3JlQ29uc3RydWN0IH0gZnJvbSAnLi9jb25zdHJ1Y3RzL3RoYW5vcy1zdG9yZSc7XG5pbXBvcnQgeyBNb25pdG9yaW5nQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogTW9uaXRvcmluZ0NoYXJ0IG9yY2hlc3RyYXRlcyB0aGUgY29tcGxldGUgbW9uaXRvcmluZyBzdGFjay5cbiAqXG4gKiBUaGlzIGNoYXJ0IGNyZWF0ZXMgYWxsIHJlc291cmNlcyBpbiB0aGUgY29ycmVjdCBvcmRlciB1c2luZyBBcmdvQ0Qgc3luYy13YXZlczpcbiAqXG4gKiBXYXZlIDA6IEZvdW5kYXRpb25cbiAqIC0gTmFtZXNwYWNlXG4gKiAtIFByaW9yaXR5Q2xhc3NcbiAqXG4gKiBXYXZlIDE6IEV4dGVybmFsIERlcGVuZGVuY2llc1xuICogLSBTMyBCdWNrZXRzIChDcm9zc3BsYW5lKVxuICogLSBTMyBDcmVkZW50aWFscyAoRXh0ZXJuYWxTZWNyZXQpXG4gKlxuICogV2F2ZSAyOiBDb3JlIFNlcnZpY2VzXG4gKiAtIFByb21ldGhldXMgU3RhY2sgKFByb21ldGhldXMsIEdyYWZhbmEsIEFsZXJ0bWFuYWdlcilcbiAqIC0gTG9raSAobG9nIGFnZ3JlZ2F0aW9uKVxuICpcbiAqIFdhdmUgMzogQWR2YW5jZWQgU2VydmljZXNcbiAqIC0gQWxsb3kgKGxvZyBjb2xsZWN0aW9uKVxuICogLSBUaGFub3MgUXVlcnkgKHVuaWZpZWQgbWV0cmljcyBxdWVyeSlcbiAqIC0gVGhhbm9zIFN0b3JlIChTMyBnYXRld2F5KVxuICogLSBUaGFub3MgQ29tcGFjdG9yIChkb3duc2FtcGxpbmcpXG4gKlxuICogQXBwLXNwZWNpZmljIGRhc2hib2FyZHMgYW5kIGFsZXJ0IHJ1bGVzIGFyZSBpbnRlbnRpb25hbGx5IE5PVCBwYXJ0IG9mIHRoaXNcbiAqIGNoYXJ0LiBJbnRlZ3JhdGlvbiBjaGFydHMgYXR0YWNoIHRoZWlyIG93biBkYXNoYm9hcmQvYWxlcnQgY29uc3RydWN0cyBiZXNpZGVcbiAqIHRoaXMgb25lICh0aGUgR3JhZmFuYSBzaWRlY2FyIGRpc2NvdmVycyBDb25maWdNYXBzIGxhYmVsZWRcbiAqIGBncmFmYW5hX2Rhc2hib2FyZDogXCIxXCJgIGluIHRoZSBzYW1lIG5hbWVzcGFjZSkuXG4gKlxuICogQ29uZmlndXJhdGlvbiBpcyBwcm92aWRlZCB2aWEgdGhlIE1vbml0b3JpbmdDb25maWcgaW50ZXJmYWNlLCB3aGljaCBjb21iaW5lczpcbiAqIC0gY29uZmlnLnlhbWwgKGRlZmF1bHQgdmFsdWVzKVxuICogLSBFbnZpcm9ubWVudCB2YXJpYWJsZXMgKG92ZXJyaWRlcylcbiAqL1xuZXhwb3J0IGNsYXNzIE1vbml0b3JpbmdDaGFydCBleHRlbmRzIENoYXJ0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcmVhZG9ubHkgY29uZmlnOiBNb25pdG9yaW5nQ29uZmlnLCBwcm9wczogQ2hhcnRQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICBjb25zdCBuYW1lc3BhY2UgPSBjb25maWcubmFtZXNwYWNlO1xuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vIFdhdmUgMDogRm91bmRhdGlvblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAvLyBNdXN0IGV4aXN0IGJlZm9yZSBhbnkgb3RoZXIgcmVzb3VyY2VzXG4gICAgbmV3IE5hbWVzcGFjZUNvbnN0cnVjdCh0aGlzLCAnbmFtZXNwYWNlJywge1xuICAgICAgbmFtZTogbmFtZXNwYWNlLFxuICAgIH0pO1xuXG4gICAgbmV3IFByaW9yaXR5Q2xhc3NDb25zdHJ1Y3QodGhpcywgJ3ByaW9yaXR5LWNsYXNzJyk7XG5cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gV2F2ZSAxOiBFeHRlcm5hbCBEZXBlbmRlbmNpZXNcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gUzMgYnVja2V0cyBtdXN0IGJlIGNyZWF0ZWQgYmVmb3JlIHBvZHMgdHJ5IHRvIGFjY2VzcyB0aGVtXG4gICAgbmV3IFRoYW5vc1MzQnVja2V0Q29uc3RydWN0KHRoaXMsICd0aGFub3MtczMtYnVja2V0Jywge1xuICAgICAgY29uZmlnLFxuICAgIH0pO1xuXG4gICAgbmV3IExva2lTM0J1Y2tldENvbnN0cnVjdCh0aGlzLCAnbG9raS1zMy1idWNrZXQnLCB7XG4gICAgICBjb25maWcsXG4gICAgfSk7XG5cbiAgICAvLyBTZWNyZXRzIG11c3QgZXhpc3QgYmVmb3JlIHBvZHMgbW91bnQgdGhlbVxuICAgIG5ldyBUaGFub3NTM0NyZWRlbnRpYWxzQ29uc3RydWN0KHRoaXMsICd0aGFub3MtczMtY3JlZGVudGlhbHMnLCB7XG4gICAgICBuYW1lc3BhY2UsXG4gICAgICBjb25maWcsXG4gICAgfSk7XG5cbiAgICBjb25zdCBsb2tpUzNDcmVkZW50aWFscyA9IG5ldyBMb2tpUzNDcmVkZW50aWFsc0NvbnN0cnVjdCh0aGlzLCAnbG9raS1zMy1jcmVkZW50aWFscycsIHtcbiAgICAgIG5hbWVzcGFjZSxcbiAgICAgIGNvbmZpZyxcbiAgICB9KTtcblxuICAgIC8vIEdyYWZhbmEgYWRtaW4gY3JlZGVudGlhbHMgKHN0YWJsZSBwYXNzd29yZCBhY3Jvc3MgSGVsbSB1cGdyYWRlcylcbiAgICBuZXcgR3JhZmFuYVBhc3N3b3JkU2VjcmV0KHRoaXMsICdncmFmYW5hLXBhc3N3b3JkJywge1xuICAgICAgbmFtZXNwYWNlLFxuICAgICAgY29uZmlnLFxuICAgIH0pO1xuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vIFdhdmUgMjogQ29yZSBTZXJ2aWNlc1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAvLyBQcm9tZXRoZXVzIFN0YWNrIChpbmNsdWRlcyBQcm9tZXRoZXVzLCBHcmFmYW5hLCBBbGVydG1hbmFnZXIsIG9wZXJhdG9ycylcbiAgICBuZXcgUHJvbWV0aGV1c1N0YWNrQ29uc3RydWN0KHRoaXMsICdwcm9tZXRoZXVzLXN0YWNrJywge1xuICAgICAgbmFtZXNwYWNlLFxuICAgICAgY29uZmlnLFxuICAgIH0pO1xuXG4gICAgLy8gTG9raSAobG9nIGFnZ3JlZ2F0aW9uKVxuICAgIG5ldyBMb2tpQ29uc3RydWN0KHRoaXMsICdsb2tpJywge1xuICAgICAgbmFtZXNwYWNlLFxuICAgICAgY29uZmlnLFxuICAgICAgczNDcmVkZW50aWFsc1NlY3JldE5hbWU6IGxva2lTM0NyZWRlbnRpYWxzLnNlY3JldE5hbWUsXG4gICAgfSk7XG5cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gV2F2ZSAzOiBBZHZhbmNlZCBTZXJ2aWNlc1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAvLyBBbGxveSAobG9nIGNvbGxlY3Rpb24gLSBhZnRlciBMb2tpIGlzIHJlYWR5KVxuICAgIG5ldyBBbGxveUNvbnN0cnVjdCh0aGlzLCAnYWxsb3knLCB7XG4gICAgICBuYW1lc3BhY2UsXG4gICAgICBjb25maWcsXG4gICAgfSk7XG5cbiAgICAvLyBUaGFub3MgUXVlcnkgKHVuaWZpZWQgcXVlcnkgaW50ZXJmYWNlIC0gYWZ0ZXIgUHJvbWV0aGV1cyBpcyByZWFkeSlcbiAgICBuZXcgVGhhbm9zUXVlcnlDb25zdHJ1Y3QodGhpcywgJ3RoYW5vcy1xdWVyeScsIHtcbiAgICAgIG5hbWVzcGFjZSxcbiAgICAgIGNvbmZpZyxcbiAgICB9KTtcblxuICAgIC8vIFRoYW5vcyBTdG9yZSAoUzMgZ2F0ZXdheSAtIGFmdGVyIFMzIGJ1Y2tldCBhbmQgY3JlZGVudGlhbHMpXG4gICAgbmV3IFRoYW5vc1N0b3JlQ29uc3RydWN0KHRoaXMsICd0aGFub3Mtc3RvcmUnLCB7XG4gICAgICBuYW1lc3BhY2UsXG4gICAgICBjb25maWcsXG4gICAgfSk7XG5cbiAgICAvLyBUaGFub3MgQ29tcGFjdG9yIChkb3duc2FtcGxpbmcgLSBhZnRlciBTMyBidWNrZXQgYW5kIGNyZWRlbnRpYWxzKVxuICAgIG5ldyBUaGFub3NDb21wYWN0b3JDb25zdHJ1Y3QodGhpcywgJ3RoYW5vcy1jb21wYWN0b3InLCB7XG4gICAgICBuYW1lc3BhY2UsXG4gICAgICBjb25maWcsXG4gICAgfSk7XG5cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gVGVtcG8gdHJhY2luZyAob3B0LWluKVxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAvLyBPbmx5IGNyZWF0ZWQgd2hlbiBjb25maWcudGVtcG8uZW5hYmxlZCBpcyB0cnVlLiBBcHBzIHNlbmQgT1RMUCB0byB0aGVcbiAgICAvLyBhbGxveS10cmFjZXMgZ2F0ZXdheSwgd2hpY2ggdGFpbC1zYW1wbGVzIGFuZCBmb3J3YXJkcyB0byBUZW1wbyAoUzMtYmFja2VkKS5cbiAgICBpZiAoY29uZmlnLnRlbXBvLmVuYWJsZWQpIHtcbiAgICAgIG5ldyBUZW1wb1MzQnVja2V0Q29uc3RydWN0KHRoaXMsICd0ZW1wby1zMy1idWNrZXQnLCB7IGNvbmZpZyB9KTtcbiAgICAgIGNvbnN0IHRlbXBvQ3JlZHMgPSBuZXcgVGVtcG9TM0NyZWRlbnRpYWxzQ29uc3RydWN0KHRoaXMsICd0ZW1wby1zMy1jcmVkZW50aWFscycsIHtcbiAgICAgICAgbmFtZXNwYWNlLFxuICAgICAgICBjb25maWcsXG4gICAgICB9KTtcbiAgICAgIG5ldyBUZW1wb0NvbnN0cnVjdCh0aGlzLCAndGVtcG8nLCB7XG4gICAgICAgIG5hbWVzcGFjZSxcbiAgICAgICAgY29uZmlnLFxuICAgICAgICBzM0NyZWRlbnRpYWxzU2VjcmV0TmFtZTogdGVtcG9DcmVkcy5zZWNyZXROYW1lLFxuICAgICAgfSk7XG4gICAgICBuZXcgQWxsb3lUcmFjZXNDb25zdHJ1Y3QodGhpcywgJ2FsbG95LXRyYWNlcycsIHsgbmFtZXNwYWNlLCBjb25maWcgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
package/lib/types.d.ts
CHANGED
|
@@ -74,6 +74,7 @@ export interface StorageConfig {
|
|
|
74
74
|
lokiWrite: string;
|
|
75
75
|
thanosStore: string;
|
|
76
76
|
thanosCompactor: string;
|
|
77
|
+
tempo: string;
|
|
77
78
|
}
|
|
78
79
|
/**
|
|
79
80
|
* Replica counts for high availability
|
|
@@ -87,6 +88,7 @@ export interface ReplicaConfig {
|
|
|
87
88
|
lokiWrite: number;
|
|
88
89
|
thanosQuery: number;
|
|
89
90
|
thanosStore: number;
|
|
91
|
+
tempo: number;
|
|
90
92
|
}
|
|
91
93
|
/**
|
|
92
94
|
* Resource requirements for all components
|
|
@@ -105,6 +107,8 @@ export interface ResourceConfig {
|
|
|
105
107
|
thanosCompactor: ResourceRequirements;
|
|
106
108
|
configReloader: ResourceRequirements;
|
|
107
109
|
thanosSidecar: ResourceRequirements;
|
|
110
|
+
tempo: ResourceRequirements;
|
|
111
|
+
alloyTraces: ResourceRequirements;
|
|
108
112
|
}
|
|
109
113
|
/**
|
|
110
114
|
* Helm chart version configuration
|
|
@@ -114,6 +118,23 @@ export interface VersionConfig {
|
|
|
114
118
|
loki: string;
|
|
115
119
|
alloy: string;
|
|
116
120
|
thanos: string;
|
|
121
|
+
tempo: string;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Tail-sampling policy for the Alloy traces gateway.
|
|
125
|
+
*/
|
|
126
|
+
export interface TempoTailSamplingConfig {
|
|
127
|
+
latencyThresholdMs: number;
|
|
128
|
+
probabilisticPercent: number;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Grafana Tempo tracing configuration (opt-in).
|
|
132
|
+
*/
|
|
133
|
+
export interface TempoConfig {
|
|
134
|
+
enabled: boolean;
|
|
135
|
+
bucket: string;
|
|
136
|
+
retention: string;
|
|
137
|
+
tailSampling: TempoTailSamplingConfig;
|
|
117
138
|
}
|
|
118
139
|
/**
|
|
119
140
|
* Configuration the package ships sensible defaults for.
|
|
@@ -125,6 +146,7 @@ export interface DefaultableConfig {
|
|
|
125
146
|
storage: StorageConfig;
|
|
126
147
|
replicas: ReplicaConfig;
|
|
127
148
|
resources: ResourceConfig;
|
|
149
|
+
tempo: TempoConfig;
|
|
128
150
|
}
|
|
129
151
|
/**
|
|
130
152
|
* Cluster-specific configuration with no sensible universal default.
|
package/lib/types.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVzb3VyY2UgYWxsb2NhdGlvbiBmb3IgYSBjb21wb25lbnQgKENQVSBhbmQgbWVtb3J5KVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlQWxsb2NhdGlvbiB7XG4gIGNwdTogc3RyaW5nO1xuICBtZW1vcnk6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNvdXJjZSByZXF1ZXN0cyBhbmQgbGltaXRzIGZvciBhIGNvbXBvbmVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlUmVxdWlyZW1lbnRzIHtcbiAgcmVxdWVzdHM6IFJlc291cmNlQWxsb2NhdGlvbjtcbiAgbGltaXRzOiBSZXNvdXJjZUFsbG9jYXRpb247XG59XG5cbi8qKlxuICogUzMgY29uZmlndXJhdGlvbiBmb3Igb2JqZWN0IHN0b3JhZ2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTM0NvbmZpZyB7XG4gIGVuZHBvaW50OiBzdHJpbmc7IC8vIEZ1bGwgZW5kcG9pbnQgd2l0aCBwcm90b2NvbCAoZS5nLiwgaHR0cHM6Ly9mc24xLnlvdXItb2JqZWN0c3RvcmFnZS5jb20pXG4gIGVuZHBvaW50Tm9Qcm90b2NvbDogc3RyaW5nOyAvLyBFbmRwb2ludCB3aXRob3V0IHByb3RvY29sIChmb3IgVGhhbm9zKVxuICByZWdpb246IHN0cmluZzsgLy8gUzMgcmVnaW9uIChlLmcuLCBmc24xKVxuICBidWNrZXRzOiB7XG4gICAgdGhhbm9zOiBzdHJpbmc7IC8vIFRoYW5vcyBtZXRyaWNzIGJ1Y2tldFxuICAgIGxva2k6IHN0cmluZzsgLy8gTG9raSBsb2dzIGJ1Y2tldFxuICB9O1xufVxuXG4vKipcbiAqIFNNVFAgY29uZmlndXJhdGlvbiBmb3IgYWxlcnRpbmdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTbXRwQ29uZmlnIHtcbiAgaG9zdDogc3RyaW5nOyAvLyBTTVRQIHNlcnZlciBob3N0bmFtZVxuICBwb3J0OiBudW1iZXI7IC8vIFNNVFAgc2VydmVyIHBvcnRcbiAgZnJvbTogc3RyaW5nOyAvLyBGcm9tIGVtYWlsIGFkZHJlc3NcbiAgdXNlcm5hbWU/
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVzb3VyY2UgYWxsb2NhdGlvbiBmb3IgYSBjb21wb25lbnQgKENQVSBhbmQgbWVtb3J5KVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlQWxsb2NhdGlvbiB7XG4gIGNwdTogc3RyaW5nO1xuICBtZW1vcnk6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNvdXJjZSByZXF1ZXN0cyBhbmQgbGltaXRzIGZvciBhIGNvbXBvbmVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlUmVxdWlyZW1lbnRzIHtcbiAgcmVxdWVzdHM6IFJlc291cmNlQWxsb2NhdGlvbjtcbiAgbGltaXRzOiBSZXNvdXJjZUFsbG9jYXRpb247XG59XG5cbi8qKlxuICogUzMgY29uZmlndXJhdGlvbiBmb3Igb2JqZWN0IHN0b3JhZ2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTM0NvbmZpZyB7XG4gIGVuZHBvaW50OiBzdHJpbmc7IC8vIEZ1bGwgZW5kcG9pbnQgd2l0aCBwcm90b2NvbCAoZS5nLiwgaHR0cHM6Ly9mc24xLnlvdXItb2JqZWN0c3RvcmFnZS5jb20pXG4gIGVuZHBvaW50Tm9Qcm90b2NvbDogc3RyaW5nOyAvLyBFbmRwb2ludCB3aXRob3V0IHByb3RvY29sIChmb3IgVGhhbm9zKVxuICByZWdpb246IHN0cmluZzsgLy8gUzMgcmVnaW9uIChlLmcuLCBmc24xKVxuICBidWNrZXRzOiB7XG4gICAgdGhhbm9zOiBzdHJpbmc7IC8vIFRoYW5vcyBtZXRyaWNzIGJ1Y2tldFxuICAgIGxva2k6IHN0cmluZzsgLy8gTG9raSBsb2dzIGJ1Y2tldFxuICB9O1xufVxuXG4vKipcbiAqIFNNVFAgY29uZmlndXJhdGlvbiBmb3IgYWxlcnRpbmdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTbXRwQ29uZmlnIHtcbiAgaG9zdDogc3RyaW5nOyAvLyBTTVRQIHNlcnZlciBob3N0bmFtZVxuICBwb3J0OiBudW1iZXI7IC8vIFNNVFAgc2VydmVyIHBvcnRcbiAgZnJvbTogc3RyaW5nOyAvLyBGcm9tIGVtYWlsIGFkZHJlc3NcbiAgdXNlcm5hbWU/OiBzdHJpbmc7IC8vIFNNVFAgdXNlcm5hbWUgKG9wdGlvbmFsKVxuICBwYXNzd29yZD86IHN0cmluZzsgLy8gU01UUCBwYXNzd29yZCAob3B0aW9uYWwpXG4gIHJlcXVpcmVUbHM6IGJvb2xlYW47IC8vIFJlcXVpcmUgVExTIGZvciBTTVRQXG59XG5cbi8qKlxuICogRG9tYWluIGNvbmZpZ3VyYXRpb24gZm9yIGluZ3Jlc3Nlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIERvbWFpbkNvbmZpZyB7XG4gIGdyYWZhbmE6IHN0cmluZzsgLy8gR3JhZmFuYSBkb21haW4gKGUuZy4sIGdyYWZhbmEub3BzLmt1cDZzLm5ldClcbn1cblxuLyoqXG4gKiBOYW1lcyBvZiB0aGUgZXh0ZXJuYWwgQ3Jvc3NwbGFuZSBhbmQgRXh0ZXJuYWwgU2VjcmV0cyBPcGVyYXRvciByZXNvdXJjZXMgdGhpc1xuICogc3RhY2sgcmVmZXJlbmNlcy4gVGhlc2UgYXJlIG5vdCBjcmVhdGVkIGJ5IHRoZSBsaWJyYXJ5OyB0aGV5IG11c3QgYWxyZWFkeSBleGlzdFxuICogaW4geW91ciBjbHVzdGVyLiBUaGVyZSBhcmUgbm8gZGVmYXVsdHMg4oCUIGV2ZXJ5IGNvbnN1bWVyIHdpcmVzIGl0cyBvd24gbmFtZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZWdyYXRpb25zQ29uZmlnIHtcbiAgczNQcm92aWRlckNvbmZpZzogc3RyaW5nOyAvLyBDcm9zc3BsYW5lIFByb3ZpZGVyQ29uZmlnIG5hbWUgdGhlIEJ1Y2tldCByZXNvdXJjZXMgcmVjb25jaWxlIGFnYWluc3RcbiAgczNTZWNyZXRTdG9yZTogc3RyaW5nOyAvLyBFU08gQ2x1c3RlclNlY3JldFN0b3JlIG5hbWUgaG9sZGluZyB0aGUgUzMgY3JlZGVudGlhbHNcbiAgczNDcmVkZW50aWFsc0tleTogc3RyaW5nOyAvLyBSZW1vdGUga2V5IGluIHRoZSBzdG9yZSB0byBleHRyYWN0IFMzIGNyZWRlbnRpYWxzIGZyb20gKHByb3ZpZGVzIEFXU19BQ0NFU1NfS0VZX0lEIC8gQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZKVxuICBncmFmYW5hU2VjcmV0U3RvcmU6IHN0cmluZzsgLy8gRVNPIENsdXN0ZXJTZWNyZXRTdG9yZSBuYW1lIGhvbGRpbmcgdGhlIEdyYWZhbmEgYWRtaW4gY3JlZGVudGlhbHNcbiAgZ3JhZmFuYUNyZWRlbnRpYWxzS2V5OiBzdHJpbmc7IC8vIFJlbW90ZSBrZXkgaW4gdGhlIHN0b3JlIHRvIGV4dHJhY3QgdGhlIEdyYWZhbmEgYWRtaW4gY3JlZGVudGlhbHMgZnJvbVxufVxuXG4vKipcbiAqIFJldGVudGlvbiBwb2xpY2llcyBmb3IgbWV0cmljcyBhbmQgbG9nc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJldGVudGlvbkNvbmZpZyB7XG4gIHByb21ldGhldXM6IHN0cmluZzsgLy8gUHJvbWV0aGV1cyBsb2NhbCByZXRlbnRpb24gKGUuZy4sIFwiM2RcIilcbiAgcHJvbWV0aGV1c1MzUmF3OiBudW1iZXI7IC8vIFRoYW5vcyByYXcgZGF0YSByZXRlbnRpb24gKGRheXMpXG4gIHByb21ldGhldXNTMzVtOiBudW1iZXI7IC8vIFRoYW5vcyA1LW1pbnV0ZSBkb3duc2FtcGxlZCByZXRlbnRpb24gKGRheXMpXG4gIHByb21ldGhldXNTMzFoOiBudW1iZXI7IC8vIFRoYW5vcyAxLWhvdXIgZG93bnNhbXBsZWQgcmV0ZW50aW9uIChkYXlzKVxuICBsb2tpOiBzdHJpbmc7IC8vIExva2kgcmV0ZW50aW9uIChlLmcuLCBcIjc0NGhcIiBmb3IgMzEgZGF5cylcbn1cblxuLyoqXG4gKiBTdG9yYWdlIHNpemVzIGZvciBwZXJzaXN0ZW50IHZvbHVtZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdG9yYWdlQ29uZmlnIHtcbiAgcHJvbWV0aGV1czogc3RyaW5nOyAvLyBQcm9tZXRoZXVzIFBWQyBzaXplXG4gIGdyYWZhbmE6IHN0cmluZzsgLy8gR3JhZmFuYSBQVkMgc2l6ZVxuICBhbGVydG1hbmFnZXI6IHN0cmluZzsgLy8gQWxlcnRtYW5hZ2VyIFBWQyBzaXplXG4gIGxva2lCYWNrZW5kOiBzdHJpbmc7IC8vIExva2kgYmFja2VuZCBQVkMgc2l6ZVxuICBsb2tpV3JpdGU6IHN0cmluZzsgLy8gTG9raSB3cml0ZSBQVkMgc2l6ZVxuICB0aGFub3NTdG9yZTogc3RyaW5nOyAvLyBUaGFub3Mgc3RvcmUgUFZDIHNpemUgKHBlciByZXBsaWNhKVxuICB0aGFub3NDb21wYWN0b3I6IHN0cmluZzsgLy8gVGhhbm9zIGNvbXBhY3RvciBQVkMgc2l6ZVxuICB0ZW1wbzogc3RyaW5nOyAvLyBUZW1wbyBXQUwvbG9jYWwtYmxvY2tzIFBWQyBzaXplXG59XG5cbi8qKlxuICogUmVwbGljYSBjb3VudHMgZm9yIGhpZ2ggYXZhaWxhYmlsaXR5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVwbGljYUNvbmZpZyB7XG4gIHByb21ldGhldXM6IG51bWJlcjsgLy8gUHJvbWV0aGV1cyByZXBsaWNhc1xuICBhbGVydG1hbmFnZXI6IG51bWJlcjsgLy8gQWxlcnRtYW5hZ2VyIHJlcGxpY2FzXG4gIGdyYWZhbmE6IG51bWJlcjsgLy8gR3JhZmFuYSByZXBsaWNhcyAodXN1YWxseSAxKVxuICBsb2tpQmFja2VuZDogbnVtYmVyOyAvLyBMb2tpIGJhY2tlbmQgcmVwbGljYXNcbiAgbG9raVJlYWQ6IG51bWJlcjsgLy8gTG9raSByZWFkIHJlcGxpY2FzXG4gIGxva2lXcml0ZTogbnVtYmVyOyAvLyBMb2tpIHdyaXRlIHJlcGxpY2FzXG4gIHRoYW5vc1F1ZXJ5OiBudW1iZXI7IC8vIFRoYW5vcyBRdWVyeSByZXBsaWNhc1xuICB0aGFub3NTdG9yZTogbnVtYmVyOyAvLyBUaGFub3MgU3RvcmUgcmVwbGljYXNcbiAgdGVtcG86IG51bWJlcjsgLy8gVGVtcG8gcmVwbGljYXNcbn1cblxuLyoqXG4gKiBSZXNvdXJjZSByZXF1aXJlbWVudHMgZm9yIGFsbCBjb21wb25lbnRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VDb25maWcge1xuICBwcm9tZXRoZXVzOiBSZXNvdXJjZVJlcXVpcmVtZW50cztcbiAgZ3JhZmFuYTogUmVzb3VyY2VSZXF1aXJlbWVudHM7XG4gIGFsZXJ0bWFuYWdlcjogUmVzb3VyY2VSZXF1aXJlbWVudHM7XG4gIGxva2lCYWNrZW5kOiBSZXNvdXJjZVJlcXVpcmVtZW50cztcbiAgbG9raVJlYWQ6IFJlc291cmNlUmVxdWlyZW1lbnRzO1xuICBsb2tpV3JpdGU6IFJlc291cmNlUmVxdWlyZW1lbnRzO1xuICBsb2tpR2F0ZXdheTogUmVzb3VyY2VSZXF1aXJlbWVudHM7XG4gIGFsbG95OiBSZXNvdXJjZVJlcXVpcmVtZW50cztcbiAgdGhhbm9zUXVlcnk6IFJlc291cmNlUmVxdWlyZW1lbnRzO1xuICB0aGFub3NTdG9yZTogUmVzb3VyY2VSZXF1aXJlbWVudHM7XG4gIHRoYW5vc0NvbXBhY3RvcjogUmVzb3VyY2VSZXF1aXJlbWVudHM7XG4gIC8vIFNpZGVjYXIgY29udGFpbmVycyAoYWRkZWQgMjAyNS0xMS0xOClcbiAgY29uZmlnUmVsb2FkZXI6IFJlc291cmNlUmVxdWlyZW1lbnRzOyAvLyBjb25maWctcmVsb2FkZXIgc2lkZWNhciAoUHJvbWV0aGV1cywgQWxlcnRtYW5hZ2VyLCBBbGxveSlcbiAgdGhhbm9zU2lkZWNhcjogUmVzb3VyY2VSZXF1aXJlbWVudHM7IC8vIHRoYW5vcy1zaWRlY2FyIGZvciBQcm9tZXRoZXVzXG4gIHRlbXBvOiBSZXNvdXJjZVJlcXVpcmVtZW50czsgLy8gVGVtcG8gKG1vbm9saXRoaWMpXG4gIGFsbG95VHJhY2VzOiBSZXNvdXJjZVJlcXVpcmVtZW50czsgLy8gQWxsb3kgdHJhY2VzIE9UTFAgZ2F0ZXdheVxufVxuXG4vKipcbiAqIEhlbG0gY2hhcnQgdmVyc2lvbiBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmVyc2lvbkNvbmZpZyB7XG4gIHByb21ldGhldXNTdGFjazogc3RyaW5nOyAvLyBrdWJlLXByb21ldGhldXMtc3RhY2sgY2hhcnQgdmVyc2lvbiAoZS5nLiwgXCJsYXRlc3RcIiBvciBcIjY1LjAuMFwiKVxuICBsb2tpOiBzdHJpbmc7IC8vIExva2kgY2hhcnQgdmVyc2lvblxuICBhbGxveTogc3RyaW5nOyAvLyBBbGxveSBjaGFydCB2ZXJzaW9uXG4gIHRoYW5vczogc3RyaW5nOyAvLyBUaGFub3MgaW1hZ2UgdmVyc2lvbiAoZS5nLiwgXCJ2MC4zNi4xXCIpXG4gIHRlbXBvOiBzdHJpbmc7IC8vIGdyYWZhbmEvdGVtcG8gY2hhcnQgdmVyc2lvblxufVxuXG4vKipcbiAqIFRhaWwtc2FtcGxpbmcgcG9saWN5IGZvciB0aGUgQWxsb3kgdHJhY2VzIGdhdGV3YXkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVtcG9UYWlsU2FtcGxpbmdDb25maWcge1xuICBsYXRlbmN5VGhyZXNob2xkTXM6IG51bWJlcjsgLy8ga2VlcCB0cmFjZXMgc2xvd2VyIHRoYW4gdGhpc1xuICBwcm9iYWJpbGlzdGljUGVyY2VudDogbnVtYmVyOyAvLyBrZWVwIHRoaXMgJSBvZiB0aGUgcmVtYWluaW5nIChcIm5vcm1hbFwiKSB0cmFjZXNcbn1cblxuLyoqXG4gKiBHcmFmYW5hIFRlbXBvIHRyYWNpbmcgY29uZmlndXJhdGlvbiAob3B0LWluKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZW1wb0NvbmZpZyB7XG4gIGVuYWJsZWQ6IGJvb2xlYW47IC8vIGRlZmF1bHQgZmFsc2Ug4oCUIHdoZW4gZmFsc2UsIG5vIFRlbXBvIHJlc291cmNlcyBhcmUgY3JlYXRlZFxuICBidWNrZXQ6IHN0cmluZzsgLy8gUzMgYnVja2V0IGZvciB0cmFjZXMgKHJlcXVpcmVkIHdoZW4gZW5hYmxlZClcbiAgcmV0ZW50aW9uOiBzdHJpbmc7IC8vIGJsb2NrIHJldGVudGlvbiwgZS5nLiAnMzM2aCcgKDE0IGRheXMpXG4gIHRhaWxTYW1wbGluZzogVGVtcG9UYWlsU2FtcGxpbmdDb25maWc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiB0aGUgcGFja2FnZSBzaGlwcyBzZW5zaWJsZSBkZWZhdWx0cyBmb3IuXG4gKiBJbnRlZ3JhdGlvbiBjaGFydHMgbWF5IG92ZXJyaWRlIGFueSBvZiB0aGVzZSAoZGVlcC1tZXJnZWQgb3ZlciBERUZBVUxUX0NPTkZJRykuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdGFibGVDb25maWcge1xuICB2ZXJzaW9uczogVmVyc2lvbkNvbmZpZzsgLy8gQ2hhcnQgYW5kIGltYWdlIHZlcnNpb25zXG4gIHJldGVudGlvbjogUmV0ZW50aW9uQ29uZmlnOyAvLyBEYXRhIHJldGVudGlvbiBwb2xpY2llc1xuICBzdG9yYWdlOiBTdG9yYWdlQ29uZmlnOyAvLyBQVkMgc3RvcmFnZSBzaXplc1xuICByZXBsaWNhczogUmVwbGljYUNvbmZpZzsgLy8gUmVwbGljYSBjb3VudHNcbiAgcmVzb3VyY2VzOiBSZXNvdXJjZUNvbmZpZzsgLy8gUmVzb3VyY2UgcmVxdWVzdHMgYW5kIGxpbWl0c1xuICB0ZW1wbzogVGVtcG9Db25maWc7IC8vIEdyYWZhbmEgVGVtcG8gdHJhY2luZyAob3B0LWluKVxufVxuXG4vKipcbiAqIENsdXN0ZXItc3BlY2lmaWMgY29uZmlndXJhdGlvbiB3aXRoIG5vIHNlbnNpYmxlIHVuaXZlcnNhbCBkZWZhdWx0LlxuICogSW50ZWdyYXRpb24gY2hhcnRzIG11c3QgcHJvdmlkZSB0aGVzZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXF1aXJlZENsdXN0ZXJDb25maWcge1xuICBuYW1lc3BhY2U6IHN0cmluZzsgLy8gS3ViZXJuZXRlcyBuYW1lc3BhY2VcbiAgZG9tYWluczogRG9tYWluQ29uZmlnOyAvLyBEb21haW4gbmFtZXMgZm9yIGluZ3Jlc3Nlc1xuICBzMzogUzNDb25maWc7IC8vIFMzIG9iamVjdCBzdG9yYWdlIGNvbmZpZ3VyYXRpb25cbiAgc210cDogU210cENvbmZpZzsgLy8gU01UUCBhbGVydGluZyBjb25maWd1cmF0aW9uXG4gIGludGVncmF0aW9uczogSW50ZWdyYXRpb25zQ29uZmlnOyAvLyBOYW1lcyBvZiBleHRlcm5hbCBDcm9zc3BsYW5lL0VTTyByZXNvdXJjZXMgdG8gcmVmZXJlbmNlXG59XG5cbi8qKlxuICogUmVjdXJzaXZlIHBhcnRpYWwg4oCUIGV2ZXJ5IHByb3BlcnR5IChpbmNsdWRpbmcgbmVzdGVkIG9uZXMpIGJlY29tZXMgb3B0aW9uYWwuXG4gKi9cbmV4cG9ydCB0eXBlIERlZXBQYXJ0aWFsPFQ+ID0ge1xuICBbUCBpbiBrZXlvZiBUXT86IFRbUF0gZXh0ZW5kcyBvYmplY3QgPyBEZWVwUGFydGlhbDxUW1BdPiA6IFRbUF07XG59O1xuXG4vKipcbiAqIElucHV0IGFjY2VwdGVkIGJ5IG1lcmdlQ29uZmlnOiByZXF1aXJlZCBjbHVzdGVyIHZhbHVlcyBwbHVzIG9wdGlvbmFsLFxuICogZGVlcGx5LXBhcnRpYWwgb3ZlcnJpZGVzIG9mIHRoZSBwYWNrYWdlIGRlZmF1bHRzLlxuICovXG5leHBvcnQgdHlwZSBNb25pdG9yaW5nQ29uZmlnSW5wdXQgPSBSZXF1aXJlZENsdXN0ZXJDb25maWcgJiBEZWVwUGFydGlhbDxEZWZhdWx0YWJsZUNvbmZpZz47XG5cbi8qKlxuICogQ29tcGxldGUsIHJlc29sdmVkIG1vbml0b3Jpbmcgc3RhY2sgY29uZmlndXJhdGlvbiBjb25zdW1lZCBieSBNb25pdG9yaW5nQ2hhcnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9uaXRvcmluZ0NvbmZpZyBleHRlbmRzIFJlcXVpcmVkQ2x1c3RlckNvbmZpZywgRGVmYXVsdGFibGVDb25maWcge31cbiJdfQ==
|