Skip to content

Commit fe547a3

Browse files
authored
Merge pull request #51 from platform9/pushkar/pcd-9784-docs
docs: import-ID lookups and a Community Edition example (PCD-9784)
2 parents 88954f2 + 28d648a commit fe547a3

129 files changed

Lines changed: 2805 additions & 94 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,29 @@ All notable changes to this project are documented here. The format is based on
44
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to
55
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7+
## [Unreleased]
8+
9+
### Documentation
10+
11+
- **Every import now says where its ID comes from** (PCD-9784). Each resource's Import section
12+
names the `pcdctl` command (or resource-manager call) that prints the ID it needs, and a new
13+
[Importing guide](docs/guides/importing.md) covers CLI setup, `terraform import` versus
14+
`import` blocks with generated configuration, a per-resource lookup table, the resmgr host
15+
UUID, and a worked blueprint import.
16+
- **A runnable Community Edition example** at `examples/complete/community-edition/`, rendered
17+
by the new [Community Edition guide](docs/guides/community-edition.md): from one prepared
18+
host to a running instance with an NFS-backed volume attached, in one apply. Validated end to
19+
end on a Community Edition 2026.4 lab.
20+
- `pcd_blockstorage_volume_type` and `pcd_cluster_blueprint` explain how `volume_backend_name`,
21+
`storage_backends_json`, `image_library_storage`, and `pcd_host_cluster_role.backends` fit
22+
together; the README's PCD-native table adds `pcd_cluster` and `pcd_host_cluster_role`.
23+
- **Corrected `pcd_host_cluster_role.backends`:** it lists the *second-level* keys of
24+
`storage_backends_json` (the driver configuration names), not the top-level backend names as
25+
the description said. The top-level key is what becomes `volume_backend_name` on the host.
26+
Naming a top-level key in `backends` yields an empty backend set, `cinder-volume` cannot
27+
start, and the host is stuck converging while resmgr refuses every role change (409). The
28+
mistake was invisible while every example used the same name at both levels.
29+
730
## [0.1.10] - 2026-09-03
831

932
### Changed

README.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,19 @@ can do.
1818

1919
| Resource | What it manages |
2020
|---|---|
21-
| `pcd_cluster_blueprint` | The region's **cluster blueprint** — the shared config every virtualized cluster inherits: networking type (OVN/OVS), virtual-network segmentation range, image-library and VM storage, Cinder backends, VM HA, and auto-rebalancing. PCD keeps one per region, so the usual flow is `terraform import` then manage in place. Also available read-only as the `pcd_cluster_blueprint` data source. |
21+
| `pcd_cluster_blueprint` | The region's **cluster blueprint** — the shared config every virtualized cluster inherits: virtual-network segmentation range, DNS domain, image-library and VM storage, and the Cinder storage backends. PCD keeps one per region, so the usual flow is `terraform import` then manage in place. Also available read-only as the `pcd_cluster_blueprint` data source. |
22+
| `pcd_cluster` | A **cluster** (host cluster) — the unit hypervisors join, carrying VM high availability, auto-rebalancing, GPU, and CPU-model settings. |
2223
| `pcd_host_config` | A **host configuration** — the mapping of each traffic type (management, VM console, tunneling, image library, live migration) to a network interface, plus physical-network labels. |
23-
| `pcd_host_role` | Assigns a **PCD role** (e.g. `pf9-ostackhost-neutron`) to an onboarded host. |
2424
| `pcd_host_config_assignment` | Attaches a host configuration to a host. |
25+
| `pcd_host_cluster_role` | Onboards a host by assigning it a **cluster role** (`hypervisor`, `image-library`, `persistent-storage`, `dns`); PCD computes the granular role settings from the blueprint and host configuration. |
26+
| `pcd_host_role` | Assigns one granular **PCD role** (e.g. `pf9-ostackhost-neutron`) directly; the low-level API under `pcd_host_cluster_role`. |
27+
28+
Two guides on the registry tie these together: the
29+
[Community Edition guide](https://registry.terraform.io/providers/platform9/pcd/latest/docs/guides/community-edition)
30+
builds a region from an empty host to a running VM (the source is
31+
[`examples/complete/community-edition/`](examples/complete/community-edition/)), and the
32+
[Importing guide](https://registry.terraform.io/providers/platform9/pcd/latest/docs/guides/importing)
33+
says where every import ID comes from.
2534

2635
Everything else mirrors `terraform-provider-openstack` closely (attribute names, import IDs,
2736
`OS_*` env), so migrating an existing OpenStack configuration is largely mechanical.

docs/data-sources/cluster_blueprint.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ data "pcd_cluster_blueprint" "example" {
3030
- `dns_domain_name` (String) The internal DNS domain name for VMs.
3131
- `enable_distributed_routing` (Boolean) Whether distributed routing is enabled for the region. PCD-set; not user-configurable.
3232
- `image_library_shared_storage` (Boolean) Whether the image library uses shared storage.
33-
- `image_library_storage` (String) The image library storage location.
33+
- `image_library_storage` (String) The name of the volume type the image library stores images on.
3434
- `instance_shared_storage` (Boolean) Whether `vm_storage` is mounted as shared storage (e.g. NFS) across all hosts.
3535
- `networking_type` (String) The networking type PCD selected for the region (`ovn`). PCD-set; not user-configurable.
36-
- `storage_backends_json` (String, Sensitive) The Cinder storage backends as a JSON string (contains credentials).
36+
- `storage_backends_json` (String, Sensitive) The Cinder storage backends as a JSON string (contains credentials), shaped `{"<backend>": {"<config>": {"driver": ..., "config": {...}}}}`; the `pcd_cluster_blueprint` resource documents the shape.
3737
- `virtual_networking` (Attributes) Virtual (tenant) networking settings. (see [below for nested schema](#nestedatt--virtual_networking))
3838
- `vm_storage` (String) The path on each hypervisor where instance (ephemeral) storage lives.
3939
- `vnc_floating_ip` (String) The floating IP through which VM VNC consoles are reached, if any.

0 commit comments

Comments
 (0)