Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ExtractNamespace

func ExtractNamespace(np NamespaceNameGetter) string

    ExtractNamespace extracts the namespace of ObjectMeta. For cluster scoped objects the Namespace field is empty and this function assumes that the object is returned from kubernetes itself implying that the namespace is empty only and only when the Object is cluster scoped and thus returns empty namespace for such objects.

    func ExtractNamespaceOrDefault

    func ExtractNamespaceOrDefault(np NamespaceNameGetter) string

      ExtractNamespaceOrDefault extracts the namespace of ObjectMeta, it returns default namespace if the namespace field in the ObjectMeta is empty.

      func GetLatestPodReadiness

      func GetLatestPodReadiness(podStatus slim_corev1.PodStatus) slim_corev1.ConditionStatus

        GetLatestPodReadiness returns the lastest podReady condition on a given pod.

        func GetObjNamespaceName

        func GetObjNamespaceName(obj NamespaceNameGetter) string

          GetObjNamespaceName returns the object's namespace and name. If the object is cluster scoped then the function returns only the object name without any namespace prefix.

          func GetServiceListOptionsModifier

          func GetServiceListOptionsModifier(cfg ServiceConfiguration) (func(options *v1meta.ListOptions), error)

            GetServiceListOptionsModifier returns the options modifier for service object list. This methods returns a ListOptions modifier which adds a label selector to only select services that are in context of Cilium. Like kube-proxy Cilium does not select services containing k8s headless service label. We honor service.kubernetes.io/service-proxy-name label in the service object and only handle services that match our service proxy name. If the service proxy name for Cilium is an empty string, we assume that Cilium is the default service handler in which case we select all services that don't have the above mentioned label.

            func IsPodRunning

            func IsPodRunning(status slim_corev1.PodStatus) bool

              IsPodRunning returns true if the pod is considered to be in running state. We consider a Running pod a pod that does not report a Failed nor a Succeeded pod Phase.

              func ValidIPs

              func ValidIPs(podStatus slim_corev1.PodStatus) []string

                ValidIPs return a sorted slice of unique IP addresses retrieved from the given PodStatus. Returns an error when no IPs are found.

                Types

                type NamespaceNameGetter

                type NamespaceNameGetter interface {
                	GetNamespace() string
                	GetName() string
                }

                type ServiceConfiguration

                type ServiceConfiguration interface {
                	// K8sServiceProxyName must return the value of the proxy name
                	// annotation. If set, only services with this label will be handled.
                	K8sServiceProxyName() string
                }

                  ServiceConfiguration is the required configuration for GetServiceListOptionsModifier

                  Source Files