Documentation ¶
Index ¶
Constants ¶
const ( MinRefreshNodePeriod = 30 * time.Second DefaultRefreshNodePeriod = 60 * time.Second )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type GatewayClientGetter ¶
type GatewayClientGetter struct {
// contains filtered or unexported fields
}
GatewayClientGetter gets gateway instances from admin API clients.
func NewGatewayClientGetter ¶
func NewGatewayClientGetter(logger logr.Logger, clientsProvider clients.AdminAPIClientsProvider) *GatewayClientGetter
NewGatewayClientGetter creates a GatewayClientGetter to get gateway instances from client provider.
func (*GatewayClientGetter) GetGatewayInstances ¶
func (p *GatewayClientGetter) GetGatewayInstances(ctx context.Context) ([]GatewayInstance, error)
GetGatewayInstances gets gateway instances from currently available gateway API clients.
type GatewayClientsChangesNotifier ¶
type GatewayClientsChangesNotifier interface {
SubscribeToGatewayClientsChanges() (<-chan struct{}, bool)
}
type GatewayInstance ¶
GatewayInstance is a controlled kong gateway instance. its hostname and version will be used to update status of nodes corresponding to the instance in konnect.
type GatewayInstanceGetter ¶
type GatewayInstanceGetter interface {
GetGatewayInstances(ctx context.Context) ([]GatewayInstance, error)
}
GatewayInstanceGetter is the interface to get currently running gateway instances in the kubernetes cluster.
type NodeAgent ¶
type NodeAgent struct {
// contains filtered or unexported fields
}
NodeAgent gets the running status of KIC node and controlled kong gateway nodes, and update their statuses to konnect.
func NewNodeAgent ¶
func NewNodeAgent( hostname string, version string, refreshPeriod time.Duration, logger logr.Logger, client NodeClient, configStatusSubscriber clients.ConfigStatusSubscriber, gatewayGetter GatewayInstanceGetter, gatewayClientsChangesNotifier GatewayClientsChangesNotifier, managerInstanceIDProvider ManagerInstanceIDProvider, opts ...NodeAgentOpt, ) *NodeAgent
NewNodeAgent creates a new node agent. hostname and version are hostname and version of KIC.
func (*NodeAgent) NeedLeaderElection ¶
NeedLeaderElection implements LeaderElectionRunnable interface to ensure that the node agent is run only when the KIC instance is elected a leader.
type NodeAgentOpt ¶
type NodeAgentOpt func(*NodeAgent)
func WithRefreshTicker ¶
func WithRefreshTicker(ticker Ticker) NodeAgentOpt
WithRefreshTicker sets the refresh ticker of node agent.
type NodeClient ¶
type NodeClient interface { CreateNode(ctx context.Context, req *nodes.CreateNodeRequest) (*nodes.CreateNodeResponse, error) UpdateNode(ctx context.Context, nodeID string, req *nodes.UpdateNodeRequest) (*nodes.UpdateNodeResponse, error) DeleteNode(ctx context.Context, nodeID string) error ListAllNodes(ctx context.Context) ([]*nodes.NodeItem, error) }
NodeClient is the interface to Konnect Control Plane Node API.