Documentation
¶
Index ¶
- Constants
- Variables
- func CanonicalResourceNameFromFriendlyName(friendlyName string) (string, error)
- func CreatedByAnnotationValue() string
- func GetPodLabels(ownerKind, ownerName string, pod *coreV1.Pod) map[string]string
- func IsMeshed(pod *coreV1.Pod, controllerNS string) bool
- func ShortNameFromCanonicalResourceName(canonicalName string) string
- type KubernetesAPI
- func (kubeAPI *KubernetesAPI) CheckProxyVersion(pods []v1.Pod, version string) error
- func (kubeAPI *KubernetesAPI) CheckVersion(versionInfo *version.Info) error
- func (kubeAPI *KubernetesAPI) GetPodsByControllerNamespace(client *http.Client, controllerNamespace, targetNamespace string) ([]v1.Pod, error)
- func (kubeAPI *KubernetesAPI) GetPodsByNamespace(client *http.Client, namespace string) ([]v1.Pod, error)
- func (kubeAPI *KubernetesAPI) GetVersionInfo(client *http.Client) (*version.Info, error)
- func (kubeAPI *KubernetesAPI) NamespaceExists(client *http.Client, namespace string) (bool, error)
- func (kubeAPI *KubernetesAPI) NewClient() (*http.Client, error)
- func (kubeAPI *KubernetesAPI) UrlFor(namespace string, extraPathStartingWithSlash string) (*url.URL, error)
- type KubernetesProxy
- type TLSIdentity
Constants ¶
const (
All = "all"
Authority = "authority"
DaemonSet = "daemonset"
Deployment = "deployment"
Namespace = "namespace"
Pod = "pod"
ReplicationController = "replicationcontroller"
ReplicaSet = "replicaset"
Service = "service"
StatefulSet = "statefulset"
)
const (
// ControllerComponentLabel identifies this object as a component of Linkerd's
// control plane (e.g. web, controller).
ControllerComponentLabel = "linkerd.io/control-plane-component"
// ControllerNSLabel is injected into mesh-enabled apps, identifying the
// namespace of the Linkerd control plane.
ControllerNSLabel = "linkerd.io/control-plane-ns"
// ProxyDeploymentLabel is injected into mesh-enabled apps, identifying the
// deployment that this proxy belongs to.
ProxyDeploymentLabel = "linkerd.io/proxy-deployment"
// ProxyReplicationControllerLabel is injected into mesh-enabled apps,
// identifying the ReplicationController that this proxy belongs to.
ProxyReplicationControllerLabel = "linkerd.io/proxy-replicationcontroller"
// ProxyReplicaSetLabel is injected into mesh-enabled apps, identifying the
// ReplicaSet that this proxy belongs to.
ProxyReplicaSetLabel = "linkerd.io/proxy-replicaset"
// ProxyJobLabel is injected into mesh-enabled apps, identifying the Job that
// this proxy belongs to.
ProxyJobLabel = "linkerd.io/proxy-job"
// ProxyDaemonSetLabel is injected into mesh-enabled apps, identifying the
// DaemonSet that this proxy belongs to.
ProxyDaemonSetLabel = "linkerd.io/proxy-daemonset"
// ProxyStatefulSetLabel is injected into mesh-enabled apps, identifying the
// StatefulSet that this proxy belongs to.
ProxyStatefulSetLabel = "linkerd.io/proxy-statefulset"
// CreatedByAnnotation indicates the source of the injected data plane
// (e.g. linkerd/cli v2.0.0).
CreatedByAnnotation = "linkerd.io/created-by"
// ProxyVersionAnnotation indicates the version of the injected data plane
// (e.g. v0.1.3).
ProxyVersionAnnotation = "linkerd.io/proxy-version"
// InitContainerName is the name assigned to the injected init container.
InitContainerName = "linkerd-init"
// ProxyContainerName is the name assigned to the injected proxy container.
ProxyContainerName = "linkerd-proxy"
// TLSTrustAnchorConfigMapName is the name of the ConfigMap that holds the
// trust anchors (trusted root certificates).
TLSTrustAnchorConfigMapName = "linkerd-ca-bundle"
// TLSTrustAnchorFileName is the name (key) within the trust anchor ConfigMap
// that contains the actual trust anchor bundle.
TLSTrustAnchorFileName = "trust-anchors.pem"
TLSCertFileName = "certificate.crt"
TLSPrivateKeyFileName = "private-key.p8"
)
Variables ¶
var StatAllResourceTypes = []string{
Deployment,
ReplicationController,
Pod,
Service,
Authority,
}
resources to query in StatSummary when Resource.Type is "all"
Functions ¶
func CanonicalResourceNameFromFriendlyName ¶ added in v0.5.0
func CanonicalResourceNameFromFriendlyName(friendlyName string) (string, error)
CanonicalResourceNameFromFriendlyName returns a canonical name from common shorthands used in command line tools. This works based on https://github.com/kubernetes/kubernetes/blob/63ffb1995b292be0a1e9ebde6216b83fc79dd988/pkg/kubectl/kubectl.go#L39 This also works for non-k8s resources, e.g. authorities
func CreatedByAnnotationValue ¶ added in v0.3.0
func CreatedByAnnotationValue() string
CreatedByAnnotationValue returns the value associated with CreatedByAnnotation.
func GetPodLabels ¶
func GetPodLabels(ownerKind, ownerName string, pod *coreV1.Pod) map[string]string
GetPodLabels returns the set of prometheus owner labels for a given pod
func IsMeshed ¶
func IsMeshed(pod *coreV1.Pod, controllerNS string) bool
func ShortNameFromCanonicalResourceName ¶ added in v0.5.0
func ShortNameFromCanonicalResourceName(canonicalName string) string
Return a the shortest name for a k8s canonical name. Essentially the reverse of CanonicalResourceNameFromFriendlyName
Types ¶
type KubernetesAPI ¶
type KubernetesAPI struct {
*rest.Config
}
func NewAPI ¶ added in v0.3.1
func NewAPI(configPath string) (*KubernetesAPI, error)
NewAPI validates a Kubernetes config and returns a client for accessing the configured cluster
func (*KubernetesAPI) CheckProxyVersion ¶
func (kubeAPI *KubernetesAPI) CheckProxyVersion(pods []v1.Pod, version string) error
func (*KubernetesAPI) CheckVersion ¶
func (kubeAPI *KubernetesAPI) CheckVersion(versionInfo *version.Info) error
func (*KubernetesAPI) GetPodsByControllerNamespace ¶
func (kubeAPI *KubernetesAPI) GetPodsByControllerNamespace(client *http.Client, controllerNamespace, targetNamespace string) ([]v1.Pod, error)
GetPodsByControllerNamespace returns all pods that have been injected to interface with a given controllerNamespace. If targetNamespace is provided, only pods from that namespace are returned.
func (*KubernetesAPI) GetPodsByNamespace ¶
func (kubeAPI *KubernetesAPI) GetPodsByNamespace(client *http.Client, namespace string) ([]v1.Pod, error)
GetPodsByNamespace returns all pods in a given namespace
func (*KubernetesAPI) GetVersionInfo ¶
func (kubeAPI *KubernetesAPI) GetVersionInfo(client *http.Client) (*version.Info, error)
func (*KubernetesAPI) NamespaceExists ¶
func (kubeAPI *KubernetesAPI) NamespaceExists(client *http.Client, namespace string) (bool, error)
func (*KubernetesAPI) NewClient ¶
func (kubeAPI *KubernetesAPI) NewClient() (*http.Client, error)
func (*KubernetesAPI) UrlFor ¶
func (kubeAPI *KubernetesAPI) UrlFor(namespace string, extraPathStartingWithSlash string) (*url.URL, error)
UrlFor generates a URL based on the Kubernetes config.
type KubernetesProxy ¶ added in v0.3.0
type KubernetesProxy struct {
// contains filtered or unexported fields
}
func NewProxy ¶ added in v0.3.1
func NewProxy(configPath string, proxyPort int) (*KubernetesProxy, error)
NewProxy returns a new KubernetesProxy object and starts listening on a network address.
func (*KubernetesProxy) Run ¶ added in v0.3.0
func (kp *KubernetesProxy) Run() error
Run starts proxying a connection to Kubernetes, and blocks until the process exits.
func (*KubernetesProxy) URLFor ¶ added in v0.3.0
func (kp *KubernetesProxy) URLFor(namespace string, extraPathStartingWithSlash string) (*url.URL, error)
URLFor generates a URL based on the configured KubernetesProxy.
type TLSIdentity ¶ added in v0.5.0
type TLSIdentity struct {
// Name is the name of the pod owner.
Name string
// Kind is the singular, lowercased Kubernetes resource type of the pod owner
// (deployment, daemonset, job, replicationcontroller, etc.).
Kind string
// Namespace is the pod's namespace. Kubernetes requires that pods and
// pod owners be in the same namespace.
Namespace string
// ControllerNamespace is the namespace of the controller for the pod.
ControllerNamespace string
}
TLSIdentity is the identity of a pod owner (Deployment, Pod, ReplicationController, etc.).
func (TLSIdentity) ToControllerIdentity ¶ added in v0.5.0
func (i TLSIdentity) ToControllerIdentity() TLSIdentity
func (TLSIdentity) ToDNSName ¶ added in v0.5.0
func (i TLSIdentity) ToDNSName() string
func (TLSIdentity) ToSecretName ¶ added in v0.5.0
func (i TLSIdentity) ToSecretName() string