You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

124 lines
3.6 KiB

  1. # Inspired by https://github.com/kube-vip/kube-vip/blob/v0.8.0/pkg/kubevip/config_generator.go#L103
  2. apiVersion: v1
  3. kind: Pod
  4. metadata:
  5. name: kube-vip
  6. namespace: kube-system
  7. labels:
  8. addonmanager.kubernetes.io/mode: Reconcile
  9. k8s-app: kube-vip
  10. spec:
  11. containers:
  12. - args:
  13. - manager
  14. env:
  15. - name: vip_arp
  16. value: {{ kube_vip_arp_enabled | string | to_json }}
  17. - name: port
  18. value: {{ kube_apiserver_port | string | to_json }}
  19. - name: vip_nodename
  20. value: {{ inventory_hostname }}
  21. {% if kube_vip_interface %}
  22. - name: vip_interface
  23. value: {{ kube_vip_interface | string | to_json }}
  24. {% endif %}
  25. {% if kube_vip_services_interface %}
  26. - name: vip_servicesinterface
  27. value: {{ kube_vip_services_interface | string | to_json }}
  28. {% endif %}
  29. {% if kube_vip_cidr %}
  30. - name: vip_cidr
  31. value: {{ kube_vip_cidr | string | to_json }}
  32. {% endif %}
  33. {% if kube_vip_dns_mode %}
  34. - name: dns_mode
  35. value: {{ kube_vip_dns_mode | string | to_json }}
  36. {% endif %}
  37. {% if kube_vip_controlplane_enabled %}
  38. - name: cp_enable
  39. value: "true"
  40. - name: cp_namespace
  41. value: kube-system
  42. - name: vip_ddns
  43. value: {{ kube_vip_ddns_enabled | string | to_json }}
  44. - name: cp_detect
  45. value: {{ kube_vip_cp_detect | string | to_json }}
  46. {% endif %}
  47. {% if kube_vip_services_enabled %}
  48. - name: svc_enable
  49. value: "true"
  50. {% endif %}
  51. {% if kube_vip_svc_leasename %}
  52. - name: svc_leasename
  53. value: {{ kube_vip_svc_leasename | string | to_json }}
  54. {% endif %}
  55. {% if kube_vip_enableServicesElection %}
  56. - name: svc_election
  57. value: "true"
  58. {% endif %}
  59. {% if kube_vip_leader_election_enabled %}
  60. - name: vip_leaderelection
  61. value: "true"
  62. - name: vip_leasename
  63. value: {{ kube_vip_leasename | string | to_json }}
  64. - name: vip_leaseduration
  65. value: {{ kube_vip_leaseduration | string | to_json }}
  66. - name: vip_renewdeadline
  67. value: {{ kube_vip_renewdeadline | string | to_json }}
  68. - name: vip_retryperiod
  69. value: {{ kube_vip_retryperiod | string | to_json }}
  70. {% endif %}
  71. {% if kube_vip_enable_node_labeling %}
  72. - name: enable_node_labeling
  73. value: {{ kube_vip_enable_node_labeling | string | to_json }}
  74. {% endif %}
  75. {% if kube_vip_bgp_enabled %}
  76. - name: bgp_enable
  77. value: "true"
  78. - name: bgp_routerid
  79. value: {{ kube_vip_bgp_routerid | string | to_json }}
  80. - name: bgp_as
  81. value: {{ kube_vip_local_as | string | to_json }}
  82. - name: bgp_peeraddress
  83. value: {{ kube_vip_bgp_peeraddress | to_json }}
  84. - name: bgp_peerpass
  85. value: {{ kube_vip_bgp_peerpass | to_json }}
  86. - name: bgp_peeras
  87. value: {{ kube_vip_bgp_peeras | string | to_json }}
  88. {% if kube_vip_bgppeers %}
  89. - name: bgp_peers
  90. value: {{ kube_vip_bgppeers | join(',') | to_json }}
  91. {% endif %}
  92. {% endif %}
  93. - name: address
  94. value: {{ kube_vip_address | to_json }}
  95. {% if kube_vip_lb_enable %}
  96. - name: lb_enable
  97. value: "true"
  98. {% endif %}
  99. {% if kube_vip_lb_fwdmethod %}
  100. - name: lb_fwdmethod
  101. value: {{ kube_vip_lb_fwdmethod | string | to_json }}
  102. {% endif %}
  103. image: {{ kube_vip_image_repo }}:{{ kube_vip_image_tag }}
  104. imagePullPolicy: {{ k8s_image_pull_policy }}
  105. name: kube-vip
  106. resources: {}
  107. securityContext:
  108. capabilities:
  109. add:
  110. - NET_ADMIN
  111. - NET_RAW
  112. volumeMounts:
  113. - mountPath: /etc/kubernetes/admin.conf
  114. name: kubeconfig
  115. hostAliases:
  116. - hostnames:
  117. - kubernetes
  118. ip: 127.0.0.1
  119. hostNetwork: true
  120. volumes:
  121. - hostPath:
  122. path: /etc/kubernetes/{{kube_vip_admin_conf}}
  123. name: kubeconfig
  124. status: {}