From 0d5e4f89491b242e8afae9e9d4067e77c26d9b68 Mon Sep 17 00:00:00 2001 From: James Allenby Date: Mon, 29 Jun 2026 00:18:30 +0100 Subject: [PATCH] feat: add kube-vip role --- .../tasks/kube-vip.yaml | 5 ++ .../templates/kube-vip.yaml.j2 | 72 +++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 ansible/roles/kubernetes_control_plane/tasks/kube-vip.yaml create mode 100644 ansible/roles/kubernetes_control_plane/templates/kube-vip.yaml.j2 diff --git a/ansible/roles/kubernetes_control_plane/tasks/kube-vip.yaml b/ansible/roles/kubernetes_control_plane/tasks/kube-vip.yaml new file mode 100644 index 0000000..64c8588 --- /dev/null +++ b/ansible/roles/kubernetes_control_plane/tasks/kube-vip.yaml @@ -0,0 +1,5 @@ +- name: Ensure kube-vip static pod + ansible.builtin.template: + src: kube-vip.yaml.j2 + dest: /etc/kubernetes/manifests/kube-vip.yaml + mode: "0644" diff --git a/ansible/roles/kubernetes_control_plane/templates/kube-vip.yaml.j2 b/ansible/roles/kubernetes_control_plane/templates/kube-vip.yaml.j2 new file mode 100644 index 0000000..a30a59c --- /dev/null +++ b/ansible/roles/kubernetes_control_plane/templates/kube-vip.yaml.j2 @@ -0,0 +1,72 @@ +apiVersion: v1 +kind: Pod +metadata: + name: kube-vip + namespace: kube-system +spec: + containers: + - args: + - manager + env: + - name: vip_arp + value: "true" + - name: port + value: "6443" + - name: vip_nodename + valueFrom: + fieldRef: + fieldPath: spec.nodeName + - name: vip_interface + value: {{ vip_interface }} + - name: vip_subnet + value: "32" + - name: dns_mode + value: first + - name: dhcp_mode + value: ipv4 + - name: cp_enable + value: "true" + - name: cp_namespace + value: kube-system + - name: svc_enable + value: "true" + - name: svc_leasename + value: plndr-svcs-lock + - name: vip_leaderelection + value: "true" + - name: vip_leasename + value: plndr-cp-lock + - name: vip_leaseduration + value: "15" + - name: vip_renewdeadline + value: "10" + - name: vip_retryperiod + value: "2" + - name: address + value: 10.150.0.100 + - name: prometheus_server + value: :2112 + image: ghcr.io/kube-vip/kube-vip:v1.2.1 + imagePullPolicy: IfNotPresent + name: kube-vip + resources: {} + securityContext: + capabilities: + add: + - NET_ADMIN + - NET_RAW + drop: + - ALL + volumeMounts: + - mountPath: /etc/kubernetes/admin.conf + name: kubeconfig + hostAliases: + - hostnames: + - kubernetes + ip: 127.0.0.1 + hostNetwork: true + volumes: + - hostPath: + path: /etc/kubernetes/admin.conf + name: kubeconfig +status: {}