1. Packages
  2. Packages
  3. Proxmox Virtual Environment (Proxmox VE)
  4. API Docs
  5. ceph
  6. getStatus
Viewing docs for Proxmox Virtual Environment (Proxmox VE) v8.3.0
published on Sunday, Jul 5, 2026 by Daniel Muehlbachler-Pietrzykowski
proxmoxve logo
Viewing docs for Proxmox Virtual Environment (Proxmox VE) v8.3.0
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 dictionary
    data "proxmoxve_ceph_getstatus" "name" {
        # arguments
    }

    The following arguments are supported:

    NodeName string
    Optional node name. When set, the data source queries the per-node endpoint; when omitted, it queries the cluster-wide endpoint.
    NodeName 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.
    nodeName String
    Optional node name. When set, the data source queries the per-node endpoint; when omitted, it queries the cluster-wide endpoint.
    nodeName 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.
    nodeName 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.
    HealthStatus string
    Overall cluster health: HEALTH_OK, HEALTH_WARN, or HEALTH_ERR.
    Id string
    The Ceph cluster fsid.
    QuorumNames List<string>
    Monitor names currently participating in the quorum.
    NodeName 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.
    HealthStatus string
    Overall cluster health: HEALTH_OK, HEALTH_WARN, or HEALTH_ERR.
    Id string
    The Ceph cluster fsid.
    QuorumNames []string
    Monitor names currently participating in the quorum.
    NodeName 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, or HEALTH_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.
    healthStatus String
    Overall cluster health: HEALTH_OK, HEALTH_WARN, or HEALTH_ERR.
    id String
    The Ceph cluster fsid.
    quorumNames List<String>
    Monitor names currently participating in the quorum.
    nodeName 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.
    healthStatus string
    Overall cluster health: HEALTH_OK, HEALTH_WARN, or HEALTH_ERR.
    id string
    The Ceph cluster fsid.
    quorumNames string[]
    Monitor names currently participating in the quorum.
    nodeName 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, or HEALTH_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.
    healthStatus String
    Overall cluster health: HEALTH_OK, HEALTH_WARN, or HEALTH_ERR.
    id String
    The Ceph cluster fsid.
    quorumNames List<String>
    Monitor names currently participating in the quorum.
    nodeName 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 proxmox Terraform Provider.
    proxmoxve logo
    Viewing docs for Proxmox Virtual Environment (Proxmox VE) v8.3.0
    published on Sunday, Jul 5, 2026 by Daniel Muehlbachler-Pietrzykowski

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial