From 023eb2f4cd896b2cc21aed287a0ad487849a04b7 Mon Sep 17 00:00:00 2001 From: Kjeld Schouten-Lebbing Date: Wed, 10 Nov 2021 17:35:49 +0100 Subject: [PATCH] Add a metallb app (#1305) * Add a metallb app * add metallb repo --- .github/workflows/apps.test.yaml | 1 + .github/workflows/common.test.yaml | 2 + charts/incubator/metallb/.helmignore | 23 +++++ charts/incubator/metallb/Chart.yaml | 29 +++++++ charts/incubator/metallb/README.md | 108 ++++++++++++++++++++++++ charts/incubator/metallb/questions.yaml | 50 +++++++++++ charts/incubator/metallb/values.yaml | 15 ++++ tools/build-release.sh | 1 + 8 files changed, 229 insertions(+) create mode 100644 charts/incubator/metallb/.helmignore create mode 100644 charts/incubator/metallb/Chart.yaml create mode 100644 charts/incubator/metallb/README.md create mode 100644 charts/incubator/metallb/questions.yaml create mode 100644 charts/incubator/metallb/values.yaml diff --git a/.github/workflows/apps.test.yaml b/.github/workflows/apps.test.yaml index 493583ec3ef..77f99c10877 100644 --- a/.github/workflows/apps.test.yaml +++ b/.github/workflows/apps.test.yaml @@ -111,6 +111,7 @@ jobs: run: | helm repo add truecharts https://truecharts.org helm repo add bitnami https://charts.bitnami.com/bitnami + helm repo add metallb https://metallb.github.io/metallb helm repo update - uses: actions/setup-python@v2 diff --git a/.github/workflows/common.test.yaml b/.github/workflows/common.test.yaml index 0760406baf8..76b23b24661 100644 --- a/.github/workflows/common.test.yaml +++ b/.github/workflows/common.test.yaml @@ -38,6 +38,7 @@ jobs: run: | helm repo add truecharts https://truecharts.org helm repo add bitnami https://charts.bitnami.com/bitnami + helm repo add metallb https://metallb.github.io/metallb helm repo update - name: Run chart-testing (lint) @@ -76,6 +77,7 @@ jobs: run: | helm repo add truecharts https://truecharts.org helm repo add bitnami https://charts.bitnami.com/bitnami + helm repo add metallb https://metallb.github.io/metallb helm repo update - uses: actions/setup-python@v2 diff --git a/charts/incubator/metallb/.helmignore b/charts/incubator/metallb/.helmignore new file mode 100644 index 00000000000..0e8a0eb36f4 --- /dev/null +++ b/charts/incubator/metallb/.helmignore @@ -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/ diff --git a/charts/incubator/metallb/Chart.yaml b/charts/incubator/metallb/Chart.yaml new file mode 100644 index 00000000000..d3d44efd819 --- /dev/null +++ b/charts/incubator/metallb/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: 0.11.0 +deprecated: false +description: A network load-balancer implementation for Kubernetes using standard routing protocols +home: https://github.com/truecharts/apps/tree/master/charts/stable/metallb +icon: https://metallb.universe.tf/images/logo/metallb-white.png +keywords: +- metallb +- loadbalancer +dependencies: +- name: metallb + repository: https://metallb.github.io/metallb + version: 0.11.0 +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org +name: metallb +sources: + - https://github.com/metallb/metallb + - https://metallb.universe.tf +type: application +version: 0.0.1 +annotations: + truecharts.org/catagories: | + - core + truecharts.org/SCALE-support: "false" + truecharts.org/grade: U diff --git a/charts/incubator/metallb/README.md b/charts/incubator/metallb/README.md new file mode 100644 index 00000000000..5261f315cc9 --- /dev/null +++ b/charts/incubator/metallb/README.md @@ -0,0 +1,108 @@ +# metallb + +![Version: 0.9.6](https://img.shields.io/badge/Version-0.9.6-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v0.9.6](https://img.shields.io/badge/AppVersion-v0.9.6-informational?style=flat-square) + +A network load-balancer implementation for Kubernetes using standard routing protocols + +**Homepage:** + +## Source Code + +* + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| configInline | object | `{}` | | +| controller.affinity | object | `{}` | | +| controller.enabled | bool | `true` | | +| controller.image.pullPolicy | string | `nil` | | +| controller.image.repository | string | `"quay.io/metallb/controller"` | | +| controller.image.tag | string | `nil` | | +| controller.livenessProbe.enabled | bool | `true` | | +| controller.livenessProbe.failureThreshold | int | `3` | | +| controller.livenessProbe.initialDelaySeconds | int | `10` | | +| controller.livenessProbe.periodSeconds | int | `10` | | +| controller.livenessProbe.successThreshold | int | `1` | | +| controller.livenessProbe.timeoutSeconds | int | `1` | | +| controller.logLevel | string | `"info"` | Controller log level. Must be one of: `all`, `debug`, `info`, `warn`, `error` or `none` | +| controller.nodeSelector | object | `{}` | | +| controller.podAnnotations | object | `{}` | | +| controller.readinessProbe.enabled | bool | `true` | | +| controller.readinessProbe.failureThreshold | int | `3` | | +| controller.readinessProbe.initialDelaySeconds | int | `10` | | +| controller.readinessProbe.periodSeconds | int | `10` | | +| controller.readinessProbe.successThreshold | int | `1` | | +| controller.readinessProbe.timeoutSeconds | int | `1` | | +| controller.resources | object | `{}` | | +| controller.securityContext.fsGroup | int | `65534` | | +| controller.securityContext.runAsNonRoot | bool | `true` | | +| controller.securityContext.runAsUser | int | `65534` | | +| controller.serviceAccount.annotations | object | `{}` | | +| controller.serviceAccount.create | bool | `true` | | +| controller.serviceAccount.name | string | `""` | | +| controller.tolerations | list | `[]` | | +| existingConfigMap | string | `""` | | +| fullnameOverride | string | `""` | | +| imagePullSecrets | list | `[]` | | +| nameOverride | string | `""` | | +| prometheus.metricsPort | int | `7472` | | +| prometheus.podMonitor.additionalLabels | object | `{}` | | +| prometheus.podMonitor.enabled | bool | `false` | | +| prometheus.podMonitor.interval | string | `nil` | | +| prometheus.podMonitor.jobLabel | string | `"app.kubernetes.io/name"` | | +| prometheus.podMonitor.metricRelabelings | list | `[]` | | +| prometheus.podMonitor.relabelings | list | `[]` | | +| prometheus.prometheusRule.additionalLabels | object | `{}` | | +| prometheus.prometheusRule.addressPoolExhausted.enabled | bool | `true` | | +| prometheus.prometheusRule.addressPoolExhausted.labels.severity | string | `"alert"` | | +| prometheus.prometheusRule.addressPoolUsage.enabled | bool | `true` | | +| prometheus.prometheusRule.addressPoolUsage.thresholds[0].labels.severity | string | `"warning"` | | +| prometheus.prometheusRule.addressPoolUsage.thresholds[0].percent | int | `75` | | +| prometheus.prometheusRule.addressPoolUsage.thresholds[1].labels.severity | string | `"warning"` | | +| prometheus.prometheusRule.addressPoolUsage.thresholds[1].percent | int | `85` | | +| prometheus.prometheusRule.addressPoolUsage.thresholds[2].labels.severity | string | `"alert"` | | +| prometheus.prometheusRule.addressPoolUsage.thresholds[2].percent | int | `95` | | +| prometheus.prometheusRule.bgpSessionDown.enabled | bool | `true` | | +| prometheus.prometheusRule.bgpSessionDown.labels.severity | string | `"alert"` | | +| prometheus.prometheusRule.configNotLoaded.enabled | bool | `true` | | +| prometheus.prometheusRule.configNotLoaded.labels.severity | string | `"warning"` | | +| prometheus.prometheusRule.enabled | bool | `false` | | +| prometheus.prometheusRule.extraAlerts | list | `[]` | | +| prometheus.prometheusRule.staleConfig.enabled | bool | `true` | | +| prometheus.prometheusRule.staleConfig.labels.severity | string | `"warning"` | | +| prometheus.scrapeAnnotations | bool | `false` | | +| psp.create | bool | `true` | | +| rbac.create | bool | `true` | | +| speaker.affinity | object | `{}` | | +| speaker.enabled | bool | `true` | | +| speaker.image.pullPolicy | string | `nil` | | +| speaker.image.repository | string | `"quay.io/metallb/speaker"` | | +| speaker.image.tag | string | `nil` | | +| speaker.livenessProbe.enabled | bool | `true` | | +| speaker.livenessProbe.failureThreshold | int | `3` | | +| speaker.livenessProbe.initialDelaySeconds | int | `10` | | +| speaker.livenessProbe.periodSeconds | int | `10` | | +| speaker.livenessProbe.successThreshold | int | `1` | | +| speaker.livenessProbe.timeoutSeconds | int | `1` | | +| speaker.logLevel | string | `"info"` | Speaker log level. Must be one of: `all`, `debug`, `info`, `warn`, `error` or `none` | +| speaker.memberlist.enabled | bool | `true` | | +| speaker.memberlist.mlBindPort | int | `7946` | | +| speaker.nodeSelector | object | `{}` | | +| speaker.podAnnotations | object | `{}` | | +| speaker.readinessProbe.enabled | bool | `true` | | +| speaker.readinessProbe.failureThreshold | int | `3` | | +| speaker.readinessProbe.initialDelaySeconds | int | `10` | | +| speaker.readinessProbe.periodSeconds | int | `10` | | +| speaker.readinessProbe.successThreshold | int | `1` | | +| speaker.readinessProbe.timeoutSeconds | int | `1` | | +| speaker.resources | object | `{}` | | +| speaker.serviceAccount.annotations | object | `{}` | | +| speaker.serviceAccount.create | bool | `true` | | +| speaker.serviceAccount.name | string | `""` | | +| speaker.tolerateMaster | bool | `true` | | +| speaker.tolerations | list | `[]` | | + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) diff --git a/charts/incubator/metallb/questions.yaml b/charts/incubator/metallb/questions.yaml new file mode 100644 index 00000000000..1327f53aec6 --- /dev/null +++ b/charts/incubator/metallb/questions.yaml @@ -0,0 +1,50 @@ +# Include{groups} +questions: +# Include{global} + + - variable: controller + group: "App Configuration" + label: "" + schema: + type: dict + attrs: + - variable: address-pools + label: "Address Pools" + schema: + type: list + default: [] + items: + - variable: address-pools-entry + group: "Address Pool" + label: "" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + - variable: protocol + label: "Protocol" + schema: + type: string + default: "layer2" + enum: + - value: "layer2" + description: "layer2" + - value: "bgp" + description: "bgp" + - variable: addresses + label: "Addresses" + schema: + type: list + default: [] + items: + - variable: address + label: "Adress" + schema: + type: string + default: "" + required: true diff --git a/charts/incubator/metallb/values.yaml b/charts/incubator/metallb/values.yaml new file mode 100644 index 00000000000..42cf2a96b06 --- /dev/null +++ b/charts/incubator/metallb/values.yaml @@ -0,0 +1,15 @@ +image: + repository: placeholder + # defaults to appVersion + tag: upstream + pullPolicy: IfNotPresent + +metallb: + # configInline specifies MetalLB's configuration directly, in yaml + # format. When configInline is used, Helm manages MetalLB's + # configuration ConfigMap as part of the release, and + # existingConfigMap is ignored. + # + # Refer to https://metallb.universe.tf/configuration/ for + # available options. + configInline: {} diff --git a/tools/build-release.sh b/tools/build-release.sh index 6697bbd5e4b..3d98c91b460 100755 --- a/tools/build-release.sh +++ b/tools/build-release.sh @@ -389,6 +389,7 @@ prep_helm() { if [[ -z "$standalone" ]]; then helm repo add truecharts https://truecharts.org helm repo add bitnami https://charts.bitnami.com/bitnami + helm repo add metallb https://metallb.github.io/metallb helm repo update fi }