# Inspired by https://github.com/kube-vip/kube-vip/blob/v0.4.2/pkg/kubevip/config_generator.go#L13
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  name: kube-vip
  namespace: kube-system
spec:
  containers:
  - args:
    - manager
    env:
    - name: vip_arp
      value: {{ kube_vip_arp_enabled | string | to_json }}
    - name: port
      value: "6443"
    {% if kube_vip_interface %}
    - name: vip_interface
      value: "{{ kube_vip_interface | string | to_json }}"
    {% endif %}
    {% if kube_vip_services_interface %}
    - name: vip_servicesinterface
      value: {{ kube_vip_services_interface | string | to_json }}
    {% endif %}
    {% if kube_vip_cidr %}
    - name: vip_cidr
      value: {{ kube_vip_cidr | string | to_json }}
    {% endif %}
    {% if kube_vip_controlplane_enabled %}
    - name: cp_enable
      value: "true"
    - name: cp_namespace
      value: kube-system
    - name: vip_ddns
      value: {{ kube_vip_ddns_enabled | string | to_json }}
    {% endif %}
    {% if kube_vip_services_enabled %}
    - name: svc_enable
      value: "true"
    {% endif %}
    {% if kube_vip_leader_election_enabled %}
    - name: vip_leaderelection
      value: "true"
    - name: vip_leaseduration
      value: "5"
    - name: vip_renewdeadline
      value: "3"
    - name: vip_retryperiod
      value: "1"
    {% endif %}
    {% if kube_vip_bgp_enabled %}
    - name: bgp_enable
      value: "true"
    - name: bgp_routerid
      value: {{ kube_vip_bgp_routerid | string | to_json }}
    - name: bgp_as
      value: {{ kube_vip_local_as | string | to_json }}
    - name: bgp_peeraddress
      value: {{ kube_vip_bgp_peeraddress | to_json }}
    - name: bgp_peerpass
      value: {{ kube_vip_bgp_peerpass | to_json }}
    - name: bgp_peeras
      value: {{ kube_vip_bgp_peeras | to_json }}
    {% if kube_vip_bgppeers %}
    - name: bgp_peers
      value: {{ kube_vip_bgp_peeras | join(',')  | to_json }}
    {% endif %}
    {% endif %}
    - name: address
      value: {{ kube_vip_address | to_json }}
    image: {{ kube_vip_image_repo }}:{{ kube_vip_image_tag }}
    imagePullPolicy: {{ k8s_image_pull_policy }}
    name: kube-vip
    resources: {}
    securityContext:
      capabilities:
        add:
        - NET_ADMIN
        - NET_RAW
    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: {}