Documentation ¶
Overview ¶
Package utils contains shared data structures and functions.
Index ¶
- Constants
- func CompareLinks(l1, l2 string) bool
- func FakeGoogleAPIForbiddenErr() *googleapi.Error
- func FakeGoogleAPINotFoundErr() *googleapi.Error
- func IgnoreHTTPNotFound(err error) error
- func IsForbiddenError(err error) bool
- func IsHTTPErrorCode(err error, code int) bool
- func IsInUsedByError(err error) bool
- func IsNotFoundError(err error) bool
- func NodeIsReady(node *v1.Node) bool
- type FakeIngressRuleValueMap
- type GCEURLMap
- type NameComponents
- type Namer
- func (n *Namer) Backend(port int64) string
- func (n *Namer) BackendPort(beName string) (string, error)
- func (n *Namer) Firewall() string
- func (n *Namer) FirewallRule() string
- func (n *Namer) ForwardingRule(lbName string, protocol NamerProtocol) string
- func (n *Namer) InstanceGroup() string
- func (n *Namer) IsNEG(name string) bool
- func (n *Namer) IsSSLCert(name string) bool
- func (n *Namer) LoadBalancer(key string) string
- func (n *Namer) NEG(namespace, name, port string) string
- func (n *Namer) NameBelongsToCluster(name string) bool
- func (n *Namer) NamedPort(port int64) string
- func (n *Namer) ParseName(name string) *NameComponents
- func (n *Namer) SSLCert(lbName string, isPrimary bool) string
- func (n *Namer) SetFirewall(name string)
- func (n *Namer) SetUID(name string)
- func (n *Namer) TargetProxy(lbName string, protocol NamerProtocol) string
- func (n *Namer) UID() string
- func (n *Namer) UrlMap(lbName string) string
- type NamerProtocol
- type PeriodicTaskQueue
- type TaskQueue
Constants ¶
const ( // Add used to record additions in a sync pool. Add = iota // Remove used to record removals from a sync pool. Remove // Sync used to record syncs of a sync pool. Sync // Get used to record Get from a sync pool. Get // Create used to record creations in a sync pool. Create // Update used to record updates in a sync pool. Update // Delete used to record deltions from a sync pool. Delete // AddInstances used to record a call to AddInstances. AddInstances // RemoveInstances used to record a call to RemoveInstances. RemoveInstances )
const ( // DefaultBackendKey is the key used to transmit the defaultBackend // through a urlmap. It's not a valid subdomain, and it is a catch // all path. TODO: Find a better way to transmit this, once we've // decided on default backend semantics (i.e do we want a default // per host, per lb etc). DefaultBackendKey = "DefaultBackend" )
Variables ¶
This section is empty.
Functions ¶
func CompareLinks ¶
CompareLinks returns true if the 2 self links are equal.
func FakeGoogleAPIForbiddenErr ¶
FakeGoogleAPIForbiddenErr creates a Forbidden error with type googleapi.Error
func FakeGoogleAPINotFoundErr ¶
FakeGoogleAPINotFoundErr creates a NotFound error with type googleapi.Error
func IgnoreHTTPNotFound ¶
IgnoreHTTPNotFound returns the passed err if it's not a GoogleAPI error with a NotFound status code.
func IsForbiddenError ¶
IsForbiddenError returns true if the operation was forbidden
func IsHTTPErrorCode ¶
IsHTTPErrorCode checks if the given error matches the given HTTP Error code. For this to work the error must be a googleapi Error.
func IsInUsedByError ¶
IsInUsedByError returns true if the resource is being used by another GCP resource
func IsNotFoundError ¶
IsNotFoundError returns true if the resource does not exist
func NodeIsReady ¶
Types ¶
type FakeIngressRuleValueMap ¶
FakeIngressRuleValueMap is a convenience type used by multiple submodules that share the same testing methods.
type GCEURLMap ¶
type GCEURLMap map[string]map[string]*compute.BackendService
GCEURLMap is a nested map of hostname->path regex->backend
func (GCEURLMap) GetDefaultBackend ¶
func (g GCEURLMap) GetDefaultBackend() *compute.BackendService
GetDefaultBackend performs a destructive read and returns the default backend of the urlmap.
func (GCEURLMap) PutDefaultBackend ¶
func (g GCEURLMap) PutDefaultBackend(d *compute.BackendService)
PutDefaultBackend performs a destructive write replacing the default backend of the url map with the given backend.
type NameComponents ¶
type NameComponents struct {
ClusterName, Resource, Metadata string
}
NameComponents is a struct representing the components of a a GCE resource name constructed by the namer. The format of such a name is: k8s-resource-<metadata, eg port>--uid
type Namer ¶
type Namer struct {
// contains filtered or unexported fields
}
Namer is the centralized naming policy for Ingress-related GCP resources.
func NewNamerWithPrefix ¶
NewNamerWithPrefix creates a new namer with a custom prefix.
func (*Namer) BackendPort ¶
BackendPort retrieves the port from the given backend name.
func (*Namer) FirewallRule ¶
FirewallRule constructs the full firewall rule name, this is the name assigned by the cloudprovider lib + suffix from glbc, so we don't mix this rule with a rule created for L4 loadbalancing.
func (*Namer) ForwardingRule ¶
func (n *Namer) ForwardingRule(lbName string, protocol NamerProtocol) string
ForwardingRule returns the name of the forwarding rule prefix.
func (*Namer) InstanceGroup ¶
InstanceGroup constructs the name for an Instance Group.
func (*Namer) LoadBalancer ¶
LoadBalancer constructs a loadbalancer name from the given key. The key is usually the namespace/name of a Kubernetes Ingress.
func (*Namer) NEG ¶
NEG returns the gce neg name based on the service namespace, name and target port. NEG naming convention:
{prefix}{version}-{clusterid}-{namespace}-{name}-{target port}-{hash}
Output name is at most 63 characters. NEG tries to keep as much information as possible.
WARNING: Controllers depend on the naming pattern to get the list of all NEGs associated with the current cluster. Any modifications must be backward compatible.
func (*Namer) NameBelongsToCluster ¶
NameBelongsToCluster checks if a given name is tagged with this cluster's UID.
func (*Namer) ParseName ¶
func (n *Namer) ParseName(name string) *NameComponents
ParseName parses the name of a resource generated by the namer. This is only valid for the following resources:
Backend, InstanceGroup, TargetProxy, SSLCert, ForwardingRule, UrlMap.
func (*Namer) SSLCert ¶
SSLCert returns the name of the certificate. isPrimary denotes whether the name is for a primary certificate or secondary.
func (*Namer) SetFirewall ¶
SetFirewall sets the firewall name of this cluster.
func (*Namer) TargetProxy ¶
func (n *Namer) TargetProxy(lbName string, protocol NamerProtocol) string
TargetProxy returns the name for target proxy given the load balancer name and the protocol.
type NamerProtocol ¶
type NamerProtocol string
NamerProtocol is an enum for the different protocols given as parameters to Namer.
const ( HTTPProtocol NamerProtocol = "HTTP" HTTPSProtocol NamerProtocol = "HTTPS" )
type PeriodicTaskQueue ¶
type PeriodicTaskQueue struct {
// contains filtered or unexported fields
}
PeriodicTaskQueue invokes the given sync function for every work item inserted. If the sync() function results in an error, the item is put on the work queue after a rate-limit.
func NewPeriodicTaskQueue ¶
func NewPeriodicTaskQueue(resource string, syncFn func(string) error) *PeriodicTaskQueue
NewPeriodicTaskQueue creates a new task queue with the given sync function. The sync function is called for every element inserted into the queue.
func (*PeriodicTaskQueue) Enqueue ¶
func (t *PeriodicTaskQueue) Enqueue(obj interface{})
Enqueue a key to the work queue.
func (*PeriodicTaskQueue) Run ¶
func (t *PeriodicTaskQueue) Run(period time.Duration, stopCh <-chan struct{})
Run the task queue. This will block until the Shutdown() has been called. TODO: seems redundant to both have stopCh and Shutdown().
func (*PeriodicTaskQueue) Shutdown ¶
func (t *PeriodicTaskQueue) Shutdown()
Shutdown shuts down the work queue and waits for the worker to ACK