1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
/*
* Copyright 2019 Intel Corporation, Inc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
NOTE - A configMap of available IPs is to be applied in order for services
to get external IP address assigned. Please Update values.yaml with
IP addresses before deploying
Prerequisites
-------------
- Kubernetes 1.9+
Installing the Chart
--------------------
The chart can be installed as follows:
```console
$ helm install --name metallb metallb
```
The command deploys MetalLB on the Kubernetes cluster. This chart does
not provide a default configuration; MetalLB will not act on your
Kubernetes Services until you provide
one. The [configuration](#configuration) section lists various ways to
provide this configuration.
Uninstalling the Chart
----------------------
To uninstall/delete the `metallb` deployment:
```console
$ helm delete metallb
```
The command removes all the Kubernetes components associated with the
chart, but will not remove the release metadata from `helm` — this will prevent
you, for example, if you later try to create a release also named `metallb`). To
fully delete the release and release history, simply [include the `--purge`
flag][helm-usage]:
```console
$ helm delete --purge metallb
```
Configuration
-------------
See `values.yaml` for configuration notes. Specify each parameter
using the `--set key=value[,key=value]` argument to `helm
install`. For example,
```console
$ helm install --name metallb \
--set rbac.create=false \
stable/metallb
```
The above command disables the use of RBAC rules.
Alternatively, a YAML file that specifies the values for the above
parameters can be provided while installing the chart. For example,
```console
$ helm install --name metallb -f values.yaml metallb
```
By default, this chart does not install a configuration for MetalLB, and simply
warns you that you must follow [the configuration instructions on MetalLB's
website][metallb-config] to create an appropriate ConfigMap.
**Please note:** By default, this chart expects a ConfigMap named
'metallb-config' within the same namespace as the chart is
deployed. _This is different than the MetalLB documentation_, which
asks you to create a ConfigMap in the `metallb-system` namespace, with
the name of 'config'.
For simple setups that only use MetalLB's [ARP mode][metallb-arpndp-concepts],
you can specify a single IP range using the `arpAddresses` parameter to have the
chart install a working configuration for you:
```console
$ helm install --name metallb \
--set arpAddresses=192.168.16.240/30 \
stable/metallb
```
If you have a more complex configuration and want Helm to manage it for you, you
can provide it in the `config` parameter. The configuration format is
[documented on MetalLB's website][metallb-config].
```console
$ cat values.yaml
configInline:
peers:
- peer-address: 10.0.0.1
peer-asn: 64512
my-asn: 64512
address-pools:
- name: default
protocol: bgp
addresses:
- 198.51.100.0/24
$ helm install --name metallb -f values.yaml metallb
```
[helm-home]: https://helm.sh
[helm-usage]: https://docs.helm.sh/using_helm/
[k8s-home]: https://kubernetes.io
[metallb-arpndp-concepts]: https://metallb.universe.tf/concepts/arp-ndp/
[metallb-config]: https://metallb.universe.tf/configuration/
[metallb-home]: https://metallb.universe.tf
|