apiVersion: apps/v1 kind: DaemonSet metadata: name: kube-vip-ds namespace: kube-system spec: selector: matchLabels: name: kube-vip-ds template: metadata: labels: name: kube-vip-ds spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: node-role.kubernetes.io/master operator: Exists - matchExpressions: - key: node-role.kubernetes.io/control-plane operator: Exists containers: - args: - manager env: - name: vip_arp value: "{{ 'true' if kube_vip_arp | default(true) | bool else 'false' }}" - name: bgp_enable value: "{{ 'true' if kube_vip_bgp | default(false) | bool else 'false' }}" - name: port value: "6443" {% if kube_vip_iface %} - name: vip_interface value: {{ kube_vip_iface }} {% endif %} - name: vip_cidr value: "{{ apiserver_endpoint | ansible.utils.ipsubnet | ansible.utils.ipaddr('prefix') }}" - name: cp_enable value: "true" - name: cp_namespace value: kube-system - name: vip_ddns value: "false" - name: svc_enable value: "{{ 'true' if kube_vip_lb_ip_range is defined else 'false' }}" - name: vip_leaderelection value: "true" - name: vip_leaseduration value: "15" - name: vip_renewdeadline value: "10" - name: vip_retryperiod value: "2" - name: address value: {{ apiserver_endpoint }} {% if kube_vip_bgp | default(false) | bool %} {% if kube_vip_bgp_routerid is defined %} - name: bgp_routerid value: "{{ kube_vip_bgp_routerid }}" {% endif %} {% if _kube_vip_bgp_peers | length > 0 %} - name: bgppeers value: "{{ _kube_vip_bgp_peers | map(attribute='peer_address') | zip(_kube_vip_bgp_peers| map(attribute='peer_asn')) | map('join', ',') | join(':') }}" # yamllint disable-line rule:line-length {% else %} {% if kube_vip_bgp_as is defined %} - name: bgp_as value: "{{ kube_vip_bgp_as }}" {% endif %} {% if kube_vip_bgp_peeraddress is defined %} - name: bgp_peeraddress value: "{{ kube_vip_bgp_peeraddress }}" {% endif %} {% if kube_vip_bgp_peeras is defined %} - name: bgp_peeras value: "{{ kube_vip_bgp_peeras }}" {% endif %} {% endif %} {% endif %} image: ghcr.io/kube-vip/kube-vip:{{ kube_vip_tag_version }} imagePullPolicy: Always name: kube-vip resources: {} securityContext: capabilities: add: - NET_ADMIN - NET_RAW - SYS_TIME hostNetwork: true serviceAccountName: kube-vip tolerations: - effect: NoSchedule operator: Exists - effect: NoExecute operator: Exists updateStrategy: {} status: currentNumberScheduled: 0 desiredNumberScheduled: 0 numberMisscheduled: 0 numberReady: 0