@oss4u/opnsense
v0.4.1
Published
Pulumi provider for managing OPNsense resources, currently focused on Unbound DNS overrides.
Readme
Pulumi OPNsense Native Provider
Pulumi provider for managing OPNsense resources, currently focused on Unbound DNS overrides.
Scope
Current provider resources:
opnsense:unbound:HostOverrideopnsense:unbound:HostAliasOverride
Provider configuration keys:
opnsense:addressopnsense:keyopnsense:secret
Repository Layout
provider/- provider implementation and schema sourcesdk/- generated SDKs for Go, Node.js, Python, and .NETexamples/- Pulumi example programs (yamlis the source for generated examples)deployment-templates/- release workflow and GoReleaser templates
Prerequisites
- Go
- Pulumi CLI
pulumictl- Node.js + Yarn
- Python 3
- .NET SDK
jq
You can use mise to install pinned local tools:
mise installBuild
Build provider + all SDKs:
make buildBuild provider binary only:
make providerInstall provider and local SDK links:
make installDevelopment
Keep dependencies tidy
make tidyGenerate schema and SDKs
make codegenLint and tests
Run lint for provider code:
make lintInstall and run pre-commit hooks:
pipx install pre-commit
make pre-commit-install
make pre-commit-runRun provider tests:
make test_providerDebug build
Build an unoptimized provider binary for local debugging:
make provider_debugExamples
The canonical example is examples/yaml. Language-specific examples are generated from it.
Generate all language examples:
make gen_examplesRun the YAML example locally:
make upDestroy example resources:
make downCI and Releases
developworkflow builds and validates the provider on pull requests and on schedule.main-tagworkflow creates release tags from commits onmain.releaseworkflow builds provider artifacts, generates SDK packages, and publishes release outputs.
Release setup details are documented in deployment-templates/README-DEPLOYMENT.md.
Notes
PULUMI_IGNORE_AMBIENT_PLUGINS=trueis set in theMakefileto prefer local, pinned plugins.- Example config values in
examples/yamlare placeholders and must be replaced with valid OPNsense API credentials.
