@pulumi/eks
Version:
[](https://github.com/pulumi/pulumi-eks/actions/workflows/master.yml) [](https://slack.pulumi.com) [![n
46 lines • 1.87 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createStorageClass = void 0;
const k8s = require("@pulumi/kubernetes");
const pulumi = require("@pulumi/pulumi");
/**
* Creates a single Kubernetes StorageClass from the given inputs.
*/
function createStorageClass(name, storageClass, opts) {
// Compute the storage class's metadata, including its name and default storage class annotation.
const metadata = pulumi
.all([storageClass.metadata || {}, storageClass.default])
.apply(([m, isDefault]) => {
if (isDefault) {
m.annotations = Object.assign(Object.assign({}, (m.annotations || {})), { "storageclass.kubernetes.io/is-default-class": "true" });
}
return m;
});
// Figure out the parameters for the storage class.
const parameters = {
type: storageClass.type,
};
if (storageClass.zones) {
parameters["zones"] = pulumi.output(storageClass.zones).apply((v) => v.join(", "));
}
if (storageClass.iopsPerGb) {
parameters["iopsPerGb"] = pulumi.output(storageClass.iopsPerGb).apply((v) => `${v}`);
}
if (storageClass.encrypted) {
parameters["encrypted"] = pulumi.output(storageClass.encrypted).apply((v) => `${v}`);
}
if (storageClass.kmsKeyId) {
parameters["kmsKeyId"] = storageClass.kmsKeyId;
}
return new k8s.storage.v1.StorageClass(name, {
metadata: metadata,
provisioner: "kubernetes.io/aws-ebs",
parameters: parameters,
allowVolumeExpansion: storageClass.allowVolumeExpansion,
mountOptions: storageClass.mountOptions,
reclaimPolicy: storageClass.reclaimPolicy,
volumeBindingMode: storageClass.volumeBindingMode,
}, opts);
}
exports.createStorageClass = createStorageClass;
//# sourceMappingURL=storageclassMixins.js.map