Skip to content

feat(compute): Nova keypair/flavor/servergroup/instance and data sources - #6

Merged
PF9-pushkar merged 2 commits into
mainfrom
feat/compute
Jul 12, 2026
Merged

feat(compute): Nova keypair/flavor/servergroup/instance and data sources#6
PF9-pushkar merged 2 commits into
mainfrom
feat/compute

Conversation

@PF9-pushkar

Copy link
Copy Markdown
Collaborator

Phase 1 — compute (Nova v2)

Fourth feature family. Boot-independent resources/data sources are acceptance-tested green against the CE lab; the flagship instance is code-complete and boot-gated on a lab issue (below).

Stacked on feat/networking (#5). Review order: #3#4#5 → this.

Resources (acc-green)

  • pcd_compute_keypair — create (with server-side key generation), read, import.
  • pcd_compute_flavor — admin flavor, immutable, create/read/import.
  • pcd_compute_servergroup — affinity/anti-affinity, immutable, create/read/import.

Resource (code-complete, boot-gated)

  • pcd_compute_instance — boot-from-image with network blocks, security groups, keypair, metadata, user_data, config drive; ACTIVE/deleted waiters; flavor name→id resolution; first-IPv4 access address. It drove Nova cleanly through four host-onboarding gaps on the CE hypervisor (dir perms, stale glance endpoint, glance reachability, and finally the image-library gap) and reported each precisely. Its boot test flips green the moment the lab can serve a library-backed image (see DECISIONS.md).

Data sources (acc-green)

  • pcd_compute_flavor, pcd_compute_keypair, pcd_compute_availability_zones.

Test evidence

TF_ACC=1 make testacc for ./internal/services/compute/ — flavor, servergroup, keypair (+DS), availability-zones: 5/5 passing. Instance boot: blocked on lab image library.

Notes

  • Instance network uses HCL block syntax (network { uuid = ... }) for community-provider parity.
  • Follow-ups: compute_interface_attach, compute_volume_attach (needs Cinder + a booted instance), flavor extra_specs, and instance resize.

- pcd_compute_keypair: create (with server-side key generation when no public_key),
  read, import. Acceptance-tested against the CE lab.
- pcd_compute_instance: boot-from-image with network blocks, security groups,
  keypair, metadata, user_data, config drive; ACTIVE and deleted waiters;
  flavor name -> id resolution; first-IPv4 access address. Code complete and builds.
- clients: ComputeV2Client (Nova).

NOTE: the pcd_compute_instance boot acceptance test cannot pass yet because the CE
hypervisor pcd-iso-test fails to spawn instances (Nova MaxRetriesExceeded / build
failures). Nested virt and capacity are fine; the compute-node error is unreachable
(SSH to the host is rejected). Tracked in DECISIONS.md; needs owner action.
…urces

Nova v2. All acceptance-tested against the CE lab (boot-independent).
- pcd_compute_flavor: create/read/import (immutable), + pcd_compute_flavor data source.
- pcd_compute_servergroup: affinity/anti-affinity group, create/read/import.
- pcd_compute_keypair data source and pcd_compute_availability_zones data source.

pcd_compute_instance remains code-complete but its boot acceptance test is blocked on a
CE image-library issue (images created via the API don't populate the onboarded host's
local library -> nova gets HTTP 204 for image data). Tracked in DECISIONS.md.
Base automatically changed from feat/networking to main July 12, 2026 01:08
@PF9-pushkar
PF9-pushkar merged commit 4303ab8 into main Jul 12, 2026
2 checks passed
@PF9-pushkar
PF9-pushkar deleted the feat/compute branch July 12, 2026 01:08
PF9-pushkar added a commit that referenced this pull request Jul 14, 2026
feat(compute): Nova keypair/flavor/servergroup/instance and data sources
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant