manager

package
v1.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 24, 2024 License: AGPL-3.0 Imports: 31 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrServiceBindingNotFound = fmt.Errorf("servicebinding not found")

Functions

func RegisterNginxStreamConfig

func RegisterNginxStreamConfig(svcBinding *networkingv1.ServiceBinding) []string

Types

type Error

type Error struct {
	Err     error
	Message string
	Code    int
}

func NewError

func NewError(err error, msg string) Error

func (Error) Error

func (e Error) Error() string

type Manager

type Manager struct {
	Env *env.Env

	// private fields
	sync.Mutex

	PodIPCounter int      `json:"counter_pod_ip"`
	FreePodIPs   []string `json:"free_pod_ips"`

	SvcIPCounter int      `json:"counter_svc_ip"`
	FreeSvcIPs   []string `json:"free_svc_ips"`
	// contains filtered or unexported fields
}

func NewManager

func NewManager(ev *env.Env, logger *slog.Logger, kclientset *kubernetes.Clientset, kcli client.Client) (*Manager, error)

func (*Manager) CreatePodBindings

func (m *Manager) CreatePodBindings(ctx RequestContext, count int) error

func (*Manager) CreateSvcBindings

func (m *Manager) CreateSvcBindings(ctx context.Context, count int) error

func (*Manager) DeregisterAndSyncNginxStreams

func (m *Manager) DeregisterAndSyncNginxStreams(ctx context.Context, svcBindingIP string) error

func (*Manager) DeregisterPod

func (m *Manager) DeregisterPod(ctx context.Context, podNamespace, podName string) error

func (*Manager) DeregisterService

func (m *Manager) DeregisterService(ctx context.Context, namespace, name string) error

func (*Manager) EnsureIPManagerConfigExists

func (m *Manager) EnsureIPManagerConfigExists(ctx context.Context) (podIPCounter int, svcIPCounter int, err error)

func (*Manager) GetWgConfigForReservedPod

func (m *Manager) GetWgConfigForReservedPod(ctx context.Context, args WgConfigForReservedPodArgs) ([]byte, error)

func (*Manager) OnServiceBindingUpdates

func (m *Manager) OnServiceBindingUpdates(ctx context.Context, namespace, name string) error

func (*Manager) PickFreePodBinding

func (m *Manager) PickFreePodBinding(ctx context.Context, createIfNone bool) (*networkingv1.PodBinding, error)

func (*Manager) PickFreeSvcBinding

func (m *Manager) PickFreeSvcBinding(ctx context.Context) (*networkingv1.ServiceBinding, error)

func (*Manager) ReserveService

func (m *Manager) ReserveService(ctx context.Context, namespace, name string) error

func (*Manager) RestartWireguard

func (m *Manager) RestartWireguard() error

func (*Manager) RestartWireguardInline

func (m *Manager) RestartWireguardInline() error

func (*Manager) SyncNginxStreams

func (m *Manager) SyncNginxStreams() error

func (*Manager) WgAddAddr

func (m *Manager) WgAddAddr(addr string) error

func (*Manager) WgRemoveAddr

func (m *Manager) WgRemoveAddr(addr string) error

type RegisterPodResult

type RegisterPodResult struct {
	PodBindingIP     string
	ReservationToken string
}

type RequestContext

type RequestContext struct {
	context.Context
	// contains filtered or unexported fields
}

type Timed

type Timed struct {
	// contains filtered or unexported fields
}

func TimerStart

func TimerStart(logger *slog.Logger, msg string) *Timed

func (*Timed) Reset

func (t *Timed) Reset(msg string)

func (*Timed) Stop

func (t *Timed) Stop()

type WgConfigForReservedPodArgs

type WgConfigForReservedPodArgs struct {
	PodNamespace string
	PodName      string
	PodIP        string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL