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) IsCertUsedForLB(lbName, resourceName string) bool
- func (n *Namer) IsLegacySSLCert(lbName string, resourceName string) bool
- func (n *Namer) IsNEG(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) SSLCertName(lbName string, secretHash string) 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) IsCertUsedForLB ¶ added in v1.1.0
IsCertUsedForLB returns true if the resourceName belongs to this cluster's ingress. It checks that the hashed lbName exists and
func (*Namer) IsLegacySSLCert ¶ added in v1.1.0
IsLegacySSLCert returns true if certName is an Ingress managed name following the older naming convention. The check also ensures that the cert is managed by the specific ingress instance - lbName
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) SSLCertName ¶ added in v1.1.0
SSLCertName returns the name of the certificate.
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