Documentation ¶
Index ¶
- func NewLeaderElector(client kubernetes.Interface, callbacks leaderelection.LeaderCallbacks, ...) (*leaderelection.LeaderElector, error)
- type LoadBalancerController
- func (lbc *LoadBalancerController) AddConfigMapHandler(handlers cache.ResourceEventHandlerFuncs, namespace string)
- func (lbc *LoadBalancerController) AddEndpointHandler(handlers cache.ResourceEventHandlerFuncs)
- func (lbc *LoadBalancerController) AddIngressHandler(handlers cache.ResourceEventHandlerFuncs)
- func (lbc *LoadBalancerController) AddLeaderHandler(leaderHandler leaderelection.LeaderCallbacks)
- func (lbc *LoadBalancerController) AddSecretHandler(handlers cache.ResourceEventHandlerFuncs)
- func (lbc *LoadBalancerController) AddServiceHandler(handlers cache.ResourceEventHandlerFuncs)
- func (lbc *LoadBalancerController) AddSyncQueue(item interface{})
- func (lbc *LoadBalancerController) EnqueueIngressForService(svc *api_v1.Service)
- func (lbc *LoadBalancerController) FindMasterForMinion(minion *extensions.Ingress) (*extensions.Ingress, error)
- func (lbc *LoadBalancerController) GetDefaultServerSecret() string
- func (lbc *LoadBalancerController) GetIngressClassKey() string
- func (lbc *LoadBalancerController) GetManagedIngresses() ([]extensions.Ingress, map[string]*nginx.MergeableIngresses)
- func (lbc *LoadBalancerController) IsExternalServiceForStatus(svc *api_v1.Service) bool
- func (lbc *LoadBalancerController) IsNginxIngress(ing *extensions.Ingress) bool
- func (lbc *LoadBalancerController) Run()
- func (lbc *LoadBalancerController) Stop()
- func (lbc *LoadBalancerController) UpdateManagedAndMergeableIngresses(ingresses []v1beta1.Ingress, ...) error
- func (lbc *LoadBalancerController) ValidateSecret(secret *api_v1.Secret) error
- func (lbc *LoadBalancerController) WatchNginxConfigMaps()
- type NewLoadBalancerControllerInput
- type StatusUpdater
- func (su *StatusUpdater) BulkUpdateIngressStatus(ings []v1beta1.Ingress) error
- func (su *StatusUpdater) ClearIngressStatus(ing v1beta1.Ingress) error
- func (su *StatusUpdater) ClearStatusFromExternalService()
- func (su *StatusUpdater) SaveStatusFromExternalService(svc *api_v1.Service)
- func (su *StatusUpdater) SaveStatusFromExternalStatus(externalStatusAddress string)
- func (su *StatusUpdater) UpdateIngressStatus(ing v1beta1.Ingress) error
- func (su *StatusUpdater) UpdateManagedAndMergeableIngresses(managedIngresses []v1beta1.Ingress, ...) error
- func (su *StatusUpdater) UpdateMergableIngresses(mergableIngresses *nginx.MergeableIngresses) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewLeaderElector ¶
func NewLeaderElector(client kubernetes.Interface, callbacks leaderelection.LeaderCallbacks, namespace string) (*leaderelection.LeaderElector, error)
NewLeaderElector creates a new LeaderElection and returns the Elector.
Types ¶
type LoadBalancerController ¶
type LoadBalancerController struct {
// contains filtered or unexported fields
}
LoadBalancerController watches Kubernetes API and reconfigures NGINX via NginxController when needed
func NewLoadBalancerController ¶
func NewLoadBalancerController(input NewLoadBalancerControllerInput) *LoadBalancerController
NewLoadBalancerController creates a controller
func (*LoadBalancerController) AddConfigMapHandler ¶
func (lbc *LoadBalancerController) AddConfigMapHandler(handlers cache.ResourceEventHandlerFuncs, namespace string)
AddConfigMapHandler adds the handler for config maps to the controller
func (*LoadBalancerController) AddEndpointHandler ¶
func (lbc *LoadBalancerController) AddEndpointHandler(handlers cache.ResourceEventHandlerFuncs)
AddEndpointHandler adds the handler for endpoints to the controller
func (*LoadBalancerController) AddIngressHandler ¶
func (lbc *LoadBalancerController) AddIngressHandler(handlers cache.ResourceEventHandlerFuncs)
AddIngressHandler adds the handler for ingresses to the controller
func (*LoadBalancerController) AddLeaderHandler ¶
func (lbc *LoadBalancerController) AddLeaderHandler(leaderHandler leaderelection.LeaderCallbacks)
AddLeaderHandler adds the handler for leader election to the controller
func (*LoadBalancerController) AddSecretHandler ¶
func (lbc *LoadBalancerController) AddSecretHandler(handlers cache.ResourceEventHandlerFuncs)
AddSecretHandler adds the handler for secrets to the controller
func (*LoadBalancerController) AddServiceHandler ¶
func (lbc *LoadBalancerController) AddServiceHandler(handlers cache.ResourceEventHandlerFuncs)
AddServiceHandler adds the handler for services to the controller
func (*LoadBalancerController) AddSyncQueue ¶
func (lbc *LoadBalancerController) AddSyncQueue(item interface{})
AddSyncQueue enqueues the provided item on the sync queue
func (*LoadBalancerController) EnqueueIngressForService ¶
func (lbc *LoadBalancerController) EnqueueIngressForService(svc *api_v1.Service)
EnqueueIngressForService enqueues the ingress for the given service
func (*LoadBalancerController) FindMasterForMinion ¶
func (lbc *LoadBalancerController) FindMasterForMinion(minion *extensions.Ingress) (*extensions.Ingress, error)
FindMasterForMinion returns a master for a given minion
func (*LoadBalancerController) GetDefaultServerSecret ¶
func (lbc *LoadBalancerController) GetDefaultServerSecret() string
GetDefaultServerSecret returns the default server secret
func (*LoadBalancerController) GetIngressClassKey ¶
func (lbc *LoadBalancerController) GetIngressClassKey() string
GetIngressClassKey returns the ingress class key
func (*LoadBalancerController) GetManagedIngresses ¶
func (lbc *LoadBalancerController) GetManagedIngresses() ([]extensions.Ingress, map[string]*nginx.MergeableIngresses)
GetManagedIngresses gets Ingress resources that the IC is currently responsible for
func (*LoadBalancerController) IsExternalServiceForStatus ¶
func (lbc *LoadBalancerController) IsExternalServiceForStatus(svc *api_v1.Service) bool
IsExternalServiceForStatus matches the service specified by the external-service arg
func (*LoadBalancerController) IsNginxIngress ¶
func (lbc *LoadBalancerController) IsNginxIngress(ing *extensions.Ingress) bool
IsNginxIngress checks if resource ingress class annotation (if exists) is matching with ingress controller class If annotation is absent and use-ingress-class-only enabled - ingress resource would ignore
func (*LoadBalancerController) Run ¶
func (lbc *LoadBalancerController) Run()
Run starts the loadbalancer controller
func (*LoadBalancerController) Stop ¶
func (lbc *LoadBalancerController) Stop()
Stop shutdowns the load balancer controller
func (*LoadBalancerController) UpdateManagedAndMergeableIngresses ¶
func (lbc *LoadBalancerController) UpdateManagedAndMergeableIngresses(ingresses []v1beta1.Ingress, mergeableIngresses map[string]*nginx.MergeableIngresses) error
UpdateManagedAndMergeableIngresses invokes the UpdateManagedAndMergeableIngresses method on the Status Updater
func (*LoadBalancerController) ValidateSecret ¶
func (lbc *LoadBalancerController) ValidateSecret(secret *api_v1.Secret) error
ValidateSecret validates that the secret follows the TLS Secret format. For NGINX Plus, it also checks if the secret follows the JWK Secret format.
func (*LoadBalancerController) WatchNginxConfigMaps ¶
func (lbc *LoadBalancerController) WatchNginxConfigMaps()
WatchNginxConfigMaps sets the controller to watch config map changes
type NewLoadBalancerControllerInput ¶
type NewLoadBalancerControllerInput struct { KubeClient kubernetes.Interface ResyncPeriod time.Duration Namespace string NginxConfigurator *nginx.Configurator DefaultServerSecret string IsNginxPlus bool IngressClass string UseIngressClassOnly bool ExternalServiceName string ControllerNamespace string ReportIngressStatus bool IsLeaderElectionEnabled bool }
NewLoadBalancerControllerInput holds the input needed to call NewLoadBalancerController.
type StatusUpdater ¶
type StatusUpdater struct {
// contains filtered or unexported fields
}
StatusUpdater reports Ingress status information via the kubernetes API, primarily the IP or host of the LoadBalancer Service exposing the Ingress Controller, or an external IP specified in the ConfigMap.
func (*StatusUpdater) BulkUpdateIngressStatus ¶
func (su *StatusUpdater) BulkUpdateIngressStatus(ings []v1beta1.Ingress) error
BulkUpdateIngressStatus sets the status field on the selected Ingresses, specifically the External IP field.
func (*StatusUpdater) ClearIngressStatus ¶
func (su *StatusUpdater) ClearIngressStatus(ing v1beta1.Ingress) error
ClearIngressStatus clears the Ingress status.
func (*StatusUpdater) ClearStatusFromExternalService ¶
func (su *StatusUpdater) ClearStatusFromExternalService()
ClearStatusFromExternalService clears the saved status from the External Service
func (*StatusUpdater) SaveStatusFromExternalService ¶
func (su *StatusUpdater) SaveStatusFromExternalService(svc *api_v1.Service)
SaveStatusFromExternalService saves the external IP or address from the service. This method does not update ingress status - UpdateIngressStatus must be called separately.
func (*StatusUpdater) SaveStatusFromExternalStatus ¶
func (su *StatusUpdater) SaveStatusFromExternalStatus(externalStatusAddress string)
SaveStatusFromExternalStatus saves the status from a string. For use with the external-status-address ConfigMap setting. This method does not update ingress status - StatusUpdater.UpdateIngressStatus must be called separately.
func (*StatusUpdater) UpdateIngressStatus ¶
func (su *StatusUpdater) UpdateIngressStatus(ing v1beta1.Ingress) error
UpdateIngressStatus updates the status on the selected Ingress.
func (*StatusUpdater) UpdateManagedAndMergeableIngresses ¶
func (su *StatusUpdater) UpdateManagedAndMergeableIngresses(managedIngresses []v1beta1.Ingress, mergableIngExes map[string]*nginx.MergeableIngresses) error
UpdateManagedAndMergeableIngresses handles the full return format of LoadBalancerController.getManagedIngresses
func (*StatusUpdater) UpdateMergableIngresses ¶
func (su *StatusUpdater) UpdateMergableIngresses(mergableIngresses *nginx.MergeableIngresses) error
UpdateMergableIngresses is a convience passthru to update Ingresses with our nginx.MergableIngresses type