cdk8s-plus-34 0.0.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +101649 -0
- package/CODE_OF_CONDUCT.md +3 -0
- package/CONTRIBUTING.md +185 -0
- package/DCO +34 -0
- package/LICENSE +202 -0
- package/NOTICE +1 -0
- package/OWNERS.md +5 -0
- package/README.md +21 -33
- package/SECURITY.md +5 -0
- package/cdk8s.yaml +11 -0
- package/docs/java.md +150009 -0
- package/docs/plus/config-map.md +98 -0
- package/docs/plus/container.md +133 -0
- package/docs/plus/cronjob.md +67 -0
- package/docs/plus/deployment.md +232 -0
- package/docs/plus/horizontal-pod-autoscaler.md +226 -0
- package/docs/plus/ingress.md +68 -0
- package/docs/plus/job.md +48 -0
- package/docs/plus/namespace.md +58 -0
- package/docs/plus/network-policy.md +341 -0
- package/docs/plus/pod.md +455 -0
- package/docs/plus/pv.md +82 -0
- package/docs/plus/pvc.md +77 -0
- package/docs/plus/rbac.md +104 -0
- package/docs/plus/secret.md +32 -0
- package/docs/plus/service-account.md +35 -0
- package/docs/plus/service.md +41 -0
- package/docs/plus/volume.md +84 -0
- package/docs/python.md +161196 -0
- package/docs/typescript.md +139649 -0
- package/git-hooks/README.md +9 -0
- package/git-hooks/prepare-commit-msg +18 -0
- package/git-hooks/setup.sh +10 -0
- package/lib/_action.d.ts +26 -0
- package/lib/_action.js +39 -0
- package/lib/api-resource.d.ts +298 -0
- package/lib/api-resource.js +430 -0
- package/lib/base.d.ts +79 -0
- package/lib/base.js +92 -0
- package/lib/config-map.d.ts +126 -0
- package/lib/config-map.js +159 -0
- package/lib/container.d.ts +1057 -0
- package/lib/container.js +845 -0
- package/lib/cron-job.d.ts +138 -0
- package/lib/cron-job.js +103 -0
- package/lib/daemon-set.d.ts +45 -0
- package/lib/daemon-set.js +55 -0
- package/lib/deployment.d.ts +235 -0
- package/lib/deployment.js +216 -0
- package/lib/handler.d.ts +62 -0
- package/lib/handler.js +54 -0
- package/lib/horizontal-pod-autoscaler.d.ts +500 -0
- package/lib/horizontal-pod-autoscaler.js +569 -0
- package/lib/imports/k8s.d.ts +25809 -0
- package/lib/imports/k8s.js +19238 -0
- package/lib/index.d.ts +26 -0
- package/lib/index.js +44 -0
- package/lib/ingress.d.ts +230 -0
- package/lib/ingress.js +246 -0
- package/lib/job.d.ts +64 -0
- package/lib/job.js +54 -0
- package/lib/namespace.d.ts +128 -0
- package/lib/namespace.js +109 -0
- package/lib/network-policy.d.ts +311 -0
- package/lib/network-policy.js +344 -0
- package/lib/pod.d.ts +1097 -0
- package/lib/pod.js +1147 -0
- package/lib/probe.d.ts +181 -0
- package/lib/probe.js +88 -0
- package/lib/pv.d.ts +375 -0
- package/lib/pv.js +273 -0
- package/lib/pvc.d.ts +163 -0
- package/lib/pvc.js +154 -0
- package/lib/role-binding.d.ts +138 -0
- package/lib/role-binding.js +165 -0
- package/lib/role.d.ts +268 -0
- package/lib/role.js +401 -0
- package/lib/secret.d.ts +195 -0
- package/lib/secret.js +185 -0
- package/lib/service-account.d.ts +83 -0
- package/lib/service-account.js +105 -0
- package/lib/service.d.ts +289 -0
- package/lib/service.js +182 -0
- package/lib/stateful-set.d.ts +206 -0
- package/lib/stateful-set.js +244 -0
- package/lib/utils.d.ts +4 -0
- package/lib/utils.js +33 -0
- package/lib/volume.d.ts +577 -0
- package/lib/volume.js +377 -0
- package/lib/workload.d.ts +121 -0
- package/lib/workload.js +122 -0
- package/node_modules/balanced-match/.github/FUNDING.yml +2 -0
- package/node_modules/balanced-match/LICENSE.md +21 -0
- package/node_modules/balanced-match/README.md +97 -0
- package/node_modules/balanced-match/index.js +62 -0
- package/node_modules/balanced-match/package.json +48 -0
- package/node_modules/brace-expansion/.github/FUNDING.yml +2 -0
- package/node_modules/brace-expansion/LICENSE +21 -0
- package/node_modules/brace-expansion/README.md +135 -0
- package/node_modules/brace-expansion/index.js +202 -0
- package/node_modules/brace-expansion/package.json +49 -0
- package/node_modules/minimatch/LICENSE +15 -0
- package/node_modules/minimatch/README.md +491 -0
- package/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts +2 -0
- package/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts.map +1 -0
- package/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js +14 -0
- package/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js.map +1 -0
- package/node_modules/minimatch/dist/commonjs/ast.d.ts +20 -0
- package/node_modules/minimatch/dist/commonjs/ast.d.ts.map +1 -0
- package/node_modules/minimatch/dist/commonjs/ast.js +747 -0
- package/node_modules/minimatch/dist/commonjs/ast.js.map +1 -0
- package/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts +8 -0
- package/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts.map +1 -0
- package/node_modules/minimatch/dist/commonjs/brace-expressions.js +152 -0
- package/node_modules/minimatch/dist/commonjs/brace-expressions.js.map +1 -0
- package/node_modules/minimatch/dist/commonjs/escape.d.ts +12 -0
- package/node_modules/minimatch/dist/commonjs/escape.d.ts.map +1 -0
- package/node_modules/minimatch/dist/commonjs/escape.js +22 -0
- package/node_modules/minimatch/dist/commonjs/escape.js.map +1 -0
- package/node_modules/minimatch/dist/commonjs/index.d.ts +98 -0
- package/node_modules/minimatch/dist/commonjs/index.d.ts.map +1 -0
- package/node_modules/minimatch/dist/commonjs/index.js +1023 -0
- package/node_modules/minimatch/dist/commonjs/index.js.map +1 -0
- package/node_modules/minimatch/dist/commonjs/package.json +3 -0
- package/node_modules/minimatch/dist/commonjs/unescape.d.ts +17 -0
- package/node_modules/minimatch/dist/commonjs/unescape.d.ts.map +1 -0
- package/node_modules/minimatch/dist/commonjs/unescape.js +24 -0
- package/node_modules/minimatch/dist/commonjs/unescape.js.map +1 -0
- package/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts +2 -0
- package/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts.map +1 -0
- package/node_modules/minimatch/dist/esm/assert-valid-pattern.js +10 -0
- package/node_modules/minimatch/dist/esm/assert-valid-pattern.js.map +1 -0
- package/node_modules/minimatch/dist/esm/ast.d.ts +20 -0
- package/node_modules/minimatch/dist/esm/ast.d.ts.map +1 -0
- package/node_modules/minimatch/dist/esm/ast.js +743 -0
- package/node_modules/minimatch/dist/esm/ast.js.map +1 -0
- package/node_modules/minimatch/dist/esm/brace-expressions.d.ts +8 -0
- package/node_modules/minimatch/dist/esm/brace-expressions.d.ts.map +1 -0
- package/node_modules/minimatch/dist/esm/brace-expressions.js +148 -0
- package/node_modules/minimatch/dist/esm/brace-expressions.js.map +1 -0
- package/node_modules/minimatch/dist/esm/escape.d.ts +12 -0
- package/node_modules/minimatch/dist/esm/escape.d.ts.map +1 -0
- package/node_modules/minimatch/dist/esm/escape.js +18 -0
- package/node_modules/minimatch/dist/esm/escape.js.map +1 -0
- package/node_modules/minimatch/dist/esm/index.d.ts +98 -0
- package/node_modules/minimatch/dist/esm/index.d.ts.map +1 -0
- package/node_modules/minimatch/dist/esm/index.js +1007 -0
- package/node_modules/minimatch/dist/esm/index.js.map +1 -0
- package/node_modules/minimatch/dist/esm/package.json +3 -0
- package/node_modules/minimatch/dist/esm/unescape.d.ts +17 -0
- package/node_modules/minimatch/dist/esm/unescape.d.ts.map +1 -0
- package/node_modules/minimatch/dist/esm/unescape.js +20 -0
- package/node_modules/minimatch/dist/esm/unescape.js.map +1 -0
- package/node_modules/minimatch/package.json +82 -0
- package/package.json +176 -6
- package/rotate.md +85 -0
package/lib/pv.js
ADDED
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a, _b, _c, _d;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.GCEPersistentDiskPersistentVolume = exports.AzureDiskPersistentVolume = exports.AwsElasticBlockStorePersistentVolume = exports.PersistentVolumeReclaimPolicy = exports.PersistentVolume = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const cdk8s_1 = require("cdk8s");
|
|
7
|
+
const constructs_1 = require("constructs");
|
|
8
|
+
const base = require("./base");
|
|
9
|
+
const k8s = require("./imports/k8s");
|
|
10
|
+
const pvc = require("./pvc");
|
|
11
|
+
const volume = require("./volume");
|
|
12
|
+
class ImportedPersistentVolume extends constructs_1.Construct {
|
|
13
|
+
constructor(scope, id, name) {
|
|
14
|
+
super(scope, id);
|
|
15
|
+
this.resourceType = 'persistentvolumes';
|
|
16
|
+
this._name = name;
|
|
17
|
+
}
|
|
18
|
+
get name() {
|
|
19
|
+
return this._name;
|
|
20
|
+
}
|
|
21
|
+
get apiVersion() {
|
|
22
|
+
return k8s.KubePersistentVolume.GVK.apiVersion;
|
|
23
|
+
}
|
|
24
|
+
get apiGroup() {
|
|
25
|
+
return '';
|
|
26
|
+
}
|
|
27
|
+
get kind() {
|
|
28
|
+
return k8s.KubePersistentVolume.GVK.kind;
|
|
29
|
+
}
|
|
30
|
+
get resourceName() {
|
|
31
|
+
return this.name;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* A PersistentVolume (PV) is a piece of storage in the cluster that has been
|
|
36
|
+
* provisioned by an administrator or dynamically provisioned using Storage Classes.
|
|
37
|
+
* It is a resource in the cluster just like a node is a cluster resource.
|
|
38
|
+
* PVs are volume plugins like Volumes, but have a lifecycle independent of any
|
|
39
|
+
* individual Pod that uses the PV. This API object captures the details of the
|
|
40
|
+
* implementation of the storage, be that NFS, iSCSI, or a
|
|
41
|
+
* cloud-provider-specific storage system.
|
|
42
|
+
*/
|
|
43
|
+
class PersistentVolume extends base.Resource {
|
|
44
|
+
/**
|
|
45
|
+
* Imports a pv from the cluster as a reference.
|
|
46
|
+
*/
|
|
47
|
+
static fromPersistentVolumeName(scope, id, volumeName) {
|
|
48
|
+
return new ImportedPersistentVolume(scope, id, volumeName);
|
|
49
|
+
}
|
|
50
|
+
constructor(scope, id, props = {}) {
|
|
51
|
+
super(scope, id);
|
|
52
|
+
this.resourceType = 'persistentvolumes';
|
|
53
|
+
this.storage = props.storage;
|
|
54
|
+
this.mode = props.volumeMode ?? pvc.PersistentVolumeMode.FILE_SYSTEM;
|
|
55
|
+
this.storageClassName = props.storageClassName;
|
|
56
|
+
this._accessModes = props.accessModes;
|
|
57
|
+
this.mountOptions = props.mountOptions;
|
|
58
|
+
this.reclaimPolicy = props.reclaimPolicy ?? PersistentVolumeReclaimPolicy.RETAIN;
|
|
59
|
+
if (props.claim) {
|
|
60
|
+
this.bind(props.claim);
|
|
61
|
+
}
|
|
62
|
+
this.apiObject = new k8s.KubePersistentVolume(this, 'Resource', {
|
|
63
|
+
metadata: props.metadata,
|
|
64
|
+
spec: cdk8s_1.Lazy.any({ produce: () => this._toKube() }),
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Access modes requirement of this claim.
|
|
69
|
+
*/
|
|
70
|
+
get accessModes() {
|
|
71
|
+
return this._accessModes ? [...this._accessModes] : undefined;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* PVC this volume is bound to. Undefined means this volume is not yet
|
|
75
|
+
* claimed by any PVC.
|
|
76
|
+
*/
|
|
77
|
+
get claim() {
|
|
78
|
+
return this._claim;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Reserve a `PersistentVolume` by creating a `PersistentVolumeClaim`
|
|
82
|
+
* that is wired to claim this volume.
|
|
83
|
+
*
|
|
84
|
+
* Note that this method will throw in case the volume is already claimed.
|
|
85
|
+
*
|
|
86
|
+
* @see https://kubernetes.io/docs/concepts/storage/persistent-volumes/#reserving-a-persistentvolume
|
|
87
|
+
*/
|
|
88
|
+
reserve() {
|
|
89
|
+
const claim = new pvc.PersistentVolumeClaim(this, `${this.name}PVC`, {
|
|
90
|
+
metadata: { name: `pvc-${this.name}`, namespace: this.metadata.namespace },
|
|
91
|
+
// the storage classes must match, otherwise the claim
|
|
92
|
+
// will use the default class (or no class at all), which may be different than the class
|
|
93
|
+
// of this volume. note that other requirements are not needed since
|
|
94
|
+
// when they are not defined, any volume satisifies them.
|
|
95
|
+
storageClassName: this.storageClassName,
|
|
96
|
+
});
|
|
97
|
+
this.bind(claim);
|
|
98
|
+
claim.bind(this);
|
|
99
|
+
return claim;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Bind a volume to a specific claim.
|
|
103
|
+
* Note that you must also bind the claim to the volume.
|
|
104
|
+
*
|
|
105
|
+
* @see https://kubernetes.io/docs/concepts/storage/persistent-volumes/#binding
|
|
106
|
+
*
|
|
107
|
+
* @param claim The PVC to bind to.
|
|
108
|
+
*/
|
|
109
|
+
bind(claim) {
|
|
110
|
+
if (this._claim && this._claim.name !== claim.name) {
|
|
111
|
+
throw new Error(`Cannot bind volume '${this.name}' to claim '${claim.name}' since it is already bound to claim '${this._claim.name}'`);
|
|
112
|
+
}
|
|
113
|
+
this._claim = claim;
|
|
114
|
+
}
|
|
115
|
+
asVolume() {
|
|
116
|
+
const claim = this.reserve();
|
|
117
|
+
return volume.Volume.fromPersistentVolumeClaim(this, 'Volume', claim);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* @internal
|
|
121
|
+
*/
|
|
122
|
+
_toKube() {
|
|
123
|
+
const storage = this.storage ? k8s.Quantity.fromString(this.storage.toGibibytes() + 'Gi') : undefined;
|
|
124
|
+
return {
|
|
125
|
+
claimRef: this._claim ? { name: this._claim?.name } : undefined,
|
|
126
|
+
accessModes: this.accessModes?.map(a => a.toString()),
|
|
127
|
+
capacity: storage ? { storage } : undefined,
|
|
128
|
+
mountOptions: this.mountOptions?.map(o => o),
|
|
129
|
+
storageClassName: this.storageClassName,
|
|
130
|
+
persistentVolumeReclaimPolicy: this.reclaimPolicy,
|
|
131
|
+
volumeMode: this.mode,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
exports.PersistentVolume = PersistentVolume;
|
|
136
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
137
|
+
PersistentVolume[_a] = { fqn: "cdk8s-plus-34.PersistentVolume", version: "2.0.0" };
|
|
138
|
+
/**
|
|
139
|
+
* Reclaim Policies.
|
|
140
|
+
*/
|
|
141
|
+
var PersistentVolumeReclaimPolicy;
|
|
142
|
+
(function (PersistentVolumeReclaimPolicy) {
|
|
143
|
+
/**
|
|
144
|
+
* The Retain reclaim policy allows for manual reclamation of the resource.
|
|
145
|
+
* When the PersistentVolumeClaim is deleted, the PersistentVolume still exists and the
|
|
146
|
+
* volume is considered "released". But it is not yet available for another claim
|
|
147
|
+
* because the previous claimant's data remains on the volume.
|
|
148
|
+
* An administrator can manually reclaim the volume with the following steps:
|
|
149
|
+
*
|
|
150
|
+
* 1. Delete the PersistentVolume. The associated storage asset in external
|
|
151
|
+
* infrastructure (such as an AWS EBS, GCE PD, Azure Disk, or Cinder volume) still exists after the PV is deleted.
|
|
152
|
+
* 2. Manually clean up the data on the associated storage asset accordingly.
|
|
153
|
+
* 3. Manually delete the associated storage asset.
|
|
154
|
+
*
|
|
155
|
+
* If you want to reuse the same storage asset, create a new PersistentVolume
|
|
156
|
+
* with the same storage asset definition.
|
|
157
|
+
*/
|
|
158
|
+
PersistentVolumeReclaimPolicy["RETAIN"] = "Retain";
|
|
159
|
+
/**
|
|
160
|
+
* For volume plugins that support the Delete reclaim policy, deletion removes both the
|
|
161
|
+
* PersistentVolume object from Kubernetes, as well as the associated storage asset in
|
|
162
|
+
* the external infrastructure, such as an AWS EBS, GCE PD, Azure Disk, or Cinder volume.
|
|
163
|
+
* Volumes that were dynamically provisioned inherit the reclaim policy of their StorageClass, which defaults to Delete.
|
|
164
|
+
* The administrator should configure the StorageClass according to users' expectations; otherwise,
|
|
165
|
+
* the PV must be edited or patched after it is created
|
|
166
|
+
*/
|
|
167
|
+
PersistentVolumeReclaimPolicy["DELETE"] = "Delete";
|
|
168
|
+
})(PersistentVolumeReclaimPolicy || (exports.PersistentVolumeReclaimPolicy = PersistentVolumeReclaimPolicy = {}));
|
|
169
|
+
/**
|
|
170
|
+
* Represents an AWS Disk resource that is attached to a kubelet's host machine and
|
|
171
|
+
* then exposed to the pod.
|
|
172
|
+
*
|
|
173
|
+
* @see https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
|
|
174
|
+
*/
|
|
175
|
+
class AwsElasticBlockStorePersistentVolume extends PersistentVolume {
|
|
176
|
+
constructor(scope, id, props) {
|
|
177
|
+
super(scope, id, props);
|
|
178
|
+
this.volumeId = props.volumeId;
|
|
179
|
+
this.readOnly = props.readOnly ?? false;
|
|
180
|
+
this.fsType = props.fsType ?? 'ext4';
|
|
181
|
+
this.partition = props.partition;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* @internal
|
|
185
|
+
*/
|
|
186
|
+
_toKube() {
|
|
187
|
+
const spec = super._toKube();
|
|
188
|
+
return {
|
|
189
|
+
...spec,
|
|
190
|
+
awsElasticBlockStore: {
|
|
191
|
+
volumeId: this.volumeId,
|
|
192
|
+
fsType: this.fsType,
|
|
193
|
+
partition: this.partition,
|
|
194
|
+
readOnly: this.readOnly,
|
|
195
|
+
},
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
exports.AwsElasticBlockStorePersistentVolume = AwsElasticBlockStorePersistentVolume;
|
|
200
|
+
_b = JSII_RTTI_SYMBOL_1;
|
|
201
|
+
AwsElasticBlockStorePersistentVolume[_b] = { fqn: "cdk8s-plus-34.AwsElasticBlockStorePersistentVolume", version: "2.0.0" };
|
|
202
|
+
/**
|
|
203
|
+
* AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
|
|
204
|
+
*/
|
|
205
|
+
class AzureDiskPersistentVolume extends PersistentVolume {
|
|
206
|
+
constructor(scope, id, props) {
|
|
207
|
+
super(scope, id, props);
|
|
208
|
+
this.diskName = props.diskName;
|
|
209
|
+
this.diskUri = props.diskUri;
|
|
210
|
+
this.cachingMode = props.cachingMode ?? volume.AzureDiskPersistentVolumeCachingMode.NONE;
|
|
211
|
+
this.fsType = props.fsType ?? 'ext4';
|
|
212
|
+
this.azureKind = props.kind ?? volume.AzureDiskPersistentVolumeKind.SHARED;
|
|
213
|
+
this.readOnly = props.readOnly ?? false;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* @internal
|
|
217
|
+
*
|
|
218
|
+
* @see https://github.com/kubernetes/examples/blob/master/staging/volumes/azure_disk/README.md
|
|
219
|
+
*/
|
|
220
|
+
_toKube() {
|
|
221
|
+
const spec = super._toKube();
|
|
222
|
+
return {
|
|
223
|
+
...spec,
|
|
224
|
+
azureDisk: {
|
|
225
|
+
diskName: this.diskName,
|
|
226
|
+
diskUri: this.diskUri,
|
|
227
|
+
cachingMode: this.cachingMode,
|
|
228
|
+
fsType: this.fsType,
|
|
229
|
+
kind: this.azureKind,
|
|
230
|
+
readOnly: this.readOnly,
|
|
231
|
+
},
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
exports.AzureDiskPersistentVolume = AzureDiskPersistentVolume;
|
|
236
|
+
_c = JSII_RTTI_SYMBOL_1;
|
|
237
|
+
AzureDiskPersistentVolume[_c] = { fqn: "cdk8s-plus-34.AzureDiskPersistentVolume", version: "2.0.0" };
|
|
238
|
+
/**
|
|
239
|
+
* GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine
|
|
240
|
+
* and then exposed to the pod. Provisioned by an admin.
|
|
241
|
+
*
|
|
242
|
+
* @see https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
|
|
243
|
+
*/
|
|
244
|
+
class GCEPersistentDiskPersistentVolume extends PersistentVolume {
|
|
245
|
+
constructor(scope, id, props) {
|
|
246
|
+
super(scope, id, props);
|
|
247
|
+
this.pdName = props.pdName;
|
|
248
|
+
this.readOnly = props.readOnly ?? false;
|
|
249
|
+
this.fsType = props.fsType ?? 'ext4';
|
|
250
|
+
this.partition = props.partition;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* @internal
|
|
254
|
+
*
|
|
255
|
+
* @see https://github.com/kubernetes/examples/blob/master/staging/volumes/azure_disk/README.md
|
|
256
|
+
*/
|
|
257
|
+
_toKube() {
|
|
258
|
+
const spec = super._toKube();
|
|
259
|
+
return {
|
|
260
|
+
...spec,
|
|
261
|
+
gcePersistentDisk: {
|
|
262
|
+
pdName: this.pdName,
|
|
263
|
+
fsType: this.fsType,
|
|
264
|
+
partition: this.partition,
|
|
265
|
+
readOnly: this.readOnly,
|
|
266
|
+
},
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
exports.GCEPersistentDiskPersistentVolume = GCEPersistentDiskPersistentVolume;
|
|
271
|
+
_d = JSII_RTTI_SYMBOL_1;
|
|
272
|
+
GCEPersistentDiskPersistentVolume[_d] = { fqn: "cdk8s-plus-34.GCEPersistentDiskPersistentVolume", version: "2.0.0" };
|
|
273
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpQ0FBOEM7QUFDOUMsMkNBQXVDO0FBQ3ZDLCtCQUErQjtBQUMvQixxQ0FBcUM7QUFDckMsNkJBQTZCO0FBQzdCLG1DQUFtQztBQXdFbkMsTUFBTSx3QkFBeUIsU0FBUSxzQkFBUztJQU05QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLElBQVk7UUFDcEQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUhILGlCQUFZLEdBQUcsbUJBQW1CLENBQUM7UUFJakQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sR0FBRyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7SUFDakQsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxJQUFXLElBQUk7UUFDYixPQUFPLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7Q0FFRjtBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBYSxnQkFBaUIsU0FBUSxJQUFJLENBQUMsUUFBUTtJQUVqRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxVQUFrQjtRQUNyRixPQUFPLElBQUksd0JBQXdCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBeUNELFlBQXNCLEtBQWdCLEVBQUUsRUFB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LElBQUksR0FBRyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDN0IsT0FBTztZQUNMLEdBQUcsSUFBSTtZQUNQLGlCQUFpQixFQUFFO2dCQUNqQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0JBQ25CLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDbkIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN6QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7YUFDeEI7U0FDRixDQUFDO0lBQ0osQ0FBQzs7QUFoREgsOEVBaURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBpT2JqZWN0LCBMYXp5LCBTaXplIH0gZnJvbSAnY2RrOHMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgKiBhcyBiYXNlIGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgKiBhcyBrOHMgZnJvbSAnLi9pbXBvcnRzL2s4cyc7XG5pbXBvcnQgKiBhcyBwdmMgZnJvbSAnLi9wdmMnO1xuaW1wb3J0ICogYXMgdm9sdW1lIGZyb20gJy4vdm9sdW1lJztcblxuLyoqXG4gKiBDb250cmFjdCBvZiBhIGBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1gLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElQZXJzaXN0ZW50Vm9sdW1lIGV4dGVuZHMgYmFzZS5JUmVzb3VyY2Uge1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGBQZXJzaXN0ZW50Vm9sdW1lYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJzaXN0ZW50Vm9sdW1lUHJvcHMgZXh0ZW5kcyBiYXNlLlJlc291cmNlUHJvcHMge1xuXG4gIC8qKlxuICAgKiBDb250YWlucyBhbGwgd2F5cyB0aGUgdm9sdW1lIGNhbiBiZSBtb3VudGVkLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI2FjY2Vzcy1tb2Rlc1xuICAgKiBAZGVmYXVsdCAtIE5vIGFjY2VzcyBtb2Rlcy5cbiAgICovXG4gIHJlYWRvbmx5IGFjY2Vzc01vZGVzPzogcHZjLlBlcnNpc3RlbnRWb2x1bWVBY2Nlc3NNb2RlW107XG5cbiAgLyoqXG4gICAqIFdoYXQgaXMgdGhlIHN0b3JhZ2UgY2FwYWNpdHkgb2YgdGhpcyB2b2x1bWUuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjcmVzb3VyY2VzXG4gICAqIEBkZWZhdWx0IC0gTm8gc3BlY2lmaWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RvcmFnZT86IFNpemU7XG5cbiAgLyoqXG4gICAqIFBhcnQgb2YgYSBiaS1kaXJlY3Rpb25hbCBiaW5kaW5nIGJldHdlZW4gUGVyc2lzdGVudFZvbHVtZSBhbmQgUGVyc2lzdGVudFZvbHVtZUNsYWltLlxuICAgKiBFeHBlY3RlZCB0byBiZSBub24tbmlsIHdoZW4gYm91bmQuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS9wZXJzaXN0ZW50LXZvbHVtZXMjYmluZGluZ1xuICAgKiBAZGVmYXVsdCAtIE5vdCBib3VuZCB0byBhIHNwZWNpZmljIGNsYWltLlxuICAgKi9cbiAgcmVhZG9ubHkgY2xhaW0/OiBwdmMuSVBlcnNpc3RlbnRWb2x1bWVDbGFpbTtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIG1vdW50IG9wdGlvbnMsIGUuZy4gW1wicm9cIiwgXCJzb2Z0XCJdLiBOb3QgdmFsaWRhdGVkIC0gbW91bnQgd2lsbCBzaW1wbHkgZmFpbCBpZiBvbmUgaXMgaW52YWxpZC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcy8jbW91bnQtb3B0aW9uc1xuICAgKiBAZGVmYXVsdCAtIE5vIG9wdGlvbnMuXG4gICAqL1xuICByZWFkb25seSBtb3VudE9wdGlvbnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2hlbiBhIHVzZXIgaXMgZG9uZSB3aXRoIHRoZWlyIHZvbHVtZSwgdGhleSBjYW4gZGVsZXRlIHRoZSBQVkMgb2JqZWN0cyBmcm9tIHRoZSBBUEkgdGhhdFxuICAgKiBhbGxvd3MgcmVjbGFtYXRpb24gb2YgdGhlIHJlc291cmNlLiBUaGUgcmVjbGFpbSBwb2xpY3kgdGVsbHMgdGhlIGNsdXN0ZXIgd2hhdCB0byBkbyB3aXRoXG4gICAqIHRoZSB2b2x1bWUgYWZ0ZXIgaXQgaGFzIGJlZW4gcmVsZWFzZWQgb2YgaXRzIGNsYWltLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzI3JlY2xhaW1pbmdcbiAgICogQGRlZmF1bHQgUGVyc2lzdGVudFZvbHVtZVJlY2xhaW1Qb2xpY3kuUkVUQUlOXG4gICAqL1xuICByZWFkb25seSByZWNsYWltUG9saWN5PzogUGVyc2lzdGVudFZvbHVtZVJlY2xhaW1Qb2xpY3k7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgU3RvcmFnZUNsYXNzIHRvIHdoaWNoIHRoaXMgcGVyc2lzdGVudCB2b2x1bWUgYmVsb25ncy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBWb2x1bWUgZG9lcyBub3QgYmVsb25nIHRvIGFueSBzdG9yYWdlIGNsYXNzLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RvcmFnZUNsYXNzTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogRGVmaW5lcyB3aGF0IHR5cGUgb2Ygdm9sdW1lIGlzIHJlcXVpcmVkIGJ5IHRoZSBjbGFpbS5cbiAgICpcbiAgICogQGRlZmF1bHQgVm9sdW1lTW9kZS5GSUxFX1NZU1RFTVxuICAgKi9cbiAgcmVhZG9ubHkgdm9sdW1lTW9kZT86IHB2Yy5QZXJzaXN0ZW50Vm9sdW1lTW9kZTtcblxufVxuXG5jbGFzcyBJbXBvcnRlZFBlcnNpc3RlbnRWb2x1bWUgZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBJUGVyc2lzdGVudFZvbHVtZSB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbmFtZTogc3RyaW5nO1xuXG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZVR5cGUgPSAncGVyc2lzdGVudHZvbHVtZXMnO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5fbmFtZSA9IG5hbWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXBpVmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBrOHMuS3ViZVBlcnNpc3RlbnRWb2x1bWUuR1ZLLmFwaVZlcnNpb247XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFwaUdyb3VwKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgcHVibGljIGdldCBraW5kKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGs4cy5LdWJlUGVyc2lzdGVudFZvbHVtZS5HVksua2luZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVzb3VyY2VOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG59XG5cbi8qKlxuICogQSBQZXJzaXN0ZW50Vm9sdW1lIChQVikgaXMgYSBwaWVjZSBvZiBzdG9yYWdlIGluIHRoZSBjbHVzdGVyIHRoYXQgaGFzIGJlZW5cbiAqIHByb3Zpc2lvbmVkIGJ5IGFuIGFkbWluaXN0cmF0b3Igb3IgZHluYW1pY2FsbHkgcHJvdmlzaW9uZWQgdXNpbmcgU3RvcmFnZSBDbGFzc2VzLlxuICogSXQgaXMgYSByZXNvdXJjZSBpbiB0aGUgY2x1c3RlciBqdXN0IGxpa2UgYSBub2RlIGlzIGEgY2x1c3RlciByZXNvdXJjZS5cbiAqIFBWcyBhcmUgdm9sdW1lIHBsdWdpbnMgbGlrZSBWb2x1bWVzLCBidXQgaGF2ZSBhIGxpZmVjeWNsZSBpbmRlcGVuZGVudCBvZiBhbnlcbiAqIGluZGl2aWR1YWwgUG9kIHRoYXQgdXNlcyB0aGUgUFYuIFRoaXMgQVBJIG9iamVjdCBjYXB0dXJlcyB0aGUgZGV0YWlscyBvZiB0aGVcbiAqIGltcGxlbWVudGF0aW9uIG9mIHRoZSBzdG9yYWdlLCBiZSB0aGF0IE5GUywgaVNDU0ksIG9yIGFcbiAqIGNsb3VkLXByb3ZpZGVyLXNwZWNpZmljIHN0b3JhZ2Ugc3lzdGVtLlxuICovXG5leHBvcnQgY2xhc3MgUGVyc2lzdGVudFZvbHVtZSBleHRlbmRzIGJhc2UuUmVzb3VyY2UgaW1wbGVtZW50cyBJUGVyc2lzdGVudFZvbHVtZSwgdm9sdW1lLklTdG9yYWdlIHtcblxuICAvKipcbiAgICogSW1wb3J0cyBhIHB2IGZyb20gdGhlIGNsdXN0ZXIgYXMgYSByZWZlcmVuY2UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21QZXJzaXN0ZW50Vm9sdW1lTmFtZShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCB2b2x1bWVOYW1lOiBzdHJpbmcpOiBJUGVyc2lzdGVudFZvbHVtZSB7XG4gICAgcmV0dXJuIG5ldyBJbXBvcnRlZFBlcnNpc3RlbnRWb2x1bWUoc2NvcGUsIGlkLCB2b2x1bWVOYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc2VlIGJhc2UuUmVzb3VyY2UuYXBpT2JqZWN0XG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXBpT2JqZWN0OiBBcGlPYmplY3Q7XG5cbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlVHlwZSA9ICdwZXJzaXN0ZW50dm9sdW1lcyc7XG5cbiAgcHJpdmF0ZSBfY2xhaW0/OiBwdmMuSVBlcnNpc3RlbnRWb2x1bWVDbGFpbTtcblxuICAvKipcbiAgICogU3RvcmFnZSBzaXplIG9mIHRoaXMgdm9sdW1lLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN0b3JhZ2U/OiBTaXplO1xuXG4gIC8qKlxuICAgKiBWb2x1bWUgbW9kZSBvZiB0aGlzIHZvbHVtZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtb2RlOiBwdmMuUGVyc2lzdGVudFZvbHVtZU1vZGU7XG5cbiAgLyoqXG4gICAgKiBTdG9yYWdlIGNsYXNzIHRoaXMgdm9sdW1lIGJlbG9uZ3MgdG8uXG4gICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN0b3JhZ2VDbGFzc05hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFjY2VzcyBtb2RlcyByZXF1aXJlbWVudCBvZiB0aGlzIGNsYWltLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfYWNjZXNzTW9kZXM/OiBwdmMuUGVyc2lzdGVudFZvbHVtZUFjY2Vzc01vZGVbXTtcblxuICAvKipcbiAgICogTW91bnQgb3B0aW9ucyBvZiB0aGlzIHZvbHVtZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtb3VudE9wdGlvbnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUmVjbGFpbSBwb2xpY3kgb2YgdGhpcyB2b2x1bWUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVjbGFpbVBvbGljeTogUGVyc2lzdGVudFZvbHVtZVJlY2xhaW1Qb2xpY3k7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQZXJzaXN0ZW50Vm9sdW1lUHJvcHMgPSB7IH0pIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5zdG9yYWdlID0gcHJvcHMuc3RvcmFnZTtcbiAgICB0aGlzLm1vZGUgPSBwcm9wcy52b2x1bWVNb2RlID8/IHB2Yy5QZXJzaXN0ZW50Vm9sdW1lTW9kZS5GSUxFX1NZU1RFTTtcbiAgICB0aGlzLnN0b3JhZ2VDbGFzc05hbWUgPSBwcm9wcy5zdG9yYWdlQ2xhc3NOYW1lO1xuICAgIHRoaXMuX2FjY2Vzc01vZGVzID0gcHJvcHMuYWNjZXNzTW9kZXM7XG4gICAgdGhpcy5tb3VudE9wdGlvbnMgPSBwcm9wcy5tb3VudE9wdGlvbnM7XG4gICAgdGhpcy5yZWNsYWltUG9saWN5ID0gcHJvcHMucmVjbGFpbVBvbGljeSA/PyBQZXJzaXN0ZW50Vm9sdW1lUmVjbGFpbVBvbGljeS5SRVRBSU47XG5cbiAgICBpZiAocHJvcHMuY2xhaW0pIHtcbiAgICAgIHRoaXMuYmluZChwcm9wcy5jbGFpbSk7XG4gICAgfVxuXG4gICAgdGhpcy5hcGlPYmplY3QgPSBuZXcgazhzLkt1YmVQZXJzaXN0ZW50Vm9sdW1lKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIG1ldGFkYXRhOiBwcm9wcy5tZXRhZGF0YSxcbiAgICAgIHNwZWM6IExhenkuYW55KHsgcHJvZHVjZTogKCkgPT4gdGhpcy5fdG9LdWJlKCkgfSksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWNjZXNzIG1vZGVzIHJlcXVpcmVtZW50IG9mIHRoaXMgY2xhaW0uXG4gICAqL1xuICBwdWJsaWMgZ2V0IGFjY2Vzc01vZGVzKCk6IHB2Yy5QZXJzaXN0ZW50Vm9sdW1lQWNjZXNzTW9kZVtdIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fYWNjZXNzTW9kZXMgPyBbLi4udGhpcy5fYWNjZXNzTW9kZXNdIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFBWQyB0aGlzIHZvbHVtZSBpcyBib3VuZCB0by4gVW5kZWZpbmVkIG1lYW5zIHRoaXMgdm9sdW1lIGlzIG5vdCB5ZXRcbiAgICogY2xhaW1lZCBieSBhbnkgUFZDLlxuICAgKi9cbiAgcHVibGljIGdldCBjbGFpbSgpOiBwdmMuSVBlcnNpc3RlbnRWb2x1bWVDbGFpbSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2NsYWltO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2VydmUgYSBgUGVyc2lzdGVudFZvbHVtZWAgYnkgY3JlYXRpbmcgYSBgUGVyc2lzdGVudFZvbHVtZUNsYWltYFxuICAgKiB0aGF0IGlzIHdpcmVkIHRvIGNsYWltIHRoaXMgdm9sdW1lLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgdGhpcyBtZXRob2Qgd2lsbCB0aHJvdyBpbiBjYXNlIHRoZSB2b2x1bWUgaXMgYWxyZWFkeSBjbGFpbWVkLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzLyNyZXNlcnZpbmctYS1wZXJzaXN0ZW50dm9sdW1lXG4gICAqL1xuICBwdWJsaWMgcmVzZXJ2ZSgpOiBwdmMuUGVyc2lzdGVudFZvbHVtZUNsYWltIHtcbiAgICBjb25zdCBjbGFpbSA9IG5ldyBwdmMuUGVyc2lzdGVudFZvbHVtZUNsYWltKHRoaXMsIGAke3RoaXMubmFtZX1QVkNgLCB7XG4gICAgICBtZXRhZGF0YTogeyBuYW1lOiBgcHZjLSR7dGhpcy5uYW1lfWAsIG5hbWVzcGFjZTogdGhpcy5tZXRhZGF0YS5uYW1lc3BhY2UgfSxcblxuICAgICAgLy8gdGhlIHN0b3JhZ2UgY2xhc3NlcyBtdXN0IG1hdGNoLCBvdGhlcndpc2UgdGhlIGNsYWltXG4gICAgICAvLyB3aWxsIHVzZSB0aGUgZGVmYXVsdCBjbGFzcyAob3Igbm8gY2xhc3MgYXQgYWxsKSwgd2hpY2ggbWF5IGJlIGRpZmZlcmVudCB0aGFuIHRoZSBjbGFzc1xuICAgICAgLy8gb2YgdGhpcyB2b2x1bWUuIG5vdGUgdGhhdCBvdGhlciByZXF1aXJlbWVudHMgYXJlIG5vdCBuZWVkZWQgc2luY2VcbiAgICAgIC8vIHdoZW4gdGhleSBhcmUgbm90IGRlZmluZWQsIGFueSB2b2x1bWUgc2F0aXNpZmllcyB0aGVtLlxuICAgICAgc3RvcmFnZUNsYXNzTmFtZTogdGhpcy5zdG9yYWdlQ2xhc3NOYW1lLFxuICAgIH0pO1xuXG4gICAgdGhpcy5iaW5kKGNsYWltKTtcbiAgICBjbGFpbS5iaW5kKHRoaXMpO1xuXG4gICAgcmV0dXJuIGNsYWltO1xuICB9XG5cbiAgLyoqXG4gICAqIEJpbmQgYSB2b2x1bWUgdG8gYSBzcGVjaWZpYyBjbGFpbS5cbiAgICogTm90ZSB0aGF0IHlvdSBtdXN0IGFsc28gYmluZCB0aGUgY2xhaW0gdG8gdGhlIHZvbHVtZS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcy8jYmluZGluZ1xuICAgKlxuICAgKiBAcGFyYW0gY2xhaW0gVGhlIFBWQyB0byBiaW5kIHRvLlxuICAgKi9cbiAgcHVibGljIGJpbmQoY2xhaW06IHB2Yy5JUGVyc2lzdGVudFZvbHVtZUNsYWltKSB7XG4gICAgaWYgKHRoaXMuX2NsYWltICYmIHRoaXMuX2NsYWltLm5hbWUgIT09IGNsYWltLm5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGJpbmQgdm9sdW1lICcke3RoaXMubmFtZX0nIHRvIGNsYWltICcke2NsYWltLm5hbWV9JyBzaW5jZSBpdCBpcyBhbHJlYWR5IGJvdW5kIHRvIGNsYWltICcke3RoaXMuX2NsYWltLm5hbWV9J2ApO1xuICAgIH1cbiAgICB0aGlzLl9jbGFpbSA9IGNsYWltO1xuICB9XG5cbiAgcHVibGljIGFzVm9sdW1lKCk6IHZvbHVtZS5Wb2x1bWUge1xuICAgIGNvbnN0IGNsYWltID0gdGhpcy5yZXNlcnZlKCk7XG4gICAgcmV0dXJuIHZvbHVtZS5Wb2x1bWUuZnJvbVBlcnNpc3RlbnRWb2x1bWVDbGFpbSh0aGlzLCAnVm9sdW1lJywgY2xhaW0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIF90b0t1YmUoKTogazhzLlBlcnNpc3RlbnRWb2x1bWVTcGVjIHtcbiAgICBjb25zdCBzdG9yYWdlID0gdGhpcy5zdG9yYWdlID8gazhzLlF1YW50aXR5LmZyb21TdHJpbmcodGhpcy5zdG9yYWdlLnRvR2liaWJ5dGVzKCkgKyAnR2knKSA6IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiB7XG4gICAgICBjbGFpbVJlZjogdGhpcy5fY2xhaW0gPyB7IG5hbWU6IHRoaXMuX2NsYWltPy5uYW1lIH0gOiB1bmRlZmluZWQsXG4gICAgICBhY2Nlc3NNb2RlczogdGhpcy5hY2Nlc3NNb2Rlcz8ubWFwKGEgPT4gYS50b1N0cmluZygpKSxcbiAgICAgIGNhcGFjaXR5OiBzdG9yYWdlID8geyBzdG9yYWdlIH0gOiB1bmRlZmluZWQsXG4gICAgICBtb3VudE9wdGlvbnM6IHRoaXMubW91bnRPcHRpb25zPy5tYXAobyA9PiBvKSxcbiAgICAgIHN0b3JhZ2VDbGFzc05hbWU6IHRoaXMuc3RvcmFnZUNsYXNzTmFtZSxcbiAgICAgIHBlcnNpc3RlbnRWb2x1bWVSZWNsYWltUG9saWN5OiB0aGlzLnJlY2xhaW1Qb2xpY3ksXG4gICAgICB2b2x1bWVNb2RlOiB0aGlzLm1vZGUsXG4gICAgfTtcbiAgfVxuXG59XG5cbi8qKlxuICogUmVjbGFpbSBQb2xpY2llcy5cbiAqL1xuZXhwb3J0IGVudW0gUGVyc2lzdGVudFZvbHVtZVJlY2xhaW1Qb2xpY3kge1xuXG4gIC8qKlxuICAgKiBUaGUgUmV0YWluIHJlY2xhaW0gcG9saWN5IGFsbG93cyBmb3IgbWFudWFsIHJlY2xhbWF0aW9uIG9mIHRoZSByZXNvdXJjZS5cbiAgICogV2hlbiB0aGUgUGVyc2lzdGVudFZvbHVtZUNsYWltIGlzIGRlbGV0ZWQsIHRoZSBQZXJzaXN0ZW50Vm9sdW1lIHN0aWxsIGV4aXN0cyBhbmQgdGhlXG4gICAqIHZvbHVtZSBpcyBjb25zaWRlcmVkIFwicmVsZWFzZWRcIi4gQnV0IGl0IGlzIG5vdCB5ZXQgYXZhaWxhYmxlIGZvciBhbm90aGVyIGNsYWltXG4gICAqIGJlY2F1c2UgdGhlIHByZXZpb3VzIGNsYWltYW50J3MgZGF0YSByZW1haW5zIG9uIHRoZSB2b2x1bWUuXG4gICAqIEFuIGFkbWluaXN0cmF0b3IgY2FuIG1hbnVhbGx5IHJlY2xhaW0gdGhlIHZvbHVtZSB3aXRoIHRoZSBmb2xsb3dpbmcgc3RlcHM6XG4gICAqXG4gICAqIDEuIERlbGV0ZSB0aGUgUGVyc2lzdGVudFZvbHVtZS4gVGhlIGFzc29jaWF0ZWQgc3RvcmFnZSBhc3NldCBpbiBleHRlcm5hbFxuICAgKiAgICBpbmZyYXN0cnVjdHVyZSAoc3VjaCBhcyBhbiBBV1MgRUJTLCBHQ0UgUEQsIEF6dXJlIERpc2ssIG9yIENpbmRlciB2b2x1bWUpIHN0aWxsIGV4aXN0cyBhZnRlciB0aGUgUFYgaXMgZGVsZXRlZC5cbiAgICogMi4gTWFudWFsbHkgY2xlYW4gdXAgdGhlIGRhdGEgb24gdGhlIGFzc29jaWF0ZWQgc3RvcmFnZSBhc3NldCBhY2NvcmRpbmdseS5cbiAgICogMy4gTWFudWFsbHkgZGVsZXRlIHRoZSBhc3NvY2lhdGVkIHN0b3JhZ2UgYXNzZXQuXG4gICAqXG4gICAqIElmIHlvdSB3YW50IHRvIHJldXNlIHRoZSBzYW1lIHN0b3JhZ2UgYXNzZXQsIGNyZWF0ZSBhIG5ldyBQZXJzaXN0ZW50Vm9sdW1lXG4gICAqIHdpdGggdGhlIHNhbWUgc3RvcmFnZSBhc3NldCBkZWZpbml0aW9uLlxuICAgKi9cbiAgUkVUQUlOID0gJ1JldGFpbicsXG5cbiAgLyoqXG4gICAqIEZvciB2b2x1bWUgcGx1Z2lucyB0aGF0IHN1cHBvcnQgdGhlIERlbGV0ZSByZWNsYWltIHBvbGljeSwgZGVsZXRpb24gcmVtb3ZlcyBib3RoIHRoZVxuICAgKiBQZXJzaXN0ZW50Vm9sdW1lIG9iamVjdCBmcm9tIEt1YmVybmV0ZXMsIGFzIHdlbGwgYXMgdGhlIGFzc29jaWF0ZWQgc3RvcmFnZSBhc3NldCBpblxuICAgKiB0aGUgZXh0ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUsIHN1Y2ggYXMgYW4gQVdTIEVCUywgR0NFIFBELCBBenVyZSBEaXNrLCBvciBDaW5kZXIgdm9sdW1lLlxuICAgKiBWb2x1bWVzIHRoYXQgd2VyZSBkeW5hbWljYWxseSBwcm92aXNpb25lZCBpbmhlcml0IHRoZSByZWNsYWltIHBvbGljeSBvZiB0aGVpciBTdG9yYWdlQ2xhc3MsIHdoaWNoIGRlZmF1bHRzIHRvIERlbGV0ZS5cbiAgICogVGhlIGFkbWluaXN0cmF0b3Igc2hvdWxkIGNvbmZpZ3VyZSB0aGUgU3RvcmFnZUNsYXNzIGFjY29yZGluZyB0byB1c2VycycgZXhwZWN0YXRpb25zOyBvdGhlcndpc2UsXG4gICAqIHRoZSBQViBtdXN0IGJlIGVkaXRlZCBvciBwYXRjaGVkIGFmdGVyIGl0IGlzIGNyZWF0ZWRcbiAgICovXG4gIERFTEVURSA9ICdEZWxldGUnLFxuXG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYEF3c0VsYXN0aWNCbG9ja1N0b3JlUGVyc2lzdGVudFZvbHVtZWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXdzRWxhc3RpY0Jsb2NrU3RvcmVQZXJzaXN0ZW50Vm9sdW1lUHJvcHMgZXh0ZW5kcyBQZXJzaXN0ZW50Vm9sdW1lUHJvcHMge1xuXG4gIC8qKlxuICAgKiBVbmlxdWUgSUQgb2YgdGhlIHBlcnNpc3RlbnQgZGlzayByZXNvdXJjZSBpbiBBV1MgKEFtYXpvbiBFQlMgdm9sdW1lKS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3ZvbHVtZXMjYXdzZWxhc3RpY2Jsb2Nrc3RvcmVcbiAgICpcbiAgICogQHNlZSBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3ZvbHVtZXMjYXdzZWxhc3RpY2Jsb2Nrc3RvcmVcbiAgICovXG4gIHJlYWRvbmx5IHZvbHVtZUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZpbGVzeXN0ZW0gdHlwZSBvZiB0aGUgdm9sdW1lIHRoYXQgeW91IHdhbnQgdG8gbW91bnQuXG4gICAqIFRpcDogRW5zdXJlIHRoYXQgdGhlIGZpbGVzeXN0ZW0gdHlwZSBpcyBzdXBwb3J0ZWQgYnkgdGhlIGhvc3Qgb3BlcmF0aW5nIHN5c3RlbS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3ZvbHVtZXMjYXdzZWxhc3RpY2Jsb2Nrc3RvcmVcbiAgICogQGRlZmF1bHQgJ2V4dDQnXG4gICAqL1xuICByZWFkb25seSBmc1R5cGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAgKiBUaGUgcGFydGl0aW9uIGluIHRoZSB2b2x1bWUgdGhhdCB5b3Ugd2FudCB0byBtb3VudC4gSWYgb21pdHRlZCwgdGhlIGRlZmF1bHQgaXMgdG8gbW91bnQgYnkgdm9sdW1lIG5hbWUuXG4gICAgKiBFeGFtcGxlczogRm9yIHZvbHVtZSAvZGV2L3NkYTEsIHlvdSBzcGVjaWZ5IHRoZSBwYXJ0aXRpb24gYXMgXCIxXCIuXG4gICAgKiBTaW1pbGFybHksIHRoZSB2b2x1bWUgcGFydGl0aW9uIGZvciAvZGV2L3NkYSBpcyBcIjBcIiAob3IgeW91IGNhbiBsZWF2ZSB0aGUgcHJvcGVydHkgZW1wdHkpLlxuICAgICpcbiAgICAqIEBkZWZhdWx0IC0gTm8gcGFydGl0aW9uLlxuICAgICovXG4gIHJlYWRvbmx5IHBhcnRpdGlvbj86IG51bWJlcjtcblxuICAvKipcbiAgICAqIFNwZWNpZnkgXCJ0cnVlXCIgdG8gZm9yY2UgYW5kIHNldCB0aGUgUmVhZE9ubHkgcHJvcGVydHkgaW4gVm9sdW1lTW91bnRzIHRvIFwidHJ1ZVwiLlxuICAgICpcbiAgICAqIEBzZWUgaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS92b2x1bWVzI2F3c2VsYXN0aWNibG9ja3N0b3JlXG4gICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICovXG4gIHJlYWRvbmx5IHJlYWRPbmx5PzogYm9vbGVhbjtcblxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gQVdTIERpc2sgcmVzb3VyY2UgdGhhdCBpcyBhdHRhY2hlZCB0byBhIGt1YmVsZXQncyBob3N0IG1hY2hpbmUgYW5kXG4gKiB0aGVuIGV4cG9zZWQgdG8gdGhlIHBvZC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2Uvdm9sdW1lcyNhd3NlbGFzdGljYmxvY2tzdG9yZVxuICovXG5leHBvcnQgY2xhc3MgQXdzRWxhc3RpY0Jsb2NrU3RvcmVQZXJzaXN0ZW50Vm9sdW1lIGV4dGVuZHMgUGVyc2lzdGVudFZvbHVtZSB7XG5cbiAgLyoqXG4gICAqIFZvbHVtZSBpZCBvZiB0aGlzIHZvbHVtZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB2b2x1bWVJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCBpdCBpcyBtb3VudGVkIGFzIGEgcmVhZC1vbmx5IHZvbHVtZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZWFkT25seTogYm9vbGVhbjtcblxuICAvKipcbiAgICogRmlsZSBzeXN0ZW0gdHlwZSBvZiB0aGlzIHZvbHVtZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmc1R5cGU6IHN0cmluZztcblxuICAvKipcbiAgICogUGFydGl0aW9uIG9mIHRoaXMgdm9sdW1lLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBhcnRpdGlvbj86IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXdzRWxhc3RpY0Jsb2NrU3RvcmVQZXJzaXN0ZW50Vm9sdW1lUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIHRoaXMudm9sdW1lSWQgPSBwcm9wcy52b2x1bWVJZDtcbiAgICB0aGlzLnJlYWRPbmx5ID0gcHJvcHMucmVhZE9ubHkgPz8gZmFsc2U7XG4gICAgdGhpcy5mc1R5cGUgPSBwcm9wcy5mc1R5cGUgPz8gJ2V4dDQnO1xuICAgIHRoaXMucGFydGl0aW9uID0gcHJvcHMucGFydGl0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIF90b0t1YmUoKTogazhzLlBlcnNpc3RlbnRWb2x1bWVTcGVjIHtcbiAgICBjb25zdCBzcGVjID0gc3VwZXIuX3RvS3ViZSgpO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zcGVjLFxuICAgICAgYXdzRWxhc3RpY0Jsb2NrU3RvcmU6IHtcbiAgICAgICAgdm9sdW1lSWQ6IHRoaXMudm9sdW1lSWQsXG4gICAgICAgIGZzVHlwZTogdGhpcy5mc1R5cGUsXG4gICAgICAgIHBhcnRpdGlvbjogdGhpcy5wYXJ0aXRpb24sXG4gICAgICAgIHJlYWRPbmx5OiB0aGlzLnJlYWRPbmx5LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYEF6dXJlRGlza1BlcnNpc3RlbnRWb2x1bWVgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF6dXJlRGlza1BlcnNpc3RlbnRWb2x1bWVQcm9wcyBleHRlbmRzIFBlcnNpc3RlbnRWb2x1bWVQcm9wcyB7XG5cbiAgLyoqXG4gICAqIFRoZSBOYW1lIG9mIHRoZSBkYXRhIGRpc2sgaW4gdGhlIGJsb2Igc3RvcmFnZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlza05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFVSSSB0aGUgZGF0YSBkaXNrIGluIHRoZSBibG9iIHN0b3JhZ2VcbiAgICovXG4gIHJlYWRvbmx5IGRpc2tVcmk6IHN0cmluZztcblxuICAvKipcbiAgICogSG9zdCBDYWNoaW5nIG1vZGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQXp1cmVEaXNrUGVyc2lzdGVudFZvbHVtZUNhY2hpbmdNb2RlLk5PTkUuXG4gICAqL1xuICByZWFkb25seSBjYWNoaW5nTW9kZT86IHZvbHVtZS5BenVyZURpc2tQZXJzaXN0ZW50Vm9sdW1lQ2FjaGluZ01vZGU7XG5cbiAgLyoqXG4gICAgKiBGaWxlc3lzdGVtIHR5cGUgdG8gbW91bnQuIE11c3QgYmUgYSBmaWxlc3lzdGVtIHR5cGUgc3VwcG9ydGVkIGJ5IHRoZSBob3N0IG9wZXJhdGluZyBzeXN0ZW0uXG4gICAgKlxuICAgICogQGRlZmF1bHQgJ2V4dDQnXG4gICAgKi9cbiAgcmVhZG9ubHkgZnNUeXBlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgICogS2luZCBvZiBkaXNrLlxuICAgICpcbiAgICAqIEBkZWZhdWx0IEF6dXJlRGlza1BlcnNpc3RlbnRWb2x1bWVLaW5kLlNIQVJFRFxuICAgICovXG4gIHJlYWRvbmx5IGtpbmQ/OiB2b2x1bWUuQXp1cmVEaXNrUGVyc2lzdGVudFZvbHVtZUtpbmQ7XG5cbiAgLyoqXG4gICAgKiBGb3JjZSB0aGUgUmVhZE9ubHkgc2V0dGluZyBpbiBWb2x1bWVNb3VudHMuXG4gICAgKlxuICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAqL1xuICByZWFkb25seSByZWFkT25seT86IGJvb2xlYW47XG5cbn1cblxuLyoqXG4gKiBBenVyZURpc2sgcmVwcmVzZW50cyBhbiBBenVyZSBEYXRhIERpc2sgbW91bnQgb24gdGhlIGhvc3QgYW5kIGJpbmQgbW91bnQgdG8gdGhlIHBvZC5cbiAqL1xuZXhwb3J0IGNsYXNzIEF6dXJlRGlza1BlcnNpc3RlbnRWb2x1bWUgZXh0ZW5kcyBQZXJzaXN0ZW50Vm9sdW1lIHtcblxuICAvKipcbiAgICogRGlzayBuYW1lIG9mIHRoaXMgdm9sdW1lLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRpc2tOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERpc2sgVVJJIG9mIHRoaXMgdm9sdW1lLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRpc2tVcmk6IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgaXQgaXMgbW91bnRlZCBhcyBhIHJlYWQtb25seSB2b2x1bWUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVhZE9ubHk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENhY2hpbmcgbW9kZSBvZiB0aGlzIHZvbHVtZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjYWNoaW5nTW9kZTogdm9sdW1lLkF6dXJlRGlza1BlcnNpc3RlbnRWb2x1bWVDYWNoaW5nTW9kZTtcblxuICAvKipcbiAgICogRmlsZSBzeXN0ZW0gdHlwZSBvZiB0aGlzIHZvbHVtZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmc1R5cGU6IHN0cmluZztcblxuICAvKipcbiAgICogQXp1cmUga2luZCBvZiB0aGlzIHZvbHVtZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhenVyZUtpbmQ6IHZvbHVtZS5BenVyZURpc2tQZXJzaXN0ZW50Vm9sdW1lS2luZDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXp1cmVEaXNrUGVyc2lzdGVudFZvbHVtZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLmRpc2tOYW1lID0gcHJvcHMuZGlza05hbWU7XG4gICAgdGhpcy5kaXNrVXJpID0gcHJvcHMuZGlza1VyaTtcbiAgICB0aGlzLmNhY2hpbmdNb2RlID0gcHJvcHMuY2FjaGluZ01vZGUgPz8gdm9sdW1lLkF6dXJlRGlza1BlcnNpc3RlbnRWb2x1bWVDYWNoaW5nTW9kZS5OT05FO1xuICAgIHRoaXMuZnNUeXBlID0gcHJvcHMuZnNUeXBlID8/ICdleHQ0JztcbiAgICB0aGlzLmF6dXJlS2luZCA9IHByb3BzLmtpbmQgPz8gdm9sdW1lLkF6dXJlRGlza1BlcnNpc3RlbnRWb2x1bWVLaW5kLlNIQVJFRDtcbiAgICB0aGlzLnJlYWRPbmx5ID0gcHJvcHMucmVhZE9ubHkgPz8gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2t1YmVybmV0ZXMvZXhhbXBsZXMvYmxvYi9tYXN0ZXIvc3RhZ2luZy92b2x1bWVzL2F6dXJlX2Rpc2svUkVBRE1FLm1kXG4gICAqL1xuICBwdWJsaWMgX3RvS3ViZSgpOiBrOHMuUGVyc2lzdGVudFZvbHVtZVNwZWMge1xuICAgIGNvbnN0IHNwZWMgPSBzdXBlci5fdG9LdWJlKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnNwZWMsXG4gICAgICBhenVyZURpc2s6IHtcbiAgICAgICAgZGlza05hbWU6IHRoaXMuZGlza05hbWUsXG4gICAgICAgIGRpc2tVcmk6IHRoaXMuZGlza1VyaSxcbiAgICAgICAgY2FjaGluZ01vZGU6IHRoaXMuY2FjaGluZ01vZGUsXG4gICAgICAgIGZzVHlwZTogdGhpcy5mc1R5cGUsXG4gICAgICAgIGtpbmQ6IHRoaXMuYXp1cmVLaW5kLFxuICAgICAgICByZWFkT25seTogdGhpcy5yZWFkT25seSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGBHQ0VQZXJzaXN0ZW50RGlza1BlcnNpc3RlbnRWb2x1bWVgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdDRVBlcnNpc3RlbnREaXNrUGVyc2lzdGVudFZvbHVtZVByb3BzIGV4dGVuZHMgUGVyc2lzdGVudFZvbHVtZVByb3BzIHtcblxuICAvKipcbiAgICogVW5pcXVlIG5hbWUgb2YgdGhlIFBEIHJlc291cmNlIGluIEdDRS4gVXNlZCB0byBpZGVudGlmeSB0aGUgZGlzayBpbiBHQ0UuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS92b2x1bWVzI2djZXBlcnNpc3RlbnRkaXNrXG4gICAqL1xuICByZWFkb25seSBwZE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogRmlsZXN5c3RlbSB0eXBlIG9mIHRoZSB2b2x1bWUgdGhhdCB5b3Ugd2FudCB0byBtb3VudC5cbiAgICogVGlwOiBFbnN1cmUgdGhhdCB0aGUgZmlsZXN5c3RlbSB0eXBlIGlzIHN1cHBvcnRlZCBieSB0aGUgaG9zdCBvcGVyYXRpbmcgc3lzdGVtLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2Uvdm9sdW1lcyNhd3NlbGFzdGljYmxvY2tzdG9yZVxuICAgKiBAZGVmYXVsdCAnZXh0NCdcbiAgICovXG4gIHJlYWRvbmx5IGZzVHlwZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhcnRpdGlvbiBpbiB0aGUgdm9sdW1lIHRoYXQgeW91IHdhbnQgdG8gbW91bnQuIElmIG9taXR0ZWQsIHRoZSBkZWZhdWx0IGlzIHRvIG1vdW50IGJ5IHZvbHVtZSBuYW1lLlxuICAgKiBFeGFtcGxlczogRm9yIHZvbHVtZSAvZGV2L3NkYTEsIHlvdSBzcGVjaWZ5IHRoZSBwYXJ0aXRpb24gYXMgXCIxXCIuXG4gICAqIFNpbWlsYXJseSwgdGhlIHZvbHVtZSBwYXJ0aXRpb24gZm9yIC9kZXYvc2RhIGlzIFwiMFwiIChvciB5b3UgY2FuIGxlYXZlIHRoZSBwcm9wZXJ0eSBlbXB0eSkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gcGFydGl0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFydGl0aW9uPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IFwidHJ1ZVwiIHRvIGZvcmNlIGFuZCBzZXQgdGhlIFJlYWRPbmx5IHByb3BlcnR5IGluIFZvbHVtZU1vdW50cyB0byBcInRydWVcIi5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3ZvbHVtZXMjYXdzZWxhc3RpY2Jsb2Nrc3RvcmVcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHJlYWRPbmx5PzogYm9vbGVhbjtcblxufVxuXG4vKipcbiAqIEdDRVBlcnNpc3RlbnREaXNrIHJlcHJlc2VudHMgYSBHQ0UgRGlzayByZXNvdXJjZSB0aGF0IGlzIGF0dGFjaGVkIHRvIGEga3ViZWxldCdzIGhvc3QgbWFjaGluZVxuICogYW5kIHRoZW4gZXhwb3NlZCB0byB0aGUgcG9kLiBQcm92aXNpb25lZCBieSBhbiBhZG1pbi5cbiAqXG4gKiBAc2VlIGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2Uvdm9sdW1lcyNnY2VwZXJzaXN0ZW50ZGlza1xuICovXG5leHBvcnQgY2xhc3MgR0NFUGVyc2lzdGVudERpc2tQZXJzaXN0ZW50Vm9sdW1lIGV4dGVuZHMgUGVyc2lzdGVudFZvbHVtZSB7XG5cbiAgLyoqXG4gICAqIFBEIHJlc291cmNlIGluIEdDRSBvZiB0aGlzIHZvbHVtZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwZE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgaXQgaXMgbW91bnRlZCBhcyBhIHJlYWQtb25seSB2b2x1bWUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVhZE9ubHk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEZpbGUgc3lzdGVtIHR5cGUgb2YgdGhpcyB2b2x1bWUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZnNUeXBlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhcnRpdGlvbiBvZiB0aGlzIHZvbHVtZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwYXJ0aXRpb24/OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEdDRVBlcnNpc3RlbnREaXNrUGVyc2lzdGVudFZvbHVtZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLnBkTmFtZSA9IHByb3BzLnBkTmFtZTtcbiAgICB0aGlzLnJlYWRPbmx5ID0gcHJvcHMucmVhZE9ubHkgPz8gZmFsc2U7XG4gICAgdGhpcy5mc1R5cGUgPSBwcm9wcy5mc1R5cGUgPz8gJ2V4dDQnO1xuICAgIHRoaXMucGFydGl0aW9uID0gcHJvcHMucGFydGl0aW9uO1xuXG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2t1YmVybmV0ZXMvZXhhbXBsZXMvYmxvYi9tYXN0ZXIvc3RhZ2luZy92b2x1bWVzL2F6dXJlX2Rpc2svUkVBRE1FLm1kXG4gICAqL1xuICBwdWJsaWMgX3RvS3ViZSgpOiBrOHMuUGVyc2lzdGVudFZvbHVtZVNwZWMge1xuICAgIGNvbnN0IHNwZWMgPSBzdXBlci5fdG9LdWJlKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnNwZWMsXG4gICAgICBnY2VQZXJzaXN0ZW50RGlzazoge1xuICAgICAgICBwZE5hbWU6IHRoaXMucGROYW1lLFxuICAgICAgICBmc1R5cGU6IHRoaXMuZnNUeXBlLFxuICAgICAgICBwYXJ0aXRpb246IHRoaXMucGFydGl0aW9uLFxuICAgICAgICByZWFkT25seTogdGhpcy5yZWFkT25seSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufSJdfQ==
|
package/lib/pvc.d.ts
ADDED
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { Size, ApiObject } from 'cdk8s';
|
|
2
|
+
import { Construct } from 'constructs';
|
|
3
|
+
import * as base from './base';
|
|
4
|
+
import * as k8s from './imports/k8s';
|
|
5
|
+
import * as pv from './pv';
|
|
6
|
+
/**
|
|
7
|
+
* Contract of a `PersistentVolumeClaim`.
|
|
8
|
+
*/
|
|
9
|
+
export interface IPersistentVolumeClaim extends base.IResource {
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Properties for `PersistentVolumeClaim`.
|
|
13
|
+
*/
|
|
14
|
+
export interface PersistentVolumeClaimProps extends base.ResourceProps {
|
|
15
|
+
/**
|
|
16
|
+
* Contains the access modes the volume should support.
|
|
17
|
+
*
|
|
18
|
+
* @see https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
|
|
19
|
+
* @default - No access modes requirement.
|
|
20
|
+
*/
|
|
21
|
+
readonly accessModes?: PersistentVolumeAccessMode[];
|
|
22
|
+
/**
|
|
23
|
+
* Minimum storage size the volume should have.
|
|
24
|
+
*
|
|
25
|
+
* @see https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
|
|
26
|
+
* @default - No storage requirement.
|
|
27
|
+
*/
|
|
28
|
+
readonly storage?: Size;
|
|
29
|
+
/**
|
|
30
|
+
* Name of the StorageClass required by the claim.
|
|
31
|
+
* When this property is not set, the behavior is as follows:
|
|
32
|
+
*
|
|
33
|
+
* - If the admission plugin is turned on, the storage class marked as default will be used.
|
|
34
|
+
* - If the admission plugin is turned off, the pvc can only be bound to volumes without a storage class.
|
|
35
|
+
*
|
|
36
|
+
* @see https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
|
|
37
|
+
* @default - Not set.
|
|
38
|
+
*/
|
|
39
|
+
readonly storageClassName?: string;
|
|
40
|
+
/**
|
|
41
|
+
* Defines what type of volume is required by the claim.
|
|
42
|
+
*
|
|
43
|
+
* @default VolumeMode.FILE_SYSTEM
|
|
44
|
+
*/
|
|
45
|
+
readonly volumeMode?: PersistentVolumeMode;
|
|
46
|
+
/**
|
|
47
|
+
* The PersistentVolume backing this claim.
|
|
48
|
+
*
|
|
49
|
+
* The control plane still checks that storage class, access modes,
|
|
50
|
+
* and requested storage size on the volume are valid.
|
|
51
|
+
*
|
|
52
|
+
* Note that in order to guarantee a proper binding, the volume should
|
|
53
|
+
* also define a `claimRef` referring to this claim. Otherwise, the volume may be
|
|
54
|
+
* claimed be other pvc's before it gets a chance to bind to this one.
|
|
55
|
+
*
|
|
56
|
+
* If the volume is managed (i.e not imported), you can use `pv.claim()` to easily
|
|
57
|
+
* create a bi-directional bounded claim.
|
|
58
|
+
*
|
|
59
|
+
* @see https://kubernetes.io/docs/concepts/storage/persistent-volumes/#binding.
|
|
60
|
+
* @default - No specific volume binding.
|
|
61
|
+
*/
|
|
62
|
+
readonly volume?: pv.IPersistentVolume;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* A PersistentVolumeClaim (PVC) is a request for storage by a user.
|
|
66
|
+
* It is similar to a Pod. Pods consume node resources and PVCs consume PV resources.
|
|
67
|
+
* Pods can request specific levels of resources (CPU and Memory).
|
|
68
|
+
* Claims can request specific size and access modes
|
|
69
|
+
*/
|
|
70
|
+
export declare class PersistentVolumeClaim extends base.Resource implements IPersistentVolumeClaim {
|
|
71
|
+
/**
|
|
72
|
+
* Imports a pvc from the cluster as a reference.
|
|
73
|
+
*/
|
|
74
|
+
static fromClaimName(scope: Construct, id: string, claimName: string): IPersistentVolumeClaim;
|
|
75
|
+
/**
|
|
76
|
+
* @see base.Resource.apiObject
|
|
77
|
+
*/
|
|
78
|
+
protected readonly apiObject: ApiObject;
|
|
79
|
+
readonly resourceType = "persistentvolumeclaims";
|
|
80
|
+
/**
|
|
81
|
+
* Storage requirement of this claim.
|
|
82
|
+
*/
|
|
83
|
+
readonly storage?: Size;
|
|
84
|
+
/**
|
|
85
|
+
* Volume mode requirement of this claim.
|
|
86
|
+
*/
|
|
87
|
+
readonly volumeMode: PersistentVolumeMode;
|
|
88
|
+
/**
|
|
89
|
+
* Storage class requirment of this claim.
|
|
90
|
+
*/
|
|
91
|
+
readonly storageClassName?: string;
|
|
92
|
+
private readonly _accessModes?;
|
|
93
|
+
private _volume?;
|
|
94
|
+
constructor(scope: Construct, id: string, props?: PersistentVolumeClaimProps);
|
|
95
|
+
/**
|
|
96
|
+
* Access modes requirement of this claim.
|
|
97
|
+
*/
|
|
98
|
+
get accessModes(): PersistentVolumeAccessMode[] | undefined;
|
|
99
|
+
/**
|
|
100
|
+
* PV this claim is bound to. Undefined means the claim is not bound
|
|
101
|
+
* to any specific volume.
|
|
102
|
+
*/
|
|
103
|
+
get volume(): pv.IPersistentVolume | undefined;
|
|
104
|
+
/**
|
|
105
|
+
* Bind a claim to a specific volume.
|
|
106
|
+
* Note that you must also bind the volume to the claim.
|
|
107
|
+
*
|
|
108
|
+
* @see https://kubernetes.io/docs/concepts/storage/persistent-volumes/#binding
|
|
109
|
+
*
|
|
110
|
+
* @param vol The PV to bind to.
|
|
111
|
+
*/
|
|
112
|
+
bind(vol: pv.IPersistentVolume): void;
|
|
113
|
+
/**
|
|
114
|
+
* @internal
|
|
115
|
+
*/
|
|
116
|
+
_toKube(): k8s.PersistentVolumeClaimSpec;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Access Modes.
|
|
120
|
+
*/
|
|
121
|
+
export declare enum PersistentVolumeAccessMode {
|
|
122
|
+
/**
|
|
123
|
+
* The volume can be mounted as read-write by a single node.
|
|
124
|
+
* ReadWriteOnce access mode still can allow multiple pods to access
|
|
125
|
+
* the volume when the pods are running on the same node.
|
|
126
|
+
*/
|
|
127
|
+
READ_WRITE_ONCE = "ReadWriteOnce",
|
|
128
|
+
/**
|
|
129
|
+
* The volume can be mounted as read-only by many nodes.
|
|
130
|
+
*/
|
|
131
|
+
READ_ONLY_MANY = "ReadOnlyMany",
|
|
132
|
+
/**
|
|
133
|
+
* The volume can be mounted as read-write by many nodes.
|
|
134
|
+
*/
|
|
135
|
+
READ_WRITE_MANY = "ReadWriteMany",
|
|
136
|
+
/**
|
|
137
|
+
* The volume can be mounted as read-write by a single Pod.
|
|
138
|
+
* Use ReadWriteOncePod access mode if you want to ensure that
|
|
139
|
+
* only one pod across whole cluster can read that PVC or write to it.
|
|
140
|
+
* This is only supported for CSI volumes and Kubernetes version 1.22+.
|
|
141
|
+
*/
|
|
142
|
+
READ_WRITE_ONCE_POD = "ReadWriteOncePod"
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Volume Modes.
|
|
146
|
+
*/
|
|
147
|
+
export declare enum PersistentVolumeMode {
|
|
148
|
+
/**
|
|
149
|
+
* Volume is ounted into Pods into a directory.
|
|
150
|
+
* If the volume is backed by a block device and the device is empty,
|
|
151
|
+
* Kubernetes creates a filesystem on the device before mounting it
|
|
152
|
+
* for the first time.
|
|
153
|
+
*/
|
|
154
|
+
FILE_SYSTEM = "Filesystem",
|
|
155
|
+
/**
|
|
156
|
+
* Use a volume as a raw block device. Such volume is presented into a Pod as a block device,
|
|
157
|
+
* without any filesystem on it. This mode is useful to provide a Pod the fastest possible way
|
|
158
|
+
* to access a volume, without any filesystem layer between the Pod
|
|
159
|
+
* and the volume. On the other hand, the application running in
|
|
160
|
+
* the Pod must know how to handle a raw block device
|
|
161
|
+
*/
|
|
162
|
+
BLOCK = "Block"
|
|
163
|
+
}
|