Skip to content

Kubernetes loadbalancer controller to provision ingress controller dynamically

License

Notifications You must be signed in to change notification settings

caicloud/loadbalancer-controller

Repository files navigation

Table of Contents generated with DocToc

LoadBalancer Controller

About the project

A LoadBalancer, containing a proxy and multiple providers, provides external traffic load balancing for kubernetes applications.

A proxy is an ingress controller watching ingress resources to provide accesses that allow inbound connections to reach the cluster services.

A provider is the entrance of the cluster providing high availability for connections to proxy (ingress controller).

Status

Working in process

This project is still in alpha version.

Design

Learn more about loadbalancer on design doc

See also

Getting started

Layout

├── cmd
│   └── controller
├── config
├── controller
├── docs
│   └── images
├── hack
│   └── license
├── pkg
│   ├── apis
│   │   └── networking
│   │       └── v1alpha1
│   ├── informers
│   │   ├── internalinterfaces
│   │   └── networking
│   │       └── v1alpha1
│   ├── listers
│   │   └── networking
│   │       └── v1alpha1
│   ├── toleration
│   ├── tprclient
│   │   └── networking
│   │       └── v1alpha1
│   └── util
│       ├── controller
│       ├── lb
│       ├── strings
│       ├── taints
│       └── validation
├── provider
│   └── providers
│       └── ipvsdr
├── proxy
│   └── proxies
│       └── nginx
└── version

A brief description:

  • cmd contains main packages, each subdirecoty of cmd is a main package.
  • docs for project documentations.
  • hack contains scripts used to manage this repository.
  • pkg contains apis, informers, listers, clients, util for LoadBalancer TPR.
  • provider contains provider plugins, each subdirectory is one kind of a provider
  • proxy contains proxy plugins, each subdirectory is one kind of a proxy
  • version is a placeholder which will be filled in at compile time

TODO

  • readjust the directory structure
  • update api to v1alpha2
  • separate api from the project to clientset
  • auto generate clients and informers