Documentation ¶
Overview ¶
Package dag provides a data model, in the form of a directed acyclic graph, of the relationship between Kubernetes Ingress, Service, and Secret objects.
Package dag provides a data model, in the form of a directed acyclic graph, of the relationship between Kubernetes Ingress, Service, and Secret objects.
Index ¶
Constants ¶
const ( StatusValid = "valid" StatusInvalid = "invalid" StatusOrphaned = "orphaned" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DAG ¶
type DAG struct {
// contains filtered or unexported fields
}
A DAG represents a directed acylic graph of objects representing the relationship between Kubernetes Ingress objects, the backend Services, and Secret objects. The DAG models these relationships as Roots and Vertices.
type KubernetesCache ¶
type KubernetesCache struct { // IngressRouteRootNamespaces specifies the namespaces where root // IngressRoutes can be defined. If empty, roots can be defined in any // namespace. IngressRouteRootNamespaces []string // contains filtered or unexported fields }
A KubernetesCache holds Kubernetes objects and associated configuration and produces DAG values.
func (*KubernetesCache) Insert ¶
func (kc *KubernetesCache) Insert(obj interface{})
Insert inserts obj into the KubernetesCache. If an object with a matching type, name, and namespace exists, it will be overwritten.
func (*KubernetesCache) Remove ¶
func (kc *KubernetesCache) Remove(obj interface{})
Remove removes obj from the KubernetesCache. If no object with a matching type, name, and namespace exists in the DAG, no action is taken.
type Route ¶
type Route struct { Prefix string // Should this route generate a 301 upgrade if accessed // over HTTP? HTTPSUpgrade bool // Is this a websocket route? // TODO(dfc) this should go on the service Websocket bool // A timeout applied to requests on this route. // A timeout of zero implies "use envoy's default" // A timeout of -1 represents "infinity" // TODO(dfc) should this move to service? Timeout time.Duration // RetryOn specifies the conditions under which retry takes place. // If empty, retries will not be performed. RetryOn string // NumRetries specifies the allowed number of retries. // Ignored if RetryOn is blank, or defaults to 1 if RetryOn is set. NumRetries int // PerTryTimeout specifies the timeout per retry attempt. // Ignored if RetryOn is blank. PerTryTimeout time.Duration // Indicates that during forwarding, the matched prefix (or path) should be swapped with this value PrefixRewrite string // contains filtered or unexported fields }
type Secret ¶
type Secret struct {
// contains filtered or unexported fields
}
Secret represents a K8s Secret for TLS usage as a DAG Vertex. A Secret is a leaf in the DAG.
type SecureVirtualHost ¶
type SecureVirtualHost struct { VirtualHost // TLS minimum protocol version. Defaults to auth.TlsParameters_TLS_AUTO MinProtoVersion auth.TlsParameters_TlsProtocol // contains filtered or unexported fields }
A SecureVirtualHost represents a HTTP host protected by TLS.
func (*SecureVirtualHost) Data ¶
func (s *SecureVirtualHost) Data() map[string][]byte
func (*SecureVirtualHost) Visit ¶
func (s *SecureVirtualHost) Visit(f func(Vertex))
type Service ¶
type Service struct { Object *v1.Service *v1.ServicePort Weight int // Protocol is the layer 7 protocol of this service Protocol string HealthCheck *ingressroutev1.HealthCheck LoadBalancerStrategy string // Max connections is maximum number of connections // that Envoy will make to the upstream cluster. MaxConnections int // MaxPendingRequests is maximum number of pending // requests that Envoy will allow to the upstream cluster. MaxPendingRequests int // MaxRequests is the maximum number of parallel requests that // Envoy will make to the upstream cluster. MaxRequests int // MaxRetries is the maximum number of parallel retries that // Envoy will allow to the upstream cluster. MaxRetries int }
Service represents a K8s Service as a DAG vertex. A Service is a leaf in the DAG.
type Status ¶
type Status struct { Object *ingressroutev1.IngressRoute Status string Description string Vhost string }
Status contains the status for an IngressRoute (valid / invalid / orphan, etc)
type VirtualHost ¶
type VirtualHost struct { // Port is the port that the VirtualHost will listen on. // Expected values are 80 and 443, but others are possible // if the VirtualHost is generated inside Contour. Port int Host string // contains filtered or unexported fields }
A VirtualHost represents an insecure HTTP host.
func (*VirtualHost) Visit ¶
func (v *VirtualHost) Visit(f func(Vertex))