https://github.com/stuttgart-things/terraform-provider-clusterbook
Terraform provider for clusterbook IPAM
https://github.com/stuttgart-things/terraform-provider-clusterbook
Last synced: about 16 hours ago
JSON representation
Terraform provider for clusterbook IPAM
- Host: GitHub
- URL: https://github.com/stuttgart-things/terraform-provider-clusterbook
- Owner: stuttgart-things
- Created: 2026-03-13T13:18:00.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-03-13T14:44:28.000Z (4 months ago)
- Last Synced: 2026-03-14T01:50:03.427Z (4 months ago)
- Language: Go
- Size: 11.6 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# stuttgart-things/terraform-provider-clusterbook
Terraform provider for clusterbook IPAM
## PROVIDER CONFIGURATION
```hcl
provider "clusterbook" {
url = "https://clusterbook.example.com"
}
```
## RESOURCES
clusterbook_ip_assignment
Assigns an available IP from a network pool to a cluster.
```hcl
resource "clusterbook_ip_assignment" "ingress" {
network_key = "10.31.105"
cluster = "mycluster"
status = "ASSIGNED" # optional, default: ASSIGNED
create_dns = true # optional, default: false
}
output "assigned_ip" {
value = clusterbook_ip_assignment.ingress.ip_address
}
```
| Attribute | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `network_key` | string | yes | - | Network subnet prefix |
| `cluster` | string | yes | - | Cluster name |
| `status` | string | no | `ASSIGNED` | `ASSIGNED` or `PENDING` |
| `create_dns` | bool | no | `false` | Create PowerDNS A record |
**Computed**: `ip_address`, `id`
clusterbook_network
Creates a network IP pool.
```hcl
resource "clusterbook_network" "lab" {
network_key = "10.31.106"
ip_from = 1
ip_to = 50
}
```
| Attribute | Type | Required | Description |
|-----------|------|----------|-------------|
| `network_key` | string | yes | Network subnet prefix |
| `ip_from` | int | yes | Start of IP range (last octet) |
| `ip_to` | int | yes | End of IP range (last octet) |
**Computed**: `total`, `available`, `assigned`, `pending`
## DATA SOURCES
clusterbook_cluster
Query IP assignments for a cluster.
```hcl
data "clusterbook_cluster" "info" {
name = "mycluster"
}
```
clusterbook_networks
List all network pools.
```hcl
data "clusterbook_networks" "all" {}
```
## INSTALLATION
Download the binary for your platform from [Releases](https://github.com/stuttgart-things/terraform-provider-clusterbook/releases) and place it in:
```
~/.terraform.d/plugins/registry.terraform.io/stuttgart-things/clusterbook//_/
```
## DEVELOPMENT
```bash
go build -o terraform-provider-clusterbook .
```
## LICENSE
Licensed under the Apache License 2.0.