Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions docs/ingress/kube-vip.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,3 +86,12 @@ kube_vip_leaseduration: 30
kube_vip_renewdeadline: 20
kube_vip_retryperiod: 4
```

To expose [Prometheus metrics](https://kube-vip.io/docs/installation/flags/#environment-variables) from the kube-vip static pod, set `kube_vip_metrics_enabled`. `kube_vip_metrics_port` is an integer; the manifest sets `prometheus_server` to `:PORT` because kube-vip passes that value to Go's HTTP listen address (see [`servePrometheusHTTPServer` in kube-vip](https://github.com/kube-vip/kube-vip/blob/main/cmd/kube-vip.go)). The manifest `ports` entry uses the same number for tooling that reads the pod spec.

Kubespray defaults `kube_vip_metrics_port` to `2112`, matching upstream kube-vip's `--prometheusHTTPServer` default. Override it if your scrape config expects another port.

```yaml
kube_vip_metrics_enabled: true
# kube_vip_metrics_port: 2112
```
2 changes: 2 additions & 0 deletions inventory/sample/group_vars/k8s_cluster/addons.yml
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,8 @@ kube_vip_enabled: false
# kube_vip_lb_fwdmethod: local
# kube_vip_bgp_sourceip:
# kube_vip_bgp_sourceif:
# kube_vip_metrics_enabled: false
# kube_vip_metrics_port: 2112

# Node Feature Discovery
node_feature_discovery_enabled: false
Expand Down
3 changes: 3 additions & 0 deletions roles/kubernetes/node/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,9 @@ kube_vip_retryperiod: 1
kube_vip_enable_node_labeling: false
kube_vip_bgp_sourceip:
kube_vip_bgp_sourceif:
kube_vip_metrics_enabled: false
# TCP port for kube-vip Prometheus metrics; manifest sets prometheus_server to :PORT (same as kube-vip upstream default, see cmd/kube-vip.go).
kube_vip_metrics_port: 2112

# Requests for load balancer app
loadbalancer_apiserver_memory_requests: 32M
Expand Down
10 changes: 10 additions & 0 deletions roles/kubernetes/node/templates/manifests/kube-vip.manifest.j2
Original file line number Diff line number Diff line change
Expand Up @@ -109,11 +109,21 @@ spec:
{% if kube_vip_lb_fwdmethod %}
- name: lb_fwdmethod
value: {{ kube_vip_lb_fwdmethod | string | to_json }}
{% endif %}
{% if kube_vip_metrics_enabled %}
- name: prometheus_server
value: {{ (':' ~ (kube_vip_metrics_port | string)) | to_json }}
{% endif %}
image: {{ kube_vip_image_repo }}:{{ kube_vip_image_tag }}
imagePullPolicy: {{ k8s_image_pull_policy }}
name: kube-vip
resources: {}
{% if kube_vip_metrics_enabled %}
ports:
- name: metrics
containerPort: {{ kube_vip_metrics_port }}
protocol: TCP
{% endif %}
{% if kube_vip_lb_fwdmethod == "masquerade" %}
securityContext:
privileged: true
Expand Down