Documentation ¶
Overview ¶
Package kube implements the shared and reusable library for Kubernetes
Index ¶
- Constants
- func CreateInterface(kubeconfig string) (kubernetes.Interface, error)
- func KeyFunc(name, namespace string) string
- func MakeSecretRegistry(client kubernetes.Interface) model.SecretRegistry
- func ResolveConfig(kubeconfig string) (string, error)
- type ChainHandler
- type Controller
- func (c *Controller) AppendInstanceHandler(f func(*model.ServiceInstance, model.Event)) error
- func (c *Controller) AppendServiceHandler(f func(*model.Service, model.Event)) error
- func (c *Controller) GetIstioServiceAccounts(hostname string, ports []string) []string
- func (c *Controller) GetService(hostname string) (*model.Service, bool)
- func (c *Controller) HasSynced() bool
- func (c *Controller) HostInstances(addrs map[string]bool) []*model.ServiceInstance
- func (c *Controller) Instances(hostname string, ports []string, tagsList model.TagsList) []*model.ServiceInstance
- func (c *Controller) Run(stop <-chan struct{})
- func (c *Controller) Services() []*model.Service
- type ControllerOptions
- type Handler
- type PodCache
- type Queue
- type Task
Constants ¶
const ( // NodeRegionLabel is the well-known label for kubernetes node region NodeRegionLabel = "failure-domain.beta.kubernetes.io/region" // NodeZoneLabel is the well-known label for kubernetes node zone NodeZoneLabel = "failure-domain.beta.kubernetes.io/zone" )
const ( // IngressClassAnnotation is the annotation on ingress resources for the class of controllers // responsible for it IngressClassAnnotation = "kubernetes.io/ingress.class" )
Variables ¶
This section is empty.
Functions ¶
func CreateInterface ¶
func CreateInterface(kubeconfig string) (kubernetes.Interface, error)
CreateInterface is a helper function to create Kubernetes interface
func KeyFunc ¶
KeyFunc is the internal API key function that returns "namespace"/"name" or "name" if "namespace" is empty
func MakeSecretRegistry ¶
func MakeSecretRegistry(client kubernetes.Interface) model.SecretRegistry
MakeSecretRegistry creates an adaptor for secrets on Kubernetes. The adaptor uses the following path for secrets: _name.namespace_ where name and namespace correpond to the secret name and namespace.
func ResolveConfig ¶
ResolveConfig checks whether to use the in-cluster or out-of-cluster config
Types ¶
type ChainHandler ¶
type ChainHandler struct {
// contains filtered or unexported fields
}
ChainHandler applies handlers in a sequence
func (*ChainHandler) Append ¶
func (ch *ChainHandler) Append(h Handler)
Append a handler as the last handler in the chain
type Controller ¶
type Controller struct {
// contains filtered or unexported fields
}
Controller is a collection of synchronized resource watchers Caches are thread-safe
func NewController ¶
func NewController(client kubernetes.Interface, mesh *proxyconfig.ProxyMeshConfig, options ControllerOptions) *Controller
NewController creates a new Kubernetes controller
func (*Controller) AppendInstanceHandler ¶
func (c *Controller) AppendInstanceHandler(f func(*model.ServiceInstance, model.Event)) error
AppendInstanceHandler implements a service catalog operation
func (*Controller) AppendServiceHandler ¶
AppendServiceHandler implements a service catalog operation
func (*Controller) GetIstioServiceAccounts ¶
func (c *Controller) GetIstioServiceAccounts(hostname string, ports []string) []string
GetIstioServiceAccounts returns the Istio service accounts running a serivce hostname. Each service account is encoded according to the SPIFFE VSID spec. For example, a service account named "bar" in namespace "foo" is encoded as "spiffe://cluster.local/ns/foo/sa/bar".
func (*Controller) GetService ¶
func (c *Controller) GetService(hostname string) (*model.Service, bool)
GetService implements a service catalog operation
func (*Controller) HasSynced ¶
func (c *Controller) HasSynced() bool
HasSynced returns true after the initial state synchronization
func (*Controller) HostInstances ¶
func (c *Controller) HostInstances(addrs map[string]bool) []*model.ServiceInstance
HostInstances implements a service catalog operation
func (*Controller) Instances ¶
func (c *Controller) Instances(hostname string, ports []string, tagsList model.TagsList) []*model.ServiceInstance
Instances implements a service catalog operation
func (*Controller) Run ¶
func (c *Controller) Run(stop <-chan struct{})
Run all controllers until a signal is received
func (*Controller) Services ¶
func (c *Controller) Services() []*model.Service
Services implements a service catalog operation
type ControllerOptions ¶
type ControllerOptions struct { // Namespace to restrict controller to (empty to disable restriction) Namespace string ResyncPeriod time.Duration DomainSuffix string }
ControllerOptions stores the configurable attributes of a Controller.
type PodCache ¶
type PodCache struct {
// contains filtered or unexported fields
}
PodCache is an eventually consistent pod cache