154 lines
4.3 KiB
JSON
154 lines
4.3 KiB
JSON
{
|
|
"slug": "metallb",
|
|
"kind": "kubernetes",
|
|
"metadata": {
|
|
"name": "MetalLB Layer2 Bootstrap",
|
|
"description": "Practical MetalLB bootstrap manifests for the common homelab path: an IPAddressPool plus L2Advertisement for bare-metal LoadBalancer services.",
|
|
"tags": [],
|
|
"icon": {
|
|
"provider": "simple-icons",
|
|
"id": "kubernetes"
|
|
},
|
|
"draft": true,
|
|
"version": {
|
|
"name": "0.15.2",
|
|
"source_dep_name": "manual/metallb"
|
|
}
|
|
},
|
|
"variables": [
|
|
{
|
|
"title": "General",
|
|
"name": "general",
|
|
"items": [
|
|
{
|
|
"name": "namespace",
|
|
"type": "str",
|
|
"title": "MetalLB namespace",
|
|
"required": false,
|
|
"default": "metallb-system",
|
|
"description": "Namespace where MetalLB custom resources live.",
|
|
"config": {
|
|
"placeholder": "metallb-system"
|
|
}
|
|
},
|
|
{
|
|
"name": "create_namespace",
|
|
"type": "bool",
|
|
"title": "Create namespace",
|
|
"required": false,
|
|
"default": false,
|
|
"description": "Render the MetalLB namespace manifest before the pool configuration."
|
|
},
|
|
{
|
|
"name": "pool_name",
|
|
"type": "str",
|
|
"title": "Pool name",
|
|
"required": false,
|
|
"default": "homelab-pool",
|
|
"config": {
|
|
"placeholder": "homelab-pool"
|
|
}
|
|
},
|
|
{
|
|
"name": "advertisement_name",
|
|
"type": "str",
|
|
"title": "Advertisement name",
|
|
"required": false,
|
|
"default": "homelab-l2",
|
|
"config": {
|
|
"placeholder": "homelab-l2"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "Address Pool",
|
|
"name": "pool",
|
|
"items": [
|
|
{
|
|
"name": "address_range",
|
|
"type": "str",
|
|
"title": "Address range",
|
|
"required": false,
|
|
"default": "192.168.1.240-192.168.1.250",
|
|
"description": "Single IP, CIDR, or start-end range reserved for LoadBalancer services.",
|
|
"config": {
|
|
"placeholder": "192.168.1.240-192.168.1.250"
|
|
}
|
|
},
|
|
{
|
|
"name": "auto_assign",
|
|
"type": "bool",
|
|
"title": "Auto assign",
|
|
"required": false,
|
|
"default": true,
|
|
"description": "Allow MetalLB to assign IPs automatically from this pool."
|
|
},
|
|
{
|
|
"name": "avoid_buggy_ips",
|
|
"type": "bool",
|
|
"title": "Avoid buggy IPs",
|
|
"required": false,
|
|
"default": false,
|
|
"description": "Skip .0 and .255 style addresses for networks with broken consumer gear."
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "Layer2 Advertisement",
|
|
"name": "layer2",
|
|
"items": [
|
|
{
|
|
"name": "bind_interfaces_enabled",
|
|
"type": "bool",
|
|
"title": "Bind interfaces",
|
|
"required": false,
|
|
"default": false,
|
|
"description": "Restrict ARP announcements to a specific host interface."
|
|
},
|
|
{
|
|
"name": "bind_interface",
|
|
"type": "str",
|
|
"title": "Interface name",
|
|
"required": false,
|
|
"default": "eth0",
|
|
"description": "Interface used for Layer2 announcements when interface binding is enabled.",
|
|
"config": {
|
|
"placeholder": "eth0"
|
|
}
|
|
},
|
|
{
|
|
"name": "node_selector_enabled",
|
|
"type": "bool",
|
|
"title": "Node selector",
|
|
"required": false,
|
|
"default": false,
|
|
"description": "Limit announcements to nodes with a specific label."
|
|
},
|
|
{
|
|
"name": "node_selector_key",
|
|
"type": "str",
|
|
"title": "Node selector key",
|
|
"required": false,
|
|
"default": "kubernetes.io/hostname",
|
|
"description": "Node label key used when node selection is enabled.",
|
|
"config": {
|
|
"placeholder": "kubernetes.io/hostname"
|
|
}
|
|
},
|
|
{
|
|
"name": "node_selector_value",
|
|
"type": "str",
|
|
"title": "Node selector value",
|
|
"required": false,
|
|
"default": "k3s-server-1",
|
|
"description": "Node label value used when node selection is enabled.",
|
|
"config": {
|
|
"placeholder": "k3s-server-1"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|