Skip to content

feat(networking): core Neutron resources and data sources - #5

Merged
PF9-pushkar merged 5 commits into
mainfrom
feat/networking
Jul 12, 2026
Merged

feat(networking): core Neutron resources and data sources#5
PF9-pushkar merged 5 commits into
mainfrom
feat/networking

Conversation

@PF9-pushkar

Copy link
Copy Markdown
Collaborator

Phase 1 — networking core (Neutron v2)

Third feature family. Every resource and data source is acceptance-tested green against the CE 2026.4 lab (create/update/import, CheckDestroy, name→id lookups), serialized on the single lab.

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

Resources

  • pcd_networking_network — base attributes + external-router extension + tags.
  • pcd_networking_subnet — cidr, gateway, DHCP, allocation_pools, dns_nameservers, tags.
  • pcd_networking_secgroup — with optional delete_default_rules.
  • pcd_networking_secgroup_rule — immutable rule (all-ForceNew).
  • pcd_networking_router — incl. external gateway (external_network_id + enable_snat).
  • pcd_networking_router_interface — attach a subnet/port to a router.

Data sources

  • pcd_networking_network, pcd_networking_subnet, pcd_networking_secgroup (by id or filters).

Deferred to a networking-extras follow-up

  • Floating IPs (pcd_networking_floatingip + associate) — the CE lab has no external network to allocate from; needs external-network setup first (tracked in DECISIONS.md).
  • Ports, port/floating-IP associate resources, subnet/router routes, and the remaining data sources (_subnet_ids, _port, _port_ids, _router, _floatingip).

Test evidence

TF_ACC=1 make testacc for ./internal/services/networking/4/4 suites passing.

Notes

  • Framework: computed nested collections (allocation_pools) use types.List, not native Go slices, so "unknown at plan time" is representable.
  • Next: compute (Nova) — Gate A is now met (pcd-iso-test up).

Neutron v2 foundational pair, acceptance-tested against the CE lab
(create/update/import, both resources).
- pcd_networking_network: base attributes + external-router extension + tags.
- pcd_networking_subnet: cidr, gateway, DHCP, allocation_pools, dns_nameservers, tags.
- clients: NetworkV2Client; shared configureClient + replaceTags helpers.

Computed nested collections (allocation_pools) use types.List rather than native Go
slices so the framework can represent "unknown" at plan time.
Acceptance-tested against the CE lab (create/update/import).
- pcd_networking_secgroup: name, description, stateful, tags, optional
  delete_default_rules to strip Neutron's default egress rules on create.
- pcd_networking_secgroup_rule: immutable rule (all-ForceNew) with direction,
  ethertype, protocol, port range, and remote group/prefix.
Acceptance-tested against the CE lab (create/update/import; interface attach/detach).
- pcd_networking_router: name, description, admin_state_up, external gateway
  (external_network_id + enable_snat), tags.
- pcd_networking_router_interface: attaches a subnet or existing port to a router;
  identified by the interface port, immutable (all-ForceNew).
Lookup by id or filters, acceptance-tested against the CE lab (name -> id resolution).
Records the networking family CHANGELOG entry.
Base automatically changed from feat/images to main July 12, 2026 01:07
@PF9-pushkar
PF9-pushkar merged commit 51977b7 into main Jul 12, 2026
2 checks passed
@PF9-pushkar
PF9-pushkar deleted the feat/networking branch July 12, 2026 01:08
PF9-pushkar added a commit that referenced this pull request Jul 14, 2026
feat(networking): core Neutron resources 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