Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrRuleNotFound is returned when a rule doesn't exist. ErrRuleNotFound = errors.New("rule not found") // ErrRuleEmpty is returned when a rule does not have any paths. ErrRuleEmpty = errors.New("rule has no paths") )
Functions ¶
This section is empty.
Types ¶
type Endpoint ¶
type Endpoint struct {
// Name is the name of the service.
// Using Kubernetes: It's the name of the service we're pointing to
// Using Gloo: It's the name of the upstream.
Name string
// Port is the port of the service.
Port int32
}
Endpoint describes an entrypoint to a certain service name with the given port.
type IngressRules ¶
type IngressRules interface {
Get(ctx context.Context, resource resource.Resource, host string) (Rule, error)
Upsert(ctx context.Context, rule Rule, paths ...Path) error
Remove(ctx context.Context, rule Rule, paths ...Path) error
}
IngressRules groups a set of methods to manage rules from a certain Ingresses.
type Ingresses ¶
type Ingresses interface {
Get(ctx context.Context, name string, namespace string) (resource.Resource, error)
}
Ingresses groups a set of methods for managing Ingresses.
type Path ¶
type Path struct {
// UID is an unique identifier used to identify different paths.
// In kubernetes: It's the URL path.
// In gloo: It's the route name.
UID string
// Address is an extended POSIX regex as defined by IEEE Std 1003.1,
// (i.e this follows the egrep/unix syntax, not the perl syntax)
// matched against the path of an incoming request. Currently it can
// contain characters disallowed from the conventional "path"
// part of a URL as defined by RFC 3986. Paths must begin with
// a '/'. If unspecified, the path defaults to a catch all sending
// traffic to the backend.
Address string
// Endpoint has the information needed to route the incoming traffic in this Path
// into a specific service running inside the cluster.
Endpoint Endpoint
}
Path matches a certain Address to a specific Endpoint.
func RemovePaths ¶
RemovePaths removes the given elements from the given list. Returns the list after all elements have been removed.
func UpsertPaths ¶
UpsertPaths updates or inserts the given elements into the given list. Returns the list after all elements have been updated/added.
type Rule ¶
type Rule interface {
// Resource returns the resource that implements this rule.
Resource() resource.Resource
// Host returns the host where this rule is being applied to.
Host() string
// Paths returns the paths that this rule has.
Paths() []Path
// UpsertPaths insert and updates underlying list of paths with the given paths.
UpsertPaths(paths []Path)
// RemovePaths removes the given paths from the underlying list of paths.
RemovePaths(paths []Path)
// ToOutput converts this rule into a implementation-specific type of rule.
// In Kubernetes, ToOutput is used to return a v1beta1.IngressRule.
ToOutput() interface{}
}
Rule is used to return a list of available paths to access a certain service.
Click to show internal directories.
Click to hide internal directories.