Git Product home page Git Product logo

component-metallb's Introduction

Commodore Component: MetalLB

This is a Commodore Component for MetalLB.

This repository is part of Project Syn. For documentation on Project Syn and this component, see syn.tools.

Documentation

The rendered documentation for this component is available on the Commodore Components Hub.

Documentation for this component is written using Asciidoc and Antora. It can be found in the docs folder. We use the Divio documentation structure to organize our documentation.

Run the make docs-serve command in the root of the project, and then browse to http://localhost:2020 to see a preview of the current state of the documentation.

After writing the documentation, please use the make docs-vale command and correct any warnings raised by the tool.

Contributing and license

This library is licensed under BSD-3-Clause. For information about how to contribute, see CONTRIBUTING.

component-metallb's People

Contributors

bastjan avatar kidswiss avatar megian avatar rxbn avatar simu avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

component-metallb's Issues

Implement CRD-based configuration

Context

We'll need to implement support for MetalLB's CRD-based configuration, in order to be able to update to MetalLB >= 0.13.2. From the release notes:

CRD support! A long awaited feature, MetalLB is now configurable via CRs. On top of that, validating webhooks will ensure the validity of the configuration upfront, without needing to check the logs. (PR #1237, PR #1245) Please note that the ConfigMap configuration is not supported anymore. Check the “Changes in behaviour” section for more details.

I've implemented the bare minimum required for Layer2 mode (including forward migrations from the old config parameters), cf. #38. However, we'll need to also implement support for the BGP mode CRs. See https://metallb.universe.tf/configuration/ for all the CRs we'll need to support.

Design-wise, we'll have to decide if we want any logic, or if we just want to expose the CRs in the hierarchy directly.

Alternatives

n/a, We have to do this to upgrade to >= 0.13.2.

Metallb Helm chart is not saved in a tagged location

The component sometimes fails to compile if it is compiled with different Helm chart versions in the same working directory without deleting dependencies/metallb/helmcharts between runs

Steps to Reproduce the Problem

  1. Compile component with different Helm chart versions in same working directory without deleting dependencies/metallb/helmcharts between compilations

Actual Behavior

Helm error:

Error: values don't meet the specifications of the schema(s) in the following chart(s):
metallb:
- speaker: tolerateMaster is required
- speaker: Must validate all the schemas (allOf)
- prometheus: podMonitor is required
- prometheus.prometheusRule: staleConfig is required
- prometheus.prometheusRule: configNotLoaded is required
- prometheus.prometheusRule: addressPoolExhausted is required
- prometheus.prometheusRule: addressPoolUsage is required
- prometheus.prometheusRule: bgpSessionDown is required

Expected Behavior

Component compiles regardless of Chart version changes without manually deleting dependencies

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.