Skip to content

Whitespaces in 'addresses' configuration property #499

@gprossliner

Description

@gprossliner

The bug itself, as detailed as you can:

When using this configuration ('config'), all works as expected:

address-pools:

- name: ingress
  protocol: layer2
  addresses:
    - 10.0.0.80-10.0.0.80

- name: default
  protocol: layer2
  addresses:
    - 10.0.0.81-10.0.0.99

But when there are spaces, metallb is unable to provide an IP, so the EXTERNAL-IP keeps :

address-pools:

- name: ingress
  protocol: layer2
  addresses:
    - 10.0.0.80 - 10.0.0.80

- name: default
  protocol: layer2
  addresses:
    - 10.0.0.81 - 10.0.0.99

The logs of the speaker shows the error:

{
  "caller": "k8s.go:361",
  "configmap": "kube-metallb/config",
  "error": "parsing address pool #2: invalid CIDR \"10.0.0.81 - 10.0.0.99\" in pool \"default\"",
  "event": "configStale",
  "msg": "config (re)load failed, config marked stale",
  "ts": "2019-11-22T12:19:02.449737153Z"
}

Version of MetalLB

$ kubectl -n kube-metallb get pod -ojson | jq -r ".items[].spec.containers[].image"
metallb/controller:v0.8.2
metallb/speaker:v0.8.2
metallb/speaker:v0.8.2

Version of Kubernetes

$ kubectl version -ojson | jq -r ".serverVersion.gitVersion"`
v1.16.0

Name and version of network addon (e.g. Calico, Weave...)

$ kubectl -n kube-flannel get pod -ojson | jq -r ".items[].spec.containers[].image"
quay.io/coreos/flannel:v0.11.0-amd64
quay.io/coreos/flannel:v0.11.0-amd64

Whether you've configured kube-proxy for iptables or ipvs mode

$ kubectl -n kube-system logs kube-proxy-9jxfn
...
server_others.go:149] Using iptables Proxier.
...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions