diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 4dbe8f1746..85bd327aea 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,9 +1,9 @@ **What type of PR is this?** diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 632006bc8d..1df152ea07 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -7,9 +7,9 @@ If you have a feature you'd like to request that doesn't have an existing issue, Participation in this project comes under the [Contributor Covenant Code of Conduct](code-of-conduct.md) -[unassigned "help wanted" issues.]: https://github.com/googleforgames/quilkin/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22help%20wanted%22%20no%3Aassignee -[github discussions]: https://github.com/googleforgames/quilkin/discussions -["Feature Request"]: https://github.com/googleforgames/quilkin/issues/new?template=feature_request.md +[unassigned "help wanted" issues.]: https://github.com/EmbarkStudios/quilkin/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22help%20wanted%22%20no%3Aassignee +[github discussions]: https://github.com/EmbarkStudios/quilkin/discussions +["Feature Request"]: https://github.com/EmbarkStudios/quilkin/issues/new?template=feature_request.md ## Repository Layout @@ -45,7 +45,7 @@ See our [Quilkin Development and Building Guide](./build/README.md) for developi - We follow the [GitHub Pull Request Model](https://help.github.com/articles/about-pull-requests/) for all contributions. - For large bodies of work, we recommend creating an issue and labelling it - "[kind/design](https://github.com/googleforgames/quilkin/issues?q=is%3Aissue+is%3Aopen+label%3Akind%2Fdesign)" + "[kind/design](https://github.com/EmbarkStudios/quilkin/issues?q=is%3Aissue+is%3Aopen+label%3Akind%2Fdesign)" outlining the feature that you wish to build, and describing how it will be implemented. This gives a chance for review to happen early, and ensures no wasted effort occurs. - For new features, documentation *must* be included. Documentation can currently be found under diff --git a/Cargo.toml b/Cargo.toml index 628263c924..48d63f296d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -24,8 +24,8 @@ authors = [ ] license.workspace = true description = "Quilkin is a non-transparent UDP proxy specifically designed for use with large scale multiplayer dedicated game server deployments, to ensure security, access control, telemetry data, metrics and more." -homepage = "https://github.com/googleforgames/quilkin" -repository = "https://github.com/googleforgames/quilkin" +homepage = "https://github.com/EmbarkStudios/quilkin" +repository = "https://github.com/EmbarkStudios/quilkin" readme = "README.md" keywords = [ "proxy", diff --git a/build/README.md b/build/README.md index 1159e7cfb2..f21d19132e 100644 --- a/build/README.md +++ b/build/README.md @@ -7,12 +7,12 @@ We welcome development from the community on Quilkin! We use several submodules, so make sure you have them downloaded and updated. ```shell script -git clone https://github.com/googleforgames/quilkin.git +git clone https://github.com/EmbarkStudios/quilkin.git cd quilkin git submodule update --init --recursive ``` -You will likely want to replace `https://github.com/googleforgames/quilkin.git` with your own fork of the repository +You will likely want to replace `https://github.com/EmbarkStudios/quilkin.git` with your own fork of the repository for your development. ### Developing with Rust tooling diff --git a/build/templates/github-release.md b/build/templates/github-release.md index 1bad233065..d65bfdd2ef 100644 --- a/build/templates/github-release.md +++ b/build/templates/github-release.md @@ -4,14 +4,14 @@ This is the {version} release of Quilkin. { write description of release } -Check the [documentation](https://github.com/googleforgames/quilkin#documentation) for details on features, installation and +Check the [documentation](https://github.com/EmbarkStudios/quilkin#documentation) for details on features, installation and usage. **Implemented enhancements:** { insert enhancements from the changelog and/or security and breaking changes } -See [CHANGELOG](https://github.com/googleforgames/quilkin/blob/release-{version}/CHANGELOG.md) for more details on changes. +See [CHANGELOG](https://github.com/EmbarkStudios/quilkin/blob/release-{version}/CHANGELOG.md) for more details on changes. Images available with this release: diff --git a/build/templates/release-issue.md b/build/templates/release-issue.md index a4d8b3d976..f3951598bc 100644 --- a/build/templates/release-issue.md +++ b/build/templates/release-issue.md @@ -3,8 +3,8 @@ ## Prerequisites - [ ] Have at least `Editor` level access to `quilkin` Google Cloud project. -- [ ] Local gcloud configuration is pointing at the `quilkin` Google Cloud project. -- [ ] Local git remote `upstream` points at `git@github.com:googleforgames/quilkin.git`. +- [ ] Local gcloud configuration is pointing at the `quilkin` Google Cloud project. +- [ ] Local git remote `upstream` points at `git@github.com:EmbarkStudios/quilkin.git`. ## Steps @@ -13,38 +13,38 @@ - [ ] Run `git remote update && git checkout main && git reset --hard upstream/main` to ensure your code is in line with upstream. - [ ] Update Cargo version for release - - [ ] Edit the `version` field in `./Cargo.toml` and remove the `-dev` suffix. - - [ ] Edit the `quilkin-macros` dependency in `./Cargo.toml` and remove the `-dev` suffix. - - [ ] Edit the `quilkin-proto` dependency in `./Cargo.toml` and remove the `-dev` suffix. - - [ ] Edit the `quilkin-xds` dependency in `./Cargo.toml` and remove the `-dev` suffix. - - [ ] Edit the `version` field in `./crates/macros/Cargo.toml` and remove the `-dev` suffix. - - [ ] Edit the `version` field in `./crates/quilkin-proto/Cargo.toml` and remove the `-dev` suffix. - - [ ] Edit the `version` field in `./crates/xds/Cargo.toml` and remove the `-dev` suffix. + - [ ] Edit the `version` field in `./Cargo.toml` and remove the `-dev` suffix. + - [ ] Edit the `quilkin-macros` dependency in `./Cargo.toml` and remove the `-dev` suffix. + - [ ] Edit the `quilkin-proto` dependency in `./Cargo.toml` and remove the `-dev` suffix. + - [ ] Edit the `quilkin-xds` dependency in `./Cargo.toml` and remove the `-dev` suffix. + - [ ] Edit the `version` field in `./crates/macros/Cargo.toml` and remove the `-dev` suffix. + - [ ] Edit the `version` field in `./crates/quilkin-proto/Cargo.toml` and remove the `-dev` suffix. + - [ ] Edit the `version` field in `./crates/xds/Cargo.toml` and remove the `-dev` suffix. - [ ] cd to `./build/release` and run `make` to submit the cloud build - [ ] Download all the artifacts from the cloud build. -- [ ] Review `license.html` to ensure that there aren't any new MPL, or CDDL dependencies from the last +- [ ] Review `license.html` to ensure that there aren't any new MPL, or CDDL dependencies from the last release. If there are: - - [ ] Add the dependencies to [archive_dependencies.sh](https://github.com/googleforgames/quilkin/blob/main/build/release/archive_dependencies.sh) + - [ ] Add the dependencies to [archive_dependencies.sh](https://github.com/EmbarkStudios/quilkin/blob/main/build/release/archive_dependencies.sh) so that the source is archived in the container image. - - [ ] Reset checklist back to "run `make` to submit the cloud build", and start from there again. + - [ ] Reset checklist back to "run `make` to submit the cloud build", and start from there again. - [ ] Run `cd crates/macros && cargo publish --dry-run --allow-dirty` and ensure there are no issues. - [ ] Run `cd crates/quilkin-protos && cargo publish --dry-run --allow-dirty` and ensure there are no issues. - [ ] Run `cd crates/xds && cargo publish --dry-run --allow-dirty` and ensure there are no issues. - [ ] Run `cargo publish --dry-run --allow-dirty` and ensure there are no issues. - [ ] Run `cargo clippy` in the root directory, and ensure there are no issues. -- [ ] Add a release item to README.md "Documentation" > "Releases" list with related links in reverse chronological +- [ ] Add a release item to README.md "Documentation" > "Releases" list with related links in reverse chronological order. -- [ ] Review any `data-proofer-ignore` attributes from links in the documentation in `./docs`, and remove any no +- [ ] Review any `data-proofer-ignore` attributes from links in the documentation in `./docs`, and remove any no longer needed. - [ ] Update all yaml files in to `./examples` to the next release version. -- [ ] Create a draft [Github release](https://github.com/googleforgames/quilkin/releases/new) - - [ ] Populate the tag with `v{version}` - - [ ] Click `Generate release notes` to generate the change log for this release. - - [ ] Copy the release notes from the draft release and paste it at the top of CHANGELOG.md. - - [ ] Using the - [Github release template](https://github.com/googleforgames/quilkin/blob/main/build/templates/github-release.md) +- [ ] Create a draft [Github release](https://github.com/EmbarkStudios/quilkin/releases/new) + - [ ] Populate the tag with `v{version}` + - [ ] Click `Generate release notes` to generate the change log for this release. + - [ ] Copy the release notes from the draft release and paste it at the top of CHANGELOG.md. + - [ ] Using the + [Github release template](https://github.com/EmbarkStudios/quilkin/blob/main/build/templates/github-release.md) update the generated release notes with a description, and relevant changelog sections. - - [ ] Attach all the cloud build artifacts to the draft GitHub release. + - [ ] Attach all the cloud build artifacts to the draft GitHub release. - [ ] Submit these changes as a PR, and merge with approval. - [ ] Run `git remote update && git checkout main && git reset --hard upstream/main` to ensure your code is in line with upstream. @@ -54,22 +54,22 @@ - [ ] Submit the release. - [ ] Post announcemnts - [ ] [mailing list](https://groups.google.com/g/quilkin-discuss). - - [ ] [Discord #announcement](https://discord.com/channels/773975408265134100/879794098721140786) + - [ ] [Discord #announcement](https://discord.com/channels/773975408265134100/879794098721140786) - [ ] [Twitter account](https://twitter.com/quilkindev). - [ ] Update Cargo version for development - - [ ] Edit `Cargo.toml` and increment the [minor version](https://semver.org/) and apply the `-dev` suffix to the - `version`. - - [ ] Edit the `quilkin-macros` dependency in `./Cargo.toml` and increment the [minor version](https://semver.org/) - and apply the `-dev` suffix to the `version`. - - [ ] Edit the `quilkin-protos` dependency in `./Cargo.toml` and increment the [minor version](https://semver.org/) - and apply the `-dev` suffix to the `version`. - - [ ] Edit the `quilkin-xds` dependency in `./Cargo.toml` and increment the [minor version](https://semver.org/) + - [ ] Edit `Cargo.toml` and increment the [minor version](https://semver.org/) and apply the `-dev` suffix to the + `version`. + - [ ] Edit the `quilkin-macros` dependency in `./Cargo.toml` and increment the [minor version](https://semver.org/) and apply the `-dev` suffix to the `version`. - - [ ] Edit the `version` field in `./crates/macros/Cargo.toml`and increment the [minor version](https://semver.org/) - and apply the `-dev` suffix to the `version`. - - [ ] Edit the `version` field in `./crates/quilkin-protos/Cargo.toml`and increment the [minor version](https://semver.org/) + - [ ] Edit the `quilkin-protos` dependency in `./Cargo.toml` and increment the [minor version](https://semver.org/) and apply the `-dev` suffix to the `version`. - - [ ] Edit the `version` field in `./crates/xds/Cargo.toml`and increment the [minor version](https://semver.org/) + - [ ] Edit the `quilkin-xds` dependency in `./Cargo.toml` and increment the [minor version](https://semver.org/) + and apply the `-dev` suffix to the `version`. + - [ ] Edit the `version` field in `./crates/macros/Cargo.toml`and increment the [minor version](https://semver.org/) + and apply the `-dev` suffix to the `version`. + - [ ] Edit the `version` field in `./crates/quilkin-protos/Cargo.toml`and increment the [minor version](https://semver.org/) + and apply the `-dev` suffix to the `version`. +- [ ] Edit the `version` field in `./crates/xds/Cargo.toml`and increment the [minor version](https://semver.org/) and apply the `-dev` suffix to the `version`. - [ ] Submit this change as a PR, and merge with approval. diff --git a/crates/macros/Cargo.toml b/crates/macros/Cargo.toml index d639a5906a..fe8a64e949 100644 --- a/crates/macros/Cargo.toml +++ b/crates/macros/Cargo.toml @@ -20,8 +20,8 @@ version = "0.10.0-dev" authors = ["Erin Power "] license.workspace = true description = "Quilkin is a non-transparent UDP proxy specifically designed for use with large scale multiplayer dedicated game server deployments, to ensure security, access control, telemetry data, metrics and more." -homepage = "https://github.com/googleforgames/quilkin" -repository = "https://github.com/googleforgames/quilkin" +homepage = "https://github.com/EmbarkStudios/quilkin" +repository = "https://github.com/EmbarkStudios/quilkin" readme = "README.md" keywords = ["proxy", "game-server", "game-development", "networking", "multiplayer"] categories = ["game-development", "network-programming"] diff --git a/crates/macros/README.md b/crates/macros/README.md index cefa90affe..bd6ca80fe4 100644 --- a/crates/macros/README.md +++ b/crates/macros/README.md @@ -1,6 +1,6 @@ # Quilkin Macros -Macros for https://github.com/googleforgames/quilkin. +Macros for https://github.com/EmbarkStudios/quilkin. ## Licence diff --git a/crates/quilkin-proto/Cargo.toml b/crates/quilkin-proto/Cargo.toml index 2bb76e023b..4c746f1865 100644 --- a/crates/quilkin-proto/Cargo.toml +++ b/crates/quilkin-proto/Cargo.toml @@ -18,8 +18,8 @@ name = "quilkin-proto" version = "0.10.0-dev" description = "Quilkin is a non-transparent UDP proxy specifically designed for use with large scale multiplayer dedicated game server deployments, to ensure security, access control, telemetry data, metrics and more." -homepage = "https://github.com/googleforgames/quilkin" -repository = "https://github.com/googleforgames/quilkin" +homepage = "https://github.com/EmbarkStudios/quilkin" +repository = "https://github.com/EmbarkStudios/quilkin" edition.workspace = true license.workspace = true diff --git a/crates/test/tests/token_router.rs b/crates/test/tests/token_router.rs index ce99e6e5aa..1e45086fce 100644 --- a/crates/test/tests/token_router.rs +++ b/crates/test/tests/token_router.rs @@ -18,7 +18,7 @@ use qt::xdp_util; use quilkin::filters; -// This test covers the scenario in https://github.com/googleforgames/quilkin/issues/988 +// This test covers the scenario in https://github.com/EmbarkStudios/quilkin/issues/988 // to make sure there are no issues with overlapping streams between clients. #[tokio::test] async fn multiple_clients() { diff --git a/crates/xds/Cargo.toml b/crates/xds/Cargo.toml index 966d97ce29..13e1932596 100644 --- a/crates/xds/Cargo.toml +++ b/crates/xds/Cargo.toml @@ -2,8 +2,8 @@ name = "quilkin-xds" version = "0.10.0-dev" description = "Quilkin is a non-transparent UDP proxy specifically designed for use with large scale multiplayer dedicated game server deployments, to ensure security, access control, telemetry data, metrics and more." -homepage = "https://github.com/googleforgames/quilkin" -repository = "https://github.com/googleforgames/quilkin" +homepage = "https://github.com/EmbarkStudios/quilkin" +repository = "https://github.com/EmbarkStudios/quilkin" edition.workspace = true license.workspace = true diff --git a/docs/src/deployment/examples.md b/docs/src/deployment/examples.md index 52182ee3c0..0fb15b2381 100644 --- a/docs/src/deployment/examples.md +++ b/docs/src/deployment/examples.md @@ -6,10 +6,10 @@ each providing different capabilities and complexity tradeoffs. Below captures several of the most useful and prevalent architectural patterns to give you inspiration on how you can use Quilkin in your multiplayer game networking architecture. -These [examples](https://github.com/googleforgames/quilkin/tree/{{GITHUB_REF_NAME}}/examples) +These [examples](https://github.com/EmbarkStudios/quilkin/tree/{{GITHUB_REF_NAME}}/examples) as well many others are available on Github repository. -## [Server Proxy as a Sidecar](https://github.com/googleforgames/quilkin/tree/{{GITHUB_REF_NAME}}/examples/agones-xonotic-sidecar) +## [Server Proxy as a Sidecar](https://github.com/EmbarkStudios/quilkin/tree/{{GITHUB_REF_NAME}}/examples/agones-xonotic-sidecar) ```text | @@ -85,7 +85,7 @@ advantage of Client Proxy functionality. * The Game Client will need to communicate to the Client Proxy what IP it should connect to when the Client is match-made with a Game Server. -## [Client Proxy to Separate Server Proxies Pools](https://github.com/googleforgames/quilkin/tree/{{GITHUB_REF_NAME}}/examples/agones-xonotic-xds) +## [Client Proxy to Separate Server Proxies Pools](https://github.com/EmbarkStudios/quilkin/tree/{{GITHUB_REF_NAME}}/examples/agones-xonotic-xds) ```text | | diff --git a/docs/src/deployment/quickstarts/agones-xonotic-relay.md b/docs/src/deployment/quickstarts/agones-xonotic-relay.md index c37d7135d6..bc57323bfb 100644 --- a/docs/src/deployment/quickstarts/agones-xonotic-relay.md +++ b/docs/src/deployment/quickstarts/agones-xonotic-relay.md @@ -1,7 +1,7 @@ # Quickstart: Quilkin with Agones and Xonotic (Relay) {{#include _agones.md}} -* A local copy of the [Quilkin Binary](https://github.com/googleforgames/quilkin/releases). +* A local copy of the [Quilkin Binary](https://github.com/EmbarkStudios/quilkin/releases). ## 1. Overview @@ -27,7 +27,7 @@ To install Quilkin as an Agones integrated relay control plane, we can create a Run the following: ```shell -kubectl apply -f https://raw.githubusercontent.com/googleforgames/quilkin/{{GITHUB_REF_NAME}}/examples/agones-xonotic-relay/relay-control-plane.yaml +kubectl apply -f https://raw.githubusercontent.com/EmbarkStudios/quilkin/{{GITHUB_REF_NAME}}/examples/agones-xonotic-relay/relay-control-plane.yaml ``` This applies several resources to your cluster: @@ -66,7 +66,7 @@ To install the Quilkin Proxy pool which connects to the above Relay xDS provider proxy instances that point to the aforementioned Service, like so: ```shell -kubectl apply -f https://raw.githubusercontent.com/googleforgames/quilkin/{{GITHUB_REF_NAME}}/examples/agones-xonotic-relay/proxy-pool.yaml +kubectl apply -f https://raw.githubusercontent.com/EmbarkStudios/quilkin/{{GITHUB_REF_NAME}}/examples/agones-xonotic-relay/proxy-pool.yaml ``` This will set up three instances of Quilkin running as `quilkin proxy --management-server @@ -130,7 +130,7 @@ $ curl -s http://localhost:8001/config | jq This shows us the current configuration of the proxies coming from the xDS server created via `quilkin agent agones`. The most interesting part that we see here, is that we have a matching set of [Filters](../../services/proxy/filters.md) that are found in the `ConfigMap` in the -[relay-control-plane.yaml](https://github.com/googleforgames/quilkin/blob/{{GITHUB_REF_NAME}}/examples/agones-xonotic-relay/relay-control-plane.yaml) +[relay-control-plane.yaml](https://github.com/EmbarkStudios/quilkin/blob/{{GITHUB_REF_NAME}}/examples/agones-xonotic-relay/relay-control-plane.yaml) we installed earlier. ## 4. Create the Agones Fleet @@ -139,10 +139,10 @@ Now we will create an [Agones Fleet](https://agones.dev/site/docs/reference/flee game servers. Thankfully, Agones Fleets require no specific configuration to work with Quilkin proxies, so this yaml is a -[standard Agones Fleet configuration](https://github.com/googleforgames/quilkin/blob/{{GITHUB_REF_NAME}}/examples/agones-xonotic-relay/fleet.yaml) +[standard Agones Fleet configuration](https://github.com/EmbarkStudios/quilkin/blob/{{GITHUB_REF_NAME}}/examples/agones-xonotic-relay/fleet.yaml) ```shell -kubectl apply -f https://raw.githubusercontent.com/googleforgames/quilkin/{{GITHUB_REF_NAME}}/examples/agones-xonotic-relay/fleet.yaml +kubectl apply -f https://raw.githubusercontent.com/EmbarkStudios/quilkin/{{GITHUB_REF_NAME}}/examples/agones-xonotic-relay/fleet.yaml ``` Run `kubectl get gameservers` until all the `GameServer` records show that they are `Ready` and able to take players. @@ -169,7 +169,7 @@ Since you can add annotations to `GameServers` at and apply the annotation at the same time! ```shell -kubectl create -f https://raw.githubusercontent.com/googleforgames/quilkin/{{GITHUB_REF_NAME}}/examples/agones-xonotic-relay/gameserverallocation.yaml +kubectl create -f https://raw.githubusercontent.com/EmbarkStudios/quilkin/{{GITHUB_REF_NAME}}/examples/agones-xonotic-relay/gameserverallocation.yaml ``` If we check our `GameServers` now, we should see that one of them has moved to the `Allocated` state, marking it as @@ -254,19 +254,19 @@ Let's run `curl -s http://localhost:8001/config` again, so we can see what has c } ``` -Looking under `clusters` > `endpoints` we can see an address and token that matches up with the +Looking under `clusters` > `endpoints` we can see an address and token that matches up with the `GameServer` record we created above! -The Agones agent process saw that allocated `GameServer`, turned it into a Quilkin `Endpoint` and applied the set -routing token appropriately -- without you having to write a line of xDS compliant code! +The Agones agent process saw that allocated `GameServer`, turned it into a Quilkin `Endpoint` and applied the set +routing token appropriately -- without you having to write a line of xDS compliant code! ## Connecting Client Side Instead of connecting to Xonotic or an Agones `GameServer` directly, we'll want to grab the IP and exposed port of -the `Service` that fronts all our Quilkin proxies and connect to that instead -- but we'll have to append our +the `Service` that fronts all our Quilkin proxies and connect to that instead -- but we'll have to append our routing token `456` from before, to ensure our traffic gets routed to the correct Xonotic `GameServer` address. -Run `kubectl get service quilkin-proxies` to get the `EXTERNAL-IP` of the Service you created. +Run `kubectl get service quilkin-proxies` to get the `EXTERNAL-IP` of the Service you created. ```shell $ kubectl get service quilkin-proxies @@ -274,15 +274,15 @@ NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) quilkin-proxies LoadBalancer 10.109.0.12 35.246.94.14 7777:30174/UDP 3h22m ``` -We have a [Quilkin config yaml](https://github.com/googleforgames/quilkin/blob/{{GITHUB_REF_NAME}}/examples/agones-xonotic-relay/client-token.yaml) -file all ready for you, that is configured to append the routing token `456` to each -packet that passes through it, via the power of a +We have a [Quilkin config yaml](https://github.com/EmbarkStudios/quilkin/blob/{{GITHUB_REF_NAME}}/examples/agones-xonotic-relay/client-token.yaml) +file all ready for you, that is configured to append the routing token `456` to each +packet that passes through it, via the power of a [Concatenate](../../services/proxy/filters/concatenate.md) Filter. Download `client-token.yaml` locally, so you can edit it: ```shell -curl https://raw.githubusercontent.com/googleforgames/quilkin/{{GITHUB_REF_NAME}}/examples/agones-xonotic-relay/client-token.yaml --output client-token.yaml +curl https://raw.githubusercontent.com/EmbarkStudios/quilkin/{{GITHUB_REF_NAME}}/examples/agones-xonotic-relay/client-token.yaml --output client-token.yaml ``` We then take the EXTERNAL-IP and port from the `quilkin-proxies` service, and replace the`${LOADBALANCER_IP}` diff --git a/docs/src/deployment/quickstarts/agones-xonotic-sidecar.md b/docs/src/deployment/quickstarts/agones-xonotic-sidecar.md index f4332ea70a..b9245808a3 100644 --- a/docs/src/deployment/quickstarts/agones-xonotic-sidecar.md +++ b/docs/src/deployment/quickstarts/agones-xonotic-sidecar.md @@ -9,7 +9,7 @@ In this step, we're going to set up a Xonotic dedicated game server, with Quilki [metrics](../../services/proxy/metrics.md) that Quilkin provides. ```shell -kubectl apply -f https://raw.githubusercontent.com/googleforgames/quilkin/{{GITHUB_REF_NAME}}/examples/agones-xonotic-sidecar/sidecar.yaml +kubectl apply -f https://raw.githubusercontent.com/EmbarkStudios/quilkin/{{GITHUB_REF_NAME}}/examples/agones-xonotic-sidecar/sidecar.yaml ``` This applies two resources to your cluster: @@ -60,7 +60,7 @@ Then open a browser to [http://localhost:8000/metrics](http://localhost:9091/met Run the following to delete the Fleet and the accompanying ConfigMap: ```shell -kubectl delete -f https://raw.githubusercontent.com/googleforgames/quilkin/{{GITHUB_REF_NAME}}/examples/agones-xonotic-sidecar/sidecar.yaml +kubectl delete -f https://raw.githubusercontent.com/EmbarkStudios/quilkin/{{GITHUB_REF_NAME}}/examples/agones-xonotic-sidecar/sidecar.yaml ``` ## 6. Play Xonotic, through Quilkin @@ -71,7 +71,7 @@ What we will do in this step, is run Quilkin locally as a client-side proxy to c sent up to our Xonotic servers that are expecting compressed data. First, grab a copy of the Quilkin configuration -client-compress.yaml +client-compress.yaml locally. This has the Compress filter already configured, but we need to fill in the address to connect to. > Rather than editing a file, this could also be sent through the [xDS API](../../services/xds.md), but it is easier to @@ -98,9 +98,9 @@ edit either! Run the following to delete the Fleet and the accompanying ConfigMap: ```shell -kubectl delete -f https://raw.githubusercontent.com/googleforgames/quilkin/{{GITHUB_REF_NAME}}/examples/agones-xonotic-sidecar/sidecar-compress.yaml +kubectl delete -f https://raw.githubusercontent.com/EmbarkStudios/quilkin/{{GITHUB_REF_NAME}}/examples/agones-xonotic-sidecar/sidecar-compress.yaml ``` ## What's Next? -* Have a look at the [examples](https://github.com/googleforgames/quilkin/blob/{{GITHUB_REF_NAME}}/examples) folder for configuration and usage examples. +* Have a look at the [examples](https://github.com/EmbarkStudios/quilkin/blob/{{GITHUB_REF_NAME}}/examples) folder for configuration and usage examples. diff --git a/docs/src/deployment/quickstarts/agones-xonotic-xds.md b/docs/src/deployment/quickstarts/agones-xonotic-xds.md index f20303f335..8e900223f6 100644 --- a/docs/src/deployment/quickstarts/agones-xonotic-xds.md +++ b/docs/src/deployment/quickstarts/agones-xonotic-xds.md @@ -1,7 +1,7 @@ # Quickstart: Quilkin with Agones and Xonotic (xDS) {{#include _agones.md}} -* A local copy of the [Quilkin Binary](https://github.com/googleforgames/quilkin/releases). +* A local copy of the [Quilkin Binary](https://github.com/EmbarkStudios/quilkin/releases). ## 1. Overview @@ -21,7 +21,7 @@ To install Quilkin as an Agones integrated xDS control plane, we can create a de Run the following: ```shell -kubectl apply -f https://raw.githubusercontent.com/googleforgames/quilkin/{{GITHUB_REF_NAME}}/examples/agones-xonotic-xds/xds-control-plane.yaml +kubectl apply -f https://raw.githubusercontent.com/EmbarkStudios/quilkin/{{GITHUB_REF_NAME}}/examples/agones-xonotic-xds/xds-control-plane.yaml ``` This applies several resources to your cluster: @@ -59,7 +59,7 @@ To install the Quilkin Proxy pool which connects to the above xDS provider, we c proxy instances that point to the aforementioned Service, like so: ```shell -kubectl apply -f https://raw.githubusercontent.com/googleforgames/quilkin/{{GITHUB_REF_NAME}}/examples/agones-xonotic-xds/proxy-pool.yaml +kubectl apply -f https://raw.githubusercontent.com/EmbarkStudios/quilkin/{{GITHUB_REF_NAME}}/examples/agones-xonotic-xds/proxy-pool.yaml ``` This will set up three instances of Quilkin running as `quilkin proxy --management-server http://quilkin-manage-agones:80` @@ -82,7 +82,7 @@ manage agones` instance. In another terminal, run: `kubectl port-forward deployments/quilkin-proxies 8001:8000`, to port forward the [admin endpoint](../admin.md) locally to port 8001, which we can then query. -Go back to your original terminal and run `curl -s http://localhost:8001/config` +Go back to your original terminal and run `curl -s http://localhost:8001/config` > If you have [jq](https://stedolan.github.io/jq/) installed, run `curl -s http://localhost:8001/config | jq` for a > nicely formatted JSON output. @@ -122,7 +122,7 @@ $ curl -s http://localhost:8001/config | jq This shows us the current configuration of the proxies coming from the xDS server created via `quilkin manage agones`. The most interesting part that we see here, is that we have a matching set of [Filters](../../services/proxy/filters.md) that are found in the `ConfigMap` in the -[xds-control-plane.yaml](https://github.com/googleforgames/quilkin/blob/{{GITHUB_REF_NAME}}/examples/agones-xonotic-xds/xds-control-plane.yaml) +[xds-control-plane.yaml](https://github.com/EmbarkStudios/quilkin/blob/{{GITHUB_REF_NAME}}/examples/agones-xonotic-xds/xds-control-plane.yaml) we installed earlier. ## 4. Create the Agones Fleet @@ -131,10 +131,10 @@ Now we will create an [Agones Fleet](https://agones.dev/site/docs/reference/flee game servers. Thankfully, Agones Fleets require no specific configuration to work with Quilkin proxies, so this yaml is a -[standard Agones Fleet configuration](https://github.com/googleforgames/quilkin/blob/{{GITHUB_REF_NAME}}/examples/agones-xonotic-xds/fleet.yaml) +[standard Agones Fleet configuration](https://github.com/EmbarkStudios/quilkin/blob/{{GITHUB_REF_NAME}}/examples/agones-xonotic-xds/fleet.yaml) ```shell -kubectl apply -f https://raw.githubusercontent.com/googleforgames/quilkin/{{GITHUB_REF_NAME}}/examples/agones-xonotic-xds/fleet.yaml +kubectl apply -f https://raw.githubusercontent.com/EmbarkStudios/quilkin/{{GITHUB_REF_NAME}}/examples/agones-xonotic-xds/fleet.yaml ``` Run `kubectl get gameservers` until all the `GameServer` records show that they are `Ready` and able to take players. @@ -161,7 +161,7 @@ Since you can add annotations to `GameServers` at and apply the annotation at the same time! ```shell -kubectl create -f https://raw.githubusercontent.com/googleforgames/quilkin/{{GITHUB_REF_NAME}}/examples/agones-xonotic-xds/gameserverallocation.yaml +kubectl create -f https://raw.githubusercontent.com/EmbarkStudios/quilkin/{{GITHUB_REF_NAME}}/examples/agones-xonotic-xds/gameserverallocation.yaml ``` If we check our `GameServers` now, we should see that one of them has moved to the `Allocated` state, marking it as @@ -266,7 +266,7 @@ NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) quilkin-proxies LoadBalancer 10.109.0.12 35.246.94.14 7777:30174/UDP 3h22m ``` -We have a [Quilkin config yaml](https://github.com/googleforgames/quilkin/blob/{{GITHUB_REF_NAME}}/examples/agones-xonotic-xds/client-token.yaml) +We have a [Quilkin config yaml](https://github.com/EmbarkStudios/quilkin/blob/{{GITHUB_REF_NAME}}/examples/agones-xonotic-xds/client-token.yaml) file all ready for you, that is configured to append the routing token `456` to each packet that passes through it, via the power of a [Concatenate](../../services/proxy/filters/concatenate.md) Filter. @@ -274,7 +274,7 @@ packet that passes through it, via the power of a Download `client-token.yaml` locally, so you can edit it: ```shell -curl https://raw.githubusercontent.com/googleforgames/quilkin/{{GITHUB_REF_NAME}}/examples/agones-xonotic-xds/client-token.yaml --output client-token.yaml +curl https://raw.githubusercontent.com/EmbarkStudios/quilkin/{{GITHUB_REF_NAME}}/examples/agones-xonotic-xds/client-token.yaml --output client-token.yaml ``` We then take the EXTERNAL-IP and port from the `quilkin-proxies` service, and replace the`${LOADBALANCER_IP}` diff --git a/docs/src/deployment/quickstarts/netcat.md b/docs/src/deployment/quickstarts/netcat.md index 399cb1476f..4514892553 100644 --- a/docs/src/deployment/quickstarts/netcat.md +++ b/docs/src/deployment/quickstarts/netcat.md @@ -3,7 +3,7 @@ ## Requirements * A \*nix terminal -* A binary release of Quilkin from the [Github releases page](https://github.com/googleforgames/quilkin/releases) or by running `cargo install quilkin` +* A binary release of Quilkin from the [Github releases page](https://github.com/EmbarkStudios/quilkin/releases) or by running `cargo install quilkin` * [ncat](https://www.google.com/search?q=ncat) * [netcat](http://netcat.sourceforge.net/) @@ -68,4 +68,4 @@ Congratulations! You have successfully routed a UDP packet and back again with Q What's next? * Run through the [Quilkin with Agones quickstart](agones-xonotic-sidecar.md). -* Have a look at some of [the examples](https://github.com/googleforgames/quilkin/blob/{{GITHUB_REF_NAME}}/examples) we have. +* Have a look at some of [the examples](https://github.com/EmbarkStudios/quilkin/blob/{{GITHUB_REF_NAME}}/examples) we have. diff --git a/docs/src/faq.md b/docs/src/faq.md index afff279504..853ded0a6f 100644 --- a/docs/src/faq.md +++ b/docs/src/faq.md @@ -7,13 +7,13 @@ Our current testing shows that on Quilkin shows that it process packets _quite f We won't be publishing performance benchmarks, as performance will always change depending on the underlying hardware, number of filters, configurations and more. -We highly recommend you run your own load tests on your platform and configuration, matching your production -workload and configuration as close as possible. +We highly recommend you run your own load tests on your platform and configuration, matching your production +workload and configuration as close as possible. Our [iperf3](https://iperf.fr/) based performance test in the -[examples' folder](https://github.com/googleforgames/quilkin/tree/{{GITHUB_REF_NAME}}/examples/iperf3) is a good starting point. +[examples' folder](https://github.com/EmbarkStudios/quilkin/tree/{{GITHUB_REF_NAME}}/examples/iperf3) is a good starting point. -Since this is still an alpha project, we have plans on investigating further performance improvements in upcoming +Since this is still an alpha project, we have plans on investigating further performance improvements in upcoming releases, both from an optimisation and observability perspective as well. ## Can I integrate Quilkin with C++ code? @@ -26,15 +26,15 @@ Using Rust code inside a C or C++ project mostly consists of two parts. * Creating a C-friendly API in Rust * Embedding your Rust project into an external build system -See [A little Rust with your C](https://docs.rust-embedded.org/book/interoperability/rust-with-c.html) for more +See [A little Rust with your C](https://docs.rust-embedded.org/book/interoperability/rust-with-c.html) for more information. -Over time, we will be expanding documentation on how to integrate with specific engines if running Quilkin as a +Over time, we will be expanding documentation on how to integrate with specific engines if running Quilkin as a separate binary is not an option. ## I would like to run Quilkin as a client side proxy on a console? Can I do that? -This is an ongoing discussion, and since console development is protected by non-disclosure agreements, we can't +This is an ongoing discussion, and since console development is protected by non-disclosure agreements, we can't comment on this directly. That being said, we have an [Unreal Engine](./sdks/unreal-engine.md) for games @@ -43,13 +43,13 @@ an executable is not an option. ## Any reason you didn't contribute this into/extend Envoy? -This is an excellent question! [Envoy](https://www.envoyproxy.io/) is an amazing project, and has set many of the -standards for how [proxies are written and orchestrated](./services/xds.md), and was an inspiration for many of +This is an excellent question! [Envoy](https://www.envoyproxy.io/) is an amazing project, and has set many of the +standards for how [proxies are written and orchestrated](./services/xds.md), and was an inspiration for many of the decisions made on Quilkin. However, we decided to build this project separately: -* Envoy seems primarily focused on web/mobile network workloads (which makes total sense), whereas we wanted - something specialised on gaming UDP communication, so having a leaner, more focused codebase would allow us to move +* Envoy seems primarily focused on web/mobile network workloads (which makes total sense), whereas we wanted + something specialised on gaming UDP communication, so having a leaner, more focused codebase would allow us to move faster. * We found the Rust and Cargo ecosystem easier to work with than Bazel and C++, and figured our users would as well. diff --git a/docs/src/installation.md b/docs/src/installation.md index a896b69698..d7e17ea7eb 100644 --- a/docs/src/installation.md +++ b/docs/src/installation.md @@ -37,13 +37,13 @@ cargo install quilkin
Compiled from source using cargo
-### [GitHub](https://github.com/googleforgames/quilkin) +### [GitHub](https://github.com/EmbarkStudios/quilkin)
Source / Method
-[GitHub Releases](https://github.com/googleforgames/quilkin/releases) +[GitHub Releases](https://github.com/EmbarkStudios/quilkin/releases)
Notes
diff --git a/docs/src/introduction.md b/docs/src/introduction.md index 6deec9e771..bc51dfae97 100644 --- a/docs/src/introduction.md +++ b/docs/src/introduction.md @@ -117,7 +117,7 @@ proxy. To see a basic usage of the command-line interface run through the For more advanced usage, you might also be interested in: * Checking out the [installation guide](./installation.md) -* Having a look at the [example projects](https://github.com/googleforgames/quilkin/blob/{{GITHUB_REF_NAME}}/examples) for basic configuration examples. +* Having a look at the [example projects](https://github.com/EmbarkStudios/quilkin/blob/{{GITHUB_REF_NAME}}/examples) for basic configuration examples. * Checking out the [example deployment architecture](./deployment/examples.md) for deploying quilkin for your game network. diff --git a/docs/src/services/proxy/configuration.md b/docs/src/services/proxy/configuration.md index e29ca35f44..966ce057b7 100644 --- a/docs/src/services/proxy/configuration.md +++ b/docs/src/services/proxy/configuration.md @@ -95,5 +95,5 @@ properties: - address ``` -[examples]: https://github.com/googleforgames/quilkin/blob/{{GITHUB_REF_NAME}}/examples +[examples]: https://github.com/EmbarkStudios/quilkin/blob/{{GITHUB_REF_NAME}}/examples diff --git a/docs/src/services/xds.md b/docs/src/services/xds.md index 02e40f1202..617981e427 100644 --- a/docs/src/services/xds.md +++ b/docs/src/services/xds.md @@ -61,6 +61,6 @@ the `management_servers` [command line](../../api/quilkin/struct.Proxy.html#stru [locality]: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/base.proto#config-core-v3-locality [filters-doc]: ./proxy/filters.md [xds-variants]: https://www.envoyproxy.io/docs/envoy/latest/api-docs/xds_protocol#variants-of-the-xds-transport-protocol -[filter-protos]: https://github.com/googleforgames/quilkin/tree/{{GITHUB_REF_NAME}}/proto/quilkin/filters +[filter-protos]: https://github.com/EmbarkStudios/quilkin/tree/{{GITHUB_REF_NAME}}/proto/quilkin/filters [xds-endpoint-metadata]: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/base.proto#envoy-v3-api-msg-config-core-v3-metadata diff --git a/docs/src/services/xds/providers/agones.md b/docs/src/services/xds/providers/agones.md index 10972ad22f..55118d4544 100644 --- a/docs/src/services/xds/providers/agones.md +++ b/docs/src/services/xds/providers/agones.md @@ -71,6 +71,6 @@ and [RBAC] Rules, there is an [Agones, xDS and Xonotic example][example]. [Deployments]: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/ [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 +[example]: https://github.com/EmbarkStudios/quilkin/tree/{{GITHUB_REF_NAME}}/examples/agones-xonotic-xds [Filter]: ../../../services/proxy/filters.md [configuration]: ../../../services/proxy/configuration.md diff --git a/examples/iperf3/Dockerfile b/examples/iperf3/Dockerfile index 7e94323ad7..668bff54fd 100644 --- a/examples/iperf3/Dockerfile +++ b/examples/iperf3/Dockerfile @@ -15,7 +15,7 @@ FROM rust:latest WORKDIR /app # How to install quilkin -ARG install_args="--git https://github.com/googleforgames/quilkin quilkin" +ARG install_args="--git https://github.com/EmbarkStudios/quilkin quilkin" RUN apt update && apt install -y iperf3 socat RUN cargo install $install_args COPY ./run.sh /app