traffic

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Sep 16, 2019 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// DefaultTarget is the unnamed default target for the traffic.
	DefaultTarget = ""
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	// Group of traffic splits.  Un-named targets are grouped together
	// under the key `DefaultTarget`, and named target are under the respective
	// name.  This is used to configure network configuration to
	// realize a route's setting.
	Targets map[string]RevisionTargets

	// The referred `Configuration`s and `Revision`s.
	Configurations map[string]*v1alpha1.Configuration
	Revisions      map[string]*v1alpha1.Revision
	// contains filtered or unexported fields
}

Config encapsulates details of our traffic so that we don't need to make API calls, or use details of the route beyond its ObjectMeta to make routing changes.

func BuildTrafficConfiguration

func BuildTrafficConfiguration(configLister listers.ConfigurationLister, revLister listers.RevisionLister,
	r *v1alpha1.Route) (*Config, error)

BuildTrafficConfiguration consolidates and flattens the Route.Spec.Traffic to the Revision-level. It also provides a complete lists of Configurations and Revisions referred by the Route, directly or indirectly. These referred targets are keyed by name for easy access.

In the case that some target is missing, an error of type TargetError will be returned.

func (*Config) GetRevisionTrafficTargets

func (t *Config) GetRevisionTrafficTargets(ctx context.Context, r *v1alpha1.Route, clusterLocalService sets.String) ([]v1alpha1.TrafficTarget, error)

GetRevisionTrafficTargets returns a list of TrafficTarget flattened to the RevisionName, and having ConfigurationName cleared out.

type RevisionTarget

type RevisionTarget struct {
	v1.TrafficTarget
	Active      bool
	Protocol    net.ProtocolType
	ServiceName string // Revision service name.
}

A RevisionTarget adds the Active/Inactive state and the transport protocol of a Revision to a flattened TrafficTarget.

type RevisionTargets

type RevisionTargets []RevisionTarget

RevisionTargets is a collection of revision targets.

type TargetError

type TargetError interface {
	error

	// MarkBadTrafficTarget marks a RouteStatus with Condition corresponding
	// to the error case of the traffic target.
	MarkBadTrafficTarget(rs *v1alpha1.RouteStatus)

	// IsFailure returns whether a TargetError is a true failure, e.g.
	// a Configuration fails to become ready.
	IsFailure() bool
}

TargetError gives details about an invalid traffic target.

Jump to

Keyboard shortcuts

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