routing

package
v0.4.0-beta.7 Latest Latest
Warning

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

Go to latest
Published: Aug 23, 2026 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Backend

type Backend struct {
	ID      string `json:"id"`
	Address string `json:"address"`
	Healthy bool   `json:"healthy"`
	Weight  int    `json:"weight,omitempty"`
}

type ConfigWriter

type ConfigWriter interface {
	Apply(context.Context, string, string, []byte) error
	Remove(context.Context, string) error
}

type DeploymentSource

type DeploymentSource interface {
	GetDeployment(string) (*models.Deployment, error)
}

type K3sIngressProvider

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

func (*K3sIngressProvider) Drain

func (p *K3sIngressProvider) Drain(_ context.Context, routeID, backendID string) error

func (*K3sIngressProvider) ID

func (*K3sIngressProvider) Reconcile

func (p *K3sIngressProvider) Reconcile(ctx context.Context, route Route) error

func (*K3sIngressProvider) Remove

func (p *K3sIngressProvider) Remove(ctx context.Context, routeID string) error

func (*K3sIngressProvider) Validate

func (p *K3sIngressProvider) Validate(_ context.Context, route Route) error

type KubernetesRunner

type KubernetesRunner interface {
	Run(context.Context, []byte, ...string) ([]byte, error)
}

type ManagedNginx

type ManagedNginx interface {
	RenderVirtualHost(*models.Deployment) (string, error)
	RenderVirtualHostWithBackends(*models.Deployment, map[string][]nginx.UpstreamBackend) (string, error)
	GetVirtualHost(string) (string, error)
	WriteVirtualHost(string, string) error
	TestConfig() error
	Reload() error
}

type NginxManager

type NginxManager interface {
	WriteVirtualHost(string, string) error
	DeleteVirtualHost(string) error
	TestConfig() error
	Reload() error
}

type NginxWriter

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

func NewNginxWriter

func NewNginxWriter(manager NginxManager) *NginxWriter

func (*NginxWriter) Apply

func (w *NginxWriter) Apply(ctx context.Context, id, provider string, content []byte) error

func (*NginxWriter) Remove

func (w *NginxWriter) Remove(ctx context.Context, id string) error

type Provider

type Provider interface {
	ID() ProviderID
	Validate(context.Context, Route) error
	Reconcile(context.Context, Route) error
	Drain(context.Context, string, string) error
	Remove(context.Context, string) error
}

func NewK3sIngressProvider

func NewK3sIngressProvider(kubeconfig, namespace string, restored ...Route) Provider

func NewK3sIngressProviderWithRunner

func NewK3sIngressProviderWithRunner(kubeconfig, namespace string, runner KubernetesRunner) Provider

func NewManagedNginxProvider

func NewManagedNginxProvider(manager ManagedNginx, deployments DeploymentSource, restored ...Route) Provider

func NewNginxProvider

func NewNginxProvider(writer ConfigWriter) Provider

func NewTraefikProvider

func NewTraefikProvider(writer ConfigWriter) Provider

type ProviderID

type ProviderID string
const (
	ProviderNginx   ProviderID = "nginx"
	ProviderTraefik ProviderID = "traefik"
)

type Route

type Route struct {
	ID       string    `json:"id"`
	Service  string    `json:"service,omitempty"`
	Domain   string    `json:"domain"`
	Path     string    `json:"path,omitempty"`
	Protocol string    `json:"protocol"`
	Backends []Backend `json:"backends"`
}

Jump to

Keyboard shortcuts

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