chore(metallb): cleanup and move to enterprise train (#3740)

This commit is contained in:
Kjeld Schouten-Lebbing
2022-09-11 23:47:55 +02:00
committed by GitHub
parent a23c49adc9
commit ac0e6bb226
18 changed files with 369 additions and 579 deletions
@@ -2,21 +2,6 @@
## [metallb-3.0.0](https://github.com/truecharts/charts/compare/metallb-2.0.14...metallb-3.0.0) (2022-09-11)
### Chore
- Auto-update chart README [skip ci]
- update helm general non-major ([#3711](https://github.com/truecharts/charts/issues/3711))
- replace questions parts with templates ([#3402](https://github.com/truecharts/charts/issues/3402))
### Feat
- update for v0.13 ([#3695](https://github.com/truecharts/charts/issues/3695))
## [metallb-3.0.0](https://github.com/truecharts/charts/compare/metallb-2.0.14...metallb-3.0.0) (2022-09-11)
### Chore
@@ -10,7 +10,7 @@ keywords:
dependencies:
- name: common
repository: https://library-charts.truecharts.org
version: 10.5.6
version: 10.5.7
- name: metallb
repository: https://metallb.github.io/metallb
version: 0.13.5
@@ -25,7 +25,7 @@ sources:
- https://github.com/metallb/metallb
- https://metallb.universe.tf
type: application
version: 3.0.0
version: 4.0.0
annotations:
truecharts.org/catagories: |
- core

Before

Width:  |  Height:  |  Size: 9.0 KiB

After

Width:  |  Height:  |  Size: 9.0 KiB

+293
View File
@@ -0,0 +1,293 @@
# Include{groups}
questions:
# Include{global}
# Include{controller}
- variable: ipAddressPools
label: IP Address Pools Object
schema:
additional_attrs: true
type: list
default: []
items:
- variable: name
label: Name
description: Name of the IP address pool
schema:
type: string
required: true
default: ""
- variable: autoAssign
label: Auto Assign
description: AutoAssign flag used to prevent MetallB from automatic
allocation for a pool.
schema:
type: boolean
default: true
- variable: avoidBuggyIPs
label: Avoid Buggy IPs
description: AvoidBuggyIPs prevents addresses ending with .0 and .255
to be used by a pool.
schema:
type: boolean
default: false
- variable: addresses
label: Addresses Pools
description: A list of IP address ranges over which MetalLB has authority.
You can list multiple ranges in a single pool, they will all share
the same settings. Each range can be either a CIDR prefix, or an
explicit start-end range of IPs.
schema:
type: list
default: []
items:
- variable: addressPoolEntry
label: Address Pool Entry
schema:
type: string
default: ""
required: true
- variable: L2Advertisements
label: L2 Advertisements
description: L2Advertisement allows to advertise the LoadBalancer IPs provided
by the selected pools via L2.
schema:
additional_attrs: true
type: list
default: []
items:
- variable: name
label: Name
description: Name of the L2 Advertisement
schema:
type: string
required: true
default: ""
- variable: addressPools
label: Address Pools
description: The list of IPAddressPools to advertise via this advertisement,
selected by name.
schema:
type: list
default: []
items:
- variable: addressPoolEntry
label: Address Pool Entry
schema:
type: string
default: ""
required: true
- variable: nodeSelectors
label: Node Selectors
description: NodeSelectors allows to limit the nodes to announce as
next hops for the LoadBalancer IP. When empty, all the nodes having are
announced as next hops.
schema:
type: list
default: []
items:
- variable: nodeSelectorEntry
label: Node Selector Entry
schema:
type: string
default: ""
required: true
- variable: Communities
label: Communities
description: Community is a collection of aliases for communities. Users can
define named aliases to be used in the BGPPeer CRD.
schema:
additional_attrs: true
type: list
default: []
items:
- variable: name
label: Name
description: The name of the alias for the community.
schema:
type: string
required: true
default: ""
- variable: value
label: Value
description: The BGP community value corresponding to the given name.
schema:
type: string
required: true
default: ""
- variable: Peers
label: Peers
description: BGPPeer is the Schema for the peers API.
schema:
additional_attrs: true
type: list
default: []
items:
- variable: name
label: Name
description: The name of the peer.
schema:
type: string
required: true
default: ""
- variable: bfdProfile
label: BFD Profile
description: The name of the BFD Profile to be used for the BFD session
associated to the BGP session. If not set, the BFD session won't
be set up.
schema:
type: string
default: ""
- variable: ebgpMultiHop
label: EBGP MultiHop
description: TTo set if the BGPPeer is multi-hops away. Needed for
FRR mode only.
schema:
type: boolean
default: false
- variable: holdTime
label: Hold Time
description: Requested BGP hold time, per RFC4271.
schema:
type: int
- variable: keepaliveTime
label: Keep Alive Time
description: Requested BGP keep alive time, per RFC4271.
schema:
type: int
- variable: myASN
label: My ASN
description: AS number to use for the local end of the session.
schema:
type: int
- variable: password
label: Password
description: Authentication password for routers enforcing TCP MD5
authenticated sessions
schema:
type: string
private: true
default: ""
- variable: peerASN
label: Peer ASN
description: AS number to expect from the remote end of the session.
schema:
type: string
valid_chars: '^[0-9]*$'
default: ""
- variable: peerAddress
label: Peer Address
description: Address to dial when establishing the session.
schema:
type: string
default: ""
- variable: peerPort
label: Peer Port
description: Port to dial when establishing the session.
schema:
type: string
valid_chars: '^[0-9]*$'
default: ""
- variable: routerID
label: Router ID
description: BGP router ID to advertise to the peer
schema:
type: string
default: ""
- variable: sourceAddress
label: Source Address
description: Source address to use when establishing the session.
schema:
type: string
default: ""
- variable: nodeSelectors
label: Node Selectors
description: Only connect to this peer on nodes that match one of
these selectors.
schema:
type: list
default: []
items:
- variable: nodeSelectorEntry
label: Node Selector Entry
schema:
type: string
default: ""
required: true
- variable: BGPAdvertisements
label: BGP Advertisements
description: BGPAdvertisement allows to advertise the IPs coming from the
selected IPAddressPools via BGP.
schema:
additional_attrs: true
type: list
default: []
items:
- variable: name
label: Name
description: Name of the BGP Advertisement
schema:
type: string
required: true
default: ""
- variable: addressPools
label: Address Pools
description: The list of IPAddressPools to advertise via this advertisement,
selected by name.
schema:
type: list
default: []
items:
- variable: addressPoolEntry
label: Address Pool Entry
schema:
type: string
default: ""
required: true
- variable: aggregationLength
label: Aggregation Length
description: The aggregation-length advertisement option lets you
"roll up" the /32s into a larger prefix. Defaults to 32. Works for
IPv4 addresses.
schema:
type: string
valid_chars: '^[0-9]*$'
default: ""
- variable: localpref
label: Local Pref
description: The BGP LOCAL_PREF attribute which is used by BGP best
path algorithm, Path with higher localpref is preferred over one
with lower localpref.
schema:
type: string
valid_chars: '^[0-9]*$'
default: ""
- variable: communities
label: Communities
description: The BGP communities to be associated with the announcement.
Each item can be a community of the form 1234:1234 or the name of
an alias defined in the Community CRD.
schema:
type: list
default: []
items:
- variable: communityEntry
label: Community Entry
schema:
type: string
default: ""
required: true
- variable: peers
label: Peers
description: Peers limits the BGPpeer to advertise the ips of the
selected pools to. When empty, the loadbalancer IP is announced
to all the BGPPeers configured.
schema:
type: list
default: []
items:
- variable: peerEntry
label: Peer Entry
schema:
type: string
default: ""
required: true
@@ -1,17 +1,9 @@
{{- define "metallb.bgpadv" -}}
{{ $namespace := .Release.Namespace }}
{{- if .Values.metallb.BGPAdvertisements }}
{{- range .Values.metallb.BGPAdvertisements }}
{{- range .Values.BGPAdvertisements }}
---
apiVersion: metallb.io/v1beta1
kind: BGPAdvertisement
metadata:
name: {{ .name }}
labels:
{{- include "tc.common.labels" $ | nindent 4 }}
annotations:
{{- include "tc.common.annotations" $ | nindent 4 }}
spec:
ipAddressPools:
{{- range .addressPools }}
@@ -36,6 +28,3 @@ spec:
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- end -}}
@@ -0,0 +1,13 @@
{{- if .Values.Communities }}
---
apiVersion: metallb.io/v1beta1
kind: Community
metadata:
name: communities
spec:
communities:
{{- range .Values.Communities }}
- name: {{ .name }}
value: {{ .value }}
{{- end }}
{{- end }}
@@ -0,0 +1,14 @@
{{- range .Values.ipAddressPools }}
---
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: {{ .addressPool.name }}
spec:
addresses:
{{- range .addressPool.addresses }}
- {{ . }}
{{- end }}
autoAssign: {{ .addressPool.autoAssign | default true }}
avoidBuggyIPs: {{ .addressPool.avoidBuggyIPs | default false }}
{{- end }}
@@ -1,17 +1,9 @@
{{- define "metallb.layer2adv" -}}
{{ $namespace := .Release.Namespace }}
{{- if .Values.metallb.L2Advertisements }}
{{- range .Values.metallb.L2Advertisements }}
{{- range .Values.L2Advertisements }}
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
name: {{ .name }}
labels:
{{- include "tc.common.labels" $ | nindent 4 }}
annotations:
{{- include "tc.common.annotations" $ | nindent 4 }}
spec:
ipAddressPools:
{{- range .addressPools }}
@@ -25,6 +17,3 @@ spec:
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- end -}}
@@ -1,17 +1,9 @@
{{- define "metallb.peer" -}}
{{ $namespace := .Release.Namespace }}
{{- if .Values.metallb.Peers }}
{{- range .Values.metallb.Peers }}
{{- range .Values.Peers }}
---
apiVersion: metallb.io/v1beta2
kind: BGPPeer
metadata:
name: {{ .name }}
labels:
{{- include "tc.common.labels" $ | nindent 4 }}
annotations:
{{- include "tc.common.annotations" $ | nindent 4 }}
spec:
{{- with .password }}
password: {{ . }}
@@ -54,6 +46,3 @@ spec:
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- end -}}
+41
View File
@@ -0,0 +1,41 @@
image:
repository: placeholder
tag: upstream
pullPolicy: IfNotPresent
metallb: {}
ipAddressPools: []
L2Advertisements: []
# - name: l2adv
# addressPools:
# - pool1
# nodeSelectors:
# - nodeA
BGPAdvertisements: []
# - name: bgpadv
# addressPools:
# - pool1
# aggregationLength: 24
# localpref: 100
# communities:
# - 1234:1
# peers:
# - peer1
Communities: []
# - name: community1
# value: 1234:1
Peers: []
# - name: peer1
# myASN: 1234
# password: pass
# routerID: 1234
# bfdProfile: profile
# ebgpMultiHop: false
# holdTime: 10
# keepaliveTime: 10
# peerAddress: 172.30.0.2
# peerPort: 179
# sourceAddress: 172.30.0.3
# nodeSelectors:
# - nodeA
-110
View File
@@ -1,110 +0,0 @@
# metallb
![Version: 3.0.0](https://img.shields.io/badge/Version-3.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: upstream](https://img.shields.io/badge/AppVersion-upstream-informational?style=flat-square)
A network load-balancer implementation for Kubernetes using standard routing protocols
TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE.
This readme is just an automatically generated general guide on installing our Helm Charts and Apps.
For more information, please click here: [metallb](https://truecharts.org/docs/charts/stable/metallb)
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)**
## Source Code
* <https://github.com/truecharts/charts/tree/master/charts/stable/metallb>
* <https://github.com/metallb/metallb>
* <https://metallb.universe.tf>
## Requirements
Kubernetes: `>=1.16.0-0`
## Dependencies
| Repository | Name | Version |
|------------|------|---------|
| https://library-charts.truecharts.org | common | 10.5.6 |
| https://metallb.github.io/metallb | metallb | 0.13.5 |
## Installing the Chart
### TrueNAS SCALE
To install this Chart on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Quick-Start%20Guides/Installing-an-App).
### Helm
To install the chart with the release name `metallb`
```console
helm repo add TrueCharts https://charts.truecharts.org
helm repo update
helm install metallb TrueCharts/metallb
```
## Uninstall
### TrueNAS SCALE
**Upgrading, Rolling Back and Uninstalling the Chart**
To upgrade, rollback or delete this Chart from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Quick-Start%20Guides/Upgrade-rollback-delete-an-App).
### Helm
To uninstall the `metallb` deployment
```console
helm uninstall metallb
```
## Configuration
### Helm
#### Available Settings
Read through the values.yaml file. It has several commented out suggested values.
Other values may be used from the [values.yaml](https://github.com/truecharts/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common).
#### Configure using the command line
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
```console
helm install metallb \
--set env.TZ="America/New York" \
TrueCharts/metallb
```
#### Configure using a yaml file
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
```console
helm install metallb TrueCharts/metallb -f values.yaml
```
#### Connecting to other charts
If you need to connect this Chart to other Charts on TrueNAS SCALE, please refer to our [Linking Charts Internally](https://truecharts.org/docs/manual/SCALE%20Apps/Quick-Start%20Guides/linking-apps) quick-start guide.
## Support
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/docs/manual/SCALE%20Apps/Quick-Start%20Guides/Important-MUST-READ).
- See the [Website](https://truecharts.org)
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
- Open a [issue](https://github.com/truecharts/apps/issues/new/choose)
---
## Sponsor TrueCharts
TrueCharts can only exist due to the incredible effort of our staff.
Please consider making a [donation](https://truecharts.org/docs/about/sponsor) or contributing back to the project any way you can!
---
All Rights Reserved - The TrueCharts Project
-8
View File
@@ -1,8 +0,0 @@
metallb:
ipAddressPools:
- addressPool:
name: ci_pool
addresses:
- 172.0.0.0/24
autoAssign: true
avoidBuggyIPs: false
-300
View File
@@ -1,300 +0,0 @@
# Include{groups}
questions:
# Include{global}
# Include{controller}
- variable: metallb
group: App Configuration
label: MetalLB Configuration
schema:
additional_attrs: true
type: dict
attrs:
- variable: ipAddressPools
label: IP Address Pools Object
schema:
additional_attrs: true
type: list
default: []
items:
- variable: name
label: Name
description: Name of the IP address pool
schema:
type: string
required: true
default: ""
- variable: autoAssign
label: Auto Assign
description: AutoAssign flag used to prevent MetallB from automatic
allocation for a pool.
schema:
type: boolean
default: true
- variable: avoidBuggyIPs
label: Avoid Buggy IPs
description: AvoidBuggyIPs prevents addresses ending with .0 and .255
to be used by a pool.
schema:
type: boolean
default: false
- variable: addresses
label: Addresses Pools
description: A list of IP address ranges over which MetalLB has authority.
You can list multiple ranges in a single pool, they will all share
the same settings. Each range can be either a CIDR prefix, or an
explicit start-end range of IPs.
schema:
type: list
default: []
items:
- variable: addressPoolEntry
label: Address Pool Entry
schema:
type: string
default: ""
required: true
- variable: L2Advertisements
label: L2 Advertisements
description: L2Advertisement allows to advertise the LoadBalancer IPs provided
by the selected pools via L2.
schema:
additional_attrs: true
type: list
default: []
items:
- variable: name
label: Name
description: Name of the L2 Advertisement
schema:
type: string
required: true
default: ""
- variable: addressPools
label: Address Pools
description: The list of IPAddressPools to advertise via this advertisement,
selected by name.
schema:
type: list
default: []
items:
- variable: addressPoolEntry
label: Address Pool Entry
schema:
type: string
default: ""
required: true
- variable: nodeSelectors
label: Node Selectors
description: NodeSelectors allows to limit the nodes to announce as
next hops for the LoadBalancer IP. When empty, all the nodes having are
announced as next hops.
schema:
type: list
default: []
items:
- variable: nodeSelectorEntry
label: Node Selector Entry
schema:
type: string
default: ""
required: true
- variable: Communities
label: Communities
description: Community is a collection of aliases for communities. Users can
define named aliases to be used in the BGPPeer CRD.
schema:
additional_attrs: true
type: list
default: []
items:
- variable: name
label: Name
description: The name of the alias for the community.
schema:
type: string
required: true
default: ""
- variable: value
label: Value
description: The BGP community value corresponding to the given name.
schema:
type: string
required: true
default: ""
- variable: Peers
label: Peers
description: BGPPeer is the Schema for the peers API.
schema:
additional_attrs: true
type: list
default: []
items:
- variable: name
label: Name
description: The name of the peer.
schema:
type: string
required: true
default: ""
- variable: bfdProfile
label: BFD Profile
description: The name of the BFD Profile to be used for the BFD session
associated to the BGP session. If not set, the BFD session won't
be set up.
schema:
type: string
default: ""
- variable: ebgpMultiHop
label: EBGP MultiHop
description: TTo set if the BGPPeer is multi-hops away. Needed for
FRR mode only.
schema:
type: boolean
default: false
- variable: holdTime
label: Hold Time
description: Requested BGP hold time, per RFC4271.
schema:
type: int
- variable: keepaliveTime
label: Keep Alive Time
description: Requested BGP keep alive time, per RFC4271.
schema:
type: int
- variable: myASN
label: My ASN
description: AS number to use for the local end of the session.
schema:
type: int
- variable: password
label: Password
description: Authentication password for routers enforcing TCP MD5
authenticated sessions
schema:
type: string
private: true
default: ""
- variable: peerASN
label: Peer ASN
description: AS number to expect from the remote end of the session.
schema:
type: string
valid_chars: '^[0-9]*$'
default: ""
- variable: peerAddress
label: Peer Address
description: Address to dial when establishing the session.
schema:
type: string
default: ""
- variable: peerPort
label: Peer Port
description: Port to dial when establishing the session.
schema:
type: string
valid_chars: '^[0-9]*$'
default: ""
- variable: routerID
label: Router ID
description: BGP router ID to advertise to the peer
schema:
type: string
default: ""
- variable: sourceAddress
label: Source Address
description: Source address to use when establishing the session.
schema:
type: string
default: ""
- variable: nodeSelectors
label: Node Selectors
description: Only connect to this peer on nodes that match one of
these selectors.
schema:
type: list
default: []
items:
- variable: nodeSelectorEntry
label: Node Selector Entry
schema:
type: string
default: ""
required: true
- variable: BGPAdvertisements
label: BGP Advertisements
description: BGPAdvertisement allows to advertise the IPs coming from the
selected IPAddressPools via BGP.
schema:
additional_attrs: true
type: list
default: []
items:
- variable: name
label: Name
description: Name of the BGP Advertisement
schema:
type: string
required: true
default: ""
- variable: addressPools
label: Address Pools
description: The list of IPAddressPools to advertise via this advertisement,
selected by name.
schema:
type: list
default: []
items:
- variable: addressPoolEntry
label: Address Pool Entry
schema:
type: string
default: ""
required: true
- variable: aggregationLength
label: Aggregation Length
description: The aggregation-length advertisement option lets you
"roll up" the /32s into a larger prefix. Defaults to 32. Works for
IPv4 addresses.
schema:
type: string
valid_chars: '^[0-9]*$'
default: ""
- variable: localpref
label: Local Pref
description: The BGP LOCAL_PREF attribute which is used by BGP best
path algorithm, Path with higher localpref is preferred over one
with lower localpref.
schema:
type: string
valid_chars: '^[0-9]*$'
default: ""
- variable: communities
label: Communities
description: The BGP communities to be associated with the announcement.
Each item can be a community of the form 1234:1234 or the name of
an alias defined in the Community CRD.
schema:
type: list
default: []
items:
- variable: communityEntry
label: Community Entry
schema:
type: string
default: ""
required: true
- variable: peers
label: Peers
description: Peers limits the BGPpeer to advertise the ips of the
selected pools to. When empty, the loadbalancer IP is announced
to all the BGPPeers configured.
schema:
type: list
default: []
items:
- variable: peerEntry
label: Peer Entry
schema:
type: string
default: ""
required: true
@@ -1,20 +0,0 @@
{{- define "metallb.community" -}}
{{- if .Values.metallb.Communities }}
apiVersion: metallb.io/v1beta1
kind: Community
metadata:
name: communities
labels:
{{- include "tc.common.labels" $ | nindent 4 }}
annotations:
{{- include "tc.common.annotations" $ | nindent 4 }}
spec:
communities:
{{- range .Values.metallb.Communities }}
- name: {{ .name }}
value: {{ .value }}
{{- end }}
{{- end }}
{{- end -}}
@@ -1,24 +0,0 @@
{{- define "metallb.ipAddressPool" -}}
{{ $namespace := .Release.Namespace }}
{{- if .Values.metallb.ipAddressPools }}
{{- range .Values.metallb.ipAddressPools }}
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: {{ .addressPool.name }}
labels:
{{- include "tc.common.labels" $ | nindent 4 }}
annotations:
{{- include "tc.common.annotations" $ | nindent 4 }}
spec:
addresses:
{{- range .addressPool.addresses }}
- {{ . }}
{{- end }}
autoAssign: {{ .addressPool.autoAssign | default true }}
avoidBuggyIPs: {{ .addressPool.avoidBuggyIPs | default false }}
{{- end }}
{{- end }}
{{- end -}}
@@ -1,12 +0,0 @@
{{/* Make sure all variables are set properly */}}
{{- include "tc.common.loader.init" . }}
{{- include "metallb.ipAddressPool" . }}
{{- include "metallb.layer2adv" . }}
{{- include "metallb.bgpadv" . }}
{{- include "metallb.community" . }}
{{- include "metallb.peer" . }}
-49
View File
@@ -1,49 +0,0 @@
image:
repository: placeholder
tag: upstream
pullPolicy: IfNotPresent
metallb:
ipAddressPools:
- addressPool:
name: pool1
addresses:
- 192.168.1.0/24
autoAssign: true
avoidBuggyIPs: false
# L2Advertisements:
# - name: l2adv
# addressPools:
# - pool1
# nodeSelectors:
# - nodeA
# BGPAdvertisements:
# - name: bgpadv
# addressPools:
# - pool1
# aggregationLength: 24
# localpref: 100
# communities:
# - 1234:1
# peers:
# - peer1
# Communities:
# - name: community1
# value: 1234:1
# Peers:
# - name: peer1
# myASN: 1234
# password: pass
# routerID: 1234
# bfdProfile: profile
# ebgpMultiHop: false
# holdTime: 10
# keepaliveTime: 10
# peerAddress: 172.30.0.2
# peerPort: 179
# sourceAddress: 172.30.0.3
# nodeSelectors:
# - nodeA
portal:
enabled: false