Scaffold terraform-provider-tomswallapi #1

Merged
benvin merged 2 commits from benvin/scaffold-provider into main 2026-07-20 07:40:46 +10:00
Owner

Why

tomswallapi is Terraform-driven by design. This provider lets the fleet firewall model be declared as HCL, delivering the core 'must be terraformable' requirement.

Changes

  • Scaffold the plugin-framework provider (endpoint + TOMSWALLAPI_WRITE_TOKEN auth) with an HTTP client mirroring the house style.
  • Add 7 resources with full CRUD + ImportState: tomswallapi_zone, _address_group (static/dns/asn, with computed resolved prefixes), _portgroup, _fabric, _device, _binding (imported as device:zone), and _rule (shorewall-style source/dest element lists; recreated on update since the rules API is create/delete only).
  • Add Makefile with make patch|minor|major release tags, Woodpecker pre-commit/build/test/release pipelines (release packages and publishes to the artifactapi terraform registry under unkin/tomswallapi), pre-commit config, README, and a worked example.
  • Builds and vets clean.
## Why tomswallapi is Terraform-driven by design. This provider lets the fleet firewall model be declared as HCL, delivering the core 'must be terraformable' requirement. ## Changes - Scaffold the plugin-framework provider (endpoint + TOMSWALLAPI_WRITE_TOKEN auth) with an HTTP client mirroring the house style. - Add 7 resources with full CRUD + ImportState: `tomswallapi_zone`, `_address_group` (static/dns/asn, with computed resolved prefixes), `_portgroup`, `_fabric`, `_device`, `_binding` (imported as device:zone), and `_rule` (shorewall-style source/dest element lists; recreated on update since the rules API is create/delete only). - Add Makefile with `make patch|minor|major` release tags, Woodpecker pre-commit/build/test/release pipelines (release packages and publishes to the artifactapi terraform registry under unkin/tomswallapi), pre-commit config, README, and a worked example. - Builds and vets clean.
unkinben added 2 commits 2026-07-19 23:54:37 +10:00
Terraform provider (plugin-framework) for the tomswall fleet control plane.
Resources: zone, address_group (static/dns/asn, with computed resolved
prefixes), portgroup, fabric, device, binding (device:zone), and rule. Each
resource does full CRUD against the tomswallapi HTTP API with bearer-token auth
and ImportState support; rules recreate on update since the rules API is
create/delete only. Includes Makefile with make patch|minor|major release tags,
Woodpecker pre-commit/build/test/release pipelines (release publishes to the
artifactapi terraform registry), README, and a worked example.
Merge Gitea repo initialization
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
394dc88b27
benvin merged commit 940e334e48 into main 2026-07-20 07:40:46 +10:00
Sign in to join this conversation.