Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tie up the API with the FRR configuration mechanism #4

Merged
merged 11 commits into from
Jun 28, 2023

Commits on Jun 27, 2023

  1. Add utility packages

    Adding various utility packages stolen form metallb
    
    Signed-off-by: Federico Paolinelli <[email protected]>
    fedepaol committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    fa00d59 View commit details
    Browse the repository at this point in the history
  2. Add the frr module

    The FRR module is implemented the same way (copied) as MetalLB. The only
    difference is the starting point, which is the frr-k8s api.
    
    We have a translation layer that takes the FRR-K8s config, then
    translates it, and then generate the FRR configuration and calls the
    reloader script.
    
    Signed-off-by: Federico Paolinelli <[email protected]>
    fedepaol committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    0ad8895 View commit details
    Browse the repository at this point in the history
  3. Wire up the FRR package and the controller

    Signed-off-by: Federico Paolinelli <[email protected]>
    fedepaol committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    956ead3 View commit details
    Browse the repository at this point in the history
  4. Makefile: restart the ds when running make deploy

    Signed-off-by: Federico Paolinelli <[email protected]>
    fedepaol committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    35c082e View commit details
    Browse the repository at this point in the history
  5. Add the extra frr containers and wire up the config

    Here we add the same containers we had in MetalLB and we change the
    dockerfile accordingly.
    
    Signed-off-by: Federico Paolinelli <[email protected]>
    fedepaol committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    08ef923 View commit details
    Browse the repository at this point in the history
  6. Add a script to configure the DS and create an external frr container

    Add a dev-env like script that configures both the external container
    and the frr-k8s configuration.
    
    Signed-off-by: Federico Paolinelli <[email protected]>
    fedepaol committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    24a6962 View commit details
    Browse the repository at this point in the history
  7. Run go mod tidy

    Signed-off-by: Federico Paolinelli <[email protected]>
    fedepaol committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    474b031 View commit details
    Browse the repository at this point in the history
  8. Move the frr interaction behind an interface

    This will make easier to test the controller by injecting a mock frr
    handler.
    
    Signed-off-by: Federico Paolinelli <[email protected]>
    fedepaol committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    601fbba View commit details
    Browse the repository at this point in the history
  9. Add a controller based test suite

    This is meant to test only the controller behaviour, to see if it reacts
    correctly to the events. Testing of the conversion of the api should not
    depend on the api server.
    
    Signed-off-by: Federico Paolinelli <[email protected]>
    fedepaol committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    d553cee View commit details
    Browse the repository at this point in the history
  10. Add unit tests for api to config

    Here we unit test the conversion function.
    
    Signed-off-by: Federico Paolinelli <[email protected]>
    fedepaol committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    2415e57 View commit details
    Browse the repository at this point in the history
  11. Support the "allowAll" flag

    The flag was not implemented, here we cover with a test and support it.
    
    Signed-off-by: Federico Paolinelli <[email protected]>
    fedepaol committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    f7ba67a View commit details
    Browse the repository at this point in the history