@muhlba91/pulumi-proxmoxve
Version:
A Pulumi package for creating and managing Proxmox Virtual Environment cloud resources.
260 lines • 10.4 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
/**
* > **Experimental.** Schema and behavior may change in future releases. Pin the provider version if stability matters.
*
* Manages a Ceph pool on a Proxmox VE cluster.
*
* ## Example Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as proxmoxve from "@muhlba91/pulumi-proxmoxve";
*
* const example = new proxmoxve.ceph.Pool("example", {
* nodeName: "pve",
* name: "tank",
* application: "rbd",
* size: 3,
* minSize: 2,
* pgNum: 128,
* pgAutoscaleMode: "warn",
* });
* ```
*
* ## Import
*
* !/usr/bin/env sh
* Ceph pools can be imported using the format `node_name/pool_name`, e.g.:
*
* ```sh
* $ pulumi import proxmoxve:ceph/pool:Pool example pve/tank
* ```
*/
export declare class Pool extends pulumi.CustomResource {
/**
* Get an existing Pool resource's state with the given name, ID, and optional extra
* properties used to qualify the lookup.
*
* @param name The _unique_ name of the resulting resource.
* @param id The _unique_ provider ID of the resource to lookup.
* @param state Any extra arguments used during the lookup.
* @param opts Optional settings to control the behavior of the CustomResource.
*/
static get(name: string, id: pulumi.Input<pulumi.ID>, state?: PoolState, opts?: pulumi.CustomResourceOptions): Pool;
/**
* Returns true if the given object is an instance of Pool. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
static isInstance(obj: any): obj is Pool;
/**
* Configure VM and CT storage entries using the new pool. Applied at create time only; changing this value forces replacement.
*/
readonly addStorages: pulumi.Output<boolean | undefined>;
/**
* The application using the pool. One of `rbd`, `cephfs`, `rgw`. Defaults to `rbd` server-side.
*/
readonly application: pulumi.Output<string>;
/**
* The CRUSH rule name used for object placement.
*/
readonly crushRule: pulumi.Output<string>;
/**
* Create an erasure coded pool. Specified as `k=<int>,m=<int>[,profile=name][,device-class=class][,failure-domain=domain]` (e.g. `k=4,m=2`). Cannot be changed after creation.
*/
readonly erasureCoding: pulumi.Output<string | undefined>;
/**
* If true, destroy the pool even when in use. Passed as `force=1` on delete.
*/
readonly forceDestroy: pulumi.Output<boolean>;
/**
* Minimum number of replicas per object.
*/
readonly minSize: pulumi.Output<number>;
/**
* The pool name. Must be unique within the Ceph cluster.
*/
readonly name: pulumi.Output<string>;
/**
* The cluster node used to dispatch the API call. Any node running Ceph is acceptable; the pool itself is cluster-wide.
*/
readonly nodeName: pulumi.Output<string>;
/**
* PG autoscaler mode. One of `on`, `off`, `warn`.
*/
readonly pgAutoscaleMode: pulumi.Output<string>;
/**
* Number of placement groups.
*/
readonly pgNum: pulumi.Output<number>;
/**
* Minimum number of placement groups (used by the autoscaler).
*/
readonly pgNumMin: pulumi.Output<number>;
/**
* If true, remove the erasure code profile on destroy. Defaults to true. Only relevant for EC pools.
*/
readonly removeEcprofile: pulumi.Output<boolean>;
/**
* If true, remove all pveceph-managed storages configured for this pool on destroy.
*/
readonly removeStorages: pulumi.Output<boolean>;
/**
* Number of replicas per object.
*/
readonly size: pulumi.Output<number>;
/**
* Estimated target size for the PG autoscaler (e.g. `100G`). **Write-only:** PVE returns this as a bytes integer (e.g. `1073741824`) while the input accepts a unit-suffixed string, so the configured spec is not round-tripped from the server.
*/
readonly targetSize: pulumi.Output<string | undefined>;
/**
* Estimated target ratio for the PG autoscaler. **Write-only:** kept symmetric with `targetSize` (which cannot be round-tripped), so the configured value is not refreshed from the server.
*/
readonly targetSizeRatio: pulumi.Output<number | undefined>;
/**
* Create a Pool resource with the given unique name, arguments, and options.
*
* @param name The _unique_ name of the resource.
* @param args The arguments to use to populate this resource's properties.
* @param opts A bag of options that control this resource's behavior.
*/
constructor(name: string, args: PoolArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering Pool resources.
*/
export interface PoolState {
/**
* Configure VM and CT storage entries using the new pool. Applied at create time only; changing this value forces replacement.
*/
addStorages?: pulumi.Input<boolean | undefined>;
/**
* The application using the pool. One of `rbd`, `cephfs`, `rgw`. Defaults to `rbd` server-side.
*/
application?: pulumi.Input<string | undefined>;
/**
* The CRUSH rule name used for object placement.
*/
crushRule?: pulumi.Input<string | undefined>;
/**
* Create an erasure coded pool. Specified as `k=<int>,m=<int>[,profile=name][,device-class=class][,failure-domain=domain]` (e.g. `k=4,m=2`). Cannot be changed after creation.
*/
erasureCoding?: pulumi.Input<string | undefined>;
/**
* If true, destroy the pool even when in use. Passed as `force=1` on delete.
*/
forceDestroy?: pulumi.Input<boolean | undefined>;
/**
* Minimum number of replicas per object.
*/
minSize?: pulumi.Input<number | undefined>;
/**
* The pool name. Must be unique within the Ceph cluster.
*/
name?: pulumi.Input<string | undefined>;
/**
* The cluster node used to dispatch the API call. Any node running Ceph is acceptable; the pool itself is cluster-wide.
*/
nodeName?: pulumi.Input<string | undefined>;
/**
* PG autoscaler mode. One of `on`, `off`, `warn`.
*/
pgAutoscaleMode?: pulumi.Input<string | undefined>;
/**
* Number of placement groups.
*/
pgNum?: pulumi.Input<number | undefined>;
/**
* Minimum number of placement groups (used by the autoscaler).
*/
pgNumMin?: pulumi.Input<number | undefined>;
/**
* If true, remove the erasure code profile on destroy. Defaults to true. Only relevant for EC pools.
*/
removeEcprofile?: pulumi.Input<boolean | undefined>;
/**
* If true, remove all pveceph-managed storages configured for this pool on destroy.
*/
removeStorages?: pulumi.Input<boolean | undefined>;
/**
* Number of replicas per object.
*/
size?: pulumi.Input<number | undefined>;
/**
* Estimated target size for the PG autoscaler (e.g. `100G`). **Write-only:** PVE returns this as a bytes integer (e.g. `1073741824`) while the input accepts a unit-suffixed string, so the configured spec is not round-tripped from the server.
*/
targetSize?: pulumi.Input<string | undefined>;
/**
* Estimated target ratio for the PG autoscaler. **Write-only:** kept symmetric with `targetSize` (which cannot be round-tripped), so the configured value is not refreshed from the server.
*/
targetSizeRatio?: pulumi.Input<number | undefined>;
}
/**
* The set of arguments for constructing a Pool resource.
*/
export interface PoolArgs {
/**
* Configure VM and CT storage entries using the new pool. Applied at create time only; changing this value forces replacement.
*/
addStorages?: pulumi.Input<boolean | undefined>;
/**
* The application using the pool. One of `rbd`, `cephfs`, `rgw`. Defaults to `rbd` server-side.
*/
application?: pulumi.Input<string | undefined>;
/**
* The CRUSH rule name used for object placement.
*/
crushRule?: pulumi.Input<string | undefined>;
/**
* Create an erasure coded pool. Specified as `k=<int>,m=<int>[,profile=name][,device-class=class][,failure-domain=domain]` (e.g. `k=4,m=2`). Cannot be changed after creation.
*/
erasureCoding?: pulumi.Input<string | undefined>;
/**
* If true, destroy the pool even when in use. Passed as `force=1` on delete.
*/
forceDestroy?: pulumi.Input<boolean | undefined>;
/**
* Minimum number of replicas per object.
*/
minSize?: pulumi.Input<number | undefined>;
/**
* The pool name. Must be unique within the Ceph cluster.
*/
name?: pulumi.Input<string | undefined>;
/**
* The cluster node used to dispatch the API call. Any node running Ceph is acceptable; the pool itself is cluster-wide.
*/
nodeName: pulumi.Input<string>;
/**
* PG autoscaler mode. One of `on`, `off`, `warn`.
*/
pgAutoscaleMode?: pulumi.Input<string | undefined>;
/**
* Number of placement groups.
*/
pgNum?: pulumi.Input<number | undefined>;
/**
* Minimum number of placement groups (used by the autoscaler).
*/
pgNumMin?: pulumi.Input<number | undefined>;
/**
* If true, remove the erasure code profile on destroy. Defaults to true. Only relevant for EC pools.
*/
removeEcprofile?: pulumi.Input<boolean | undefined>;
/**
* If true, remove all pveceph-managed storages configured for this pool on destroy.
*/
removeStorages?: pulumi.Input<boolean | undefined>;
/**
* Number of replicas per object.
*/
size?: pulumi.Input<number | undefined>;
/**
* Estimated target size for the PG autoscaler (e.g. `100G`). **Write-only:** PVE returns this as a bytes integer (e.g. `1073741824`) while the input accepts a unit-suffixed string, so the configured spec is not round-tripped from the server.
*/
targetSize?: pulumi.Input<string | undefined>;
/**
* Estimated target ratio for the PG autoscaler. **Write-only:** kept symmetric with `targetSize` (which cannot be round-tripped), so the configured value is not refreshed from the server.
*/
targetSizeRatio?: pulumi.Input<number | undefined>;
}
//# sourceMappingURL=pool.d.ts.map