route

package
v0.2.1 Latest Latest
Warning

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

Go to latest
Published: Oct 2, 2026 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package route reconciles the Route resource (ADR-0110, F79): it validates each Route's backends, applies the multi-tenancy rules (host required in explicit-mode namespaces; deterministic cross-namespace (host,path,method) collision resolution), sets Ready/NotReady, and programs the edge router replace-all from the full Ready-route set — mirroring the Function reconciler's programAllRoutes discipline.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Deps

type Deps struct {
	Store store.Store
	// Routes contributes the user-Route entry set (source "routes") to the shared edge aggregator
	// (ADR-0138) — replacing a direct router.Program so user Routes coexist with the CatalogService's
	// node-private catalog route without clobbering the replace-all edge table.
	Routes router.EntrySetter
	Logger *slog.Logger
}

Deps are the reconciler's dependencies.

type Reconciler

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

Reconciler drives Route → programmed edge router.

func NewReconciler

func NewReconciler(d Deps) (*Reconciler, error)

NewReconciler builds the Route reconciler.

func (*Reconciler) Reconcile

func (r *Reconciler) Reconcile(ctx context.Context, req controller.Request) (controller.Result, error)

Reconcile evaluates the whole Route set (deterministic collision resolution), programs the router with the winners, and writes the status of every Route whose evaluation changed it — one Route's change can move another's readiness, and no event enqueues that other Route.

Jump to

Keyboard shortcuts

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