ciliumenvoyconfig

package
v1.17.0-pre.3 Latest Latest
Warning

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

Go to latest
Published: Dec 2, 2024 License: Apache-2.0 Imports: 64 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	CECTableName = "ciliumenvoyconfigs"

	CECByName = cecNameIndex.Query

	CECByServiceName = cecServiceIndex.Query
)
View Source
var Cell = cell.Module(
	"ciliumenvoyconfig",
	"CiliumEnvoyConfig",

	cell.Invoke(registerCECK8sReconciler),
	cell.ProvidePrivate(newCECManager),
	cell.ProvidePrivate(newCECResourceParser),
	cell.ProvidePrivate(newEnvoyServiceBackendSyncer),
	cell.ProvidePrivate(
		func(lc cell.Lifecycle, cfg k8s.Config, cs client.Clientset) (allService, error) {
			return k8s.ServiceResource(lc, cfg, cs)
		},
		func(lc cell.Lifecycle, cfg k8s.Config, cs client.Clientset) (allEndpoint, error) {
			return k8s.EndpointsResource(lc, cfg, cs)
		},
	),
	cell.ProvidePrivate(newPortAllocator),
	cell.Config(cecConfig{}),

	experimentalCell,
)

Cell provides support for the CRD CiliumEnvoyConfig that backs Ingress, Gateway API and L7 loadbalancing.

Functions

func NewCECTable

func NewCECTable(db *statedb.DB) (statedb.RWTable[*CEC], error)

Types

type CEC

type CEC struct {
	Name k8sTypes.NamespacedName
	Spec *ciliumv2.CiliumEnvoyConfigSpec

	Selector         labels.Selector `json:"-"`
	SelectsLocalNode bool
	Listeners        part.Map[string, uint16]

	// FrontendsRevision is the latest revision of [experimental.Frontend] from
	// which the [Resources.Endpoints] were updated. This is used to coordinate
	// updates between the reflector and the backendController.
	FrontendsRevision statedb.Revision

	// Resources is the parsed envoy.Resources.
	Resources envoy.Resources `json:"-"`

	// ReconciledResources is the last successfully reconciled resources.
	// Updated by the reconciliation operations.
	ReconciledResources *envoy.Resources `json:"-"`

	// Status is the reconciliation status of [Resources] towards Envoy.
	Status reconciler.Status
}

func (*CEC) Clone

func (cec *CEC) Clone() *CEC

func (*CEC) GetStatus

func (cec *CEC) GetStatus() reconciler.Status

func (*CEC) SetStatus

func (cec *CEC) SetStatus(newStatus reconciler.Status) *CEC

func (*CEC) TableHeader

func (*CEC) TableHeader() []string

func (*CEC) TableRow

func (cec *CEC) TableRow() []string

type CECName

type CECName = k8sTypes.NamespacedName

type PortAllocator

type PortAllocator interface {
	AllocateCRDProxyPort(name string) (uint16, error)
	AckProxyPort(ctx context.Context, name string) error
	ReleaseProxyPort(name string) error
}

Jump to

Keyboard shortcuts

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