...

Text file src/github.com/linkerd/linkerd2-proxy-api/README.md

Documentation: github.com/linkerd/linkerd2-proxy-api

     1# Linkerd Proxy API
     2
     3This repo contains the gRPC bindings that the [Linkerd Proxy][proxy-gh] uses to
     4communicate with the [Linkerd control plane][cp-gh].
     5
     6## APIs
     7
     8Generally, the proxy's APIs are Kubernetes-agnostic and expose abstractions that
     9allow proxies to discover runtime configuration.
    10
    11### `destination`
    12
    13The destination API is used by proxies to discover information about outbound
    14traffic. This configuration includes:
    15
    16* the protocol of the destination, if known
    17* whether the destination is a load balanced service or individual endpoint
    18* labels to describe the destination in telemetry
    19* the mTLS identity of destination pods
    20
    21### `identity`
    22
    23The identity API is used by proxies to obtain TLS certificates used for
    24authenticed pod-to-pod communication.
    25
    26### `inbound`
    27
    28The inbound API is used by the proxy to discover inbound serving
    29policies--especially per-port authorization requirements.
    30
    31### `tap`
    32
    33The proxy can be configured to expose a gRPC server that allows the control
    34plane to query metadata about live requests transiting the proxy.
    35
    36## Languages
    37
    38### Protobuf
    39
    40The [`./proto`](./proto) directory includes protobuf definitions.
    41
    42### Go
    43
    44The [`./go`](./go) directory contains statically generated Go bindings, which are
    45generally used by [controller implementations][cp-gh].
    46
    47### Rust
    48
    49[![Crates.io][rs-crate-badge]][rs-crate-url]
    50[![Documentation][rs-docs-badge]][rs-docs-url]
    51[![License][lic-badge]](LICENSE)
    52
    53This repository publishes the [**linkerd2-proxy-api** crate][rs-crate-url],
    54which uses [`tonic`][tonic] to expose client and server implementations for each
    55API. Each API may be enabled independently with cargo feature flags.
    56
    57The [proxy][proxy-gh] generally uses API clients. Some server implementations
    58are also used by the [control plane][cp-gh].
    59
    60## Issues
    61
    62Issues may be opened in the [**linkerd2** repository][new-issue].
    63
    64## License
    65
    66    Copyright 2022 The Linkerd Authors
    67
    68    Licensed under the Apache License, Version 2.0 (the "License");
    69    you may not use this file except in compliance with the License.
    70    You may obtain a copy of the License at
    71
    72        http://www.apache.org/licenses/LICENSE-2.0
    73
    74    Unless required by applicable law or agreed to in writing, software
    75    distributed under the License is distributed on an "AS IS" BASIS,
    76    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    77    See the License for the specific language governing permissions and
    78    limitations under the License.
    79
    80<!-- refs -->
    81[cp-gh]: https://github.com/linkerd/linkerd2
    82[new-issue]: https://github.com/linkerd/linkerd2/issues/new/choose
    83[proxy-gh]: https://github.com/linkerd/linkerd2-proxy
    84[tonic]: https://github.com/hyperium/tonic
    85[rs-crate-badge]: https://img.shields.io/crates/v/linkerd2-proxy-api.svg
    86[rs-crate-url]: https://crates.io/crates/linkerd2-proxy-api
    87[rs-docs-badge]: https://docs.rs/linkerd2-proxy-api/badge.svg
    88[rs-docs-url]: https://docs.rs/linkerd2-proxy-api
    89[lic-badge]: https://img.shields.io/github/license/linkerd/linkerd2-proxy-api.svg

View as plain text