Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Docs for 0.6.0 Release #756

Merged
merged 1 commit into from
Jun 29, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions docs/src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,15 @@
[FAQ](./faq.md)

# Quickstart Guides

- [Netcat](./deployment/quickstarts/netcat.md)
- [Agones + Xonotic (Sidecar)](./deployment/quickstarts/agones-xonotic-sidecar.md)
- [Agones + Xonotic (xDS)](./deployment/quickstarts/agones-xonotic-xds.md)

# Services

- [Proxy](./services/proxy.md)
- [Control Message Protocol](./services/proxy/qcmp.md)
- [Configuration File](./services/proxy/configuration.md)
- [Filters](./services/proxy/filters.md)
- [Capture](./services/proxy/filters/capture.md)
- [Compress](./services/proxy/filters/compress.md)
Expand All @@ -24,6 +26,7 @@
- [Timestamp](./services/proxy/filters/timestamp.md)
- [Token Router](./services/proxy/filters/token_router.md)
- [Writing Custom Filters](./services/proxy/filters/writing_custom_filters.md)
- [Control Message Protocol](./services/proxy/qcmp.md)
- [Metrics](./services/proxy/metrics.md)

---
Expand All @@ -41,9 +44,10 @@
- [Providers]()

# SDKs

- [Unreal Engine](./sdks/unreal-engine.md)

# Deployment

- [Administration](./deployment/admin.md)
- [Architecture Examples](./deployment/examples.md)
- [Configuration](./deployment/configuration.md)
23 changes: 12 additions & 11 deletions docs/src/services/proxy.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Proxy

| services | ports | Protocol |
|----------|-------|-----------|
| proxy | 7777 | UDP (IPv4) |
| services | ports | Protocol |
|----------|-------|------------|
| proxy | 7777 | UDP (IPv4) |

"Proxy" is the primary Quilkin service, which acts as a non-transparent UDP
proxy.
Expand All @@ -16,7 +16,7 @@ $ quilkin proxy --help

## Endpoints

An Endpoint represents an address that Quilkin forwards packets to that it has recieved from the
An Endpoint represents an address that Quilkin forwards packets to that it has received from the
source port.

It is represented by an IP address and port. An Endpoint can optionally be associated with an arbitrary set of
Expand All @@ -25,20 +25,20 @@ It is represented by an IP address and port. An Endpoint can optionally be assoc
## Proxy Filters

Filters are the way for a Quilkin proxy to intercept UDP packet traffic from the
source and [Endpoints][Endpoint] in either direction, and be able to inpsect,
source and [Endpoints][Endpoint] in either direction, and be able to inspect,
manipulate, and route the packets as desired.

See [Filters][filters-doc] for a deeper dive into Filters, as well as the list of build in Filters that come with
See [Filters] for a deeper dive into Filters, as well as the list of build in Filters that come with
Quilkin.

## Endpoint Metadata

Enpoint metadata is an arbitrary set of key value pairs that are associated with an Endpoint.
Endpoint metadata is an arbitrary set of key value pairs that are associated with an Endpoint.

These are visible to Filters when processing packets and can be used to provide more context about endpoints (e.g
whether or not to route a packet to an endpoint). Keys must be of type string otherwise the configuration is rejected.

Metadata associated with an endpoint contain arbitrary key value pairs which [Filters][filters-doc] can consult when processing packets (e.g they can contain information that determine whether or not to route a particular packet to an endpoint).
Metadata associated with an endpoint contain arbitrary key value pairs which [Filters] can consult when processing packets (e.g they can contain information that determine whether or not to route a particular packet to an endpoint).

### Specialist Endpoint Metadata

Expand Down Expand Up @@ -73,7 +73,7 @@ Quilkin uses the "Session" concept to track traffic flowing through the proxy be
Session serves the same purpose, and can be thought of as a lightweight version of a `TCP` session in that, while a
TCP session requires a protocol to establish and teardown:

- A Quilkin session is automatically created upon receiving the first packet from a client via the [Local Port], to be
- A Quilkin session is automatically created upon receiving the first packet from a client via the [Local Port] to be
sent to an upstream [Endpoint].
- The session is automatically deleted after a period of inactivity (where no packet was sent between either
party) - currently 60 seconds.
Expand All @@ -83,11 +83,12 @@ downstream endpoint which initiated the communication with Quilkin and the serve
that Quilkin proxies traffic to.

Sessions are established *after* the filter chain completes. The destination Endpoint of a packet is determined by
the [filter chain][filter-doc], so a Session can only be created after filter chain completion. For example, if the
the [filter chain][Filters], so a Session can only be created after filter chain completion. For example, if the
filter chain drops all packets, then no session will ever be created.

[Endpoint]: #endpoints
[file-configuration]: ../deployment/configuration.md
[file-configuration]: ./proxy/configuration.md
[xds-endpoint-metadata]: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/endpoint/v3/endpoint_components.proto#envoy-v3-api-field-config-endpoint-v3-lbendpoint-metadata
[dynamic-configuration-doc]: ./xds.md
[TokenRouter]: ./proxy/filters/token_router.md
[Filters]: ./proxy/filters.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
# Configuration
# Configuration File

The following is the schema and reference for a Quilkin configuration
While much of Quilkin's proxy configuration can be configured via its
[command line interface](../proxy.md), if you have a larger or more complex configuration
it might be useful to use a configuration file instead.

The following is the schema and reference for Quilkin's proxy configuration
file. See the [examples] folder for example configuration files.

By default Quilkin will look for a configuration file named `quilkin.yaml` in
By default, Quilkin will look for a configuration file named `quilkin.yaml` in
its current running directory first, then if not present, in
`/etc/quilkin/quilkin.yaml` on UNIX systems. This can be overridden with the
`-c/--config` command-line argument, or the `QUILKIN_FILENAME`
Expand All @@ -12,20 +16,21 @@ environment variable.
## Static Configuration

Example of a full configuration for `quilkin proxy` that utlisies a static
endpoint configuration:
endpoint configuration to specify two endpoints with `token` metadata attached to each:

```yaml
{{#include ../../../examples/proxy.yaml:17:100}}
{{#include ../../../../examples/proxy.yaml:17:100}}
```

## Dynamic Configuration
This is a great use of a static configuration file, as we only get a singular `--to` endpoint address via the
command line arguments.

Example of a full configuration for `quilkin proxy` that utlisies a dynamic
Endpoint configuration through an [xDS management endpoint](../services/xds.md):
We can also configure [Filters](./filters.md) via the configuration file. See that section for documentation.

```yaml
{{#include ../../../examples/control-plane.yaml:17:100}}
```
## Dynamic Configuration

If you need to dynamically change either Filters and/or Endpoints at runtime, see the [Control Plane](../xds.md)
documentation on the configuration API surface, and built in dynamic management providers.

## Json Schema

Expand Down
11 changes: 5 additions & 6 deletions docs/src/services/xds.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# xDS Control Plane

| services | ports | Protocol |
|----------|-------|-----------|
| xDS | 7800 | gRPC(IPv4) |
| services | ports | Protocol |
|----------|-------|------------|
| xDS | 7800 | gRPC(IPv4) |

For multi-cluster integration, Quilkin provides a `manage` service, that can be
used with a number of configuration discovery providers to provide cluster
configuration multiple [`proxy`s](./proxy.md). With each provider automationing the
configuration multiple [`proxy`s](./proxy.md). With each provider automating the
complexity of a full xDS management control plane via integrations with popular
projects and common architecture patterns.

Expand Down Expand Up @@ -51,8 +51,7 @@ Since the range of resources configurable by the xDS API extends that of Quilkin
## Connecting to an xDS management server

Connecting a Quilkin proxy to an xDS management server can be implemented via providing one or more URLs to
the `management_servers` [command line](../../api/quilkin/struct.Proxy.html#structfield.management_server) or
[file configuration](../deployment/configuration.md#dynamic-configuration).
the `management_servers` [command line](../../api/quilkin/struct.Proxy.html#structfield.management_server).


[xDS]: https://www.envoyproxy.io/docs/envoy/latest/api-docs/xds_protocol#xds-rest-and-grpc-protocol
Expand Down
11 changes: 7 additions & 4 deletions docs/src/services/xds/providers/agones.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,12 @@ annotations:

## Filter Configuration

The Agones provider watches for a singular [`ConfigMap`](https://kubernetes.io/docs/concepts/configuration/configmap/)
that has the label of `quilkin.dev/configmap: "true"`, and any changes that happen to it, and use its contents to
send Filter configuration to any connected Quilkin proxies.
The Agones provider watches for a singular [`ConfigMap`](https://kubernetes.io/docs/concepts/configuration/configmap/)
that has the label of `quilkin.dev/configmap: "true"`, and any changes that happen to it, and use its contents to
send [Filter] configuration to any connected Quilkin proxies.

The `ConfigMap` contents should be a valid Quilkin [file configuration](../../../deployment/configuration.md), but with no Endpoint data.
The `ConfigMap` contents should be a valid Quilkin [file configuration][configuration], but with no
Endpoint data.

For example:

Expand Down Expand Up @@ -72,3 +73,5 @@ and [RBAC] Rules, there is an [Agones, xDS and Xonotic example][example].
[Services]: https://kubernetes.io/docs/concepts/services-networking/service/
[RBAC]: https://kubernetes.io/docs/reference/access-authn-authz/rbac/
[example]: https://github.com/googleforgames/quilkin/tree/{{GITHUB_REF_NAME}}/examples/agones-xonotic-xds
[Filter]: ../../../services/proxy/filters.md
[configuration]: ../../../services/proxy/configuration.md
4 changes: 2 additions & 2 deletions docs/src/services/xds/providers/filesystem.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ default port is taken up by an existing Quilkin proxy.
After running this command, any proxy that connects to port 18000 will receive updates as configured in `config.yaml`
file.

You can find the configuration file schema in [Configuration][configuration].
You can find the configuration file schema in [Configuration File][configuration].

Example:

Expand All @@ -38,4 +38,4 @@ clusters:
# assert_eq!(config.filters.load().len(), 1);
```

[configuration]: ../../../deployment/configuration.md
[configuration]: ../../../services/proxy/configuration.md
67 changes: 0 additions & 67 deletions docs/src/xds/metrics.md

This file was deleted.

75 changes: 0 additions & 75 deletions docs/src/xds/providers/agones.md

This file was deleted.

Loading