Update MetalLB and all other packages around it
All checks were successful
Build PR in OBS / Build PR in OBS (pull_request_target) Successful in -2s
All checks were successful
Build PR in OBS / Build PR in OBS (pull_request_target) Successful in -2s
This commit is contained in:
parent
ab92525cbe
commit
54c0850acf
@ -1,7 +1,7 @@
|
|||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
#!BuildTag: %%IMG_PREFIX%%frr:8.4
|
#!BuildTag: %%IMG_PREFIX%%frr:8.5.6
|
||||||
#!BuildTag: %%IMG_PREFIX%%frr:8.4-%RELEASE%
|
#!BuildTag: %%IMG_PREFIX%%frr:8.5.6-%RELEASE%
|
||||||
#!BuildVersion: 15.5
|
#!BuildVersion: 15.6
|
||||||
ARG SLE_VERSION
|
ARG SLE_VERSION
|
||||||
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
|
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
|
||||||
|
|
||||||
@ -15,11 +15,11 @@ FROM micro AS final
|
|||||||
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
|
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
|
||||||
LABEL org.opencontainers.image.title="FRR Container Image"
|
LABEL org.opencontainers.image.title="FRR Container Image"
|
||||||
LABEL org.opencontainers.image.description="frr based on the SLE Base Container Image."
|
LABEL org.opencontainers.image.description="frr based on the SLE Base Container Image."
|
||||||
LABEL org.opencontainers.image.version="8.4"
|
LABEL org.opencontainers.image.version="8.5.6"
|
||||||
LABEL org.opencontainers.image.url="https://www.suse.com/products/server/"
|
LABEL org.opencontainers.image.url="https://www.suse.com/products/server/"
|
||||||
LABEL org.opencontainers.image.created="%BUILDTIME%"
|
LABEL org.opencontainers.image.created="%BUILDTIME%"
|
||||||
LABEL org.opencontainers.image.vendor="SUSE LLC"
|
LABEL org.opencontainers.image.vendor="SUSE LLC"
|
||||||
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%frr:8.4-%RELEASE%"
|
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%frr:8.5.6-%RELEASE%"
|
||||||
LABEL org.openbuildservice.disturl="%DISTURL%"
|
LABEL org.openbuildservice.disturl="%DISTURL%"
|
||||||
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
|
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
|
||||||
LABEL com.suse.eula="SUSE Combined EULA February 2024"
|
LABEL com.suse.eula="SUSE Combined EULA February 2024"
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<service name="obs_scm">
|
<service name="obs_scm">
|
||||||
<param name="url">https://github.com/metallb/frr-k8s</param>
|
<param name="url">https://github.com/metallb/frr-k8s</param>
|
||||||
<param name="scm">git</param>
|
<param name="scm">git</param>
|
||||||
<param name="revision">v0.0.14</param>
|
<param name="revision">v0.0.16</param>
|
||||||
<param name="version">_auto_</param>
|
<param name="version">_auto_</param>
|
||||||
<param name="versionformat">@PARENT_TAG@</param>
|
<param name="versionformat">@PARENT_TAG@</param>
|
||||||
<param name="changesgenerate">enable</param>
|
<param name="changesgenerate">enable</param>
|
||||||
|
@ -17,8 +17,8 @@
|
|||||||
|
|
||||||
|
|
||||||
Name: frr-k8s
|
Name: frr-k8s
|
||||||
Version: 0.0.14
|
Version: 0.0.16
|
||||||
Release: 0.0.14
|
Release: 0.0.16
|
||||||
Summary: A kubernetes based daemonset that exposes a subset of the FRR API in a kubernetes compliant manner.
|
Summary: A kubernetes based daemonset that exposes a subset of the FRR API in a kubernetes compliant manner.
|
||||||
License: Apache-2.0
|
License: Apache-2.0
|
||||||
URL: https://github.com/metallb/frr-k8s
|
URL: https://github.com/metallb/frr-k8s
|
||||||
|
@ -1,16 +1,15 @@
|
|||||||
#!BuildTag: %%IMG_PREFIX%%metallb-chart:%%CHART_MAJOR%%.0.0_up0.14.9
|
|
||||||
#!BuildTag: %%IMG_PREFIX%%metallb-chart:%%CHART_MAJOR%%.0.0_up0.14.9-%RELEASE%
|
|
||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
appVersion: v0.14.3
|
appVersion: v0.14.9
|
||||||
dependencies:
|
dependencies:
|
||||||
- condition: frrk8s.enabled
|
- condition: crds.enabled
|
||||||
|
name: crds
|
||||||
|
repository: file://./charts/crds
|
||||||
|
version: 0.14.9
|
||||||
|
- alias: metallb-frr-k8s
|
||||||
|
condition: frrk8s.enabled
|
||||||
name: frr-k8s
|
name: frr-k8s
|
||||||
repository: file://./charts/frr-k8s
|
repository: file://./charts/frr-k8s
|
||||||
version: 0.0.15
|
version: 0.0.16
|
||||||
- condition: crds.enabled
|
|
||||||
name: metallb-crds
|
|
||||||
repository: file://./charts/metallb-crds
|
|
||||||
version: 0.14.8
|
|
||||||
description: A network load-balancer implementation for Kubernetes using standard
|
description: A network load-balancer implementation for Kubernetes using standard
|
||||||
routing protocols
|
routing protocols
|
||||||
home: https://metallb.universe.tf
|
home: https://metallb.universe.tf
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# metallb
|
# metallb
|
||||||
|
|
||||||
  
|
  
|
||||||
|
|
||||||
A network load-balancer implementation for Kubernetes using standard routing protocols
|
A network load-balancer implementation for Kubernetes using standard routing protocols
|
||||||
|
|
||||||
@ -16,8 +16,8 @@ Kubernetes: `>= 1.19.0-0`
|
|||||||
|
|
||||||
| Repository | Name | Version |
|
| Repository | Name | Version |
|
||||||
|------------|------|---------|
|
|------------|------|---------|
|
||||||
| | crds | 0.14.8 |
|
| | crds | 0.14.9 |
|
||||||
| https://metallb.github.io/frr-k8s | frr-k8s | 0.0.14 |
|
| https://metallb.github.io/frr-k8s | frr-k8s | 0.0.16 |
|
||||||
|
|
||||||
## Values
|
## Values
|
||||||
|
|
||||||
@ -79,17 +79,17 @@ Kubernetes: `>= 1.19.0-0`
|
|||||||
| prometheus.podMonitor.relabelings | list | `[]` | |
|
| prometheus.podMonitor.relabelings | list | `[]` | |
|
||||||
| prometheus.prometheusRule.additionalLabels | object | `{}` | |
|
| prometheus.prometheusRule.additionalLabels | object | `{}` | |
|
||||||
| prometheus.prometheusRule.addressPoolExhausted.enabled | bool | `true` | |
|
| prometheus.prometheusRule.addressPoolExhausted.enabled | bool | `true` | |
|
||||||
| prometheus.prometheusRule.addressPoolExhausted.labels.severity | string | `"alert"` | |
|
| prometheus.prometheusRule.addressPoolExhausted.labels.severity | string | `"critical"` | |
|
||||||
| prometheus.prometheusRule.addressPoolUsage.enabled | bool | `true` | |
|
| prometheus.prometheusRule.addressPoolUsage.enabled | bool | `true` | |
|
||||||
| prometheus.prometheusRule.addressPoolUsage.thresholds[0].labels.severity | string | `"warning"` | |
|
| prometheus.prometheusRule.addressPoolUsage.thresholds[0].labels.severity | string | `"warning"` | |
|
||||||
| prometheus.prometheusRule.addressPoolUsage.thresholds[0].percent | int | `75` | |
|
| prometheus.prometheusRule.addressPoolUsage.thresholds[0].percent | int | `75` | |
|
||||||
| prometheus.prometheusRule.addressPoolUsage.thresholds[1].labels.severity | string | `"warning"` | |
|
| prometheus.prometheusRule.addressPoolUsage.thresholds[1].labels.severity | string | `"warning"` | |
|
||||||
| prometheus.prometheusRule.addressPoolUsage.thresholds[1].percent | int | `85` | |
|
| prometheus.prometheusRule.addressPoolUsage.thresholds[1].percent | int | `85` | |
|
||||||
| prometheus.prometheusRule.addressPoolUsage.thresholds[2].labels.severity | string | `"alert"` | |
|
| prometheus.prometheusRule.addressPoolUsage.thresholds[2].labels.severity | string | `"critical"` | |
|
||||||
| prometheus.prometheusRule.addressPoolUsage.thresholds[2].percent | int | `95` | |
|
| prometheus.prometheusRule.addressPoolUsage.thresholds[2].percent | int | `95` | |
|
||||||
| prometheus.prometheusRule.annotations | object | `{}` | |
|
| prometheus.prometheusRule.annotations | object | `{}` | |
|
||||||
| prometheus.prometheusRule.bgpSessionDown.enabled | bool | `true` | |
|
| prometheus.prometheusRule.bgpSessionDown.enabled | bool | `true` | |
|
||||||
| prometheus.prometheusRule.bgpSessionDown.labels.severity | string | `"alert"` | |
|
| prometheus.prometheusRule.bgpSessionDown.labels.severity | string | `"critical"` | |
|
||||||
| prometheus.prometheusRule.configNotLoaded.enabled | bool | `true` | |
|
| prometheus.prometheusRule.configNotLoaded.enabled | bool | `true` | |
|
||||||
| prometheus.prometheusRule.configNotLoaded.labels.severity | string | `"warning"` | |
|
| prometheus.prometheusRule.configNotLoaded.labels.severity | string | `"warning"` | |
|
||||||
| prometheus.prometheusRule.enabled | bool | `false` | |
|
| prometheus.prometheusRule.enabled | bool | `false` | |
|
||||||
@ -99,7 +99,7 @@ Kubernetes: `>= 1.19.0-0`
|
|||||||
| prometheus.rbacPrometheus | bool | `true` | |
|
| prometheus.rbacPrometheus | bool | `true` | |
|
||||||
| prometheus.rbacProxy.pullPolicy | string | `nil` | |
|
| prometheus.rbacProxy.pullPolicy | string | `nil` | |
|
||||||
| prometheus.rbacProxy.repository | string | `"registry.opensuse.org/isv/suse/edge/metallb/images/kube-rbac-proxy"` | |
|
| prometheus.rbacProxy.repository | string | `"registry.opensuse.org/isv/suse/edge/metallb/images/kube-rbac-proxy"` | |
|
||||||
| prometheus.rbacProxy.tag | string | `"v0.12.0"` | |
|
| prometheus.rbacProxy.tag | string | `"v0.18.0"` | |
|
||||||
| prometheus.scrapeAnnotations | bool | `false` | |
|
| prometheus.scrapeAnnotations | bool | `false` | |
|
||||||
| prometheus.serviceAccount | string | `""` | |
|
| prometheus.serviceAccount | string | `""` | |
|
||||||
| prometheus.serviceMonitor.controller.additionalLabels | object | `{}` | |
|
| prometheus.serviceMonitor.controller.additionalLabels | object | `{}` | |
|
||||||
@ -122,7 +122,7 @@ Kubernetes: `>= 1.19.0-0`
|
|||||||
| speaker.frr.enabled | bool | `true` | |
|
| speaker.frr.enabled | bool | `true` | |
|
||||||
| speaker.frr.image.pullPolicy | string | `nil` | |
|
| speaker.frr.image.pullPolicy | string | `nil` | |
|
||||||
| speaker.frr.image.repository | string | `"registry.opensuse.org/isv/suse/edge/metallb/images/frr"` | |
|
| speaker.frr.image.repository | string | `"registry.opensuse.org/isv/suse/edge/metallb/images/frr"` | |
|
||||||
| speaker.frr.image.tag | string | `"8.4.2"` | |
|
| speaker.frr.image.tag | string | `"8.5.6"` | |
|
||||||
| speaker.frr.metricsPort | int | `7473` | |
|
| speaker.frr.metricsPort | int | `7473` | |
|
||||||
| speaker.frr.resources | object | `{}` | |
|
| speaker.frr.resources | object | `{}` | |
|
||||||
| speaker.frrMetrics.resources | object | `{}` | |
|
| speaker.frrMetrics.resources | object | `{}` | |
|
||||||
|
@ -3,8 +3,8 @@ appVersion: v0.14.9
|
|||||||
description: MetalLB CRDs
|
description: MetalLB CRDs
|
||||||
home: https://metallb.universe.tf
|
home: https://metallb.universe.tf
|
||||||
icon: https://metallb.universe.tf/images/logo/metallb-white.png
|
icon: https://metallb.universe.tf/images/logo/metallb-white.png
|
||||||
name: metallb-crds
|
name: crds
|
||||||
sources:
|
sources:
|
||||||
- https://github.com/metallb/metallb
|
- https://github.com/metallb/metallb
|
||||||
type: application
|
type: application
|
||||||
version: 0.14.8
|
version: 0.14.9
|
14
metallb-chart/charts/crds/README.md
Normal file
14
metallb-chart/charts/crds/README.md
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# crds
|
||||||
|
|
||||||
|
  
|
||||||
|
|
||||||
|
MetalLB CRDs
|
||||||
|
|
||||||
|
**Homepage:** <https://metallb.universe.tf>
|
||||||
|
|
||||||
|
## Source Code
|
||||||
|
|
||||||
|
* <https://github.com/metallb/metallb>
|
||||||
|
|
||||||
|
----------------------------------------------
|
||||||
|
Autogenerated from chart metadata using [helm-docs v1.10.0](https://github.com/norwoodj/helm-docs/releases/v1.10.0)
|
@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
|
|||||||
kind: CustomResourceDefinition
|
kind: CustomResourceDefinition
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
controller-gen.kubebuilder.io/version: v0.14.0
|
controller-gen.kubebuilder.io/version: v0.16.3
|
||||||
name: bfdprofiles.metallb.io
|
name: bfdprofiles.metallb.io
|
||||||
spec:
|
spec:
|
||||||
group: metallb.io
|
group: metallb.io
|
||||||
@ -123,7 +123,7 @@ apiVersion: apiextensions.k8s.io/v1
|
|||||||
kind: CustomResourceDefinition
|
kind: CustomResourceDefinition
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
controller-gen.kubebuilder.io/version: v0.14.0
|
controller-gen.kubebuilder.io/version: v0.16.3
|
||||||
name: bgpadvertisements.metallb.io
|
name: bgpadvertisements.metallb.io
|
||||||
spec:
|
spec:
|
||||||
group: metallb.io
|
group: metallb.io
|
||||||
@ -329,7 +329,7 @@ apiVersion: apiextensions.k8s.io/v1
|
|||||||
kind: CustomResourceDefinition
|
kind: CustomResourceDefinition
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
controller-gen.kubebuilder.io/version: v0.14.0
|
controller-gen.kubebuilder.io/version: v0.16.3
|
||||||
name: bgppeers.metallb.io
|
name: bgppeers.metallb.io
|
||||||
spec:
|
spec:
|
||||||
conversion:
|
conversion:
|
||||||
@ -365,6 +365,8 @@ spec:
|
|||||||
- jsonPath: .spec.ebgpMultiHop
|
- jsonPath: .spec.ebgpMultiHop
|
||||||
name: Multi Hops
|
name: Multi Hops
|
||||||
type: string
|
type: string
|
||||||
|
deprecated: true
|
||||||
|
deprecationWarning: v1beta1 is deprecated, please use v1beta2
|
||||||
name: v1beta1
|
name: v1beta1
|
||||||
schema:
|
schema:
|
||||||
openAPIV3Schema:
|
openAPIV3Schema:
|
||||||
@ -526,15 +528,26 @@ spec:
|
|||||||
default: false
|
default: false
|
||||||
description: To set if we want to disable MP BGP that will separate IPv4 and IPv6 route exchanges into distinct BGP sessions.
|
description: To set if we want to disable MP BGP that will separate IPv4 and IPv6 route exchanges into distinct BGP sessions.
|
||||||
type: boolean
|
type: boolean
|
||||||
|
dynamicASN:
|
||||||
|
description: |-
|
||||||
|
DynamicASN detects the AS number to use for the remote end of the session
|
||||||
|
without explicitly setting it via the ASN field. Limited to:
|
||||||
|
internal - if the neighbor's ASN is different than MyASN connection is denied.
|
||||||
|
external - if the neighbor's ASN is the same as MyASN the connection is denied.
|
||||||
|
ASN and DynamicASN are mutually exclusive and one of them must be specified.
|
||||||
|
enum:
|
||||||
|
- internal
|
||||||
|
- external
|
||||||
|
type: string
|
||||||
ebgpMultiHop:
|
ebgpMultiHop:
|
||||||
description: To set if the BGPPeer is multi-hops away. Needed for FRR mode only.
|
description: To set if the BGPPeer is multi-hops away. Needed for FRR mode only.
|
||||||
type: boolean
|
type: boolean
|
||||||
enableGracefulRestart:
|
enableGracefulRestart:
|
||||||
description: |-
|
description: |-
|
||||||
EnableGracefulRestart allows BGP peer to continue to forward data packets along
|
EnableGracefulRestart allows BGP peer to continue to forward data packets
|
||||||
known routes while the routing protocol information is being restored.
|
along known routes while the routing protocol information is being
|
||||||
This field is immutable because it requires restart of the BGP session
|
restored. This field is immutable because it requires restart of the BGP
|
||||||
Supported for FRR mode only.
|
session. Supported for FRR mode only.
|
||||||
type: boolean
|
type: boolean
|
||||||
x-kubernetes-validations:
|
x-kubernetes-validations:
|
||||||
- message: EnableGracefulRestart cannot be changed after creation
|
- message: EnableGracefulRestart cannot be changed after creation
|
||||||
@ -622,7 +635,9 @@ spec:
|
|||||||
type: object
|
type: object
|
||||||
x-kubernetes-map-type: atomic
|
x-kubernetes-map-type: atomic
|
||||||
peerASN:
|
peerASN:
|
||||||
description: AS number to expect from the remote end of the session.
|
description: |-
|
||||||
|
AS number to expect from the remote end of the session.
|
||||||
|
ASN and DynamicASN are mutually exclusive and one of them must be specified.
|
||||||
format: int32
|
format: int32
|
||||||
maximum: 4294967295
|
maximum: 4294967295
|
||||||
minimum: 0
|
minimum: 0
|
||||||
@ -649,7 +664,6 @@ spec:
|
|||||||
type: string
|
type: string
|
||||||
required:
|
required:
|
||||||
- myASN
|
- myASN
|
||||||
- peerASN
|
|
||||||
- peerAddress
|
- peerAddress
|
||||||
type: object
|
type: object
|
||||||
status:
|
status:
|
||||||
@ -665,7 +679,7 @@ apiVersion: apiextensions.k8s.io/v1
|
|||||||
kind: CustomResourceDefinition
|
kind: CustomResourceDefinition
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
controller-gen.kubebuilder.io/version: v0.14.0
|
controller-gen.kubebuilder.io/version: v0.16.3
|
||||||
name: communities.metallb.io
|
name: communities.metallb.io
|
||||||
spec:
|
spec:
|
||||||
group: metallb.io
|
group: metallb.io
|
||||||
@ -730,7 +744,7 @@ apiVersion: apiextensions.k8s.io/v1
|
|||||||
kind: CustomResourceDefinition
|
kind: CustomResourceDefinition
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
controller-gen.kubebuilder.io/version: v0.14.0
|
controller-gen.kubebuilder.io/version: v0.16.3
|
||||||
name: ipaddresspools.metallb.io
|
name: ipaddresspools.metallb.io
|
||||||
spec:
|
spec:
|
||||||
group: metallb.io
|
group: metallb.io
|
||||||
@ -940,7 +954,7 @@ apiVersion: apiextensions.k8s.io/v1
|
|||||||
kind: CustomResourceDefinition
|
kind: CustomResourceDefinition
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
controller-gen.kubebuilder.io/version: v0.14.0
|
controller-gen.kubebuilder.io/version: v0.16.3
|
||||||
name: l2advertisements.metallb.io
|
name: l2advertisements.metallb.io
|
||||||
spec:
|
spec:
|
||||||
group: metallb.io
|
group: metallb.io
|
||||||
@ -1120,7 +1134,7 @@ apiVersion: apiextensions.k8s.io/v1
|
|||||||
kind: CustomResourceDefinition
|
kind: CustomResourceDefinition
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
controller-gen.kubebuilder.io/version: v0.14.0
|
controller-gen.kubebuilder.io/version: v0.16.3
|
||||||
name: servicel2statuses.metallb.io
|
name: servicel2statuses.metallb.io
|
||||||
spec:
|
spec:
|
||||||
group: metallb.io
|
group: metallb.io
|
23
metallb-chart/charts/frr-k8s/.helmignore
Normal file
23
metallb-chart/charts/frr-k8s/.helmignore
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# Patterns to ignore when building packages.
|
||||||
|
# This supports shell glob matching, relative path matching, and
|
||||||
|
# negation (prefixed with !). Only one pattern per line.
|
||||||
|
.DS_Store
|
||||||
|
# Common VCS dirs
|
||||||
|
.git/
|
||||||
|
.gitignore
|
||||||
|
.bzr/
|
||||||
|
.bzrignore
|
||||||
|
.hg/
|
||||||
|
.hgignore
|
||||||
|
.svn/
|
||||||
|
# Common backup files
|
||||||
|
*.swp
|
||||||
|
*.bak
|
||||||
|
*.tmp
|
||||||
|
*.orig
|
||||||
|
*~
|
||||||
|
# Various IDEs
|
||||||
|
.project
|
||||||
|
.idea/
|
||||||
|
*.tmproj
|
||||||
|
.vscode/
|
6
metallb-chart/charts/frr-k8s/Chart.lock
Normal file
6
metallb-chart/charts/frr-k8s/Chart.lock
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
dependencies:
|
||||||
|
- name: crds
|
||||||
|
repository: ""
|
||||||
|
version: 0.0.16
|
||||||
|
digest: sha256:b54ee64c5e61f1dd38e89efc87ebd1e36cdb7c4dd7c897d9985040dccd713dba
|
||||||
|
generated: "2024-11-22T11:40:47.152053909+01:00"
|
@ -1,5 +1,10 @@
|
|||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
appVersion: v0.0.14
|
appVersion: v0.0.16
|
||||||
|
dependencies:
|
||||||
|
- condition: crds.enabled
|
||||||
|
name: crds
|
||||||
|
repository: file://./charts/crds
|
||||||
|
version: 0.0.16
|
||||||
description: A cloud native wrapper of FRR
|
description: A cloud native wrapper of FRR
|
||||||
home: https://metallb.universe.tf
|
home: https://metallb.universe.tf
|
||||||
icon: https://metallb.universe.tf/images/logo/metallb-white.png
|
icon: https://metallb.universe.tf/images/logo/metallb-white.png
|
||||||
@ -8,4 +13,4 @@ name: frr-k8s
|
|||||||
sources:
|
sources:
|
||||||
- https://github.com/metallb/frr-k8s
|
- https://github.com/metallb/frr-k8s
|
||||||
type: application
|
type: application
|
||||||
version: 0.0.15
|
version: 0.0.16
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# frr-k8s
|
# frr-k8s
|
||||||
|
|
||||||
  
|
  
|
||||||
|
|
||||||
A cloud native wrapper of FRR
|
A cloud native wrapper of FRR
|
||||||
|
|
||||||
@ -16,7 +16,7 @@ Kubernetes: `>= 1.19.0-0`
|
|||||||
|
|
||||||
| Repository | Name | Version |
|
| Repository | Name | Version |
|
||||||
|------------|------|---------|
|
|------------|------|---------|
|
||||||
| | crds | 0.0.14 |
|
| | crds | 0.0.16 |
|
||||||
|
|
||||||
## Values
|
## Values
|
||||||
|
|
||||||
@ -27,17 +27,17 @@ Kubernetes: `>= 1.19.0-0`
|
|||||||
| frrk8s.affinity | object | `{}` | |
|
| frrk8s.affinity | object | `{}` | |
|
||||||
| frrk8s.alwaysBlock | string | `""` | |
|
| frrk8s.alwaysBlock | string | `""` | |
|
||||||
| frrk8s.disableCertRotation | bool | `false` | |
|
| frrk8s.disableCertRotation | bool | `false` | |
|
||||||
|
| frrk8s.frr.acceptIncomingBGPConnections | bool | `false` | |
|
||||||
| frrk8s.frr.image.pullPolicy | string | `nil` | |
|
| frrk8s.frr.image.pullPolicy | string | `nil` | |
|
||||||
| frrk8s.frr.image.repository | string | `"quay.io/frrouting/frr"` | |
|
| frrk8s.frr.image.repository | string | `"registry.opensuse.org/isv/suse/edge/metallb/images/frr"` | |
|
||||||
| frrk8s.frr.image.tag | string | `"9.1.0"` | |
|
| frrk8s.frr.image.tag | string | `"8.5.6"` | |
|
||||||
| frrk8s.frr.metricsBindAddress | string | `"127.0.0.1"` | |
|
| frrk8s.frr.metricsBindAddress | string | `"127.0.0.1"` | |
|
||||||
| frrk8s.frr.metricsPort | int | `7573` | |
|
| frrk8s.frr.metricsPort | int | `7573` | |
|
||||||
| frrk8s.frr.resources | object | `{}` | |
|
| frrk8s.frr.resources | object | `{}` | |
|
||||||
| frrk8s.frr.secureMetricsPort | int | `9141` | |
|
| frrk8s.frr.secureMetricsPort | int | `9141` | |
|
||||||
| frrk8s.frrMetrics.resources | object | `{}` | |
|
| frrk8s.frrMetrics.resources | object | `{}` | |
|
||||||
| frrk8s.healthPort | int | `8081` | |
|
|
||||||
| frrk8s.image.pullPolicy | string | `nil` | |
|
| frrk8s.image.pullPolicy | string | `nil` | |
|
||||||
| frrk8s.image.repository | string | `"quay.io/metallb/frr-k8s"` | |
|
| frrk8s.image.repository | string | `"registry.opensuse.org/isv/suse/edge/metallb/images/frr-k8s"` | |
|
||||||
| frrk8s.image.tag | string | `nil` | |
|
| frrk8s.image.tag | string | `nil` | |
|
||||||
| frrk8s.labels.app | string | `"frr-k8s"` | |
|
| frrk8s.labels.app | string | `"frr-k8s"` | |
|
||||||
| frrk8s.livenessProbe.enabled | bool | `true` | |
|
| frrk8s.livenessProbe.enabled | bool | `true` | |
|
||||||
@ -77,8 +77,8 @@ Kubernetes: `>= 1.19.0-0`
|
|||||||
| prometheus.namespace | string | `""` | |
|
| prometheus.namespace | string | `""` | |
|
||||||
| prometheus.rbacPrometheus | bool | `false` | |
|
| prometheus.rbacPrometheus | bool | `false` | |
|
||||||
| prometheus.rbacProxy.pullPolicy | string | `nil` | |
|
| prometheus.rbacProxy.pullPolicy | string | `nil` | |
|
||||||
| prometheus.rbacProxy.repository | string | `"gcr.io/kubebuilder/kube-rbac-proxy"` | |
|
| prometheus.rbacProxy.repository | string | `"registry.opensuse.org/isv/suse/edge/metallb/images/kube-rbac-proxy"` | |
|
||||||
| prometheus.rbacProxy.tag | string | `"v0.12.0"` | |
|
| prometheus.rbacProxy.tag | string | `"v0.18.0"` | |
|
||||||
| prometheus.scrapeAnnotations | bool | `false` | |
|
| prometheus.scrapeAnnotations | bool | `false` | |
|
||||||
| prometheus.secureMetricsPort | int | `9140` | |
|
| prometheus.secureMetricsPort | int | `9140` | |
|
||||||
| prometheus.serviceAccount | string | `""` | |
|
| prometheus.serviceAccount | string | `""` | |
|
||||||
|
23
metallb-chart/charts/frr-k8s/charts/crds/.helmignore
Normal file
23
metallb-chart/charts/frr-k8s/charts/crds/.helmignore
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# Patterns to ignore when building packages.
|
||||||
|
# This supports shell glob matching, relative path matching, and
|
||||||
|
# negation (prefixed with !). Only one pattern per line.
|
||||||
|
.DS_Store
|
||||||
|
# Common VCS dirs
|
||||||
|
.git/
|
||||||
|
.gitignore
|
||||||
|
.bzr/
|
||||||
|
.bzrignore
|
||||||
|
.hg/
|
||||||
|
.hgignore
|
||||||
|
.svn/
|
||||||
|
# Common backup files
|
||||||
|
*.swp
|
||||||
|
*.bak
|
||||||
|
*.tmp
|
||||||
|
*.orig
|
||||||
|
*~
|
||||||
|
# Various IDEs
|
||||||
|
.project
|
||||||
|
.idea/
|
||||||
|
*.tmproj
|
||||||
|
.vscode/
|
10
metallb-chart/charts/frr-k8s/charts/crds/Chart.yaml
Normal file
10
metallb-chart/charts/frr-k8s/charts/crds/Chart.yaml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
apiVersion: v2
|
||||||
|
appVersion: v0.0.16
|
||||||
|
description: FRR K8s CRDs
|
||||||
|
home: https://metallb.universe.tf
|
||||||
|
icon: https://metallb.universe.tf/images/logo/metallb-white.png
|
||||||
|
name: crds
|
||||||
|
sources:
|
||||||
|
- https://github.com/metallb/frr-k8s
|
||||||
|
type: application
|
||||||
|
version: 0.0.16
|
14
metallb-chart/charts/frr-k8s/charts/crds/README.md
Normal file
14
metallb-chart/charts/frr-k8s/charts/crds/README.md
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# crds
|
||||||
|
|
||||||
|
  
|
||||||
|
|
||||||
|
FRR-K8s CRDs
|
||||||
|
|
||||||
|
**Homepage:** <https://metallb.universe.tf>
|
||||||
|
|
||||||
|
## Source Code
|
||||||
|
|
||||||
|
* <https://github.com/metallb/frr-k8s>
|
||||||
|
|
||||||
|
----------------------------------------------
|
||||||
|
Autogenerated from chart metadata using [helm-docs v1.10.0](https://github.com/norwoodj/helm-docs/releases/v1.10.0)
|
@ -156,8 +156,9 @@ spec:
|
|||||||
the session with.
|
the session with.
|
||||||
type: string
|
type: string
|
||||||
asn:
|
asn:
|
||||||
description: ASN is the AS number to use for the local
|
description: |-
|
||||||
end of the session.
|
ASN is the AS number to use for the local end of the session.
|
||||||
|
ASN and DynamicASN are mutually exclusive and one of them must be specified.
|
||||||
format: int32
|
format: int32
|
||||||
maximum: 4294967295
|
maximum: 4294967295
|
||||||
minimum: 0
|
minimum: 0
|
||||||
@ -187,6 +188,17 @@ spec:
|
|||||||
will separate IPv4 and IPv6 route exchanges into
|
will separate IPv4 and IPv6 route exchanges into
|
||||||
distinct BGP sessions.
|
distinct BGP sessions.
|
||||||
type: boolean
|
type: boolean
|
||||||
|
dynamicASN:
|
||||||
|
description: |-
|
||||||
|
DynamicASN detects the AS number to use for the local end of the session
|
||||||
|
without explicitly setting it via the ASN field. Limited to:
|
||||||
|
internal - if the neighbor's ASN is different than the router's the connection is denied.
|
||||||
|
external - if the neighbor's ASN is the same as the router's the connection is denied.
|
||||||
|
ASN and DynamicASN are mutually exclusive and one of them must be specified.
|
||||||
|
enum:
|
||||||
|
- internal
|
||||||
|
- external
|
||||||
|
type: string
|
||||||
ebgpMultiHop:
|
ebgpMultiHop:
|
||||||
description: EBGPMultiHop indicates if the BGPPeer
|
description: EBGPMultiHop indicates if the BGPPeer
|
||||||
is multi-hops away.
|
is multi-hops away.
|
||||||
@ -366,7 +378,6 @@ spec:
|
|||||||
type: object
|
type: object
|
||||||
required:
|
required:
|
||||||
- address
|
- address
|
||||||
- asn
|
|
||||||
type: object
|
type: object
|
||||||
type: array
|
type: array
|
||||||
prefixes:
|
prefixes:
|
@ -50,7 +50,7 @@ data:
|
|||||||
#
|
#
|
||||||
vtysh_enable=yes
|
vtysh_enable=yes
|
||||||
zebra_options=" -A 127.0.0.1 -s 90000000"
|
zebra_options=" -A 127.0.0.1 -s 90000000"
|
||||||
bgpd_options=" -A 127.0.0.1"
|
bgpd_options=" -A 127.0.0.1 {{ if not .Values.frrk8s.frr.acceptIncomingBGPConnections }} -p 0 {{- end }}"
|
||||||
ospfd_options=" -A 127.0.0.1"
|
ospfd_options=" -A 127.0.0.1"
|
||||||
ospf6d_options=" -A ::1"
|
ospf6d_options=" -A ::1"
|
||||||
ripd_options=" -A 127.0.0.1"
|
ripd_options=" -A 127.0.0.1"
|
||||||
@ -199,7 +199,6 @@ spec:
|
|||||||
{{- with .Values.frrk8s.logLevel }}
|
{{- with .Values.frrk8s.logLevel }}
|
||||||
- --log-level={{ . }}
|
- --log-level={{ . }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
- --health-probe-bind-address={{.Values.prometheus.metricsBindAddress}}:{{ .Values.frrk8s.healthPort }}
|
|
||||||
{{- if .Values.frrk8s.alwaysBlock }}
|
{{- if .Values.frrk8s.alwaysBlock }}
|
||||||
- --always-block={{ .Values.frrk8s.alwaysBlock }}
|
- --always-block={{ .Values.frrk8s.alwaysBlock }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
@ -222,8 +221,8 @@ spec:
|
|||||||
{{- if .Values.frrk8s.livenessProbe.enabled }}
|
{{- if .Values.frrk8s.livenessProbe.enabled }}
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /healthz
|
path: /metrics
|
||||||
port: {{ .Values.frrk8s.healthPort }}
|
port: monitoring
|
||||||
host: {{ .Values.prometheus.metricsBindAddress }}
|
host: {{ .Values.prometheus.metricsBindAddress }}
|
||||||
initialDelaySeconds: {{ .Values.frrk8s.livenessProbe.initialDelaySeconds }}
|
initialDelaySeconds: {{ .Values.frrk8s.livenessProbe.initialDelaySeconds }}
|
||||||
periodSeconds: {{ .Values.frrk8s.livenessProbe.periodSeconds }}
|
periodSeconds: {{ .Values.frrk8s.livenessProbe.periodSeconds }}
|
||||||
@ -234,8 +233,8 @@ spec:
|
|||||||
{{- if .Values.frrk8s.readinessProbe.enabled }}
|
{{- if .Values.frrk8s.readinessProbe.enabled }}
|
||||||
readinessProbe:
|
readinessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /healthz
|
path: /metrics
|
||||||
port: {{ .Values.frrk8s.healthPort }}
|
port: monitoring
|
||||||
host: {{ .Values.prometheus.metricsBindAddress }}
|
host: {{ .Values.prometheus.metricsBindAddress }}
|
||||||
initialDelaySeconds: {{ .Values.frrk8s.readinessProbe.initialDelaySeconds }}
|
initialDelaySeconds: {{ .Values.frrk8s.readinessProbe.initialDelaySeconds }}
|
||||||
periodSeconds: {{ .Values.frrk8s.readinessProbe.periodSeconds }}
|
periodSeconds: {{ .Values.frrk8s.readinessProbe.periodSeconds }}
|
||||||
|
@ -46,7 +46,7 @@ spec:
|
|||||||
- "--restart-on-rotator-secret-refresh=true"
|
- "--restart-on-rotator-secret-refresh=true"
|
||||||
{{- end }}
|
{{- end }}
|
||||||
- "--namespace=$(NAMESPACE)"
|
- "--namespace=$(NAMESPACE)"
|
||||||
- --health-probe-bind-address=:8081
|
- "--metrics-bind-address=:{{ .Values.prometheus.metricsPort }}"
|
||||||
env:
|
env:
|
||||||
- name: NAMESPACE
|
- name: NAMESPACE
|
||||||
valueFrom:
|
valueFrom:
|
||||||
@ -63,11 +63,14 @@ spec:
|
|||||||
drop:
|
drop:
|
||||||
- ALL
|
- ALL
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
|
ports:
|
||||||
|
- containerPort: {{ .Values.prometheus.metricsPort }}
|
||||||
|
name: monitoring
|
||||||
{{- if .Values.frrk8s.livenessProbe.enabled }}
|
{{- if .Values.frrk8s.livenessProbe.enabled }}
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /healthz
|
path: /metrics
|
||||||
port: 8081
|
port: monitoring
|
||||||
initialDelaySeconds: {{ .Values.frrk8s.livenessProbe.initialDelaySeconds }}
|
initialDelaySeconds: {{ .Values.frrk8s.livenessProbe.initialDelaySeconds }}
|
||||||
periodSeconds: {{ .Values.frrk8s.livenessProbe.periodSeconds }}
|
periodSeconds: {{ .Values.frrk8s.livenessProbe.periodSeconds }}
|
||||||
failureThreshold: {{ .Values.frrk8s.livenessProbe.failureThreshold }}
|
failureThreshold: {{ .Values.frrk8s.livenessProbe.failureThreshold }}
|
||||||
@ -75,8 +78,8 @@ spec:
|
|||||||
{{- if .Values.frrk8s.readinessProbe.enabled }}
|
{{- if .Values.frrk8s.readinessProbe.enabled }}
|
||||||
readinessProbe:
|
readinessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /readyz
|
path: /metrics
|
||||||
port: 8081
|
port: monitoring
|
||||||
initialDelaySeconds: {{ .Values.frrk8s.readinessProbe.initialDelaySeconds }}
|
initialDelaySeconds: {{ .Values.frrk8s.readinessProbe.initialDelaySeconds }}
|
||||||
periodSeconds: {{ .Values.frrk8s.readinessProbe.periodSeconds }}
|
periodSeconds: {{ .Values.frrk8s.readinessProbe.periodSeconds }}
|
||||||
failureThreshold: {{ .Values.frrk8s.readinessProbe.failureThreshold }}
|
failureThreshold: {{ .Values.frrk8s.readinessProbe.failureThreshold }}
|
||||||
|
@ -53,7 +53,7 @@ prometheus:
|
|||||||
# the image to be used for the kuberbacproxy container
|
# the image to be used for the kuberbacproxy container
|
||||||
rbacProxy:
|
rbacProxy:
|
||||||
repository: "registry.opensuse.org/isv/suse/edge/metallb/images/kube-rbac-proxy"
|
repository: "registry.opensuse.org/isv/suse/edge/metallb/images/kube-rbac-proxy"
|
||||||
tag: "v0.18.0"
|
tag: "v0.18.1"
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
# Prometheus Operator ServiceMonitors.
|
# Prometheus Operator ServiceMonitors.
|
||||||
@ -98,7 +98,7 @@ frrk8s:
|
|||||||
tolerateMaster: true
|
tolerateMaster: true
|
||||||
image:
|
image:
|
||||||
repository: "registry.opensuse.org/isv/suse/edge/metallb/images/frr-k8s"
|
repository: "registry.opensuse.org/isv/suse/edge/metallb/images/frr-k8s"
|
||||||
tag: "v0.0.14"
|
tag: "v0.0.16"
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
## @param controller.updateStrategy.type FRR-K8s controller daemonset strategy type
|
## @param controller.updateStrategy.type FRR-K8s controller daemonset strategy type
|
||||||
## ref: https://kubernetes.io/docs/tasks/manage-daemon/update-daemon-set/
|
## ref: https://kubernetes.io/docs/tasks/manage-daemon/update-daemon-set/
|
||||||
@ -132,7 +132,6 @@ frrk8s:
|
|||||||
podAnnotations: {}
|
podAnnotations: {}
|
||||||
labels:
|
labels:
|
||||||
app: frr-k8s
|
app: frr-k8s
|
||||||
healthPort: 8081
|
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
enabled: true
|
enabled: true
|
||||||
failureThreshold: 3
|
failureThreshold: 3
|
||||||
@ -162,15 +161,17 @@ frrk8s:
|
|||||||
frr:
|
frr:
|
||||||
image:
|
image:
|
||||||
repository: "registry.opensuse.org/isv/suse/edge/metallb/images/frr"
|
repository: "registry.opensuse.org/isv/suse/edge/metallb/images/frr"
|
||||||
tag: "8.4"
|
tag: "8.5.6"
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
metricsBindAddress: 127.0.0.1
|
metricsBindAddress: 127.0.0.1
|
||||||
metricsPort: 7573
|
metricsPort: 7573
|
||||||
resources: {}
|
resources: {}
|
||||||
secureMetricsPort: 9141
|
secureMetricsPort: 9141
|
||||||
|
acceptIncomingBGPConnections: false
|
||||||
reloader:
|
reloader:
|
||||||
resources: {}
|
resources: {}
|
||||||
frrMetrics:
|
frrMetrics:
|
||||||
resources: {}
|
resources: {}
|
||||||
crds:
|
crds:
|
||||||
|
enabled: true
|
||||||
validationFailurePolicy: Fail
|
validationFailurePolicy: Fail
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
# crds
|
|
||||||
|
|
||||||
  
|
|
||||||
|
|
||||||
MetalLB CRDs
|
|
||||||
|
|
||||||
**Homepage:** <https://metallb.universe.tf>
|
|
||||||
|
|
||||||
## Source Code
|
|
||||||
|
|
||||||
* <https://github.com/metallb/metallb>
|
|
@ -111,3 +111,4 @@ Create the name of the settings Secret to use.
|
|||||||
{{ .Values.speaker.frr.metricsPort }}
|
{{ .Values.speaker.frr.metricsPort }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
|
@ -84,7 +84,7 @@ spec:
|
|||||||
- name: METALLB_DEPLOYMENT
|
- name: METALLB_DEPLOYMENT
|
||||||
value: {{ template "metallb.fullname" . }}-controller
|
value: {{ template "metallb.fullname" . }}-controller
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.speaker.frr.enabled }}
|
{{- if and .Values.speaker.enabled .Values.speaker.frr.enabled }}
|
||||||
- name: METALLB_BGP_TYPE
|
- name: METALLB_BGP_TYPE
|
||||||
value: frr
|
value: frr
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
@ -36,6 +36,7 @@ spec:
|
|||||||
relabelings:
|
relabelings:
|
||||||
{{- toYaml .Values.prometheus.podMonitor.relabelings | nindent 4 }}
|
{{- toYaml .Values.prometheus.podMonitor.relabelings | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.speaker.enabled }}
|
||||||
---
|
---
|
||||||
apiVersion: monitoring.coreos.com/v1
|
apiVersion: monitoring.coreos.com/v1
|
||||||
kind: PodMonitor
|
kind: PodMonitor
|
||||||
@ -74,6 +75,7 @@ spec:
|
|||||||
relabelings:
|
relabelings:
|
||||||
{{- toYaml .Values.prometheus.podMonitor.relabelings | nindent 4 }}
|
{{- toYaml .Values.prometheus.podMonitor.relabelings | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
---
|
---
|
||||||
{{- if .Values.prometheus.rbacPrometheus }}
|
{{- if .Values.prometheus.rbacPrometheus }}
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
@ -19,8 +19,8 @@ spec:
|
|||||||
{{- if .Values.prometheus.prometheusRule.staleConfig.enabled }}
|
{{- if .Values.prometheus.prometheusRule.staleConfig.enabled }}
|
||||||
- alert: MetalLBStaleConfig
|
- alert: MetalLBStaleConfig
|
||||||
annotations:
|
annotations:
|
||||||
message: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod
|
summary: {{`'Stale config on {{ $labels.pod }}'`}}
|
||||||
}} has a stale config for > 1 minute'`}}
|
description: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod }} has a stale config for > 1 minute'`}}
|
||||||
expr: metallb_k8s_client_config_stale_bool{job=~"{{ template "metallb.fullname" . }}.*"} == 1
|
expr: metallb_k8s_client_config_stale_bool{job=~"{{ template "metallb.fullname" . }}.*"} == 1
|
||||||
for: 1m
|
for: 1m
|
||||||
{{- with .Values.prometheus.prometheusRule.staleConfig.labels }}
|
{{- with .Values.prometheus.prometheusRule.staleConfig.labels }}
|
||||||
@ -31,8 +31,8 @@ spec:
|
|||||||
{{- if .Values.prometheus.prometheusRule.configNotLoaded.enabled }}
|
{{- if .Values.prometheus.prometheusRule.configNotLoaded.enabled }}
|
||||||
- alert: MetalLBConfigNotLoaded
|
- alert: MetalLBConfigNotLoaded
|
||||||
annotations:
|
annotations:
|
||||||
message: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod
|
summary: {{`'Config on {{ $labels.pod }} has not been loaded'`}}
|
||||||
}} has not loaded for > 1 minute'`}}
|
description: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod }} has not loaded for > 1 minute'`}}
|
||||||
expr: metallb_k8s_client_config_loaded_bool{job=~"{{ template "metallb.fullname" . }}.*"} == 0
|
expr: metallb_k8s_client_config_loaded_bool{job=~"{{ template "metallb.fullname" . }}.*"} == 0
|
||||||
for: 1m
|
for: 1m
|
||||||
{{- with .Values.prometheus.prometheusRule.configNotLoaded.labels }}
|
{{- with .Values.prometheus.prometheusRule.configNotLoaded.labels }}
|
||||||
@ -43,8 +43,8 @@ spec:
|
|||||||
{{- if .Values.prometheus.prometheusRule.addressPoolExhausted.enabled }}
|
{{- if .Values.prometheus.prometheusRule.addressPoolExhausted.enabled }}
|
||||||
- alert: MetalLBAddressPoolExhausted
|
- alert: MetalLBAddressPoolExhausted
|
||||||
annotations:
|
annotations:
|
||||||
message: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod
|
summary: {{`'Exhausted address pool on {{ $labels.pod }}'`}}
|
||||||
}} has exhausted address pool {{ $labels.pool }} for > 1 minute'`}}
|
description: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod }} has exhausted address pool {{ $labels.pool }} for > 1 minute'`}}
|
||||||
expr: metallb_allocator_addresses_in_use_total >= on(pool) metallb_allocator_addresses_total
|
expr: metallb_allocator_addresses_in_use_total >= on(pool) metallb_allocator_addresses_total
|
||||||
for: 1m
|
for: 1m
|
||||||
{{- with .Values.prometheus.prometheusRule.addressPoolExhausted.labels }}
|
{{- with .Values.prometheus.prometheusRule.addressPoolExhausted.labels }}
|
||||||
@ -57,8 +57,8 @@ spec:
|
|||||||
{{- range .Values.prometheus.prometheusRule.addressPoolUsage.thresholds }}
|
{{- range .Values.prometheus.prometheusRule.addressPoolUsage.thresholds }}
|
||||||
- alert: MetalLBAddressPoolUsage{{ .percent }}Percent
|
- alert: MetalLBAddressPoolUsage{{ .percent }}Percent
|
||||||
annotations:
|
annotations:
|
||||||
message: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod
|
summary: {{`'Exhausted address pool on {{ $labels.pod }}'`}}
|
||||||
}} has address pool {{ $labels.pool }} past `}}{{ .percent }}{{`% usage for > 1 minute'`}}
|
message: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod }} has address pool {{ $labels.pool }} past `}}{{ .percent }}{{`% usage for > 1 minute'`}}
|
||||||
expr: ( metallb_allocator_addresses_in_use_total / on(pool) metallb_allocator_addresses_total ) * 100 > {{ .percent }}
|
expr: ( metallb_allocator_addresses_in_use_total / on(pool) metallb_allocator_addresses_total ) * 100 > {{ .percent }}
|
||||||
{{- with .labels }}
|
{{- with .labels }}
|
||||||
labels:
|
labels:
|
||||||
@ -69,8 +69,8 @@ spec:
|
|||||||
{{- if .Values.prometheus.prometheusRule.bgpSessionDown.enabled }}
|
{{- if .Values.prometheus.prometheusRule.bgpSessionDown.enabled }}
|
||||||
- alert: MetalLBBGPSessionDown
|
- alert: MetalLBBGPSessionDown
|
||||||
annotations:
|
annotations:
|
||||||
message: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod
|
summary: {{`'BGP session down on {{ $labels.pod }}'`}}
|
||||||
}} has BGP session {{ $labels.peer }} down for > 1 minute'`}}
|
message: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod }} has BGP session {{ $labels.peer }} down for > 1 minute'`}}
|
||||||
expr: metallb_bgp_session_up{job=~"{{ template "metallb.fullname" . }}.*"} == 0
|
expr: metallb_bgp_session_up{job=~"{{ template "metallb.fullname" . }}.*"} == 0
|
||||||
for: 1m
|
for: 1m
|
||||||
{{- with .Values.prometheus.prometheusRule.bgpSessionDown.labels }}
|
{{- with .Values.prometheus.prometheusRule.bgpSessionDown.labels }}
|
||||||
|
@ -19,11 +19,11 @@ rules:
|
|||||||
resources: ["events"]
|
resources: ["events"]
|
||||||
verbs: ["create", "patch"]
|
verbs: ["create", "patch"]
|
||||||
- apiGroups: ["admissionregistration.k8s.io"]
|
- apiGroups: ["admissionregistration.k8s.io"]
|
||||||
resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"]
|
resources: ["validatingwebhookconfigurations"]
|
||||||
resourceNames: ["metallb-webhook-configuration"]
|
resourceNames: ["metallb-webhook-configuration"]
|
||||||
verbs: ["create", "delete", "get", "list", "patch", "update", "watch"]
|
verbs: ["create", "delete", "get", "list", "patch", "update", "watch"]
|
||||||
- apiGroups: ["admissionregistration.k8s.io"]
|
- apiGroups: ["admissionregistration.k8s.io"]
|
||||||
resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"]
|
resources: ["validatingwebhookconfigurations"]
|
||||||
verbs: ["list", "watch"]
|
verbs: ["list", "watch"]
|
||||||
- apiGroups: ["apiextensions.k8s.io"]
|
- apiGroups: ["apiextensions.k8s.io"]
|
||||||
resources: ["customresourcedefinitions"]
|
resources: ["customresourcedefinitions"]
|
||||||
@ -41,6 +41,7 @@ rules:
|
|||||||
resources: ["subjectaccessreviews"]
|
resources: ["subjectaccessreviews"]
|
||||||
verbs: ["create"]
|
verbs: ["create"]
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.speaker.enabled }}
|
||||||
---
|
---
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: ClusterRole
|
kind: ClusterRole
|
||||||
@ -72,7 +73,7 @@ rules:
|
|||||||
{{- if or .Values.frrk8s.enabled .Values.frrk8s.external }}
|
{{- if or .Values.frrk8s.enabled .Values.frrk8s.external }}
|
||||||
- apiGroups: ["frrk8s.metallb.io"]
|
- apiGroups: ["frrk8s.metallb.io"]
|
||||||
resources: ["frrconfigurations"]
|
resources: ["frrconfigurations"]
|
||||||
verbs: ["get", "list", "watch","create","update"]
|
verbs: ["get", "list", "watch","create","update","delete"]
|
||||||
{{- end }}
|
{{- end }}
|
||||||
---
|
---
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
@ -109,6 +110,7 @@ rules:
|
|||||||
- apiGroups: ["metallb.io"]
|
- apiGroups: ["metallb.io"]
|
||||||
resources: ["communities"]
|
resources: ["communities"]
|
||||||
verbs: ["get", "list", "watch"]
|
verbs: ["get", "list", "watch"]
|
||||||
|
{{- end }}
|
||||||
---
|
---
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: Role
|
kind: Role
|
||||||
@ -117,7 +119,7 @@ metadata:
|
|||||||
namespace: {{ .Release.Namespace | quote }}
|
namespace: {{ .Release.Namespace | quote }}
|
||||||
labels: {{- include "metallb.labels" . | nindent 4 }}
|
labels: {{- include "metallb.labels" . | nindent 4 }}
|
||||||
rules:
|
rules:
|
||||||
{{- if .Values.speaker.memberlist.enabled }}
|
{{- if and .Values.speaker.enabled .Values.speaker.memberlist.enabled }}
|
||||||
- apiGroups: [""]
|
- apiGroups: [""]
|
||||||
resources: ["secrets"]
|
resources: ["secrets"]
|
||||||
verbs: ["create", "get", "list", "watch"]
|
verbs: ["create", "get", "list", "watch"]
|
||||||
@ -166,6 +168,7 @@ roleRef:
|
|||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
kind: ClusterRole
|
kind: ClusterRole
|
||||||
name: {{ template "metallb.fullname" . }}:controller
|
name: {{ template "metallb.fullname" . }}:controller
|
||||||
|
{{- if .Values.speaker.enabled }}
|
||||||
---
|
---
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: ClusterRoleBinding
|
kind: ClusterRoleBinding
|
||||||
@ -195,6 +198,7 @@ roleRef:
|
|||||||
subjects:
|
subjects:
|
||||||
- kind: ServiceAccount
|
- kind: ServiceAccount
|
||||||
name: {{ include "metallb.speaker.serviceAccountName" . }}
|
name: {{ include "metallb.speaker.serviceAccountName" . }}
|
||||||
|
{{- end }}
|
||||||
---
|
---
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: RoleBinding
|
kind: RoleBinding
|
||||||
|
@ -13,7 +13,7 @@ metadata:
|
|||||||
{{- toYaml . | nindent 4 }}
|
{{- toYaml . | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.speaker.serviceAccount.create }}
|
{{- if and .Values.speaker.enabled .Values.speaker.serviceAccount.create }}
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: ServiceAccount
|
kind: ServiceAccount
|
||||||
|
@ -1,4 +1,9 @@
|
|||||||
|
{{- if and .Values.prometheus.serviceMonitor.enabled .Values.prometheus.podMonitor.enabled }}
|
||||||
|
{{- fail "prometheus.serviceMonitor.enabled and prometheus.podMonitor.enabled cannot both be set" }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
{{- if .Values.prometheus.serviceMonitor.enabled }}
|
{{- if .Values.prometheus.serviceMonitor.enabled }}
|
||||||
|
{{- if .Values.speaker.enabled }}
|
||||||
apiVersion: monitoring.coreos.com/v1
|
apiVersion: monitoring.coreos.com/v1
|
||||||
kind: ServiceMonitor
|
kind: ServiceMonitor
|
||||||
metadata:
|
metadata:
|
||||||
@ -89,6 +94,7 @@ spec:
|
|||||||
{{- end }}
|
{{- end }}
|
||||||
sessionAffinity: None
|
sessionAffinity: None
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
|
{{- end }}
|
||||||
---
|
---
|
||||||
apiVersion: monitoring.coreos.com/v1
|
apiVersion: monitoring.coreos.com/v1
|
||||||
kind: ServiceMonitor
|
kind: ServiceMonitor
|
||||||
@ -97,7 +103,6 @@ metadata:
|
|||||||
namespace: {{ .Release.Namespace | quote }}
|
namespace: {{ .Release.Namespace | quote }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "metallb.labels" . | nindent 4 }}
|
{{- include "metallb.labels" . | nindent 4 }}
|
||||||
app.kubernetes.io/component: speaker
|
|
||||||
{{- if .Values.prometheus.serviceMonitor.controller.additionalLabels }}
|
{{- if .Values.prometheus.serviceMonitor.controller.additionalLabels }}
|
||||||
{{ toYaml .Values.prometheus.serviceMonitor.controller.additionalLabels | indent 4 }}
|
{{ toYaml .Values.prometheus.serviceMonitor.controller.additionalLabels | indent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
@ -45,7 +45,7 @@ prometheus:
|
|||||||
# certificate to be used.
|
# certificate to be used.
|
||||||
controllerMetricsTLSSecret: ""
|
controllerMetricsTLSSecret: ""
|
||||||
|
|
||||||
# prometheus doens't have the permission to scrape all namespaces so we give it permission to scrape metallb's one
|
# prometheus doesn't have the permission to scrape all namespaces so we give it permission to scrape metallb's one
|
||||||
rbacPrometheus: true
|
rbacPrometheus: true
|
||||||
|
|
||||||
# the service account used by prometheus
|
# the service account used by prometheus
|
||||||
@ -67,7 +67,7 @@ prometheus:
|
|||||||
# enable support for Prometheus Operator
|
# enable support for Prometheus Operator
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
||||||
# optional additionnal labels for podMonitors
|
# optional additional labels for podMonitors
|
||||||
additionalLabels: {}
|
additionalLabels: {}
|
||||||
|
|
||||||
# optional annotations for podMonitors
|
# optional annotations for podMonitors
|
||||||
@ -146,7 +146,7 @@ prometheus:
|
|||||||
# enable alertmanager alerts
|
# enable alertmanager alerts
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
||||||
# optional additionnal labels for prometheusRules
|
# optional additional labels for prometheusRules
|
||||||
additionalLabels: {}
|
additionalLabels: {}
|
||||||
|
|
||||||
# optional annotations for prometheusRules
|
# optional annotations for prometheusRules
|
||||||
@ -168,7 +168,7 @@ prometheus:
|
|||||||
addressPoolExhausted:
|
addressPoolExhausted:
|
||||||
enabled: true
|
enabled: true
|
||||||
labels:
|
labels:
|
||||||
severity: alert
|
severity: critical
|
||||||
|
|
||||||
addressPoolUsage:
|
addressPoolUsage:
|
||||||
enabled: true
|
enabled: true
|
||||||
@ -181,13 +181,13 @@ prometheus:
|
|||||||
severity: warning
|
severity: warning
|
||||||
- percent: 95
|
- percent: 95
|
||||||
labels:
|
labels:
|
||||||
severity: alert
|
severity: critical
|
||||||
|
|
||||||
# MetalLBBGPSessionDown
|
# MetalLBBGPSessionDown
|
||||||
bgpSessionDown:
|
bgpSessionDown:
|
||||||
enabled: true
|
enabled: true
|
||||||
labels:
|
labels:
|
||||||
severity: alert
|
severity: critical
|
||||||
|
|
||||||
extraAlerts: []
|
extraAlerts: []
|
||||||
|
|
||||||
@ -201,7 +201,7 @@ controller:
|
|||||||
# webhookMode: enabled
|
# webhookMode: enabled
|
||||||
image:
|
image:
|
||||||
repository: "%%IMG_REPO%%/%%IMG_PREFIX%%metallb-controller"
|
repository: "%%IMG_REPO%%/%%IMG_PREFIX%%metallb-controller"
|
||||||
tag: "v0.14.8"
|
tag: "v0.14.9"
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
## @param controller.updateStrategy.type Metallb controller deployment strategy type.
|
## @param controller.updateStrategy.type Metallb controller deployment strategy type.
|
||||||
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
|
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
|
||||||
@ -282,7 +282,7 @@ speaker:
|
|||||||
|
|
||||||
image:
|
image:
|
||||||
repository: "%%IMG_REPO%%/%%IMG_PREFIX%%metallb-speaker"
|
repository: "%%IMG_REPO%%/%%IMG_PREFIX%%metallb-speaker"
|
||||||
tag: "v0.14.8"
|
tag: "v0.14.9"
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
## @param speaker.updateStrategy.type Speaker daemonset strategy type
|
## @param speaker.updateStrategy.type Speaker daemonset strategy type
|
||||||
## ref: https://kubernetes.io/docs/tasks/manage-daemon/update-daemon-set/
|
## ref: https://kubernetes.io/docs/tasks/manage-daemon/update-daemon-set/
|
||||||
@ -346,7 +346,7 @@ speaker:
|
|||||||
enabled: false
|
enabled: false
|
||||||
image:
|
image:
|
||||||
repository: "%%IMG_REPO%%/%%IMG_PREFIX%%frr"
|
repository: "%%IMG_REPO%%/%%IMG_PREFIX%%frr"
|
||||||
tag: "8.4"
|
tag: "8.5.6"
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
metricsPort: 7473
|
metricsPort: 7473
|
||||||
resources: {}
|
resources: {}
|
||||||
@ -378,3 +378,15 @@ frrk8s:
|
|||||||
enabled: false
|
enabled: false
|
||||||
external: false
|
external: false
|
||||||
namespace: ""
|
namespace: ""
|
||||||
|
|
||||||
|
# Override any settings for the metallb frr-k8s service here
|
||||||
|
metallb-frr-k8s:
|
||||||
|
prometheus:
|
||||||
|
rbacProxy:
|
||||||
|
repository: "%%IMG_REPO%%/%%IMG_PREFIX%%kube-rbac-proxy"
|
||||||
|
frrk8s:
|
||||||
|
image:
|
||||||
|
repository: "%%IMG_REPO%%/%%IMG_PREFIX%%frr-k8s"
|
||||||
|
frr:
|
||||||
|
image:
|
||||||
|
repository: "%%IMG_REPO%%/%%IMG_PREFIX%%frr"
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<service name="obs_scm">
|
<service name="obs_scm">
|
||||||
<param name="url">https://github.com/metallb/metallb</param>
|
<param name="url">https://github.com/metallb/metallb</param>
|
||||||
<param name="scm">git</param>
|
<param name="scm">git</param>
|
||||||
<param name="revision">v0.14.8</param>
|
<param name="revision">v0.14.9</param>
|
||||||
<param name="version">_auto_</param>
|
<param name="version">_auto_</param>
|
||||||
<param name="versionformat">@PARENT_TAG@</param>
|
<param name="versionformat">@PARENT_TAG@</param>
|
||||||
<param name="changesgenerate">enable</param>
|
<param name="changesgenerate">enable</param>
|
||||||
|
@ -17,8 +17,8 @@
|
|||||||
|
|
||||||
|
|
||||||
Name: metallb
|
Name: metallb
|
||||||
Version: 0.14.8
|
Version: 0.14.9
|
||||||
Release: 0.14.8
|
Release: 0.14.9
|
||||||
Summary: Load Balancer for bare metal Kubernetes clusters
|
Summary: Load Balancer for bare metal Kubernetes clusters
|
||||||
License: Apache-2.0
|
License: Apache-2.0
|
||||||
URL: https://github.com/metallb/metallb
|
URL: https://github.com/metallb/metallb
|
||||||
@ -54,7 +54,7 @@ This package contains the speaker binary.
|
|||||||
cp ./frr-tools/reloader/frr-reloader.sh frr-reloader.sh
|
cp ./frr-tools/reloader/frr-reloader.sh frr-reloader.sh
|
||||||
|
|
||||||
%build
|
%build
|
||||||
go install -v -mod vendor -buildmode=pie ./controller ./speaker ./frr-tools/metrics
|
go install -v -mod vendor -buildmode=pie ./controller ./speaker ./frr-tools/metrics ./frr-tools/cp-tool
|
||||||
mv $HOME/go/bin/metrics $HOME/go/bin/frr-metrics
|
mv $HOME/go/bin/metrics $HOME/go/bin/frr-metrics
|
||||||
|
|
||||||
%install
|
%install
|
||||||
@ -63,6 +63,7 @@ mkdir -p %{buildroot}%{_sbindir}/
|
|||||||
install -D -m 0755 $HOME/go/bin/controller %{buildroot}/
|
install -D -m 0755 $HOME/go/bin/controller %{buildroot}/
|
||||||
install -D -m 0755 $HOME/go/bin/speaker %{buildroot}/
|
install -D -m 0755 $HOME/go/bin/speaker %{buildroot}/
|
||||||
install -D -m 0755 $HOME/go/bin/frr-metrics %{buildroot}/
|
install -D -m 0755 $HOME/go/bin/frr-metrics %{buildroot}/
|
||||||
|
install -D -m 0755 $HOME/go/bin/cp-tool %{buildroot}/
|
||||||
install -D -m 0755 frr-reloader.sh %{buildroot}/
|
install -D -m 0755 frr-reloader.sh %{buildroot}/
|
||||||
|
|
||||||
%files controller
|
%files controller
|
||||||
@ -73,6 +74,7 @@ install -D -m 0755 frr-reloader.sh %{buildroot}/
|
|||||||
%license LICENSE
|
%license LICENSE
|
||||||
/speaker
|
/speaker
|
||||||
/frr-metrics
|
/frr-metrics
|
||||||
|
/cp-tool
|
||||||
/frr-reloader.sh
|
/frr-reloader.sh
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
Loading…
x
Reference in New Issue
Block a user