Clusters
This article refers to SDK version v0.5.0. The current SDK version is N/A.
A cluster groups nodes so they can be configured and deployed to together, without repeating the same call once per node. Clusters have their own global secrets and configuration, independent of any single node's. See the Overview for narrative examples, and Clusters for the equivalent Panel actions.
Cluster. A group of nodes an operator manages and deploys to as one unit in Barbara Panel, giving High Availability instead of a single point of failure.
Learn moreClustersResource
ClustersResource(client: BarbaraClient)
list
list(*, search: Optional[str] = None, size: Optional[int] = None) -> List[Cluster]
Returns a single page — use paginate() for total or to
page through more clusters than the server's default page size.
paginate
paginate(*, search: Optional[str] = None, size: int = 50, from_: int = 0) -> Page
get
get(cluster_id: str) -> Cluster
update
update(cluster_id: str, name: str) -> None
No documented response body — call get() afterwards if you need it.
delete
delete(cluster_id: str) -> None
create
create(
name: str,
primary_node: Dict[str, Any],
*,
secondary_nodes: Optional[List[Dict[str, Any]]] = None,
enable_cluster_volumes: bool = False,
virtual_ip_enabled: bool = False,
id_vrr: Optional[int] = None,
password: Optional[str] = None,
virtual_ip: Optional[str] = None,
sync_time: Optional[float] = None,
multicast: bool = False,
default_addr_pool: Optional[List[str]] = None,
subnet_size: Optional[int] = None,
) -> None
primary_node and each item of secondary_nodes are the raw
per-node VRRP/swarm config dicts the API expects (nodeId,
labels as base64 JSON, advertiseAddr, ...) — this method
doesn't reshape them, since cluster networking config is inherently
node-specific. password (VRRP password) is base64-encoded
internally.
join_node
join_node(
cluster_id: str,
node_id: str,
*,
labels: Dict[str, str],
restrict_swarm_traffic_to_interface: bool,
advertise_addr: str,
iface: Optional[str] = None,
unicast_ip: Optional[str] = None,
swarm_iface: Optional[str] = None,
priority: Optional[float] = None,
track_interfaces: Optional[List[str]] = None,
) -> None
labels is a plain {key: value} mapping — JSON+base64-encoded
internally, matching the convention documented on the endpoint.
leave_node
leave_node(cluster_id: str, node_id: str, *, force: bool = False) -> None
pause_node
pause_node(cluster_id: str, node_id: str) -> None
drain_node
drain_node(cluster_id: str, node_id: str) -> None
set_node_active
set_node_active(cluster_id: str, node_id: str) -> None
update_node_config
update_node_config(cluster_id: str, node_id: str, labels: Dict[str, str]) -> None
labels is a plain {key: value} mapping — JSON+base64-encoded
internally.
create_swarm_volume
create_swarm_volume(cluster_id: str, volume_name: str) -> None
volume_name is base64-encoded internally.
delete_all_swarm_volumes
delete_all_swarm_volumes(cluster_id: str) -> None
delete_swarm_volume
delete_swarm_volume(cluster_id: str, volume_id: str) -> None
volume_id is an internal _id, not the volume name — see
NodesResource.list_docker_volumes for the equivalent lookup at
node scope.
set_global_config
set_global_config(
cluster_id: str,
*,
config: Optional[Dict[str, Any]] = None,
config_id: Optional[str] = None,
) -> None
list_global_secrets
list_global_secrets(cluster_id: str) -> List[Dict[str, Any]]
secrets is a single object per cluster ({"secretList": [...], "lastUpdated": ...}), not an array — the actual per-secret list is
secrets.secretList.
get_global_secret
get_global_secret(cluster_id: str, secret_id: str) -> GlobalSecret
export_global_secrets
export_global_secrets(cluster_id: str) -> List[Dict[str, Any]]
create_global_secrets
create_global_secrets(cluster_id: str, secrets: Dict[str, str]) -> None
delete_global_secret
delete_global_secret(cluster_id: str, secret_id: str) -> None
delete_all_global_secrets
delete_all_global_secrets(cluster_id: str) -> None
create_docker_credentials
create_docker_credentials(cluster_id: str, credentials: List[Dict[str, str]]) -> None
delete_all_docker_credentials
delete_all_docker_credentials(cluster_id: str) -> None
delete_all_swarm_configs
delete_all_swarm_configs(cluster_id: str) -> None
delete_swarm_config
delete_swarm_config(cluster_id: str, config_id: str) -> None
delete_all_swarm_secrets
delete_all_swarm_secrets(cluster_id: str) -> None
delete_swarm_secret
delete_swarm_secret(cluster_id: str, secret_id: str) -> None
AsyncClustersResource
AsyncClustersResource(client: AsyncBarbaraClient)
list
list(*, search: Optional[str] = None, size: Optional[int] = None) -> List[Cluster]
paginate
paginate(*, search: Optional[str] = None, size: int = 50, from_: int = 0) -> Page
get
get(cluster_id: str) -> Cluster
update
update(cluster_id: str, name: str) -> None
delete
delete(cluster_id: str) -> None
create
create(
name: str,
primary_node: Dict[str, Any],
*,
secondary_nodes: Optional[List[Dict[str, Any]]] = None,
enable_cluster_volumes: bool = False,
virtual_ip_enabled: bool = False,
id_vrr: Optional[int] = None,
password: Optional[str] = None,
virtual_ip: Optional[str] = None,
sync_time: Optional[float] = None,
multicast: bool = False,
default_addr_pool: Optional[List[str]] = None,
subnet_size: Optional[int] = None,
) -> None
join_node
join_node(
cluster_id: str,
node_id: str,
*,
labels: Dict[str, str],
restrict_swarm_traffic_to_interface: bool,
advertise_addr: str,
iface: Optional[str] = None,
unicast_ip: Optional[str] = None,
swarm_iface: Optional[str] = None,
priority: Optional[float] = None,
track_interfaces: Optional[List[str]] = None,
) -> None
leave_node
leave_node(cluster_id: str, node_id: str, *, force: bool = False) -> None
pause_node
pause_node(cluster_id: str, node_id: str) -> None
drain_node
drain_node(cluster_id: str, node_id: str) -> None
set_node_active
set_node_active(cluster_id: str, node_id: str) -> None
update_node_config
update_node_config(cluster_id: str, node_id: str, labels: Dict[str, str]) -> None
create_swarm_volume
create_swarm_volume(cluster_id: str, volume_name: str) -> None
delete_all_swarm_volumes
delete_all_swarm_volumes(cluster_id: str) -> None
delete_swarm_volume
delete_swarm_volume(cluster_id: str, volume_id: str) -> None
set_global_config
set_global_config(
cluster_id: str,
*,
config: Optional[Dict[str, Any]] = None,
config_id: Optional[str] = None,
) -> None
list_global_secrets
list_global_secrets(cluster_id: str) -> List[Dict[str, Any]]
get_global_secret
get_global_secret(cluster_id: str, secret_id: str) -> GlobalSecret
export_global_secrets
export_global_secrets(cluster_id: str) -> List[Dict[str, Any]]
create_global_secrets
create_global_secrets(cluster_id: str, secrets: Dict[str, str]) -> None
delete_global_secret
delete_global_secret(cluster_id: str, secret_id: str) -> None
delete_all_global_secrets
delete_all_global_secrets(cluster_id: str) -> None
create_docker_credentials
create_docker_credentials(cluster_id: str, credentials: List[Dict[str, str]]) -> None
delete_all_docker_credentials
delete_all_docker_credentials(cluster_id: str) -> None
delete_all_swarm_configs
delete_all_swarm_configs(cluster_id: str) -> None
delete_swarm_config
delete_swarm_config(cluster_id: str, config_id: str) -> None
delete_all_swarm_secrets
delete_all_swarm_secrets(cluster_id: str) -> None
delete_swarm_secret
delete_swarm_secret(cluster_id: str, secret_id: str) -> None
Signatures above are generated from barbara-api-sdk 0.5.0 docstrings. If a new SDK release changes one, this page needs a re-sync — the surrounding prose does not update itself.