{ "slug": "kube-vip", "kind": "kubernetes", "metadata": { "name": "kube-vip DaemonSet", "description": "Practical kube-vip DaemonSet bootstrap with RBAC for control-plane virtual IPs and optional Service LoadBalancer handling in bare-metal clusters.", "tags": [], "icon": { "provider": "simple-icons", "id": "kubernetes" }, "draft": true, "version": { "name": "1.0.1", "source_dep_name": "manual/kube-vip" } }, "variables": [ { "title": "General", "name": "general", "items": [ { "name": "namespace", "type": "str", "title": "Namespace", "required": false, "default": "kube-system", "description": "Namespace where kube-vip should run.", "config": { "placeholder": "kube-system" } }, { "name": "service_account_name", "type": "str", "title": "Service account", "required": false, "default": "kube-vip", "description": "Service account name used by the kube-vip DaemonSet.", "config": { "placeholder": "kube-vip" } }, { "name": "daemonset_name", "type": "str", "title": "DaemonSet name", "required": false, "default": "kube-vip-ds", "config": { "placeholder": "kube-vip-ds" } }, { "name": "image", "type": "str", "title": "Image", "required": false, "default": "ghcr.io/kube-vip/kube-vip:v1.0.1", "description": "Container image for kube-vip.", "config": { "placeholder": "ghcr.io/kube-vip/kube-vip:v1.0.1" } } ] }, { "title": "Networking", "name": "networking", "items": [ { "name": "interface", "type": "str", "title": "Primary interface", "required": false, "default": "eth0", "description": "Host interface used by kube-vip for ARP announcements and VIP binding.", "config": { "placeholder": "eth0" } }, { "name": "services_interface_enabled", "type": "bool", "title": "Services interface", "required": false, "default": false }, { "name": "services_interface", "type": "str", "title": "Services interface name", "required": false, "default": "eth1", "description": "Interface used for service advertisements when a dedicated interface is required.", "config": { "placeholder": "eth1" } }, { "name": "vip_address", "type": "str", "title": "Control-plane VIP", "required": false, "default": "192.168.1.30", "description": "Virtual IP for the Kubernetes API when control-plane mode is enabled.", "config": { "placeholder": "192.168.1.30" } }, { "name": "vip_subnet", "type": "str", "title": "VIP subnet mask", "required": false, "default": "32", "description": "Subnet mask used for the advertised VIP.", "config": { "placeholder": "32" } }, { "name": "control_plane_port", "type": "int", "title": "API port", "required": false, "default": 6443, "description": "Kubernetes API port exposed by the control-plane VIP.", "config": { "placeholder": "6443" } } ] }, { "title": "Features", "name": "features", "items": [ { "name": "control_plane_enabled", "type": "bool", "title": "Control-plane VIP", "required": false, "default": true, "description": "Advertise a floating VIP for the Kubernetes API." }, { "name": "services_enabled", "type": "bool", "title": "Service LoadBalancer", "required": false, "default": false, "description": "Watch and advertise Kubernetes Services of type LoadBalancer." }, { "name": "service_election_enabled", "type": "bool", "title": "Per-service election", "required": false, "default": false, "description": "Use a separate leader election for each service when service mode is enabled." }, { "name": "leader_election_enabled", "type": "bool", "title": "Leader election", "required": false, "default": true }, { "name": "watch_services_namespace_enabled", "type": "bool", "title": "Watch one namespace", "required": false, "default": false, "description": "Restrict service mode to a specific namespace instead of the whole cluster." }, { "name": "watch_services_namespace", "type": "str", "title": "Watched namespace", "required": false, "default": "apps", "description": "Namespace watched by kube-vip when scoped service mode is enabled.", "config": { "placeholder": "apps" } } ] }, { "title": "Leader Election Timing", "name": "timing", "items": [ { "name": "lease_duration", "type": "int", "title": "Lease duration", "required": false, "default": 5, "description": "Lease duration in seconds for leader election.", "config": { "placeholder": "5" } }, { "name": "renew_deadline", "type": "int", "title": "Renew deadline", "required": false, "default": 3, "description": "Renew deadline in seconds for leader election.", "config": { "placeholder": "3" } }, { "name": "retry_period", "type": "int", "title": "Retry period", "required": false, "default": 1, "description": "Retry period in seconds for leader election.", "config": { "placeholder": "1" } } ] }, { "title": "Scheduling", "name": "scheduling", "items": [ { "name": "control_plane_only", "type": "bool", "title": "Control-plane nodes only", "required": false, "default": true, "description": "Schedule kube-vip only on nodes labeled as control-plane or master." } ] } ] }