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

Experimental load-balancing control-plane with StateDB #32185

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Commits on May 30, 2024

  1. clustermesh: Add JSON marshalling to AddrCluster

    Implement JSON marshalling for AddrCluster type so it can
    be used in StateDB objects and dumped with cilium-dbg.
    
    Signed-off-by: Jussi Maki <jussi@isovalent.com>
    joamaki committed May 30, 2024
    Configuration menu
    Copy the full SHA
    9d35e3d View commit details
    Browse the repository at this point in the history
  2. container: Add JSON marshalling support for ImmSet[T]

    For dumping StateDB objects with ImmSet[T] fields, add support
    for JSON marshallign and unmarshalling.
    
    The default implementation does not work as ImmSet[T] has
    private fields only.
    
    Signed-off-by: Jussi Maki <jussi@isovalent.com>
    joamaki committed May 30, 2024
    Configuration menu
    Copy the full SHA
    0b507ba View commit details
    Browse the repository at this point in the history
  3. loadbalancer/experimental: Add experimental API for load-balancing

    Add experimental Services API for managing load-balancing frontends
    and backends. This is added as a new experimental package to avoid
    confusing it with the production implementation.
    
    When the hidden "--enable-experimental-services" flag is set:
    * K8s Service and Endpoints are reflected to service, frontend and backend tables
    * A mock reconciler is started that logs mock operations to reconcile the frontends.
    
    The tables can be inspected with "cilium-dbg statedb experimental" commands,
    e.g. "cilium-dbg statedb experimental frontends".
    
    Signed-off-by: Jussi Maki <jussi@isovalent.com>
    joamaki committed May 30, 2024
    Configuration menu
    Copy the full SHA
    6eba473 View commit details
    Browse the repository at this point in the history
  4. experimental: Add fuzz test to validate serializability

    The "cilium-dbg statedb" commands require the objects to be
    JSON serializable, which is easy to break accidentally.
    
    Add a fuzz test to generate arbitrary Service, Frontend and
    Backend objects and validate that the TableRow() output is the
    same across JSON serialization.
    
    Signed-off-by: Jussi Maki <jussi@isovalent.com>
    joamaki committed May 30, 2024
    Configuration menu
    Copy the full SHA
    86118e4 View commit details
    Browse the repository at this point in the history