UNPKG

@muhlba91/pulumi-proxmoxve

Version:

A Pulumi package for creating and managing Proxmox Virtual Environment cloud resources.

260 lines 10.4 kB
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