clusterbook
No long description provided.
Installation
dagger install github.com/stuttgart-things/dagger/clusterbook@v0.127.0Entrypoint
Return Type
Clusterbook !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| insecure | Boolean | - | skip TLS verification (internal CA) |
Example
dagger -m github.com/stuttgart-things/dagger/clusterbook@190b89fab8658042777909990771de19657ae00c call \
func (m *MyModule) Example() *dagger.Clusterbook {
return dag.
Clusterbook()
}@function
def example() -> dagger.Clusterbook:
return (
dag.clusterbook()
)@func()
example(): Clusterbook {
return dag
.clusterbook()
}Types
Clusterbook 🔗
insecure() 🔗
Skip TLS verification when talking to an https clusterbook.
Return Type
Boolean ! Example
dagger -m github.com/stuttgart-things/dagger/clusterbook@190b89fab8658042777909990771de19657ae00c call \
insecurefunc (m *MyModule) Example(ctx context.Context) bool {
return dag.
Clusterbook().
Insecure(ctx)
}@function
async def example() -> bool:
return await (
dag.clusterbook()
.insecure()
)@func()
async example(): Promise<boolean> {
return dag
.clusterbook()
.insecure()
}addIps() 🔗
AddIPs adds IPs to an existing network
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| server | String ! | - | clusterbook server address (e.g. “localhost:8080”) |
| networkKey | String ! | - | network key (e.g. “10.31.103”) |
| ips | [String ! ] ! | - | list of last-octet IPs to add (e.g. [“11”,“12”,“13”]) |
Example
dagger -m github.com/stuttgart-things/dagger/clusterbook@190b89fab8658042777909990771de19657ae00c call \
add-ips --server string --network-key string --ips string1 --ips string2func (m *MyModule) Example(ctx context.Context, server string, networkKey string, ips []string) string {
return dag.
Clusterbook().
Addips(ctx, server, networkKey, ips)
}@function
async def example(server: str, networkkey: str, ips: List[str]) -> str:
return await (
dag.clusterbook()
.addips(server, networkkey, ips)
)@func()
async example(server: string, networkKey: string, ips: string[]): Promise<string> {
return dag
.clusterbook()
.addIps(server, networkKey, ips)
}assignIp() 🔗
AssignIP assigns an IP address to a cluster
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| server | String ! | - | clusterbook server address (e.g. “localhost:8080”) |
| networkKey | String ! | - | network key (e.g. “10.31.103”) |
| ip | String ! | - | full IP address (e.g. “10.31.103.5”) |
| cluster | String ! | - | cluster name |
| status | String ! | - | status (PENDING or ASSIGNED) |
| createDns | Boolean | - | create a DNS record for this assignment |
Example
dagger -m github.com/stuttgart-things/dagger/clusterbook@190b89fab8658042777909990771de19657ae00c call \
assign-ip --server string --network-key string --ip string --cluster string --status stringfunc (m *MyModule) Example(ctx context.Context, server string, networkKey string, ip string, cluster string, status string) string {
return dag.
Clusterbook().
Assignip(ctx, server, networkKey, ip, cluster, status)
}@function
async def example(server: str, networkkey: str, ip: str, cluster: str, status: str) -> str:
return await (
dag.clusterbook()
.assignip(server, networkkey, ip, cluster, status)
)@func()
async example(server: string, networkKey: string, ip: string, cluster: string, status: string): Promise<string> {
return dag
.clusterbook()
.assignIp(server, networkKey, ip, cluster, status)
}createNetwork() 🔗
CreateNetwork creates a new network with a flat list of IPs
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| server | String ! | - | clusterbook server address (e.g. “localhost:8080”) |
| network | String ! | - | network prefix (e.g. “10.31.103”) |
| ips | [String ! ] ! | - | list of last-octet IPs (e.g. [“3”,“4”,“5”]) |
Example
dagger -m github.com/stuttgart-things/dagger/clusterbook@190b89fab8658042777909990771de19657ae00c call \
create-network --server string --network string --ips string1 --ips string2func (m *MyModule) Example(ctx context.Context, server string, network string, ips []string) string {
return dag.
Clusterbook().
Createnetwork(ctx, server, network, ips)
}@function
async def example(server: str, network: str, ips: List[str]) -> str:
return await (
dag.clusterbook()
.createnetwork(server, network, ips)
)@func()
async example(server: string, network: string, ips: string[]): Promise<string> {
return dag
.clusterbook()
.createNetwork(server, network, ips)
}createNetworkFromCidr() 🔗
CreateNetworkFromCidr creates a new network from CIDR notation
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| server | String ! | - | clusterbook server address (e.g. “localhost:8080”) |
| cidr | String ! | - | CIDR notation (e.g. “10.31.103.0/24”) |
| reserved | [String ! ] | - | reserved last-octet IPs to exclude (e.g. [“1”] for gateway) |
Example
dagger -m github.com/stuttgart-things/dagger/clusterbook@190b89fab8658042777909990771de19657ae00c call \
create-network-from-cidr --server string --cidr stringfunc (m *MyModule) Example(ctx context.Context, server string, cidr string) string {
return dag.
Clusterbook().
Createnetworkfromcidr(ctx, server, cidr)
}@function
async def example(server: str, cidr: str) -> str:
return await (
dag.clusterbook()
.createnetworkfromcidr(server, cidr)
)@func()
async example(server: string, cidr: string): Promise<string> {
return dag
.clusterbook()
.createNetworkFromCidr(server, cidr)
}deleteIp() 🔗
DeleteIP removes an IP from a network
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| server | String ! | - | clusterbook server address (e.g. “localhost:8080”) |
| networkKey | String ! | - | network key (e.g. “10.31.103”) |
| ip | String ! | - | last-octet IP to delete (e.g. “5”) |
Example
dagger -m github.com/stuttgart-things/dagger/clusterbook@190b89fab8658042777909990771de19657ae00c call \
delete-ip --server string --network-key string --ip stringfunc (m *MyModule) Example(ctx context.Context, server string, networkKey string, ip string) string {
return dag.
Clusterbook().
Deleteip(ctx, server, networkKey, ip)
}@function
async def example(server: str, networkkey: str, ip: str) -> str:
return await (
dag.clusterbook()
.deleteip(server, networkkey, ip)
)@func()
async example(server: string, networkKey: string, ip: string): Promise<string> {
return dag
.clusterbook()
.deleteIp(server, networkKey, ip)
}deleteNetwork() 🔗
DeleteNetwork deletes a network pool
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| server | String ! | - | clusterbook server address (e.g. “localhost:8080”) |
| networkKey | String ! | - | network key (e.g. “10.31.103”) |
Example
dagger -m github.com/stuttgart-things/dagger/clusterbook@190b89fab8658042777909990771de19657ae00c call \
delete-network --server string --network-key stringfunc (m *MyModule) Example(ctx context.Context, server string, networkKey string) string {
return dag.
Clusterbook().
Deletenetwork(ctx, server, networkKey)
}@function
async def example(server: str, networkkey: str) -> str:
return await (
dag.clusterbook()
.deletenetwork(server, networkkey)
)@func()
async example(server: string, networkKey: string): Promise<string> {
return dag
.clusterbook()
.deleteNetwork(server, networkKey)
}getCluster() 🔗
GetCluster returns all IPs assigned to a specific cluster
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| server | String ! | - | clusterbook server address (e.g. “localhost:8080”) |
| clusterName | String ! | - | cluster name |
Example
dagger -m github.com/stuttgart-things/dagger/clusterbook@190b89fab8658042777909990771de19657ae00c call \
get-cluster --server string --cluster-name stringfunc (m *MyModule) Example(ctx context.Context, server string, clusterName string) string {
return dag.
Clusterbook().
Getcluster(ctx, server, clusterName)
}@function
async def example(server: str, clustername: str) -> str:
return await (
dag.clusterbook()
.getcluster(server, clustername)
)@func()
async example(server: string, clusterName: string): Promise<string> {
return dag
.clusterbook()
.getCluster(server, clusterName)
}getNetworkIps() 🔗
GetNetworkIPs returns all IPs in a network with their status and cluster info
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| server | String ! | - | clusterbook server address (e.g. “localhost:8080”) |
| networkKey | String ! | - | network key (e.g. “10.31.103”) |
Example
dagger -m github.com/stuttgart-things/dagger/clusterbook@190b89fab8658042777909990771de19657ae00c call \
get-network-ips --server string --network-key stringfunc (m *MyModule) Example(ctx context.Context, server string, networkKey string) string {
return dag.
Clusterbook().
Getnetworkips(ctx, server, networkKey)
}@function
async def example(server: str, networkkey: str) -> str:
return await (
dag.clusterbook()
.getnetworkips(server, networkkey)
)@func()
async example(server: string, networkKey: string): Promise<string> {
return dag
.clusterbook()
.getNetworkIps(server, networkKey)
}listClusters() 🔗
ListClusters returns all clusters with their IP counts
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| server | String ! | - | clusterbook server address (e.g. “localhost:8080”) |
Example
dagger -m github.com/stuttgart-things/dagger/clusterbook@190b89fab8658042777909990771de19657ae00c call \
list-clusters --server stringfunc (m *MyModule) Example(ctx context.Context, server string) string {
return dag.
Clusterbook().
Listclusters(ctx, server)
}@function
async def example(server: str) -> str:
return await (
dag.clusterbook()
.listclusters(server)
)@func()
async example(server: string): Promise<string> {
return dag
.clusterbook()
.listClusters(server)
}listNetworks() 🔗
ListNetworks returns all network pools with their stats
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| server | String ! | - | clusterbook server address (e.g. “localhost:8080”) |
Example
dagger -m github.com/stuttgart-things/dagger/clusterbook@190b89fab8658042777909990771de19657ae00c call \
list-networks --server stringfunc (m *MyModule) Example(ctx context.Context, server string) string {
return dag.
Clusterbook().
Listnetworks(ctx, server)
}@function
async def example(server: str) -> str:
return await (
dag.clusterbook()
.listnetworks(server)
)@func()
async example(server: string): Promise<string> {
return dag
.clusterbook()
.listNetworks(server)
}releaseIp() 🔗
ReleaseIP releases an IP address back to the available pool
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| server | String ! | - | clusterbook server address (e.g. “localhost:8080”) |
| networkKey | String ! | - | network key (e.g. “10.31.103”) |
| ip | String ! | - | full IP address (e.g. “10.31.103.5”) |
Example
dagger -m github.com/stuttgart-things/dagger/clusterbook@190b89fab8658042777909990771de19657ae00c call \
release-ip --server string --network-key string --ip stringfunc (m *MyModule) Example(ctx context.Context, server string, networkKey string, ip string) string {
return dag.
Clusterbook().
Releaseip(ctx, server, networkKey, ip)
}@function
async def example(server: str, networkkey: str, ip: str) -> str:
return await (
dag.clusterbook()
.releaseip(server, networkkey, ip)
)@func()
async example(server: string, networkKey: string, ip: string): Promise<string> {
return dag
.clusterbook()
.releaseIp(server, networkKey, ip)
}reserveIp() 🔗
ReserveIP allocates the next free IP in a network to a cluster, optionally creating the wildcard DNS record for it.
IDEMPOTENT ON PURPOSE. A plain POST /reserve hands out a NEW address every time it is called, so a pipeline retry silently leaks an IP and a second DNS record – and neither shows up as a failure anywhere. This first asks whether the cluster already holds an address in this network and returns that one if so, which makes re-running a bake safe.
The reply always has the same shape, reused telling the two paths apart:
{"ip":"10.31.103.6","digit":"6","status":"ASSIGNED:DNS","cluster":"c","reused":false}
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| server | String ! | - | clusterbook server address (“host:port” for http, or a full https:// URL) |
| networkKey | String ! | - | network key (e.g. “10.31.103”) |
| cluster | String ! | - | cluster name – also the label of the wildcard record, *.{cluster}.{zone} |
| status | String | "ASSIGNED" | status to record |
| createDns | Boolean | - | create the wildcard DNS record for this assignment |
| leaseDurationSeconds | Integer | - | TTL in seconds after which the assignment is reclaimed (0 = permanent) |
Example
dagger -m github.com/stuttgart-things/dagger/clusterbook@190b89fab8658042777909990771de19657ae00c call \
reserve-ip --server string --network-key string --cluster stringfunc (m *MyModule) Example(ctx context.Context, server string, networkKey string, cluster string) string {
return dag.
Clusterbook().
Reserveip(ctx, server, networkKey, cluster)
}@function
async def example(server: str, networkkey: str, cluster: str) -> str:
return await (
dag.clusterbook()
.reserveip(server, networkkey, cluster)
)@func()
async example(server: string, networkKey: string, cluster: string): Promise<string> {
return dag
.clusterbook()
.reserveIp(server, networkKey, cluster)
}