published on Sunday, Jul 5, 2026 by Daniel Muehlbachler-Pietrzykowski
published on Sunday, Jul 5, 2026 by Daniel Muehlbachler-Pietrzykowski
Experimental. Schema and behavior may change in future releases. Pin the provider version if stability matters.
Retrieves Ceph status from Proxmox. Queries the per-node endpoint when nodeName is set, otherwise the cluster-wide endpoint.
When nodeName is set, the data source queries /nodes/{node}/ceph/status
(the node-local view). When nodeName is omitted, it queries
/cluster/ceph/status (the cluster-wide view). Both endpoints return the
same payload shape; only the failure modes differ when Ceph is misconfigured
on a specific node.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as proxmoxve from "@muhlba91/pulumi-proxmoxve";
// Cluster-wide Ceph status (hits GET /cluster/ceph/status).
const cluster = proxmoxve.ceph.getStatus({});
// Node-scoped Ceph status (hits GET /nodes/{node}/ceph/status).
const node = proxmoxve.ceph.getStatus({
nodeName: "pve",
});
export const cephHealth = cluster.then(cluster => cluster.healthStatus);
export const cephFsid = cluster.then(cluster => cluster.fsid);
export const cephQuorum = cluster.then(cluster => cluster.quorumNames);
import pulumi
import pulumi_proxmoxve as proxmoxve
# Cluster-wide Ceph status (hits GET /cluster/ceph/status).
cluster = proxmoxve.ceph.get_status()
# Node-scoped Ceph status (hits GET /nodes/{node}/ceph/status).
node = proxmoxve.ceph.get_status(node_name="pve")
pulumi.export("cephHealth", cluster.health_status)
pulumi.export("cephFsid", cluster.fsid)
pulumi.export("cephQuorum", cluster.quorum_names)
package main
import (
"github.com/muhlba91/pulumi-proxmoxve/sdk/v8/go/proxmoxve/ceph"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// Cluster-wide Ceph status (hits GET /cluster/ceph/status).
cluster, err := ceph.GetStatus(ctx, &ceph.GetStatusArgs{}, nil)
if err != nil {
return err
}
// Node-scoped Ceph status (hits GET /nodes/{node}/ceph/status).
_, err = ceph.GetStatus(ctx, &ceph.GetStatusArgs{
NodeName: pulumi.StringRef("pve"),
}, nil)
if err != nil {
return err
}
ctx.Export("cephHealth", cluster.HealthStatus)
ctx.Export("cephFsid", cluster.Fsid)
ctx.Export("cephQuorum", cluster.QuorumNames)
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using ProxmoxVE = Pulumi.ProxmoxVE;
return await Deployment.RunAsync(() =>
{
// Cluster-wide Ceph status (hits GET /cluster/ceph/status).
var cluster = ProxmoxVE.Ceph.GetStatus.Invoke();
// Node-scoped Ceph status (hits GET /nodes/{node}/ceph/status).
var node = ProxmoxVE.Ceph.GetStatus.Invoke(new()
{
NodeName = "pve",
});
return new Dictionary<string, object?>
{
["cephHealth"] = cluster.Apply(getStatusResult => getStatusResult.HealthStatus),
["cephFsid"] = cluster.Apply(getStatusResult => getStatusResult.Fsid),
["cephQuorum"] = cluster.Apply(getStatusResult => getStatusResult.QuorumNames),
};
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.proxmoxve.ceph.CephFunctions;
import com.pulumi.proxmoxve.ceph.inputs.GetStatusArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
// Cluster-wide Ceph status (hits GET /cluster/ceph/status).
final var cluster = CephFunctions.getStatus(GetStatusArgs.builder()
.build());
// Node-scoped Ceph status (hits GET /nodes/{node}/ceph/status).
final var node = CephFunctions.getStatus(GetStatusArgs.builder()
.nodeName("pve")
.build());
ctx.export("cephHealth", cluster.healthStatus());
ctx.export("cephFsid", cluster.fsid());
ctx.export("cephQuorum", cluster.quorumNames());
}
}
variables:
# Cluster-wide Ceph status (hits GET /cluster/ceph/status).
cluster:
fn::invoke:
function: proxmoxve:ceph:getStatus
arguments: {}
# Node-scoped Ceph status (hits GET /nodes/{node}/ceph/status).
node:
fn::invoke:
function: proxmoxve:ceph:getStatus
arguments:
nodeName: pve
outputs:
cephHealth: ${cluster.healthStatus}
cephFsid: ${cluster.fsid}
cephQuorum: ${cluster.quorumNames}
pulumi {
required_providers {
proxmoxve = {
source = "pulumi/proxmoxve"
}
}
}
data "proxmoxve_ceph_getstatus" "cluster" {
}
data "proxmoxve_ceph_getstatus" "node" {
node_name = "pve"
}
// Cluster-wide Ceph status (hits GET /cluster/ceph/status).
// Node-scoped Ceph status (hits GET /nodes/{node}/ceph/status).
output "cephHealth" {
value = data.proxmoxve_ceph_getstatus.cluster.health_status
}
output "cephFsid" {
value = data.proxmoxve_ceph_getstatus.cluster.fsid
}
output "cephQuorum" {
value = data.proxmoxve_ceph_getstatus.cluster.quorum_names
}
Using getStatus
Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.
function getStatus(args: GetStatusArgs, opts?: InvokeOptions): Promise<GetStatusResult>
function getStatusOutput(args: GetStatusOutputArgs, opts?: InvokeOptions): Output<GetStatusResult>def get_status(node_name: Optional[str] = None,
opts: Optional[InvokeOptions] = None) -> GetStatusResult
def get_status_output(node_name: pulumi.Input[Optional[str]] = None,
opts: Optional[InvokeOptions] = None) -> Output[GetStatusResult]func GetStatus(ctx *Context, args *GetStatusArgs, opts ...InvokeOption) (*GetStatusResult, error)
func GetStatusOutput(ctx *Context, args *GetStatusOutputArgs, opts ...InvokeOption) GetStatusResultOutput> Note: This function is named GetStatus in the Go SDK.
public static class GetStatus
{
public static Task<GetStatusResult> InvokeAsync(GetStatusArgs args, InvokeOptions? opts = null)
public static Output<GetStatusResult> Invoke(GetStatusInvokeArgs args, InvokeOptions? opts = null)
}public static CompletableFuture<GetStatusResult> getStatus(GetStatusArgs args, InvokeOptions options)
public static Output<GetStatusResult> getStatus(GetStatusArgs args, InvokeOptions options)
fn::invoke:
function: proxmoxve:ceph/getStatus:getStatus
arguments:
# arguments dictionarydata "proxmoxve_ceph_get_status" "name" {
# arguments
}The following arguments are supported:
- Node
Name string - Optional node name. When set, the data source queries the per-node endpoint; when omitted, it queries the cluster-wide endpoint.
- Node
Name string - Optional node name. When set, the data source queries the per-node endpoint; when omitted, it queries the cluster-wide endpoint.
- node_
name string - Optional node name. When set, the data source queries the per-node endpoint; when omitted, it queries the cluster-wide endpoint.
- node
Name String - Optional node name. When set, the data source queries the per-node endpoint; when omitted, it queries the cluster-wide endpoint.
- node
Name string - Optional node name. When set, the data source queries the per-node endpoint; when omitted, it queries the cluster-wide endpoint.
- node_
name str - Optional node name. When set, the data source queries the per-node endpoint; when omitted, it queries the cluster-wide endpoint.
- node
Name String - Optional node name. When set, the data source queries the per-node endpoint; when omitted, it queries the cluster-wide endpoint.
getStatus Result
The following output properties are available:
- Fsid string
- Ceph cluster UUID.
- Health
Status string - Overall cluster health:
HEALTH_OK,HEALTH_WARN, orHEALTH_ERR. - Id string
- The Ceph cluster
fsid. - Quorum
Names List<string> - Monitor names currently participating in the quorum.
- Node
Name string - Optional node name. When set, the data source queries the per-node endpoint; when omitted, it queries the cluster-wide endpoint.
- Fsid string
- Ceph cluster UUID.
- Health
Status string - Overall cluster health:
HEALTH_OK,HEALTH_WARN, orHEALTH_ERR. - Id string
- The Ceph cluster
fsid. - Quorum
Names []string - Monitor names currently participating in the quorum.
- Node
Name string - Optional node name. When set, the data source queries the per-node endpoint; when omitted, it queries the cluster-wide endpoint.
- fsid string
- Ceph cluster UUID.
- health_
status string - Overall cluster health:
HEALTH_OK,HEALTH_WARN, orHEALTH_ERR. - id string
- The Ceph cluster
fsid. - quorum_
names list(string) - Monitor names currently participating in the quorum.
- node_
name string - Optional node name. When set, the data source queries the per-node endpoint; when omitted, it queries the cluster-wide endpoint.
- fsid String
- Ceph cluster UUID.
- health
Status String - Overall cluster health:
HEALTH_OK,HEALTH_WARN, orHEALTH_ERR. - id String
- The Ceph cluster
fsid. - quorum
Names List<String> - Monitor names currently participating in the quorum.
- node
Name String - Optional node name. When set, the data source queries the per-node endpoint; when omitted, it queries the cluster-wide endpoint.
- fsid string
- Ceph cluster UUID.
- health
Status string - Overall cluster health:
HEALTH_OK,HEALTH_WARN, orHEALTH_ERR. - id string
- The Ceph cluster
fsid. - quorum
Names string[] - Monitor names currently participating in the quorum.
- node
Name string - Optional node name. When set, the data source queries the per-node endpoint; when omitted, it queries the cluster-wide endpoint.
- fsid str
- Ceph cluster UUID.
- health_
status str - Overall cluster health:
HEALTH_OK,HEALTH_WARN, orHEALTH_ERR. - id str
- The Ceph cluster
fsid. - quorum_
names Sequence[str] - Monitor names currently participating in the quorum.
- node_
name str - Optional node name. When set, the data source queries the per-node endpoint; when omitted, it queries the cluster-wide endpoint.
- fsid String
- Ceph cluster UUID.
- health
Status String - Overall cluster health:
HEALTH_OK,HEALTH_WARN, orHEALTH_ERR. - id String
- The Ceph cluster
fsid. - quorum
Names List<String> - Monitor names currently participating in the quorum.
- node
Name String - Optional node name. When set, the data source queries the per-node endpoint; when omitted, it queries the cluster-wide endpoint.
Package Details
- Repository
- proxmoxve muhlba91/pulumi-proxmoxve
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
proxmoxTerraform Provider.
published on Sunday, Jul 5, 2026 by Daniel Muehlbachler-Pietrzykowski