Documentation ¶
Overview ¶
Package kube implements the shared and reusable library for Kubernetes
Index ¶
- Constants
- func ConvertProtocol(name string, proto v1.Protocol) model.Protocol
- func CreateInterface(kubeconfig string) (*rest.Config, kubernetes.Interface, error)
- func KeyFunc(name, namespace string) string
- func ResolveConfig(kubeconfig string) (string, error)
- type ChainHandler
- type Controller
- func (c *Controller) HasSynced() bool
- func (c *Controller) Instances() map[string][]model.Endpoint
- func (c *Controller) QueueSchedule(job func())
- func (c *Controller) RegisterEndpointHandler(f func())
- func (c *Controller) RegisterServiceHandler(f func())
- func (c *Controller) Run(stop <-chan struct{})
- func (c *Controller) Services() []*model.Service
- func (c *Controller) Workload(id string) (model.Instance, error)
- 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" // IstioNamespace used by default for Istio cluster-wide installation IstioNamespace = "istio-system" )
const ( // IngressClassAnnotation is the annotation on ingress resources for the class of controllers // responsible for it IngressClassAnnotation = "kubernetes.io/ingress.class" // KubeServiceAccountsOnVMAnnotation is to specify the K8s service accounts that are allowed to run // this service on the VMs KubeServiceAccountsOnVMAnnotation = "alpha.istio.io/kubernetes-serviceaccounts" // CanonicalServiceAccountsOnVMAnnotation is to specify the non-Kubernetes service accounts that // are allowed to run this service on the VMs CanonicalServiceAccountsOnVMAnnotation = "alpha.istio.io/canonical-serviceaccounts" // IstioURIPrefix is the URI prefix in the Istio service account scheme IstioURIPrefix = "spiffe" // PortAuthenticationAnnotationKeyPrefix is the annotation key prefix that used to define // authentication policy. PortAuthenticationAnnotationKeyPrefix = "auth.istio.io" )
Variables ¶
This section is empty.
Functions ¶
func ConvertProtocol ¶
ConvertProtocol from k8s protocol and port name
func CreateInterface ¶
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 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, options ControllerOptions) *Controller
NewController creates a new Kubernetes controller
func (*Controller) HasSynced ¶
func (c *Controller) HasSynced() bool
HasSynced returns true after the initial state synchronization
func (*Controller) Instances ¶
func (c *Controller) Instances() map[string][]model.Endpoint
Instances ...
func (*Controller) RegisterEndpointHandler ¶
func (c *Controller) RegisterEndpointHandler(f func())
RegisterEndpointHandler ...
func (*Controller) RegisterServiceHandler ¶
func (c *Controller) RegisterServiceHandler(f func())
RegisterServiceHandler ...
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 the controller watches. If set to meta_v1.NamespaceAll (""), controller watches all namespaces WatchedNamespace 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