Documentation ¶
Index ¶
- Constants
- Variables
- func CanonicalResourceNameFromFriendlyName(friendlyName string) (string, error)
- func CreatedByAnnotationValue() string
- func GetControllerNs(objectMeta meta.ObjectMeta) string
- func GetOwnerLabels(objectMeta meta.ObjectMeta) map[string]string
- func ShortNameFromCanonicalResourceName(canonicalName string) string
- type KubernetesApi
- type KubernetesProxy
- type MockKubeApi
- type TLSIdentity
Constants ¶
const ( KubeapiSubsystemName = "kubernetes-api" KubeapiClientCheckDescription = "can initialize the client" KubeapiAccessCheckDescription = "can query the Kubernetes API" KubeapiVersionCheckDescription = "is running the minimum Kubernetes API version" )
const ( Deployments = "deployments" Namespaces = "namespaces" Pods = "pods" ReplicationControllers = "replicationcontrollers" Services = "services" All = "all" Authorities = "authorities" )
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-replication-controller" // ProxyReplicaSetLabel is injected into mesh-enabled apps, identifying the // ReplicaSet that this proxy belongs to. ProxyReplicaSetLabel = "linkerd.io/proxy-replica-set" // 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-daemon-set" // ProxyStatefulSetLabel is injected into mesh-enabled apps, identifying the // StatefulSet that this proxy belongs to. ProxyStatefulSetLabel = "linkerd.io/proxy-stateful-set" // 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" // 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 ResourceTypesToProxyLabels = map[string]string{ Deployments: "deployment", Namespaces: "namespace", Pods: "pod", ReplicationControllers: "replication_controller", Services: "service", Authorities: "authority", }
ResourceTypesToProxyLabels maps resource type names to keys understood by the proxy, specifically Destination and Prometheus labels.
var StatAllResourceTypes = []string{ Deployments, ReplicationControllers, Pods, Services, Authorities, }
resources to query in StatSummary when Resource.Type is "all"
Functions ¶
func CanonicalResourceNameFromFriendlyName ¶ added in v0.5.0
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 GetControllerNs ¶ added in v0.4.3
func GetControllerNs(objectMeta meta.ObjectMeta) string
func GetOwnerLabels ¶ added in v0.4.0
func GetOwnerLabels(objectMeta meta.ObjectMeta) map[string]string
GetOwnerLabels returns the set of prometheus owner labels that can be extracted from the proxy labels that have been added to an injected kubernetes resource
func ShortNameFromCanonicalResourceName ¶ added in v0.5.0
Return a the shortest name for a k8s canonical name. Essentially the reverse of CanonicalResourceNameFromFriendlyName
Types ¶
type KubernetesApi ¶
type KubernetesApi interface { UrlFor(namespace string, extraPathStartingWithSlash string) (*url.URL, error) NewClient() (*http.Client, error) healthcheck.StatusChecker }
func NewAPI ¶ added in v0.3.1
func NewAPI(configPath string) (KubernetesApi, error)
NewAPI returns a new KubernetesApi interface
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.
type MockKubeApi ¶
type MockKubeApi struct { SelfCheckResultsToReturn []*healthcheckPb.CheckResult UrlForNamespaceReceived string UrlExtraPathStartingWithSlashReceived string UrlForUrlToReturn *url.URL NewClientClientToReturn *http.Client ErrorToReturn error }
func (*MockKubeApi) SelfCheck ¶
func (m *MockKubeApi) SelfCheck() []*healthcheckPb.CheckResult
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