Parameters

The parent key for all of the following parameters is metallb.

namespace

type

string

default

syn-metallb

name

type

string

default

metallb

Usually there is just one deployment and therefore no change is required.

speaker.secretkey

type

string

default

Vault reference

A vault reference pointing to the Vault secret containing the secret key. If the key isn’t provided as a vault reference, the secret key must be provided in its base64 encoded form. It can be generated using the command openssl rand -base64 128.

addresses

type

list

A list of CIDRs MetalLB is using as a pool to assign transferable virtual IPs whenever a new service of type LoadBalancer is created.

Valid values are a single IP 10.128.1.200/32 or multiple addresses sepcified 10.128.1.192/27 / 192.168.1.240-192.168.1.250.

When the cluster and the network infrastucture supports it, IPv6 CIDRs can be configured as well.

If the parameter addresses is provided, the component creates an IPAddressPool and L2Advertisement called default to advertise the provided CIDRs in layer 2 mode.

See the MetalLB documentation for more details.

config

type

dictionary

This parameter is deprecated. Config provided in this parameter should be migrated to the new component parameters which are mapped to custom resources, see below.

See the migration how-to for details.

A custom config can be provided. This overrides the automatic config generation.

The component doesn’t validate the provided configuration.

For example this allows to specify multiple address pools:

    config:
      address-pools:
        - name: pool1
          protocol: layer2
          addresses:
            - 10.128.1.200/32
        - name: pool2
          protocol: layer2
          addresses:
            - 10.128.2.200/32

See the MetalLB documentation for more details.

ipAddressPools

type

dictionary

default

{}

Each key-value pair in this parameter is transformed into a IPAddressPool custom resource. The key is used as metadata.name of the resulting resource. The value is merged into the resource as provided. One implication of this is that you need to provide a valid partial custom resource definition. For example, you must put configurations into field spec in the provided value. The component doesn’t validate the provided values.

When you use parameter addresses, you can further customize the IPAddressPool named default through this parameter. If you specify additional CIDRs through this parameter, the list provided here is merged with the list provided in addresses, filtering out duplicate entries.

l2Advertisements

type

dictionary

default

{}

Each key-value pair in this parameter is transformed into a L2Advertisement custom resource. The key is used as metadata.name of the resulting resource. The value is merged into the resource as provided. One implication of this is that you need to provide a valid partial custom resource definition. For example, you must put configurations into field spec in the provided value. The component doesn’t validate the provided values.

When you use parameter addresses, you can further customize the L2Advertisement named default through this parameter. If you specify additional address pool names through this parameter, the component ensures that there’s no duplicate entry for pool name default.

bgpPeers

type

dictionary

default

{}

Each key-value pair in this parameter is transformed into a BGPPeer custom resource. The key is used as metadata.name of the resulting resource. The value is merged into the resource as provided. One implication of this is that you need to provide a valid partial custom resource definition. For example, you must put configurations into field spec in the provided value. The component doesn’t validate the provided values.

bgpAdvertisements

type

dictionary

default

{}

Each key-value pair in this parameter is transformed into a BGPAdvertisement custom resource. The key is used as metadata.name of the resulting resource. The value is merged into the resource as provided. One implication of this is that you need to provide a valid partial custom resource definition. For example, you must put configurations into field spec in the provided value. The component doesn’t validate the provided values.

communities

type

dictionary

default

{}

Each key-value pair in this parameter is transformed into a Community custom resource. The key is used as metadata.name of the resulting resource. The value is merged into the resource as provided. One implication of this is that you need to provide a valid partial custom resource definition. For example, you must put configurations into field spec in the provided value. The component doesn’t validate the provided values.

bfdProfiles

type

dictionary

default

{}

Each key-value pair in this parameter is transformed into a BFDProfile custom resource. The key is used as metadata.name of the resulting resource. The value is merged into the resource as provided. One implication of this is that you need to provide a valid partial custom resource definition. For example, you must put configurations into field spec in the provided value. The component doesn’t validate the provided values.

charts.metallb.version

type

string

default

See class/defaults.yml

The version of the metallb chart that’s used.

helm_values

default

See class/defaults.yml

The Helm values to use when rendering the MetalLB Helm chart. See the chart’s values.yaml for supported fields.