diff --git a/.github/workflows/docs.yaml b/.github/workflows/hugo-docs.yaml similarity index 67% rename from .github/workflows/docs.yaml rename to .github/workflows/hugo-docs.yaml index 2244b4a14cd3..da31e48e70ee 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/hugo-docs.yaml @@ -1,15 +1,17 @@ -name: Docs +name: Hugo Docs on: push: branches: - - "main" + - "main" + - "release/v*" paths-ignore: - - "**/*.png" + - "**/*.png" pull_request: branches: - - "main" + - "main" + - "release/v*" paths-ignore: - - "**/*.png" + - "**/*.png" jobs: docs-lint: @@ -21,25 +23,43 @@ jobs: - name: Run markdown linter uses: nosborn/github-action-markdown-cli@v3.3.0 with: - files: docs/* + files: site/content/* config_file: ".github/markdown_lint_config.json" docs-build: runs-on: ubuntu-latest needs: docs-lint + permissions: + contents: write steps: - - uses: actions/checkout@v4 - - uses: ./tools/github-actions/setup-deps + - name: Git checkout + uses: actions/checkout@v3 + with: + submodules: true + + - name: Setup Hugo + uses: peaceiris/actions-hugo@v2 + with: + hugo-version: 'latest' + extended: true + + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: '18' + + - name: Install Site Dependencies + run: cd site && npm install - - name: Generate EG Pages - run: make docs + - name: Build Site + run: cd site && npm run build:production # Upload docs for GitHub Pages - name: Upload GitHub Pages artifact uses: actions/upload-pages-artifact@v2.0.0 with: # Path of the directory containing the static assets. - path: docs/html + path: site/public # Duration after which artifact will expire in days. # retention-days: # optional, default is 1 diff --git a/GOALS.md b/GOALS.md index 519be9f180fe..be4bdb76f6bc 100644 --- a/GOALS.md +++ b/GOALS.md @@ -1,4 +1,7 @@ -# Goals +--- +title: "Goals" +--- + The high-level goal of the Envoy Gateway project is to attract more users to Envoy by lowering barriers to adoption through expressive, extensible, role-oriented APIs that support a multitude of ingress and L7/L4 traffic routing diff --git a/docs/index.html b/docs/index.html deleted file mode 100644 index 9a7d823d866a..000000000000 --- a/docs/index.html +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/latest/about_docs.rst b/docs/latest/about_docs.rst deleted file mode 100644 index ecaa28247b91..000000000000 --- a/docs/latest/about_docs.rst +++ /dev/null @@ -1,9 +0,0 @@ -About the Documentation -======================= - -Learn how to contribute to Envoy Gateway documentation. - -.. toctree:: - :maxdepth: 1 - - dev/DOCS diff --git a/docs/latest/api_docs.rst b/docs/latest/api_docs.rst deleted file mode 100644 index b470527c50cc..000000000000 --- a/docs/latest/api_docs.rst +++ /dev/null @@ -1,10 +0,0 @@ -API Docs -============== - -API reference documentation for Envoy Gateway. - -.. toctree:: - :maxdepth: 1 - - Config APIs - Extension APIs diff --git a/docs/latest/conf.py b/docs/latest/conf.py deleted file mode 100644 index 76ef5717548f..000000000000 --- a/docs/latest/conf.py +++ /dev/null @@ -1,43 +0,0 @@ -import os - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - 'sphinx.ext.duration', - 'sphinx.ext.autosectionlabel', - 'myst_parser', -] - -autosectionlabel_prefix_document = True -myst_heading_anchors = 3 - -html_theme = 'alabaster' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -version = os.environ["BUILD_VERSION"] -envoyVersion = os.environ["ENVOY_PROXY_VERSION"] -gatewayAPIVersion = os.environ["GATEWAYAPI_VERSION"] - -project = 'Envoy Gateway' -author = 'Envoy Gateway Project Authors' - -copyright = 'Envoy Gateway Project Authors | GitHub | Latest Docs' - -source_suffix = { - '.rst': 'restructuredtext', - '.md': 'markdown', -} - -variables_to_export = [ - "version", - "envoyVersion", - "gatewayAPIVersion", -] - -frozen_locals = dict(locals()) -rst_epilog = '\n'.join(map(lambda x: f".. |{x}| replace:: {frozen_locals[x]}", variables_to_export)) -del frozen_locals diff --git a/docs/latest/design_docs.rst b/docs/latest/design_docs.rst deleted file mode 100644 index a0b82b578f88..000000000000 --- a/docs/latest/design_docs.rst +++ /dev/null @@ -1,20 +0,0 @@ -Design Docs -=========== - -Learn about the internal details of Envoy Gateway. - -.. toctree:: - :maxdepth: 1 - - design/system-design - design/gatewayapi-translator - design/watching - design/config-api - design/tcp-udp-design - design/egctl - design/rate-limit - design/request-authentication - design/bootstrap - design/extending-envoy-gateway - design/local-envoy-gateway - design/accesslog diff --git a/docs/latest/dev_docs.rst b/docs/latest/dev_docs.rst deleted file mode 100644 index e546e14c1ada..000000000000 --- a/docs/latest/dev_docs.rst +++ /dev/null @@ -1,15 +0,0 @@ -Developer Docs -============== - -Learn how to contribute to Envoy Gateway. - -.. toctree:: - :maxdepth: 1 - - dev/GOALS - dev/CODE_OF_CONDUCT - dev/CODEOWNERS - dev/CONTRIBUTING - dev/README - dev/DOCS - dev/releasing diff --git a/docs/latest/get_involved.rst b/docs/latest/get_involved.rst deleted file mode 100644 index f17febd56513..000000000000 --- a/docs/latest/get_involved.rst +++ /dev/null @@ -1,9 +0,0 @@ -Getting Involved -================ - -We welcome contributions from the community. Please carefully review the -`project goals `_ -and the -`code of conduct `_ -before diving in. - diff --git a/docs/latest/helm.rst b/docs/latest/helm.rst deleted file mode 100644 index 853e26a141b8..000000000000 --- a/docs/latest/helm.rst +++ /dev/null @@ -1,9 +0,0 @@ -Helm Guides -=========== - -Learn how to deploy, use the helm chart for Envoy Gateway. - -.. toctree:: - :maxdepth: 1 - - helm/api.md \ No newline at end of file diff --git a/docs/latest/index.rst b/docs/latest/index.rst deleted file mode 100644 index 81957cef394c..000000000000 --- a/docs/latest/index.rst +++ /dev/null @@ -1,35 +0,0 @@ -`Envoy Gateway `_ -==================== - -Release: |version| - -.. image:: https://img.shields.io/badge/slack-join-orange.svg - :target: https://envoyproxy.slack.com/archives/C03E6NHLESV - :alt: Join the Envoy Slack - -Envoy Gateway is an open source project for managing `Envoy Proxy`_ as a standalone or Kubernetes-based application -gateway. `Gateway API`_ resources are used to dynamically provision and configure the managed Envoy Proxies. Whether -you are interested in using or contributing to Envoy Gateway, the following resources will help you get started: - -.. toctree:: - :maxdepth: 1 - - intro/compatibility - user_docs - design_docs - dev_docs - api_docs - helm - releases - roadmap - about_docs - get_involved - presentations - -.. note:: - - This project is under active development. Many, many features are not - complete. We would love for you to :doc:`get involved`. - -.. _Envoy Proxy: https://www.envoyproxy.io/ -.. _Gateway API: https://gateway-api.sigs.k8s.io/ diff --git a/docs/latest/intro/compatibility.rst b/docs/latest/intro/compatibility.rst deleted file mode 100644 index df9ef8fec7ee..000000000000 --- a/docs/latest/intro/compatibility.rst +++ /dev/null @@ -1,27 +0,0 @@ -Compatibility Matrix -==================== - -Envoy Gateway relies on the Envoy Proxy and the Gateway API, and runs -within a Kubernetes cluster. Not all versions of each of these products -can function together for Envoy Gateway. Supported version combinations -are listed below; **bold** type indicates the versions of the Envoy Proxy -and the Gateway API actually compiled into each Envoy Gateway release. - -+--------------------------+---------------------+---------------------+---------------------+----------------------------+ -| Envoy Gateway version | Envoy Proxy version | Rate Limit version | Gateway API version | Kubernetes version | -+--------------------------+---------------------+---------------------+---------------------+----------------------------+ -| v0.5.0 | **v1.27-latest** | **e059638d** | **v0.7.1** | v1.25, v1.26, v1.27 | -+--------------------------+---------------------+---------------------+---------------------+----------------------------+ -| v0.4.0 | **v1.26-latest** | **542a6047** | **v0.6.2** | v1.25, v1.26, v1.27 | -+--------------------------+---------------------+---------------------+---------------------+----------------------------+ -| v0.3.0 | **v1.25-latest** | **f28024e3** | **v0.6.1** | v1.24, v1.25, v1.26 | -+--------------------------+---------------------+---------------------+---------------------+----------------------------+ -| v0.2.0 | **v1.23-latest** | | **v0.5.1** | v1.24 | -+--------------------------+---------------------+---------------------+---------------------+----------------------------+ -| latest | **dev-latest** | **master** | **v0.8.0** | v1.26, v1.27, v1.28 | -+--------------------------+---------------------+---------------------+---------------------+----------------------------+ - -.. note:: - - This project is under active development. Many, many features are not - complete. We would love for you to :doc:`get involved<../get_involved>`. diff --git a/docs/latest/presentations.md b/docs/latest/presentations.md deleted file mode 100644 index bc681b8c2686..000000000000 --- a/docs/latest/presentations.md +++ /dev/null @@ -1,12 +0,0 @@ -# Presentations - -This page contains a list of presentations about the Envoy Proxy project. - -| Conference | Title | Speaker | Recording | Slides | -|-----------------|------------------------------|------------------------------|--------------------------------------------------------|--------| -| KubeCon NA 2022 | Envoy Gateway Project Update | Daneyon Hansen & Alice Wasko | [YouTube](https://www.youtube.com/watch?v=3MUOZc8XNCc) | [Slides](https://static.sched.com/hosted_files/envoyconna22/2f/Envoy_Gateway_Project_Update_EnvoyCon_NA_2022.pptx) | -| KubeCon EU 2023 | Envoy Gateway Project Update | Alice Wasko | [YouTube](https://www.youtube.com/watch?v=4vnJxt9sVho) | [Slides](https://static.sched.com/hosted_files/kccnceu2023/58/Kubecon_EU_2023_Envoy_Gateway_Update.pptx) | - - - - diff --git a/docs/latest/releases.rst b/docs/latest/releases.rst deleted file mode 100644 index f2854c34d0e8..000000000000 --- a/docs/latest/releases.rst +++ /dev/null @@ -1,13 +0,0 @@ -Releases -======== - -Learn more about Envoy Gateway releases. - -.. toctree:: - :maxdepth: 1 - - releases/README - releases/v0.2 - releases/v0.3 - releases/v0.4 - releases/v0.5 diff --git a/docs/latest/releases/README.md b/docs/latest/releases/README.md deleted file mode 100644 index 4aa878e84079..000000000000 --- a/docs/latest/releases/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# Release Details - -This document provides details for Envoy Gateway releases. Envoy Gateway follows the Semantic Versioning [v2.0.0 spec][] -for release versioning. Since Envoy Gateway is a new project, minor releases are the only defined releases. Envoy -Gateway maintainers will establish additional release details, e.g. patch releases, at a future date. - -## Stable Releases - -Stable releases of Envoy Gateway include: - -* Minor Releases- A new release branch and corresponding tag are created from the `main` branch. A minor release - is supported for 6 months following the release date. As the project matures, Envoy Gateway maintainers will reassess - the support timeframe. - -Minor releases happen quarterly and follow the schedule below. - -## Release Management - -Minor releases are handled by a designated Envoy Gateway maintainer. This maintainer is considered the Release Manager -for the release. The details for creating a release are outlined in the [release guide][]. The Release Manager is -responsible for coordinating the overall release. This includes identifying issues to be fixed in the release, -communications with the Envoy Gateway community, and the mechanics of the release. - -| Quarter | Release Manager | -|:-------:|:--------------------------------------------------------------:| -| 2022 Q4 | Daneyon Hansen ([danehans](https://github.com/danehans)) | -| 2023 Q1 | Xunzhuo Liu ([Xunzhuo](https://github.com/Xunzhuo)) | -| 2023 Q2 | Alice Wasko ([AliceProxy](https://github.com/AliceProxy)) | -| 2023 Q3 | Arko Dasgupta ([arkodg](https://github.com/arkodg)) | - -## Release Schedule - -In order to align with the Envoy Proxy [release schedule][], Envoy Gateway releases are produced on a fixed schedule -(the 22nd day of each quarter), with an acceptable delay of up to 2 weeks, and a hard deadline of 3 weeks. - -| Version | Expected | Actual | Difference | End of Life | -|:-------:|:-----------:|:-----------:|:----------:|:-----------:| -| 0.2.0 | 2022/10/22 | 2022/10/20 | -2 day | 2023/4/20 | -| 0.3.0 | 2023/01/22 | 2023/02/09 | +17 day | 2023/08/09 | -| 0.4.0 | 2023/04/22 | 2023/04/24 | +2 day | 2023/10/24 | -| 0.5.0 | 2023/07/22 | 2023/08/02 | +10 day | 2024/01/02 | - -[v2.0.0 spec]: https://semver.org/spec/v2.0.0.html -[release guide]: ../dev/releasing.md -[release schedule]: https://github.com/envoyproxy/envoy/blob/main/RELEASES.md#major-release-schedule diff --git a/docs/latest/releases/v0.2.md b/docs/latest/releases/v0.2.md deleted file mode 100644 index a0dc0e885de8..000000000000 --- a/docs/latest/releases/v0.2.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Announcing Envoy Gateway v0.2 -linktitle: v0.2 -subtitle: Major Update -description: Envoy Gateway v0.2 release announcement. -publishdate: 2022-10-20 -release: v0.2.0 -skip_list: true -aliases: -- /releases/v0.2 -- /releases/v0.2.0 ---- -# Envoy Gateway Release v0.2 - -We are pleased to announce the release of Envoy Gateway v0.2! - -This is the first functional release of Envoy Gateway. We would like to thank the entire Envoy Gateway community for -helping publish the release. - -| [Release Notes][] | [Docs][docs] | [Compatibility Matrix][matrix] | [Download][] | -|-------------------|--------------|--------------------------------|--------------| - -## What's New - -The release adds a ton of features and functionality. Here are some highlights: - -### Kubernetes Support - -Run Envoy Gateway in a Kubernetes cluster. Checkout the [quickstart guide][] to get started with Envoy Gateway in a few -simple steps. - -### Gateway API Support - -Envoy Gateway supports Gateway API resources for running and configuring a managed fleet of Envoy proxies. Envoy Gateway -passes Gateway API core [conformance tests][] and supports GatewayClass, Gateway, HTTPRoute, and TLSRoute resources. See -the [documentation][docs] for additional details on how to use Envoy Gateway for your edge proxy and API gateway needs. - -## Envoy Gateway at EnvoyCon NA - -Envoy Gateway will be at [EnvoyCon NA][] this October in Detroit. Don't miss [our talk][] to learn more about the -release and future direction of the project. - -[Release Notes]: https://github.com/envoyproxy/gateway/blob/main/release-notes/v0.2.0.yaml -[matrix]: https://gateway.envoyproxy.io/intro/compatibility.html -[docs]: https://gateway.envoyproxy.io/index.html -[Download]: https://github.com/envoyproxy/gateway/releases/tag/v0.2.0 -[conformance tests]: https://gateway-api.sigs.k8s.io/concepts/conformance/?h=conformance -[quickstart guide]: https://gateway.envoyproxy.io/user/quickstart.html -[EnvoyCon NA]: https://events.linuxfoundation.org/envoycon-north-america/program/schedule/ -[our talk]: https://sched.co/1AO5S diff --git a/docs/latest/releases/v0.3.md b/docs/latest/releases/v0.3.md deleted file mode 100644 index 96d6d6d49ebe..000000000000 --- a/docs/latest/releases/v0.3.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Announcing Envoy Gateway v0.3 -linktitle: v0.3 -subtitle: Major Update -description: Envoy Gateway v0.3 release announcement. -publishdate: 2023-02-09 -release: v0.3.0 -skip_list: true -aliases: -- /releases/v0.3 -- /releases/v0.3.0 ---- -# Envoy Gateway Release v0.3 - -We are pleased to announce the release of Envoy Gateway v0.3! - -This is the second functional release of Envoy Gateway. We would like to thank the entire Envoy Gateway community for -helping publish the release. - -| [Release Notes][] | [Docs][docs] | [Compatibility Matrix][matrix] | [Download][] | -|-------------------|--------------|--------------------------------|--------------| - -## What's New - -The release adds a ton of features and functionality. Here are some highlights: - -### Add Support for extended Gateway API fields - -+ Added Support for HTTPRoute URLRewrite Filter -+ Added Support for HTTPRoute RequestMirror Filter -+ Added Support for HTTPRoute ResponseHeaderModifier Filter - -### Add Support for experimental Gateway APIs - -+ Added Support for the TCPRoute API -+ Added Support for the UDPRoute API -+ Added Support for the GRPCRoute API - -### Add Support for Rate Limiting - -+ Added Support for Global Rate Limiting - -### Add Support for Authentication - -+ Added Support for Request Authentication - -[Release Notes]: https://github.com/envoyproxy/gateway/blob/main/release-notes/v0.3.0.yaml -[matrix]: https://gateway.envoyproxy.io/v0.3.0/intro/compatibility.html -[docs]: https://gateway.envoyproxy.io/v0.3.0/index.html -[Download]: https://github.com/envoyproxy/gateway/releases/tag/v0.3.0 diff --git a/docs/latest/releases/v0.4.md b/docs/latest/releases/v0.4.md deleted file mode 100644 index 81a9bc3a0ede..000000000000 --- a/docs/latest/releases/v0.4.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Announcing Envoy Gateway v0.4 -linktitle: v0.4 -subtitle: Major Update -description: Envoy Gateway v0.4 release announcement. -publishdate: 2023-04-24 -release: v0.4.0 -skip_list: true -aliases: -- /releases/v0.4 -- /releases/v0.4.0 ---- -# Envoy Gateway Release v0.4 - -We are pleased to announce the release of Envoy Gateway v0.4! - -This is the third functional release of Envoy Gateway. We would like to thank the entire Envoy Gateway community for -helping publish the release. - -| [Release Notes][] | [Docs][docs] | [Compatibility Matrix][matrix] | [Download][] | -|-------------------|--------------|--------------------------------|--------------| - -## What's New - -The release adds a ton of features and functionality. Here are some highlights: - -### Upgrade Gateway API Dependency - -+ Upgraded to Gateway API v0.6.2 - -### Add Helm Support - -+ Installation of Envoy Gateway can now be done through helm - -### Add egctl CLI Tool - -+ Added egctl Support for Dry Runs of Gateway API Config -+ Added egctl Support for Dumping Envoy Proxy xDS Resources - -### Add Support for extending Envoy Gateway - -+ Added Initial Framework for Building an Extension on top of Envoy Gateway - -### Ratelimiting - -+ Added Support for Ratelimiting Based On IP Subnet - -### API Updates - -+ Added Support for Custom Envoy Proxy Bootstrap Config -+ Added Support for Configuring the Envoy Proxy Image and Service -+ Added Support for Configuring Annotations, Resources, and Securitycontext Settings on Ratelimit Infra and Envoy Proxy -+ Added Support for Using Multiple Certificates on a Single Fully Qualified Domain Name -+ Envoy Proxy Pod and Container SecurityContext is now Configurable -+ Added Support for Service Method Match in GRPCRoute -+ Added EDS Support - -[Release Notes]: https://github.com/envoyproxy/gateway/blob/main/release-notes/v0.4.0.yaml -[matrix]: https://gateway.envoyproxy.io/v0.4.0/intro/compatibility.html -[docs]: https://gateway.envoyproxy.io/v0.4.0/index.html -[Download]: https://github.com/envoyproxy/gateway/releases/tag/v0.4.0 diff --git a/docs/latest/releases/v0.5.md b/docs/latest/releases/v0.5.md deleted file mode 100644 index 8c7b72cd53b0..000000000000 --- a/docs/latest/releases/v0.5.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Announcing Envoy Gateway v0.5 -linktitle: v0.5 -subtitle: Major Update -description: Envoy Gateway v0.5 release announcement. -publishdate: 2023-08-02 -release: v0.5.0 -skip_list: true -aliases: -- /releases/v0.5 -- /releases/v0.5.0 ---- -# Envoy Gateway Release v0.5 - -We are pleased to announce the release of Envoy Gateway v0.5! - -This is the third functional release of Envoy Gateway. We would like to thank the entire Envoy Gateway community for -helping publish the release. - -| [Release Notes][] | [Docs][docs] | [Compatibility Matrix][matrix] | [Download][] | -|-------------------|--------------|--------------------------------|--------------| - -## What's New - -The release adds a ton of features and functionality. Here are some highlights: - -### Upgrade Gateway API Dependency - -+ Upgraded to Gateway API v0.7.1 - -### Add Data Plane Proxy Telemetry - -+ Added Support for Access Logging, Tracing and Metrics Telemetry - -### Add Support for directly configuring xDS - -+ Added Support for the EnvoyPatchPolicy API - -### Ratelimiting - -+ Added Support for Distinct Ratelimiting Based On IP Addresses -+ Added Support for JWT Claim based Ratelimiting -+ Switched to Xds SOTW Server for RateLimit Service Configuration - -### API Updates - -+ Added Support for configuring EnvoyProxy Pod Labels -+ Added Support for configuring EnvoyProxy Deployment Strategy Settings, Volumes and Volume Mounts -+ Added Support for configuring EnvoyProxy as a NodePort Type Service -+ Added Admin Server for Envoy Gateway -+ Added Pprof Debug Support for Envoy Gateway -+ Added Support to Watch for Resources in Select Namespaces - -## Envoy Proxy - -+ Added Best Practices Default Edge Settings to Xds Resources - -[Release Notes]: https://github.com/envoyproxy/gateway/blob/main/release-notes/v0.5.0.yaml -[matrix]: https://gateway.envoyproxy.io/v0.5.0/intro/compatibility.html -[docs]: https://gateway.envoyproxy.io/v0.5.0/index.html -[Download]: https://github.com/envoyproxy/gateway/releases/tag/v0.5.0 diff --git a/docs/latest/roadmap.rst b/docs/latest/roadmap.rst deleted file mode 100644 index 711b62455031..000000000000 --- a/docs/latest/roadmap.rst +++ /dev/null @@ -1,9 +0,0 @@ -Roadmap -======= - -Learn about the future direction of Envoy Gateway. - -.. toctree:: - :maxdepth: 2 - - design/roadmap diff --git a/docs/latest/user_docs.rst b/docs/latest/user_docs.rst deleted file mode 100644 index 8bd0c4ccfa9b..000000000000 --- a/docs/latest/user_docs.rst +++ /dev/null @@ -1,35 +0,0 @@ -User Guides -=========== - -Learn how to deploy, use, and operate Envoy Gateway. - -.. toctree:: - :maxdepth: 1 - - user/installation - user/quickstart - user/http-routing - user/http-redirect - user/http-urlrewrite - user/http-traffic-splitting - user/http-traffic-mirroring - user/http-request-headers - user/http-response-headers - user/secure-gateways - user/tls-cert-manager - user/tls-passthrough - user/tls-termination - user/tcp-routing - user/udp-routing - user/grpc-routing - user/authn - user/rate-limit - user/envoy-patch-policy - user/egctl - user/customize-envoyproxy - user/deployment-mode - user/gateway-address - user/gatewayapi-support - user/gateway-api-metrics - user/proxy-observability - user/multicluster-service diff --git a/docs/v0.2.0/about_docs.rst b/docs/v0.2.0/about_docs.rst deleted file mode 100644 index ecaa28247b91..000000000000 --- a/docs/v0.2.0/about_docs.rst +++ /dev/null @@ -1,9 +0,0 @@ -About the Documentation -======================= - -Learn how to contribute to Envoy Gateway documentation. - -.. toctree:: - :maxdepth: 1 - - dev/DOCS diff --git a/docs/v0.2.0/conf.py b/docs/v0.2.0/conf.py deleted file mode 100644 index 94f7896b25ae..000000000000 --- a/docs/v0.2.0/conf.py +++ /dev/null @@ -1,43 +0,0 @@ -import os -import re - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - 'sphinx.ext.duration', - 'sphinx.ext.autosectionlabel', - 'myst_parser', -] - -autosectionlabel_prefix_document = True -myst_heading_anchors = 3 - -html_theme = 'alabaster' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -version = os.environ["BUILD_VERSION"] -envoyVersion = os.environ["ENVOY_PROXY_VERSION"] -gatewayAPIVersion = os.environ["GATEWAYAPI_VERSION"] - -project = 'Envoy Gateway' -author = 'Envoy Gateway Project Authors' - -copyright = 'Envoy Gateway Project Authors | GitHub | Latest Docs' - -source_suffix = { - '.rst': 'restructuredtext', - '.md': 'markdown', -} - -variables_to_export = [ - "envoyVersion", - "gatewayAPIVersion", -] - -frozen_locals = dict(locals()) -rst_epilog = '\n'.join(map(lambda x: f".. |{x}| replace:: {frozen_locals[x]}", variables_to_export)) -del frozen_locals diff --git a/docs/v0.2.0/design_docs.rst b/docs/v0.2.0/design_docs.rst deleted file mode 100644 index 4e95a518d1e9..000000000000 --- a/docs/v0.2.0/design_docs.rst +++ /dev/null @@ -1,12 +0,0 @@ -Design Docs -=========== - -Learn about the internal details of Envoy Gateway. - -.. toctree:: - :maxdepth: 2 - - design/system-design - design/gatewayapi-translator - design/watching - design/config-api diff --git a/docs/v0.2.0/dev_docs.rst b/docs/v0.2.0/dev_docs.rst deleted file mode 100644 index e546e14c1ada..000000000000 --- a/docs/v0.2.0/dev_docs.rst +++ /dev/null @@ -1,15 +0,0 @@ -Developer Docs -============== - -Learn how to contribute to Envoy Gateway. - -.. toctree:: - :maxdepth: 1 - - dev/GOALS - dev/CODE_OF_CONDUCT - dev/CODEOWNERS - dev/CONTRIBUTING - dev/README - dev/DOCS - dev/releasing diff --git a/docs/v0.2.0/get_involved.rst b/docs/v0.2.0/get_involved.rst deleted file mode 100644 index f17febd56513..000000000000 --- a/docs/v0.2.0/get_involved.rst +++ /dev/null @@ -1,9 +0,0 @@ -Getting Involved -================ - -We welcome contributions from the community. Please carefully review the -`project goals `_ -and the -`code of conduct `_ -before diving in. - diff --git a/docs/v0.2.0/index.rst b/docs/v0.2.0/index.rst deleted file mode 100644 index 7da20035f47f..000000000000 --- a/docs/v0.2.0/index.rst +++ /dev/null @@ -1,32 +0,0 @@ -`Envoy Gateway `_ -==================== - -Release: |version| - -.. image:: https://img.shields.io/badge/slack-join-orange.svg - :target: https://envoyproxy.slack.com/archives/C03E6NHLESV - :alt: Join the Envoy Slack - -Envoy Gateway is an open source project for managing `Envoy Proxy`_ as a standalone or Kubernetes-based application -gateway. `Gateway API`_ resources are used to dynamically provision and configure the managed Envoy Proxies. Whether -you are interested in using or contributing to Envoy Gateway, the following resources will help you get started: - -.. toctree:: - :maxdepth: 1 - - intro/compatibility - user_docs - design_docs - dev_docs - releases - roadmap - about_docs - get_involved - -.. note:: - - This project is under active development. Many, many features are not - complete. We would love for you to :doc:`get involved`. - -.. _Envoy Proxy: https://www.envoyproxy.io/ -.. _Gateway API: https://gateway-api.sigs.k8s.io/ diff --git a/docs/v0.2.0/intro/compatibility.rst b/docs/v0.2.0/intro/compatibility.rst deleted file mode 100644 index 4dc06f769e53..000000000000 --- a/docs/v0.2.0/intro/compatibility.rst +++ /dev/null @@ -1,19 +0,0 @@ -Compatibility Matrix -==================== - -Envoy Gateway relies on the Envoy Proxy and the Gateway API, and runs -within a Kubernetes cluster. Not all versions of each of these products -can function together for Envoy Gateway. Supported version combinations -are listed below; **bold** type indicates the versions of the Envoy Proxy -and the Gateway API actually compiled into each Envoy Gateway release. - -+--------------------------+---------------------+---------------------+----------------------------+ -| Envoy Gateway version | Envoy Proxy version | Gateway API version | Kubernetes minimum version | -+--------------------------+---------------------+---------------------+----------------------------+ -| v0.2.0 | **v1.23-latest** | **v0.5.1** | v1.24 | -+--------------------------+---------------------+---------------------+----------------------------+ - -.. note:: - - This project is under active development. Many, many features are not - complete. We would love for you to :doc:`get involved<../get_involved>`. diff --git a/docs/v0.2.0/releases.rst b/docs/v0.2.0/releases.rst deleted file mode 100644 index 090c6707fd2d..000000000000 --- a/docs/v0.2.0/releases.rst +++ /dev/null @@ -1,10 +0,0 @@ -Releases -======== - -Learn more about Envoy Gateway releases. - -.. toctree:: - :maxdepth: 1 - - releases/README - releases/v0.2 diff --git a/docs/v0.2.0/releases/README.md b/docs/v0.2.0/releases/README.md deleted file mode 100644 index 93d3366efb0f..000000000000 --- a/docs/v0.2.0/releases/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# Release Details - -This document provides details for Envoy Gateway releases. Envoy Gateway follows the Semantic Versioning [v2.0.0 spec][] -for release versioning. Since Envoy Gateway is a new project, minor releases are the only defined releases. Envoy -Gateway maintainers will establish additional release details, e.g. patch releases, at a future date. - -## Stable Releases - -Stable releases of Envoy Gateway include: - -* Minor Releases- A new release branch and corresponding tag are created from the `main` branch. A minor release - is supported for 6 months following the release date. As the project matures, Envoy Gateway maintainers will reassess - the support timeframe. - -Minor releases happen quarterly and follow the schedule below. - -## Release Management - -Minor releases are handled by a designated Envoy Gateway maintainer. This maintainer is considered the Release Manager -for the release. The details for creating a release are outlined in the [release guide][]. The Release Manager is -responsible for coordinating the overall release. This includes identifying issues to be fixed in the release, -communications with the Envoy Gateway community, and the mechanics of the release. - -| Quarter | Release Manager | -|:-------:|:--------------------------------------------------------------:| -| 2022 Q4 | Daneyon Hansen ([danehans](https://github.com/danehans)) | -| 2023 Q1 | TBD | - -## Release Schedule - -In order to align with the Envoy Proxy [release schedule][], Envoy Gateway releases are produced on a fixed schedule -(the 22nd day of each quarter), with an acceptable delay of up to 2 weeks, and a hard deadline of 3 weeks. - -| Version | Expected | Actual | Difference | End of Life | -|:-------:|:-----------:|:-----------:|:----------:|:-----------:| -| 0.2.0 | 2022/10/22 | 2022/10/20 | -2 day | 2023/4/20 | -| 0.3.0 | 2023/01/22 | | | | - -[v2.0.0 spec]: https://semver.org/spec/v2.0.0.html -[release guide]: ../dev/releasing.md -[release schedule]: https://github.com/envoyproxy/envoy/blob/main/RELEASES.md#major-release-schedule diff --git a/docs/v0.2.0/releases/v0.2.md b/docs/v0.2.0/releases/v0.2.md deleted file mode 100644 index a0dc0e885de8..000000000000 --- a/docs/v0.2.0/releases/v0.2.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Announcing Envoy Gateway v0.2 -linktitle: v0.2 -subtitle: Major Update -description: Envoy Gateway v0.2 release announcement. -publishdate: 2022-10-20 -release: v0.2.0 -skip_list: true -aliases: -- /releases/v0.2 -- /releases/v0.2.0 ---- -# Envoy Gateway Release v0.2 - -We are pleased to announce the release of Envoy Gateway v0.2! - -This is the first functional release of Envoy Gateway. We would like to thank the entire Envoy Gateway community for -helping publish the release. - -| [Release Notes][] | [Docs][docs] | [Compatibility Matrix][matrix] | [Download][] | -|-------------------|--------------|--------------------------------|--------------| - -## What's New - -The release adds a ton of features and functionality. Here are some highlights: - -### Kubernetes Support - -Run Envoy Gateway in a Kubernetes cluster. Checkout the [quickstart guide][] to get started with Envoy Gateway in a few -simple steps. - -### Gateway API Support - -Envoy Gateway supports Gateway API resources for running and configuring a managed fleet of Envoy proxies. Envoy Gateway -passes Gateway API core [conformance tests][] and supports GatewayClass, Gateway, HTTPRoute, and TLSRoute resources. See -the [documentation][docs] for additional details on how to use Envoy Gateway for your edge proxy and API gateway needs. - -## Envoy Gateway at EnvoyCon NA - -Envoy Gateway will be at [EnvoyCon NA][] this October in Detroit. Don't miss [our talk][] to learn more about the -release and future direction of the project. - -[Release Notes]: https://github.com/envoyproxy/gateway/blob/main/release-notes/v0.2.0.yaml -[matrix]: https://gateway.envoyproxy.io/intro/compatibility.html -[docs]: https://gateway.envoyproxy.io/index.html -[Download]: https://github.com/envoyproxy/gateway/releases/tag/v0.2.0 -[conformance tests]: https://gateway-api.sigs.k8s.io/concepts/conformance/?h=conformance -[quickstart guide]: https://gateway.envoyproxy.io/user/quickstart.html -[EnvoyCon NA]: https://events.linuxfoundation.org/envoycon-north-america/program/schedule/ -[our talk]: https://sched.co/1AO5S diff --git a/docs/v0.2.0/roadmap.rst b/docs/v0.2.0/roadmap.rst deleted file mode 100644 index 711b62455031..000000000000 --- a/docs/v0.2.0/roadmap.rst +++ /dev/null @@ -1,9 +0,0 @@ -Roadmap -======= - -Learn about the future direction of Envoy Gateway. - -.. toctree:: - :maxdepth: 2 - - design/roadmap diff --git a/docs/v0.2.0/user_docs.rst b/docs/v0.2.0/user_docs.rst deleted file mode 100644 index 5a2f83e312ee..000000000000 --- a/docs/v0.2.0/user_docs.rst +++ /dev/null @@ -1,15 +0,0 @@ -User Guides -=========== - -Learn how to deploy, use, and operate Envoy Gateway. - -.. toctree:: - :maxdepth: 1 - - user/quickstart - user/http-routing - user/http-redirect - user/http-traffic-splitting - user/http-request-headers - user/secure-gateways - user/tls-passthrough diff --git a/docs/v0.3.0/about_docs.rst b/docs/v0.3.0/about_docs.rst deleted file mode 100644 index ecaa28247b91..000000000000 --- a/docs/v0.3.0/about_docs.rst +++ /dev/null @@ -1,9 +0,0 @@ -About the Documentation -======================= - -Learn how to contribute to Envoy Gateway documentation. - -.. toctree:: - :maxdepth: 1 - - dev/DOCS diff --git a/docs/v0.3.0/api_docs.rst b/docs/v0.3.0/api_docs.rst deleted file mode 100644 index b470527c50cc..000000000000 --- a/docs/v0.3.0/api_docs.rst +++ /dev/null @@ -1,10 +0,0 @@ -API Docs -============== - -API reference documentation for Envoy Gateway. - -.. toctree:: - :maxdepth: 1 - - Config APIs - Extension APIs diff --git a/docs/v0.3.0/conf.py b/docs/v0.3.0/conf.py deleted file mode 100644 index 76ef5717548f..000000000000 --- a/docs/v0.3.0/conf.py +++ /dev/null @@ -1,43 +0,0 @@ -import os - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - 'sphinx.ext.duration', - 'sphinx.ext.autosectionlabel', - 'myst_parser', -] - -autosectionlabel_prefix_document = True -myst_heading_anchors = 3 - -html_theme = 'alabaster' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -version = os.environ["BUILD_VERSION"] -envoyVersion = os.environ["ENVOY_PROXY_VERSION"] -gatewayAPIVersion = os.environ["GATEWAYAPI_VERSION"] - -project = 'Envoy Gateway' -author = 'Envoy Gateway Project Authors' - -copyright = 'Envoy Gateway Project Authors | GitHub | Latest Docs' - -source_suffix = { - '.rst': 'restructuredtext', - '.md': 'markdown', -} - -variables_to_export = [ - "version", - "envoyVersion", - "gatewayAPIVersion", -] - -frozen_locals = dict(locals()) -rst_epilog = '\n'.join(map(lambda x: f".. |{x}| replace:: {frozen_locals[x]}", variables_to_export)) -del frozen_locals diff --git a/docs/v0.3.0/design_docs.rst b/docs/v0.3.0/design_docs.rst deleted file mode 100644 index 29d4e9ff259a..000000000000 --- a/docs/v0.3.0/design_docs.rst +++ /dev/null @@ -1,17 +0,0 @@ -Design Docs -=========== - -Learn about the internal details of Envoy Gateway. - -.. toctree:: - :maxdepth: 1 - - design/system-design - design/gatewayapi-support - design/gatewayapi-translator - design/watching - design/config-api - design/tcp-udp-design - design/egctl - design/ratelimit - design/request-authentication diff --git a/docs/v0.3.0/dev_docs.rst b/docs/v0.3.0/dev_docs.rst deleted file mode 100644 index e546e14c1ada..000000000000 --- a/docs/v0.3.0/dev_docs.rst +++ /dev/null @@ -1,15 +0,0 @@ -Developer Docs -============== - -Learn how to contribute to Envoy Gateway. - -.. toctree:: - :maxdepth: 1 - - dev/GOALS - dev/CODE_OF_CONDUCT - dev/CODEOWNERS - dev/CONTRIBUTING - dev/README - dev/DOCS - dev/releasing diff --git a/docs/v0.3.0/get_involved.rst b/docs/v0.3.0/get_involved.rst deleted file mode 100644 index f17febd56513..000000000000 --- a/docs/v0.3.0/get_involved.rst +++ /dev/null @@ -1,9 +0,0 @@ -Getting Involved -================ - -We welcome contributions from the community. Please carefully review the -`project goals `_ -and the -`code of conduct `_ -before diving in. - diff --git a/docs/v0.3.0/index.rst b/docs/v0.3.0/index.rst deleted file mode 100644 index b31be95cc017..000000000000 --- a/docs/v0.3.0/index.rst +++ /dev/null @@ -1,33 +0,0 @@ -`Envoy Gateway `_ -==================== - -Release: |version| - -.. image:: https://img.shields.io/badge/slack-join-orange.svg - :target: https://envoyproxy.slack.com/archives/C03E6NHLESV - :alt: Join the Envoy Slack - -Envoy Gateway is an open source project for managing `Envoy Proxy`_ as a standalone or Kubernetes-based application -gateway. `Gateway API`_ resources are used to dynamically provision and configure the managed Envoy Proxies. Whether -you are interested in using or contributing to Envoy Gateway, the following resources will help you get started: - -.. toctree:: - :maxdepth: 1 - - intro/compatibility - user_docs - design_docs - dev_docs - api_docs - releases - roadmap - about_docs - get_involved - -.. note:: - - This project is under active development. Many, many features are not - complete. We would love for you to :doc:`get involved`. - -.. _Envoy Proxy: https://www.envoyproxy.io/ -.. _Gateway API: https://gateway-api.sigs.k8s.io/ diff --git a/docs/v0.3.0/intro/compatibility.rst b/docs/v0.3.0/intro/compatibility.rst deleted file mode 100644 index bffbd8997dc0..000000000000 --- a/docs/v0.3.0/intro/compatibility.rst +++ /dev/null @@ -1,23 +0,0 @@ -Compatibility Matrix -==================== - -Envoy Gateway relies on the Envoy Proxy and the Gateway API, and runs -within a Kubernetes cluster. Not all versions of each of these products -can function together for Envoy Gateway. Supported version combinations -are listed below; **bold** type indicates the versions of the Envoy Proxy -and the Gateway API actually compiled into each Envoy Gateway release. - -+--------------------------+---------------------+---------------------+----------------------------+ -| Envoy Gateway version | Envoy Proxy version | Gateway API version | Kubernetes version | -+--------------------------+---------------------+---------------------+----------------------------+ -| v0.3.0 | **v1.25-latest** | **v0.6.1** | v1.24, v1.25, v1.26 | -+--------------------------+---------------------+---------------------+----------------------------+ -| v0.2.0 | **v1.23-latest** | **v0.5.1** | v1.24 | -+--------------------------+---------------------+---------------------+----------------------------+ -| latest | **dev-latest** | **v0.6.1** | v1.24, v1.25, v1.26 | -+--------------------------+---------------------+---------------------+----------------------------+ - -.. note:: - - This project is under active development. Many, many features are not - complete. We would love for you to :doc:`get involved<../get_involved>`. diff --git a/docs/v0.3.0/releases.rst b/docs/v0.3.0/releases.rst deleted file mode 100644 index 20d05b25ac81..000000000000 --- a/docs/v0.3.0/releases.rst +++ /dev/null @@ -1,11 +0,0 @@ -Releases -======== - -Learn more about Envoy Gateway releases. - -.. toctree:: - :maxdepth: 1 - - releases/README - releases/v0.2 - releases/v0.3 diff --git a/docs/v0.3.0/releases/README.md b/docs/v0.3.0/releases/README.md deleted file mode 100644 index 3f6df9e7ea6a..000000000000 --- a/docs/v0.3.0/releases/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# Release Details - -This document provides details for Envoy Gateway releases. Envoy Gateway follows the Semantic Versioning [v2.0.0 spec][] -for release versioning. Since Envoy Gateway is a new project, minor releases are the only defined releases. Envoy -Gateway maintainers will establish additional release details, e.g. patch releases, at a future date. - -## Stable Releases - -Stable releases of Envoy Gateway include: - -* Minor Releases- A new release branch and corresponding tag are created from the `main` branch. A minor release - is supported for 6 months following the release date. As the project matures, Envoy Gateway maintainers will reassess - the support timeframe. - -Minor releases happen quarterly and follow the schedule below. - -## Release Management - -Minor releases are handled by a designated Envoy Gateway maintainer. This maintainer is considered the Release Manager -for the release. The details for creating a release are outlined in the [release guide][]. The Release Manager is -responsible for coordinating the overall release. This includes identifying issues to be fixed in the release, -communications with the Envoy Gateway community, and the mechanics of the release. - -| Quarter | Release Manager | -|:-------:|:--------------------------------------------------------------:| -| 2022 Q4 | Daneyon Hansen ([danehans](https://github.com/danehans)) | -| 2023 Q1 | Xunzhuo Liu ([Xunzhuo](https://github.com/Xunzhuo)) | - -## Release Schedule - -In order to align with the Envoy Proxy [release schedule][], Envoy Gateway releases are produced on a fixed schedule -(the 22nd day of each quarter), with an acceptable delay of up to 2 weeks, and a hard deadline of 3 weeks. - -| Version | Expected | Actual | Difference | End of Life | -|:-------:|:-----------:|:-----------:|:----------:|:-----------:| -| 0.2.0 | 2022/10/22 | 2022/10/20 | -2 day | 2023/4/20 | -| 0.3.0 | 2023/01/22 | 2023/02/09 | +17 day | 2023/08/09 | - -[v2.0.0 spec]: https://semver.org/spec/v2.0.0.html -[release guide]: ../dev/releasing.md -[release schedule]: https://github.com/envoyproxy/envoy/blob/main/RELEASES.md#major-release-schedule diff --git a/docs/v0.3.0/roadmap.rst b/docs/v0.3.0/roadmap.rst deleted file mode 100644 index 711b62455031..000000000000 --- a/docs/v0.3.0/roadmap.rst +++ /dev/null @@ -1,9 +0,0 @@ -Roadmap -======= - -Learn about the future direction of Envoy Gateway. - -.. toctree:: - :maxdepth: 2 - - design/roadmap diff --git a/docs/v0.3.0/user_docs.rst b/docs/v0.3.0/user_docs.rst deleted file mode 100644 index 3669c0613a0a..000000000000 --- a/docs/v0.3.0/user_docs.rst +++ /dev/null @@ -1,22 +0,0 @@ -User Guides -=========== - -Learn how to deploy, use, and operate Envoy Gateway. - -.. toctree:: - :maxdepth: 1 - - user/quickstart - user/http-routing - user/http-redirect - user/http-urlrewrite - user/http-traffic-splitting - user/http-request-headers - user/http-response-headers - user/secure-gateways - user/tls-passthrough - user/tcp-routing - user/udp-routing - user/grpc-routing - user/authn - user/rate-limit diff --git a/docs/v0.4.0/about_docs.rst b/docs/v0.4.0/about_docs.rst deleted file mode 100644 index ecaa28247b91..000000000000 --- a/docs/v0.4.0/about_docs.rst +++ /dev/null @@ -1,9 +0,0 @@ -About the Documentation -======================= - -Learn how to contribute to Envoy Gateway documentation. - -.. toctree:: - :maxdepth: 1 - - dev/DOCS diff --git a/docs/v0.4.0/api_docs.rst b/docs/v0.4.0/api_docs.rst deleted file mode 100644 index b470527c50cc..000000000000 --- a/docs/v0.4.0/api_docs.rst +++ /dev/null @@ -1,10 +0,0 @@ -API Docs -============== - -API reference documentation for Envoy Gateway. - -.. toctree:: - :maxdepth: 1 - - Config APIs - Extension APIs diff --git a/docs/v0.4.0/conf.py b/docs/v0.4.0/conf.py deleted file mode 100644 index 76ef5717548f..000000000000 --- a/docs/v0.4.0/conf.py +++ /dev/null @@ -1,43 +0,0 @@ -import os - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - 'sphinx.ext.duration', - 'sphinx.ext.autosectionlabel', - 'myst_parser', -] - -autosectionlabel_prefix_document = True -myst_heading_anchors = 3 - -html_theme = 'alabaster' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -version = os.environ["BUILD_VERSION"] -envoyVersion = os.environ["ENVOY_PROXY_VERSION"] -gatewayAPIVersion = os.environ["GATEWAYAPI_VERSION"] - -project = 'Envoy Gateway' -author = 'Envoy Gateway Project Authors' - -copyright = 'Envoy Gateway Project Authors | GitHub | Latest Docs' - -source_suffix = { - '.rst': 'restructuredtext', - '.md': 'markdown', -} - -variables_to_export = [ - "version", - "envoyVersion", - "gatewayAPIVersion", -] - -frozen_locals = dict(locals()) -rst_epilog = '\n'.join(map(lambda x: f".. |{x}| replace:: {frozen_locals[x]}", variables_to_export)) -del frozen_locals diff --git a/docs/v0.4.0/design_docs.rst b/docs/v0.4.0/design_docs.rst deleted file mode 100644 index f1ad756e21bd..000000000000 --- a/docs/v0.4.0/design_docs.rst +++ /dev/null @@ -1,18 +0,0 @@ -Design Docs -=========== - -Learn about the internal details of Envoy Gateway. - -.. toctree:: - :maxdepth: 1 - - design/system-design - design/gatewayapi-translator - design/watching - design/config-api - design/tcp-udp-design - design/egctl - design/rate-limit - design/request-authentication - design/bootstrap - design/extending-envoy-gateway diff --git a/docs/v0.4.0/dev_docs.rst b/docs/v0.4.0/dev_docs.rst deleted file mode 100644 index e546e14c1ada..000000000000 --- a/docs/v0.4.0/dev_docs.rst +++ /dev/null @@ -1,15 +0,0 @@ -Developer Docs -============== - -Learn how to contribute to Envoy Gateway. - -.. toctree:: - :maxdepth: 1 - - dev/GOALS - dev/CODE_OF_CONDUCT - dev/CODEOWNERS - dev/CONTRIBUTING - dev/README - dev/DOCS - dev/releasing diff --git a/docs/v0.4.0/get_involved.rst b/docs/v0.4.0/get_involved.rst deleted file mode 100644 index f17febd56513..000000000000 --- a/docs/v0.4.0/get_involved.rst +++ /dev/null @@ -1,9 +0,0 @@ -Getting Involved -================ - -We welcome contributions from the community. Please carefully review the -`project goals `_ -and the -`code of conduct `_ -before diving in. - diff --git a/docs/v0.4.0/index.rst b/docs/v0.4.0/index.rst deleted file mode 100644 index dbe107b61d8b..000000000000 --- a/docs/v0.4.0/index.rst +++ /dev/null @@ -1,34 +0,0 @@ -`Envoy Gateway `_ -==================== - -Release: |version| - -.. image:: https://img.shields.io/badge/slack-join-orange.svg - :target: https://envoyproxy.slack.com/archives/C03E6NHLESV - :alt: Join the Envoy Slack - -Envoy Gateway is an open source project for managing `Envoy Proxy`_ as a standalone or Kubernetes-based application -gateway. `Gateway API`_ resources are used to dynamically provision and configure the managed Envoy Proxies. Whether -you are interested in using or contributing to Envoy Gateway, the following resources will help you get started: - -.. toctree:: - :maxdepth: 1 - - intro/compatibility - user_docs - design_docs - dev_docs - api_docs - releases - roadmap - about_docs - get_involved - presentations - -.. note:: - - This project is under active development. Many, many features are not - complete. We would love for you to :doc:`get involved`. - -.. _Envoy Proxy: https://www.envoyproxy.io/ -.. _Gateway API: https://gateway-api.sigs.k8s.io/ diff --git a/docs/v0.4.0/intro/compatibility.rst b/docs/v0.4.0/intro/compatibility.rst deleted file mode 100644 index 68722f8a762d..000000000000 --- a/docs/v0.4.0/intro/compatibility.rst +++ /dev/null @@ -1,25 +0,0 @@ -Compatibility Matrix -==================== - -Envoy Gateway relies on the Envoy Proxy and the Gateway API, and runs -within a Kubernetes cluster. Not all versions of each of these products -can function together for Envoy Gateway. Supported version combinations -are listed below; **bold** type indicates the versions of the Envoy Proxy -and the Gateway API actually compiled into each Envoy Gateway release. - -+--------------------------+---------------------+---------------------+---------------------+----------------------------+ -| Envoy Gateway version | Envoy Proxy version | Rate Limit version | Gateway API version | Kubernetes version | -+--------------------------+---------------------+---------------------+---------------------+----------------------------+ -| v0.4.0 | **v1.26-latest** | **542a6047** | **v0.6.2** | v1.25, v1.26, v1.27 | -+--------------------------+---------------------+---------------------+---------------------+----------------------------+ -| v0.3.0 | **v1.25-latest** | **f28024e3** | **v0.6.1** | v1.24, v1.25, v1.26 | -+--------------------------+---------------------+---------------------+---------------------+----------------------------+ -| v0.2.0 | **v1.23-latest** | | **v0.5.1** | v1.24 | -+--------------------------+---------------------+---------------------+---------------------+----------------------------+ -| latest | **dev-latest** | **master** | **v0.6.2** | v1.25, v1.26, v1.27 | -+--------------------------+---------------------+---------------------+---------------------+----------------------------+ - -.. note:: - - This project is under active development. Many, many features are not - complete. We would love for you to :doc:`get involved<../get_involved>`. diff --git a/docs/v0.4.0/presentations.md b/docs/v0.4.0/presentations.md deleted file mode 100644 index bc681b8c2686..000000000000 --- a/docs/v0.4.0/presentations.md +++ /dev/null @@ -1,12 +0,0 @@ -# Presentations - -This page contains a list of presentations about the Envoy Proxy project. - -| Conference | Title | Speaker | Recording | Slides | -|-----------------|------------------------------|------------------------------|--------------------------------------------------------|--------| -| KubeCon NA 2022 | Envoy Gateway Project Update | Daneyon Hansen & Alice Wasko | [YouTube](https://www.youtube.com/watch?v=3MUOZc8XNCc) | [Slides](https://static.sched.com/hosted_files/envoyconna22/2f/Envoy_Gateway_Project_Update_EnvoyCon_NA_2022.pptx) | -| KubeCon EU 2023 | Envoy Gateway Project Update | Alice Wasko | [YouTube](https://www.youtube.com/watch?v=4vnJxt9sVho) | [Slides](https://static.sched.com/hosted_files/kccnceu2023/58/Kubecon_EU_2023_Envoy_Gateway_Update.pptx) | - - - - diff --git a/docs/v0.4.0/releases.rst b/docs/v0.4.0/releases.rst deleted file mode 100644 index 42ce2b7d7b81..000000000000 --- a/docs/v0.4.0/releases.rst +++ /dev/null @@ -1,12 +0,0 @@ -Releases -======== - -Learn more about Envoy Gateway releases. - -.. toctree:: - :maxdepth: 1 - - releases/README - releases/v0.2 - releases/v0.3 - releases/v0.4 \ No newline at end of file diff --git a/docs/v0.4.0/releases/README.md b/docs/v0.4.0/releases/README.md deleted file mode 100644 index 2ca374ca69d8..000000000000 --- a/docs/v0.4.0/releases/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# Release Details - -This document provides details for Envoy Gateway releases. Envoy Gateway follows the Semantic Versioning [v2.0.0 spec][] -for release versioning. Since Envoy Gateway is a new project, minor releases are the only defined releases. Envoy -Gateway maintainers will establish additional release details, e.g. patch releases, at a future date. - -## Stable Releases - -Stable releases of Envoy Gateway include: - -* Minor Releases- A new release branch and corresponding tag are created from the `main` branch. A minor release - is supported for 6 months following the release date. As the project matures, Envoy Gateway maintainers will reassess - the support timeframe. - -Minor releases happen quarterly and follow the schedule below. - -## Release Management - -Minor releases are handled by a designated Envoy Gateway maintainer. This maintainer is considered the Release Manager -for the release. The details for creating a release are outlined in the [release guide][]. The Release Manager is -responsible for coordinating the overall release. This includes identifying issues to be fixed in the release, -communications with the Envoy Gateway community, and the mechanics of the release. - -| Quarter | Release Manager | -|:-------:|:--------------------------------------------------------------:| -| 2022 Q4 | Daneyon Hansen ([danehans](https://github.com/danehans)) | -| 2023 Q1 | Xunzhuo Liu ([Xunzhuo](https://github.com/Xunzhuo)) | -| 2023 Q2 | Alice Wasko ([AliceProxy](https://github.com/AliceProxy)) | - -## Release Schedule - -In order to align with the Envoy Proxy [release schedule][], Envoy Gateway releases are produced on a fixed schedule -(the 22nd day of each quarter), with an acceptable delay of up to 2 weeks, and a hard deadline of 3 weeks. - -| Version | Expected | Actual | Difference | End of Life | -|:-------:|:-----------:|:-----------:|:----------:|:-----------:| -| 0.2.0 | 2022/10/22 | 2022/10/20 | -2 day | 2023/4/20 | -| 0.3.0 | 2023/01/22 | 2023/02/09 | +17 day | 2023/08/09 | -| 0.3.0 | 2023/04/22 | 2023/04/24 | +2 day | 2023/10/24 | - -[v2.0.0 spec]: https://semver.org/spec/v2.0.0.html -[release guide]: ../dev/releasing.md -[release schedule]: https://github.com/envoyproxy/envoy/blob/main/RELEASES.md#major-release-schedule diff --git a/docs/v0.4.0/releases/v0.2.md b/docs/v0.4.0/releases/v0.2.md deleted file mode 100644 index a0dc0e885de8..000000000000 --- a/docs/v0.4.0/releases/v0.2.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Announcing Envoy Gateway v0.2 -linktitle: v0.2 -subtitle: Major Update -description: Envoy Gateway v0.2 release announcement. -publishdate: 2022-10-20 -release: v0.2.0 -skip_list: true -aliases: -- /releases/v0.2 -- /releases/v0.2.0 ---- -# Envoy Gateway Release v0.2 - -We are pleased to announce the release of Envoy Gateway v0.2! - -This is the first functional release of Envoy Gateway. We would like to thank the entire Envoy Gateway community for -helping publish the release. - -| [Release Notes][] | [Docs][docs] | [Compatibility Matrix][matrix] | [Download][] | -|-------------------|--------------|--------------------------------|--------------| - -## What's New - -The release adds a ton of features and functionality. Here are some highlights: - -### Kubernetes Support - -Run Envoy Gateway in a Kubernetes cluster. Checkout the [quickstart guide][] to get started with Envoy Gateway in a few -simple steps. - -### Gateway API Support - -Envoy Gateway supports Gateway API resources for running and configuring a managed fleet of Envoy proxies. Envoy Gateway -passes Gateway API core [conformance tests][] and supports GatewayClass, Gateway, HTTPRoute, and TLSRoute resources. See -the [documentation][docs] for additional details on how to use Envoy Gateway for your edge proxy and API gateway needs. - -## Envoy Gateway at EnvoyCon NA - -Envoy Gateway will be at [EnvoyCon NA][] this October in Detroit. Don't miss [our talk][] to learn more about the -release and future direction of the project. - -[Release Notes]: https://github.com/envoyproxy/gateway/blob/main/release-notes/v0.2.0.yaml -[matrix]: https://gateway.envoyproxy.io/intro/compatibility.html -[docs]: https://gateway.envoyproxy.io/index.html -[Download]: https://github.com/envoyproxy/gateway/releases/tag/v0.2.0 -[conformance tests]: https://gateway-api.sigs.k8s.io/concepts/conformance/?h=conformance -[quickstart guide]: https://gateway.envoyproxy.io/user/quickstart.html -[EnvoyCon NA]: https://events.linuxfoundation.org/envoycon-north-america/program/schedule/ -[our talk]: https://sched.co/1AO5S diff --git a/docs/v0.4.0/releases/v0.3.md b/docs/v0.4.0/releases/v0.3.md deleted file mode 100644 index 96d6d6d49ebe..000000000000 --- a/docs/v0.4.0/releases/v0.3.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Announcing Envoy Gateway v0.3 -linktitle: v0.3 -subtitle: Major Update -description: Envoy Gateway v0.3 release announcement. -publishdate: 2023-02-09 -release: v0.3.0 -skip_list: true -aliases: -- /releases/v0.3 -- /releases/v0.3.0 ---- -# Envoy Gateway Release v0.3 - -We are pleased to announce the release of Envoy Gateway v0.3! - -This is the second functional release of Envoy Gateway. We would like to thank the entire Envoy Gateway community for -helping publish the release. - -| [Release Notes][] | [Docs][docs] | [Compatibility Matrix][matrix] | [Download][] | -|-------------------|--------------|--------------------------------|--------------| - -## What's New - -The release adds a ton of features and functionality. Here are some highlights: - -### Add Support for extended Gateway API fields - -+ Added Support for HTTPRoute URLRewrite Filter -+ Added Support for HTTPRoute RequestMirror Filter -+ Added Support for HTTPRoute ResponseHeaderModifier Filter - -### Add Support for experimental Gateway APIs - -+ Added Support for the TCPRoute API -+ Added Support for the UDPRoute API -+ Added Support for the GRPCRoute API - -### Add Support for Rate Limiting - -+ Added Support for Global Rate Limiting - -### Add Support for Authentication - -+ Added Support for Request Authentication - -[Release Notes]: https://github.com/envoyproxy/gateway/blob/main/release-notes/v0.3.0.yaml -[matrix]: https://gateway.envoyproxy.io/v0.3.0/intro/compatibility.html -[docs]: https://gateway.envoyproxy.io/v0.3.0/index.html -[Download]: https://github.com/envoyproxy/gateway/releases/tag/v0.3.0 diff --git a/docs/v0.4.0/roadmap.rst b/docs/v0.4.0/roadmap.rst deleted file mode 100644 index 711b62455031..000000000000 --- a/docs/v0.4.0/roadmap.rst +++ /dev/null @@ -1,9 +0,0 @@ -Roadmap -======= - -Learn about the future direction of Envoy Gateway. - -.. toctree:: - :maxdepth: 2 - - design/roadmap diff --git a/docs/v0.4.0/user_docs.rst b/docs/v0.4.0/user_docs.rst deleted file mode 100644 index c7d56731696f..000000000000 --- a/docs/v0.4.0/user_docs.rst +++ /dev/null @@ -1,26 +0,0 @@ -User Guides -=========== - -Learn how to deploy, use, and operate Envoy Gateway. - -.. toctree:: - :maxdepth: 1 - - user/quickstart - user/http-routing - user/http-redirect - user/http-urlrewrite - user/http-traffic-splitting - user/http-request-headers - user/http-response-headers - user/secure-gateways - user/tls-passthrough - user/tcp-routing - user/udp-routing - user/grpc-routing - user/authn - user/rate-limit - user/egctl - user/customize-envoyproxy - user/deployment-mode - user/gatewayapi-support diff --git a/docs/v0.5.0/about_docs.rst b/docs/v0.5.0/about_docs.rst deleted file mode 100644 index ecaa28247b91..000000000000 --- a/docs/v0.5.0/about_docs.rst +++ /dev/null @@ -1,9 +0,0 @@ -About the Documentation -======================= - -Learn how to contribute to Envoy Gateway documentation. - -.. toctree:: - :maxdepth: 1 - - dev/DOCS diff --git a/docs/v0.5.0/api_docs.rst b/docs/v0.5.0/api_docs.rst deleted file mode 100644 index b470527c50cc..000000000000 --- a/docs/v0.5.0/api_docs.rst +++ /dev/null @@ -1,10 +0,0 @@ -API Docs -============== - -API reference documentation for Envoy Gateway. - -.. toctree:: - :maxdepth: 1 - - Config APIs - Extension APIs diff --git a/docs/v0.5.0/conf.py b/docs/v0.5.0/conf.py deleted file mode 100644 index 76ef5717548f..000000000000 --- a/docs/v0.5.0/conf.py +++ /dev/null @@ -1,43 +0,0 @@ -import os - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - 'sphinx.ext.duration', - 'sphinx.ext.autosectionlabel', - 'myst_parser', -] - -autosectionlabel_prefix_document = True -myst_heading_anchors = 3 - -html_theme = 'alabaster' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -version = os.environ["BUILD_VERSION"] -envoyVersion = os.environ["ENVOY_PROXY_VERSION"] -gatewayAPIVersion = os.environ["GATEWAYAPI_VERSION"] - -project = 'Envoy Gateway' -author = 'Envoy Gateway Project Authors' - -copyright = 'Envoy Gateway Project Authors | GitHub | Latest Docs' - -source_suffix = { - '.rst': 'restructuredtext', - '.md': 'markdown', -} - -variables_to_export = [ - "version", - "envoyVersion", - "gatewayAPIVersion", -] - -frozen_locals = dict(locals()) -rst_epilog = '\n'.join(map(lambda x: f".. |{x}| replace:: {frozen_locals[x]}", variables_to_export)) -del frozen_locals diff --git a/docs/v0.5.0/design/gatewayapi-translator.md b/docs/v0.5.0/design/gatewayapi-translator.md deleted file mode 100644 index 3cf0da94f5aa..000000000000 --- a/docs/v0.5.0/design/gatewayapi-translator.md +++ /dev/null @@ -1,250 +0,0 @@ -# Gateway API Translator Design - -The Gateway API translates external resources, e.g. GatewayClass, from the configured Provider to the Intermediate -Representation (IR). - -## Assumptions - -Initially target core conformance features only, to be followed by extended conformance features. - -## Inputs and Outputs - -The main inputs to the Gateway API translator are: - -- GatewayClass, Gateway, HTTPRoute, TLSRoute, Service, ReferenceGrant, Namespace, and Secret resources. - -__Note:__ ReferenceGrant is not fully implemented as of v0.2. - -The outputs of the Gateway API translator are: - -- Xds and Infra Internal Representations (IRs). -- Status updates for GatewayClass, Gateways, HTTPRoutes - -## Listener Compatibility - -Envoy Gateway follows Gateway API listener compatibility spec: -> Each listener in a Gateway must have a unique combination of Hostname, Port, and Protocol. An implementation MAY group -> Listeners by Port and then collapse each group of Listeners into a single Listener if the implementation determines -> that the Listeners in the group are “compatible”. - -__Note:__ Envoy Gateway does not collapse listeners across multiple Gateways. - -### Listener Compatibility Examples - -#### Example 1: Gateway with compatible Listeners (same port & protocol, different hostnames) - -```yaml -kind: Gateway -apiVersion: gateway.networking.k8s.io/v1beta1 -metadata: - name: gateway-1 - namespace: envoy-gateway -spec: - gatewayClassName: envoy-gateway - listeners: - - name: http - protocol: HTTP - port: 80 - allowedRoutes: - namespaces: - from: All - hostname: "*.envoygateway.io" - - name: http - protocol: HTTP - port: 80 - allowedRoutes: - namespaces: - from: All - hostname: whales.envoygateway.io -``` - -#### Example 2: Gateway with compatible Listeners (same port & protocol, one hostname specified, one not) - -```yaml -kind: Gateway -apiVersion: gateway.networking.k8s.io/v1beta1 -metadata: - name: gateway-1 - namespace: envoy-gateway -spec: - gatewayClassName: envoy-gateway - listeners: - - name: http - protocol: HTTP - port: 80 - allowedRoutes: - namespaces: - from: All - hostname: "*.envoygateway.io" - - name: http - protocol: HTTP - port: 80 - allowedRoutes: - namespaces: - from: All -``` - -#### Example 3: Gateway with incompatible Listeners (same port, protocol and hostname) - -```yaml -kind: Gateway -apiVersion: gateway.networking.k8s.io/v1beta1 -metadata: - name: gateway-1 - namespace: envoy-gateway -spec: - gatewayClassName: envoy-gateway - listeners: - - name: http - protocol: HTTP - port: 80 - allowedRoutes: - namespaces: - from: All - hostname: whales.envoygateway.io - - name: http - protocol: HTTP - port: 80 - allowedRoutes: - namespaces: - from: All - hostname: whales.envoygateway.io -``` - -#### Example 4: Gateway with incompatible Listeners (neither specify a hostname) - -```yaml -kind: Gateway -apiVersion: gateway.networking.k8s.io/v1beta1 -metadata: - name: gateway-1 - namespace: envoy-gateway -spec: - gatewayClassName: envoy-gateway - listeners: - - name: http - protocol: HTTP - port: 80 - allowedRoutes: - namespaces: - from: All - - name: http - protocol: HTTP - port: 80 - allowedRoutes: - namespaces: - from: All -``` - -## Computing Status - -Gateway API specifies a rich set of status fields & conditions for each resource. To achieve conformance, Envoy Gateway -must compute the appropriate status fields and conditions for managed resources. - -Status is computed and set for: - -- The managed GatewayClass (`gatewayclass.status.conditions`). -- Each managed Gateway, based on its Listeners' status (`gateway.status.conditions`). For the Kubernetes provider, the - Envoy Deployment and Service status are also included to calculate Gateway status. -- Listeners for each Gateway (`gateway.status.listeners`). -- The ParentRef for each Route (`route.status.parents`). - -The Gateway API translator is responsible for calculating status conditions while translating Gateway API resources to -the IR and publishing status over the [message bus][]. The Status Manager subscribes to these status messages and -updates the resource status using the configured provider. For example, the Status Manager uses a Kubernetes client to -update resource status on the Kubernetes API server. - -## Outline - -The following roughly outlines the translation process. Each step may produce (1) IR; and (2) status updates on Gateway -API resources. - -1. Process Gateway Listeners - - Validate unique hostnames, ports, and protocols. - - Validate and compute supported kinds. - - Validate allowed namespaces (validate selector if specified). - - Validate TLS fields if specified, including resolving referenced Secrets. - -2. Process HTTPRoutes - - foreach route rule: - - compute matches - - [core] path exact, path prefix - - [core] header exact - - [extended] query param exact - - [extended] HTTP method - - compute filters - - [core] request header modifier (set/add/remove) - - [core] request redirect (hostname, statuscode) - - [extended] request mirror - - compute backends - - [core] Kubernetes services - - foreach route parent ref: - - get matching listeners (check Gateway, section name, listener validation status, listener allowed routes, hostname intersection) - - foreach matching listener: - - foreach hostname intersection with route: - - add each computed route rule to host - -## Context Structs - -To help store, access and manipulate information as it's processed during the translation process, a set of context -structs are used. These structs wrap a given Gateway API type, and add additional fields and methods to support -processing. - -`GatewayContext` wraps a Gateway and provides helper methods for setting conditions, accessing Listeners, etc. - -```go -type GatewayContext struct { - // The managed Gateway - *v1beta1.Gateway - - // A list of Gateway ListenerContexts. - listeners []*ListenerContext -} -``` - -`ListenerContext` wraps a Listener and provides helper methods for setting conditions and other status information on -the associated Gateway. - -```go -type ListenerContext struct { - // The Gateway listener. - *v1beta1.Listener - - // The Gateway this Listener belongs to. - gateway *v1beta1.Gateway - - // An index used for managing this listener in the list of Gateway listeners. - listenerStatusIdx int - - // Only Routes in namespaces selected by the selector may be attached - // to the Gateway this listener belongs to. - namespaceSelector labels.Selector - - // The TLS Secret for this Listener, if applicable. - tlsSecret *v1.Secret -} -``` - -`RouteContext` represents a generic Route object (HTTPRoute, TLSRoute, etc.) that can reference Gateway objects. - -```go -type RouteContext interface { - client.Object - - // GetRouteType returns the Kind of the Route object, HTTPRoute, - // TLSRoute, TCPRoute, UDPRoute etc. - GetRouteType() string - - // GetHostnames returns the hosts targeted by the Route object. - GetHostnames() []string - - // GetParentReferences returns the ParentReference of the Route object. - GetParentReferences() []v1beta1.ParentReference - - // GetRouteParentContext returns RouteParentContext by using the Route - // objects' ParentReference. - GetRouteParentContext(forParentRef v1beta1.ParentReference) *RouteParentContext -} -``` - -[message bus]: watching.md diff --git a/docs/v0.5.0/design/watching.md b/docs/v0.5.0/design/watching.md deleted file mode 100644 index b8477a30e2d6..000000000000 --- a/docs/v0.5.0/design/watching.md +++ /dev/null @@ -1,117 +0,0 @@ -# Watching Components Design - -Envoy Gateway is made up of several components that communicate in-process. Some of them (namely Providers) watch -external resources, and "publish" what they see for other components to consume; others watch what another publishes and -act on it (such as the resource translator watches what the providers publish, and then publishes its own results that -are watched by another component). Some of these internally published results are consumed by multiple components. - -To facilitate this communication use the [watchable][] library. The `watchable.Map` type is very similar to the -standard library's `sync.Map` type, but supports a `.Subscribe` (and `.SubscribeSubset`) method that promotes a pub/sub -pattern. - -## Pub - -Many of the things we communicate around are naturally named, either by a bare "name" string or by a "name"/"namespace" -tuple. And because `watchable.Map` is typed, it makes sense to have one map for each type of thing (very similar to if -we were using native Go `map`s). For example, a struct that might be written to by the Kubernetes provider, and read by -the IR translator: - - ```go - type ResourceTable struct { - // gateway classes are cluster-scoped; no namespace - GatewayClasses watchable.Map[string, *gwapiv1b1.GatewayClass] - - // gateways are namespace-scoped, so use a k8s.io/apimachinery/pkg/types.NamespacedName as the map key. - Gateways watchable.Map[types.NamespacedName, *gwapiv1b1.Gateway] - - HTTPRoutes watchable.Map[types.NamespacedName, *gwapiv1b1.HTTPRoute] - } - ``` - -The Kubernetes provider updates the table by calling `table.Thing.Store(name, val)` and `table.Thing.Delete(name)`; -updating a map key with a value that is deep-equal (usually `reflect.DeepEqual`, but you can implement your own `.Equal` -method) the current value is a no-op; it won't trigger an event for subscribers. This is handy so that the publisher -doesn't have as much state to keep track of; it doesn't need to know "did I already publish this thing", it can just -`.Store` its data and `watchable` will do the right thing. - -## Sub - -Meanwhile, the translator and other interested components subscribe to it with `table.Thing.Subscribe` (or -`table.Thing.SubscribeSubset` if they only care about a few "Thing"s). So the translator goroutine might look like: - - ```go - func(ctx context.Context) error { - for snapshot := range k8sTable.HTTPRoutes.Subscribe(ctx) { - fullState := irInput{ - GatewayClasses: k8sTable.GatewayClasses.LoadAll(), - Gateways: k8sTable.Gateways.LoadAll(), - HTTPRoutes: snapshot.State, - } - translate(irInput) - } - } - ``` - -Or, to watch multiple maps in the same loop: - - ```go - func worker(ctx context.Context) error { - classCh := k8sTable.GatewayClasses.Subscribe(ctx) - gwCh := k8sTable.Gateways.Subscribe(ctx) - routeCh := k8sTable.HTTPRoutes.Subscribe(ctx) - for ctx.Err() == nil { - var arg irInput - select { - case snapshot := <-classCh: - arg.GatewayClasses = snapshot.State - case snapshot := <-gwCh: - arg.Gateways = snapshot.State - case snapshot := <-routeCh: - arg.Routes = snapshot.State - } - if arg.GateWayClasses == nil { - arg.GatewayClasses = k8sTable.GateWayClasses.LoadAll() - } - if arg.GateWays == nil { - arg.Gateways = k8sTable.GateWays.LoadAll() - } - if arg.HTTPRoutes == nil { - arg.HTTPRoutes = k8sTable.HTTPRoutes.LoadAll() - } - translate(irInput) - } - } - ``` - -From the updates it gets from `.Subscribe`, it can get a full view of the map being subscribed to via `snapshot.State`; -but it must read the other maps explicitly. Like `sync.Map`, `watchable.Map`s are thread-safe; while `.Subscribe` is a -handy way to know when to run, `.Load` and friends can be used without subscribing. - -There can be any number of subscribers. For that matter, there can be any number of publishers `.Store`ing things, but -it's probably wise to just have one publisher for each map. - -The channel returned from `.Subscribe` **is immediately readable** with a snapshot of the map as it existed when -`.Subscribe` was called; and becomes readable again whenever `.Store` or `.Delete` mutates the map. If multiple -mutations happen between reads (or if mutations happen between `.Subscribe` and the first read), they are coalesced in -to one snapshot to be read; the `snapshot.State` is the most-recent full state, and `snapshot.Updates` is a listing of -each of the mutations that cause this snapshot to be different than the last-read one. This way subscribers don't need -to worry about a backlog accumulating if they can't keep up with the rate of changes from the publisher. - -If the map contains anything before `.Subscribe` is called, that very first read won't include `snapshot.Updates` -entries for those pre-existing items; if you are working with `snapshot.Update` instead of `snapshot.State`, then you -must add special handling for your first read. We have a utility function `./internal/message.HandleSubscription` to -help with this. - -## Other Notes - -The common pattern will likely be that the entrypoint that launches the goroutines for each component instantiates the -map, and passes them to the appropriate publishers and subscribers; same as if they were communicating via a dumb -`chan`. - -A limitation of `watchable.Map` is that in order to ensure safety between goroutines, it does require that value types -be deep-copiable; either by having a `DeepCopy` method, being a `proto.Message`, or by containing no reference types and -so can be deep-copied by naive assignment. Fortunately, we're using `controller-gen` anyway, and `controller-gen` can -generate `DeepCopy` methods for us: just stick a `// +k8s:deepcopy-gen=true` on the types that you want it to generate -methods for. - -[watchable]: https://pkg.go.dev/github.com/telepresenceio/watchable diff --git a/docs/v0.5.0/design_docs.rst b/docs/v0.5.0/design_docs.rst deleted file mode 100644 index a0b82b578f88..000000000000 --- a/docs/v0.5.0/design_docs.rst +++ /dev/null @@ -1,20 +0,0 @@ -Design Docs -=========== - -Learn about the internal details of Envoy Gateway. - -.. toctree:: - :maxdepth: 1 - - design/system-design - design/gatewayapi-translator - design/watching - design/config-api - design/tcp-udp-design - design/egctl - design/rate-limit - design/request-authentication - design/bootstrap - design/extending-envoy-gateway - design/local-envoy-gateway - design/accesslog diff --git a/docs/v0.5.0/dev/CODEOWNERS.md b/docs/v0.5.0/dev/CODEOWNERS.md deleted file mode 100644 index d4229b6b23f2..000000000000 --- a/docs/v0.5.0/dev/CODEOWNERS.md +++ /dev/null @@ -1,15 +0,0 @@ -# Maintainers - -## The following maintainers, listed in alphabetical order, own everything - -- @AliceProxy -- @arkodg -- @skriss -- @Xunzhuo -- @youngnick -- @zirain - -## Emeritus Maintainers - -- @danehans -- @alexgervais diff --git a/docs/v0.5.0/dev/CODE_OF_CONDUCT.md b/docs/v0.5.0/dev/CODE_OF_CONDUCT.md deleted file mode 100644 index a0a295770f31..000000000000 --- a/docs/v0.5.0/dev/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,3 +0,0 @@ -# Community Code of Conduct - -Gateway follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/main/code-of-conduct.md). diff --git a/docs/v0.5.0/dev/DOCS.md b/docs/v0.5.0/dev/DOCS.md deleted file mode 100644 index fb49b9d55dda..000000000000 --- a/docs/v0.5.0/dev/DOCS.md +++ /dev/null @@ -1,63 +0,0 @@ -# Working on the Envoy Gateway Docs - -The documentation for the Envoy Gateway lives in the `docs/` directory. Any -individual document can be written using either [reStructuredText] or [Markdown], -you can choose the format that you're most comfortable with when working on the -documentation. - -## Documentation Structure - -We supported the versioned Docs now, the directory name under docs represents -the version of docs. The root of the latest site is in `docs/latest/index.rst`. -This is probably where to start if you're trying to understand how things fit together. - -Note that the new contents should be added to `docs/latest` and will be cut off at -the next release. The contents under `docs/v0.2.0` are auto-generated, -and usually do not need to make changes to them, unless if you find the current release pages have -some incorrect contents. If so, you should send a PR to update contents both of `docs/latest` -and `docs/v0.2.0`. - -It's important to note that a given document _must_ have a reference in some -`.. toctree::` section for the document to be reachable. Not everything needs -to be in `docs/index.rst`'s `toctree` though. - -You can access the website which represents the current release in default, -and you can access the website which contains the latest version changes in -[Here][latest-website] or at the footer of the pages. - -## Documentation Workflow - -To work with the docs, just edit reStructuredText or Markdown files in `docs`, -then run - -```bash -make docs -``` - -This will create `docs/html` with the built HTML pages. You can view the docs -either simply by pointing a web browser at the `file://` path to your -`docs/html`, or by firing up a static webserver from that directory, e.g. - -``` shell -make docs-serve -``` - -If you want to generate a new release version of the docs, like `v0.3.0`, then run - -```bash -make docs-release TAG=v0.3.0 -``` - -This will update the VERSION file at the project root, which records current release version, -and it will be used in the pages version context and binary version output. Also, this will generate -new dir `docs/v0.3.0`, which contains docs at v0.3.0 and updates artifact links to `v0.3.0` -in all files under `docs/v0.3.0/user`, like `quickstart.md`, `http-routing.md` and etc. - -## Publishing Docs - -Whenever docs are pushed to `main`, CI will publish the built docs to GitHub -Pages. For more details, see `.github/workflows/docs.yaml`. - -[reStructuredText]: https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html -[Markdown]: https://daringfireball.net/projects/markdown/syntax -[latest-website]: https://gateway.envoyproxy.io/latest diff --git a/docs/v0.5.0/dev_docs.rst b/docs/v0.5.0/dev_docs.rst deleted file mode 100644 index e546e14c1ada..000000000000 --- a/docs/v0.5.0/dev_docs.rst +++ /dev/null @@ -1,15 +0,0 @@ -Developer Docs -============== - -Learn how to contribute to Envoy Gateway. - -.. toctree:: - :maxdepth: 1 - - dev/GOALS - dev/CODE_OF_CONDUCT - dev/CODEOWNERS - dev/CONTRIBUTING - dev/README - dev/DOCS - dev/releasing diff --git a/docs/v0.5.0/get_involved.rst b/docs/v0.5.0/get_involved.rst deleted file mode 100644 index f17febd56513..000000000000 --- a/docs/v0.5.0/get_involved.rst +++ /dev/null @@ -1,9 +0,0 @@ -Getting Involved -================ - -We welcome contributions from the community. Please carefully review the -`project goals `_ -and the -`code of conduct `_ -before diving in. - diff --git a/docs/v0.5.0/helm.rst b/docs/v0.5.0/helm.rst deleted file mode 100644 index 853e26a141b8..000000000000 --- a/docs/v0.5.0/helm.rst +++ /dev/null @@ -1,9 +0,0 @@ -Helm Guides -=========== - -Learn how to deploy, use the helm chart for Envoy Gateway. - -.. toctree:: - :maxdepth: 1 - - helm/api.md \ No newline at end of file diff --git a/docs/v0.5.0/index.rst b/docs/v0.5.0/index.rst deleted file mode 100644 index 81957cef394c..000000000000 --- a/docs/v0.5.0/index.rst +++ /dev/null @@ -1,35 +0,0 @@ -`Envoy Gateway `_ -==================== - -Release: |version| - -.. image:: https://img.shields.io/badge/slack-join-orange.svg - :target: https://envoyproxy.slack.com/archives/C03E6NHLESV - :alt: Join the Envoy Slack - -Envoy Gateway is an open source project for managing `Envoy Proxy`_ as a standalone or Kubernetes-based application -gateway. `Gateway API`_ resources are used to dynamically provision and configure the managed Envoy Proxies. Whether -you are interested in using or contributing to Envoy Gateway, the following resources will help you get started: - -.. toctree:: - :maxdepth: 1 - - intro/compatibility - user_docs - design_docs - dev_docs - api_docs - helm - releases - roadmap - about_docs - get_involved - presentations - -.. note:: - - This project is under active development. Many, many features are not - complete. We would love for you to :doc:`get involved`. - -.. _Envoy Proxy: https://www.envoyproxy.io/ -.. _Gateway API: https://gateway-api.sigs.k8s.io/ diff --git a/docs/v0.5.0/intro/compatibility.rst b/docs/v0.5.0/intro/compatibility.rst deleted file mode 100644 index 31bdd9649278..000000000000 --- a/docs/v0.5.0/intro/compatibility.rst +++ /dev/null @@ -1,27 +0,0 @@ -Compatibility Matrix -==================== - -Envoy Gateway relies on the Envoy Proxy and the Gateway API, and runs -within a Kubernetes cluster. Not all versions of each of these products -can function together for Envoy Gateway. Supported version combinations -are listed below; **bold** type indicates the versions of the Envoy Proxy -and the Gateway API actually compiled into each Envoy Gateway release. - -+--------------------------+---------------------+---------------------+---------------------+----------------------------+ -| Envoy Gateway version | Envoy Proxy version | Rate Limit version | Gateway API version | Kubernetes version | -+--------------------------+---------------------+---------------------+---------------------+----------------------------+ -| v0.5.0 | **v1.27-latest** | **e059638d** | **v0.7.1** | v1.25, v1.26, v1.27 | -+--------------------------+---------------------+---------------------+---------------------+----------------------------+ -| v0.4.0 | **v1.26-latest** | **542a6047** | **v0.6.2** | v1.25, v1.26, v1.27 | -+--------------------------+---------------------+---------------------+---------------------+----------------------------+ -| v0.3.0 | **v1.25-latest** | **f28024e3** | **v0.6.1** | v1.24, v1.25, v1.26 | -+--------------------------+---------------------+---------------------+---------------------+----------------------------+ -| v0.2.0 | **v1.23-latest** | | **v0.5.1** | v1.24 | -+--------------------------+---------------------+---------------------+---------------------+----------------------------+ -| latest | **dev-latest** | **master** | **v0.7.1** | v1.25, v1.26, v1.27 | -+--------------------------+---------------------+---------------------+---------------------+----------------------------+ - -.. note:: - - This project is under active development. Many, many features are not - complete. We would love for you to :doc:`get involved<../get_involved>`. diff --git a/docs/v0.5.0/presentations.md b/docs/v0.5.0/presentations.md deleted file mode 100644 index bc681b8c2686..000000000000 --- a/docs/v0.5.0/presentations.md +++ /dev/null @@ -1,12 +0,0 @@ -# Presentations - -This page contains a list of presentations about the Envoy Proxy project. - -| Conference | Title | Speaker | Recording | Slides | -|-----------------|------------------------------|------------------------------|--------------------------------------------------------|--------| -| KubeCon NA 2022 | Envoy Gateway Project Update | Daneyon Hansen & Alice Wasko | [YouTube](https://www.youtube.com/watch?v=3MUOZc8XNCc) | [Slides](https://static.sched.com/hosted_files/envoyconna22/2f/Envoy_Gateway_Project_Update_EnvoyCon_NA_2022.pptx) | -| KubeCon EU 2023 | Envoy Gateway Project Update | Alice Wasko | [YouTube](https://www.youtube.com/watch?v=4vnJxt9sVho) | [Slides](https://static.sched.com/hosted_files/kccnceu2023/58/Kubecon_EU_2023_Envoy_Gateway_Update.pptx) | - - - - diff --git a/docs/v0.5.0/releases.rst b/docs/v0.5.0/releases.rst deleted file mode 100644 index f2854c34d0e8..000000000000 --- a/docs/v0.5.0/releases.rst +++ /dev/null @@ -1,13 +0,0 @@ -Releases -======== - -Learn more about Envoy Gateway releases. - -.. toctree:: - :maxdepth: 1 - - releases/README - releases/v0.2 - releases/v0.3 - releases/v0.4 - releases/v0.5 diff --git a/docs/v0.5.0/releases/v0.2.md b/docs/v0.5.0/releases/v0.2.md deleted file mode 100644 index a0dc0e885de8..000000000000 --- a/docs/v0.5.0/releases/v0.2.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Announcing Envoy Gateway v0.2 -linktitle: v0.2 -subtitle: Major Update -description: Envoy Gateway v0.2 release announcement. -publishdate: 2022-10-20 -release: v0.2.0 -skip_list: true -aliases: -- /releases/v0.2 -- /releases/v0.2.0 ---- -# Envoy Gateway Release v0.2 - -We are pleased to announce the release of Envoy Gateway v0.2! - -This is the first functional release of Envoy Gateway. We would like to thank the entire Envoy Gateway community for -helping publish the release. - -| [Release Notes][] | [Docs][docs] | [Compatibility Matrix][matrix] | [Download][] | -|-------------------|--------------|--------------------------------|--------------| - -## What's New - -The release adds a ton of features and functionality. Here are some highlights: - -### Kubernetes Support - -Run Envoy Gateway in a Kubernetes cluster. Checkout the [quickstart guide][] to get started with Envoy Gateway in a few -simple steps. - -### Gateway API Support - -Envoy Gateway supports Gateway API resources for running and configuring a managed fleet of Envoy proxies. Envoy Gateway -passes Gateway API core [conformance tests][] and supports GatewayClass, Gateway, HTTPRoute, and TLSRoute resources. See -the [documentation][docs] for additional details on how to use Envoy Gateway for your edge proxy and API gateway needs. - -## Envoy Gateway at EnvoyCon NA - -Envoy Gateway will be at [EnvoyCon NA][] this October in Detroit. Don't miss [our talk][] to learn more about the -release and future direction of the project. - -[Release Notes]: https://github.com/envoyproxy/gateway/blob/main/release-notes/v0.2.0.yaml -[matrix]: https://gateway.envoyproxy.io/intro/compatibility.html -[docs]: https://gateway.envoyproxy.io/index.html -[Download]: https://github.com/envoyproxy/gateway/releases/tag/v0.2.0 -[conformance tests]: https://gateway-api.sigs.k8s.io/concepts/conformance/?h=conformance -[quickstart guide]: https://gateway.envoyproxy.io/user/quickstart.html -[EnvoyCon NA]: https://events.linuxfoundation.org/envoycon-north-america/program/schedule/ -[our talk]: https://sched.co/1AO5S diff --git a/docs/v0.5.0/releases/v0.3.md b/docs/v0.5.0/releases/v0.3.md deleted file mode 100644 index 96d6d6d49ebe..000000000000 --- a/docs/v0.5.0/releases/v0.3.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Announcing Envoy Gateway v0.3 -linktitle: v0.3 -subtitle: Major Update -description: Envoy Gateway v0.3 release announcement. -publishdate: 2023-02-09 -release: v0.3.0 -skip_list: true -aliases: -- /releases/v0.3 -- /releases/v0.3.0 ---- -# Envoy Gateway Release v0.3 - -We are pleased to announce the release of Envoy Gateway v0.3! - -This is the second functional release of Envoy Gateway. We would like to thank the entire Envoy Gateway community for -helping publish the release. - -| [Release Notes][] | [Docs][docs] | [Compatibility Matrix][matrix] | [Download][] | -|-------------------|--------------|--------------------------------|--------------| - -## What's New - -The release adds a ton of features and functionality. Here are some highlights: - -### Add Support for extended Gateway API fields - -+ Added Support for HTTPRoute URLRewrite Filter -+ Added Support for HTTPRoute RequestMirror Filter -+ Added Support for HTTPRoute ResponseHeaderModifier Filter - -### Add Support for experimental Gateway APIs - -+ Added Support for the TCPRoute API -+ Added Support for the UDPRoute API -+ Added Support for the GRPCRoute API - -### Add Support for Rate Limiting - -+ Added Support for Global Rate Limiting - -### Add Support for Authentication - -+ Added Support for Request Authentication - -[Release Notes]: https://github.com/envoyproxy/gateway/blob/main/release-notes/v0.3.0.yaml -[matrix]: https://gateway.envoyproxy.io/v0.3.0/intro/compatibility.html -[docs]: https://gateway.envoyproxy.io/v0.3.0/index.html -[Download]: https://github.com/envoyproxy/gateway/releases/tag/v0.3.0 diff --git a/docs/v0.5.0/releases/v0.4.md b/docs/v0.5.0/releases/v0.4.md deleted file mode 100644 index 81a9bc3a0ede..000000000000 --- a/docs/v0.5.0/releases/v0.4.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Announcing Envoy Gateway v0.4 -linktitle: v0.4 -subtitle: Major Update -description: Envoy Gateway v0.4 release announcement. -publishdate: 2023-04-24 -release: v0.4.0 -skip_list: true -aliases: -- /releases/v0.4 -- /releases/v0.4.0 ---- -# Envoy Gateway Release v0.4 - -We are pleased to announce the release of Envoy Gateway v0.4! - -This is the third functional release of Envoy Gateway. We would like to thank the entire Envoy Gateway community for -helping publish the release. - -| [Release Notes][] | [Docs][docs] | [Compatibility Matrix][matrix] | [Download][] | -|-------------------|--------------|--------------------------------|--------------| - -## What's New - -The release adds a ton of features and functionality. Here are some highlights: - -### Upgrade Gateway API Dependency - -+ Upgraded to Gateway API v0.6.2 - -### Add Helm Support - -+ Installation of Envoy Gateway can now be done through helm - -### Add egctl CLI Tool - -+ Added egctl Support for Dry Runs of Gateway API Config -+ Added egctl Support for Dumping Envoy Proxy xDS Resources - -### Add Support for extending Envoy Gateway - -+ Added Initial Framework for Building an Extension on top of Envoy Gateway - -### Ratelimiting - -+ Added Support for Ratelimiting Based On IP Subnet - -### API Updates - -+ Added Support for Custom Envoy Proxy Bootstrap Config -+ Added Support for Configuring the Envoy Proxy Image and Service -+ Added Support for Configuring Annotations, Resources, and Securitycontext Settings on Ratelimit Infra and Envoy Proxy -+ Added Support for Using Multiple Certificates on a Single Fully Qualified Domain Name -+ Envoy Proxy Pod and Container SecurityContext is now Configurable -+ Added Support for Service Method Match in GRPCRoute -+ Added EDS Support - -[Release Notes]: https://github.com/envoyproxy/gateway/blob/main/release-notes/v0.4.0.yaml -[matrix]: https://gateway.envoyproxy.io/v0.4.0/intro/compatibility.html -[docs]: https://gateway.envoyproxy.io/v0.4.0/index.html -[Download]: https://github.com/envoyproxy/gateway/releases/tag/v0.4.0 diff --git a/docs/v0.5.0/roadmap.rst b/docs/v0.5.0/roadmap.rst deleted file mode 100644 index 711b62455031..000000000000 --- a/docs/v0.5.0/roadmap.rst +++ /dev/null @@ -1,9 +0,0 @@ -Roadmap -======= - -Learn about the future direction of Envoy Gateway. - -.. toctree:: - :maxdepth: 2 - - design/roadmap diff --git a/docs/v0.5.0/user_docs.rst b/docs/v0.5.0/user_docs.rst deleted file mode 100644 index bb060bbb994e..000000000000 --- a/docs/v0.5.0/user_docs.rst +++ /dev/null @@ -1,33 +0,0 @@ -User Guides -=========== - -Learn how to deploy, use, and operate Envoy Gateway. - -.. toctree:: - :maxdepth: 1 - - user/installation - user/quickstart - user/http-routing - user/http-redirect - user/http-urlrewrite - user/http-traffic-splitting - user/http-traffic-mirroring - user/http-request-headers - user/http-response-headers - user/secure-gateways - user/tls-cert-manager - user/tls-passthrough - user/tls-termination - user/tcp-routing - user/udp-routing - user/grpc-routing - user/authn - user/rate-limit - user/envoy-patch-policy - user/egctl - user/customize-envoyproxy - user/deployment-mode - user/gateway-address - user/gatewayapi-support - user/proxy-observability diff --git a/site/.gitignore b/site/.gitignore new file mode 100644 index 000000000000..40b67f41a765 --- /dev/null +++ b/site/.gitignore @@ -0,0 +1,5 @@ +/public +resources/ +node_modules/ +package-lock.json +.hugo_build.lock \ No newline at end of file diff --git a/site/.nvmrc b/site/.nvmrc new file mode 100644 index 000000000000..b009dfb9d9f9 --- /dev/null +++ b/site/.nvmrc @@ -0,0 +1 @@ +lts/* diff --git a/site/Dockerfile b/site/Dockerfile new file mode 100644 index 000000000000..4e653452e090 --- /dev/null +++ b/site/Dockerfile @@ -0,0 +1,4 @@ +FROM klakegg/hugo:ext-alpine + +RUN apk add git && \ + git config --global --add safe.directory /src diff --git a/site/README.md b/site/README.md new file mode 100644 index 000000000000..fac9f706d618 --- /dev/null +++ b/site/README.md @@ -0,0 +1,154 @@ +# Docsy Example + +[Docsy][] is a [Hugo theme module][] for technical documentation sites, providing easy +site navigation, structure, and more. This **Docsy Example Project** uses the Docsy +theme component as a hugo module and provides a skeleton documentation structure for you to use. +You can clone/copy this project and edit it with your own content, or use it as an example. + +In this project, the Docsy theme component is pulled in as a Hugo module, together with other module dependencies: + +```console +$ hugo mod graph +hugo: collected modules in 566 ms +hugo: collected modules in 578 ms +github.com/google/docsy-example github.com/google/docsy@v0.7.1 +github.com/google/docsy-example github.com/google/docsy/dependencies@v0.7.1 +github.com/google/docsy/dependencies@v0.7.1 github.com/twbs/bootstrap@v5.2.3+incompatible +github.com/google/docsy/dependencies@v0.7.1 github.com/FortAwesome/Font-Awesome@v0.0.0-20230327165841-0698449d50f2 +``` + +You can find detailed theme instructions in the [Docsy user guide][]. + +This Docsy Example Project is hosted on [Netlify][] at [example.docsy.dev][]. +You can view deploy logs from the [deploy section of the project's Netlify +dashboard][deploys], or this [alternate dashboard][]. + +This is not an officially supported Google product. This project is currently maintained. + +## Using the Docsy Example Project as a template + +A simple way to get started is to use this project as a template, which gives you a site project that is set up and ready to use. To do this: + +1. Use the dropdown for switching branches/tags to change to the latest released tag `v0.7.1` + +2. Click **Use this template**. + +3. Select a name for your new project and click **Create repository from template**. + +4. Make your own local working copy of your new repo using git clone, replacing https://github.com/me/example.git with your repo’s web URL: + +```bash +git clone --depth 1 https://github.com/me/example.git +``` + +You can now edit your own versions of the site’s source files. + +If you want to do SCSS edits and want to publish these, you need to install `PostCSS` + +```bash +npm install +``` + +## Running the website locally + +Building and running the site locally requires a recent `extended` version of [Hugo](https://gohugo.io). +You can find out more about how to install Hugo for your environment in our +[Getting started](https://www.docsy.dev/docs/getting-started/#prerequisites-and-installation) guide. + +Once you've made your working copy of the site repo, from the repo root folder, run: + +```bash +hugo server +``` + +## Running a container locally + +You can run docsy-example inside a [Docker](https://docs.docker.com/) +container, the container runs with a volume bound to the `docsy-example` +folder. This approach doesn't require you to install any dependencies other +than [Docker Desktop](https://www.docker.com/products/docker-desktop) on +Windows and Mac, and [Docker Compose](https://docs.docker.com/compose/install/) +on Linux. + +1. Build the docker image + + ```bash + docker-compose build + ``` + +1. Run the built image + + ```bash + docker-compose up + ``` + + > NOTE: You can run both commands at once with `docker-compose up --build`. + +1. Verify that the service is working. + + Open your web browser and type `http://localhost:1313` in your navigation bar, + This opens a local instance of the docsy-example homepage. You can now make + changes to the docsy example and those changes will immediately show up in your + browser after you save. + +### Cleanup + +To stop Docker Compose, on your terminal window, press **Ctrl + C**. + +To remove the produced images run: + +```bash +docker-compose rm +``` +For more information see the [Docker Compose documentation][]. + +## Troubleshooting + +As you run the website locally, you may run into the following error: + +```console +$ hugo server +WARN 2023/06/27 16:59:06 Module "project" is not compatible with this Hugo version; run "hugo mod graph" for more information. +Start building sites … +hugo v0.101.0-466fa43c16709b4483689930a4f9ac8add5c9f66+extended windows/amd64 BuildDate=2022-06-16T07:09:16Z VendorInfo=gohugoio +Error: Error building site: "C:\Users\foo\path\to\docsy-example\content\en\_index.md:5:1": failed to extract shortcode: template for shortcode "blocks/cover" not found +Built in 27 ms +``` + +This error occurs if you are running an outdated version of Hugo. As of docsy theme version `v0.7.0`, hugo version `0.110.0` or higher is required. +See this [section](https://www.docsy.dev/docs/get-started/docsy-as-module/installation-prerequisites/#install-hugo) of the user guide for instructions on how to install Hugo. + +Or you may be confronted with the following error: + +```console +$ hugo server + +INFO 2021/01/21 21:07:55 Using config file: +Building sites … INFO 2021/01/21 21:07:55 syncing static files to / +Built in 288 ms +Error: Error building site: TOCSS: failed to transform "scss/main.scss" (text/x-scss): resource "scss/scss/main.scss_9fadf33d895a46083cdd64396b57ef68" not found in file cache +``` + +This error occurs if you have not installed the extended version of Hugo. +See this [section](https://www.docsy.dev/docs/get-started/docsy-as-module/installation-prerequisites/#install-hugo) of the user guide for instructions on how to install Hugo. + +Or you may encounter the following error: + +```console +$ hugo server + +Error: failed to download modules: binary with name "go" not found +``` + +This error occurs if you have not installed the `go` programming language on your system. +See this [section](https://www.docsy.dev/docs/get-started/docsy-as-module/installation-prerequisites/#install-go-language) of the user guide for instructions on how to install `go`. + + +[alternate dashboard]: https://app.netlify.com/sites/goldydocs/deploys +[deploys]: https://app.netlify.com/sites/docsy-example/deploys +[Docsy user guide]: https://docsy.dev/docs +[Docsy]: https://github.com/google/docsy +[example.docsy.dev]: https://example.docsy.dev +[Hugo theme module]: https://gohugo.io/hugo-modules/use-modules/#use-a-module-for-a-theme +[Netlify]: https://netlify.com +[Docker Compose documentation]: https://docs.docker.com/compose/gettingstarted/ diff --git a/site/assets/scss/_variables_project.scss b/site/assets/scss/_variables_project.scss new file mode 100644 index 000000000000..256902739d62 --- /dev/null +++ b/site/assets/scss/_variables_project.scss @@ -0,0 +1,6 @@ +/* + +Add styles or override variables from the theme here. + +*/ + diff --git a/site/config.yaml b/site/config.yaml new file mode 100644 index 000000000000..9070e384f0fa --- /dev/null +++ b/site/config.yaml @@ -0,0 +1,15 @@ +# THIS IS A TEST CONFIG ONLY! +# FOR THE CONFIGURATION OF YOUR SITE USE hugo.yaml. +# +# As of Docsy 0.7.0, Hugo 0.110.0 or later must be used. +# +# The sole purpose of this config file is to detect Hugo-module builds that use +# an older version of Hugo. +# +# DO NOT add any config parameters to this file. You can safely delete this file +# if your project is using the required Hugo version. + +module: + hugoVersion: + extended: true + min: 0.110.0 diff --git a/site/content/en/GOALS.md b/site/content/en/GOALS.md new file mode 100644 index 000000000000..be4bdb76f6bc --- /dev/null +++ b/site/content/en/GOALS.md @@ -0,0 +1,82 @@ +--- +title: "Goals" +--- + + +The high-level goal of the Envoy Gateway project is to attract more users to Envoy by lowering barriers to adoption +through expressive, extensible, role-oriented APIs that support a multitude of ingress and L7/L4 traffic routing +use cases; and provide a common foundation for vendors to build value-added products without having to re-engineer +fundamental interactions. + +## Objectives + +### Expressive API +The Envoy Gateway project will expose a simple and expressive API, with defaults set for many capabilities. + +The API will be the Kubernetes-native [Gateway API][], plus Envoy-specific extensions and extension points. This +expressive and familiar API will make Envoy accessible to more users, especially application developers, and make Envoy +a stronger option for "getting started" as compared to other proxies. Application developers will use the API out of +the box without needing to understand in-depth concepts of Envoy Proxy or use OSS wrappers. The API will use familiar +nouns that [users](#personas) understand. + +The core full-featured Envoy xDS APIs will remain available for those who need more capability and for those who +add functionality on top of Envoy Gateway, such as commercial API gateway products. + +This expressive API will not be implemented by Envoy Proxy, but rather an officially supported translation layer +on top. + +### Batteries included +Envoy Gateway will simplify how Envoy is deployed and managed, allowing application developers to focus on +delivering core business value. + +The project plans to include additional infrastructure components required by users to fulfill their Ingress and API +gateway needs: It will handle Envoy infrastructure provisioning (e.g. Kubernetes Service, Deployment, et cetera), and +possibly infrastructure provisioning of related sidecar services. It will include sensible defaults with the ability to +override. It will include channels for improving ops by exposing status through API conditions and Kubernetes status +sub-resources. + +Making an application accessible needs to be a trivial task for any developer. Similarly, infrastructure administrators +will enjoy a simplified management model that doesn't require extensive knowledge of the solution's architecture to +operate. + +### All environments +Envoy Gateway will support running natively in Kubernetes environments as well as non-Kubernetes deployments. + +Initially, Kubernetes will receive the most focus, with the aim of having Envoy Gateway become the de facto +standard for Kubernetes ingress supporting the [Gateway API][]. +Additional goals include multi-cluster support and various runtime environments. + +### Extensibility +Vendors will have the ability to provide value-added products built on the Envoy Gateway foundation. + +It will remain easy for end-users to leverage common Envoy Proxy extension points such as providing an implementation +for authentication methods and rate-limiting. For advanced use cases, users will have the ability to use the full power +of xDS. + +Since a general-purpose API cannot address all use cases, Envoy Gateway will provide additional extension points +for flexibility. As such, Envoy Gateway will form the base of vendor-provided managed control plane solutions, +allowing vendors to shift to a higher management plane layer. + +## Non-objectives + +### Cannibalize vendor models +Vendors need to have the ability to drive commercial value, so the goal is not to cannibalize any existing vendor +monetization model, though some vendors may be affected by it. + +### Disrupt current Envoy usage patterns +Envoy Gateway is purely an additive convenience layer and is not meant to disrupt any usage pattern of any user +with Envoy Proxy, xDS, or go-control-plane. + +## Personas +_In order of priority_ + +### 1. Application developer +The application developer spends the majority of their time developing business logic code. They require the ability to +manage access to their application. + +### 2. Infrastructure administrators +The infrastructure administrators are responsible for the installation, maintenance, and operation of +API gateways appliances in infrastructure, such as CRDs, roles, service accounts, certificates, etc. +Infrastructure administrators support the needs of application developers by managing instances of Envoy Gateway. + +[Gateway API]: https://gateway-api.sigs.k8s.io/ diff --git a/site/content/en/_index.md b/site/content/en/_index.md new file mode 100644 index 000000000000..89c786e40e84 --- /dev/null +++ b/site/content/en/_index.md @@ -0,0 +1,48 @@ +--- +title: Envoy Gateway +--- + +{{< blocks/cover title="Welcome to Envoy Gateway!" image_anchor="top" height="full" >}} + + Learn More + + + Download + +

Manages Envoy Proxy as a Standalone or Kubernetes-based Application Gateway

+{{< blocks/link-down color="info" >}} +{{< /blocks/cover >}} + +{{% blocks/lead color="black" %}} +Envoy Gateway is an open source project for managing Envoy Proxy as a Standalone or Kubernetes-based Application Gateway. + +Gateway API resources are used to dynamically provision and configure the managed Envoy Proxies. +{{% /blocks/lead %}} + +{{% blocks/lead %}} + +The high-level goal of the Envoy Gateway project is to attract more users to Envoy by lowering barriers to adoption +through expressive, extensible, role-oriented APIs that support a multitude of ingress and L7/L4 traffic routing +use cases; and provide a common foundation for vendors to build value-added products without having to re-engineer +fundamental interactions. + +{{% /blocks/lead %}} + +{{% blocks/section type="row" %}} + +{{% blocks/feature icon="fab fa-app-store-ios" title="Download **from Github**" url="https://github.com/envoyproxy/gateway/releases" %}} +Try Envoy Gateway in GitHub Releases +{{% /blocks/feature %}} + +{{% blocks/feature icon="fab fa-github" title="Contributions Welcome!" + url="https://github.com/envoyproxy/gateway" %}} +We do a [Pull Request](https://github.com/envoyproxy/gateway/pulls) +contributions workflow on **GitHub**. +{{% /blocks/feature %}} + +{{% blocks/feature icon="fab fa-slack" title="Contact us on Slack!" + url="https://envoyproxy.slack.com/archives/C03E6NHLESV" %}} +For announcement of latest features etc. +{{% /blocks/feature %}} + +{{% /blocks/section %}} diff --git a/site/content/en/about/featured-background.jpg b/site/content/en/about/featured-background.jpg new file mode 100644 index 000000000000..b1f8c56bc299 Binary files /dev/null and b/site/content/en/about/featured-background.jpg differ diff --git a/site/content/en/about/index.md b/site/content/en/about/index.md new file mode 100644 index 000000000000..b363cdfd0256 --- /dev/null +++ b/site/content/en/about/index.md @@ -0,0 +1,25 @@ +--- +title: About Envoy Gateway +linkTitle: About +menu: {main: {weight: 10}} +--- + +{{% blocks/cover title="About Envoy Gateway" image_anchor="bottom" height="auto" %}} + +{{% /blocks/cover %}} + +{{% blocks/lead %}} + +Envoy Gateway is an open source project for managing **Envoy Proxy** as a standalone or Kubernetes-based application +gateway. **Gateway API** resources are used to dynamically provision and configure the managed Envoy Proxies. + +{{% /blocks/lead %}} + +{{% blocks/lead %}} + +The high-level goal of the Envoy Gateway project is to attract more users to Envoy by lowering barriers to adoption +through expressive, extensible, role-oriented APIs that support a multitude of ingress and L7/L4 traffic routing +use cases; and provide a common foundation for vendors to build value-added products without having to re-engineer +fundamental interactions. + +{{% /blocks/lead %}} diff --git a/site/content/en/blog/_index.md b/site/content/en/blog/_index.md new file mode 100644 index 000000000000..95ccb91d5d9e --- /dev/null +++ b/site/content/en/blog/_index.md @@ -0,0 +1,8 @@ +--- +title: Blog +menu: {main: {weight: 30}} +--- + +This is the **blog** section. It has two categories: News and Releases. + +Files in these directories will be listed in reverse chronological order. diff --git a/site/content/en/blog/compatibility/_index.md b/site/content/en/blog/compatibility/_index.md new file mode 100644 index 000000000000..5c1ae3b1db37 --- /dev/null +++ b/site/content/en/blog/compatibility/_index.md @@ -0,0 +1,4 @@ +--- +title: Compatibility Matrix +description: This section includes Compatibility Matrix of Envoy Gateway. +--- diff --git a/site/content/en/blog/compatibility/matrix/matrix.md b/site/content/en/blog/compatibility/matrix/matrix.md new file mode 100644 index 000000000000..737bee33ee34 --- /dev/null +++ b/site/content/en/blog/compatibility/matrix/matrix.md @@ -0,0 +1,20 @@ +--- +title: Versions +date: 2023-10-08 +description: This section includes Compatibility Matrix of Envoy Gateway. +--- + +Envoy Gateway relies on the Envoy Proxy and the Gateway API, and runs +within a Kubernetes cluster. Not all versions of each of these products +can function together for Envoy Gateway. Supported version combinations +are listed below; **bold** type indicates the versions of the Envoy +Proxy and the Gateway API actually compiled into each Envoy Gateway +release. + +| Envoy Gateway version | Envoy Proxy version | Rate Limit version | Gateway API version | Kubernetes version | +| --------------------- | ------------------- | ------------------ | ------------------- | ------------------- | +| v0.5.0 | **v1.27-latest** | **e059638d** | **v0.7.1** | v1.25, v1.26, v1.27 | +| v0.4.0 | **v1.26-latest** | **542a6047** | **v0.6.2** | v1.25, v1.26, v1.27 | +| v0.3.0 | **v1.25-latest** | **f28024e3** | **v0.6.1** | v1.24, v1.25, v1.26 | +| v0.2.0 | **v1.23-latest** | | **v0.5.1** | v1.24 | +| latest | **dev-latest** | **master** | **v0.8.1** | v1.25, v1.26, v1.27 | diff --git a/site/content/en/blog/news/_index.md b/site/content/en/blog/news/_index.md new file mode 100644 index 000000000000..c609aa254312 --- /dev/null +++ b/site/content/en/blog/news/_index.md @@ -0,0 +1,4 @@ +--- +title: News +weight: 20 +--- diff --git a/site/content/en/blog/news/new-website/new-website.md b/site/content/en/blog/news/new-website/new-website.md new file mode 100644 index 000000000000..8b58c949d8d7 --- /dev/null +++ b/site/content/en/blog/news/new-website/new-website.md @@ -0,0 +1,10 @@ +--- +date: 2023-10-08 +title: Migrate Documents +linkTitle: Migrate Documents +description: > + We migrate docs to Hugo now! +author: Xunzhuo Liu +--- + +We migrate docs to Hugo now! diff --git a/site/content/en/blog/presentations/_index.md b/site/content/en/blog/presentations/_index.md new file mode 100644 index 000000000000..c7e0ad1a052f --- /dev/null +++ b/site/content/en/blog/presentations/_index.md @@ -0,0 +1,4 @@ +--- +title: Presentations +weight: 20 +--- diff --git a/site/content/en/blog/presentations/kubecon-eu-2023/kubecon-eu-2023.md b/site/content/en/blog/presentations/kubecon-eu-2023/kubecon-eu-2023.md new file mode 100644 index 000000000000..90444834a997 --- /dev/null +++ b/site/content/en/blog/presentations/kubecon-eu-2023/kubecon-eu-2023.md @@ -0,0 +1,19 @@ +--- +title: "KubeCon EU 2023" +--- + +## Envoy Gateway Project Update + +KubeCon EU 2023 + +### Speaker + +**Alice Wasko** + +### Videos + +{{< youtube 4vnJxt9sVho >}} + +### Slides + +[Link](https://static.sched.com/hosted_files/kccnceu2023/58/Kubecon_EU_2023_Envoy_Gateway_Update.pptx) diff --git a/site/content/en/blog/presentations/kubecon-na-2022/kubecon-na-2022.md b/site/content/en/blog/presentations/kubecon-na-2022/kubecon-na-2022.md new file mode 100644 index 000000000000..c4f00590d461 --- /dev/null +++ b/site/content/en/blog/presentations/kubecon-na-2022/kubecon-na-2022.md @@ -0,0 +1,19 @@ +--- +title: "KubeCon NA 2022" +--- + +## Envoy Gateway Project Update + +KubeCon NA 2022 + +### Speaker + +**Daneyon Hansen & Alice Wasko** + +### Videos + +{{< youtube 3MUOZc8XNCc >}} + +### Slides + +[Link](https://static.sched.com/hosted_files/envoyconna22/2f/Envoy_Gateway_Project_Update_EnvoyCon_NA_2022.pptx) \ No newline at end of file diff --git a/docs/v0.5.0/releases/README.md b/site/content/en/blog/releases/_index.md similarity index 98% rename from docs/v0.5.0/releases/README.md rename to site/content/en/blog/releases/_index.md index 4aa878e84079..d4867691a453 100644 --- a/docs/v0.5.0/releases/README.md +++ b/site/content/en/blog/releases/_index.md @@ -1,4 +1,6 @@ -# Release Details +--- +title: "Release Details" +--- This document provides details for Envoy Gateway releases. Envoy Gateway follows the Semantic Versioning [v2.0.0 spec][] for release versioning. Since Envoy Gateway is a new project, minor releases are the only defined releases. Envoy diff --git a/docs/v0.3.0/releases/v0.2.md b/site/content/en/blog/releases/v0.2.md similarity index 96% rename from docs/v0.3.0/releases/v0.2.md rename to site/content/en/blog/releases/v0.2.md index a0dc0e885de8..0630ce9e59e5 100644 --- a/docs/v0.3.0/releases/v0.2.md +++ b/site/content/en/blog/releases/v0.2.md @@ -6,11 +6,7 @@ description: Envoy Gateway v0.2 release announcement. publishdate: 2022-10-20 release: v0.2.0 skip_list: true -aliases: -- /releases/v0.2 -- /releases/v0.2.0 --- -# Envoy Gateway Release v0.2 We are pleased to announce the release of Envoy Gateway v0.2! diff --git a/docs/v0.3.0/releases/v0.3.md b/site/content/en/blog/releases/v0.3.md similarity index 95% rename from docs/v0.3.0/releases/v0.3.md rename to site/content/en/blog/releases/v0.3.md index 96d6d6d49ebe..6ce60750cbbb 100644 --- a/docs/v0.3.0/releases/v0.3.md +++ b/site/content/en/blog/releases/v0.3.md @@ -6,11 +6,7 @@ description: Envoy Gateway v0.3 release announcement. publishdate: 2023-02-09 release: v0.3.0 skip_list: true -aliases: -- /releases/v0.3 -- /releases/v0.3.0 --- -# Envoy Gateway Release v0.3 We are pleased to announce the release of Envoy Gateway v0.3! diff --git a/docs/v0.4.0/releases/v0.4.md b/site/content/en/blog/releases/v0.4.md similarity index 96% rename from docs/v0.4.0/releases/v0.4.md rename to site/content/en/blog/releases/v0.4.md index 81a9bc3a0ede..c002ea12bdf9 100644 --- a/docs/v0.4.0/releases/v0.4.md +++ b/site/content/en/blog/releases/v0.4.md @@ -6,11 +6,7 @@ description: Envoy Gateway v0.4 release announcement. publishdate: 2023-04-24 release: v0.4.0 skip_list: true -aliases: -- /releases/v0.4 -- /releases/v0.4.0 --- -# Envoy Gateway Release v0.4 We are pleased to announce the release of Envoy Gateway v0.4! diff --git a/docs/v0.5.0/releases/v0.5.md b/site/content/en/blog/releases/v0.5.md similarity index 96% rename from docs/v0.5.0/releases/v0.5.md rename to site/content/en/blog/releases/v0.5.md index 8c7b72cd53b0..def24b00ff7b 100644 --- a/docs/v0.5.0/releases/v0.5.md +++ b/site/content/en/blog/releases/v0.5.md @@ -6,11 +6,7 @@ description: Envoy Gateway v0.5 release announcement. publishdate: 2023-08-02 release: v0.5.0 skip_list: true -aliases: -- /releases/v0.5 -- /releases/v0.5.0 --- -# Envoy Gateway Release v0.5 We are pleased to announce the release of Envoy Gateway v0.5! diff --git a/site/content/en/community/_index.md b/site/content/en/community/_index.md new file mode 100644 index 000000000000..5c1788f11ce9 --- /dev/null +++ b/site/content/en/community/_index.md @@ -0,0 +1,18 @@ +--- +title: Community +menu: {main: {weight: 40}} +--- + + + +{{% blocks/lead color="yellow" %}} + +## Getting Involved! + +We welcome contributions from the community. + +Please carefully review the +project [Goals](https://github.com/envoyproxy/gateway/blob/main/GOALS.md) and the +[Code of Conduct](https://github.com/cncf/foundation/blob/main/code-of-conduct.md) before diving in. + +{{% /blocks/lead %}} diff --git a/site/content/en/docs/_index.md b/site/content/en/docs/_index.md new file mode 100644 index 000000000000..1c01c7e5e4ee --- /dev/null +++ b/site/content/en/docs/_index.md @@ -0,0 +1,3 @@ +--- +title: "Documents" +--- diff --git a/site/content/en/docs/latest/_index.md b/site/content/en/docs/latest/_index.md new file mode 100644 index 000000000000..bb29abe2d512 --- /dev/null +++ b/site/content/en/docs/latest/_index.md @@ -0,0 +1,9 @@ +--- +title: "Welcome to Envoy Gateway" +description: latest version of Envoy Gateway +linktitle: latest +weight: 1 +--- + +Envoy Gateway is an open source project for managing **Envoy Proxy** as a standalone or Kubernetes-based application +gateway. **Gateway API** resources are used to dynamically provision and configure the managed Envoy Proxies. diff --git a/site/content/en/docs/latest/api/_index.md b/site/content/en/docs/latest/api/_index.md new file mode 100644 index 000000000000..1d7c67c8c151 --- /dev/null +++ b/site/content/en/docs/latest/api/_index.md @@ -0,0 +1,4 @@ +--- +title: "API" +description: This section includes APIs of Envoy Gateway. +--- diff --git a/docs/latest/api/extension_types.md b/site/content/en/docs/latest/api/extension_types.md similarity index 99% rename from docs/latest/api/extension_types.md rename to site/content/en/docs/latest/api/extension_types.md index 2f47c3f89f83..0fe43c41906c 100644 --- a/docs/latest/api/extension_types.md +++ b/site/content/en/docs/latest/api/extension_types.md @@ -1,4 +1,6 @@ -# API Reference +--- +title: "Envoy Gateway APIs" +--- ## Packages - [gateway.envoyproxy.io/v1alpha1](#gatewayenvoyproxyiov1alpha1) diff --git a/site/content/en/docs/latest/design/_index.md b/site/content/en/docs/latest/design/_index.md new file mode 100644 index 000000000000..2820db4c2160 --- /dev/null +++ b/site/content/en/docs/latest/design/_index.md @@ -0,0 +1,5 @@ +--- +title: "Design" +weight: 1 +description: This section includes Designs of Envoy Gateway. +--- diff --git a/docs/latest/design/accesslog.md b/site/content/en/docs/latest/design/accesslog.md similarity index 99% rename from docs/latest/design/accesslog.md rename to site/content/en/docs/latest/design/accesslog.md index 16882cd4d5a7..cb72f05fe43d 100644 --- a/docs/latest/design/accesslog.md +++ b/site/content/en/docs/latest/design/accesslog.md @@ -1,4 +1,6 @@ -# Observability: Accesslog +--- +title: "Observability: Accesslog" +--- ## Overview diff --git a/docs/latest/design/bootstrap.md b/site/content/en/docs/latest/design/bootstrap.md similarity index 99% rename from docs/latest/design/bootstrap.md rename to site/content/en/docs/latest/design/bootstrap.md index 74340aac7a0e..4475710ad5d0 100644 --- a/docs/latest/design/bootstrap.md +++ b/site/content/en/docs/latest/design/bootstrap.md @@ -1,4 +1,6 @@ -# Bootstrap Design +--- +title: "Bootstrap Design" +--- ## Overview diff --git a/docs/latest/design/client-traffic-policy.md b/site/content/en/docs/latest/design/client-traffic-policy.md similarity index 98% rename from docs/latest/design/client-traffic-policy.md rename to site/content/en/docs/latest/design/client-traffic-policy.md index f4bc5c213eee..65edd4130c45 100644 --- a/docs/latest/design/client-traffic-policy.md +++ b/site/content/en/docs/latest/design/client-traffic-policy.md @@ -1,4 +1,6 @@ -# ClientTrafficPolicy +--- +title: "ClientTrafficPolicy " +--- ## Overview diff --git a/docs/latest/design/config-api.md b/site/content/en/docs/latest/design/config-api.md similarity index 99% rename from docs/latest/design/config-api.md rename to site/content/en/docs/latest/design/config-api.md index 5af6150346c1..49e997caeca8 100644 --- a/docs/latest/design/config-api.md +++ b/site/content/en/docs/latest/design/config-api.md @@ -1,4 +1,6 @@ -# Configuration API Design +--- +title: "Configuration API Design" +--- ## Motivation diff --git a/docs/v0.5.0/design/egctl.md b/site/content/en/docs/latest/design/egctl.md similarity index 98% rename from docs/v0.5.0/design/egctl.md rename to site/content/en/docs/latest/design/egctl.md index 7989ff49e5e2..0f67d99f1005 100644 --- a/docs/v0.5.0/design/egctl.md +++ b/site/content/en/docs/latest/design/egctl.md @@ -1,4 +1,6 @@ -# egctl Design +--- +title: "egctl Design" +--- ## Motivation diff --git a/docs/v0.5.0/design/envoy-patch-policy.md b/site/content/en/docs/latest/design/envoy-patch-policy.md similarity index 99% rename from docs/v0.5.0/design/envoy-patch-policy.md rename to site/content/en/docs/latest/design/envoy-patch-policy.md index 0116c8e6336b..d34937d05ef1 100644 --- a/docs/v0.5.0/design/envoy-patch-policy.md +++ b/site/content/en/docs/latest/design/envoy-patch-policy.md @@ -1,4 +1,6 @@ -# EnvoyPatchPolicy +--- +title: "EnvoyPatchPolicy" +--- ## Overview diff --git a/docs/latest/design/extending-envoy-gateway.md b/site/content/en/docs/latest/design/extending-envoy-gateway.md similarity index 99% rename from docs/latest/design/extending-envoy-gateway.md rename to site/content/en/docs/latest/design/extending-envoy-gateway.md index e29f8ff2aa33..be5db0dd7385 100644 --- a/docs/latest/design/extending-envoy-gateway.md +++ b/site/content/en/docs/latest/design/extending-envoy-gateway.md @@ -1,4 +1,6 @@ -# Envoy Gateway Extensions Design +--- +title: "Envoy Gateway Extensions Design" +--- As outlined in the [official goals][] for the Envoy Gateway project, one of the main goals is to "provide a common foundation for vendors to build value-added products without having to re-engineer fundamental interactions". Development of the Envoy Gateway project has been focused on developing the core features for the project and diff --git a/docs/latest/design/gatewayapi-translator.md b/site/content/en/docs/latest/design/gatewayapi-translator.md similarity index 99% rename from docs/latest/design/gatewayapi-translator.md rename to site/content/en/docs/latest/design/gatewayapi-translator.md index 3cf0da94f5aa..3add199ee15e 100644 --- a/docs/latest/design/gatewayapi-translator.md +++ b/site/content/en/docs/latest/design/gatewayapi-translator.md @@ -1,4 +1,6 @@ -# Gateway API Translator Design +--- +title: "Gateway API Translator Design" +--- The Gateway API translates external resources, e.g. GatewayClass, from the configured Provider to the Intermediate Representation (IR). diff --git a/docs/v0.5.0/design/local-envoy-gateway.md b/site/content/en/docs/latest/design/local-envoy-gateway.md similarity index 97% rename from docs/v0.5.0/design/local-envoy-gateway.md rename to site/content/en/docs/latest/design/local-envoy-gateway.md index d382b8cfff82..aad0dc5f6f27 100644 --- a/docs/v0.5.0/design/local-envoy-gateway.md +++ b/site/content/en/docs/latest/design/local-envoy-gateway.md @@ -1,4 +1,6 @@ -# Running Envoy Gateway locally +--- +title: "Running Envoy Gateway locally" +--- ## Overview diff --git a/docs/latest/design/metrics.md b/site/content/en/docs/latest/design/metrics.md similarity index 98% rename from docs/latest/design/metrics.md rename to site/content/en/docs/latest/design/metrics.md index 5be5942d5703..644e3c7a6345 100644 --- a/docs/latest/design/metrics.md +++ b/site/content/en/docs/latest/design/metrics.md @@ -1,4 +1,6 @@ -# Observability: Metrics +--- +title: "Observability: Metrics" +--- ## Overview diff --git a/docs/latest/design/pprof.md b/site/content/en/docs/latest/design/pprof.md similarity index 97% rename from docs/latest/design/pprof.md rename to site/content/en/docs/latest/design/pprof.md index 552986e3bc88..c535b4800710 100644 --- a/docs/latest/design/pprof.md +++ b/site/content/en/docs/latest/design/pprof.md @@ -1,4 +1,6 @@ -# Add Pprof support in Envoy Gateway +--- +title: "Add Pprof support in Envoy Gateway" +--- ## Overview diff --git a/docs/latest/design/rate-limit.md b/site/content/en/docs/latest/design/rate-limit.md similarity index 99% rename from docs/latest/design/rate-limit.md rename to site/content/en/docs/latest/design/rate-limit.md index fb326b080b29..28ebbab8b360 100644 --- a/docs/latest/design/rate-limit.md +++ b/site/content/en/docs/latest/design/rate-limit.md @@ -1,4 +1,6 @@ -# Rate Limit Design +--- +title: "Rate Limit Design" +--- ## Overview diff --git a/docs/v0.5.0/design/request-authentication.md b/site/content/en/docs/latest/design/request-authentication.md similarity index 99% rename from docs/v0.5.0/design/request-authentication.md rename to site/content/en/docs/latest/design/request-authentication.md index 6b2192eadfd9..82682bf2a0b7 100644 --- a/docs/v0.5.0/design/request-authentication.md +++ b/site/content/en/docs/latest/design/request-authentication.md @@ -1,4 +1,6 @@ -# Request Authentication Design +--- +title: "Request Authentication Design" +--- ## Overview diff --git a/docs/latest/design/roadmap.md b/site/content/en/docs/latest/design/roadmap.md similarity index 99% rename from docs/latest/design/roadmap.md rename to site/content/en/docs/latest/design/roadmap.md index 7304335d9aa5..8a3b56b89dd3 100644 --- a/docs/latest/design/roadmap.md +++ b/site/content/en/docs/latest/design/roadmap.md @@ -1,4 +1,6 @@ -# Roadmap +--- +title: "Roadmap" +--- This document serves as a high-level reference for Envoy Gateway users and contributors to understand the direction of the project. diff --git a/docs/latest/design/system-design.md b/site/content/en/docs/latest/design/system-design.md similarity index 99% rename from docs/latest/design/system-design.md rename to site/content/en/docs/latest/design/system-design.md index 86114be37fa2..f1ae795fad3e 100644 --- a/docs/latest/design/system-design.md +++ b/site/content/en/docs/latest/design/system-design.md @@ -1,4 +1,6 @@ -# System Design +--- +title: "System Design" +--- ## Goals diff --git a/docs/v0.3.0/design/tcp-udp-design.md b/site/content/en/docs/latest/design/tcp-udp-design.md similarity index 98% rename from docs/v0.3.0/design/tcp-udp-design.md rename to site/content/en/docs/latest/design/tcp-udp-design.md index 276221b897ba..f517e24fedae 100644 --- a/docs/v0.3.0/design/tcp-udp-design.md +++ b/site/content/en/docs/latest/design/tcp-udp-design.md @@ -1,4 +1,6 @@ -# TCP and UDP Proxy Design +--- +title: "TCP and UDP Proxy Design " +--- Even though most of the use cases for Envoy Gateway are at Layer-7, Envoy Gateway can also work at Layer-4 to proxy TCP and UDP traffic. This document will explore the options we have when operating Envoy Gateway at Layer-4 and explain the diff --git a/docs/latest/design/tracing.md b/site/content/en/docs/latest/design/tracing.md similarity index 99% rename from docs/latest/design/tracing.md rename to site/content/en/docs/latest/design/tracing.md index 5458b1631577..0c9e97309f95 100644 --- a/docs/latest/design/tracing.md +++ b/site/content/en/docs/latest/design/tracing.md @@ -1,4 +1,6 @@ -# Observability: Accesslog +--- +title: "Observability: Accesslog" +--- ## Overview diff --git a/docs/v0.4.0/design/watching.md b/site/content/en/docs/latest/design/watching.md similarity index 99% rename from docs/v0.4.0/design/watching.md rename to site/content/en/docs/latest/design/watching.md index b8477a30e2d6..e2d17ca86b91 100644 --- a/docs/v0.4.0/design/watching.md +++ b/site/content/en/docs/latest/design/watching.md @@ -1,4 +1,6 @@ -# Watching Components Design +--- +title: "Watching Components Design" +--- Envoy Gateway is made up of several components that communicate in-process. Some of them (namely Providers) watch external resources, and "publish" what they see for other components to consume; others watch what another publishes and diff --git a/docs/latest/dev/CODEOWNERS.md b/site/content/en/docs/latest/dev/CODEOWNERS.md similarity index 87% rename from docs/latest/dev/CODEOWNERS.md rename to site/content/en/docs/latest/dev/CODEOWNERS.md index 7168ff935d2b..9e596002bb33 100644 --- a/docs/latest/dev/CODEOWNERS.md +++ b/site/content/en/docs/latest/dev/CODEOWNERS.md @@ -1,4 +1,6 @@ -# Maintainers +--- +title: "Maintainers" +--- ## The following maintainers, listed in alphabetical order, own everything diff --git a/docs/v0.2.0/dev/CODE_OF_CONDUCT.md b/site/content/en/docs/latest/dev/CODE_OF_CONDUCT.md similarity index 71% rename from docs/v0.2.0/dev/CODE_OF_CONDUCT.md rename to site/content/en/docs/latest/dev/CODE_OF_CONDUCT.md index a0a295770f31..bb066266f482 100644 --- a/docs/v0.2.0/dev/CODE_OF_CONDUCT.md +++ b/site/content/en/docs/latest/dev/CODE_OF_CONDUCT.md @@ -1,3 +1,5 @@ -# Community Code of Conduct +--- +title: "Community Code of Conduct" +--- Gateway follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/main/code-of-conduct.md). diff --git a/docs/v0.5.0/dev/CONTRIBUTING.md b/site/content/en/docs/latest/dev/CONTRIBUTING.md similarity index 99% rename from docs/v0.5.0/dev/CONTRIBUTING.md rename to site/content/en/docs/latest/dev/CONTRIBUTING.md index 04d95bb675d9..e3eafaaceed7 100644 --- a/docs/v0.5.0/dev/CONTRIBUTING.md +++ b/site/content/en/docs/latest/dev/CONTRIBUTING.md @@ -1,4 +1,6 @@ -# Contributing +--- +title: "Contributing" +--- We welcome contributions from the community. Please carefully review the [project goals](GOALS.md) and following guidelines to streamline your contributions. diff --git a/docs/latest/dev/DOCS.md b/site/content/en/docs/latest/dev/DOCS.md similarity index 98% rename from docs/latest/dev/DOCS.md rename to site/content/en/docs/latest/dev/DOCS.md index fb49b9d55dda..1abae95763c5 100644 --- a/docs/latest/dev/DOCS.md +++ b/site/content/en/docs/latest/dev/DOCS.md @@ -1,4 +1,6 @@ -# Working on the Envoy Gateway Docs +--- +title: "Working on the Envoy Gateway Docs" +--- The documentation for the Envoy Gateway lives in the `docs/` directory. Any individual document can be written using either [reStructuredText] or [Markdown], diff --git a/docs/latest/dev/GOALS.md b/site/content/en/docs/latest/dev/GOALS.md similarity index 100% rename from docs/latest/dev/GOALS.md rename to site/content/en/docs/latest/dev/GOALS.md diff --git a/docs/v0.5.0/dev/README.md b/site/content/en/docs/latest/dev/README.md similarity index 99% rename from docs/v0.5.0/dev/README.md rename to site/content/en/docs/latest/dev/README.md index cf25992e5b3b..a5eaa93ea707 100644 --- a/docs/v0.5.0/dev/README.md +++ b/site/content/en/docs/latest/dev/README.md @@ -1,4 +1,6 @@ -# Developer Guide +--- +title: "Developer Guide" +--- Envoy Gateway is built using a [make][]-based build system. Our CI is based on [Github Actions][] using [workflows][]. diff --git a/site/content/en/docs/latest/dev/_index.md b/site/content/en/docs/latest/dev/_index.md new file mode 100644 index 000000000000..b4ea3bc1a5b0 --- /dev/null +++ b/site/content/en/docs/latest/dev/_index.md @@ -0,0 +1,5 @@ +--- +title: "Development" +weight: 3 +description: This section includes Developments of Envoy Gateway. +--- diff --git a/docs/v0.5.0/dev/releasing.md b/site/content/en/docs/latest/dev/releasing.md similarity index 99% rename from docs/v0.5.0/dev/releasing.md rename to site/content/en/docs/latest/dev/releasing.md index 81625698cfa8..617baf1933e0 100644 --- a/docs/v0.5.0/dev/releasing.md +++ b/site/content/en/docs/latest/dev/releasing.md @@ -1,4 +1,6 @@ -# Release Process +--- +title: "Release Process" +--- This document guides maintainers through the process of creating an Envoy Gateway release. diff --git a/site/content/en/docs/latest/helm/_index.md b/site/content/en/docs/latest/helm/_index.md new file mode 100644 index 000000000000..8606fd7759c1 --- /dev/null +++ b/site/content/en/docs/latest/helm/_index.md @@ -0,0 +1,4 @@ +--- +title: "Helm" +description: This section includes Helm related contents of Envoy Gateway. +--- diff --git a/docs/latest/helm/api.md b/site/content/en/docs/latest/helm/api.md similarity index 98% rename from docs/latest/helm/api.md rename to site/content/en/docs/latest/helm/api.md index 98eb8e373049..ca33e2c5e1fe 100644 --- a/docs/latest/helm/api.md +++ b/site/content/en/docs/latest/helm/api.md @@ -1,4 +1,6 @@ -# gateway-helm +--- +title: "Helm Chart Details" +--- ![Version: v0.0.0-latest](https://img.shields.io/badge/Version-v0.0.0--latest-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square) diff --git a/docs/latest/images/architecture.png b/site/content/en/docs/latest/images/architecture.png similarity index 100% rename from docs/latest/images/architecture.png rename to site/content/en/docs/latest/images/architecture.png diff --git a/docs/latest/images/extension-example.png b/site/content/en/docs/latest/images/extension-example.png similarity index 100% rename from docs/latest/images/extension-example.png rename to site/content/en/docs/latest/images/extension-example.png diff --git a/site/content/en/docs/latest/user/_index.md b/site/content/en/docs/latest/user/_index.md new file mode 100644 index 000000000000..36ece365053b --- /dev/null +++ b/site/content/en/docs/latest/user/_index.md @@ -0,0 +1,5 @@ +--- +title: "User Guide" +weight: 2 +description: This section includes User Guides of Envoy Gateway. +--- diff --git a/docs/latest/user/authn.md b/site/content/en/docs/latest/user/authn.md similarity index 99% rename from docs/latest/user/authn.md rename to site/content/en/docs/latest/user/authn.md index 0ab4d96f38c5..5965ffd9cbed 100644 --- a/docs/latest/user/authn.md +++ b/site/content/en/docs/latest/user/authn.md @@ -1,4 +1,6 @@ -# Request Authentication +--- +title: "Request Authentication" +--- This guide provides instructions for configuring [JSON Web Token (JWT)][jwt] authentication. JWT authentication checks if an incoming request has a valid JWT before routing the request to a backend service. Currently, Envoy Gateway only diff --git a/docs/latest/user/customize-envoyproxy.md b/site/content/en/docs/latest/user/customize-envoyproxy.md similarity index 99% rename from docs/latest/user/customize-envoyproxy.md rename to site/content/en/docs/latest/user/customize-envoyproxy.md index ae1eb42f9f35..6e272874e523 100644 --- a/docs/latest/user/customize-envoyproxy.md +++ b/site/content/en/docs/latest/user/customize-envoyproxy.md @@ -1,4 +1,6 @@ -# Customize EnvoyProxy +--- +title: "Customize EnvoyProxy" +--- Envoy Gateway provides an [EnvoyProxy][] CRD that can be linked to the ParametersRef in GatewayClass, allowing cluster admins to customize the managed EnvoyProxy Deployment and diff --git a/docs/latest/user/deployment-mode.md b/site/content/en/docs/latest/user/deployment-mode.md similarity index 99% rename from docs/latest/user/deployment-mode.md rename to site/content/en/docs/latest/user/deployment-mode.md index af515394f299..08ea5febc5c1 100644 --- a/docs/latest/user/deployment-mode.md +++ b/site/content/en/docs/latest/user/deployment-mode.md @@ -1,4 +1,7 @@ -## Deployment Mode +--- +title: "Deployment Mode" +--- + ### One GatewayClass per Envoy Gateway diff --git a/docs/latest/user/egctl.md b/site/content/en/docs/latest/user/egctl.md similarity index 99% rename from docs/latest/user/egctl.md rename to site/content/en/docs/latest/user/egctl.md index 25644fb338f2..48ab112c86b4 100644 --- a/docs/latest/user/egctl.md +++ b/site/content/en/docs/latest/user/egctl.md @@ -1,4 +1,6 @@ -# egctl +--- +title: "Use egctl" +--- `egctl` is a command line tool to provide additional functionality for Envoy Gateway users. diff --git a/docs/latest/user/envoy-patch-policy.md b/site/content/en/docs/latest/user/envoy-patch-policy.md similarity index 99% rename from docs/latest/user/envoy-patch-policy.md rename to site/content/en/docs/latest/user/envoy-patch-policy.md index 6d70ffd07dbc..cd9fee24dfcf 100644 --- a/docs/latest/user/envoy-patch-policy.md +++ b/site/content/en/docs/latest/user/envoy-patch-policy.md @@ -1,4 +1,6 @@ -# Envoy Patch Policy +--- +title: "Envoy Patch Policy" +--- This guide explains the usage of the [EnvoyPatchPolicy][] API. __Note:__ This API is meant for users extremely familiar with Envoy [xDS][] semantics. diff --git a/docs/latest/user/gateway-address.md b/site/content/en/docs/latest/user/gateway-address.md similarity index 98% rename from docs/latest/user/gateway-address.md rename to site/content/en/docs/latest/user/gateway-address.md index a28ad62640a2..06570cbe8320 100644 --- a/docs/latest/user/gateway-address.md +++ b/site/content/en/docs/latest/user/gateway-address.md @@ -1,4 +1,6 @@ -# Gateway Address +--- +title: "Gateway Address" +--- The Gateway API provides an optional [Addresses][] field through which Envoy Gateway can set addresses for Envoy Proxy Service. The currently supported addresses are: diff --git a/docs/latest/user/gateway-api-metrics.md b/site/content/en/docs/latest/user/gateway-api-metrics.md similarity index 98% rename from docs/latest/user/gateway-api-metrics.md rename to site/content/en/docs/latest/user/gateway-api-metrics.md index e403c90404f9..5331145b050f 100644 --- a/docs/latest/user/gateway-api-metrics.md +++ b/site/content/en/docs/latest/user/gateway-api-metrics.md @@ -1,4 +1,6 @@ -# Gateway API Metrics +--- +title: "Gateway API Metrics" +--- Resource metrics for Gateway API objects are available using the [Gateway API State Metrics](https://github.com/Kuadrant/gateway-api-state-metrics) project. The project also provides example dashboard for visualising the metrics using Grafana, and example alerts using Prometheus & Alertmanager. diff --git a/docs/latest/user/gatewayapi-support.md b/site/content/en/docs/latest/user/gatewayapi-support.md similarity index 99% rename from docs/latest/user/gatewayapi-support.md rename to site/content/en/docs/latest/user/gatewayapi-support.md index ee14f3952587..d70064dde255 100644 --- a/docs/latest/user/gatewayapi-support.md +++ b/site/content/en/docs/latest/user/gatewayapi-support.md @@ -1,4 +1,6 @@ -# Gateway API Support +--- +title: "Gateway API Support" +--- As mentioned in the [system design][] document, Envoy Gateway's managed data plane is configured dynamically through Kubernetes resources, primarily [Gateway API][] objects. Envoy Gateway supports configuration using the following Gateway API resources. diff --git a/docs/latest/user/grpc-routing.md b/site/content/en/docs/latest/user/grpc-routing.md similarity index 99% rename from docs/latest/user/grpc-routing.md rename to site/content/en/docs/latest/user/grpc-routing.md index ef28dac199fe..5dca26744bc3 100644 --- a/docs/latest/user/grpc-routing.md +++ b/site/content/en/docs/latest/user/grpc-routing.md @@ -1,4 +1,6 @@ -# GRPC Routing +--- +title: "GRPC Routing" +--- The [GRPCRoute][] resource allows users to configure gRPC routing by matching HTTP/2 traffic and forwarding it to backend gRPC servers. To learn more about gRPC routing, refer to the [Gateway API documentation][]. diff --git a/docs/v0.3.0/user/http-redirect.md b/site/content/en/docs/latest/user/http-redirect.md similarity index 99% rename from docs/v0.3.0/user/http-redirect.md rename to site/content/en/docs/latest/user/http-redirect.md index dcd72749f368..da61bdaf32f3 100644 --- a/docs/v0.3.0/user/http-redirect.md +++ b/site/content/en/docs/latest/user/http-redirect.md @@ -1,4 +1,6 @@ -# HTTP Redirects +--- +title: "HTTP Redirects" +--- The [HTTPRoute][] resource can issue redirects to clients or rewrite paths sent upstream using filters. Note that HTTPRoute rules cannot use both filter types at once. Currently, Envoy Gateway only supports __core__ diff --git a/docs/v0.3.0/user/http-request-headers.md b/site/content/en/docs/latest/user/http-request-headers.md similarity index 99% rename from docs/v0.3.0/user/http-request-headers.md rename to site/content/en/docs/latest/user/http-request-headers.md index 5e1d77fe6d2f..17fe3b87bcb1 100644 --- a/docs/v0.3.0/user/http-request-headers.md +++ b/site/content/en/docs/latest/user/http-request-headers.md @@ -1,4 +1,6 @@ -# HTTP Request Headers +--- +title: "HTTP Request Headers" +--- The [HTTPRoute][] resource can modify the headers of a request before forwarding it to the upstream service. HTTPRoute rules cannot use both filter types at once. Currently, Envoy Gateway only supports __core__ [HTTPRoute filters][] which diff --git a/docs/latest/user/http-request-mirroring.md b/site/content/en/docs/latest/user/http-request-mirroring.md similarity index 99% rename from docs/latest/user/http-request-mirroring.md rename to site/content/en/docs/latest/user/http-request-mirroring.md index 45b3508b2644..aaea240f5ca9 100644 --- a/docs/latest/user/http-request-mirroring.md +++ b/site/content/en/docs/latest/user/http-request-mirroring.md @@ -1,4 +1,6 @@ -# HTTPRoute Request Mirroring +--- +title: "HTTPRoute Request Mirroring" +--- The [HTTPRoute][] resource allows one or more [backendRefs][] to be provided. Requests will be routed to these upstreams. It is possible to divide the traffic between these backends using [Traffic Splitting](http-traffic-splitting.md), but it is also possible to mirror requests to another Service instead. Request mirroring is accomplished using Gateway API's [HTTPRequestMirrorFilter][] on the `HTTPRoute`. diff --git a/docs/v0.4.0/user/http-response-headers.md b/site/content/en/docs/latest/user/http-response-headers.md similarity index 99% rename from docs/v0.4.0/user/http-response-headers.md rename to site/content/en/docs/latest/user/http-response-headers.md index 6c77c2e6c2c4..4a27728003d7 100644 --- a/docs/v0.4.0/user/http-response-headers.md +++ b/site/content/en/docs/latest/user/http-response-headers.md @@ -1,4 +1,6 @@ -# HTTP Response Headers +--- +title: "HTTP Response Headers" +--- The [HTTPRoute][] resource can modify the headers of a response before responding it to the downstream service. To learn more about HTTP routing, refer to the [Gateway API documentation][]. diff --git a/docs/latest/user/http-routing.md b/site/content/en/docs/latest/user/http-routing.md similarity index 99% rename from docs/latest/user/http-routing.md rename to site/content/en/docs/latest/user/http-routing.md index 73e9b5263dad..2b0f4cf1e355 100644 --- a/docs/latest/user/http-routing.md +++ b/site/content/en/docs/latest/user/http-routing.md @@ -1,4 +1,6 @@ -# HTTP Routing +--- +title: "HTTP Routing" +--- The [HTTPRoute][] resource allows users to configure HTTP routing by matching HTTP traffic and forwarding it to Kubernetes backends. Currently, the only supported backend supported by Envoy Gateway is a Service resource. This guide diff --git a/docs/v0.5.0/user/http-traffic-splitting.md b/site/content/en/docs/latest/user/http-traffic-splitting.md similarity index 99% rename from docs/v0.5.0/user/http-traffic-splitting.md rename to site/content/en/docs/latest/user/http-traffic-splitting.md index 92fed8bd0b11..94f021b5aecb 100644 --- a/docs/v0.5.0/user/http-traffic-splitting.md +++ b/site/content/en/docs/latest/user/http-traffic-splitting.md @@ -1,4 +1,6 @@ -# HTTPRoute Traffic Splitting +--- +title: "HTTPRoute Traffic Splitting" +--- The [HTTPRoute][] resource allows one or more [backendRefs][] to be provided. Requests will be routed to these upstreams if they match the rules of the HTTPRoute. If an invalid backendRef is configured, then HTTP responses will be returned diff --git a/docs/v0.4.0/user/http-urlrewrite.md b/site/content/en/docs/latest/user/http-urlrewrite.md similarity index 99% rename from docs/v0.4.0/user/http-urlrewrite.md rename to site/content/en/docs/latest/user/http-urlrewrite.md index 88e29c3269cc..fb68ae883221 100644 --- a/docs/v0.4.0/user/http-urlrewrite.md +++ b/site/content/en/docs/latest/user/http-urlrewrite.md @@ -1,4 +1,6 @@ -# HTTP URL Rewrite +--- +title: "HTTP URL Rewrite" +--- [HTTPURLRewriteFilter][] defines a filter that modifies a request during forwarding. At most one of these filters may be used on a Route rule. This MUST NOT be used on the same Route rule as a HTTPRequestRedirect filter. diff --git a/docs/latest/user/installation.md b/site/content/en/docs/latest/user/installation.md similarity index 99% rename from docs/latest/user/installation.md rename to site/content/en/docs/latest/user/installation.md index 8f3d9de6db89..03796dbd96f7 100644 --- a/docs/latest/user/installation.md +++ b/site/content/en/docs/latest/user/installation.md @@ -1,4 +1,6 @@ -# Installation +--- +title: "Installation" +--- ## Prerequisites diff --git a/docs/latest/user/multicluster-service.md b/site/content/en/docs/latest/user/multicluster-service.md similarity index 98% rename from docs/latest/user/multicluster-service.md rename to site/content/en/docs/latest/user/multicluster-service.md index 1c46c8ab1f71..d0fd7a83fb1c 100644 --- a/docs/latest/user/multicluster-service.md +++ b/site/content/en/docs/latest/user/multicluster-service.md @@ -1,4 +1,6 @@ -# Multicluster Service Routing +--- +title: "Multicluster Service Routing" +--- The Multicluster Service API ServiceImport object can be used as part of the GatewayAPI backendRef for configuring routes. For more information about multicluster service API follow [sig documentation](https://multicluster.sigs.k8s.io/concepts/multicluster-services-api/). diff --git a/docs/v0.5.0/user/proxy-observability.md b/site/content/en/docs/latest/user/proxy-observability.md similarity index 99% rename from docs/v0.5.0/user/proxy-observability.md rename to site/content/en/docs/latest/user/proxy-observability.md index e635460865b0..8755332262d0 100644 --- a/docs/v0.5.0/user/proxy-observability.md +++ b/site/content/en/docs/latest/user/proxy-observability.md @@ -1,4 +1,6 @@ -# Proxy Observability +--- +title: "Proxy Observability" +--- Envoy Gateway provides observability for the ControlPlane and the underlying EnvoyProxy instances. This guide show you how to config proxy observability, includes metrics, logs, and traces. diff --git a/docs/latest/user/quickstart.md b/site/content/en/docs/latest/user/quickstart.md similarity index 98% rename from docs/latest/user/quickstart.md rename to site/content/en/docs/latest/user/quickstart.md index ce2623ed0052..feaf4a89ce47 100644 --- a/docs/latest/user/quickstart.md +++ b/site/content/en/docs/latest/user/quickstart.md @@ -1,4 +1,7 @@ -# Quickstart +--- +title: "Quickstart" +weight: 1 +--- This guide will help you get started with Envoy Gateway in a few simple steps. diff --git a/docs/latest/user/rate-limit.md b/site/content/en/docs/latest/user/rate-limit.md similarity index 99% rename from docs/latest/user/rate-limit.md rename to site/content/en/docs/latest/user/rate-limit.md index 1baa0df1140c..a2781fe0a906 100644 --- a/docs/latest/user/rate-limit.md +++ b/site/content/en/docs/latest/user/rate-limit.md @@ -1,4 +1,6 @@ -# Rate Limit +--- +title: "Rate Limit" +--- Rate limit is a feature that allows the user to limit the number of incoming requests to a predefined value based on attributes within the traffic flow. diff --git a/docs/latest/user/secure-gateways.md b/site/content/en/docs/latest/user/secure-gateways.md similarity index 99% rename from docs/latest/user/secure-gateways.md rename to site/content/en/docs/latest/user/secure-gateways.md index 8ada7c59978a..2e04000d5a7d 100644 --- a/docs/latest/user/secure-gateways.md +++ b/site/content/en/docs/latest/user/secure-gateways.md @@ -1,4 +1,6 @@ -# Secure Gateways +--- +title: "Secure Gateways" +--- This guide will help you get started using secure Gateways. The guide uses a self-signed CA, so it should be used for testing and demonstration purposes only. diff --git a/docs/latest/user/tcp-routing.md b/site/content/en/docs/latest/user/tcp-routing.md similarity index 99% rename from docs/latest/user/tcp-routing.md rename to site/content/en/docs/latest/user/tcp-routing.md index ed1f5430b4cb..d06ae77f7a4c 100644 --- a/docs/latest/user/tcp-routing.md +++ b/site/content/en/docs/latest/user/tcp-routing.md @@ -1,4 +1,6 @@ -# TCP Routing +--- +title: "TCP Routing" +--- [TCPRoute][] provides a way to route TCP requests. When combined with a Gateway listener, it can be used to forward connections on the port specified by the listener to a set of backends specified by the TCPRoute. To learn more about diff --git a/docs/latest/user/tls-cert-manager.md b/site/content/en/docs/latest/user/tls-cert-manager.md similarity index 99% rename from docs/latest/user/tls-cert-manager.md rename to site/content/en/docs/latest/user/tls-cert-manager.md index 72f3384fdd5e..b47d80ca5d19 100644 --- a/docs/latest/user/tls-cert-manager.md +++ b/site/content/en/docs/latest/user/tls-cert-manager.md @@ -1,4 +1,6 @@ -# Using cert-manager For TLS Termination +--- +title: "Using cert-manager For TLS Termination" +--- This guide shows how to set up [cert-manager](https://cert-manager.io/) to automatically create certificates and secrets for use by Envoy Gateway. It will first show how to enable the self-sign issuer, which is useful to test that cert-manager and Envoy Gateway can talk to each other. @@ -51,7 +53,7 @@ cert-manager can have any number of *issuer* configurations. The simplest issuer type is [SelfSigned](https://cert-manager.io/docs/configuration/selfsigned/). It simply takes the certificate request and signs it with the private key it generates for the TLS Secret. -```{note} +``` Self-signed certificates don't provide any help in establishing trust between certificates. However, they are great for initial testing, due to their simplicity. ``` diff --git a/docs/latest/user/tls-passthrough.md b/site/content/en/docs/latest/user/tls-passthrough.md similarity index 99% rename from docs/latest/user/tls-passthrough.md rename to site/content/en/docs/latest/user/tls-passthrough.md index 75a14d2a5373..2ad4610a9991 100644 --- a/docs/latest/user/tls-passthrough.md +++ b/site/content/en/docs/latest/user/tls-passthrough.md @@ -1,4 +1,6 @@ -# TLS Passthrough +--- +title: "TLS Passthrough" +--- This guide will walk through the steps required to configure TLS Passthrough via Envoy Gateway. Unlike configuring Secure Gateways, where the Gateway terminates the client TLS connection, TLS Passthrough allows the application itself diff --git a/docs/latest/user/tls-termination.md b/site/content/en/docs/latest/user/tls-termination.md similarity index 98% rename from docs/latest/user/tls-termination.md rename to site/content/en/docs/latest/user/tls-termination.md index ebea433faf1b..eaae97ec9fde 100644 --- a/docs/latest/user/tls-termination.md +++ b/site/content/en/docs/latest/user/tls-termination.md @@ -1,4 +1,6 @@ -# TLS Termination for TCP +--- +title: "TLS Termination for TCP" +--- This guide will walk through the steps required to configure TLS Terminate mode for TCP traffic via Envoy Gateway. The guide uses a self-signed CA, so it should be used for testing and demonstration purposes only. diff --git a/docs/latest/user/udp-routing.md b/site/content/en/docs/latest/user/udp-routing.md similarity index 99% rename from docs/latest/user/udp-routing.md rename to site/content/en/docs/latest/user/udp-routing.md index 865019cc1d66..b6bc7fa633ba 100644 --- a/docs/latest/user/udp-routing.md +++ b/site/content/en/docs/latest/user/udp-routing.md @@ -1,4 +1,6 @@ -# UDP Routing +--- +title: "UDP Routing" +--- The [UDPRoute][] resource allows users to configure UDP routing by matching UDP traffic and forwarding it to Kubernetes backends. This guide will use CoreDNS example to walk you through the steps required to configure UDPRoute on Envoy diff --git a/site/content/en/docs/m.py b/site/content/en/docs/m.py new file mode 100644 index 000000000000..33955e20b0d0 --- /dev/null +++ b/site/content/en/docs/m.py @@ -0,0 +1,22 @@ +import os +import re + +# 递归遍历目录及其子目录中的所有 .md 文件 +for root, dirs, files in os.walk('.'): + for file in files: + if file.endswith(".md"): + file_path = os.path.join(root, file) + with open(file_path, "r") as f: + content = f.readlines() + + # 查找并删除第一个一级标题 + for i in range(len(content)): + if content[i].startswith("# "): + content[i] = "" + break + + # 将新内容写回文件 + with open(file_path, "w") as f: + f.writelines(content) + +print("转换完成!") \ No newline at end of file diff --git a/site/content/en/docs/v0.2.0/_index.md b/site/content/en/docs/v0.2.0/_index.md new file mode 100644 index 000000000000..045c5cfab1c5 --- /dev/null +++ b/site/content/en/docs/v0.2.0/_index.md @@ -0,0 +1,8 @@ +--- +title: "Welcome to Envoy Gateway" +description: v0.2.0 version of Envoy Gateway +linktitle: v0.2.0 +--- + +Envoy Gateway is an open source project for managing **Envoy Proxy** as a standalone or Kubernetes-based application +gateway. **Gateway API** resources are used to dynamically provision and configure the managed Envoy Proxies. diff --git a/site/content/en/docs/v0.2.0/design/_index.md b/site/content/en/docs/v0.2.0/design/_index.md new file mode 100644 index 000000000000..21650809f7da --- /dev/null +++ b/site/content/en/docs/v0.2.0/design/_index.md @@ -0,0 +1,6 @@ +--- +title: "Design" +weight: 1 +description: This section includes Designs of Envoy Gateway. +--- + diff --git a/docs/v0.2.0/design/config-api.md b/site/content/en/docs/v0.2.0/design/config-api.md similarity index 99% rename from docs/v0.2.0/design/config-api.md rename to site/content/en/docs/v0.2.0/design/config-api.md index 3696860dd54d..466b84d8f351 100644 --- a/docs/v0.2.0/design/config-api.md +++ b/site/content/en/docs/v0.2.0/design/config-api.md @@ -1,4 +1,6 @@ -# Configuration API Design +--- +title: "Configuration API Design" +--- ## Motivation diff --git a/docs/v0.4.0/design/gatewayapi-translator.md b/site/content/en/docs/v0.2.0/design/gatewayapi-translator.md similarity index 99% rename from docs/v0.4.0/design/gatewayapi-translator.md rename to site/content/en/docs/v0.2.0/design/gatewayapi-translator.md index 3cf0da94f5aa..3add199ee15e 100644 --- a/docs/v0.4.0/design/gatewayapi-translator.md +++ b/site/content/en/docs/v0.2.0/design/gatewayapi-translator.md @@ -1,4 +1,6 @@ -# Gateway API Translator Design +--- +title: "Gateway API Translator Design" +--- The Gateway API translates external resources, e.g. GatewayClass, from the configured Provider to the Intermediate Representation (IR). diff --git a/docs/v0.2.0/design/roadmap.md b/site/content/en/docs/v0.2.0/design/roadmap.md similarity index 99% rename from docs/v0.2.0/design/roadmap.md rename to site/content/en/docs/v0.2.0/design/roadmap.md index d6ec649e4a29..b59afc058052 100644 --- a/docs/v0.2.0/design/roadmap.md +++ b/site/content/en/docs/v0.2.0/design/roadmap.md @@ -1,4 +1,6 @@ -# Roadmap +--- +title: "Roadmap" +--- This document serves as a high-level reference for Envoy Gateway users and contributors to understand the direction of the project. diff --git a/docs/v0.3.0/design/system-design.md b/site/content/en/docs/v0.2.0/design/system-design.md similarity index 99% rename from docs/v0.3.0/design/system-design.md rename to site/content/en/docs/v0.2.0/design/system-design.md index 731cb0925b03..5c3c0c201997 100644 --- a/docs/v0.3.0/design/system-design.md +++ b/site/content/en/docs/v0.2.0/design/system-design.md @@ -1,4 +1,6 @@ -# System Design +--- +title: "System Design" +--- ## Goals diff --git a/docs/v0.3.0/design/watching.md b/site/content/en/docs/v0.2.0/design/watching.md similarity index 99% rename from docs/v0.3.0/design/watching.md rename to site/content/en/docs/v0.2.0/design/watching.md index b8477a30e2d6..e2d17ca86b91 100644 --- a/docs/v0.3.0/design/watching.md +++ b/site/content/en/docs/v0.2.0/design/watching.md @@ -1,4 +1,6 @@ -# Watching Components Design +--- +title: "Watching Components Design" +--- Envoy Gateway is made up of several components that communicate in-process. Some of them (namely Providers) watch external resources, and "publish" what they see for other components to consume; others watch what another publishes and diff --git a/docs/v0.2.0/dev/CODEOWNERS.md b/site/content/en/docs/v0.2.0/dev/CODEOWNERS.md similarity index 87% rename from docs/v0.2.0/dev/CODEOWNERS.md rename to site/content/en/docs/v0.2.0/dev/CODEOWNERS.md index d4229b6b23f2..7e0da1b17a21 100644 --- a/docs/v0.2.0/dev/CODEOWNERS.md +++ b/site/content/en/docs/v0.2.0/dev/CODEOWNERS.md @@ -1,4 +1,6 @@ -# Maintainers +--- +title: "Maintainers" +--- ## The following maintainers, listed in alphabetical order, own everything diff --git a/docs/v0.3.0/dev/CODE_OF_CONDUCT.md b/site/content/en/docs/v0.2.0/dev/CODE_OF_CONDUCT.md similarity index 71% rename from docs/v0.3.0/dev/CODE_OF_CONDUCT.md rename to site/content/en/docs/v0.2.0/dev/CODE_OF_CONDUCT.md index a0a295770f31..bb066266f482 100644 --- a/docs/v0.3.0/dev/CODE_OF_CONDUCT.md +++ b/site/content/en/docs/v0.2.0/dev/CODE_OF_CONDUCT.md @@ -1,3 +1,5 @@ -# Community Code of Conduct +--- +title: "Community Code of Conduct" +--- Gateway follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/main/code-of-conduct.md). diff --git a/docs/v0.3.0/dev/CONTRIBUTING.md b/site/content/en/docs/v0.2.0/dev/CONTRIBUTING.md similarity index 99% rename from docs/v0.3.0/dev/CONTRIBUTING.md rename to site/content/en/docs/v0.2.0/dev/CONTRIBUTING.md index d7770bdeff2f..f4a13ff42445 100644 --- a/docs/v0.3.0/dev/CONTRIBUTING.md +++ b/site/content/en/docs/v0.2.0/dev/CONTRIBUTING.md @@ -1,4 +1,6 @@ -# Contributing +--- +title: "Contributing" +--- We welcome contributions from the community. Please carefully review the [project goals](GOALS.md) and following guidelines to streamline your contributions. diff --git a/docs/v0.3.0/dev/DOCS.md b/site/content/en/docs/v0.2.0/dev/DOCS.md similarity index 98% rename from docs/v0.3.0/dev/DOCS.md rename to site/content/en/docs/v0.2.0/dev/DOCS.md index fb49b9d55dda..1abae95763c5 100644 --- a/docs/v0.3.0/dev/DOCS.md +++ b/site/content/en/docs/v0.2.0/dev/DOCS.md @@ -1,4 +1,6 @@ -# Working on the Envoy Gateway Docs +--- +title: "Working on the Envoy Gateway Docs" +--- The documentation for the Envoy Gateway lives in the `docs/` directory. Any individual document can be written using either [reStructuredText] or [Markdown], diff --git a/docs/v0.2.0/dev/GOALS.md b/site/content/en/docs/v0.2.0/dev/GOALS.md similarity index 100% rename from docs/v0.2.0/dev/GOALS.md rename to site/content/en/docs/v0.2.0/dev/GOALS.md diff --git a/docs/v0.2.0/dev/README.md b/site/content/en/docs/v0.2.0/dev/README.md similarity index 99% rename from docs/v0.2.0/dev/README.md rename to site/content/en/docs/v0.2.0/dev/README.md index 4f94c06bb37a..b04522a80850 100644 --- a/docs/v0.2.0/dev/README.md +++ b/site/content/en/docs/v0.2.0/dev/README.md @@ -1,4 +1,6 @@ -# Developer Guide +--- +title: "Developer Guide" +--- Envoy Gateway is built using a [make][]-based build system. Our CI is based on [Github Actions][] using [workflows][]. diff --git a/site/content/en/docs/v0.2.0/dev/_index.md b/site/content/en/docs/v0.2.0/dev/_index.md new file mode 100644 index 000000000000..b4ea3bc1a5b0 --- /dev/null +++ b/site/content/en/docs/v0.2.0/dev/_index.md @@ -0,0 +1,5 @@ +--- +title: "Development" +weight: 3 +description: This section includes Developments of Envoy Gateway. +--- diff --git a/docs/v0.2.0/dev/releasing.md b/site/content/en/docs/v0.2.0/dev/releasing.md similarity index 99% rename from docs/v0.2.0/dev/releasing.md rename to site/content/en/docs/v0.2.0/dev/releasing.md index 30bb5fe8c582..5a4af9e8278b 100644 --- a/docs/v0.2.0/dev/releasing.md +++ b/site/content/en/docs/v0.2.0/dev/releasing.md @@ -1,4 +1,6 @@ -# Release Process +--- +title: "Release Process" +--- This document guides maintainers through the process of creating an Envoy Gateway release. diff --git a/docs/v0.2.0/images/architecture.png b/site/content/en/docs/v0.2.0/images/architecture.png similarity index 100% rename from docs/v0.2.0/images/architecture.png rename to site/content/en/docs/v0.2.0/images/architecture.png diff --git a/site/content/en/docs/v0.2.0/user/_index.md b/site/content/en/docs/v0.2.0/user/_index.md new file mode 100644 index 000000000000..32a4b32e7904 --- /dev/null +++ b/site/content/en/docs/v0.2.0/user/_index.md @@ -0,0 +1,6 @@ +--- +title: "User Guide" +weight: 2 +description: This section includes User Guides of Envoy Gateway. +--- + diff --git a/docs/v0.2.0/user/http-redirect.md b/site/content/en/docs/v0.2.0/user/http-redirect.md similarity index 99% rename from docs/v0.2.0/user/http-redirect.md rename to site/content/en/docs/v0.2.0/user/http-redirect.md index 5b6588535eaf..245039c74b51 100644 --- a/docs/v0.2.0/user/http-redirect.md +++ b/site/content/en/docs/v0.2.0/user/http-redirect.md @@ -1,4 +1,6 @@ -# HTTP Redirects +--- +title: "HTTP Redirects" +--- The [HTTPRoute][] resource can issue redirects to clients or rewrite paths sent upstream using filters. Note that HTTPRoute rules cannot use both filter types at once. Currently, Envoy Gateway only supports __core__ diff --git a/docs/v0.2.0/user/http-request-headers.md b/site/content/en/docs/v0.2.0/user/http-request-headers.md similarity index 99% rename from docs/v0.2.0/user/http-request-headers.md rename to site/content/en/docs/v0.2.0/user/http-request-headers.md index b51bf946cdf9..cc801d28ddca 100644 --- a/docs/v0.2.0/user/http-request-headers.md +++ b/site/content/en/docs/v0.2.0/user/http-request-headers.md @@ -1,4 +1,6 @@ -# HTTP Request Headers +--- +title: "HTTP Request Headers" +--- The [HTTPRoute][] resource can modify the headers of a request before forwarding it to the upstream service. HTTPRoute rules cannot use both filter types at once. Currently, Envoy Gateway only supports __core__ [HTTPRoute filters][] which diff --git a/docs/v0.2.0/user/http-routing.md b/site/content/en/docs/v0.2.0/user/http-routing.md similarity index 99% rename from docs/v0.2.0/user/http-routing.md rename to site/content/en/docs/v0.2.0/user/http-routing.md index d3d9bd388cbc..6ca0b8c9751a 100644 --- a/docs/v0.2.0/user/http-routing.md +++ b/site/content/en/docs/v0.2.0/user/http-routing.md @@ -1,4 +1,6 @@ -# HTTP Routing +--- +title: "HTTP Routing" +--- The [HTTPRoute][] resource allows users to configure HTTP routing by matching HTTP traffic and forwarding it to Kubernetes backends. Currently, the only supported backend supported by Envoy Gateway is a Service resource. This guide diff --git a/docs/v0.2.0/user/http-traffic-splitting.md b/site/content/en/docs/v0.2.0/user/http-traffic-splitting.md similarity index 99% rename from docs/v0.2.0/user/http-traffic-splitting.md rename to site/content/en/docs/v0.2.0/user/http-traffic-splitting.md index a3f8fe60b47c..421a4fa05461 100644 --- a/docs/v0.2.0/user/http-traffic-splitting.md +++ b/site/content/en/docs/v0.2.0/user/http-traffic-splitting.md @@ -1,4 +1,6 @@ -# HTTPRoute Traffic Splitting +--- +title: "HTTPRoute Traffic Splitting" +--- The [HTTPRoute][] resource allows one or more [backendRefs][] to be provided. Requests will be routed to these upstreams if they match the rules of the HTTPRoute. If an invalid backendRef is configured, then HTTP responses will be returned diff --git a/docs/v0.2.0/user/quickstart.md b/site/content/en/docs/v0.2.0/user/quickstart.md similarity index 98% rename from docs/v0.2.0/user/quickstart.md rename to site/content/en/docs/v0.2.0/user/quickstart.md index 5361ca187ea6..0827145400f6 100644 --- a/docs/v0.2.0/user/quickstart.md +++ b/site/content/en/docs/v0.2.0/user/quickstart.md @@ -1,4 +1,7 @@ -# Quickstart +--- +title: "Quickstart" +weight: 1 +--- This guide will help you get started with Envoy Gateway in a few simple steps. diff --git a/docs/v0.2.0/user/secure-gateways.md b/site/content/en/docs/v0.2.0/user/secure-gateways.md similarity index 99% rename from docs/v0.2.0/user/secure-gateways.md rename to site/content/en/docs/v0.2.0/user/secure-gateways.md index cd5199495b9d..2919cfdd26a8 100644 --- a/docs/v0.2.0/user/secure-gateways.md +++ b/site/content/en/docs/v0.2.0/user/secure-gateways.md @@ -1,4 +1,6 @@ -# Secure Gateways +--- +title: "Secure Gateways" +--- This guide will help you get started using secure Gateways. The guide uses a self-signed CA, so it should be used for testing and demonstration purposes only. diff --git a/docs/v0.2.0/user/tls-passthrough.md b/site/content/en/docs/v0.2.0/user/tls-passthrough.md similarity index 99% rename from docs/v0.2.0/user/tls-passthrough.md rename to site/content/en/docs/v0.2.0/user/tls-passthrough.md index f089350d3bd0..fcfee0d82d42 100644 --- a/docs/v0.2.0/user/tls-passthrough.md +++ b/site/content/en/docs/v0.2.0/user/tls-passthrough.md @@ -1,4 +1,6 @@ -# TLS Passthrough +--- +title: "TLS Passthrough" +--- This guide will walk through the steps required to configure TLS Passthrough via Envoy Gateway. Unlike configuring Secure Gateways, where the Gateway terminates the client TLS connection, TLS Passthrough allows the application itself diff --git a/site/content/en/docs/v0.3.0/_index.md b/site/content/en/docs/v0.3.0/_index.md new file mode 100644 index 000000000000..35bb3ad518fb --- /dev/null +++ b/site/content/en/docs/v0.3.0/_index.md @@ -0,0 +1,8 @@ +--- +title: "Welcome to Envoy Gateway" +description: v0.3.0 version of Envoy Gateway +linktitle: v0.3.0 +--- + +Envoy Gateway is an open source project for managing **Envoy Proxy** as a standalone or Kubernetes-based application +gateway. **Gateway API** resources are used to dynamically provision and configure the managed Envoy Proxies. diff --git a/site/content/en/docs/v0.3.0/api/_index.md b/site/content/en/docs/v0.3.0/api/_index.md new file mode 100644 index 000000000000..1d7c67c8c151 --- /dev/null +++ b/site/content/en/docs/v0.3.0/api/_index.md @@ -0,0 +1,4 @@ +--- +title: "API" +description: This section includes APIs of Envoy Gateway. +--- diff --git a/docs/v0.3.0/api/config_types.md b/site/content/en/docs/v0.3.0/api/config_types.md similarity index 99% rename from docs/v0.3.0/api/config_types.md rename to site/content/en/docs/v0.3.0/api/config_types.md index 8ddc73d3efc4..4ff5b3f6f181 100644 --- a/docs/v0.3.0/api/config_types.md +++ b/site/content/en/docs/v0.3.0/api/config_types.md @@ -1,4 +1,6 @@ -# API Reference +--- +title: "Config APIs" +--- ## Packages - [config.gateway.envoyproxy.io/v1alpha1](#configgatewayenvoyproxyiov1alpha1) diff --git a/docs/v0.3.0/api/extension_types.md b/site/content/en/docs/v0.3.0/api/extension_types.md similarity index 99% rename from docs/v0.3.0/api/extension_types.md rename to site/content/en/docs/v0.3.0/api/extension_types.md index 9479da94da5c..478fc54f5dca 100644 --- a/docs/v0.3.0/api/extension_types.md +++ b/site/content/en/docs/v0.3.0/api/extension_types.md @@ -1,4 +1,6 @@ -# API Reference +--- +title: "Extension APIs" +--- ## Packages - [gateway.envoyproxy.io/v1alpha1](#gatewayenvoyproxyiov1alpha1) diff --git a/site/content/en/docs/v0.3.0/design/_index.md b/site/content/en/docs/v0.3.0/design/_index.md new file mode 100644 index 000000000000..21650809f7da --- /dev/null +++ b/site/content/en/docs/v0.3.0/design/_index.md @@ -0,0 +1,6 @@ +--- +title: "Design" +weight: 1 +description: This section includes Designs of Envoy Gateway. +--- + diff --git a/docs/v0.3.0/design/config-api.md b/site/content/en/docs/v0.3.0/design/config-api.md similarity index 99% rename from docs/v0.3.0/design/config-api.md rename to site/content/en/docs/v0.3.0/design/config-api.md index 3696860dd54d..466b84d8f351 100644 --- a/docs/v0.3.0/design/config-api.md +++ b/site/content/en/docs/v0.3.0/design/config-api.md @@ -1,4 +1,6 @@ -# Configuration API Design +--- +title: "Configuration API Design" +--- ## Motivation diff --git a/docs/v0.3.0/design/egctl.md b/site/content/en/docs/v0.3.0/design/egctl.md similarity index 98% rename from docs/v0.3.0/design/egctl.md rename to site/content/en/docs/v0.3.0/design/egctl.md index 53a5e7b998ac..c9db36e1b68c 100644 --- a/docs/v0.3.0/design/egctl.md +++ b/site/content/en/docs/v0.3.0/design/egctl.md @@ -1,4 +1,6 @@ -# Introduce egctl +--- +title: "Introduce egctl" +--- ## Motivation diff --git a/docs/v0.3.0/design/gatewayapi-support.md b/site/content/en/docs/v0.3.0/design/gatewayapi-support.md similarity index 99% rename from docs/v0.3.0/design/gatewayapi-support.md rename to site/content/en/docs/v0.3.0/design/gatewayapi-support.md index 4ce9f1b041e3..67eaf05bb4ac 100644 --- a/docs/v0.3.0/design/gatewayapi-support.md +++ b/site/content/en/docs/v0.3.0/design/gatewayapi-support.md @@ -1,4 +1,6 @@ -# Gateway API Support +--- +title: "Gateway API Support" +--- As mentioned in the [system design][] document, Envoy Gateway's managed data plane is configured dynamically through Kubernetes resources, primarily [Gateway API][] objects. Envoy Gateway supports configuration using the following Gateway API resources. diff --git a/docs/v0.2.0/design/gatewayapi-translator.md b/site/content/en/docs/v0.3.0/design/gatewayapi-translator.md similarity index 99% rename from docs/v0.2.0/design/gatewayapi-translator.md rename to site/content/en/docs/v0.3.0/design/gatewayapi-translator.md index 3cf0da94f5aa..3add199ee15e 100644 --- a/docs/v0.2.0/design/gatewayapi-translator.md +++ b/site/content/en/docs/v0.3.0/design/gatewayapi-translator.md @@ -1,4 +1,6 @@ -# Gateway API Translator Design +--- +title: "Gateway API Translator Design" +--- The Gateway API translates external resources, e.g. GatewayClass, from the configured Provider to the Intermediate Representation (IR). diff --git a/docs/v0.3.0/design/ratelimit.md b/site/content/en/docs/v0.3.0/design/ratelimit.md similarity index 99% rename from docs/v0.3.0/design/ratelimit.md rename to site/content/en/docs/v0.3.0/design/ratelimit.md index 8cf069346e44..5d080e4d08cc 100644 --- a/docs/v0.3.0/design/ratelimit.md +++ b/site/content/en/docs/v0.3.0/design/ratelimit.md @@ -1,4 +1,6 @@ -# Rate Limit Design +--- +title: "Rate Limit Design" +--- ## Overview diff --git a/docs/latest/design/request-authentication.md b/site/content/en/docs/v0.3.0/design/request-authentication.md similarity index 99% rename from docs/latest/design/request-authentication.md rename to site/content/en/docs/v0.3.0/design/request-authentication.md index 6b2192eadfd9..a88f7392b1fa 100644 --- a/docs/latest/design/request-authentication.md +++ b/site/content/en/docs/v0.3.0/design/request-authentication.md @@ -1,4 +1,6 @@ -# Request Authentication Design +--- +title: "Request Authentication" +--- ## Overview diff --git a/docs/v0.3.0/design/roadmap.md b/site/content/en/docs/v0.3.0/design/roadmap.md similarity index 99% rename from docs/v0.3.0/design/roadmap.md rename to site/content/en/docs/v0.3.0/design/roadmap.md index 735f19e69813..69ff513317f9 100644 --- a/docs/v0.3.0/design/roadmap.md +++ b/site/content/en/docs/v0.3.0/design/roadmap.md @@ -1,4 +1,6 @@ -# Roadmap +--- +title: "Roadmap" +--- This document serves as a high-level reference for Envoy Gateway users and contributors to understand the direction of the project. diff --git a/docs/v0.2.0/design/system-design.md b/site/content/en/docs/v0.3.0/design/system-design.md similarity index 99% rename from docs/v0.2.0/design/system-design.md rename to site/content/en/docs/v0.3.0/design/system-design.md index 731cb0925b03..5c3c0c201997 100644 --- a/docs/v0.2.0/design/system-design.md +++ b/site/content/en/docs/v0.3.0/design/system-design.md @@ -1,4 +1,6 @@ -# System Design +--- +title: "System Design" +--- ## Goals diff --git a/docs/v0.4.0/design/tcp-udp-design.md b/site/content/en/docs/v0.3.0/design/tcp-udp-design.md similarity index 98% rename from docs/v0.4.0/design/tcp-udp-design.md rename to site/content/en/docs/v0.3.0/design/tcp-udp-design.md index 276221b897ba..f517e24fedae 100644 --- a/docs/v0.4.0/design/tcp-udp-design.md +++ b/site/content/en/docs/v0.3.0/design/tcp-udp-design.md @@ -1,4 +1,6 @@ -# TCP and UDP Proxy Design +--- +title: "TCP and UDP Proxy Design " +--- Even though most of the use cases for Envoy Gateway are at Layer-7, Envoy Gateway can also work at Layer-4 to proxy TCP and UDP traffic. This document will explore the options we have when operating Envoy Gateway at Layer-4 and explain the diff --git a/docs/latest/design/watching.md b/site/content/en/docs/v0.3.0/design/watching.md similarity index 99% rename from docs/latest/design/watching.md rename to site/content/en/docs/v0.3.0/design/watching.md index b8477a30e2d6..e2d17ca86b91 100644 --- a/docs/latest/design/watching.md +++ b/site/content/en/docs/v0.3.0/design/watching.md @@ -1,4 +1,6 @@ -# Watching Components Design +--- +title: "Watching Components Design" +--- Envoy Gateway is made up of several components that communicate in-process. Some of them (namely Providers) watch external resources, and "publish" what they see for other components to consume; others watch what another publishes and diff --git a/docs/v0.3.0/dev/CODEOWNERS.md b/site/content/en/docs/v0.3.0/dev/CODEOWNERS.md similarity index 87% rename from docs/v0.3.0/dev/CODEOWNERS.md rename to site/content/en/docs/v0.3.0/dev/CODEOWNERS.md index d4229b6b23f2..7e0da1b17a21 100644 --- a/docs/v0.3.0/dev/CODEOWNERS.md +++ b/site/content/en/docs/v0.3.0/dev/CODEOWNERS.md @@ -1,4 +1,6 @@ -# Maintainers +--- +title: "Maintainers" +--- ## The following maintainers, listed in alphabetical order, own everything diff --git a/docs/v0.4.0/dev/CODE_OF_CONDUCT.md b/site/content/en/docs/v0.3.0/dev/CODE_OF_CONDUCT.md similarity index 71% rename from docs/v0.4.0/dev/CODE_OF_CONDUCT.md rename to site/content/en/docs/v0.3.0/dev/CODE_OF_CONDUCT.md index a0a295770f31..bb066266f482 100644 --- a/docs/v0.4.0/dev/CODE_OF_CONDUCT.md +++ b/site/content/en/docs/v0.3.0/dev/CODE_OF_CONDUCT.md @@ -1,3 +1,5 @@ -# Community Code of Conduct +--- +title: "Community Code of Conduct" +--- Gateway follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/main/code-of-conduct.md). diff --git a/docs/v0.2.0/dev/CONTRIBUTING.md b/site/content/en/docs/v0.3.0/dev/CONTRIBUTING.md similarity index 99% rename from docs/v0.2.0/dev/CONTRIBUTING.md rename to site/content/en/docs/v0.3.0/dev/CONTRIBUTING.md index d7770bdeff2f..f4a13ff42445 100644 --- a/docs/v0.2.0/dev/CONTRIBUTING.md +++ b/site/content/en/docs/v0.3.0/dev/CONTRIBUTING.md @@ -1,4 +1,6 @@ -# Contributing +--- +title: "Contributing" +--- We welcome contributions from the community. Please carefully review the [project goals](GOALS.md) and following guidelines to streamline your contributions. diff --git a/docs/v0.4.0/dev/DOCS.md b/site/content/en/docs/v0.3.0/dev/DOCS.md similarity index 98% rename from docs/v0.4.0/dev/DOCS.md rename to site/content/en/docs/v0.3.0/dev/DOCS.md index fb49b9d55dda..1abae95763c5 100644 --- a/docs/v0.4.0/dev/DOCS.md +++ b/site/content/en/docs/v0.3.0/dev/DOCS.md @@ -1,4 +1,6 @@ -# Working on the Envoy Gateway Docs +--- +title: "Working on the Envoy Gateway Docs" +--- The documentation for the Envoy Gateway lives in the `docs/` directory. Any individual document can be written using either [reStructuredText] or [Markdown], diff --git a/docs/v0.3.0/dev/GOALS.md b/site/content/en/docs/v0.3.0/dev/GOALS.md similarity index 99% rename from docs/v0.3.0/dev/GOALS.md rename to site/content/en/docs/v0.3.0/dev/GOALS.md index 519be9f180fe..0d7dea58478d 100644 --- a/docs/v0.3.0/dev/GOALS.md +++ b/site/content/en/docs/v0.3.0/dev/GOALS.md @@ -1,4 +1,6 @@ -# Goals +--- +title: "Goals" +--- The high-level goal of the Envoy Gateway project is to attract more users to Envoy by lowering barriers to adoption through expressive, extensible, role-oriented APIs that support a multitude of ingress and L7/L4 traffic routing diff --git a/docs/v0.3.0/dev/README.md b/site/content/en/docs/v0.3.0/dev/README.md similarity index 99% rename from docs/v0.3.0/dev/README.md rename to site/content/en/docs/v0.3.0/dev/README.md index 0c3b055b6191..3a3a8e632cd3 100644 --- a/docs/v0.3.0/dev/README.md +++ b/site/content/en/docs/v0.3.0/dev/README.md @@ -1,4 +1,6 @@ -# Developer Guide +--- +title: "Developer Guide" +--- Envoy Gateway is built using a [make][]-based build system. Our CI is based on [Github Actions][] using [workflows][]. diff --git a/site/content/en/docs/v0.3.0/dev/_index.md b/site/content/en/docs/v0.3.0/dev/_index.md new file mode 100644 index 000000000000..b4ea3bc1a5b0 --- /dev/null +++ b/site/content/en/docs/v0.3.0/dev/_index.md @@ -0,0 +1,5 @@ +--- +title: "Development" +weight: 3 +description: This section includes Developments of Envoy Gateway. +--- diff --git a/docs/v0.3.0/dev/releasing.md b/site/content/en/docs/v0.3.0/dev/releasing.md similarity index 99% rename from docs/v0.3.0/dev/releasing.md rename to site/content/en/docs/v0.3.0/dev/releasing.md index f0004caf3367..455b086c1781 100644 --- a/docs/v0.3.0/dev/releasing.md +++ b/site/content/en/docs/v0.3.0/dev/releasing.md @@ -1,4 +1,6 @@ -# Release Process +--- +title: "Release Process" +--- This document guides maintainers through the process of creating an Envoy Gateway release. diff --git a/docs/v0.3.0/images/architecture.png b/site/content/en/docs/v0.3.0/images/architecture.png similarity index 100% rename from docs/v0.3.0/images/architecture.png rename to site/content/en/docs/v0.3.0/images/architecture.png diff --git a/site/content/en/docs/v0.3.0/user/_index.md b/site/content/en/docs/v0.3.0/user/_index.md new file mode 100644 index 000000000000..32a4b32e7904 --- /dev/null +++ b/site/content/en/docs/v0.3.0/user/_index.md @@ -0,0 +1,6 @@ +--- +title: "User Guide" +weight: 2 +description: This section includes User Guides of Envoy Gateway. +--- + diff --git a/docs/v0.3.0/user/authn.md b/site/content/en/docs/v0.3.0/user/authn.md similarity index 98% rename from docs/v0.3.0/user/authn.md rename to site/content/en/docs/v0.3.0/user/authn.md index 3b40738f305b..8130cad2a839 100644 --- a/docs/v0.3.0/user/authn.md +++ b/site/content/en/docs/v0.3.0/user/authn.md @@ -1,4 +1,6 @@ -# Request Authentication +--- +title: "Request Authentication" +--- This guide provides instructions for configuring [JSON Web Token (JWT)][jwt] authentication. JWT authentication checks if an incoming request has a valid JWT before routing the request to a backend service. Currently, Envoy Gateway only diff --git a/docs/v0.3.0/user/grpc-routing.md b/site/content/en/docs/v0.3.0/user/grpc-routing.md similarity index 99% rename from docs/v0.3.0/user/grpc-routing.md rename to site/content/en/docs/v0.3.0/user/grpc-routing.md index 31a25c44268f..71c7179243f7 100644 --- a/docs/v0.3.0/user/grpc-routing.md +++ b/site/content/en/docs/v0.3.0/user/grpc-routing.md @@ -1,4 +1,6 @@ -# GRPC Routing +--- +title: "GRPC Routing" +--- The [GRPCRoute][] resource allows users to configure gRPC routing by matching HTTP/2 traffic and forwarding it to backend gRPC servers. To learn more about gRPC routing, refer to the [Gateway API documentation][]. diff --git a/docs/latest/user/http-redirect.md b/site/content/en/docs/v0.3.0/user/http-redirect.md similarity index 99% rename from docs/latest/user/http-redirect.md rename to site/content/en/docs/v0.3.0/user/http-redirect.md index dcd72749f368..da61bdaf32f3 100644 --- a/docs/latest/user/http-redirect.md +++ b/site/content/en/docs/v0.3.0/user/http-redirect.md @@ -1,4 +1,6 @@ -# HTTP Redirects +--- +title: "HTTP Redirects" +--- The [HTTPRoute][] resource can issue redirects to clients or rewrite paths sent upstream using filters. Note that HTTPRoute rules cannot use both filter types at once. Currently, Envoy Gateway only supports __core__ diff --git a/docs/v0.5.0/user/http-request-headers.md b/site/content/en/docs/v0.3.0/user/http-request-headers.md similarity index 99% rename from docs/v0.5.0/user/http-request-headers.md rename to site/content/en/docs/v0.3.0/user/http-request-headers.md index 5e1d77fe6d2f..17fe3b87bcb1 100644 --- a/docs/v0.5.0/user/http-request-headers.md +++ b/site/content/en/docs/v0.3.0/user/http-request-headers.md @@ -1,4 +1,6 @@ -# HTTP Request Headers +--- +title: "HTTP Request Headers" +--- The [HTTPRoute][] resource can modify the headers of a request before forwarding it to the upstream service. HTTPRoute rules cannot use both filter types at once. Currently, Envoy Gateway only supports __core__ [HTTPRoute filters][] which diff --git a/docs/v0.3.0/user/http-response-headers.md b/site/content/en/docs/v0.3.0/user/http-response-headers.md similarity index 99% rename from docs/v0.3.0/user/http-response-headers.md rename to site/content/en/docs/v0.3.0/user/http-response-headers.md index 6c77c2e6c2c4..4a27728003d7 100644 --- a/docs/v0.3.0/user/http-response-headers.md +++ b/site/content/en/docs/v0.3.0/user/http-response-headers.md @@ -1,4 +1,6 @@ -# HTTP Response Headers +--- +title: "HTTP Response Headers" +--- The [HTTPRoute][] resource can modify the headers of a response before responding it to the downstream service. To learn more about HTTP routing, refer to the [Gateway API documentation][]. diff --git a/docs/v0.3.0/user/http-routing.md b/site/content/en/docs/v0.3.0/user/http-routing.md similarity index 99% rename from docs/v0.3.0/user/http-routing.md rename to site/content/en/docs/v0.3.0/user/http-routing.md index c9f4646001fc..91a98cad7d21 100644 --- a/docs/v0.3.0/user/http-routing.md +++ b/site/content/en/docs/v0.3.0/user/http-routing.md @@ -1,4 +1,6 @@ -# HTTP Routing +--- +title: "HTTP Routing" +--- The [HTTPRoute][] resource allows users to configure HTTP routing by matching HTTP traffic and forwarding it to Kubernetes backends. Currently, the only supported backend supported by Envoy Gateway is a Service resource. This guide diff --git a/docs/v0.4.0/user/http-traffic-splitting.md b/site/content/en/docs/v0.3.0/user/http-traffic-splitting.md similarity index 99% rename from docs/v0.4.0/user/http-traffic-splitting.md rename to site/content/en/docs/v0.3.0/user/http-traffic-splitting.md index 92fed8bd0b11..94f021b5aecb 100644 --- a/docs/v0.4.0/user/http-traffic-splitting.md +++ b/site/content/en/docs/v0.3.0/user/http-traffic-splitting.md @@ -1,4 +1,6 @@ -# HTTPRoute Traffic Splitting +--- +title: "HTTPRoute Traffic Splitting" +--- The [HTTPRoute][] resource allows one or more [backendRefs][] to be provided. Requests will be routed to these upstreams if they match the rules of the HTTPRoute. If an invalid backendRef is configured, then HTTP responses will be returned diff --git a/docs/latest/user/http-urlrewrite.md b/site/content/en/docs/v0.3.0/user/http-urlrewrite.md similarity index 99% rename from docs/latest/user/http-urlrewrite.md rename to site/content/en/docs/v0.3.0/user/http-urlrewrite.md index 88e29c3269cc..fb68ae883221 100644 --- a/docs/latest/user/http-urlrewrite.md +++ b/site/content/en/docs/v0.3.0/user/http-urlrewrite.md @@ -1,4 +1,6 @@ -# HTTP URL Rewrite +--- +title: "HTTP URL Rewrite" +--- [HTTPURLRewriteFilter][] defines a filter that modifies a request during forwarding. At most one of these filters may be used on a Route rule. This MUST NOT be used on the same Route rule as a HTTPRequestRedirect filter. diff --git a/docs/v0.3.0/user/quickstart.md b/site/content/en/docs/v0.3.0/user/quickstart.md similarity index 98% rename from docs/v0.3.0/user/quickstart.md rename to site/content/en/docs/v0.3.0/user/quickstart.md index a11d3cbe7b1f..4253a56e03f1 100644 --- a/docs/v0.3.0/user/quickstart.md +++ b/site/content/en/docs/v0.3.0/user/quickstart.md @@ -1,4 +1,7 @@ -# Quickstart +--- +title: "Quickstart" +weight: 1 +--- This guide will help you get started with Envoy Gateway in a few simple steps. diff --git a/docs/v0.3.0/user/rate-limit.md b/site/content/en/docs/v0.3.0/user/rate-limit.md similarity index 99% rename from docs/v0.3.0/user/rate-limit.md rename to site/content/en/docs/v0.3.0/user/rate-limit.md index 446a82ee08aa..edb7b759560d 100644 --- a/docs/v0.3.0/user/rate-limit.md +++ b/site/content/en/docs/v0.3.0/user/rate-limit.md @@ -1,4 +1,6 @@ -# Rate limit +--- +title: "Rate limit" +--- Rate limit is a feature that allows the user to limit the number of incoming requests to a predefined value based on attributes within the traffic flow. diff --git a/docs/v0.3.0/user/secure-gateways.md b/site/content/en/docs/v0.3.0/user/secure-gateways.md similarity index 99% rename from docs/v0.3.0/user/secure-gateways.md rename to site/content/en/docs/v0.3.0/user/secure-gateways.md index c0e2b3bb37c9..6d3401a2d9af 100644 --- a/docs/v0.3.0/user/secure-gateways.md +++ b/site/content/en/docs/v0.3.0/user/secure-gateways.md @@ -1,4 +1,6 @@ -# Secure Gateways +--- +title: "Secure Gateways" +--- This guide will help you get started using secure Gateways. The guide uses a self-signed CA, so it should be used for testing and demonstration purposes only. diff --git a/docs/v0.3.0/user/tcp-routing.md b/site/content/en/docs/v0.3.0/user/tcp-routing.md similarity index 99% rename from docs/v0.3.0/user/tcp-routing.md rename to site/content/en/docs/v0.3.0/user/tcp-routing.md index cb52765d3a3e..6f8cb90fe31e 100644 --- a/docs/v0.3.0/user/tcp-routing.md +++ b/site/content/en/docs/v0.3.0/user/tcp-routing.md @@ -1,4 +1,6 @@ -# TCP Routing +--- +title: "TCP Routing" +--- [TCPRoute][] provides a way to route TCP requests. When combined with a Gateway listener, it can be used to forward connections on the port specified by the listener to a set of backends specified by the TCPRoute. To learn more about diff --git a/docs/v0.3.0/user/tls-passthrough.md b/site/content/en/docs/v0.3.0/user/tls-passthrough.md similarity index 99% rename from docs/v0.3.0/user/tls-passthrough.md rename to site/content/en/docs/v0.3.0/user/tls-passthrough.md index 7d411f50ef27..bfffcea53bc0 100644 --- a/docs/v0.3.0/user/tls-passthrough.md +++ b/site/content/en/docs/v0.3.0/user/tls-passthrough.md @@ -1,4 +1,6 @@ -# TLS Passthrough +--- +title: "TLS Passthrough" +--- This guide will walk through the steps required to configure TLS Passthrough via Envoy Gateway. Unlike configuring Secure Gateways, where the Gateway terminates the client TLS connection, TLS Passthrough allows the application itself diff --git a/docs/v0.3.0/user/udp-routing.md b/site/content/en/docs/v0.3.0/user/udp-routing.md similarity index 99% rename from docs/v0.3.0/user/udp-routing.md rename to site/content/en/docs/v0.3.0/user/udp-routing.md index 47c13a53e3e4..312aec697add 100644 --- a/docs/v0.3.0/user/udp-routing.md +++ b/site/content/en/docs/v0.3.0/user/udp-routing.md @@ -1,4 +1,6 @@ -# UDP Routing +--- +title: "UDP Routing" +--- The [UDPRoute][] resource allows users to configure UDP routing by matching UDP traffic and forwarding it to Kubernetes backends. This guide will use CoreDNS example to walk you through the steps required to configure UDPRoute on Envoy diff --git a/site/content/en/docs/v0.4.0/_index.md b/site/content/en/docs/v0.4.0/_index.md new file mode 100644 index 000000000000..1f5904f3f6ad --- /dev/null +++ b/site/content/en/docs/v0.4.0/_index.md @@ -0,0 +1,8 @@ +--- +title: "Welcome to Envoy Gateway" +description: v0.4.0 version of Envoy Gateway +linktitle: v0.4.0 +--- + +Envoy Gateway is an open source project for managing **Envoy Proxy** as a standalone or Kubernetes-based application +gateway. **Gateway API** resources are used to dynamically provision and configure the managed Envoy Proxies. diff --git a/site/content/en/docs/v0.4.0/api/_index.md b/site/content/en/docs/v0.4.0/api/_index.md new file mode 100644 index 000000000000..1d7c67c8c151 --- /dev/null +++ b/site/content/en/docs/v0.4.0/api/_index.md @@ -0,0 +1,4 @@ +--- +title: "API" +description: This section includes APIs of Envoy Gateway. +--- diff --git a/docs/v0.4.0/api/config_types.md b/site/content/en/docs/v0.4.0/api/config_types.md similarity index 99% rename from docs/v0.4.0/api/config_types.md rename to site/content/en/docs/v0.4.0/api/config_types.md index 2764ba823003..91f6b5fd5323 100644 --- a/docs/v0.4.0/api/config_types.md +++ b/site/content/en/docs/v0.4.0/api/config_types.md @@ -1,4 +1,6 @@ -# API Reference +--- +title: "Config APIs" +--- ## Packages - [config.gateway.envoyproxy.io/v1alpha1](#configgatewayenvoyproxyiov1alpha1) diff --git a/docs/v0.4.0/api/extension_types.md b/site/content/en/docs/v0.4.0/api/extension_types.md similarity index 99% rename from docs/v0.4.0/api/extension_types.md rename to site/content/en/docs/v0.4.0/api/extension_types.md index 1b1da8e4cdc3..9bc5172b2504 100644 --- a/docs/v0.4.0/api/extension_types.md +++ b/site/content/en/docs/v0.4.0/api/extension_types.md @@ -1,4 +1,6 @@ -# API Reference +--- +title: "Extension APIs" +--- ## Packages - [gateway.envoyproxy.io/v1alpha1](#gatewayenvoyproxyiov1alpha1) diff --git a/site/content/en/docs/v0.4.0/design/_index.md b/site/content/en/docs/v0.4.0/design/_index.md new file mode 100644 index 000000000000..21650809f7da --- /dev/null +++ b/site/content/en/docs/v0.4.0/design/_index.md @@ -0,0 +1,6 @@ +--- +title: "Design" +weight: 1 +description: This section includes Designs of Envoy Gateway. +--- + diff --git a/docs/v0.5.0/design/bootstrap.md b/site/content/en/docs/v0.4.0/design/bootstrap.md similarity index 99% rename from docs/v0.5.0/design/bootstrap.md rename to site/content/en/docs/v0.4.0/design/bootstrap.md index 30f1b52116fa..9a8f0c789efa 100644 --- a/docs/v0.5.0/design/bootstrap.md +++ b/site/content/en/docs/v0.4.0/design/bootstrap.md @@ -1,4 +1,6 @@ -# Bootstrap Design +--- +title: "Bootstrap Design" +--- ## Overview diff --git a/docs/v0.5.0/design/config-api.md b/site/content/en/docs/v0.4.0/design/config-api.md similarity index 99% rename from docs/v0.5.0/design/config-api.md rename to site/content/en/docs/v0.4.0/design/config-api.md index 4caaefe3e439..ca5380151a8e 100644 --- a/docs/v0.5.0/design/config-api.md +++ b/site/content/en/docs/v0.4.0/design/config-api.md @@ -1,4 +1,6 @@ -# Configuration API Design +--- +title: "Configuration API Design" +--- ## Motivation diff --git a/docs/latest/design/egctl.md b/site/content/en/docs/v0.4.0/design/egctl.md similarity index 98% rename from docs/latest/design/egctl.md rename to site/content/en/docs/v0.4.0/design/egctl.md index 7989ff49e5e2..0f67d99f1005 100644 --- a/docs/latest/design/egctl.md +++ b/site/content/en/docs/v0.4.0/design/egctl.md @@ -1,4 +1,6 @@ -# egctl Design +--- +title: "egctl Design" +--- ## Motivation diff --git a/docs/v0.4.0/design/extending-envoy-gateway.md b/site/content/en/docs/v0.4.0/design/extending-envoy-gateway.md similarity index 99% rename from docs/v0.4.0/design/extending-envoy-gateway.md rename to site/content/en/docs/v0.4.0/design/extending-envoy-gateway.md index 61278025eb0c..fef81c2f5f54 100644 --- a/docs/v0.4.0/design/extending-envoy-gateway.md +++ b/site/content/en/docs/v0.4.0/design/extending-envoy-gateway.md @@ -1,4 +1,6 @@ -# Envoy Gateway Extensions Design +--- +title: "Envoy Gateway Extensions Design" +--- As outlined in the [official goals][] for the Envoy Gateway project, one of the main goals is to "provide a common foundation for vendors to build value-added products without having to re-engineer fundamental interactions". Development of the Envoy Gateway project has been focused on developing the core features for the project and diff --git a/docs/v0.3.0/design/gatewayapi-translator.md b/site/content/en/docs/v0.4.0/design/gatewayapi-translator.md similarity index 99% rename from docs/v0.3.0/design/gatewayapi-translator.md rename to site/content/en/docs/v0.4.0/design/gatewayapi-translator.md index 3cf0da94f5aa..3add199ee15e 100644 --- a/docs/v0.3.0/design/gatewayapi-translator.md +++ b/site/content/en/docs/v0.4.0/design/gatewayapi-translator.md @@ -1,4 +1,6 @@ -# Gateway API Translator Design +--- +title: "Gateway API Translator Design" +--- The Gateway API translates external resources, e.g. GatewayClass, from the configured Provider to the Intermediate Representation (IR). diff --git a/docs/v0.4.0/design/rate-limit.md b/site/content/en/docs/v0.4.0/design/rate-limit.md similarity index 99% rename from docs/v0.4.0/design/rate-limit.md rename to site/content/en/docs/v0.4.0/design/rate-limit.md index 7aaa226cf456..e6e0656c8190 100644 --- a/docs/v0.4.0/design/rate-limit.md +++ b/site/content/en/docs/v0.4.0/design/rate-limit.md @@ -1,4 +1,6 @@ -# Rate Limit Design +--- +title: "Rate Limit Design" +--- ## Overview diff --git a/docs/v0.3.0/design/request-authentication.md b/site/content/en/docs/v0.4.0/design/request-authentication.md similarity index 99% rename from docs/v0.3.0/design/request-authentication.md rename to site/content/en/docs/v0.4.0/design/request-authentication.md index dd269771cc15..82682bf2a0b7 100644 --- a/docs/v0.3.0/design/request-authentication.md +++ b/site/content/en/docs/v0.4.0/design/request-authentication.md @@ -1,4 +1,6 @@ -# Request Authentication +--- +title: "Request Authentication Design" +--- ## Overview diff --git a/docs/v0.4.0/design/roadmap.md b/site/content/en/docs/v0.4.0/design/roadmap.md similarity index 99% rename from docs/v0.4.0/design/roadmap.md rename to site/content/en/docs/v0.4.0/design/roadmap.md index 65f88de12149..301b069214e6 100644 --- a/docs/v0.4.0/design/roadmap.md +++ b/site/content/en/docs/v0.4.0/design/roadmap.md @@ -1,4 +1,6 @@ -# Roadmap +--- +title: "Roadmap" +--- This document serves as a high-level reference for Envoy Gateway users and contributors to understand the direction of the project. diff --git a/docs/v0.5.0/design/system-design.md b/site/content/en/docs/v0.4.0/design/system-design.md similarity index 99% rename from docs/v0.5.0/design/system-design.md rename to site/content/en/docs/v0.4.0/design/system-design.md index 86114be37fa2..f1ae795fad3e 100644 --- a/docs/v0.5.0/design/system-design.md +++ b/site/content/en/docs/v0.4.0/design/system-design.md @@ -1,4 +1,6 @@ -# System Design +--- +title: "System Design" +--- ## Goals diff --git a/docs/latest/design/tcp-udp-design.md b/site/content/en/docs/v0.4.0/design/tcp-udp-design.md similarity index 98% rename from docs/latest/design/tcp-udp-design.md rename to site/content/en/docs/v0.4.0/design/tcp-udp-design.md index 276221b897ba..f517e24fedae 100644 --- a/docs/latest/design/tcp-udp-design.md +++ b/site/content/en/docs/v0.4.0/design/tcp-udp-design.md @@ -1,4 +1,6 @@ -# TCP and UDP Proxy Design +--- +title: "TCP and UDP Proxy Design " +--- Even though most of the use cases for Envoy Gateway are at Layer-7, Envoy Gateway can also work at Layer-4 to proxy TCP and UDP traffic. This document will explore the options we have when operating Envoy Gateway at Layer-4 and explain the diff --git a/docs/v0.2.0/design/watching.md b/site/content/en/docs/v0.4.0/design/watching.md similarity index 99% rename from docs/v0.2.0/design/watching.md rename to site/content/en/docs/v0.4.0/design/watching.md index b8477a30e2d6..e2d17ca86b91 100644 --- a/docs/v0.2.0/design/watching.md +++ b/site/content/en/docs/v0.4.0/design/watching.md @@ -1,4 +1,6 @@ -# Watching Components Design +--- +title: "Watching Components Design" +--- Envoy Gateway is made up of several components that communicate in-process. Some of them (namely Providers) watch external resources, and "publish" what they see for other components to consume; others watch what another publishes and diff --git a/docs/v0.4.0/dev/CODEOWNERS.md b/site/content/en/docs/v0.4.0/dev/CODEOWNERS.md similarity index 87% rename from docs/v0.4.0/dev/CODEOWNERS.md rename to site/content/en/docs/v0.4.0/dev/CODEOWNERS.md index d4229b6b23f2..7e0da1b17a21 100644 --- a/docs/v0.4.0/dev/CODEOWNERS.md +++ b/site/content/en/docs/v0.4.0/dev/CODEOWNERS.md @@ -1,4 +1,6 @@ -# Maintainers +--- +title: "Maintainers" +--- ## The following maintainers, listed in alphabetical order, own everything diff --git a/docs/latest/dev/CODE_OF_CONDUCT.md b/site/content/en/docs/v0.4.0/dev/CODE_OF_CONDUCT.md similarity index 71% rename from docs/latest/dev/CODE_OF_CONDUCT.md rename to site/content/en/docs/v0.4.0/dev/CODE_OF_CONDUCT.md index a0a295770f31..bb066266f482 100644 --- a/docs/latest/dev/CODE_OF_CONDUCT.md +++ b/site/content/en/docs/v0.4.0/dev/CODE_OF_CONDUCT.md @@ -1,3 +1,5 @@ -# Community Code of Conduct +--- +title: "Community Code of Conduct" +--- Gateway follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/main/code-of-conduct.md). diff --git a/docs/latest/dev/CONTRIBUTING.md b/site/content/en/docs/v0.4.0/dev/CONTRIBUTING.md similarity index 99% rename from docs/latest/dev/CONTRIBUTING.md rename to site/content/en/docs/v0.4.0/dev/CONTRIBUTING.md index 04d95bb675d9..e3eafaaceed7 100644 --- a/docs/latest/dev/CONTRIBUTING.md +++ b/site/content/en/docs/v0.4.0/dev/CONTRIBUTING.md @@ -1,4 +1,6 @@ -# Contributing +--- +title: "Contributing" +--- We welcome contributions from the community. Please carefully review the [project goals](GOALS.md) and following guidelines to streamline your contributions. diff --git a/docs/v0.2.0/dev/DOCS.md b/site/content/en/docs/v0.4.0/dev/DOCS.md similarity index 98% rename from docs/v0.2.0/dev/DOCS.md rename to site/content/en/docs/v0.4.0/dev/DOCS.md index fb49b9d55dda..1abae95763c5 100644 --- a/docs/v0.2.0/dev/DOCS.md +++ b/site/content/en/docs/v0.4.0/dev/DOCS.md @@ -1,4 +1,6 @@ -# Working on the Envoy Gateway Docs +--- +title: "Working on the Envoy Gateway Docs" +--- The documentation for the Envoy Gateway lives in the `docs/` directory. Any individual document can be written using either [reStructuredText] or [Markdown], diff --git a/docs/v0.4.0/dev/GOALS.md b/site/content/en/docs/v0.4.0/dev/GOALS.md similarity index 100% rename from docs/v0.4.0/dev/GOALS.md rename to site/content/en/docs/v0.4.0/dev/GOALS.md diff --git a/docs/v0.4.0/dev/README.md b/site/content/en/docs/v0.4.0/dev/README.md similarity index 99% rename from docs/v0.4.0/dev/README.md rename to site/content/en/docs/v0.4.0/dev/README.md index 2d4f13e9e803..15914953ad46 100644 --- a/docs/v0.4.0/dev/README.md +++ b/site/content/en/docs/v0.4.0/dev/README.md @@ -1,4 +1,6 @@ -# Developer Guide +--- +title: "Developer Guide" +--- Envoy Gateway is built using a [make][]-based build system. Our CI is based on [Github Actions][] using [workflows][]. diff --git a/site/content/en/docs/v0.4.0/dev/_index.md b/site/content/en/docs/v0.4.0/dev/_index.md new file mode 100644 index 000000000000..b4ea3bc1a5b0 --- /dev/null +++ b/site/content/en/docs/v0.4.0/dev/_index.md @@ -0,0 +1,5 @@ +--- +title: "Development" +weight: 3 +description: This section includes Developments of Envoy Gateway. +--- diff --git a/docs/v0.4.0/dev/releasing.md b/site/content/en/docs/v0.4.0/dev/releasing.md similarity index 99% rename from docs/v0.4.0/dev/releasing.md rename to site/content/en/docs/v0.4.0/dev/releasing.md index f0004caf3367..455b086c1781 100644 --- a/docs/v0.4.0/dev/releasing.md +++ b/site/content/en/docs/v0.4.0/dev/releasing.md @@ -1,4 +1,6 @@ -# Release Process +--- +title: "Release Process" +--- This document guides maintainers through the process of creating an Envoy Gateway release. diff --git a/docs/v0.4.0/images/architecture.png b/site/content/en/docs/v0.4.0/images/architecture.png similarity index 100% rename from docs/v0.4.0/images/architecture.png rename to site/content/en/docs/v0.4.0/images/architecture.png diff --git a/docs/v0.4.0/images/extension-example.png b/site/content/en/docs/v0.4.0/images/extension-example.png similarity index 100% rename from docs/v0.4.0/images/extension-example.png rename to site/content/en/docs/v0.4.0/images/extension-example.png diff --git a/site/content/en/docs/v0.4.0/user/_index.md b/site/content/en/docs/v0.4.0/user/_index.md new file mode 100644 index 000000000000..32a4b32e7904 --- /dev/null +++ b/site/content/en/docs/v0.4.0/user/_index.md @@ -0,0 +1,6 @@ +--- +title: "User Guide" +weight: 2 +description: This section includes User Guides of Envoy Gateway. +--- + diff --git a/docs/v0.4.0/user/authn.md b/site/content/en/docs/v0.4.0/user/authn.md similarity index 98% rename from docs/v0.4.0/user/authn.md rename to site/content/en/docs/v0.4.0/user/authn.md index 1a7dba621971..ed115c95471b 100644 --- a/docs/v0.4.0/user/authn.md +++ b/site/content/en/docs/v0.4.0/user/authn.md @@ -1,4 +1,6 @@ -# Request Authentication +--- +title: "Request Authentication" +--- This guide provides instructions for configuring [JSON Web Token (JWT)][jwt] authentication. JWT authentication checks if an incoming request has a valid JWT before routing the request to a backend service. Currently, Envoy Gateway only diff --git a/docs/v0.4.0/user/customize-envoyproxy.md b/site/content/en/docs/v0.4.0/user/customize-envoyproxy.md similarity index 99% rename from docs/v0.4.0/user/customize-envoyproxy.md rename to site/content/en/docs/v0.4.0/user/customize-envoyproxy.md index 04b7062f4508..c561b520e049 100644 --- a/docs/v0.4.0/user/customize-envoyproxy.md +++ b/site/content/en/docs/v0.4.0/user/customize-envoyproxy.md @@ -1,4 +1,6 @@ -# Customize EnvoyProxy +--- +title: "Customize EnvoyProxy" +--- Envoy Gateway provides a [EnvoyProxy][] CRD that can be linked to the ParametersRef in GatewayClass y cluster admins to customize the managed EnvoyProxy Deployment and diff --git a/docs/v0.4.0/user/deployment-mode.md b/site/content/en/docs/v0.4.0/user/deployment-mode.md similarity index 99% rename from docs/v0.4.0/user/deployment-mode.md rename to site/content/en/docs/v0.4.0/user/deployment-mode.md index 8c409d4c44e9..4566e2cc83de 100644 --- a/docs/v0.4.0/user/deployment-mode.md +++ b/site/content/en/docs/v0.4.0/user/deployment-mode.md @@ -1,4 +1,7 @@ -## Deployment Mode +--- +title: "Deployment Mode" +--- + ### One GatewayClass per Envoy Gateway diff --git a/docs/v0.4.0/user/egctl.md b/site/content/en/docs/v0.4.0/user/egctl.md similarity index 99% rename from docs/v0.4.0/user/egctl.md rename to site/content/en/docs/v0.4.0/user/egctl.md index 08621e40f47a..29f0200f8967 100644 --- a/docs/v0.4.0/user/egctl.md +++ b/site/content/en/docs/v0.4.0/user/egctl.md @@ -1,4 +1,6 @@ -# egctl +--- +title: "Use egctl" +--- `egctl` is a command line tool to provide additional functionality for Envoy Gateway users. diff --git a/docs/v0.4.0/user/gatewayapi-support.md b/site/content/en/docs/v0.4.0/user/gatewayapi-support.md similarity index 99% rename from docs/v0.4.0/user/gatewayapi-support.md rename to site/content/en/docs/v0.4.0/user/gatewayapi-support.md index f1129da290c7..79e077498427 100644 --- a/docs/v0.4.0/user/gatewayapi-support.md +++ b/site/content/en/docs/v0.4.0/user/gatewayapi-support.md @@ -1,4 +1,6 @@ -# Gateway API Support +--- +title: "Gateway API Support" +--- As mentioned in the [system design][] document, Envoy Gateway's managed data plane is configured dynamically through Kubernetes resources, primarily [Gateway API][] objects. Envoy Gateway supports configuration using the following Gateway API resources. diff --git a/docs/v0.4.0/user/grpc-routing.md b/site/content/en/docs/v0.4.0/user/grpc-routing.md similarity index 99% rename from docs/v0.4.0/user/grpc-routing.md rename to site/content/en/docs/v0.4.0/user/grpc-routing.md index a18be6e9b9c4..393767fc4340 100644 --- a/docs/v0.4.0/user/grpc-routing.md +++ b/site/content/en/docs/v0.4.0/user/grpc-routing.md @@ -1,4 +1,6 @@ -# GRPC Routing +--- +title: "GRPC Routing" +--- The [GRPCRoute][] resource allows users to configure gRPC routing by matching HTTP/2 traffic and forwarding it to backend gRPC servers. To learn more about gRPC routing, refer to the [Gateway API documentation][]. diff --git a/docs/v0.5.0/user/http-redirect.md b/site/content/en/docs/v0.4.0/user/http-redirect.md similarity index 99% rename from docs/v0.5.0/user/http-redirect.md rename to site/content/en/docs/v0.4.0/user/http-redirect.md index dcd72749f368..da61bdaf32f3 100644 --- a/docs/v0.5.0/user/http-redirect.md +++ b/site/content/en/docs/v0.4.0/user/http-redirect.md @@ -1,4 +1,6 @@ -# HTTP Redirects +--- +title: "HTTP Redirects" +--- The [HTTPRoute][] resource can issue redirects to clients or rewrite paths sent upstream using filters. Note that HTTPRoute rules cannot use both filter types at once. Currently, Envoy Gateway only supports __core__ diff --git a/docs/latest/user/http-request-headers.md b/site/content/en/docs/v0.4.0/user/http-request-headers.md similarity index 99% rename from docs/latest/user/http-request-headers.md rename to site/content/en/docs/v0.4.0/user/http-request-headers.md index 5e1d77fe6d2f..17fe3b87bcb1 100644 --- a/docs/latest/user/http-request-headers.md +++ b/site/content/en/docs/v0.4.0/user/http-request-headers.md @@ -1,4 +1,6 @@ -# HTTP Request Headers +--- +title: "HTTP Request Headers" +--- The [HTTPRoute][] resource can modify the headers of a request before forwarding it to the upstream service. HTTPRoute rules cannot use both filter types at once. Currently, Envoy Gateway only supports __core__ [HTTPRoute filters][] which diff --git a/docs/latest/user/http-response-headers.md b/site/content/en/docs/v0.4.0/user/http-response-headers.md similarity index 99% rename from docs/latest/user/http-response-headers.md rename to site/content/en/docs/v0.4.0/user/http-response-headers.md index 6c77c2e6c2c4..4a27728003d7 100644 --- a/docs/latest/user/http-response-headers.md +++ b/site/content/en/docs/v0.4.0/user/http-response-headers.md @@ -1,4 +1,6 @@ -# HTTP Response Headers +--- +title: "HTTP Response Headers" +--- The [HTTPRoute][] resource can modify the headers of a response before responding it to the downstream service. To learn more about HTTP routing, refer to the [Gateway API documentation][]. diff --git a/docs/v0.4.0/user/http-routing.md b/site/content/en/docs/v0.4.0/user/http-routing.md similarity index 99% rename from docs/v0.4.0/user/http-routing.md rename to site/content/en/docs/v0.4.0/user/http-routing.md index 35f893586518..67fe8e48e04d 100644 --- a/docs/v0.4.0/user/http-routing.md +++ b/site/content/en/docs/v0.4.0/user/http-routing.md @@ -1,4 +1,6 @@ -# HTTP Routing +--- +title: "HTTP Routing" +--- The [HTTPRoute][] resource allows users to configure HTTP routing by matching HTTP traffic and forwarding it to Kubernetes backends. Currently, the only supported backend supported by Envoy Gateway is a Service resource. This guide diff --git a/docs/v0.3.0/user/http-traffic-splitting.md b/site/content/en/docs/v0.4.0/user/http-traffic-splitting.md similarity index 99% rename from docs/v0.3.0/user/http-traffic-splitting.md rename to site/content/en/docs/v0.4.0/user/http-traffic-splitting.md index 92fed8bd0b11..94f021b5aecb 100644 --- a/docs/v0.3.0/user/http-traffic-splitting.md +++ b/site/content/en/docs/v0.4.0/user/http-traffic-splitting.md @@ -1,4 +1,6 @@ -# HTTPRoute Traffic Splitting +--- +title: "HTTPRoute Traffic Splitting" +--- The [HTTPRoute][] resource allows one or more [backendRefs][] to be provided. Requests will be routed to these upstreams if they match the rules of the HTTPRoute. If an invalid backendRef is configured, then HTTP responses will be returned diff --git a/docs/v0.5.0/user/http-urlrewrite.md b/site/content/en/docs/v0.4.0/user/http-urlrewrite.md similarity index 99% rename from docs/v0.5.0/user/http-urlrewrite.md rename to site/content/en/docs/v0.4.0/user/http-urlrewrite.md index 88e29c3269cc..fb68ae883221 100644 --- a/docs/v0.5.0/user/http-urlrewrite.md +++ b/site/content/en/docs/v0.4.0/user/http-urlrewrite.md @@ -1,4 +1,6 @@ -# HTTP URL Rewrite +--- +title: "HTTP URL Rewrite" +--- [HTTPURLRewriteFilter][] defines a filter that modifies a request during forwarding. At most one of these filters may be used on a Route rule. This MUST NOT be used on the same Route rule as a HTTPRequestRedirect filter. diff --git a/docs/v0.4.0/user/quickstart.md b/site/content/en/docs/v0.4.0/user/quickstart.md similarity index 98% rename from docs/v0.4.0/user/quickstart.md rename to site/content/en/docs/v0.4.0/user/quickstart.md index c7d1ea099e40..7fc64879f366 100644 --- a/docs/v0.4.0/user/quickstart.md +++ b/site/content/en/docs/v0.4.0/user/quickstart.md @@ -1,4 +1,7 @@ -# Quickstart +--- +title: "Quickstart" +weight: 1 +--- This guide will help you get started with Envoy Gateway in a few simple steps. diff --git a/docs/v0.4.0/user/rate-limit.md b/site/content/en/docs/v0.4.0/user/rate-limit.md similarity index 99% rename from docs/v0.4.0/user/rate-limit.md rename to site/content/en/docs/v0.4.0/user/rate-limit.md index aaaca7064733..59e216f15d2c 100644 --- a/docs/v0.4.0/user/rate-limit.md +++ b/site/content/en/docs/v0.4.0/user/rate-limit.md @@ -1,4 +1,6 @@ -# Rate limit +--- +title: "Rate limit" +--- Rate limit is a feature that allows the user to limit the number of incoming requests to a predefined value based on attributes within the traffic flow. diff --git a/docs/v0.5.0/user/secure-gateways.md b/site/content/en/docs/v0.4.0/user/secure-gateways.md similarity index 99% rename from docs/v0.5.0/user/secure-gateways.md rename to site/content/en/docs/v0.4.0/user/secure-gateways.md index 8ada7c59978a..2e04000d5a7d 100644 --- a/docs/v0.5.0/user/secure-gateways.md +++ b/site/content/en/docs/v0.4.0/user/secure-gateways.md @@ -1,4 +1,6 @@ -# Secure Gateways +--- +title: "Secure Gateways" +--- This guide will help you get started using secure Gateways. The guide uses a self-signed CA, so it should be used for testing and demonstration purposes only. diff --git a/docs/v0.4.0/user/tcp-routing.md b/site/content/en/docs/v0.4.0/user/tcp-routing.md similarity index 99% rename from docs/v0.4.0/user/tcp-routing.md rename to site/content/en/docs/v0.4.0/user/tcp-routing.md index 1ffbc2553b4a..fea9b35341af 100644 --- a/docs/v0.4.0/user/tcp-routing.md +++ b/site/content/en/docs/v0.4.0/user/tcp-routing.md @@ -1,4 +1,6 @@ -# TCP Routing +--- +title: "TCP Routing" +--- [TCPRoute][] provides a way to route TCP requests. When combined with a Gateway listener, it can be used to forward connections on the port specified by the listener to a set of backends specified by the TCPRoute. To learn more about diff --git a/docs/v0.4.0/user/tls-passthrough.md b/site/content/en/docs/v0.4.0/user/tls-passthrough.md similarity index 99% rename from docs/v0.4.0/user/tls-passthrough.md rename to site/content/en/docs/v0.4.0/user/tls-passthrough.md index cc8d71365488..fde4eb358249 100644 --- a/docs/v0.4.0/user/tls-passthrough.md +++ b/site/content/en/docs/v0.4.0/user/tls-passthrough.md @@ -1,4 +1,6 @@ -# TLS Passthrough +--- +title: "TLS Passthrough" +--- This guide will walk through the steps required to configure TLS Passthrough via Envoy Gateway. Unlike configuring Secure Gateways, where the Gateway terminates the client TLS connection, TLS Passthrough allows the application itself diff --git a/docs/v0.4.0/user/udp-routing.md b/site/content/en/docs/v0.4.0/user/udp-routing.md similarity index 99% rename from docs/v0.4.0/user/udp-routing.md rename to site/content/en/docs/v0.4.0/user/udp-routing.md index dfbd8a76c550..68e81ad3f6c9 100644 --- a/docs/v0.4.0/user/udp-routing.md +++ b/site/content/en/docs/v0.4.0/user/udp-routing.md @@ -1,4 +1,6 @@ -# UDP Routing +--- +title: "UDP Routing" +--- The [UDPRoute][] resource allows users to configure UDP routing by matching UDP traffic and forwarding it to Kubernetes backends. This guide will use CoreDNS example to walk you through the steps required to configure UDPRoute on Envoy diff --git a/site/content/en/docs/v0.5.0/_index.md b/site/content/en/docs/v0.5.0/_index.md new file mode 100644 index 000000000000..de8038ac4481 --- /dev/null +++ b/site/content/en/docs/v0.5.0/_index.md @@ -0,0 +1,9 @@ +--- +title: "Welcome to Envoy Gateway" +description: v0.5.0 version of Envoy Gateway +linktitle: v0.5.0 +weight: 2 +--- + +Envoy Gateway is an open source project for managing **Envoy Proxy** as a standalone or Kubernetes-based application +gateway. **Gateway API** resources are used to dynamically provision and configure the managed Envoy Proxies. diff --git a/site/content/en/docs/v0.5.0/api/_index.md b/site/content/en/docs/v0.5.0/api/_index.md new file mode 100644 index 000000000000..1d7c67c8c151 --- /dev/null +++ b/site/content/en/docs/v0.5.0/api/_index.md @@ -0,0 +1,4 @@ +--- +title: "API" +description: This section includes APIs of Envoy Gateway. +--- diff --git a/docs/v0.5.0/api/config_types.md b/site/content/en/docs/v0.5.0/api/config_types.md similarity index 99% rename from docs/v0.5.0/api/config_types.md rename to site/content/en/docs/v0.5.0/api/config_types.md index 9ce37099fdcf..93764201f349 100644 --- a/docs/v0.5.0/api/config_types.md +++ b/site/content/en/docs/v0.5.0/api/config_types.md @@ -1,4 +1,6 @@ -# API Reference +--- +title: "Config APIs" +--- ## Packages - [config.gateway.envoyproxy.io/v1alpha1](#configgatewayenvoyproxyiov1alpha1) diff --git a/docs/v0.5.0/api/extension_types.md b/site/content/en/docs/v0.5.0/api/extension_types.md similarity index 99% rename from docs/v0.5.0/api/extension_types.md rename to site/content/en/docs/v0.5.0/api/extension_types.md index 977cd2ac8611..5eb811ac4514 100644 --- a/docs/v0.5.0/api/extension_types.md +++ b/site/content/en/docs/v0.5.0/api/extension_types.md @@ -1,4 +1,6 @@ -# API Reference +--- +title: "Extension APIs" +--- ## Packages - [gateway.envoyproxy.io/v1alpha1](#gatewayenvoyproxyiov1alpha1) diff --git a/site/content/en/docs/v0.5.0/design/_index.md b/site/content/en/docs/v0.5.0/design/_index.md new file mode 100644 index 000000000000..21650809f7da --- /dev/null +++ b/site/content/en/docs/v0.5.0/design/_index.md @@ -0,0 +1,6 @@ +--- +title: "Design" +weight: 1 +description: This section includes Designs of Envoy Gateway. +--- + diff --git a/docs/v0.5.0/design/accesslog.md b/site/content/en/docs/v0.5.0/design/accesslog.md similarity index 99% rename from docs/v0.5.0/design/accesslog.md rename to site/content/en/docs/v0.5.0/design/accesslog.md index 6d8b9d0c218c..46f39afa8eff 100644 --- a/docs/v0.5.0/design/accesslog.md +++ b/site/content/en/docs/v0.5.0/design/accesslog.md @@ -1,4 +1,6 @@ -# Observability: Accesslog +--- +title: "Observability: Accesslog" +--- ## Overview diff --git a/docs/v0.4.0/design/bootstrap.md b/site/content/en/docs/v0.5.0/design/bootstrap.md similarity index 99% rename from docs/v0.4.0/design/bootstrap.md rename to site/content/en/docs/v0.5.0/design/bootstrap.md index 30f1b52116fa..9a8f0c789efa 100644 --- a/docs/v0.4.0/design/bootstrap.md +++ b/site/content/en/docs/v0.5.0/design/bootstrap.md @@ -1,4 +1,6 @@ -# Bootstrap Design +--- +title: "Bootstrap Design" +--- ## Overview diff --git a/docs/v0.4.0/design/config-api.md b/site/content/en/docs/v0.5.0/design/config-api.md similarity index 99% rename from docs/v0.4.0/design/config-api.md rename to site/content/en/docs/v0.5.0/design/config-api.md index 4caaefe3e439..ca5380151a8e 100644 --- a/docs/v0.4.0/design/config-api.md +++ b/site/content/en/docs/v0.5.0/design/config-api.md @@ -1,4 +1,6 @@ -# Configuration API Design +--- +title: "Configuration API Design" +--- ## Motivation diff --git a/docs/v0.4.0/design/egctl.md b/site/content/en/docs/v0.5.0/design/egctl.md similarity index 98% rename from docs/v0.4.0/design/egctl.md rename to site/content/en/docs/v0.5.0/design/egctl.md index 7989ff49e5e2..0f67d99f1005 100644 --- a/docs/v0.4.0/design/egctl.md +++ b/site/content/en/docs/v0.5.0/design/egctl.md @@ -1,4 +1,6 @@ -# egctl Design +--- +title: "egctl Design" +--- ## Motivation diff --git a/docs/latest/design/envoy-patch-policy.md b/site/content/en/docs/v0.5.0/design/envoy-patch-policy.md similarity index 99% rename from docs/latest/design/envoy-patch-policy.md rename to site/content/en/docs/v0.5.0/design/envoy-patch-policy.md index 0116c8e6336b..d34937d05ef1 100644 --- a/docs/latest/design/envoy-patch-policy.md +++ b/site/content/en/docs/v0.5.0/design/envoy-patch-policy.md @@ -1,4 +1,6 @@ -# EnvoyPatchPolicy +--- +title: "EnvoyPatchPolicy" +--- ## Overview diff --git a/docs/v0.5.0/design/extending-envoy-gateway.md b/site/content/en/docs/v0.5.0/design/extending-envoy-gateway.md similarity index 99% rename from docs/v0.5.0/design/extending-envoy-gateway.md rename to site/content/en/docs/v0.5.0/design/extending-envoy-gateway.md index df56964a5731..5e62dd9ab493 100644 --- a/docs/v0.5.0/design/extending-envoy-gateway.md +++ b/site/content/en/docs/v0.5.0/design/extending-envoy-gateway.md @@ -1,4 +1,6 @@ -# Envoy Gateway Extensions Design +--- +title: "Envoy Gateway Extensions Design" +--- As outlined in the [official goals][] for the Envoy Gateway project, one of the main goals is to "provide a common foundation for vendors to build value-added products without having to re-engineer fundamental interactions". Development of the Envoy Gateway project has been focused on developing the core features for the project and diff --git a/site/content/en/docs/v0.5.0/design/gatewayapi-translator.md b/site/content/en/docs/v0.5.0/design/gatewayapi-translator.md new file mode 100644 index 000000000000..3add199ee15e --- /dev/null +++ b/site/content/en/docs/v0.5.0/design/gatewayapi-translator.md @@ -0,0 +1,252 @@ +--- +title: "Gateway API Translator Design" +--- + +The Gateway API translates external resources, e.g. GatewayClass, from the configured Provider to the Intermediate +Representation (IR). + +## Assumptions + +Initially target core conformance features only, to be followed by extended conformance features. + +## Inputs and Outputs + +The main inputs to the Gateway API translator are: + +- GatewayClass, Gateway, HTTPRoute, TLSRoute, Service, ReferenceGrant, Namespace, and Secret resources. + +__Note:__ ReferenceGrant is not fully implemented as of v0.2. + +The outputs of the Gateway API translator are: + +- Xds and Infra Internal Representations (IRs). +- Status updates for GatewayClass, Gateways, HTTPRoutes + +## Listener Compatibility + +Envoy Gateway follows Gateway API listener compatibility spec: +> Each listener in a Gateway must have a unique combination of Hostname, Port, and Protocol. An implementation MAY group +> Listeners by Port and then collapse each group of Listeners into a single Listener if the implementation determines +> that the Listeners in the group are “compatible”. + +__Note:__ Envoy Gateway does not collapse listeners across multiple Gateways. + +### Listener Compatibility Examples + +#### Example 1: Gateway with compatible Listeners (same port & protocol, different hostnames) + +```yaml +kind: Gateway +apiVersion: gateway.networking.k8s.io/v1beta1 +metadata: + name: gateway-1 + namespace: envoy-gateway +spec: + gatewayClassName: envoy-gateway + listeners: + - name: http + protocol: HTTP + port: 80 + allowedRoutes: + namespaces: + from: All + hostname: "*.envoygateway.io" + - name: http + protocol: HTTP + port: 80 + allowedRoutes: + namespaces: + from: All + hostname: whales.envoygateway.io +``` + +#### Example 2: Gateway with compatible Listeners (same port & protocol, one hostname specified, one not) + +```yaml +kind: Gateway +apiVersion: gateway.networking.k8s.io/v1beta1 +metadata: + name: gateway-1 + namespace: envoy-gateway +spec: + gatewayClassName: envoy-gateway + listeners: + - name: http + protocol: HTTP + port: 80 + allowedRoutes: + namespaces: + from: All + hostname: "*.envoygateway.io" + - name: http + protocol: HTTP + port: 80 + allowedRoutes: + namespaces: + from: All +``` + +#### Example 3: Gateway with incompatible Listeners (same port, protocol and hostname) + +```yaml +kind: Gateway +apiVersion: gateway.networking.k8s.io/v1beta1 +metadata: + name: gateway-1 + namespace: envoy-gateway +spec: + gatewayClassName: envoy-gateway + listeners: + - name: http + protocol: HTTP + port: 80 + allowedRoutes: + namespaces: + from: All + hostname: whales.envoygateway.io + - name: http + protocol: HTTP + port: 80 + allowedRoutes: + namespaces: + from: All + hostname: whales.envoygateway.io +``` + +#### Example 4: Gateway with incompatible Listeners (neither specify a hostname) + +```yaml +kind: Gateway +apiVersion: gateway.networking.k8s.io/v1beta1 +metadata: + name: gateway-1 + namespace: envoy-gateway +spec: + gatewayClassName: envoy-gateway + listeners: + - name: http + protocol: HTTP + port: 80 + allowedRoutes: + namespaces: + from: All + - name: http + protocol: HTTP + port: 80 + allowedRoutes: + namespaces: + from: All +``` + +## Computing Status + +Gateway API specifies a rich set of status fields & conditions for each resource. To achieve conformance, Envoy Gateway +must compute the appropriate status fields and conditions for managed resources. + +Status is computed and set for: + +- The managed GatewayClass (`gatewayclass.status.conditions`). +- Each managed Gateway, based on its Listeners' status (`gateway.status.conditions`). For the Kubernetes provider, the + Envoy Deployment and Service status are also included to calculate Gateway status. +- Listeners for each Gateway (`gateway.status.listeners`). +- The ParentRef for each Route (`route.status.parents`). + +The Gateway API translator is responsible for calculating status conditions while translating Gateway API resources to +the IR and publishing status over the [message bus][]. The Status Manager subscribes to these status messages and +updates the resource status using the configured provider. For example, the Status Manager uses a Kubernetes client to +update resource status on the Kubernetes API server. + +## Outline + +The following roughly outlines the translation process. Each step may produce (1) IR; and (2) status updates on Gateway +API resources. + +1. Process Gateway Listeners + - Validate unique hostnames, ports, and protocols. + - Validate and compute supported kinds. + - Validate allowed namespaces (validate selector if specified). + - Validate TLS fields if specified, including resolving referenced Secrets. + +2. Process HTTPRoutes + - foreach route rule: + - compute matches + - [core] path exact, path prefix + - [core] header exact + - [extended] query param exact + - [extended] HTTP method + - compute filters + - [core] request header modifier (set/add/remove) + - [core] request redirect (hostname, statuscode) + - [extended] request mirror + - compute backends + - [core] Kubernetes services + - foreach route parent ref: + - get matching listeners (check Gateway, section name, listener validation status, listener allowed routes, hostname intersection) + - foreach matching listener: + - foreach hostname intersection with route: + - add each computed route rule to host + +## Context Structs + +To help store, access and manipulate information as it's processed during the translation process, a set of context +structs are used. These structs wrap a given Gateway API type, and add additional fields and methods to support +processing. + +`GatewayContext` wraps a Gateway and provides helper methods for setting conditions, accessing Listeners, etc. + +```go +type GatewayContext struct { + // The managed Gateway + *v1beta1.Gateway + + // A list of Gateway ListenerContexts. + listeners []*ListenerContext +} +``` + +`ListenerContext` wraps a Listener and provides helper methods for setting conditions and other status information on +the associated Gateway. + +```go +type ListenerContext struct { + // The Gateway listener. + *v1beta1.Listener + + // The Gateway this Listener belongs to. + gateway *v1beta1.Gateway + + // An index used for managing this listener in the list of Gateway listeners. + listenerStatusIdx int + + // Only Routes in namespaces selected by the selector may be attached + // to the Gateway this listener belongs to. + namespaceSelector labels.Selector + + // The TLS Secret for this Listener, if applicable. + tlsSecret *v1.Secret +} +``` + +`RouteContext` represents a generic Route object (HTTPRoute, TLSRoute, etc.) that can reference Gateway objects. + +```go +type RouteContext interface { + client.Object + + // GetRouteType returns the Kind of the Route object, HTTPRoute, + // TLSRoute, TCPRoute, UDPRoute etc. + GetRouteType() string + + // GetHostnames returns the hosts targeted by the Route object. + GetHostnames() []string + + // GetParentReferences returns the ParentReference of the Route object. + GetParentReferences() []v1beta1.ParentReference + + // GetRouteParentContext returns RouteParentContext by using the Route + // objects' ParentReference. + GetRouteParentContext(forParentRef v1beta1.ParentReference) *RouteParentContext +} +``` + +[message bus]: watching.md diff --git a/docs/latest/design/local-envoy-gateway.md b/site/content/en/docs/v0.5.0/design/local-envoy-gateway.md similarity index 97% rename from docs/latest/design/local-envoy-gateway.md rename to site/content/en/docs/v0.5.0/design/local-envoy-gateway.md index d382b8cfff82..aad0dc5f6f27 100644 --- a/docs/latest/design/local-envoy-gateway.md +++ b/site/content/en/docs/v0.5.0/design/local-envoy-gateway.md @@ -1,4 +1,6 @@ -# Running Envoy Gateway locally +--- +title: "Running Envoy Gateway locally" +--- ## Overview diff --git a/docs/v0.5.0/design/metrics.md b/site/content/en/docs/v0.5.0/design/metrics.md similarity index 98% rename from docs/v0.5.0/design/metrics.md rename to site/content/en/docs/v0.5.0/design/metrics.md index 2a2924a993a5..b226db6a0027 100644 --- a/docs/v0.5.0/design/metrics.md +++ b/site/content/en/docs/v0.5.0/design/metrics.md @@ -1,4 +1,6 @@ -# Observability: Metrics +--- +title: "Observability: Metrics" +--- ## Overview diff --git a/docs/v0.5.0/design/pprof.md b/site/content/en/docs/v0.5.0/design/pprof.md similarity index 97% rename from docs/v0.5.0/design/pprof.md rename to site/content/en/docs/v0.5.0/design/pprof.md index 0e0f3bdb64a6..68a64695dd5c 100644 --- a/docs/v0.5.0/design/pprof.md +++ b/site/content/en/docs/v0.5.0/design/pprof.md @@ -1,4 +1,6 @@ -# Add Pprof support in Envoy Gateway +--- +title: "Add Pprof support in Envoy Gateway" +--- ## Overview diff --git a/docs/v0.5.0/design/rate-limit.md b/site/content/en/docs/v0.5.0/design/rate-limit.md similarity index 99% rename from docs/v0.5.0/design/rate-limit.md rename to site/content/en/docs/v0.5.0/design/rate-limit.md index fb326b080b29..28ebbab8b360 100644 --- a/docs/v0.5.0/design/rate-limit.md +++ b/site/content/en/docs/v0.5.0/design/rate-limit.md @@ -1,4 +1,6 @@ -# Rate Limit Design +--- +title: "Rate Limit Design" +--- ## Overview diff --git a/docs/v0.4.0/design/request-authentication.md b/site/content/en/docs/v0.5.0/design/request-authentication.md similarity index 99% rename from docs/v0.4.0/design/request-authentication.md rename to site/content/en/docs/v0.5.0/design/request-authentication.md index 6b2192eadfd9..82682bf2a0b7 100644 --- a/docs/v0.4.0/design/request-authentication.md +++ b/site/content/en/docs/v0.5.0/design/request-authentication.md @@ -1,4 +1,6 @@ -# Request Authentication Design +--- +title: "Request Authentication Design" +--- ## Overview diff --git a/docs/v0.5.0/design/roadmap.md b/site/content/en/docs/v0.5.0/design/roadmap.md similarity index 99% rename from docs/v0.5.0/design/roadmap.md rename to site/content/en/docs/v0.5.0/design/roadmap.md index 7304335d9aa5..8a3b56b89dd3 100644 --- a/docs/v0.5.0/design/roadmap.md +++ b/site/content/en/docs/v0.5.0/design/roadmap.md @@ -1,4 +1,6 @@ -# Roadmap +--- +title: "Roadmap" +--- This document serves as a high-level reference for Envoy Gateway users and contributors to understand the direction of the project. diff --git a/docs/v0.4.0/design/system-design.md b/site/content/en/docs/v0.5.0/design/system-design.md similarity index 99% rename from docs/v0.4.0/design/system-design.md rename to site/content/en/docs/v0.5.0/design/system-design.md index 86114be37fa2..f1ae795fad3e 100644 --- a/docs/v0.4.0/design/system-design.md +++ b/site/content/en/docs/v0.5.0/design/system-design.md @@ -1,4 +1,6 @@ -# System Design +--- +title: "System Design" +--- ## Goals diff --git a/docs/v0.5.0/design/tcp-udp-design.md b/site/content/en/docs/v0.5.0/design/tcp-udp-design.md similarity index 98% rename from docs/v0.5.0/design/tcp-udp-design.md rename to site/content/en/docs/v0.5.0/design/tcp-udp-design.md index 276221b897ba..f517e24fedae 100644 --- a/docs/v0.5.0/design/tcp-udp-design.md +++ b/site/content/en/docs/v0.5.0/design/tcp-udp-design.md @@ -1,4 +1,6 @@ -# TCP and UDP Proxy Design +--- +title: "TCP and UDP Proxy Design " +--- Even though most of the use cases for Envoy Gateway are at Layer-7, Envoy Gateway can also work at Layer-4 to proxy TCP and UDP traffic. This document will explore the options we have when operating Envoy Gateway at Layer-4 and explain the diff --git a/docs/v0.5.0/design/tracing.md b/site/content/en/docs/v0.5.0/design/tracing.md similarity index 99% rename from docs/v0.5.0/design/tracing.md rename to site/content/en/docs/v0.5.0/design/tracing.md index 73d7b94ce214..22d0f2e969ab 100644 --- a/docs/v0.5.0/design/tracing.md +++ b/site/content/en/docs/v0.5.0/design/tracing.md @@ -1,4 +1,6 @@ -# Observability: Accesslog +--- +title: "Observability: Accesslog" +--- ## Overview diff --git a/site/content/en/docs/v0.5.0/design/watching.md b/site/content/en/docs/v0.5.0/design/watching.md new file mode 100644 index 000000000000..e2d17ca86b91 --- /dev/null +++ b/site/content/en/docs/v0.5.0/design/watching.md @@ -0,0 +1,119 @@ +--- +title: "Watching Components Design" +--- + +Envoy Gateway is made up of several components that communicate in-process. Some of them (namely Providers) watch +external resources, and "publish" what they see for other components to consume; others watch what another publishes and +act on it (such as the resource translator watches what the providers publish, and then publishes its own results that +are watched by another component). Some of these internally published results are consumed by multiple components. + +To facilitate this communication use the [watchable][] library. The `watchable.Map` type is very similar to the +standard library's `sync.Map` type, but supports a `.Subscribe` (and `.SubscribeSubset`) method that promotes a pub/sub +pattern. + +## Pub + +Many of the things we communicate around are naturally named, either by a bare "name" string or by a "name"/"namespace" +tuple. And because `watchable.Map` is typed, it makes sense to have one map for each type of thing (very similar to if +we were using native Go `map`s). For example, a struct that might be written to by the Kubernetes provider, and read by +the IR translator: + + ```go + type ResourceTable struct { + // gateway classes are cluster-scoped; no namespace + GatewayClasses watchable.Map[string, *gwapiv1b1.GatewayClass] + + // gateways are namespace-scoped, so use a k8s.io/apimachinery/pkg/types.NamespacedName as the map key. + Gateways watchable.Map[types.NamespacedName, *gwapiv1b1.Gateway] + + HTTPRoutes watchable.Map[types.NamespacedName, *gwapiv1b1.HTTPRoute] + } + ``` + +The Kubernetes provider updates the table by calling `table.Thing.Store(name, val)` and `table.Thing.Delete(name)`; +updating a map key with a value that is deep-equal (usually `reflect.DeepEqual`, but you can implement your own `.Equal` +method) the current value is a no-op; it won't trigger an event for subscribers. This is handy so that the publisher +doesn't have as much state to keep track of; it doesn't need to know "did I already publish this thing", it can just +`.Store` its data and `watchable` will do the right thing. + +## Sub + +Meanwhile, the translator and other interested components subscribe to it with `table.Thing.Subscribe` (or +`table.Thing.SubscribeSubset` if they only care about a few "Thing"s). So the translator goroutine might look like: + + ```go + func(ctx context.Context) error { + for snapshot := range k8sTable.HTTPRoutes.Subscribe(ctx) { + fullState := irInput{ + GatewayClasses: k8sTable.GatewayClasses.LoadAll(), + Gateways: k8sTable.Gateways.LoadAll(), + HTTPRoutes: snapshot.State, + } + translate(irInput) + } + } + ``` + +Or, to watch multiple maps in the same loop: + + ```go + func worker(ctx context.Context) error { + classCh := k8sTable.GatewayClasses.Subscribe(ctx) + gwCh := k8sTable.Gateways.Subscribe(ctx) + routeCh := k8sTable.HTTPRoutes.Subscribe(ctx) + for ctx.Err() == nil { + var arg irInput + select { + case snapshot := <-classCh: + arg.GatewayClasses = snapshot.State + case snapshot := <-gwCh: + arg.Gateways = snapshot.State + case snapshot := <-routeCh: + arg.Routes = snapshot.State + } + if arg.GateWayClasses == nil { + arg.GatewayClasses = k8sTable.GateWayClasses.LoadAll() + } + if arg.GateWays == nil { + arg.Gateways = k8sTable.GateWays.LoadAll() + } + if arg.HTTPRoutes == nil { + arg.HTTPRoutes = k8sTable.HTTPRoutes.LoadAll() + } + translate(irInput) + } + } + ``` + +From the updates it gets from `.Subscribe`, it can get a full view of the map being subscribed to via `snapshot.State`; +but it must read the other maps explicitly. Like `sync.Map`, `watchable.Map`s are thread-safe; while `.Subscribe` is a +handy way to know when to run, `.Load` and friends can be used without subscribing. + +There can be any number of subscribers. For that matter, there can be any number of publishers `.Store`ing things, but +it's probably wise to just have one publisher for each map. + +The channel returned from `.Subscribe` **is immediately readable** with a snapshot of the map as it existed when +`.Subscribe` was called; and becomes readable again whenever `.Store` or `.Delete` mutates the map. If multiple +mutations happen between reads (or if mutations happen between `.Subscribe` and the first read), they are coalesced in +to one snapshot to be read; the `snapshot.State` is the most-recent full state, and `snapshot.Updates` is a listing of +each of the mutations that cause this snapshot to be different than the last-read one. This way subscribers don't need +to worry about a backlog accumulating if they can't keep up with the rate of changes from the publisher. + +If the map contains anything before `.Subscribe` is called, that very first read won't include `snapshot.Updates` +entries for those pre-existing items; if you are working with `snapshot.Update` instead of `snapshot.State`, then you +must add special handling for your first read. We have a utility function `./internal/message.HandleSubscription` to +help with this. + +## Other Notes + +The common pattern will likely be that the entrypoint that launches the goroutines for each component instantiates the +map, and passes them to the appropriate publishers and subscribers; same as if they were communicating via a dumb +`chan`. + +A limitation of `watchable.Map` is that in order to ensure safety between goroutines, it does require that value types +be deep-copiable; either by having a `DeepCopy` method, being a `proto.Message`, or by containing no reference types and +so can be deep-copied by naive assignment. Fortunately, we're using `controller-gen` anyway, and `controller-gen` can +generate `DeepCopy` methods for us: just stick a `// +k8s:deepcopy-gen=true` on the types that you want it to generate +methods for. + +[watchable]: https://pkg.go.dev/github.com/telepresenceio/watchable diff --git a/site/content/en/docs/v0.5.0/dev/CODEOWNERS.md b/site/content/en/docs/v0.5.0/dev/CODEOWNERS.md new file mode 100644 index 000000000000..7e0da1b17a21 --- /dev/null +++ b/site/content/en/docs/v0.5.0/dev/CODEOWNERS.md @@ -0,0 +1,17 @@ +--- +title: "Maintainers" +--- + +## The following maintainers, listed in alphabetical order, own everything + +- @AliceProxy +- @arkodg +- @skriss +- @Xunzhuo +- @youngnick +- @zirain + +## Emeritus Maintainers + +- @danehans +- @alexgervais diff --git a/site/content/en/docs/v0.5.0/dev/CODE_OF_CONDUCT.md b/site/content/en/docs/v0.5.0/dev/CODE_OF_CONDUCT.md new file mode 100644 index 000000000000..bb066266f482 --- /dev/null +++ b/site/content/en/docs/v0.5.0/dev/CODE_OF_CONDUCT.md @@ -0,0 +1,5 @@ +--- +title: "Community Code of Conduct" +--- + +Gateway follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/main/code-of-conduct.md). diff --git a/docs/v0.4.0/dev/CONTRIBUTING.md b/site/content/en/docs/v0.5.0/dev/CONTRIBUTING.md similarity index 99% rename from docs/v0.4.0/dev/CONTRIBUTING.md rename to site/content/en/docs/v0.5.0/dev/CONTRIBUTING.md index 04d95bb675d9..e3eafaaceed7 100644 --- a/docs/v0.4.0/dev/CONTRIBUTING.md +++ b/site/content/en/docs/v0.5.0/dev/CONTRIBUTING.md @@ -1,4 +1,6 @@ -# Contributing +--- +title: "Contributing" +--- We welcome contributions from the community. Please carefully review the [project goals](GOALS.md) and following guidelines to streamline your contributions. diff --git a/site/content/en/docs/v0.5.0/dev/DOCS.md b/site/content/en/docs/v0.5.0/dev/DOCS.md new file mode 100644 index 000000000000..1abae95763c5 --- /dev/null +++ b/site/content/en/docs/v0.5.0/dev/DOCS.md @@ -0,0 +1,65 @@ +--- +title: "Working on the Envoy Gateway Docs" +--- + +The documentation for the Envoy Gateway lives in the `docs/` directory. Any +individual document can be written using either [reStructuredText] or [Markdown], +you can choose the format that you're most comfortable with when working on the +documentation. + +## Documentation Structure + +We supported the versioned Docs now, the directory name under docs represents +the version of docs. The root of the latest site is in `docs/latest/index.rst`. +This is probably where to start if you're trying to understand how things fit together. + +Note that the new contents should be added to `docs/latest` and will be cut off at +the next release. The contents under `docs/v0.2.0` are auto-generated, +and usually do not need to make changes to them, unless if you find the current release pages have +some incorrect contents. If so, you should send a PR to update contents both of `docs/latest` +and `docs/v0.2.0`. + +It's important to note that a given document _must_ have a reference in some +`.. toctree::` section for the document to be reachable. Not everything needs +to be in `docs/index.rst`'s `toctree` though. + +You can access the website which represents the current release in default, +and you can access the website which contains the latest version changes in +[Here][latest-website] or at the footer of the pages. + +## Documentation Workflow + +To work with the docs, just edit reStructuredText or Markdown files in `docs`, +then run + +```bash +make docs +``` + +This will create `docs/html` with the built HTML pages. You can view the docs +either simply by pointing a web browser at the `file://` path to your +`docs/html`, or by firing up a static webserver from that directory, e.g. + +``` shell +make docs-serve +``` + +If you want to generate a new release version of the docs, like `v0.3.0`, then run + +```bash +make docs-release TAG=v0.3.0 +``` + +This will update the VERSION file at the project root, which records current release version, +and it will be used in the pages version context and binary version output. Also, this will generate +new dir `docs/v0.3.0`, which contains docs at v0.3.0 and updates artifact links to `v0.3.0` +in all files under `docs/v0.3.0/user`, like `quickstart.md`, `http-routing.md` and etc. + +## Publishing Docs + +Whenever docs are pushed to `main`, CI will publish the built docs to GitHub +Pages. For more details, see `.github/workflows/docs.yaml`. + +[reStructuredText]: https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html +[Markdown]: https://daringfireball.net/projects/markdown/syntax +[latest-website]: https://gateway.envoyproxy.io/latest diff --git a/docs/v0.5.0/dev/GOALS.md b/site/content/en/docs/v0.5.0/dev/GOALS.md similarity index 99% rename from docs/v0.5.0/dev/GOALS.md rename to site/content/en/docs/v0.5.0/dev/GOALS.md index 519be9f180fe..0d7dea58478d 100644 --- a/docs/v0.5.0/dev/GOALS.md +++ b/site/content/en/docs/v0.5.0/dev/GOALS.md @@ -1,4 +1,6 @@ -# Goals +--- +title: "Goals" +--- The high-level goal of the Envoy Gateway project is to attract more users to Envoy by lowering barriers to adoption through expressive, extensible, role-oriented APIs that support a multitude of ingress and L7/L4 traffic routing diff --git a/docs/latest/dev/README.md b/site/content/en/docs/v0.5.0/dev/README.md similarity index 99% rename from docs/latest/dev/README.md rename to site/content/en/docs/v0.5.0/dev/README.md index cf25992e5b3b..a5eaa93ea707 100644 --- a/docs/latest/dev/README.md +++ b/site/content/en/docs/v0.5.0/dev/README.md @@ -1,4 +1,6 @@ -# Developer Guide +--- +title: "Developer Guide" +--- Envoy Gateway is built using a [make][]-based build system. Our CI is based on [Github Actions][] using [workflows][]. diff --git a/site/content/en/docs/v0.5.0/dev/_index.md b/site/content/en/docs/v0.5.0/dev/_index.md new file mode 100644 index 000000000000..b4ea3bc1a5b0 --- /dev/null +++ b/site/content/en/docs/v0.5.0/dev/_index.md @@ -0,0 +1,5 @@ +--- +title: "Development" +weight: 3 +description: This section includes Developments of Envoy Gateway. +--- diff --git a/docs/latest/dev/releasing.md b/site/content/en/docs/v0.5.0/dev/releasing.md similarity index 99% rename from docs/latest/dev/releasing.md rename to site/content/en/docs/v0.5.0/dev/releasing.md index 81625698cfa8..617baf1933e0 100644 --- a/docs/latest/dev/releasing.md +++ b/site/content/en/docs/v0.5.0/dev/releasing.md @@ -1,4 +1,6 @@ -# Release Process +--- +title: "Release Process" +--- This document guides maintainers through the process of creating an Envoy Gateway release. diff --git a/site/content/en/docs/v0.5.0/helm/_index.md b/site/content/en/docs/v0.5.0/helm/_index.md new file mode 100644 index 000000000000..8606fd7759c1 --- /dev/null +++ b/site/content/en/docs/v0.5.0/helm/_index.md @@ -0,0 +1,4 @@ +--- +title: "Helm" +description: This section includes Helm related contents of Envoy Gateway. +--- diff --git a/docs/v0.5.0/helm/api.md b/site/content/en/docs/v0.5.0/helm/api.md similarity index 98% rename from docs/v0.5.0/helm/api.md rename to site/content/en/docs/v0.5.0/helm/api.md index 98eb8e373049..ca33e2c5e1fe 100644 --- a/docs/v0.5.0/helm/api.md +++ b/site/content/en/docs/v0.5.0/helm/api.md @@ -1,4 +1,6 @@ -# gateway-helm +--- +title: "Helm Chart Details" +--- ![Version: v0.0.0-latest](https://img.shields.io/badge/Version-v0.0.0--latest-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square) diff --git a/docs/v0.5.0/images/architecture.png b/site/content/en/docs/v0.5.0/images/architecture.png similarity index 100% rename from docs/v0.5.0/images/architecture.png rename to site/content/en/docs/v0.5.0/images/architecture.png diff --git a/docs/v0.5.0/images/extension-example.png b/site/content/en/docs/v0.5.0/images/extension-example.png similarity index 100% rename from docs/v0.5.0/images/extension-example.png rename to site/content/en/docs/v0.5.0/images/extension-example.png diff --git a/site/content/en/docs/v0.5.0/user/_index.md b/site/content/en/docs/v0.5.0/user/_index.md new file mode 100644 index 000000000000..32a4b32e7904 --- /dev/null +++ b/site/content/en/docs/v0.5.0/user/_index.md @@ -0,0 +1,6 @@ +--- +title: "User Guide" +weight: 2 +description: This section includes User Guides of Envoy Gateway. +--- + diff --git a/docs/v0.5.0/user/authn.md b/site/content/en/docs/v0.5.0/user/authn.md similarity index 98% rename from docs/v0.5.0/user/authn.md rename to site/content/en/docs/v0.5.0/user/authn.md index 1344248cf607..f09bd31108e6 100644 --- a/docs/v0.5.0/user/authn.md +++ b/site/content/en/docs/v0.5.0/user/authn.md @@ -1,4 +1,6 @@ -# Request Authentication +--- +title: "Request Authentication" +--- This guide provides instructions for configuring [JSON Web Token (JWT)][jwt] authentication. JWT authentication checks if an incoming request has a valid JWT before routing the request to a backend service. Currently, Envoy Gateway only diff --git a/docs/v0.5.0/user/customize-envoyproxy.md b/site/content/en/docs/v0.5.0/user/customize-envoyproxy.md similarity index 99% rename from docs/v0.5.0/user/customize-envoyproxy.md rename to site/content/en/docs/v0.5.0/user/customize-envoyproxy.md index 924799e1b9e5..1be0298ffd4d 100644 --- a/docs/v0.5.0/user/customize-envoyproxy.md +++ b/site/content/en/docs/v0.5.0/user/customize-envoyproxy.md @@ -1,4 +1,6 @@ -# Customize EnvoyProxy +--- +title: "Customize EnvoyProxy" +--- Envoy Gateway provides an [EnvoyProxy][] CRD that can be linked to the ParametersRef in GatewayClass, allowing cluster admins to customize the managed EnvoyProxy Deployment and diff --git a/docs/v0.5.0/user/deployment-mode.md b/site/content/en/docs/v0.5.0/user/deployment-mode.md similarity index 99% rename from docs/v0.5.0/user/deployment-mode.md rename to site/content/en/docs/v0.5.0/user/deployment-mode.md index 3e523b6680ec..2a35c5bafdec 100644 --- a/docs/v0.5.0/user/deployment-mode.md +++ b/site/content/en/docs/v0.5.0/user/deployment-mode.md @@ -1,4 +1,7 @@ -## Deployment Mode +--- +title: "Deployment Mode" +--- + ### One GatewayClass per Envoy Gateway diff --git a/docs/v0.5.0/user/egctl.md b/site/content/en/docs/v0.5.0/user/egctl.md similarity index 99% rename from docs/v0.5.0/user/egctl.md rename to site/content/en/docs/v0.5.0/user/egctl.md index bd027daa3e6a..a09b1b434813 100644 --- a/docs/v0.5.0/user/egctl.md +++ b/site/content/en/docs/v0.5.0/user/egctl.md @@ -1,4 +1,6 @@ -# egctl +--- +title: "Use egctl" +--- `egctl` is a command line tool to provide additional functionality for Envoy Gateway users. diff --git a/docs/v0.5.0/user/envoy-patch-policy.md b/site/content/en/docs/v0.5.0/user/envoy-patch-policy.md similarity index 99% rename from docs/v0.5.0/user/envoy-patch-policy.md rename to site/content/en/docs/v0.5.0/user/envoy-patch-policy.md index efabd72f5f14..cb7d16d2afe7 100644 --- a/docs/v0.5.0/user/envoy-patch-policy.md +++ b/site/content/en/docs/v0.5.0/user/envoy-patch-policy.md @@ -1,4 +1,6 @@ -# Envoy Patch Policy +--- +title: "Envoy Patch Policy" +--- This guide explains the usage of the [EnvoyPatchPolicy][] API. __Note:__ This API is meant for users extremely familiar with Envoy [xDS][] semantics. diff --git a/docs/v0.5.0/user/gateway-address.md b/site/content/en/docs/v0.5.0/user/gateway-address.md similarity index 98% rename from docs/v0.5.0/user/gateway-address.md rename to site/content/en/docs/v0.5.0/user/gateway-address.md index 9bf1f8f6671d..c3f264aa35ed 100644 --- a/docs/v0.5.0/user/gateway-address.md +++ b/site/content/en/docs/v0.5.0/user/gateway-address.md @@ -1,4 +1,6 @@ -# Gateway Address +--- +title: "Gateway Address" +--- The Gateway API provides an optional [Addresses][] field through which Envoy Gateway can set addresses for Envoy Proxy Service. The currently supported addresses are: diff --git a/docs/v0.5.0/user/gatewayapi-support.md b/site/content/en/docs/v0.5.0/user/gatewayapi-support.md similarity index 99% rename from docs/v0.5.0/user/gatewayapi-support.md rename to site/content/en/docs/v0.5.0/user/gatewayapi-support.md index 7894a198dc3a..368745d2f759 100644 --- a/docs/v0.5.0/user/gatewayapi-support.md +++ b/site/content/en/docs/v0.5.0/user/gatewayapi-support.md @@ -1,4 +1,6 @@ -# Gateway API Support +--- +title: "Gateway API Support" +--- As mentioned in the [system design][] document, Envoy Gateway's managed data plane is configured dynamically through Kubernetes resources, primarily [Gateway API][] objects. Envoy Gateway supports configuration using the following Gateway API resources. diff --git a/docs/v0.5.0/user/grpc-routing.md b/site/content/en/docs/v0.5.0/user/grpc-routing.md similarity index 99% rename from docs/v0.5.0/user/grpc-routing.md rename to site/content/en/docs/v0.5.0/user/grpc-routing.md index a6fc3925c06e..f95785c32cf5 100644 --- a/docs/v0.5.0/user/grpc-routing.md +++ b/site/content/en/docs/v0.5.0/user/grpc-routing.md @@ -1,4 +1,6 @@ -# GRPC Routing +--- +title: "GRPC Routing" +--- The [GRPCRoute][] resource allows users to configure gRPC routing by matching HTTP/2 traffic and forwarding it to backend gRPC servers. To learn more about gRPC routing, refer to the [Gateway API documentation][]. diff --git a/docs/v0.4.0/user/http-redirect.md b/site/content/en/docs/v0.5.0/user/http-redirect.md similarity index 99% rename from docs/v0.4.0/user/http-redirect.md rename to site/content/en/docs/v0.5.0/user/http-redirect.md index dcd72749f368..da61bdaf32f3 100644 --- a/docs/v0.4.0/user/http-redirect.md +++ b/site/content/en/docs/v0.5.0/user/http-redirect.md @@ -1,4 +1,6 @@ -# HTTP Redirects +--- +title: "HTTP Redirects" +--- The [HTTPRoute][] resource can issue redirects to clients or rewrite paths sent upstream using filters. Note that HTTPRoute rules cannot use both filter types at once. Currently, Envoy Gateway only supports __core__ diff --git a/docs/v0.4.0/user/http-request-headers.md b/site/content/en/docs/v0.5.0/user/http-request-headers.md similarity index 99% rename from docs/v0.4.0/user/http-request-headers.md rename to site/content/en/docs/v0.5.0/user/http-request-headers.md index 5e1d77fe6d2f..17fe3b87bcb1 100644 --- a/docs/v0.4.0/user/http-request-headers.md +++ b/site/content/en/docs/v0.5.0/user/http-request-headers.md @@ -1,4 +1,6 @@ -# HTTP Request Headers +--- +title: "HTTP Request Headers" +--- The [HTTPRoute][] resource can modify the headers of a request before forwarding it to the upstream service. HTTPRoute rules cannot use both filter types at once. Currently, Envoy Gateway only supports __core__ [HTTPRoute filters][] which diff --git a/docs/v0.5.0/user/http-request-mirroring.md b/site/content/en/docs/v0.5.0/user/http-request-mirroring.md similarity index 99% rename from docs/v0.5.0/user/http-request-mirroring.md rename to site/content/en/docs/v0.5.0/user/http-request-mirroring.md index 45b3508b2644..aaea240f5ca9 100644 --- a/docs/v0.5.0/user/http-request-mirroring.md +++ b/site/content/en/docs/v0.5.0/user/http-request-mirroring.md @@ -1,4 +1,6 @@ -# HTTPRoute Request Mirroring +--- +title: "HTTPRoute Request Mirroring" +--- The [HTTPRoute][] resource allows one or more [backendRefs][] to be provided. Requests will be routed to these upstreams. It is possible to divide the traffic between these backends using [Traffic Splitting](http-traffic-splitting.md), but it is also possible to mirror requests to another Service instead. Request mirroring is accomplished using Gateway API's [HTTPRequestMirrorFilter][] on the `HTTPRoute`. diff --git a/docs/v0.5.0/user/http-response-headers.md b/site/content/en/docs/v0.5.0/user/http-response-headers.md similarity index 99% rename from docs/v0.5.0/user/http-response-headers.md rename to site/content/en/docs/v0.5.0/user/http-response-headers.md index 6c77c2e6c2c4..4a27728003d7 100644 --- a/docs/v0.5.0/user/http-response-headers.md +++ b/site/content/en/docs/v0.5.0/user/http-response-headers.md @@ -1,4 +1,6 @@ -# HTTP Response Headers +--- +title: "HTTP Response Headers" +--- The [HTTPRoute][] resource can modify the headers of a response before responding it to the downstream service. To learn more about HTTP routing, refer to the [Gateway API documentation][]. diff --git a/docs/v0.5.0/user/http-routing.md b/site/content/en/docs/v0.5.0/user/http-routing.md similarity index 99% rename from docs/v0.5.0/user/http-routing.md rename to site/content/en/docs/v0.5.0/user/http-routing.md index c6a70b63664c..eb77751344ad 100644 --- a/docs/v0.5.0/user/http-routing.md +++ b/site/content/en/docs/v0.5.0/user/http-routing.md @@ -1,4 +1,6 @@ -# HTTP Routing +--- +title: "HTTP Routing" +--- The [HTTPRoute][] resource allows users to configure HTTP routing by matching HTTP traffic and forwarding it to Kubernetes backends. Currently, the only supported backend supported by Envoy Gateway is a Service resource. This guide diff --git a/docs/latest/user/http-traffic-splitting.md b/site/content/en/docs/v0.5.0/user/http-traffic-splitting.md similarity index 99% rename from docs/latest/user/http-traffic-splitting.md rename to site/content/en/docs/v0.5.0/user/http-traffic-splitting.md index 92fed8bd0b11..94f021b5aecb 100644 --- a/docs/latest/user/http-traffic-splitting.md +++ b/site/content/en/docs/v0.5.0/user/http-traffic-splitting.md @@ -1,4 +1,6 @@ -# HTTPRoute Traffic Splitting +--- +title: "HTTPRoute Traffic Splitting" +--- The [HTTPRoute][] resource allows one or more [backendRefs][] to be provided. Requests will be routed to these upstreams if they match the rules of the HTTPRoute. If an invalid backendRef is configured, then HTTP responses will be returned diff --git a/docs/v0.3.0/user/http-urlrewrite.md b/site/content/en/docs/v0.5.0/user/http-urlrewrite.md similarity index 99% rename from docs/v0.3.0/user/http-urlrewrite.md rename to site/content/en/docs/v0.5.0/user/http-urlrewrite.md index 88e29c3269cc..fb68ae883221 100644 --- a/docs/v0.3.0/user/http-urlrewrite.md +++ b/site/content/en/docs/v0.5.0/user/http-urlrewrite.md @@ -1,4 +1,6 @@ -# HTTP URL Rewrite +--- +title: "HTTP URL Rewrite" +--- [HTTPURLRewriteFilter][] defines a filter that modifies a request during forwarding. At most one of these filters may be used on a Route rule. This MUST NOT be used on the same Route rule as a HTTPRequestRedirect filter. diff --git a/docs/v0.5.0/user/installation.md b/site/content/en/docs/v0.5.0/user/installation.md similarity index 99% rename from docs/v0.5.0/user/installation.md rename to site/content/en/docs/v0.5.0/user/installation.md index 8bca533dd9a9..29b6a60b1ca7 100644 --- a/docs/v0.5.0/user/installation.md +++ b/site/content/en/docs/v0.5.0/user/installation.md @@ -1,4 +1,6 @@ -# Installation +--- +title: "Installation" +--- ## Prerequisites diff --git a/docs/latest/user/proxy-observability.md b/site/content/en/docs/v0.5.0/user/proxy-observability.md similarity index 99% rename from docs/latest/user/proxy-observability.md rename to site/content/en/docs/v0.5.0/user/proxy-observability.md index e635460865b0..8755332262d0 100644 --- a/docs/latest/user/proxy-observability.md +++ b/site/content/en/docs/v0.5.0/user/proxy-observability.md @@ -1,4 +1,6 @@ -# Proxy Observability +--- +title: "Proxy Observability" +--- Envoy Gateway provides observability for the ControlPlane and the underlying EnvoyProxy instances. This guide show you how to config proxy observability, includes metrics, logs, and traces. diff --git a/docs/v0.5.0/user/quickstart.md b/site/content/en/docs/v0.5.0/user/quickstart.md similarity index 98% rename from docs/v0.5.0/user/quickstart.md rename to site/content/en/docs/v0.5.0/user/quickstart.md index 55e066469aa1..8efb6a44ffe1 100644 --- a/docs/v0.5.0/user/quickstart.md +++ b/site/content/en/docs/v0.5.0/user/quickstart.md @@ -1,4 +1,7 @@ -# Quickstart +--- +title: "Quickstart" +weight: 1 +--- This guide will help you get started with Envoy Gateway in a few simple steps. diff --git a/docs/v0.5.0/user/rate-limit.md b/site/content/en/docs/v0.5.0/user/rate-limit.md similarity index 99% rename from docs/v0.5.0/user/rate-limit.md rename to site/content/en/docs/v0.5.0/user/rate-limit.md index 2e6c165b96dd..3c780c730a6b 100644 --- a/docs/v0.5.0/user/rate-limit.md +++ b/site/content/en/docs/v0.5.0/user/rate-limit.md @@ -1,4 +1,6 @@ -# Rate Limit +--- +title: "Rate Limit" +--- Rate limit is a feature that allows the user to limit the number of incoming requests to a predefined value based on attributes within the traffic flow. diff --git a/docs/v0.4.0/user/secure-gateways.md b/site/content/en/docs/v0.5.0/user/secure-gateways.md similarity index 99% rename from docs/v0.4.0/user/secure-gateways.md rename to site/content/en/docs/v0.5.0/user/secure-gateways.md index 8ada7c59978a..2e04000d5a7d 100644 --- a/docs/v0.4.0/user/secure-gateways.md +++ b/site/content/en/docs/v0.5.0/user/secure-gateways.md @@ -1,4 +1,6 @@ -# Secure Gateways +--- +title: "Secure Gateways" +--- This guide will help you get started using secure Gateways. The guide uses a self-signed CA, so it should be used for testing and demonstration purposes only. diff --git a/docs/v0.5.0/user/tcp-routing.md b/site/content/en/docs/v0.5.0/user/tcp-routing.md similarity index 99% rename from docs/v0.5.0/user/tcp-routing.md rename to site/content/en/docs/v0.5.0/user/tcp-routing.md index 07d07ba4b5b6..9ee9194400ba 100644 --- a/docs/v0.5.0/user/tcp-routing.md +++ b/site/content/en/docs/v0.5.0/user/tcp-routing.md @@ -1,4 +1,6 @@ -# TCP Routing +--- +title: "TCP Routing" +--- [TCPRoute][] provides a way to route TCP requests. When combined with a Gateway listener, it can be used to forward connections on the port specified by the listener to a set of backends specified by the TCPRoute. To learn more about diff --git a/docs/v0.5.0/user/tls-cert-manager.md b/site/content/en/docs/v0.5.0/user/tls-cert-manager.md similarity index 99% rename from docs/v0.5.0/user/tls-cert-manager.md rename to site/content/en/docs/v0.5.0/user/tls-cert-manager.md index 8cfb3b2eb023..7b56dd169565 100644 --- a/docs/v0.5.0/user/tls-cert-manager.md +++ b/site/content/en/docs/v0.5.0/user/tls-cert-manager.md @@ -1,4 +1,6 @@ -# Using cert-manager For TLS Termination +--- +title: "Using cert-manager For TLS Termination" +--- This guide shows how to set up [cert-manager](https://cert-manager.io/) to automatically create certificates and secrets for use by Envoy Gateway. It will first show how to enable the self-sign issuer, which is useful to test that cert-manager and Envoy Gateway can talk to each other. @@ -51,7 +53,7 @@ cert-manager can have any number of *issuer* configurations. The simplest issuer type is [SelfSigned](https://cert-manager.io/docs/configuration/selfsigned/). It simply takes the certificate request and signs it with the private key it generates for the TLS Secret. -```{note} +``` Self-signed certificates don't provide any help in establishing trust between certificates. However, they are great for initial testing, due to their simplicity. ``` diff --git a/docs/v0.5.0/user/tls-passthrough.md b/site/content/en/docs/v0.5.0/user/tls-passthrough.md similarity index 99% rename from docs/v0.5.0/user/tls-passthrough.md rename to site/content/en/docs/v0.5.0/user/tls-passthrough.md index ecb5ebc16581..d5fa1067c4ee 100644 --- a/docs/v0.5.0/user/tls-passthrough.md +++ b/site/content/en/docs/v0.5.0/user/tls-passthrough.md @@ -1,4 +1,6 @@ -# TLS Passthrough +--- +title: "TLS Passthrough" +--- This guide will walk through the steps required to configure TLS Passthrough via Envoy Gateway. Unlike configuring Secure Gateways, where the Gateway terminates the client TLS connection, TLS Passthrough allows the application itself diff --git a/docs/v0.5.0/user/tls-termination.md b/site/content/en/docs/v0.5.0/user/tls-termination.md similarity index 98% rename from docs/v0.5.0/user/tls-termination.md rename to site/content/en/docs/v0.5.0/user/tls-termination.md index 35f278063f93..7975a31c1964 100644 --- a/docs/v0.5.0/user/tls-termination.md +++ b/site/content/en/docs/v0.5.0/user/tls-termination.md @@ -1,4 +1,6 @@ -# TLS Termination for TCP +--- +title: "TLS Termination for TCP" +--- This guide will walk through the steps required to configure TLS Terminate mode for TCP traffic via Envoy Gateway. The guide uses a self-signed CA, so it should be used for testing and demonstration purposes only. diff --git a/docs/v0.5.0/user/udp-routing.md b/site/content/en/docs/v0.5.0/user/udp-routing.md similarity index 99% rename from docs/v0.5.0/user/udp-routing.md rename to site/content/en/docs/v0.5.0/user/udp-routing.md index 16b4c9434197..59b4992b98a5 100644 --- a/docs/v0.5.0/user/udp-routing.md +++ b/site/content/en/docs/v0.5.0/user/udp-routing.md @@ -1,4 +1,6 @@ -# UDP Routing +--- +title: "UDP Routing" +--- The [UDPRoute][] resource allows users to configure UDP routing by matching UDP traffic and forwarding it to Kubernetes backends. This guide will use CoreDNS example to walk you through the steps required to configure UDPRoute on Envoy diff --git a/site/content/en/featured-background.jpg b/site/content/en/featured-background.jpg new file mode 100644 index 000000000000..b1f8c56bc299 Binary files /dev/null and b/site/content/en/featured-background.jpg differ diff --git a/site/content/en/search.md b/site/content/en/search.md new file mode 100644 index 000000000000..394feea5fdb3 --- /dev/null +++ b/site/content/en/search.md @@ -0,0 +1,4 @@ +--- +title: Search Results +layout: search +--- diff --git a/site/docker-compose.yaml b/site/docker-compose.yaml new file mode 100644 index 000000000000..e8f211a610ef --- /dev/null +++ b/site/docker-compose.yaml @@ -0,0 +1,13 @@ +version: "3.3" + +services: + + site: + image: docsy/docsy-example + build: + context: . + command: server + ports: + - "1313:1313" + volumes: + - .:/src diff --git a/site/go.mod b/site/go.mod new file mode 100644 index 000000000000..ec0974f56141 --- /dev/null +++ b/site/go.mod @@ -0,0 +1,9 @@ +module github.com/google/docsy-example + +go 1.12 + +require ( + github.com/FortAwesome/Font-Awesome v0.0.0-20230327165841-0698449d50f2 // indirect + github.com/google/docsy v0.7.1 // indirect + github.com/twbs/bootstrap v5.2.3+incompatible // indirect +) diff --git a/site/go.sum b/site/go.sum new file mode 100644 index 000000000000..e1d4ad4df70a --- /dev/null +++ b/site/go.sum @@ -0,0 +1,22 @@ +github.com/FortAwesome/Font-Awesome v0.0.0-20220831210243-d3a7818c253f h1:bvkUptSRPZBr3Kxuk+bnWCEmQ5MtEJX5fjezyV0bC3g= +github.com/FortAwesome/Font-Awesome v0.0.0-20220831210243-d3a7818c253f/go.mod h1:IUgezN/MFpCDIlFezw3L8j83oeiIuYoj28Miwr/KUYo= +github.com/FortAwesome/Font-Awesome v0.0.0-20221115183454-96cafbd73ec4 h1:xfr9SidRCMEh4A8fdkLhFPcHAVbrdv3Ua0Jp/nSmhhQ= +github.com/FortAwesome/Font-Awesome v0.0.0-20221115183454-96cafbd73ec4/go.mod h1:IUgezN/MFpCDIlFezw3L8j83oeiIuYoj28Miwr/KUYo= +github.com/FortAwesome/Font-Awesome v0.0.0-20230327165841-0698449d50f2 h1:Uv1z5EqCfmiK4IHUwT0m3h/u/WCk+kpRfxvAZhpC7Gc= +github.com/FortAwesome/Font-Awesome v0.0.0-20230327165841-0698449d50f2/go.mod h1:IUgezN/MFpCDIlFezw3L8j83oeiIuYoj28Miwr/KUYo= +github.com/google/docsy v0.5.1 h1:D/ZdFKiE29xM/gwPwQzmkyXhcbQGkReRS6aGrF7lnYk= +github.com/google/docsy v0.5.1/go.mod h1:maoUAQU5H/d+FrZIB4xg1EVWAx7RyFMGSDJyWghm31E= +github.com/google/docsy v0.6.0 h1:43bVF18t2JihAamelQjjGzx1vO2ljCilVrBgetCA8oI= +github.com/google/docsy v0.6.0/go.mod h1:VKKLqD8PQ7AglJc98yBorATfW7GrNVsn0kGXVYF6G+M= +github.com/google/docsy v0.7.0 h1:JaeZ0/KufX/BJ3SyATb/fmZa1DFI7o5d9KU+i6+lLJY= +github.com/google/docsy v0.7.0/go.mod h1:5WhIFchr5BfH6agjcInhpLRz7U7map0bcmKSpcrg6BE= +github.com/google/docsy v0.7.1 h1:DUriA7Nr3lJjNi9Ulev1SfiG1sUYmvyDeU4nTp7uDxY= +github.com/google/docsy v0.7.1/go.mod h1:JCmE+c+izhE0Rvzv3y+AzHhz1KdwlA9Oj5YBMklJcfc= +github.com/google/docsy/dependencies v0.5.1/go.mod h1:EDGc2znMbGUw0RW5kWwy2oGgLt0iVXBmoq4UOqstuNE= +github.com/google/docsy/dependencies v0.6.0/go.mod h1:EDGc2znMbGUw0RW5kWwy2oGgLt0iVXBmoq4UOqstuNE= +github.com/google/docsy/dependencies v0.7.0/go.mod h1:gihhs5gmgeO+wuoay4FwOzob+jYJVyQbNaQOh788lD4= +github.com/google/docsy/dependencies v0.7.1/go.mod h1:gihhs5gmgeO+wuoay4FwOzob+jYJVyQbNaQOh788lD4= +github.com/twbs/bootstrap v4.6.2+incompatible h1:TDa+R51BTiy1wEHSYjmqDb8LxNl/zaEjAOpRE9Hwh/o= +github.com/twbs/bootstrap v4.6.2+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0= +github.com/twbs/bootstrap v5.2.3+incompatible h1:lOmsJx587qfF7/gE7Vv4FxEofegyJlEACeVV+Mt7cgc= +github.com/twbs/bootstrap v5.2.3+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0= diff --git a/site/hugo.toml b/site/hugo.toml new file mode 100644 index 000000000000..e4785d69371f --- /dev/null +++ b/site/hugo.toml @@ -0,0 +1,230 @@ +baseURL = "http://gateway.xunzhuo.cafe/" +title = "Envoy Gateway" + +# Language settings +contentDir = "content/en" +defaultContentLanguage = "en" +defaultContentLanguageInSubdir = false +# Useful when translating. +enableMissingTranslationPlaceholders = true + +enableRobotsTXT = true + +# Will give values to .Lastmod etc. +enableGitInfo = true + +# Comment out to enable taxonomies in Docsy +# disableKinds = ["taxonomy", "taxonomyTerm"] + +# You can add your own taxonomies +[taxonomies] +tag = "tags" +category = "categories" + +[params.taxonomy] +# set taxonomyCloud = [] to hide taxonomy clouds +taxonomyCloud = ["tags", "categories"] + +# If used, must have same length as taxonomyCloud +taxonomyCloudTitle = ["Tag Cloud", "Categories"] + +# set taxonomyPageHeader = [] to hide taxonomies on the page headers +taxonomyPageHeader = ["tags", "categories"] + + +# Highlighting config +pygmentsCodeFences = true +pygmentsUseClasses = false +# Use the new Chroma Go highlighter in Hugo. +pygmentsUseClassic = false +#pygmentsOptions = "linenos=table" +# See https://help.farbox.com/pygments.html +pygmentsStyle = "tango" + +# Configure how URLs look like per section. +[permalinks] +blog = "/:section/:year/:month/:day/:slug/" + +# Image processing configuration. +[imaging] +resampleFilter = "CatmullRom" +quality = 75 +anchor = "smart" + +[services] +[services.googleAnalytics] +# Comment out the next line to disable GA tracking. Also disables the feature described in [params.ui.feedback]. +id = "UA-00000000-0" + +# Language configuration + +[languages] +[languages.en] +languageName ="English" +# Weight used for sorting. +weight = 1 +[languages.en.params] +title = "Envoy Gateway" +description = "Manages Envoy Proxy as a Standalone or Kubernetes-based Application Gateway" + +[markup] + [markup.goldmark] + [markup.goldmark.parser.attribute] + block = true + [markup.goldmark.renderer] + unsafe = true + [markup.highlight] + # See a complete list of available styles at https://xyproto.github.io/splash/docs/all.html + style = "tango" + # Uncomment if you want your chosen highlight style used for code blocks without a specified language + # guessSyntax = "true" + +# Everything below this are Site Params + +# Comment out if you don't want the "print entire section" link enabled. +[outputs] +section = ["HTML", "print", "RSS"] + +[params] +copyright = "The Envoy Gateway Authors" +privacy_policy = "https://policies.google.com/privacy" + +# First one is picked as the Twitter card image if not set on page. +# images = ["images/project-illustration.png"] + +# Menu title if your navbar has a versions selector to access old versions of your site. +# This menu appears only if you have at least one [params.versions] set. +version_menu = "Releases" + +# Flag used in the "version-banner" partial to decide whether to display a +# banner on every page indicating that this is an archived version of the docs. +# Set this flag to "true" if you want to display the banner. +archived_version = false + +# The version number for the version of the docs represented in this doc set. +# Used in the "version-banner" partial to display a version number for the +# current doc set. +version = "latest" + +# A link to latest version of the docs. Used in the "version-banner" partial to +# point people to the main doc site. +url_latest_version = "https://gateway.envoyproxy.io" + +# Repository configuration (URLs for in-page links to opening issues and suggesting changes) +github_repo = "https://github.com/envoyproxy/gateway" +# An optional link to a related project repo. For example, the sibling repository where your product code lives. +github_project_repo = "https://github.com/envoyproxy/gateway" + +# Specify a value here if your content directory is not in your repo's root directory +# github_subdir = "" + +# Uncomment this if your GitHub repo does not have "main" as the default branch, +# or specify a new value if you want to reference another branch in your GitHub links +github_branch= "main" + +# Google Custom Search Engine ID. Remove or comment out to disable search. +gcs_engine_id = "d72aa9b2712488cc3" + +# Enable Algolia DocSearch +algolia_docsearch = false + +# Enable Lunr.js offline search +offlineSearch = false + +# Enable syntax highlighting and copy buttons on code blocks with Prism +prism_syntax_highlighting = false + +# User interface configuration +[params.ui] +# Set to true to disable breadcrumb navigation. +breadcrumb_disable = false +# Set to true to disable the About link in the site footer +footer_about_disable = false +# Set to false if you don't want to display a logo (/assets/icons/logo.svg) in the top navbar +navbar_logo = true +# Set to true if you don't want the top navbar to be translucent when over a `block/cover`, like on the homepage. +navbar_translucent_over_cover_disable = false +# Enable to show the side bar menu in its compact state. +sidebar_menu_compact = false +# Set to true to hide the sidebar search box (the top nav search box will still be displayed if search is enabled) +sidebar_search_disable = false + +# Adds a H2 section titled "Feedback" to the bottom of each doc. The responses are sent to Google Analytics as events. +# This feature depends on [services.googleAnalytics] and will be disabled if "services.googleAnalytics.id" is not set. +# If you want this feature, but occasionally need to remove the "Feedback" section from a single page, +# add "hide_feedback: true" to the page's front matter. +[params.ui.feedback] +enable = true +# The responses that the user sees after clicking "yes" (the page was helpful) or "no" (the page was not helpful). +yes = 'Glad to hear it! Please tell us how we can improve.' +no = 'Sorry to hear that. Please tell us how we can improve.' + +# Adds a reading time to the top of each doc. +# If you want this feature, but occasionally need to remove the Reading time from a single page, +# add "hide_readingtime: true" to the page's front matter +[params.ui.readingtime] +enable = false + +[params.links] +# End user relevant links. These will show up on left side of footer and in the community page if you have one. +[[params.links.user]] + name = "User mailing list" + url = "mailto:envoy-users@googlegroups.com" + icon = "fa fa-envelope" + desc = "Discussion and help from your fellow users" +[[params.links.user]] + name ="Twitter" + url = "https://twitter.com/EnvoyProxy" + icon = "fab fa-twitter" + desc = "Follow us on Twitter to get the latest news!" +# Developer relevant links. These will show up on right side of footer and in the community page if you have one. +[[params.links.developer]] + name = "GitHub" + url = "https://github.com/envoyproxy/gateway" + icon = "fab fa-github" + desc = "Development takes place here!" +[[params.links.developer]] + name = "Slack" + url = "https://envoyproxy.slack.com/archives/C03E6NHLESV" + icon = "fab fa-slack" + desc = "Chat with other project developers" + +# hugo module configuration + +[module] + # uncomment line below for temporary local development of module + # replacements = "github.com/envoyproxy/gateway -> ../../docsy" + [module.hugoVersion] + extended = true + min = "0.110.0" + [[module.imports]] + path = "github.com/google/docsy" + disable = false + [[module.imports]] + path = "github.com/google/docsy/dependencies" + disable = false + +# Add your release versions here +[[params.versions]] + version = "latest" + url = "/docs/latest" + +# Add your release versions here +[[params.versions]] + version = "v0.5.0" + url = "/docs/v0.5.0" + +# Add your release versions here +[[params.versions]] + version = "v0.4.0" + url = "/docs/v0.4.0" + +# Add your release versions here +[[params.versions]] + version = "v0.3.0" + url = "/docs/v0.3.0" + +# Add your release versions here +[[params.versions]] + version = "v0.2.0" + url = "/docs/v0.2.0" diff --git a/site/layouts/404.html b/site/layouts/404.html new file mode 100644 index 000000000000..d32828c8b2fd --- /dev/null +++ b/site/layouts/404.html @@ -0,0 +1,6 @@ +{{ define "main" -}} +
+

Not found

+

Oops! This page doesn't exist. Try going back to the home page.

+
+{{- end }} diff --git a/site/netlify.toml b/site/netlify.toml new file mode 100644 index 000000000000..60839e248124 --- /dev/null +++ b/site/netlify.toml @@ -0,0 +1,12 @@ +# Hugo build configuration for Netlify +# (https://gohugo.io/hosting-and-deployment/hosting-on-netlify/#configure-hugo-version-in-netlify) + +[build] +command = "npm run build:preview" +publish = "public" + +[build.environment] +GO_VERSION = "1.20.5" + +[context.production] +command = "npm run build:production" diff --git a/site/package.json b/site/package.json new file mode 100644 index 000000000000..85947b7888d9 --- /dev/null +++ b/site/package.json @@ -0,0 +1,38 @@ +{ + "name": "docsy-example-site", + "version": "0.7.1", + "description": "Example site that uses Docsy theme for technical documentation.", + "repository": "github:google/docsy-example", + "homepage": "https://example.docsy.dev", + "author": "Docsy Authors", + "license": "Apache-2.0", + "bugs": "https://github.com/google/docsy-example/issues", + "spelling": "cSpell:ignore HTMLTEST precheck postbuild -", + "scripts": { + "_build": "npm run _hugo-dev", + "_check:links": "echo IMPLEMENTATION PENDING for check-links; echo", + "_hugo": "hugo --cleanDestinationDir", + "_hugo-dev": "npm run _hugo -- -e dev -DFE", + "_serve": "npm run _hugo-dev -- --minify serve", + "build:preview": "npm run _hugo-dev -- --minify --baseURL \"${DEPLOY_PRIME_URL:-/}\"", + "build:production": "npm run _hugo -- --minify", + "build": "npm run _build", + "check:links:all": "HTMLTEST_ARGS= npm run _check:links", + "check:links": "npm run _check:links", + "clean": "rm -Rf public/* resources", + "make:public": "git init -b main public", + "precheck:links:all": "npm run build", + "precheck:links": "npm run build", + "postbuild:preview": "npm run _check:links", + "postbuild:production": "npm run _check:links", + "serve": "npm run _serve", + "test": "npm run check:links", + "update:pkg:dep": "npm install --save-dev autoprefixer@latest postcss-cli@latest", + "update:pkg:hugo": "npm install --save-dev --save-exact hugo-extended@latest" + }, + "devDependencies": { + "autoprefixer": "^10.4.14", + "hugo-extended": "0.117.0", + "postcss-cli": "^10.1.0" + } +}