diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml
index 2244b4a14cd3..84d14063cae5 100644
--- a/.github/workflows/docs.yaml
+++ b/.github/workflows/docs.yaml
@@ -1,47 +1,67 @@
-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:
runs-on: ubuntu-22.04
steps:
- - name: Check out code
- uses: actions/checkout@v4
+ - name: Check out code
+ uses: actions/checkout@v4
- - name: Run markdown linter
- uses: nosborn/github-action-markdown-cli@v3.3.0
- with:
- files: docs/*
- config_file: ".github/markdown_lint_config.json"
+ - name: Run markdown linter
+ uses: nosborn/github-action-markdown-cli@v3.3.0
+ with:
+ 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
- # Duration after which artifact will expire in days.
- # retention-days: # optional, default is 1
+ # 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: site/public
+ # Duration after which artifact will expire in days.
+ # retention-days: # optional, default is 1
# This workflow contains a single job called "build"
docs-publish:
@@ -61,6 +81,6 @@ jobs:
url: ${{ steps.deployment.outputs.page_url }}
steps:
- - name: Deploy to GitHub Pages
- id: deployment
- uses: actions/deploy-pages@v2.0.4
+ - name: Deploy to GitHub Pages
+ id: deployment
+ uses: actions/deploy-pages@v2.0.4
diff --git a/GOALS.md b/GOALS.md
index 519be9f180fe..8220a44de382 100644
--- a/GOALS.md
+++ b/GOALS.md
@@ -8,6 +8,7 @@ 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
@@ -23,6 +24,7 @@ This expressive API will not be implemented by Envoy Proxy, but rather an offici
on top.
### Batteries included
+
Envoy Gateway will simplify how Envoy is deployed and managed, allowing application developers to focus on
delivering core business value.
@@ -37,6 +39,7 @@ will enjoy a simplified management model that doesn't require extensive knowledg
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
@@ -44,6 +47,7 @@ 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
@@ -57,21 +61,26 @@ 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.
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/CODE_OF_CONDUCT.md b/docs/latest/dev/CODE_OF_CONDUCT.md
deleted file mode 100644
index a0a295770f31..000000000000
--- a/docs/latest/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/latest/dev/GOALS.md b/docs/latest/dev/GOALS.md
deleted file mode 120000
index f21745923944..000000000000
--- a/docs/latest/dev/GOALS.md
+++ /dev/null
@@ -1 +0,0 @@
-../../../GOALS.md
\ No newline at end of file
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.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/CODE_OF_CONDUCT.md b/docs/v0.2.0/dev/CODE_OF_CONDUCT.md
deleted file mode 100644
index a0a295770f31..000000000000
--- a/docs/v0.2.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.2.0/dev/GOALS.md b/docs/v0.2.0/dev/GOALS.md
deleted file mode 120000
index f21745923944..000000000000
--- a/docs/v0.2.0/dev/GOALS.md
+++ /dev/null
@@ -1 +0,0 @@
-../../../GOALS.md
\ No newline at end of file
diff --git a/docs/v0.2.0/dev/README.md b/docs/v0.2.0/dev/README.md
deleted file mode 100644
index 4f94c06bb37a..000000000000
--- a/docs/v0.2.0/dev/README.md
+++ /dev/null
@@ -1,139 +0,0 @@
-# Developer Guide
-
-Envoy Gateway is built using a [make][]-based build system. Our CI is based on [Github Actions][] using [workflows][].
-
-## Prerequisites
-
-### go
-
-* Version: 1.18.2
-* Installation Guide: https://go.dev/doc/install
-
-### make
-
-* Recommended Version: 4.0 or later
-* Installation Guide: https://www.gnu.org/software/make
-
-### docker
-
-* Optional when you want to build a Docker image or run `make` inside Docker.
-* Recommended Version: 20.10.16
-* Installation Guide: https://docs.docker.com/engine/install
-
-### python3
-
-* Need a `python3` program
-* Must have a functioning `venv` module; this is part of the standard
- library, but some distributions (such as Debian and Ubuntu) replace
- it with a stub and require you to install a `python3-venv` package
- separately.
-
-## Quickstart
-
-* Run `make help` to see all the available targets to build, test and run Envoy Gateway.
-
-### Building
-
-* Run `make build` to build the Envoy Gateway binary. __Note:__ The binary gets generated in the `bin/` directory
-
-### Testing
-
-* Run `make test` to run the golang tests.
-
-### Running Linters
-
-* Run `make lint` to make sure your code passes all the linter checks.
-
-### Building and Pushing the Image
-
-* Run `IMAGE=docker.io/you/gateway-dev make image` to build the docker image.
-* Run `IMAGE=docker.io/you/gateway-dev make push-multiarch` to build and push the multi-arch docker image.
-
-__Note:__ Replace `IMAGE` with your registry's image name.
-
-### Deploying Envoy Gateway for Test/Dev
-
-* Run `make create-cluster` to create a [Kind][] cluster.
-
-#### Option 1: Use the Latest [gateway-dev][] Image
-
-* Run `TAG=latest make kube-deploy` to deploy Envoy Gateway in the Kind cluster using the latest image. Replace `latest`
- to use a different image tag.
-
-#### Option 2: Use a Custom Image
-
-* Run `make kube-install-image` to build an image from the tip of your current branch and load it in the Kind cluster.
-* Run `make kube-deploy` to install Envoy Gateway into the Kind cluster using your custom image.
-
-### Deploying Envoy Gateway in Kubernetes
-
-* Run `TAG=latest make kube-deploy` to deploy Envoy Gateway using the latest image into a Kubernetes cluster (linked to
- the current kube context). Preface the command with `IMAGE` or replace `TAG` to use a different Envoy Gateway image or
- tag.
-* Run `make kube-undeploy` to uninstall Envoy Gateway from the cluster.
-
-__Note:__ Envoy Gateway is tested against Kubernetes v1.24.0.
-
-### Demo Setup
-
-* Run `make kube-demo` to deploy a demo backend service, gatewayclass, gateway and httproute resource
-(similar to steps outlined in the [Quickstart][] docs) and test the configuration.
-* Run `make kube-demo-undeploy` to delete the resources created by the `make kube-demo` command.
-
-### Run Gateway API Conformance Tests
-
-The commands below deploy Envoy Gateway to a Kubernetes cluster and run the Gateway API conformance tests. Refer to the
-Gateway API [conformance homepage][] to learn more about the tests. If Envoy Gateway is already installed, run
-`TAG=latest make run-conformance` to run the conformance tests.
-
-#### On a Linux Host
-
-* Run `TAG=latest make conformance` to create a Kind cluster, install Envoy Gateway using the latest [gateway-dev][]
- image, and run Gateway API conformance tests.
-
-#### On a Mac Host
-
-Since Mac doesn't support [directly exposing][] the Docker network to the Mac host, use one of the following
-workarounds to run conformance tests:
-
-* Deploy your own Kubernetes cluster or use Docker Desktop with [Kubernetes support][] and then run
- `TAG=latest make kube-deploy run-conformance`. This will install Envoy Gateway using the latest [gateway-dev][] image
- to the Kubernetes cluster using the current kubectl context and run the conformance tests. Use `make kube-undeploy` to
- uninstall Envoy Gateway.
-* Install and run [Docker Mac Net Connect][mac_connect] and then run `TAG=latest make conformance`.
-
-__Note:__ Preface commands with `IMAGE` or replace `TAG` to use a different Envoy Gateway image or tag. If `TAG`
-is unspecified, the short SHA of your current branch is used.
-
-### Debugging the Envoy Config
-
-An easy way to view the envoy config that Envoy Gateway is using is to port-forward to the admin interface port
-(currently `19000`) on the Envoy deployment that corresponds to a Gateway so that it can be accessed locally.
-
-Get the name of the Envoy deployment. The following example is for Gateway `eg` in the `default` namespace:
-
-```shell
-export ENVOY_DEPLOYMENT=$(kubectl get deploy -n envoy-gateway-system --selector=gateway.envoyproxy.io/owning-gateway-namespace=default,gateway.envoyproxy.io/owning-gateway-name=eg -o jsonpath='{.items[0].metadata.name}')
-```
-
-Port forward the admin interface port:
-
-```shell
-kubectl port-forward deploy/${ENVOY_DEPLOYMENT} -n envoy-gateway-system 19000:19000
-```
-
-Now you are able to view the running Envoy configuration by navigating to `127.0.0.1:19000/config_dump`.
-
-There are many other endpoints on the [Envoy admin interface][] that may be helpful when debugging.
-
-[Quickstart]: https://github.com/envoyproxy/gateway/blob/main/docs/user/quickstart.md
-[make]: https://www.gnu.org/software/make/
-[Github Actions]: https://docs.github.com/en/actions
-[workflows]: https://github.com/envoyproxy/gateway/tree/main/.github/workflows
-[Kind]: https://kind.sigs.k8s.io/
-[conformance homepage]: https://gateway-api.sigs.k8s.io/concepts/conformance/
-[directly exposing]: https://kind.sigs.k8s.io/docs/user/loadbalancer/
-[Kubernetes support]: https://docs.docker.com/desktop/kubernetes/
-[gateway-dev]: https://hub.docker.com/r/envoyproxy/gateway-dev/tags
-[mac_connect]: https://github.com/chipmk/docker-mac-net-connect
-[Envoy admin interface]: https://www.envoyproxy.io/docs/envoy/latest/operations/admin#operations-admin-interface
diff --git a/docs/v0.2.0/dev/releasing.md b/docs/v0.2.0/dev/releasing.md
deleted file mode 100644
index 30bb5fe8c582..000000000000
--- a/docs/v0.2.0/dev/releasing.md
+++ /dev/null
@@ -1,142 +0,0 @@
-# Release Process
-
-This document guides maintainers through the process of creating an Envoy Gateway release.
-
-## Creating a Minor Release
-
-### Prerequisites
-
-- Permissions to push to the Envoy Gateway repository.
-
-Set environment variables for use in subsequent steps:
-
-```shell
-export MAJOR_VERSION=0
-export MINOR_VERSION=3
-export GITHUB_REMOTE=origin
-```
-
-1. Clone the repo, checkout the `main` branch, ensure it’s up-to-date, and your local branch is clean.
-2. Create a topic branch to create the release notes and release docs. Reference previous [release notes][] for additional details.
-3. Sign, commit, and push your changes to your fork and submit a [Pull Request][] to merge the changes listed below
- into the `main` branch. Do not proceed until all your PRs have merged and the [Build and Test][build-and-test GitHub action] has completed for your final PR:
-
- 1. Add Release Announcement.
- 2. Add Release Versioned Documents.
-
- ``` shell
- make docs-release TAG=v${MAJOR_VERSION}.${MINOR_VERSION}.0
- ```
-
-4. Create a new release branch from `main`. The release branch should be named
- `release/v${MAJOR_VERSION}.${MINOR_VERSION}`, e.g. `release/v0.3`.
-
- ```shell
- git checkout -b release/v${MAJOR_VERSION}.${MINOR_VERSION}
- ```
-
-5. Push the branch to the Envoy Gateway repo.
-
- ```shell
- git push ${GITHUB_REMOTE} release/v${MAJOR_VERSION}.${MINOR_VERSION}
- ```
-
-6. Tag the head of your release branch with the release tag. For example:
-
- ```shell
- git tag -a v${MAJOR_VERSION}.${MINOR_VERSION}.0 -m 'Envoy Gateway v${MAJOR_VERSION}.${MINOR_VERSION}.0 Release'
- ```
-
- __Note:__ The tag version differs from the release branch by including the `.0` patch version.
-
-7. Push the tag to the Envoy Gateway repository.
-
- ```shell
- git push origin v${MAJOR_VERSION}.${MINOR_VERSION}.0
- ```
-
-8. This will trigger the [release GitHub action][] that generates the release, release artifacts, etc.
-9. Confirm that the [release workflow][] completed successfully.
-10. Confirm that the Envoy Gateway [image][] with the correct release tag was published to Docker Hub.
-11. Confirm that the [release][] was created.
-12. Confirm that the steps in the [Quickstart Guide][] work as expected.
-13. [Generate][] the GitHub changelog and include the following text at the beginning of the release page:
-
- ```console
- # Release Announcement
-
- Check out the [v${MAJOR_VERSION}.${MINOR_VERSION} release announcement]
- (https://gateway.envoyproxy.io/releases/v${MAJOR_VERSION}.${MINOR_VERSION}.html) to learn more about the release.
- ```
-
-If you find any bugs in this process, please create an issue.
-
-## Creating a Release Candidate
-
-### RC Prerequisites
-
-- Permissions to push to the Envoy Gateway repository.
-
-Set environment variables for use in subsequent steps:
-
-```shell
-export MAJOR_VERSION=0
-export MINOR_VERSION=3
-export RELEASE_CANDIDATE_NUMBER=1
-export GITHUB_REMOTE=origin
-```
-
-1. Clone the repo, checkout the `main` branch, ensure it’s up-to-date, and your local branch is clean.
-2. Tag the head of the main branch with the release candidate number.
-
- ```shell
- git tag -a v${MAJOR_VERSION}.${MINOR_VERSION}.0-rc.${RELEASE_CANDIDATE_NUMBER} -m 'Envoy Gateway v${MAJOR_VERSION}.${MINOR_VERSION}.0-rc.${RELEASE_CANDIDATE_NUMBER} Release Candidate'
- ```
-
-3. Push the tag to the Envoy Gateway repository.
-
- ```shell
- git push v${MAJOR_VERSION}.${MINOR_VERSION}.0-rc.${RELEASE_CANDIDATE_NUMBER}
- ```
-
-4. This will trigger the [release GitHub action][] that generates the release, release artifacts, etc.
-5. Confirm that the [release workflow][] completed successfully.
-6. Confirm that the Envoy Gateway [image][] with the correct release tag was published to Docker Hub.
-7. Confirm that the [release][] was created.
-8. Note that the [Quickstart Guide][] references are __not__ updated for release candidates. However, test
- the quickstart steps using the release candidate by manually updating the links.
-9. [Generate][] the GitHub changelog.
-10. Ensure you check the "This is a pre-release" checkbox when editing the GitHub release.
-11. If you find any bugs in this process, please create an issue.
-
-## Announcing the Release
-
-It's important that the world knows about the release. Use the following steps to announce the release.
-
-1. Set the release information in the Envoy Gateway Slack channel. For example:
-
- ```shell
- Envoy Gateway v${MAJOR_VERSION}.${MINOR_VERSION} has been released: https://github.com/envoyproxy/gateway/releases/tag/v${MAJOR_VERSION}.${MINOR_VERSION}.0
- ```
-
-2. Send a message to the Envoy Gateway Slack channel. For example:
-
- ```shell
- On behalf of the entire Envoy Gateway community, I am pleased to announce the release of Envoy Gateway
- v${MAJOR_VERSION}.${MINOR_VERSION}. A big thank you to all the contributors that made this release possible.
- Refer to the official v${MAJOR_VERSION}.${MINOR_VERSION} announcement for release details and the project docs
- to start using Envoy Gateway.
- ...
- ```
-
- Link to the GitHub release and release announcement page that highlights the release.
-
-[release notes]: https://github.com/envoyproxy/gateway/tree/main/release-notes
-[Pull Request]: https://github.com/envoyproxy/gateway/pulls
-[Quickstart Guide]: https://github.com/envoyproxy/gateway/blob/main/docs/user/quickstart.md
-[build-and-test GitHub action]: https://github.com/envoyproxy/gateway/blob/main/.github/workflows/build_and_test.yaml
-[release GitHub action]: https://github.com/envoyproxy/gateway/blob/main/.github/workflows/release.yaml
-[release workflow]: https://github.com/envoyproxy/gateway/actions/workflows/release.yaml
-[image]: https://hub.docker.com/r/envoyproxy/gateway/tags
-[release]: https://github.com/envoyproxy/gateway/releases
-[Generate]: https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes
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/images/architecture.png b/docs/v0.2.0/images/architecture.png
deleted file mode 100644
index 1d4131fbea77..000000000000
Binary files a/docs/v0.2.0/images/architecture.png and /dev/null differ
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/CODE_OF_CONDUCT.md b/docs/v0.3.0/dev/CODE_OF_CONDUCT.md
deleted file mode 100644
index a0a295770f31..000000000000
--- a/docs/v0.3.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.3.0/dev/CONTRIBUTING.md b/docs/v0.3.0/dev/CONTRIBUTING.md
deleted file mode 100644
index d7770bdeff2f..000000000000
--- a/docs/v0.3.0/dev/CONTRIBUTING.md
+++ /dev/null
@@ -1,183 +0,0 @@
-# Contributing
-
-We welcome contributions from the community. Please carefully review the [project goals](GOALS.md)
-and following guidelines to streamline your contributions.
-
-## Communication
-
-* Before starting work on a major feature, please contact us via GitHub or Slack. We will ensure no
- one else is working on it and ask you to open a GitHub issue.
-* A "major feature" is defined as any change that is > 100 LOC altered (not including tests), or
- changes any user-facing behavior. We will use the GitHub issue to discuss the feature and come to
- agreement. This is to prevent your time being wasted, as well as ours. The GitHub review process
- for major features is also important so that [affiliations with commit access](CODEOWNERS.md) can
- come to agreement on the design. If it's appropriate to write a design document, the document must
- be hosted either in the GitHub issue, or linked to from the issue and hosted in a world-readable
- location.
-* Small patches and bug fixes don't need prior communication.
-
-## Inclusivity
-
-The Envoy Gateway community has an explicit goal to be inclusive to all. As such, all PRs must adhere
-to the following guidelines for all code, APIs, and documentation:
-
-* The following words and phrases are not allowed:
- * *Whitelist*: use allowlist instead.
- * *Blacklist*: use denylist or blocklist instead.
- * *Master*: use primary instead.
- * *Slave*: use secondary or replica instead.
-* Documentation should be written in an inclusive style. The [Google developer
- documentation](https://developers.google.com/style/inclusive-documentation) contains an excellent
- reference on this topic.
-* The above policy is not considered definitive and may be amended in the future as industry best
- practices evolve. Additional comments on this topic may be provided by maintainers during code
- review.
-
-## Submitting a PR
-
-* Fork the repo.
-* Hack
-* DCO sign-off each commit. This can be done with `git commit -s`.
-* Submit your PR.
-* Tests will automatically run for you.
-* We will **not** merge any PR that is not passing tests.
-* PRs are expected to have 100% test coverage for added code. This can be verified with a coverage
- build. If your PR cannot have 100% coverage for some reason please clearly explain why when you
- open it.
-* Any PR that changes user-facing behavior **must** have associated documentation in the [docs](https://github.com/envoyproxy/gateway/tree/main/docs) folder of the repo as
- well as the [changelog](../releases).
-* All code comments and documentation are expected to have proper English grammar and punctuation.
- If you are not a fluent English speaker (or a bad writer ;-)) please let us know and we will try
- to find some help but there are no guarantees.
-* Your PR title should be descriptive, and generally start with a subsystem name followed by a
- colon. Examples:
- * "docs: fix grammar error"
- * "translator: add new feature"
-* Your PR commit message will be used as the commit message when your PR is merged. You should
- update this field if your PR diverges during review.
-* Your PR description should have details on what the PR does. If it fixes an existing issue it
- should end with "Fixes #XXX".
-* If your PR is co-authored or based on an earlier PR from another contributor,
- please attribute them with `Co-authored-by: name `. See
- GitHub's [multiple author
- guidance](https://help.github.com/en/github/committing-changes-to-your-project/creating-a-commit-with-multiple-authors)
- for further details.
-* When all tests are passing and all other conditions described herein are satisfied, a maintainer
- will be assigned to review and merge the PR.
-* Once you submit a PR, *please do not rebase it*. It's much easier to review if subsequent commits
- are new commits and/or merges. We squash and merge so the number of commits you have in the PR
- doesn't matter.
-* We expect that once a PR is opened, it will be actively worked on until it is merged or closed.
- We reserve the right to close PRs that are not making progress. This is generally defined as no
- changes for 7 days. Obviously PRs that are closed due to lack of activity can be reopened later.
- Closing stale PRs helps us to keep on top of all the work currently in flight.
-
-## Maintainer PR Review Policy
-
-* See [CODEOWNERS.md](CODEOWNERS.md) for the current list of maintainers.
-* A maintainer representing a different affiliation from the PR owner is required to review and
- approve the PR.
-* When the project matures, it is expected that a "domain expert" for the code the PR touches should
- review the PR. This person does not require commit access, just domain knowledge.
-* The above rules may be waived for PRs which only update docs or comments, or trivial changes to
- tests and tools (where trivial is decided by the maintainer in question).
-* If there is a question on who should review a PR please discuss in Slack.
-* Anyone is welcome to review any PR that they want, whether they are a maintainer or not.
-* Please make sure that the PR title, commit message, and description are updated if the PR changes
- significantly during review.
-* Please **clean up the title and body** before merging. By default, GitHub fills the squash merge
- title with the original title, and the commit body with every individual commit from the PR.
- The maintainer doing the merge should make sure the title follows the guidelines above and should
- overwrite the body with the original commit message from the PR (cleaning it up if necessary)
- while preserving the PR author's final DCO sign-off.
-
-## Decision making
-
-This is a new and complex project, and we need to make a lot of decisions very quickly.
-To this end, we've settled on this process for making (possibly contentious) decisions:
-
-* For decisions that need a record, we create an issue.
-* In that issue, we discuss opinions, then a maintainer can call for a vote in a comment.
-* Maintainers can cast binding votes on that comment by reacting or replying in another comment.
-* Non-maintainer community members are welcome to cast non-binding votes by either of these methods.
-* Voting will be resolved by simple majority.
-* In the event of deadlocks, the question will be put to steering instead.
-
-## DCO: Sign your work
-
-The sign-off is a simple line at the end of the explanation for the
-patch, which certifies that you wrote it or otherwise have the right to
-pass it on as an open-source patch. The rules are pretty simple: if you
-can certify the below (from
-[developercertificate.org](https://developercertificate.org/)):
-
-```
-Developer Certificate of Origin
-Version 1.1
-
-Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
-660 York Street, Suite 102,
-San Francisco, CA 94110 USA
-
-Everyone is permitted to copy and distribute verbatim copies of this
-license document, but changing it is not allowed.
-
-
-Developer's Certificate of Origin 1.1
-
-By making a contribution to this project, I certify that:
-
-(a) The contribution was created in whole or in part by me and I
- have the right to submit it under the open source license
- indicated in the file; or
-
-(b) The contribution is based upon previous work that, to the best
- of my knowledge, is covered under an appropriate open source
- license and I have the right under that license to submit that
- work with modifications, whether created in whole or in part
- by me, under the same open source license (unless I am
- permitted to submit under a different license), as indicated
- in the file; or
-
-(c) The contribution was provided directly to me by some other
- person who certified (a), (b) or (c) and I have not modified
- it.
-
-(d) I understand and agree that this project and the contribution
- are public and that a record of the contribution (including all
- personal information I submit with it, including my sign-off) is
- maintained indefinitely and may be redistributed consistent with
- this project or the open source license(s) involved.
-```
-
-then you just add a line to every git commit message:
-
- Signed-off-by: Joe Smith
-
-using your real name (sorry, no pseudonyms or anonymous contributions.)
-
-You can add the sign-off when creating the git commit via `git commit -s`.
-
-If you want this to be automatic you can set up some aliases:
-
-```bash
-git config --add alias.amend "commit -s --amend"
-git config --add alias.c "commit -s"
-```
-
-## Fixing DCO
-
-If your PR fails the DCO check, it's necessary to fix the entire commit history in the PR. Best
-practice is to [squash](https://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html)
-the commit history to a single commit, append the DCO sign-off as described above, and [force
-push](https://git-scm.com/docs/git-push#git-push---force). For example, if you have 2 commits in
-your history:
-
-```bash
-git rebase -i HEAD^^
-(interactive squash + DCO append)
-git push origin -f
-```
-
-Note, that in general rewriting history in this way is a hindrance to the review process and this
-should only be done to correct a DCO mistake.
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/images/architecture.png b/docs/v0.3.0/images/architecture.png
deleted file mode 100644
index 1d4131fbea77..000000000000
Binary files a/docs/v0.3.0/images/architecture.png and /dev/null differ
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/releases/v0.2.md b/docs/v0.3.0/releases/v0.2.md
deleted file mode 100644
index a0dc0e885de8..000000000000
--- a/docs/v0.3.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.3.0/releases/v0.3.md b/docs/v0.3.0/releases/v0.3.md
deleted file mode 100644
index 96d6d6d49ebe..000000000000
--- a/docs/v0.3.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.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/CODE_OF_CONDUCT.md b/docs/v0.4.0/dev/CODE_OF_CONDUCT.md
deleted file mode 100644
index a0a295770f31..000000000000
--- a/docs/v0.4.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.4.0/dev/GOALS.md b/docs/v0.4.0/dev/GOALS.md
deleted file mode 120000
index f21745923944..000000000000
--- a/docs/v0.4.0/dev/GOALS.md
+++ /dev/null
@@ -1 +0,0 @@
-../../../GOALS.md
\ No newline at end of file
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/images/architecture.png b/docs/v0.4.0/images/architecture.png
deleted file mode 100644
index 1d4131fbea77..000000000000
Binary files a/docs/v0.4.0/images/architecture.png and /dev/null differ
diff --git a/docs/v0.4.0/images/extension-example.png b/docs/v0.4.0/images/extension-example.png
deleted file mode 100644
index a77aec0406b7..000000000000
Binary files a/docs/v0.4.0/images/extension-example.png and /dev/null differ
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/images/architecture.png b/docs/v0.5.0/images/architecture.png
deleted file mode 100644
index 1d4131fbea77..000000000000
Binary files a/docs/v0.5.0/images/architecture.png and /dev/null differ
diff --git a/docs/v0.5.0/images/extension-example.png b/docs/v0.5.0/images/extension-example.png
deleted file mode 100644
index a77aec0406b7..000000000000
Binary files a/docs/v0.5.0/images/extension-example.png and /dev/null differ
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.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/assets/icons/logo.svg b/site/assets/icons/logo.svg
new file mode 100644
index 000000000000..b0e579bd9d4a
--- /dev/null
+++ b/site/assets/icons/logo.svg
@@ -0,0 +1,170 @@
+
+
+
+
\ No newline at end of file
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/_index.md b/site/content/en/_index.md
new file mode 100644
index 000000000000..c7520c0806a3
--- /dev/null
+++ b/site/content/en/_index.md
@@ -0,0 +1,80 @@
+---
+title: Envoy Gateway
+---
+
+{{< blocks/cover title="Welcome to Envoy Gateway!" image_anchor="top" height="full" >}}
+
+ Get Started
+
+
+ Contributing
+
+
Manages Envoy Proxy as a Standalone or Kubernetes-based Application Gateway
+{{< blocks/link-down color="info" >}}
+{{< /blocks/cover >}}
+
+{{% blocks/lead color="black" %}}
+Manage **Envoy Proxy** as a **Standalone** or **Kubernetes-based** Application Gateway.
+
+**Gateway API** are used to **dynamically** provision and configure the managed Envoy Proxies.
+{{% /blocks/lead %}}
+
+{{% blocks/section type="row" color="pink" %}}
+
+{{% blocks/feature icon="fa fa-commenting" title="Expressive API" %}}
+Based on Gateway API, with reasonable default settings to simplify the Envoy user experience, without knowing details of Envoy proxy.
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa fa-battery-full" title="Batteries included" %}}
+Automatically Envoy infrastructure provisioning and management.
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa fa-tree" title="All environments" %}}
+Support for heterogeneous environments. Initially, Kubernetes will receive the most focus.
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa fa-cubes" title="Extensibility" %}}
+Vendors will have the ability to provide value-added products built on the Envoy Gateway foundation.
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa fa-lock" title="Security"%}}
+Supports a variety of Security features, such as TLS, TLS pass-through, secure gRPC, authentication. rate-limiting, etc.
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa fa-bolt" title="High Performance"%}}
+Built on top of the high-performance Envoy proxy, which can handle millions of requests per second.
+{{% /blocks/feature %}}
+
+{{% /blocks/section %}}
+
+{{% blocks/lead color="black" %}}
+Lower barriers to adoption through **Expressive, Extensible, Role-oriented APIs**
+
+Support a multitude of **ingress** and **L7/L4** traffic routing
+
+Common foundation for vendors to build **value-added** products
+
+Without having to **re-engineer**
+fundamental interactions.
+
+{{% /blocks/lead %}}
+
+{{% blocks/section type="row" color="gray" %}}
+
+{{% 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="/latest/contributions/" %}}
+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..43576dcbd0b4
--- /dev/null
+++ b/site/content/en/about/index.md
@@ -0,0 +1,126 @@
+---
+title: About Envoy Gateway
+linkTitle: About
+---
+
+{{% blocks/cover title="About Envoy Gateway" height="auto" %}}
+
+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.
+
+Read on to find out more, or visit our [documentation](/latest/) to get started!
+{{% /blocks/cover %}}
+
+{{% blocks/section color="black" %}}
+
+## Objectives
+
+---
+
+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/section %}}
+
+{{% blocks/section color="pink" %}}
+
+### ***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](https://gateway-api.sigs.k8s.io), 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](https://gateway-api.sigs.k8s.io/).
+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.
+
+{{% /blocks/section %}}
+{{% blocks/section color="black" %}}
+
+## 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.
+
+{{% /blocks/section %}}
+
+{{% blocks/section color="pink" %}}
+
+## Personas
+
+***In order of priority***
+
+---
+
+### 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.
+
+---
+
+### 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.
+
+{{% /blocks/section %}}
diff --git a/site/content/en/blog/_index.md b/site/content/en/blog/_index.md
new file mode 100644
index 000000000000..45f940a58238
--- /dev/null
+++ b/site/content/en/blog/_index.md
@@ -0,0 +1,7 @@
+---
+title: Blog
+---
+
+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..4f7377b80af3
--- /dev/null
+++ b/site/content/en/blog/compatibility/matrix/matrix.md
@@ -0,0 +1,20 @@
+---
+title: Versions
+date: 2022-10-01
+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..9b4de345246c
--- /dev/null
+++ b/site/content/en/blog/news/new-website/new-website.md
@@ -0,0 +1,68 @@
+---
+date: 2023-10-08
+title: Welcome to new website!
+linkTitle: Welcome to new website
+description: >
+ We migrate our docs from Sphinx to Hugo now!
+author: Xunzhuo Liu
+---
+
+{{% alert title="Summary" color="info" %}}
+Migrate from ***Sphinx*** to ***Hugo*** for Envoy Gateway Documents.
+{{% /alert %}}
+
+## Introduction
+
+In the realm of static site generators, two names often come up: Sphinx and Hugo. While both are powerful tools, we recently made the decision to migrate our documentation from Sphinx to Hugo. This article aims to shed light on the reasons behind this move and the advantages we've discovered in using Hugo for static blogging.
+
+## Why Migrate?
+
+Sphinx, originally created for Python documentation, has served us well over the years. It offers a robust and flexible solution for technical documentation. However, as our needs evolved, we found ourselves seeking a tool that could offer faster build times, ease of use, and a more dynamic community. This led us to Hugo.
+
+## Advantages of Hugo
+
++ **Speed**: Hugo is renowned for its speed. It can build a site in a fraction of the time it takes other static site generators. This is a significant advantage when working with large sites or when quick updates are necessary.
+
++ **Ease of Use**: Hugo's simplicity is another strong point. It doesn't require a runtime environment, and its installation process is straightforward. Moreover, Hugo's content management is intuitive, making it easy for non-technical users to create and update content.
+
++ **Flexibility**: Hugo supports a wide range of content types, from blog posts to documentation. It also allows for custom outputs, enabling us to tailor our site to our specific needs.
+
++ **Active Community**: Hugo boasts a vibrant and active community. This means regular updates, a wealth of shared themes and plugins, and a responsive support network.
+
++ **Multilingual Support**: Hugo's built-in support for multiple languages is a boon for global teams. It allows us to create content in various languages without the need for additional plugins or tools.
+
++ **Markdown Support**: Hugo's native support for Markdown makes it easy to write and format content. This is particularly beneficial for technical writing, where code snippets and technical formatting are common.
+
+## Challenges Encountered During the Migration
+
+While the migration from Sphinx to Hugo has brought numerous benefits, it was not without its challenges and it really took me a lot of time on it. Here are some of the difficulties we encountered during the process:
+
++ **Converting RST to Markdown**: Our documentation contained a large number of reStructuredText (RST) files, which needed to be converted to Markdown, the format Hugo uses. This required a careful and meticulous conversion process to ensure no information was lost or incorrectly formatted.
+
++ **Adding Headings to tons of Markdown Files**: Hugo requires headings in its Markdown files, which our old documents did not have. We had to write scripts to add these headings in bulk, a task that required a deep understanding of both our content and Hugo's requirements.
+
++ **Handling Multiple Versions**: Our documentation had already gone through five iterations, resulting in a large number of files to manage. We had to ensure that all versions were correctly migrated and that the versioning system in Hugo was correctly set up.
+
++ **Designing a New Page Structure and Presentation**: To provide a better reading experience, we needed to design a new way to organize and present our pages. This involved understanding our readers' needs and how best to structure our content to meet those needs.
+
++ **Updating Existing Toolchains**: The migration also required us to update our existing toolchains, including Makefile, CI, release processes, and auto-generation tools. This was a complex task that required a deep understanding of both our old and new systems.
+
+Despite these challenges, the benefits of migrating to Hugo have far outweighed the difficulties. The process, while complex, has provided us with a more efficient, user-friendly, and flexible system for managing our static blog. It's a testament to the power of Hugo and the value of continuous improvement in the tech world.
+
+## Conclusion
+
+While Sphinx has its strengths, our migration to Hugo has opened up new possibilities for our static blogging. The speed, ease of use, flexibility, and active community offered by Hugo have made it a powerful tool in our arsenal.
+
+## Some Words
+
+{{% alert title="Author" color="info" %}}
+[Xunzhuo Liu](https://github.com/Xunzhuo), the maintainer and steering committee member of Envoy Gateway.
+{{% /alert %}}
+
+From the inception of my involvement in the project, I have placed great emphasis on user experience, including both developer and end-user experiences. I have built a rich toolchain, automated pipelines, Helm Charts, command-line tools, and documentation to enhance the overall experience of interacting with the project.
+
+My dedication to improving user experience was a driving force behind the decision to migrate from Sphinx to Hugo. I recognized the potential for Hugo to provide a more intuitive and efficient platform for managing the project's static blog. Despite the challenges encountered during the migration, my commitment to enhancing user experience ensured a successful transition.
+
+Through this migration, I have further demonstrated my commitment to continuous improvement and my ability to adapt to the evolving needs of the project. My work serves as a testament to the importance of user experience in software development and the value of embracing new tools and technologies to meet these needs.
+
+Enjoy new Envoy Gateway Website! ❤️
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-cn-2023/kubecon-cn-2023.md b/site/content/en/blog/presentations/kubecon-cn-2023/kubecon-cn-2023.md
new file mode 100644
index 000000000000..c3b8a7523535
--- /dev/null
+++ b/site/content/en/blog/presentations/kubecon-cn-2023/kubecon-cn-2023.md
@@ -0,0 +1,25 @@
+---
+title: "KubeCon China 2023"
+date: 2023-09-28
+---
+
+{{% alert title="Topic: Envoy Gateway: The API Gateway in the Cloud Native Era" color="warning" %}}
+
+***--- KubeCon China 2023***
+
+{{% /alert %}}
+
+{{% alert title="Speaker" color="info" %}}
+
++ **Xunzhuo Liu**: Tencent, Envoy Gateway Maintainer
++ **Huabing Zhao**: Tetrate.io, Envoy Gateway Reviewer
+
+{{% /alert %}}
+
+{{% alert title="Slides" color="primary" %}}
+Download from [Link](https://static.sched.com/hosted_files/kccncosschn2023/60/KubeCon-Envoy%20Gateway_%20The%20API%20Gateway-in-the-Cloud-Native-Era.pptx?_gl=1*1aq9xw*_ga*MTM2MDcyNzI2My4xNjkwODU3ODMy*_ga_XH5XM35VHB*MTY5NjgzNjA1NC4xNS4xLjE2OTY4MzYwNjIuNTIuMC4w).
+{{% /alert %}}
+
+## Watch Videos
+
+*To be uploaded...*
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..3b95d5d1e01b
--- /dev/null
+++ b/site/content/en/blog/presentations/kubecon-eu-2023/kubecon-eu-2023.md
@@ -0,0 +1,24 @@
+---
+title: "KubeCon Europe 2023"
+date: 2023-05-01
+---
+
+{{% alert title="Topic: Envoy Gateway Update" color="warning" %}}
+
+***--- KubeCon Europe 2023***
+
+{{% /alert %}}
+
+{{% alert title="Speaker" color="info" %}}
+
++ **Alice Wasko**: Ambassador Labs, Envoy Gateway Maintainer
+
+{{% /alert %}}
+
+{{% alert title="Slides" color="primary" %}}
+Download from [Link](https://static.sched.com/hosted_files/kccnceu2023/58/Kubecon_EU_2023_Envoy_Gateway_Update.pptx).
+{{% /alert %}}
+
+## Watch Videos
+
+{{< youtube 4vnJxt9sVho >}}
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..fb13084d39d0
--- /dev/null
+++ b/site/content/en/blog/presentations/kubecon-na-2022/kubecon-na-2022.md
@@ -0,0 +1,25 @@
+---
+title: "KubeCon North America 2022"
+date: 2022-10-28
+---
+
+{{% alert title="Topic: Envoy Gateway Update" color="warning" %}}
+
+***--- KubeCon North America 2022***
+
+{{% /alert %}}
+
+{{% alert title="Speaker" color="info" %}}
+
++ **Daneyon Hansen**: Solo.io, Envoy Gateway Maintainer
++ **Alice Wasko**: Ambassador Labs, Envoy Gateway Maintainer
+
+{{% /alert %}}
+
+{{% alert title="Slides" color="primary" %}}
+Download from [Link](https://static.sched.com/hosted_files/envoyconna22/2f/Envoy_Gateway_Project_Update_EnvoyCon_NA_2022.pptx).
+{{% /alert %}}
+
+## Watch Videos
+
+{{< youtube 3MUOZc8XNCc >}}
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..fa3640ba5a9c 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 Announcement"
+---
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/latest/releases/v0.2.md b/site/content/en/blog/releases/v0.2.md
similarity index 95%
rename from docs/latest/releases/v0.2.md
rename to site/content/en/blog/releases/v0.2.md
index a0dc0e885de8..2328a4a4bb5d 100644
--- a/docs/latest/releases/v0.2.md
+++ b/site/content/en/blog/releases/v0.2.md
@@ -1,16 +1,12 @@
---
title: Announcing Envoy Gateway v0.2
-linktitle: v0.2
subtitle: Major Update
+linktitle: Release v0.2
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.5.0/releases/v0.3.md b/site/content/en/blog/releases/v0.3.md
similarity index 94%
rename from docs/v0.5.0/releases/v0.3.md
rename to site/content/en/blog/releases/v0.3.md
index 96d6d6d49ebe..6be5b392a8a8 100644
--- a/docs/v0.5.0/releases/v0.3.md
+++ b/site/content/en/blog/releases/v0.3.md
@@ -1,16 +1,12 @@
---
title: Announcing Envoy Gateway v0.3
-linktitle: v0.3
subtitle: Major Update
+linktitle: Release v0.3
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 95%
rename from docs/v0.4.0/releases/v0.4.md
rename to site/content/en/blog/releases/v0.4.md
index 81a9bc3a0ede..1ad763f35b40 100644
--- a/docs/v0.4.0/releases/v0.4.md
+++ b/site/content/en/blog/releases/v0.4.md
@@ -1,16 +1,12 @@
---
title: Announcing Envoy Gateway v0.4
-linktitle: v0.4
subtitle: Major Update
+linktitle: Release v0.4
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 95%
rename from docs/v0.5.0/releases/v0.5.md
rename to site/content/en/blog/releases/v0.5.md
index 8c7b72cd53b0..1bf1d6ed8c6f 100644
--- a/docs/v0.5.0/releases/v0.5.md
+++ b/site/content/en/blog/releases/v0.5.md
@@ -1,16 +1,12 @@
---
title: Announcing Envoy Gateway v0.5
-linktitle: v0.5
subtitle: Major Update
+linktitle: Release v0.5
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/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/latest/_index.md b/site/content/en/latest/_index.md
new file mode 100644
index 000000000000..8365e0fbdcef
--- /dev/null
+++ b/site/content/en/latest/_index.md
@@ -0,0 +1,21 @@
++++
+title = "Welcome to Envoy Gateway"
+linktitle = "Documentation"
+description = "Envoy Gateway Documents"
+
+[[cascade]]
+type = "docs"
++++
+
+{{% alert title="Note" color="info" %}}
+
+This project is under **active** development. Many features are not complete. We would love for you to [Get Involved](contributions/)!
+
+{{% /alert %}}
+
+Envoy Gateway is an open source project for managing [Envoy Proxy](https://www.envoyproxy.io/) as a standalone or Kubernetes-based application
+gateway. [Gateway API](https://gateway-api.sigs.k8s.io/) resources are used to dynamically provision and configure the managed Envoy Proxies.
+
+![architecture](/img/traffic.png)
+
+## Ready to get started?
diff --git a/site/content/en/latest/api/_index.md b/site/content/en/latest/api/_index.md
new file mode 100644
index 000000000000..396d9ffcefcf
--- /dev/null
+++ b/site/content/en/latest/api/_index.md
@@ -0,0 +1,5 @@
+---
+title: "API"
+description: This section includes APIs of Envoy Gateway.
+weight: 80
+---
diff --git a/docs/latest/api/extension_types.md b/site/content/en/latest/api/extension_types.md
similarity index 95%
rename from docs/latest/api/extension_types.md
rename to site/content/en/latest/api/extension_types.md
index 2f47c3f89f83..73bff134936c 100644
--- a/docs/latest/api/extension_types.md
+++ b/site/content/en/latest/api/extension_types.md
@@ -1,4 +1,7 @@
-# API Reference
++++
+title = "API Reference"
++++
+
## Packages
- [gateway.envoyproxy.io/v1alpha1](#gatewayenvoyproxyiov1alpha1)
@@ -22,7 +25,7 @@ API group.
-## AuthenticationFilter
+#### AuthenticationFilter
@@ -38,7 +41,7 @@ API group.
| `spec` _[AuthenticationFilterSpec](#authenticationfilterspec)_ | Spec defines the desired state of the AuthenticationFilter type. |
-## AuthenticationFilterSpec
+#### AuthenticationFilterSpec
@@ -53,7 +56,7 @@ _Appears in:_
| `jwtProviders` _[JwtAuthenticationFilterProvider](#jwtauthenticationfilterprovider) array_ | JWT defines the JSON Web Token (JWT) authentication provider type. When multiple jwtProviders are specified, the JWT is considered valid if any of the providers successfully validate the JWT. For additional details, see https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/jwt_authn_filter.html. |
-## AuthenticationFilterType
+#### AuthenticationFilterType
_Underlying type:_ `string`
@@ -64,7 +67,7 @@ _Appears in:_
-## BootstrapType
+#### BootstrapType
_Underlying type:_ `string`
@@ -75,7 +78,7 @@ _Appears in:_
-## ClaimToHeader
+#### ClaimToHeader
@@ -90,7 +93,7 @@ _Appears in:_
| `claim` _string_ | Claim is the JWT Claim that should be saved into the header : it can be a nested claim of type (eg. "claim.nested.key", "sub"). The nested claim name must use dot "." to separate the JSON name path. |
-## ClientTrafficPolicy
+#### ClientTrafficPolicy
@@ -107,7 +110,7 @@ _Appears in:_
| `spec` _[ClientTrafficPolicySpec](#clienttrafficpolicyspec)_ | Spec defines the desired state of ClientTrafficPolicy. |
-## ClientTrafficPolicyList
+#### ClientTrafficPolicyList
@@ -123,7 +126,7 @@ ClientTrafficPolicyList contains a list of ClientTrafficPolicy resources.
| `items` _[ClientTrafficPolicy](#clienttrafficpolicy) array_ | |
-## ClientTrafficPolicySpec
+#### ClientTrafficPolicySpec
@@ -140,7 +143,7 @@ _Appears in:_
-## CustomTag
+#### CustomTag
@@ -157,7 +160,7 @@ _Appears in:_
| `requestHeader` _[RequestHeaderCustomTag](#requestheadercustomtag)_ | RequestHeader adds value from request header to each span. It's required when the type is "RequestHeader". |
-## CustomTagType
+#### CustomTagType
_Underlying type:_ `string`
@@ -168,7 +171,7 @@ _Appears in:_
-## EnvironmentCustomTag
+#### EnvironmentCustomTag
@@ -183,7 +186,7 @@ _Appears in:_
| `defaultValue` _string_ | DefaultValue defines the default value to use if the environment variable is not set. |
-## EnvoyGateway
+#### EnvoyGateway
@@ -204,7 +207,7 @@ EnvoyGateway is the schema for the envoygateways API.
| `extensionApis` _[ExtensionAPISettings](#extensionapisettings)_ | ExtensionAPIs defines the settings related to specific Gateway API Extensions implemented by Envoy Gateway |
-## EnvoyGatewayAdmin
+#### EnvoyGatewayAdmin
@@ -220,7 +223,7 @@ _Appears in:_
| `debug` _boolean_ | Debug defines if enable the /debug endpoint of Envoy Gateway. |
-## EnvoyGatewayAdminAddress
+#### EnvoyGatewayAdminAddress
@@ -235,7 +238,7 @@ _Appears in:_
| `host` _string_ | Host defines the admin server hostname. |
-## EnvoyGatewayCustomProvider
+#### EnvoyGatewayCustomProvider
@@ -250,7 +253,7 @@ _Appears in:_
| `infrastructure` _[EnvoyGatewayInfrastructureProvider](#envoygatewayinfrastructureprovider)_ | Infrastructure defines the desired infrastructure provider. This provider is used to specify the provider to be used to provide an environment to deploy the out resources like the Envoy Proxy data plane. |
-## EnvoyGatewayFileResourceProvider
+#### EnvoyGatewayFileResourceProvider
@@ -264,7 +267,7 @@ _Appears in:_
| `paths` _string array_ | Paths are the paths to a directory or file containing the resource configuration. Recursive sub directories are not currently supported. |
-## EnvoyGatewayHostInfrastructureProvider
+#### EnvoyGatewayHostInfrastructureProvider
@@ -275,7 +278,7 @@ _Appears in:_
-## EnvoyGatewayInfrastructureProvider
+#### EnvoyGatewayInfrastructureProvider
@@ -290,7 +293,7 @@ _Appears in:_
| `host` _[EnvoyGatewayHostInfrastructureProvider](#envoygatewayhostinfrastructureprovider)_ | Host defines the configuration of the Host provider. Host provides runtime deployment of the data plane as a child process on the host environment. |
-## EnvoyGatewayKubernetesProvider
+#### EnvoyGatewayKubernetesProvider
@@ -307,7 +310,7 @@ _Appears in:_
| `overwrite_control_plane_certs` _boolean_ | OverwriteControlPlaneCerts updates the secrets containing the control plane certs, when set. |
-## EnvoyGatewayLogComponent
+#### EnvoyGatewayLogComponent
_Underlying type:_ `string`
@@ -318,7 +321,7 @@ _Appears in:_
-## EnvoyGatewayLogging
+#### EnvoyGatewayLogging
@@ -333,7 +336,7 @@ _Appears in:_
| `level` _object (keys:[EnvoyGatewayLogComponent](#envoygatewaylogcomponent), values:[LogLevel](#loglevel))_ | Level is the logging level. If unspecified, defaults to "info". EnvoyGatewayLogComponent options: default/provider/gateway-api/xds-translator/xds-server/infrastructure/global-ratelimit. LogLevel options: debug/info/error/warn. |
-## EnvoyGatewayProvider
+#### EnvoyGatewayProvider
@@ -350,7 +353,7 @@ _Appears in:_
| `custom` _[EnvoyGatewayCustomProvider](#envoygatewaycustomprovider)_ | Custom defines the configuration for the Custom provider. This provider allows you to define a specific resource provider and a infrastructure provider. |
-## EnvoyGatewayResourceProvider
+#### EnvoyGatewayResourceProvider
@@ -365,7 +368,7 @@ _Appears in:_
| `file` _[EnvoyGatewayFileResourceProvider](#envoygatewayfileresourceprovider)_ | File defines the configuration of the File provider. File provides runtime configuration defined by one or more files. |
-## EnvoyGatewaySpec
+#### EnvoyGatewaySpec
@@ -385,7 +388,7 @@ _Appears in:_
| `extensionApis` _[ExtensionAPISettings](#extensionapisettings)_ | ExtensionAPIs defines the settings related to specific Gateway API Extensions implemented by Envoy Gateway |
-## EnvoyJSONPatchConfig
+#### EnvoyJSONPatchConfig
@@ -401,7 +404,7 @@ _Appears in:_
| `operation` _[JSONPatchOperation](#jsonpatchoperation)_ | Patch defines the JSON Patch Operation |
-## EnvoyPatchPolicy
+#### EnvoyPatchPolicy
@@ -418,7 +421,7 @@ _Appears in:_
| `spec` _[EnvoyPatchPolicySpec](#envoypatchpolicyspec)_ | Spec defines the desired state of EnvoyPatchPolicy. |
-## EnvoyPatchPolicyList
+#### EnvoyPatchPolicyList
@@ -434,7 +437,7 @@ EnvoyPatchPolicyList contains a list of EnvoyPatchPolicy resources.
| `items` _[EnvoyPatchPolicy](#envoypatchpolicy) array_ | |
-## EnvoyPatchPolicySpec
+#### EnvoyPatchPolicySpec
@@ -453,7 +456,7 @@ _Appears in:_
-## EnvoyPatchType
+#### EnvoyPatchType
_Underlying type:_ `string`
@@ -464,7 +467,7 @@ _Appears in:_
-## EnvoyProxy
+#### EnvoyProxy
@@ -480,7 +483,7 @@ EnvoyProxy is the schema for the envoyproxies API.
| `spec` _[EnvoyProxySpec](#envoyproxyspec)_ | EnvoyProxySpec defines the desired state of EnvoyProxy. |
-## EnvoyProxyKubernetesProvider
+#### EnvoyProxyKubernetesProvider
@@ -495,7 +498,7 @@ _Appears in:_
| `envoyService` _[KubernetesServiceSpec](#kubernetesservicespec)_ | EnvoyService defines the desired state of the Envoy service resource. If unspecified, default settings for the managed Envoy service resource are applied. |
-## EnvoyProxyProvider
+#### EnvoyProxyProvider
@@ -510,7 +513,7 @@ _Appears in:_
| `kubernetes` _[EnvoyProxyKubernetesProvider](#envoyproxykubernetesprovider)_ | Kubernetes defines the desired state of the Kubernetes resource provider. Kubernetes provides infrastructure resources for running the data plane, e.g. Envoy proxy. If unspecified and type is "Kubernetes", default settings for managed Kubernetes resources are applied. |
-## EnvoyProxySpec
+#### EnvoyProxySpec
@@ -531,7 +534,7 @@ _Appears in:_
-## EnvoyResourceType
+#### EnvoyResourceType
_Underlying type:_ `string`
@@ -542,7 +545,7 @@ _Appears in:_
-## ExtensionAPISettings
+#### ExtensionAPISettings
@@ -557,7 +560,7 @@ _Appears in:_
| `enableEnvoyPatchPolicy` _boolean_ | EnableEnvoyPatchPolicy enables Envoy Gateway to reconcile and implement the EnvoyPatchPolicy resources. |
-## ExtensionHooks
+#### ExtensionHooks
@@ -571,7 +574,7 @@ _Appears in:_
| `xdsTranslator` _[XDSTranslatorHooks](#xdstranslatorhooks)_ | XDSTranslator defines all the supported extension hooks for the xds-translator runner |
-## ExtensionManager
+#### ExtensionManager
@@ -588,7 +591,7 @@ _Appears in:_
| `service` _[ExtensionService](#extensionservice)_ | Service defines the configuration of the extension service that the Envoy Gateway Control Plane will call through extension hooks. |
-## ExtensionService
+#### ExtensionService
@@ -604,7 +607,7 @@ _Appears in:_
| `tls` _[ExtensionTLS](#extensiontls)_ | TLS defines TLS configuration for communication between Envoy Gateway and the extension service. |
-## ExtensionTLS
+#### ExtensionTLS
@@ -619,7 +622,7 @@ _Appears in:_
CertificateRef can only reference a Kubernetes Secret at this time. |
-## FileEnvoyProxyAccessLog
+#### FileEnvoyProxyAccessLog
@@ -633,7 +636,7 @@ _Appears in:_
| `path` _string_ | Path defines the file path used to expose envoy access log(e.g. /dev/stdout). |
-## Gateway
+#### Gateway
@@ -648,7 +651,7 @@ _Appears in:_
| `controllerName` _string_ | ControllerName defines the name of the Gateway API controller. If unspecified, defaults to "gateway.envoyproxy.io/gatewayclass-controller". See the following for additional details: https://gateway-api.sigs.k8s.io/v1alpha2/references/spec/#gateway.networking.k8s.io/v1alpha2.GatewayClass |
-## GlobalRateLimit
+#### GlobalRateLimit
@@ -662,7 +665,7 @@ _Appears in:_
| `rules` _[RateLimitRule](#ratelimitrule) array_ | Rules are a list of RateLimit selectors and limits. Each rule and its associated limit is applied in a mutually exclusive way i.e. if multiple rules get selected, each of their associated limits get applied, so a single traffic request might increase the rate limit counters for multiple rules if selected. |
-## GroupVersionKind
+#### GroupVersionKind
@@ -678,7 +681,7 @@ _Appears in:_
| `kind` _string_ | |
-## HeaderMatch
+#### HeaderMatch
@@ -694,7 +697,7 @@ _Appears in:_
| `value` _string_ | Value within the HTTP header. Due to the case-insensitivity of header names, "foo" and "Foo" are considered equivalent. Do not set this field when Type="Distinct", implying matching on any/all unique values within the header. |
-## HeaderMatchType
+#### HeaderMatchType
_Underlying type:_ `string`
@@ -705,7 +708,7 @@ _Appears in:_
-## InfrastructureProviderType
+#### InfrastructureProviderType
_Underlying type:_ `string`
@@ -716,7 +719,7 @@ _Appears in:_
-## JSONPatchOperation
+#### JSONPatchOperation
@@ -732,7 +735,7 @@ _Appears in:_
| `value` _[JSON](#json)_ | Value is the new value of the path location. |
-## JSONPatchOperationType
+#### JSONPatchOperationType
_Underlying type:_ `string`
@@ -743,7 +746,7 @@ _Appears in:_
-## JwtAuthenticationFilterProvider
+#### JwtAuthenticationFilterProvider
@@ -761,7 +764,7 @@ _Appears in:_
| `claimToHeaders` _[ClaimToHeader](#claimtoheader) array_ | ClaimToHeaders is a list of JWT claims that must be extracted into HTTP request headers For examples, following config: The claim must be of type; string, int, double, bool. Array type claims are not supported |
-## KubernetesContainerSpec
+#### KubernetesContainerSpec
@@ -779,7 +782,7 @@ _Appears in:_
| `volumeMounts` _[VolumeMount](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#volumemount-v1-core) array_ | VolumeMounts are volumes to mount into the container's filesystem. Cannot be updated. |
-## KubernetesDeployMode
+#### KubernetesDeployMode
@@ -790,7 +793,7 @@ _Appears in:_
-## KubernetesDeploymentSpec
+#### KubernetesDeploymentSpec
@@ -808,7 +811,7 @@ _Appears in:_
| `container` _[KubernetesContainerSpec](#kubernetescontainerspec)_ | Container defines the resources and securityContext of container. |
-## KubernetesPodSpec
+#### KubernetesPodSpec
@@ -827,7 +830,7 @@ _Appears in:_
| `volumes` _[Volume](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#volume-v1-core) array_ | Volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes |
-## KubernetesServiceSpec
+#### KubernetesServiceSpec
@@ -844,7 +847,7 @@ _Appears in:_
| `allocateLoadBalancerNodePorts` _boolean_ | AllocateLoadBalancerNodePorts defines if NodePorts will be automatically allocated for services with type LoadBalancer. Default is "true". It may be set to "false" if the cluster load-balancer does not rely on NodePorts. If the caller requests specific NodePorts (by specifying a value), those requests will be respected, regardless of this field. This field may only be set for services with type LoadBalancer and will be cleared if the type is changed to any other type. |
-## KubernetesWatchMode
+#### KubernetesWatchMode
@@ -860,7 +863,7 @@ _Appears in:_
| `namespaces` _string array_ | NamespaceSelectors holds a list of labels that namespaces have to have in order to be watched. Note this doesn't set the informer to watch the namespaces with the given labels. Informer still watches all namespaces. But the events for objects whois namespce have no given labels will be filtered out. Precisely one of Namespaces and NamespaceSelectors must be set |
-## KubernetesWatchModeType
+#### KubernetesWatchModeType
_Underlying type:_ `string`
@@ -871,7 +874,7 @@ _Appears in:_
-## LiteralCustomTag
+#### LiteralCustomTag
@@ -885,7 +888,7 @@ _Appears in:_
| `value` _string_ | Value defines the hard-coded value to add to each span. |
-## LogComponent
+#### LogComponent
_Underlying type:_ `string`
@@ -896,7 +899,7 @@ _Appears in:_
-## LogLevel
+#### LogLevel
_Underlying type:_ `string`
@@ -908,7 +911,7 @@ _Appears in:_
-## Match
+#### Match
@@ -923,7 +926,7 @@ _Appears in:_
| `value` _string_ | |
-## MatcherType
+#### MatcherType
_Underlying type:_ `string`
@@ -934,7 +937,7 @@ _Appears in:_
-## MetricSink
+#### MetricSink
@@ -949,7 +952,7 @@ _Appears in:_
| `openTelemetry` _[OpenTelemetrySink](#opentelemetrysink)_ | OpenTelemetry defines the configuration for OpenTelemetry sink. It's required if the sink type is OpenTelemetry. |
-## MetricSinkType
+#### MetricSinkType
_Underlying type:_ `string`
@@ -960,7 +963,7 @@ _Appears in:_
-## OpenTelemetryEnvoyProxyAccessLog
+#### OpenTelemetryEnvoyProxyAccessLog
@@ -976,7 +979,7 @@ _Appears in:_
| `resources` _object (keys:string, values:string)_ | Resources is a set of labels that describe the source of a log entry, including envoy node info. It's recommended to follow [semantic conventions](https://opentelemetry.io/docs/reference/specification/resource/semantic_conventions/). |
-## OpenTelemetrySink
+#### OpenTelemetrySink
@@ -991,7 +994,7 @@ _Appears in:_
| `port` _integer_ | Port defines the port the service is exposed on. |
-## PrometheusProvider
+#### PrometheusProvider
@@ -1002,7 +1005,7 @@ _Appears in:_
-## ProviderType
+#### ProviderType
_Underlying type:_ `string`
@@ -1014,7 +1017,7 @@ _Appears in:_
-## ProxyAccessLog
+#### ProxyAccessLog
@@ -1029,7 +1032,7 @@ _Appears in:_
| `settings` _[ProxyAccessLogSetting](#proxyaccesslogsetting) array_ | Settings defines accesslog settings for managed proxies. If unspecified, will send default format to stdout. |
-## ProxyAccessLogFormat
+#### ProxyAccessLogFormat
@@ -1045,7 +1048,7 @@ _Appears in:_
| `json` _object (keys:string, values:string)_ | JSON is additional attributes that describe the specific event occurrence. Structured format for the envoy access logs. Envoy [command operators](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators) can be used as values for fields within the Struct. It's required when the format type is "JSON". |
-## ProxyAccessLogFormatType
+#### ProxyAccessLogFormatType
_Underlying type:_ `string`
@@ -1056,7 +1059,7 @@ _Appears in:_
-## ProxyAccessLogSetting
+#### ProxyAccessLogSetting
@@ -1071,7 +1074,7 @@ _Appears in:_
| `sinks` _[ProxyAccessLogSink](#proxyaccesslogsink) array_ | Sinks defines the sinks of accesslog. |
-## ProxyAccessLogSink
+#### ProxyAccessLogSink
@@ -1087,7 +1090,7 @@ _Appears in:_
| `openTelemetry` _[OpenTelemetryEnvoyProxyAccessLog](#opentelemetryenvoyproxyaccesslog)_ | OpenTelemetry defines the OpenTelemetry accesslog sink. |
-## ProxyAccessLogSinkType
+#### ProxyAccessLogSinkType
_Underlying type:_ `string`
@@ -1098,7 +1101,7 @@ _Appears in:_
-## ProxyBootstrap
+#### ProxyBootstrap
@@ -1113,7 +1116,7 @@ _Appears in:_
| `value` _string_ | Value is a YAML string of the bootstrap. |
-## ProxyLogging
+#### ProxyLogging
@@ -1127,7 +1130,7 @@ _Appears in:_
| `level` _object (keys:[LogComponent](#logcomponent), values:[LogLevel](#loglevel))_ | Level is a map of logging level per component, where the component is the key and the log level is the value. If unspecified, defaults to "default: warn". |
-## ProxyMetrics
+#### ProxyMetrics
@@ -1144,7 +1147,7 @@ _Appears in:_
| `enableVirtualHostStats` _boolean_ | EnableVirtualHostStats enables envoy stat metrics for virtual hosts. |
-## ProxyTelemetry
+#### ProxyTelemetry
@@ -1160,7 +1163,7 @@ _Appears in:_
| `metrics` _[ProxyMetrics](#proxymetrics)_ | Metrics defines metrics configuration for managed proxies. |
-## ProxyTracing
+#### ProxyTracing
@@ -1176,7 +1179,7 @@ _Appears in:_
| `provider` _[TracingProvider](#tracingprovider)_ | Provider defines the tracing provider. Only OpenTelemetry is supported currently. |
-## RateLimit
+#### RateLimit
@@ -1193,7 +1196,7 @@ _Appears in:_
| `failClosed` _boolean_ | FailClosed is a switch used to control the flow of traffic when the response from the ratelimit server cannot be obtained. If FailClosed is false, let the traffic pass, otherwise, don't let the traffic pass and return 500. If not set, FailClosed is False. |
-## RateLimitDatabaseBackend
+#### RateLimitDatabaseBackend
@@ -1208,7 +1211,7 @@ _Appears in:_
| `redis` _[RateLimitRedisSettings](#ratelimitredissettings)_ | Redis defines the settings needed to connect to a Redis database. |
-## RateLimitDatabaseBackendType
+#### RateLimitDatabaseBackendType
_Underlying type:_ `string`
@@ -1219,7 +1222,7 @@ _Appears in:_
-## RateLimitFilter
+#### RateLimitFilter
@@ -1235,7 +1238,7 @@ RateLimitFilter allows the user to limit the number of incoming requests to a pr
| `spec` _[RateLimitFilterSpec](#ratelimitfilterspec)_ | Spec defines the desired state of RateLimitFilter. |
-## RateLimitFilterSpec
+#### RateLimitFilterSpec
@@ -1250,7 +1253,7 @@ _Appears in:_
| `global` _[GlobalRateLimit](#globalratelimit)_ | Global defines global rate limit configuration. |
-## RateLimitRedisSettings
+#### RateLimitRedisSettings
@@ -1265,7 +1268,7 @@ _Appears in:_
| `tls` _[RedisTLSSettings](#redistlssettings)_ | TLS defines TLS configuration for connecting to redis database. |
-## RateLimitRule
+#### RateLimitRule
@@ -1280,7 +1283,7 @@ _Appears in:_
| `limit` _[RateLimitValue](#ratelimitvalue)_ | Limit holds the rate limit values. This limit is applied for traffic flows when the selectors compute to True, causing the request to be counted towards the limit. The limit is enforced and the request is ratelimited, i.e. a response with 429 HTTP status code is sent back to the client when the selected requests have reached the limit. |
-## RateLimitSelectCondition
+#### RateLimitSelectCondition
@@ -1295,7 +1298,7 @@ _Appears in:_
| `sourceCIDR` _[SourceMatch](#sourcematch)_ | SourceCIDR is the client IP Address range to match on. |
-## RateLimitType
+#### RateLimitType
_Underlying type:_ `string`
@@ -1306,7 +1309,7 @@ _Appears in:_
-## RateLimitUnit
+#### RateLimitUnit
_Underlying type:_ `string`
@@ -1317,7 +1320,7 @@ _Appears in:_
-## RateLimitValue
+#### RateLimitValue
@@ -1332,7 +1335,7 @@ _Appears in:_
| `unit` _[RateLimitUnit](#ratelimitunit)_ | |
-## RedisTLSSettings
+#### RedisTLSSettings
@@ -1346,7 +1349,7 @@ _Appears in:_
| `certificateRef` _[SecretObjectReference](https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io/v1beta1.SecretObjectReference)_ | CertificateRef defines the client certificate reference for TLS connections. Currently only a Kubernetes Secret of type TLS is supported. |
-## RemoteJWKS
+#### RemoteJWKS
@@ -1360,7 +1363,7 @@ _Appears in:_
| `uri` _string_ | URI is the HTTPS URI to fetch the JWKS. Envoy's system trust bundle is used to validate the server certificate. |
-## RequestHeaderCustomTag
+#### RequestHeaderCustomTag
@@ -1375,7 +1378,7 @@ _Appears in:_
| `defaultValue` _string_ | DefaultValue defines the default value to use if the request header is not set. |
-## ResourceProviderType
+#### ResourceProviderType
_Underlying type:_ `string`
@@ -1386,7 +1389,7 @@ _Appears in:_
-## ServiceType
+#### ServiceType
_Underlying type:_ `string`
@@ -1397,7 +1400,7 @@ _Appears in:_
-## SourceMatch
+#### SourceMatch
@@ -1412,7 +1415,7 @@ _Appears in:_
| `value` _string_ | Value is the IP CIDR that represents the range of Source IP Addresses of the client. These could also be the intermediate addresses through which the request has flown through and is part of the `X-Forwarded-For` header. For example, `192.168.0.1/32`, `192.168.0.0/24`, `001:db8::/64`. |
-## SourceMatchType
+#### SourceMatchType
_Underlying type:_ `string`
@@ -1423,7 +1426,7 @@ _Appears in:_
-## TCPKeepalive
+#### TCPKeepalive
@@ -1439,7 +1442,7 @@ _Appears in:_
| `interval` _Duration_ | The duration between keep-alive probes. Defaults to `75s`. |
-## TracingProvider
+#### TracingProvider
@@ -1455,7 +1458,7 @@ _Appears in:_
| `port` _integer_ | Port defines the port the provider service is exposed on. |
-## TracingProviderType
+#### TracingProviderType
_Underlying type:_ `string`
@@ -1466,7 +1469,7 @@ _Appears in:_
-## XDSTranslatorHook
+#### XDSTranslatorHook
_Underlying type:_ `string`
@@ -1477,7 +1480,7 @@ _Appears in:_
-## XDSTranslatorHooks
+#### XDSTranslatorHooks
diff --git a/docs/latest/dev/CODEOWNERS.md b/site/content/en/latest/contributions/CODEOWNERS.md
similarity index 68%
rename from docs/latest/dev/CODEOWNERS.md
rename to site/content/en/latest/contributions/CODEOWNERS.md
index 7168ff935d2b..63b751abde50 100644
--- a/docs/latest/dev/CODEOWNERS.md
+++ b/site/content/en/latest/contributions/CODEOWNERS.md
@@ -1,4 +1,7 @@
-# Maintainers
+---
+title: "Maintainers"
+description: "This section includes Maintainers of Envoy Gateway."
+---
## The following maintainers, listed in alphabetical order, own everything
diff --git a/site/content/en/latest/contributions/CODE_OF_CONDUCT.md b/site/content/en/latest/contributions/CODE_OF_CONDUCT.md
new file mode 100644
index 000000000000..e19da050dff8
--- /dev/null
+++ b/site/content/en/latest/contributions/CODE_OF_CONDUCT.md
@@ -0,0 +1,6 @@
+---
+title: "Code of Conduct"
+description: "This section includes Code of Conduct of Envoy Gateway."
+---
+
+Envoy 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/latest/contributions/CONTRIBUTING.md
similarity index 96%
rename from docs/v0.5.0/dev/CONTRIBUTING.md
rename to site/content/en/latest/contributions/CONTRIBUTING.md
index 04d95bb675d9..f94b2c940e97 100644
--- a/docs/v0.5.0/dev/CONTRIBUTING.md
+++ b/site/content/en/latest/contributions/CONTRIBUTING.md
@@ -1,6 +1,10 @@
-# Contributing
+---
+title: "Contributing"
+description: "This section tells how to contribute to Envoy Gateway."
+weight: 3
+---
-We welcome contributions from the community. Please carefully review the [project goals](GOALS.md)
+We welcome contributions from the community. Please carefully review the [project goals](/about)
and following guidelines to streamline your contributions.
## Communication
@@ -10,7 +14,7 @@ and following guidelines to streamline your contributions.
* A "major feature" is defined as any change that is > 100 LOC altered (not including tests), or
changes any user-facing behavior. We will use the GitHub issue to discuss the feature and come to
agreement. This is to prevent your time being wasted, as well as ours. The GitHub review process
- for major features is also important so that [affiliations with commit access](CODEOWNERS.md) can
+ for major features is also important so that [affiliations with commit access](../codeowners) can
come to agreement on the design. If it's appropriate to write a design document, the document must
be hosted either in the GitHub issue, or linked to from the issue and hosted in a world-readable
location.
@@ -44,8 +48,8 @@ to the following guidelines for all code, APIs, and documentation:
* PRs are expected to have 100% test coverage for added code. This can be verified with a coverage
build. If your PR cannot have 100% coverage for some reason please clearly explain why when you
open it.
-* Any PR that changes user-facing behavior **must** have associated documentation in the [docs](https://github.com/envoyproxy/gateway/tree/main/docs) folder of the repo as
- well as the [changelog](../releases).
+* Any PR that changes user-facing behavior **must** have associated documentation in the [docs](https://github.com/envoyproxy/gateway/tree/main/site) folder of the repo as
+ well as the [changelog](/blog/releases).
* All code comments and documentation are expected to have proper English grammar and punctuation.
If you are not a fluent English speaker (or a bad writer ;-)) please let us know and we will try
to find some help but there are no guarantees.
@@ -77,7 +81,7 @@ to the following guidelines for all code, APIs, and documentation:
## Maintainer PR Review Policy
-* See [CODEOWNERS.md](CODEOWNERS.md) for the current list of maintainers.
+* See [CODEOWNERS.md](../codeowners) for the current list of maintainers.
* A maintainer representing a different affiliation from the PR owner is required to review and
approve the PR.
* When the project matures, it is expected that a "domain expert" for the code the PR touches should
diff --git a/docs/v0.5.0/dev/README.md b/site/content/en/latest/contributions/DEVELOP.md
similarity index 98%
rename from docs/v0.5.0/dev/README.md
rename to site/content/en/latest/contributions/DEVELOP.md
index cf25992e5b3b..6f82c4a411f5 100644
--- a/docs/v0.5.0/dev/README.md
+++ b/site/content/en/latest/contributions/DEVELOP.md
@@ -1,4 +1,8 @@
-# Developer Guide
+---
+title: "Developer Guide"
+description: "This section tells how to develop Envoy Gateway."
+weight: 2
+---
Envoy Gateway is built using a [make][]-based build system. Our CI is based on [Github Actions][] using [workflows][].
diff --git a/docs/v0.3.0/dev/DOCS.md b/site/content/en/latest/contributions/DOCS.md
similarity index 95%
rename from docs/v0.3.0/dev/DOCS.md
rename to site/content/en/latest/contributions/DOCS.md
index fb49b9d55dda..8266c9e9a2bf 100644
--- a/docs/v0.3.0/dev/DOCS.md
+++ b/site/content/en/latest/contributions/DOCS.md
@@ -1,4 +1,8 @@
-# Working on the Envoy Gateway Docs
+---
+title: "Working on Envoy Gateway Docs"
+description: "This section tells the development of
+ Envoy Gateway Documents."
+---
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.5.0/dev/releasing.md b/site/content/en/latest/contributions/RELEASING.md
similarity index 98%
rename from docs/v0.5.0/dev/releasing.md
rename to site/content/en/latest/contributions/RELEASING.md
index 81625698cfa8..013707d45694 100644
--- a/docs/v0.5.0/dev/releasing.md
+++ b/site/content/en/latest/contributions/RELEASING.md
@@ -1,4 +1,7 @@
-# Release Process
+---
+title: "Release Process"
+description: "This section tells the release process of Envoy Gateway."
+---
This document guides maintainers through the process of creating an Envoy Gateway release.
diff --git a/site/content/en/latest/contributions/_index.md b/site/content/en/latest/contributions/_index.md
new file mode 100644
index 000000000000..3255d996472a
--- /dev/null
+++ b/site/content/en/latest/contributions/_index.md
@@ -0,0 +1,5 @@
+---
+title: Get Involved
+description: "This section includes contents related to **Contributions**"
+weight: 100
+---
diff --git a/site/content/en/latest/design/_index.md b/site/content/en/latest/design/_index.md
new file mode 100644
index 000000000000..2820db4c2160
--- /dev/null
+++ b/site/content/en/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/latest/design/accesslog.md
similarity index 99%
rename from docs/latest/design/accesslog.md
rename to site/content/en/latest/design/accesslog.md
index 16882cd4d5a7..cb72f05fe43d 100644
--- a/docs/latest/design/accesslog.md
+++ b/site/content/en/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/latest/design/bootstrap.md
similarity index 99%
rename from docs/latest/design/bootstrap.md
rename to site/content/en/latest/design/bootstrap.md
index 74340aac7a0e..4475710ad5d0 100644
--- a/docs/latest/design/bootstrap.md
+++ b/site/content/en/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/latest/design/client-traffic-policy.md
similarity index 98%
rename from docs/latest/design/client-traffic-policy.md
rename to site/content/en/latest/design/client-traffic-policy.md
index f4bc5c213eee..65edd4130c45 100644
--- a/docs/latest/design/client-traffic-policy.md
+++ b/site/content/en/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/latest/design/config-api.md
similarity index 99%
rename from docs/latest/design/config-api.md
rename to site/content/en/latest/design/config-api.md
index 5af6150346c1..49e997caeca8 100644
--- a/docs/latest/design/config-api.md
+++ b/site/content/en/latest/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/latest/design/egctl.md
similarity index 98%
rename from docs/latest/design/egctl.md
rename to site/content/en/latest/design/egctl.md
index 7989ff49e5e2..0f67d99f1005 100644
--- a/docs/latest/design/egctl.md
+++ b/site/content/en/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/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/latest/design/envoy-patch-policy.md
index 0116c8e6336b..d34937d05ef1 100644
--- a/docs/v0.5.0/design/envoy-patch-policy.md
+++ b/site/content/en/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/latest/design/extending-envoy-gateway.md
similarity index 99%
rename from docs/latest/design/extending-envoy-gateway.md
rename to site/content/en/latest/design/extending-envoy-gateway.md
index e29f8ff2aa33..d4f36cc7a4a1 100644
--- a/docs/latest/design/extending-envoy-gateway.md
+++ b/site/content/en/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
@@ -39,7 +41,7 @@ they create as a direct result of their modification of Envoy Gateway.
## Diagram
-![Architecture](../images/extension-example.png)
+![Architecture](/img/extension-example.png)
## Registering Extensions in Envoy Gateway
diff --git a/docs/latest/design/gatewayapi-translator.md b/site/content/en/latest/design/gatewayapi-translator.md
similarity index 99%
rename from docs/latest/design/gatewayapi-translator.md
rename to site/content/en/latest/design/gatewayapi-translator.md
index 3cf0da94f5aa..b83ed82588d9 100644
--- a/docs/latest/design/gatewayapi-translator.md
+++ b/site/content/en/latest/design/gatewayapi-translator.md
@@ -1,4 +1,7 @@
-# Gateway API Translator Design
+---
+title: "Gateway API Translator Design"
+weight: 4
+---
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/dev/GOALS.md b/site/content/en/latest/design/goals.md
similarity index 99%
rename from docs/v0.5.0/dev/GOALS.md
rename to site/content/en/latest/design/goals.md
index 519be9f180fe..fd38b2004c61 100644
--- a/docs/v0.5.0/dev/GOALS.md
+++ b/site/content/en/latest/design/goals.md
@@ -1,4 +1,7 @@
-# Goals
+---
+title: "Goals"
+weight: 1
+---
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
@@ -8,6 +11,7 @@ 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
@@ -23,6 +27,7 @@ This expressive API will not be implemented by Envoy Proxy, but rather an offici
on top.
### Batteries included
+
Envoy Gateway will simplify how Envoy is deployed and managed, allowing application developers to focus on
delivering core business value.
@@ -37,6 +42,7 @@ will enjoy a simplified management model that doesn't require extensive knowledg
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
@@ -44,6 +50,7 @@ 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
@@ -57,21 +64,26 @@ 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.
diff --git a/docs/v0.5.0/design/local-envoy-gateway.md b/site/content/en/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/latest/design/local-envoy-gateway.md
index d382b8cfff82..aad0dc5f6f27 100644
--- a/docs/v0.5.0/design/local-envoy-gateway.md
+++ b/site/content/en/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/latest/design/metrics.md
similarity index 98%
rename from docs/latest/design/metrics.md
rename to site/content/en/latest/design/metrics.md
index 5be5942d5703..644e3c7a6345 100644
--- a/docs/latest/design/metrics.md
+++ b/site/content/en/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/latest/design/pprof.md
similarity index 97%
rename from docs/latest/design/pprof.md
rename to site/content/en/latest/design/pprof.md
index 552986e3bc88..c535b4800710 100644
--- a/docs/latest/design/pprof.md
+++ b/site/content/en/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/latest/design/rate-limit.md
similarity index 99%
rename from docs/latest/design/rate-limit.md
rename to site/content/en/latest/design/rate-limit.md
index fb326b080b29..28ebbab8b360 100644
--- a/docs/latest/design/rate-limit.md
+++ b/site/content/en/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/latest/design/request-authentication.md
similarity index 99%
rename from docs/v0.5.0/design/request-authentication.md
rename to site/content/en/latest/design/request-authentication.md
index 6b2192eadfd9..82682bf2a0b7 100644
--- a/docs/v0.5.0/design/request-authentication.md
+++ b/site/content/en/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/latest/design/roadmap.md
similarity index 99%
rename from docs/latest/design/roadmap.md
rename to site/content/en/latest/design/roadmap.md
index 7304335d9aa5..baa3823260d8 100644
--- a/docs/latest/design/roadmap.md
+++ b/site/content/en/latest/design/roadmap.md
@@ -1,4 +1,7 @@
-# Roadmap
+---
+title: "Roadmap"
+weight: -1
+---
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/latest/design/system-design.md
similarity index 99%
rename from docs/latest/design/system-design.md
rename to site/content/en/latest/design/system-design.md
index 86114be37fa2..16123948ee72 100644
--- a/docs/latest/design/system-design.md
+++ b/site/content/en/latest/design/system-design.md
@@ -1,4 +1,7 @@
-# System Design
+---
+title: "System Design"
+weight: 2
+---
## Goals
@@ -17,7 +20,7 @@
## Architecture
-![Architecture](../images/architecture.png)
+![Architecture](/img/architecture.png)
## Configuration
diff --git a/docs/v0.3.0/design/tcp-udp-design.md b/site/content/en/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/latest/design/tcp-udp-design.md
index 276221b897ba..f517e24fedae 100644
--- a/docs/v0.3.0/design/tcp-udp-design.md
+++ b/site/content/en/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/latest/design/tracing.md
similarity index 99%
rename from docs/latest/design/tracing.md
rename to site/content/en/latest/design/tracing.md
index 5458b1631577..0c9e97309f95 100644
--- a/docs/latest/design/tracing.md
+++ b/site/content/en/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/latest/design/watching.md
similarity index 99%
rename from docs/v0.4.0/design/watching.md
rename to site/content/en/latest/design/watching.md
index b8477a30e2d6..72a955043e0d 100644
--- a/docs/v0.4.0/design/watching.md
+++ b/site/content/en/latest/design/watching.md
@@ -1,4 +1,7 @@
-# Watching Components Design
+---
+title: "Watching Components Design"
+weight: 3
+---
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/site/content/en/latest/install/_index.md b/site/content/en/latest/install/_index.md
new file mode 100644
index 000000000000..b4c6f79c6fda
--- /dev/null
+++ b/site/content/en/latest/install/_index.md
@@ -0,0 +1,5 @@
+---
+title: "Installation"
+description: This section includes installation related contents of Envoy Gateway.
+weight: 70
+---
diff --git a/docs/v0.5.0/helm/api.md b/site/content/en/latest/install/api.md
similarity index 94%
rename from docs/v0.5.0/helm/api.md
rename to site/content/en/latest/install/api.md
index 98eb8e373049..857a00817351 100644
--- a/docs/v0.5.0/helm/api.md
+++ b/site/content/en/latest/install/api.md
@@ -1,4 +1,7 @@
-# gateway-helm
++++
+title = "gateway-helm"
++++
+
![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)
@@ -33,7 +36,8 @@ The Helm chart for Envoy Gateway
| deployment.envoyGateway.resources.requests.cpu | string | `"100m"` | |
| deployment.envoyGateway.resources.requests.memory | string | `"256Mi"` | |
| deployment.kubeRbacProxy.image.repository | string | `"gcr.io/kubebuilder/kube-rbac-proxy"` | |
-| deployment.kubeRbacProxy.image.tag | string | `"v0.11.0"` | |
+| deployment.kubeRbacProxy.image.tag | string | `"v0.14.1"` | |
+| deployment.kubeRbacProxy.imagePullPolicy | string | `"IfNotPresent"` | |
| deployment.kubeRbacProxy.resources.limits.cpu | string | `"500m"` | |
| deployment.kubeRbacProxy.resources.limits.memory | string | `"128Mi"` | |
| deployment.kubeRbacProxy.resources.requests.cpu | string | `"5m"` | |
diff --git a/site/content/en/latest/user/_index.md b/site/content/en/latest/user/_index.md
new file mode 100644
index 000000000000..36ece365053b
--- /dev/null
+++ b/site/content/en/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/latest/user/authn.md
similarity index 99%
rename from docs/latest/user/authn.md
rename to site/content/en/latest/user/authn.md
index 0ab4d96f38c5..5965ffd9cbed 100644
--- a/docs/latest/user/authn.md
+++ b/site/content/en/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/latest/user/customize-envoyproxy.md
similarity index 99%
rename from docs/latest/user/customize-envoyproxy.md
rename to site/content/en/latest/user/customize-envoyproxy.md
index ae1eb42f9f35..6e272874e523 100644
--- a/docs/latest/user/customize-envoyproxy.md
+++ b/site/content/en/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/latest/user/deployment-mode.md
similarity index 99%
rename from docs/latest/user/deployment-mode.md
rename to site/content/en/latest/user/deployment-mode.md
index af515394f299..08ea5febc5c1 100644
--- a/docs/latest/user/deployment-mode.md
+++ b/site/content/en/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/latest/user/egctl.md
similarity index 99%
rename from docs/latest/user/egctl.md
rename to site/content/en/latest/user/egctl.md
index 25644fb338f2..48ab112c86b4 100644
--- a/docs/latest/user/egctl.md
+++ b/site/content/en/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/latest/user/envoy-patch-policy.md
similarity index 99%
rename from docs/latest/user/envoy-patch-policy.md
rename to site/content/en/latest/user/envoy-patch-policy.md
index 6d70ffd07dbc..cd9fee24dfcf 100644
--- a/docs/latest/user/envoy-patch-policy.md
+++ b/site/content/en/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/latest/user/gateway-address.md
similarity index 98%
rename from docs/latest/user/gateway-address.md
rename to site/content/en/latest/user/gateway-address.md
index a28ad62640a2..06570cbe8320 100644
--- a/docs/latest/user/gateway-address.md
+++ b/site/content/en/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/latest/user/gateway-api-metrics.md
similarity index 98%
rename from docs/latest/user/gateway-api-metrics.md
rename to site/content/en/latest/user/gateway-api-metrics.md
index e403c90404f9..5331145b050f 100644
--- a/docs/latest/user/gateway-api-metrics.md
+++ b/site/content/en/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/latest/user/gatewayapi-support.md
similarity index 99%
rename from docs/latest/user/gatewayapi-support.md
rename to site/content/en/latest/user/gatewayapi-support.md
index ee14f3952587..d70064dde255 100644
--- a/docs/latest/user/gatewayapi-support.md
+++ b/site/content/en/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/latest/user/grpc-routing.md
similarity index 99%
rename from docs/latest/user/grpc-routing.md
rename to site/content/en/latest/user/grpc-routing.md
index ef28dac199fe..5dca26744bc3 100644
--- a/docs/latest/user/grpc-routing.md
+++ b/site/content/en/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/latest/user/http-redirect.md
similarity index 99%
rename from docs/v0.3.0/user/http-redirect.md
rename to site/content/en/latest/user/http-redirect.md
index dcd72749f368..da61bdaf32f3 100644
--- a/docs/v0.3.0/user/http-redirect.md
+++ b/site/content/en/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/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/latest/user/http-request-headers.md
index 5e1d77fe6d2f..17fe3b87bcb1 100644
--- a/docs/v0.3.0/user/http-request-headers.md
+++ b/site/content/en/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/latest/user/http-request-mirroring.md
similarity index 99%
rename from docs/latest/user/http-request-mirroring.md
rename to site/content/en/latest/user/http-request-mirroring.md
index 45b3508b2644..aaea240f5ca9 100644
--- a/docs/latest/user/http-request-mirroring.md
+++ b/site/content/en/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/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/latest/user/http-response-headers.md
index 6c77c2e6c2c4..4a27728003d7 100644
--- a/docs/v0.4.0/user/http-response-headers.md
+++ b/site/content/en/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/latest/user/http-routing.md
similarity index 99%
rename from docs/latest/user/http-routing.md
rename to site/content/en/latest/user/http-routing.md
index 73e9b5263dad..2b0f4cf1e355 100644
--- a/docs/latest/user/http-routing.md
+++ b/site/content/en/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/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/latest/user/http-traffic-splitting.md
index 92fed8bd0b11..94f021b5aecb 100644
--- a/docs/v0.5.0/user/http-traffic-splitting.md
+++ b/site/content/en/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/latest/user/http-urlrewrite.md
similarity index 99%
rename from docs/v0.4.0/user/http-urlrewrite.md
rename to site/content/en/latest/user/http-urlrewrite.md
index 88e29c3269cc..fb68ae883221 100644
--- a/docs/v0.4.0/user/http-urlrewrite.md
+++ b/site/content/en/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/latest/user/installation.md
similarity index 99%
rename from docs/latest/user/installation.md
rename to site/content/en/latest/user/installation.md
index 8f3d9de6db89..03796dbd96f7 100644
--- a/docs/latest/user/installation.md
+++ b/site/content/en/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/latest/user/multicluster-service.md
similarity index 98%
rename from docs/latest/user/multicluster-service.md
rename to site/content/en/latest/user/multicluster-service.md
index 1c46c8ab1f71..d0fd7a83fb1c 100644
--- a/docs/latest/user/multicluster-service.md
+++ b/site/content/en/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/latest/user/proxy-observability.md
similarity index 99%
rename from docs/v0.5.0/user/proxy-observability.md
rename to site/content/en/latest/user/proxy-observability.md
index e635460865b0..8755332262d0 100644
--- a/docs/v0.5.0/user/proxy-observability.md
+++ b/site/content/en/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/latest/user/quickstart.md
similarity index 98%
rename from docs/latest/user/quickstart.md
rename to site/content/en/latest/user/quickstart.md
index ce2623ed0052..feaf4a89ce47 100644
--- a/docs/latest/user/quickstart.md
+++ b/site/content/en/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/latest/user/rate-limit.md
similarity index 99%
rename from docs/latest/user/rate-limit.md
rename to site/content/en/latest/user/rate-limit.md
index 1baa0df1140c..a2781fe0a906 100644
--- a/docs/latest/user/rate-limit.md
+++ b/site/content/en/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/latest/user/secure-gateways.md
similarity index 99%
rename from docs/latest/user/secure-gateways.md
rename to site/content/en/latest/user/secure-gateways.md
index 8ada7c59978a..2e04000d5a7d 100644
--- a/docs/latest/user/secure-gateways.md
+++ b/site/content/en/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/latest/user/tcp-routing.md
similarity index 99%
rename from docs/latest/user/tcp-routing.md
rename to site/content/en/latest/user/tcp-routing.md
index ed1f5430b4cb..d06ae77f7a4c 100644
--- a/docs/latest/user/tcp-routing.md
+++ b/site/content/en/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/latest/user/tls-cert-manager.md
similarity index 99%
rename from docs/latest/user/tls-cert-manager.md
rename to site/content/en/latest/user/tls-cert-manager.md
index 72f3384fdd5e..b47d80ca5d19 100644
--- a/docs/latest/user/tls-cert-manager.md
+++ b/site/content/en/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/latest/user/tls-passthrough.md
similarity index 99%
rename from docs/latest/user/tls-passthrough.md
rename to site/content/en/latest/user/tls-passthrough.md
index 75a14d2a5373..2ad4610a9991 100644
--- a/docs/latest/user/tls-passthrough.md
+++ b/site/content/en/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/latest/user/tls-termination.md
similarity index 98%
rename from docs/latest/user/tls-termination.md
rename to site/content/en/latest/user/tls-termination.md
index ebea433faf1b..eaae97ec9fde 100644
--- a/docs/latest/user/tls-termination.md
+++ b/site/content/en/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/latest/user/udp-routing.md
similarity index 99%
rename from docs/latest/user/udp-routing.md
rename to site/content/en/latest/user/udp-routing.md
index 865019cc1d66..b6bc7fa633ba 100644
--- a/docs/latest/user/udp-routing.md
+++ b/site/content/en/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/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/content/en/v0.2.0/_index.md b/site/content/en/v0.2.0/_index.md
new file mode 100644
index 000000000000..5a2e188b4a14
--- /dev/null
+++ b/site/content/en/v0.2.0/_index.md
@@ -0,0 +1,21 @@
++++
+title = "Welcome to Envoy Gateway"
+description = "Envoy Gateway Documents"
+linktitle = "Documentation"
+
+[[cascade]]
+type = "docs"
++++
+
+{{% alert title="Note" color="info" %}}
+
+This project is under **active** development. Many features are not complete. We would love for you to [Get Involved](contributions/)!
+
+{{% /alert %}}
+
+Envoy Gateway is an open source project for managing [Envoy Proxy](https://www.envoyproxy.io/) as a standalone or Kubernetes-based application
+gateway. [Gateway API](https://gateway-api.sigs.k8s.io/) resources are used to dynamically provision and configure the managed Envoy Proxies.
+
+![architecture](/img/traffic.png)
+
+## Ready to get started?
diff --git a/docs/v0.2.0/dev/CODEOWNERS.md b/site/content/en/v0.2.0/contributions/CODEOWNERS.md
similarity index 65%
rename from docs/v0.2.0/dev/CODEOWNERS.md
rename to site/content/en/v0.2.0/contributions/CODEOWNERS.md
index d4229b6b23f2..63b751abde50 100644
--- a/docs/v0.2.0/dev/CODEOWNERS.md
+++ b/site/content/en/v0.2.0/contributions/CODEOWNERS.md
@@ -1,15 +1,19 @@
-# Maintainers
+---
+title: "Maintainers"
+description: "This section includes Maintainers of Envoy Gateway."
+---
## The following maintainers, listed in alphabetical order, own everything
- @AliceProxy
- @arkodg
-- @skriss
- @Xunzhuo
-- @youngnick
- @zirain
+- @qicz
## Emeritus Maintainers
- @danehans
- @alexgervais
+- @skriss
+- @youngnick
diff --git a/site/content/en/v0.2.0/contributions/CODE_OF_CONDUCT.md b/site/content/en/v0.2.0/contributions/CODE_OF_CONDUCT.md
new file mode 100644
index 000000000000..e19da050dff8
--- /dev/null
+++ b/site/content/en/v0.2.0/contributions/CODE_OF_CONDUCT.md
@@ -0,0 +1,6 @@
+---
+title: "Code of Conduct"
+description: "This section includes Code of Conduct of Envoy Gateway."
+---
+
+Envoy 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/v0.2.0/contributions/CONTRIBUTING.md
similarity index 96%
rename from docs/v0.4.0/dev/CONTRIBUTING.md
rename to site/content/en/v0.2.0/contributions/CONTRIBUTING.md
index 04d95bb675d9..f94b2c940e97 100644
--- a/docs/v0.4.0/dev/CONTRIBUTING.md
+++ b/site/content/en/v0.2.0/contributions/CONTRIBUTING.md
@@ -1,6 +1,10 @@
-# Contributing
+---
+title: "Contributing"
+description: "This section tells how to contribute to Envoy Gateway."
+weight: 3
+---
-We welcome contributions from the community. Please carefully review the [project goals](GOALS.md)
+We welcome contributions from the community. Please carefully review the [project goals](/about)
and following guidelines to streamline your contributions.
## Communication
@@ -10,7 +14,7 @@ and following guidelines to streamline your contributions.
* A "major feature" is defined as any change that is > 100 LOC altered (not including tests), or
changes any user-facing behavior. We will use the GitHub issue to discuss the feature and come to
agreement. This is to prevent your time being wasted, as well as ours. The GitHub review process
- for major features is also important so that [affiliations with commit access](CODEOWNERS.md) can
+ for major features is also important so that [affiliations with commit access](../codeowners) can
come to agreement on the design. If it's appropriate to write a design document, the document must
be hosted either in the GitHub issue, or linked to from the issue and hosted in a world-readable
location.
@@ -44,8 +48,8 @@ to the following guidelines for all code, APIs, and documentation:
* PRs are expected to have 100% test coverage for added code. This can be verified with a coverage
build. If your PR cannot have 100% coverage for some reason please clearly explain why when you
open it.
-* Any PR that changes user-facing behavior **must** have associated documentation in the [docs](https://github.com/envoyproxy/gateway/tree/main/docs) folder of the repo as
- well as the [changelog](../releases).
+* Any PR that changes user-facing behavior **must** have associated documentation in the [docs](https://github.com/envoyproxy/gateway/tree/main/site) folder of the repo as
+ well as the [changelog](/blog/releases).
* All code comments and documentation are expected to have proper English grammar and punctuation.
If you are not a fluent English speaker (or a bad writer ;-)) please let us know and we will try
to find some help but there are no guarantees.
@@ -77,7 +81,7 @@ to the following guidelines for all code, APIs, and documentation:
## Maintainer PR Review Policy
-* See [CODEOWNERS.md](CODEOWNERS.md) for the current list of maintainers.
+* See [CODEOWNERS.md](../codeowners) for the current list of maintainers.
* A maintainer representing a different affiliation from the PR owner is required to review and
approve the PR.
* When the project matures, it is expected that a "domain expert" for the code the PR touches should
diff --git a/docs/latest/dev/README.md b/site/content/en/v0.2.0/contributions/DEVELOP.md
similarity index 98%
rename from docs/latest/dev/README.md
rename to site/content/en/v0.2.0/contributions/DEVELOP.md
index cf25992e5b3b..6f82c4a411f5 100644
--- a/docs/latest/dev/README.md
+++ b/site/content/en/v0.2.0/contributions/DEVELOP.md
@@ -1,4 +1,8 @@
-# Developer Guide
+---
+title: "Developer Guide"
+description: "This section tells how to develop Envoy Gateway."
+weight: 2
+---
Envoy Gateway is built using a [make][]-based build system. Our CI is based on [Github Actions][] using [workflows][].
diff --git a/docs/v0.4.0/dev/DOCS.md b/site/content/en/v0.2.0/contributions/DOCS.md
similarity index 95%
rename from docs/v0.4.0/dev/DOCS.md
rename to site/content/en/v0.2.0/contributions/DOCS.md
index fb49b9d55dda..8266c9e9a2bf 100644
--- a/docs/v0.4.0/dev/DOCS.md
+++ b/site/content/en/v0.2.0/contributions/DOCS.md
@@ -1,4 +1,8 @@
-# Working on the Envoy Gateway Docs
+---
+title: "Working on Envoy Gateway Docs"
+description: "This section tells the development of
+ Envoy Gateway Documents."
+---
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/releasing.md b/site/content/en/v0.2.0/contributions/RELEASING.md
similarity index 98%
rename from docs/latest/dev/releasing.md
rename to site/content/en/v0.2.0/contributions/RELEASING.md
index 81625698cfa8..013707d45694 100644
--- a/docs/latest/dev/releasing.md
+++ b/site/content/en/v0.2.0/contributions/RELEASING.md
@@ -1,4 +1,7 @@
-# Release Process
+---
+title: "Release Process"
+description: "This section tells the release process of Envoy Gateway."
+---
This document guides maintainers through the process of creating an Envoy Gateway release.
diff --git a/site/content/en/v0.2.0/contributions/_index.md b/site/content/en/v0.2.0/contributions/_index.md
new file mode 100644
index 000000000000..3255d996472a
--- /dev/null
+++ b/site/content/en/v0.2.0/contributions/_index.md
@@ -0,0 +1,5 @@
+---
+title: Get Involved
+description: "This section includes contents related to **Contributions**"
+weight: 100
+---
diff --git a/site/content/en/v0.2.0/design/_index.md b/site/content/en/v0.2.0/design/_index.md
new file mode 100644
index 000000000000..21650809f7da
--- /dev/null
+++ b/site/content/en/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/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/v0.2.0/design/config-api.md
index 3696860dd54d..466b84d8f351 100644
--- a/docs/v0.2.0/design/config-api.md
+++ b/site/content/en/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/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/v0.2.0/design/gatewayapi-translator.md
index 3cf0da94f5aa..b83ed82588d9 100644
--- a/docs/v0.4.0/design/gatewayapi-translator.md
+++ b/site/content/en/v0.2.0/design/gatewayapi-translator.md
@@ -1,4 +1,7 @@
-# Gateway API Translator Design
+---
+title: "Gateway API Translator Design"
+weight: 4
+---
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/dev/GOALS.md b/site/content/en/v0.2.0/design/goals.md
similarity index 99%
rename from docs/v0.3.0/dev/GOALS.md
rename to site/content/en/v0.2.0/design/goals.md
index 519be9f180fe..fd38b2004c61 100644
--- a/docs/v0.3.0/dev/GOALS.md
+++ b/site/content/en/v0.2.0/design/goals.md
@@ -1,4 +1,7 @@
-# Goals
+---
+title: "Goals"
+weight: 1
+---
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
@@ -8,6 +11,7 @@ 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
@@ -23,6 +27,7 @@ This expressive API will not be implemented by Envoy Proxy, but rather an offici
on top.
### Batteries included
+
Envoy Gateway will simplify how Envoy is deployed and managed, allowing application developers to focus on
delivering core business value.
@@ -37,6 +42,7 @@ will enjoy a simplified management model that doesn't require extensive knowledg
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
@@ -44,6 +50,7 @@ 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
@@ -57,21 +64,26 @@ 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.
diff --git a/docs/v0.2.0/design/roadmap.md b/site/content/en/v0.2.0/design/roadmap.md
similarity index 98%
rename from docs/v0.2.0/design/roadmap.md
rename to site/content/en/v0.2.0/design/roadmap.md
index d6ec649e4a29..7203a5936324 100644
--- a/docs/v0.2.0/design/roadmap.md
+++ b/site/content/en/v0.2.0/design/roadmap.md
@@ -1,4 +1,7 @@
-# Roadmap
+---
+title: "Roadmap"
+weight: -1
+---
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/v0.2.0/design/system-design.md
similarity index 99%
rename from docs/v0.2.0/design/system-design.md
rename to site/content/en/v0.2.0/design/system-design.md
index 731cb0925b03..72c0a98ecda7 100644
--- a/docs/v0.2.0/design/system-design.md
+++ b/site/content/en/v0.2.0/design/system-design.md
@@ -1,4 +1,7 @@
-# System Design
+---
+title: "System Design"
+weight: 2
+---
## Goals
@@ -17,7 +20,7 @@
## Architecture
-![Architecture](../images/architecture.png)
+![Architecture](/img/architecture.png)
## Configuration
diff --git a/docs/v0.3.0/design/watching.md b/site/content/en/v0.2.0/design/watching.md
similarity index 99%
rename from docs/v0.3.0/design/watching.md
rename to site/content/en/v0.2.0/design/watching.md
index b8477a30e2d6..72a955043e0d 100644
--- a/docs/v0.3.0/design/watching.md
+++ b/site/content/en/v0.2.0/design/watching.md
@@ -1,4 +1,7 @@
-# Watching Components Design
+---
+title: "Watching Components Design"
+weight: 3
+---
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/site/content/en/v0.2.0/user/_index.md b/site/content/en/v0.2.0/user/_index.md
new file mode 100644
index 000000000000..32a4b32e7904
--- /dev/null
+++ b/site/content/en/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/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/v0.2.0/user/http-redirect.md
index 5b6588535eaf..245039c74b51 100644
--- a/docs/v0.2.0/user/http-redirect.md
+++ b/site/content/en/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/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/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/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/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/v0.2.0/user/http-routing.md
index d3d9bd388cbc..6ca0b8c9751a 100644
--- a/docs/v0.2.0/user/http-routing.md
+++ b/site/content/en/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/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/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/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/v0.2.0/user/quickstart.md
similarity index 98%
rename from docs/v0.2.0/user/quickstart.md
rename to site/content/en/v0.2.0/user/quickstart.md
index 5361ca187ea6..0827145400f6 100644
--- a/docs/v0.2.0/user/quickstart.md
+++ b/site/content/en/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/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/v0.2.0/user/secure-gateways.md
index cd5199495b9d..2919cfdd26a8 100644
--- a/docs/v0.2.0/user/secure-gateways.md
+++ b/site/content/en/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/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/v0.2.0/user/tls-passthrough.md
index f089350d3bd0..fcfee0d82d42 100644
--- a/docs/v0.2.0/user/tls-passthrough.md
+++ b/site/content/en/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/v0.3.0/_index.md b/site/content/en/v0.3.0/_index.md
new file mode 100644
index 000000000000..5a2e188b4a14
--- /dev/null
+++ b/site/content/en/v0.3.0/_index.md
@@ -0,0 +1,21 @@
++++
+title = "Welcome to Envoy Gateway"
+description = "Envoy Gateway Documents"
+linktitle = "Documentation"
+
+[[cascade]]
+type = "docs"
++++
+
+{{% alert title="Note" color="info" %}}
+
+This project is under **active** development. Many features are not complete. We would love for you to [Get Involved](contributions/)!
+
+{{% /alert %}}
+
+Envoy Gateway is an open source project for managing [Envoy Proxy](https://www.envoyproxy.io/) as a standalone or Kubernetes-based application
+gateway. [Gateway API](https://gateway-api.sigs.k8s.io/) resources are used to dynamically provision and configure the managed Envoy Proxies.
+
+![architecture](/img/traffic.png)
+
+## Ready to get started?
diff --git a/site/content/en/v0.3.0/api/_index.md b/site/content/en/v0.3.0/api/_index.md
new file mode 100644
index 000000000000..396d9ffcefcf
--- /dev/null
+++ b/site/content/en/v0.3.0/api/_index.md
@@ -0,0 +1,5 @@
+---
+title: "API"
+description: This section includes APIs of Envoy Gateway.
+weight: 80
+---
diff --git a/docs/v0.3.0/api/config_types.md b/site/content/en/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/v0.3.0/api/config_types.md
index 8ddc73d3efc4..4ff5b3f6f181 100644
--- a/docs/v0.3.0/api/config_types.md
+++ b/site/content/en/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/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/v0.3.0/api/extension_types.md
index 9479da94da5c..478fc54f5dca 100644
--- a/docs/v0.3.0/api/extension_types.md
+++ b/site/content/en/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/docs/v0.3.0/dev/CODEOWNERS.md b/site/content/en/v0.3.0/contributions/CODEOWNERS.md
similarity index 65%
rename from docs/v0.3.0/dev/CODEOWNERS.md
rename to site/content/en/v0.3.0/contributions/CODEOWNERS.md
index d4229b6b23f2..63b751abde50 100644
--- a/docs/v0.3.0/dev/CODEOWNERS.md
+++ b/site/content/en/v0.3.0/contributions/CODEOWNERS.md
@@ -1,15 +1,19 @@
-# Maintainers
+---
+title: "Maintainers"
+description: "This section includes Maintainers of Envoy Gateway."
+---
## The following maintainers, listed in alphabetical order, own everything
- @AliceProxy
- @arkodg
-- @skriss
- @Xunzhuo
-- @youngnick
- @zirain
+- @qicz
## Emeritus Maintainers
- @danehans
- @alexgervais
+- @skriss
+- @youngnick
diff --git a/site/content/en/v0.3.0/contributions/CODE_OF_CONDUCT.md b/site/content/en/v0.3.0/contributions/CODE_OF_CONDUCT.md
new file mode 100644
index 000000000000..e19da050dff8
--- /dev/null
+++ b/site/content/en/v0.3.0/contributions/CODE_OF_CONDUCT.md
@@ -0,0 +1,6 @@
+---
+title: "Code of Conduct"
+description: "This section includes Code of Conduct of Envoy Gateway."
+---
+
+Envoy 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/v0.3.0/contributions/CONTRIBUTING.md
similarity index 96%
rename from docs/latest/dev/CONTRIBUTING.md
rename to site/content/en/v0.3.0/contributions/CONTRIBUTING.md
index 04d95bb675d9..f94b2c940e97 100644
--- a/docs/latest/dev/CONTRIBUTING.md
+++ b/site/content/en/v0.3.0/contributions/CONTRIBUTING.md
@@ -1,6 +1,10 @@
-# Contributing
+---
+title: "Contributing"
+description: "This section tells how to contribute to Envoy Gateway."
+weight: 3
+---
-We welcome contributions from the community. Please carefully review the [project goals](GOALS.md)
+We welcome contributions from the community. Please carefully review the [project goals](/about)
and following guidelines to streamline your contributions.
## Communication
@@ -10,7 +14,7 @@ and following guidelines to streamline your contributions.
* A "major feature" is defined as any change that is > 100 LOC altered (not including tests), or
changes any user-facing behavior. We will use the GitHub issue to discuss the feature and come to
agreement. This is to prevent your time being wasted, as well as ours. The GitHub review process
- for major features is also important so that [affiliations with commit access](CODEOWNERS.md) can
+ for major features is also important so that [affiliations with commit access](../codeowners) can
come to agreement on the design. If it's appropriate to write a design document, the document must
be hosted either in the GitHub issue, or linked to from the issue and hosted in a world-readable
location.
@@ -44,8 +48,8 @@ to the following guidelines for all code, APIs, and documentation:
* PRs are expected to have 100% test coverage for added code. This can be verified with a coverage
build. If your PR cannot have 100% coverage for some reason please clearly explain why when you
open it.
-* Any PR that changes user-facing behavior **must** have associated documentation in the [docs](https://github.com/envoyproxy/gateway/tree/main/docs) folder of the repo as
- well as the [changelog](../releases).
+* Any PR that changes user-facing behavior **must** have associated documentation in the [docs](https://github.com/envoyproxy/gateway/tree/main/site) folder of the repo as
+ well as the [changelog](/blog/releases).
* All code comments and documentation are expected to have proper English grammar and punctuation.
If you are not a fluent English speaker (or a bad writer ;-)) please let us know and we will try
to find some help but there are no guarantees.
@@ -77,7 +81,7 @@ to the following guidelines for all code, APIs, and documentation:
## Maintainer PR Review Policy
-* See [CODEOWNERS.md](CODEOWNERS.md) for the current list of maintainers.
+* See [CODEOWNERS.md](../codeowners) for the current list of maintainers.
* A maintainer representing a different affiliation from the PR owner is required to review and
approve the PR.
* When the project matures, it is expected that a "domain expert" for the code the PR touches should
diff --git a/docs/v0.4.0/dev/README.md b/site/content/en/v0.3.0/contributions/DEVELOP.md
similarity index 93%
rename from docs/v0.4.0/dev/README.md
rename to site/content/en/v0.3.0/contributions/DEVELOP.md
index 2d4f13e9e803..6f82c4a411f5 100644
--- a/docs/v0.4.0/dev/README.md
+++ b/site/content/en/v0.3.0/contributions/DEVELOP.md
@@ -1,4 +1,8 @@
-# Developer Guide
+---
+title: "Developer Guide"
+description: "This section tells how to develop Envoy Gateway."
+weight: 2
+---
Envoy Gateway is built using a [make][]-based build system. Our CI is based on [Github Actions][] using [workflows][].
@@ -44,9 +48,12 @@ __Note:__ The binaries get generated in the `bin/$OS/$ARCH` directory, for examp
* Run `make test` to run the golang tests.
+* Run `make testdata` to generate the golden YAML testdata files.
+
### Running Linters
* Run `make lint` to make sure your code passes all the linter checks.
+__Note:__ The `golangci-lint` configuration resides [here](https://github.com/envoyproxy/gateway/blob/main/tools/linter/golangci-lint/.golangci.yml).
### Building and Pushing the Image
@@ -67,7 +74,7 @@ __Note:__ Replace `IMAGE` with your registry's image name.
#### Option 2: Use a Custom Image
* Run `make kube-install-image` to build an image from the tip of your current branch and load it in the Kind cluster.
-* Run `make kube-deploy` to install Envoy Gateway into the Kind cluster using your custom image.
+* Run `IMAGE_PULL_POLICY=IfNotPresent make kube-deploy` to install Envoy Gateway into the Kind cluster using your custom image.
### Deploying Envoy Gateway in Kubernetes
@@ -138,7 +145,7 @@ verify signature was copied to [JWK Creator][] for generating the JWK. The JWK C
settings, i.e. `Signing` public key use and the `RS256` algorithm. The generated JWK was wrapped in a JWKS structure
and is hosted in the repo.
-[Quickstart]: https://github.com/envoyproxy/gateway/blob/main/docs/user/quickstart.md
+[Quickstart]: https://github.com/envoyproxy/gateway/blob/main/docs/latest/user/quickstart.md
[make]: https://www.gnu.org/software/make/
[Github Actions]: https://docs.github.com/en/actions
[workflows]: https://github.com/envoyproxy/gateway/tree/main/.github/workflows
diff --git a/docs/v0.2.0/dev/DOCS.md b/site/content/en/v0.3.0/contributions/DOCS.md
similarity index 95%
rename from docs/v0.2.0/dev/DOCS.md
rename to site/content/en/v0.3.0/contributions/DOCS.md
index fb49b9d55dda..8266c9e9a2bf 100644
--- a/docs/v0.2.0/dev/DOCS.md
+++ b/site/content/en/v0.3.0/contributions/DOCS.md
@@ -1,4 +1,8 @@
-# Working on the Envoy Gateway Docs
+---
+title: "Working on Envoy Gateway Docs"
+description: "This section tells the development of
+ Envoy Gateway Documents."
+---
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/releasing.md b/site/content/en/v0.3.0/contributions/RELEASING.md
similarity index 86%
rename from docs/v0.3.0/dev/releasing.md
rename to site/content/en/v0.3.0/contributions/RELEASING.md
index f0004caf3367..013707d45694 100644
--- a/docs/v0.3.0/dev/releasing.md
+++ b/site/content/en/v0.3.0/contributions/RELEASING.md
@@ -1,4 +1,7 @@
-# Release Process
+---
+title: "Release Process"
+description: "This section tells the release process of Envoy Gateway."
+---
This document guides maintainers through the process of creating an Envoy Gateway release.
@@ -68,6 +71,37 @@ export GITHUB_REMOTE=origin
18. Ensure you check the "This is a pre-release" checkbox when editing the GitHub release.
19. If you find any bugs in this process, please create an issue.
+### Setup cherry picker action
+
+After release branch cut, RM (Release Manager) should add job [cherrypick action](../../../.github/workflows/cherrypick.yaml) for target release.
+
+Configuration looks like following:
+
+```yaml
+ cherry_pick_release_v0_4:
+ runs-on: ubuntu-latest
+ name: Cherry pick into release-v0.4
+ if: ${{ contains(github.event.pull_request.labels.*.name, 'cherrypick/release-v0.4') && github.event.pull_request.merged == true }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+ - name: Cherry pick into release/v0.4
+ uses: carloscastrojumo/github-cherry-pick-action@v1.0.9
+ with:
+ branch: release/v0.4
+ title: "[release/v0.4] {old_title}"
+ body: "Cherry picking #{old_pull_request_id} onto release/v0.4"
+ labels: |
+ cherrypick/release-v0.4
+ # put release manager here
+ reviewers: |
+ AliceProxy
+```
+
+Replace `v0.4` with real branch name, and `AliceProxy` with the real name of RM.
+
## Minor Release
The following steps should be used for creating a minor release.
@@ -93,7 +127,8 @@ export GITHUB_REMOTE=origin
notes should be an accumulation of the release candidate release notes and any changes since the release
candidate.
2. Create a release announcement. Refer to [PR #635] as an example release announcement.
- 3. Generate the versioned release docs:
+ 3. Include the release in the compatibility matrix. Refer to [PR #1002] as an example.
+ 4. Generate the versioned release docs:
``` shell
make docs-release TAG=v${MAJOR_VERSION}.${MINOR_VERSION}
@@ -192,4 +227,5 @@ It's important that the world knows about the release. Use the following steps t
[Generate]: https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes
[PR #635]: https://github.com/envoyproxy/gateway/pull/635
[PR #958]: https://github.com/envoyproxy/gateway/pull/958
+[PR #1002]: https://github.com/envoyproxy/gateway/pull/1002
[VERSION]: https://github.com/envoyproxy/gateway/blob/main/VERSION
diff --git a/site/content/en/v0.3.0/contributions/_index.md b/site/content/en/v0.3.0/contributions/_index.md
new file mode 100644
index 000000000000..3255d996472a
--- /dev/null
+++ b/site/content/en/v0.3.0/contributions/_index.md
@@ -0,0 +1,5 @@
+---
+title: Get Involved
+description: "This section includes contents related to **Contributions**"
+weight: 100
+---
diff --git a/site/content/en/v0.3.0/design/_index.md b/site/content/en/v0.3.0/design/_index.md
new file mode 100644
index 000000000000..21650809f7da
--- /dev/null
+++ b/site/content/en/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/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/v0.3.0/design/config-api.md
index 3696860dd54d..466b84d8f351 100644
--- a/docs/v0.3.0/design/config-api.md
+++ b/site/content/en/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/v0.3.0/design/egctl.md
similarity index 98%
rename from docs/v0.3.0/design/egctl.md
rename to site/content/en/v0.3.0/design/egctl.md
index 53a5e7b998ac..c9db36e1b68c 100644
--- a/docs/v0.3.0/design/egctl.md
+++ b/site/content/en/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/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/v0.3.0/design/gatewayapi-support.md
index 4ce9f1b041e3..67eaf05bb4ac 100644
--- a/docs/v0.3.0/design/gatewayapi-support.md
+++ b/site/content/en/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.3.0/design/gatewayapi-translator.md b/site/content/en/v0.3.0/design/gatewayapi-translator.md
similarity index 99%
rename from docs/v0.3.0/design/gatewayapi-translator.md
rename to site/content/en/v0.3.0/design/gatewayapi-translator.md
index 3cf0da94f5aa..b83ed82588d9 100644
--- a/docs/v0.3.0/design/gatewayapi-translator.md
+++ b/site/content/en/v0.3.0/design/gatewayapi-translator.md
@@ -1,4 +1,7 @@
-# Gateway API Translator Design
+---
+title: "Gateway API Translator Design"
+weight: 4
+---
The Gateway API translates external resources, e.g. GatewayClass, from the configured Provider to the Intermediate
Representation (IR).
diff --git a/site/content/en/v0.3.0/design/goals.md b/site/content/en/v0.3.0/design/goals.md
new file mode 100644
index 000000000000..fd38b2004c61
--- /dev/null
+++ b/site/content/en/v0.3.0/design/goals.md
@@ -0,0 +1,91 @@
+---
+title: "Goals"
+weight: 1
+---
+
+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/docs/v0.3.0/design/ratelimit.md b/site/content/en/v0.3.0/design/ratelimit.md
similarity index 99%
rename from docs/v0.3.0/design/ratelimit.md
rename to site/content/en/v0.3.0/design/ratelimit.md
index 8cf069346e44..5d080e4d08cc 100644
--- a/docs/v0.3.0/design/ratelimit.md
+++ b/site/content/en/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/v0.3.0/design/request-authentication.md
similarity index 99%
rename from docs/latest/design/request-authentication.md
rename to site/content/en/v0.3.0/design/request-authentication.md
index 6b2192eadfd9..a88f7392b1fa 100644
--- a/docs/latest/design/request-authentication.md
+++ b/site/content/en/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/v0.3.0/design/roadmap.md
similarity index 99%
rename from docs/v0.3.0/design/roadmap.md
rename to site/content/en/v0.3.0/design/roadmap.md
index 735f19e69813..7a2629009de4 100644
--- a/docs/v0.3.0/design/roadmap.md
+++ b/site/content/en/v0.3.0/design/roadmap.md
@@ -1,4 +1,7 @@
-# Roadmap
+---
+title: "Roadmap"
+weight: -1
+---
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/v0.3.0/design/system-design.md
similarity index 99%
rename from docs/v0.3.0/design/system-design.md
rename to site/content/en/v0.3.0/design/system-design.md
index 731cb0925b03..72c0a98ecda7 100644
--- a/docs/v0.3.0/design/system-design.md
+++ b/site/content/en/v0.3.0/design/system-design.md
@@ -1,4 +1,7 @@
-# System Design
+---
+title: "System Design"
+weight: 2
+---
## Goals
@@ -17,7 +20,7 @@
## Architecture
-![Architecture](../images/architecture.png)
+![Architecture](/img/architecture.png)
## Configuration
diff --git a/docs/latest/design/tcp-udp-design.md b/site/content/en/v0.3.0/design/tcp-udp-design.md
similarity index 98%
rename from docs/latest/design/tcp-udp-design.md
rename to site/content/en/v0.3.0/design/tcp-udp-design.md
index 276221b897ba..f517e24fedae 100644
--- a/docs/latest/design/tcp-udp-design.md
+++ b/site/content/en/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/v0.3.0/design/watching.md
similarity index 99%
rename from docs/latest/design/watching.md
rename to site/content/en/v0.3.0/design/watching.md
index b8477a30e2d6..72a955043e0d 100644
--- a/docs/latest/design/watching.md
+++ b/site/content/en/v0.3.0/design/watching.md
@@ -1,4 +1,7 @@
-# Watching Components Design
+---
+title: "Watching Components Design"
+weight: 3
+---
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/site/content/en/v0.3.0/user/_index.md b/site/content/en/v0.3.0/user/_index.md
new file mode 100644
index 000000000000..32a4b32e7904
--- /dev/null
+++ b/site/content/en/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/v0.3.0/user/authn.md
similarity index 98%
rename from docs/v0.3.0/user/authn.md
rename to site/content/en/v0.3.0/user/authn.md
index 3b40738f305b..8130cad2a839 100644
--- a/docs/v0.3.0/user/authn.md
+++ b/site/content/en/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/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/v0.3.0/user/grpc-routing.md
index 31a25c44268f..71c7179243f7 100644
--- a/docs/v0.3.0/user/grpc-routing.md
+++ b/site/content/en/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/v0.3.0/user/http-redirect.md
similarity index 99%
rename from docs/latest/user/http-redirect.md
rename to site/content/en/v0.3.0/user/http-redirect.md
index dcd72749f368..da61bdaf32f3 100644
--- a/docs/latest/user/http-redirect.md
+++ b/site/content/en/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/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/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/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/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/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/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/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/v0.3.0/user/http-routing.md
index c9f4646001fc..91a98cad7d21 100644
--- a/docs/v0.3.0/user/http-routing.md
+++ b/site/content/en/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/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/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/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/v0.3.0/user/http-urlrewrite.md
similarity index 99%
rename from docs/latest/user/http-urlrewrite.md
rename to site/content/en/v0.3.0/user/http-urlrewrite.md
index 88e29c3269cc..fb68ae883221 100644
--- a/docs/latest/user/http-urlrewrite.md
+++ b/site/content/en/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/v0.3.0/user/quickstart.md
similarity index 98%
rename from docs/v0.3.0/user/quickstart.md
rename to site/content/en/v0.3.0/user/quickstart.md
index a11d3cbe7b1f..4253a56e03f1 100644
--- a/docs/v0.3.0/user/quickstart.md
+++ b/site/content/en/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/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/v0.3.0/user/rate-limit.md
index 446a82ee08aa..edb7b759560d 100644
--- a/docs/v0.3.0/user/rate-limit.md
+++ b/site/content/en/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/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/v0.3.0/user/secure-gateways.md
index c0e2b3bb37c9..6d3401a2d9af 100644
--- a/docs/v0.3.0/user/secure-gateways.md
+++ b/site/content/en/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/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/v0.3.0/user/tcp-routing.md
index cb52765d3a3e..6f8cb90fe31e 100644
--- a/docs/v0.3.0/user/tcp-routing.md
+++ b/site/content/en/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/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/v0.3.0/user/tls-passthrough.md
index 7d411f50ef27..bfffcea53bc0 100644
--- a/docs/v0.3.0/user/tls-passthrough.md
+++ b/site/content/en/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/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/v0.3.0/user/udp-routing.md
index 47c13a53e3e4..312aec697add 100644
--- a/docs/v0.3.0/user/udp-routing.md
+++ b/site/content/en/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/v0.4.0/_index.md b/site/content/en/v0.4.0/_index.md
new file mode 100644
index 000000000000..5a2e188b4a14
--- /dev/null
+++ b/site/content/en/v0.4.0/_index.md
@@ -0,0 +1,21 @@
++++
+title = "Welcome to Envoy Gateway"
+description = "Envoy Gateway Documents"
+linktitle = "Documentation"
+
+[[cascade]]
+type = "docs"
++++
+
+{{% alert title="Note" color="info" %}}
+
+This project is under **active** development. Many features are not complete. We would love for you to [Get Involved](contributions/)!
+
+{{% /alert %}}
+
+Envoy Gateway is an open source project for managing [Envoy Proxy](https://www.envoyproxy.io/) as a standalone or Kubernetes-based application
+gateway. [Gateway API](https://gateway-api.sigs.k8s.io/) resources are used to dynamically provision and configure the managed Envoy Proxies.
+
+![architecture](/img/traffic.png)
+
+## Ready to get started?
diff --git a/site/content/en/v0.4.0/api/_index.md b/site/content/en/v0.4.0/api/_index.md
new file mode 100644
index 000000000000..396d9ffcefcf
--- /dev/null
+++ b/site/content/en/v0.4.0/api/_index.md
@@ -0,0 +1,5 @@
+---
+title: "API"
+description: This section includes APIs of Envoy Gateway.
+weight: 80
+---
diff --git a/docs/v0.4.0/api/config_types.md b/site/content/en/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/v0.4.0/api/config_types.md
index 2764ba823003..91f6b5fd5323 100644
--- a/docs/v0.4.0/api/config_types.md
+++ b/site/content/en/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/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/v0.4.0/api/extension_types.md
index 1b1da8e4cdc3..9bc5172b2504 100644
--- a/docs/v0.4.0/api/extension_types.md
+++ b/site/content/en/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/docs/v0.4.0/dev/CODEOWNERS.md b/site/content/en/v0.4.0/contributions/CODEOWNERS.md
similarity index 65%
rename from docs/v0.4.0/dev/CODEOWNERS.md
rename to site/content/en/v0.4.0/contributions/CODEOWNERS.md
index d4229b6b23f2..63b751abde50 100644
--- a/docs/v0.4.0/dev/CODEOWNERS.md
+++ b/site/content/en/v0.4.0/contributions/CODEOWNERS.md
@@ -1,15 +1,19 @@
-# Maintainers
+---
+title: "Maintainers"
+description: "This section includes Maintainers of Envoy Gateway."
+---
## The following maintainers, listed in alphabetical order, own everything
- @AliceProxy
- @arkodg
-- @skriss
- @Xunzhuo
-- @youngnick
- @zirain
+- @qicz
## Emeritus Maintainers
- @danehans
- @alexgervais
+- @skriss
+- @youngnick
diff --git a/site/content/en/v0.4.0/contributions/CODE_OF_CONDUCT.md b/site/content/en/v0.4.0/contributions/CODE_OF_CONDUCT.md
new file mode 100644
index 000000000000..e19da050dff8
--- /dev/null
+++ b/site/content/en/v0.4.0/contributions/CODE_OF_CONDUCT.md
@@ -0,0 +1,6 @@
+---
+title: "Code of Conduct"
+description: "This section includes Code of Conduct of Envoy Gateway."
+---
+
+Envoy 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/v0.4.0/contributions/CONTRIBUTING.md
similarity index 93%
rename from docs/v0.2.0/dev/CONTRIBUTING.md
rename to site/content/en/v0.4.0/contributions/CONTRIBUTING.md
index d7770bdeff2f..f94b2c940e97 100644
--- a/docs/v0.2.0/dev/CONTRIBUTING.md
+++ b/site/content/en/v0.4.0/contributions/CONTRIBUTING.md
@@ -1,6 +1,10 @@
-# Contributing
+---
+title: "Contributing"
+description: "This section tells how to contribute to Envoy Gateway."
+weight: 3
+---
-We welcome contributions from the community. Please carefully review the [project goals](GOALS.md)
+We welcome contributions from the community. Please carefully review the [project goals](/about)
and following guidelines to streamline your contributions.
## Communication
@@ -10,7 +14,7 @@ and following guidelines to streamline your contributions.
* A "major feature" is defined as any change that is > 100 LOC altered (not including tests), or
changes any user-facing behavior. We will use the GitHub issue to discuss the feature and come to
agreement. This is to prevent your time being wasted, as well as ours. The GitHub review process
- for major features is also important so that [affiliations with commit access](CODEOWNERS.md) can
+ for major features is also important so that [affiliations with commit access](../codeowners) can
come to agreement on the design. If it's appropriate to write a design document, the document must
be hosted either in the GitHub issue, or linked to from the issue and hosted in a world-readable
location.
@@ -44,15 +48,18 @@ to the following guidelines for all code, APIs, and documentation:
* PRs are expected to have 100% test coverage for added code. This can be verified with a coverage
build. If your PR cannot have 100% coverage for some reason please clearly explain why when you
open it.
-* Any PR that changes user-facing behavior **must** have associated documentation in the [docs](https://github.com/envoyproxy/gateway/tree/main/docs) folder of the repo as
- well as the [changelog](../releases).
+* Any PR that changes user-facing behavior **must** have associated documentation in the [docs](https://github.com/envoyproxy/gateway/tree/main/site) folder of the repo as
+ well as the [changelog](/blog/releases).
* All code comments and documentation are expected to have proper English grammar and punctuation.
If you are not a fluent English speaker (or a bad writer ;-)) please let us know and we will try
to find some help but there are no guarantees.
-* Your PR title should be descriptive, and generally start with a subsystem name followed by a
- colon. Examples:
+* Your PR title should be descriptive, and generally start with type that contains a subsystem name with `()` if necessary
+ and summary followed by a colon. format `chore/docs/feat/fix/refactor/style/test: summary`.
+ Examples:
* "docs: fix grammar error"
- * "translator: add new feature"
+ * "feat(translator): add new feature"
+ * "fix: fix xx bug"
+ * "chore: change ci & build tools etc"
* Your PR commit message will be used as the commit message when your PR is merged. You should
update this field if your PR diverges during review.
* Your PR description should have details on what the PR does. If it fixes an existing issue it
@@ -74,7 +81,7 @@ to the following guidelines for all code, APIs, and documentation:
## Maintainer PR Review Policy
-* See [CODEOWNERS.md](CODEOWNERS.md) for the current list of maintainers.
+* See [CODEOWNERS.md](../codeowners) for the current list of maintainers.
* A maintainer representing a different affiliation from the PR owner is required to review and
approve the PR.
* When the project matures, it is expected that a "domain expert" for the code the PR touches should
diff --git a/docs/v0.3.0/dev/README.md b/site/content/en/v0.4.0/contributions/DEVELOP.md
similarity index 88%
rename from docs/v0.3.0/dev/README.md
rename to site/content/en/v0.4.0/contributions/DEVELOP.md
index 0c3b055b6191..6f82c4a411f5 100644
--- a/docs/v0.3.0/dev/README.md
+++ b/site/content/en/v0.4.0/contributions/DEVELOP.md
@@ -1,4 +1,8 @@
-# Developer Guide
+---
+title: "Developer Guide"
+description: "This section tells how to develop Envoy Gateway."
+weight: 2
+---
Envoy Gateway is built using a [make][]-based build system. Our CI is based on [Github Actions][] using [workflows][].
@@ -6,7 +10,7 @@ Envoy Gateway is built using a [make][]-based build system. Our CI is based on [
### go
-* Version: 1.19
+* Version: 1.20
* Installation Guide: https://go.dev/doc/install
### make
@@ -34,15 +38,22 @@ Envoy Gateway is built using a [make][]-based build system. Our CI is based on [
### Building
-* Run `make build` to build the Envoy Gateway binary. __Note:__ The binary gets generated in the `bin/` directory
+* Run `make build` to build all the binaries.
+* Run `make build BINS="envoy-gateway"` to build the Envoy Gateway binary.
+* Run `make build BINS="egctl"` to build the egctl binary.
+
+__Note:__ The binaries get generated in the `bin/$OS/$ARCH` directory, for example, `bin/linux/amd64/`.
### Testing
* Run `make test` to run the golang tests.
+* Run `make testdata` to generate the golden YAML testdata files.
+
### Running Linters
* Run `make lint` to make sure your code passes all the linter checks.
+__Note:__ The `golangci-lint` configuration resides [here](https://github.com/envoyproxy/gateway/blob/main/tools/linter/golangci-lint/.golangci.yml).
### Building and Pushing the Image
@@ -63,7 +74,7 @@ __Note:__ Replace `IMAGE` with your registry's image name.
#### Option 2: Use a Custom Image
* Run `make kube-install-image` to build an image from the tip of your current branch and load it in the Kind cluster.
-* Run `make kube-deploy` to install Envoy Gateway into the Kind cluster using your custom image.
+* Run `IMAGE_PULL_POLICY=IfNotPresent make kube-deploy` to install Envoy Gateway into the Kind cluster using your custom image.
### Deploying Envoy Gateway in Kubernetes
@@ -134,7 +145,7 @@ verify signature was copied to [JWK Creator][] for generating the JWK. The JWK C
settings, i.e. `Signing` public key use and the `RS256` algorithm. The generated JWK was wrapped in a JWKS structure
and is hosted in the repo.
-[Quickstart]: https://github.com/envoyproxy/gateway/blob/main/docs/user/quickstart.md
+[Quickstart]: https://github.com/envoyproxy/gateway/blob/main/docs/latest/user/quickstart.md
[make]: https://www.gnu.org/software/make/
[Github Actions]: https://docs.github.com/en/actions
[workflows]: https://github.com/envoyproxy/gateway/tree/main/.github/workflows
diff --git a/docs/latest/dev/DOCS.md b/site/content/en/v0.4.0/contributions/DOCS.md
similarity index 95%
rename from docs/latest/dev/DOCS.md
rename to site/content/en/v0.4.0/contributions/DOCS.md
index fb49b9d55dda..8266c9e9a2bf 100644
--- a/docs/latest/dev/DOCS.md
+++ b/site/content/en/v0.4.0/contributions/DOCS.md
@@ -1,4 +1,8 @@
-# Working on the Envoy Gateway Docs
+---
+title: "Working on Envoy Gateway Docs"
+description: "This section tells the development of
+ Envoy Gateway Documents."
+---
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/releasing.md b/site/content/en/v0.4.0/contributions/RELEASING.md
similarity index 86%
rename from docs/v0.4.0/dev/releasing.md
rename to site/content/en/v0.4.0/contributions/RELEASING.md
index f0004caf3367..013707d45694 100644
--- a/docs/v0.4.0/dev/releasing.md
+++ b/site/content/en/v0.4.0/contributions/RELEASING.md
@@ -1,4 +1,7 @@
-# Release Process
+---
+title: "Release Process"
+description: "This section tells the release process of Envoy Gateway."
+---
This document guides maintainers through the process of creating an Envoy Gateway release.
@@ -68,6 +71,37 @@ export GITHUB_REMOTE=origin
18. Ensure you check the "This is a pre-release" checkbox when editing the GitHub release.
19. If you find any bugs in this process, please create an issue.
+### Setup cherry picker action
+
+After release branch cut, RM (Release Manager) should add job [cherrypick action](../../../.github/workflows/cherrypick.yaml) for target release.
+
+Configuration looks like following:
+
+```yaml
+ cherry_pick_release_v0_4:
+ runs-on: ubuntu-latest
+ name: Cherry pick into release-v0.4
+ if: ${{ contains(github.event.pull_request.labels.*.name, 'cherrypick/release-v0.4') && github.event.pull_request.merged == true }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+ - name: Cherry pick into release/v0.4
+ uses: carloscastrojumo/github-cherry-pick-action@v1.0.9
+ with:
+ branch: release/v0.4
+ title: "[release/v0.4] {old_title}"
+ body: "Cherry picking #{old_pull_request_id} onto release/v0.4"
+ labels: |
+ cherrypick/release-v0.4
+ # put release manager here
+ reviewers: |
+ AliceProxy
+```
+
+Replace `v0.4` with real branch name, and `AliceProxy` with the real name of RM.
+
## Minor Release
The following steps should be used for creating a minor release.
@@ -93,7 +127,8 @@ export GITHUB_REMOTE=origin
notes should be an accumulation of the release candidate release notes and any changes since the release
candidate.
2. Create a release announcement. Refer to [PR #635] as an example release announcement.
- 3. Generate the versioned release docs:
+ 3. Include the release in the compatibility matrix. Refer to [PR #1002] as an example.
+ 4. Generate the versioned release docs:
``` shell
make docs-release TAG=v${MAJOR_VERSION}.${MINOR_VERSION}
@@ -192,4 +227,5 @@ It's important that the world knows about the release. Use the following steps t
[Generate]: https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes
[PR #635]: https://github.com/envoyproxy/gateway/pull/635
[PR #958]: https://github.com/envoyproxy/gateway/pull/958
+[PR #1002]: https://github.com/envoyproxy/gateway/pull/1002
[VERSION]: https://github.com/envoyproxy/gateway/blob/main/VERSION
diff --git a/site/content/en/v0.4.0/contributions/_index.md b/site/content/en/v0.4.0/contributions/_index.md
new file mode 100644
index 000000000000..3255d996472a
--- /dev/null
+++ b/site/content/en/v0.4.0/contributions/_index.md
@@ -0,0 +1,5 @@
+---
+title: Get Involved
+description: "This section includes contents related to **Contributions**"
+weight: 100
+---
diff --git a/site/content/en/v0.4.0/design/_index.md b/site/content/en/v0.4.0/design/_index.md
new file mode 100644
index 000000000000..21650809f7da
--- /dev/null
+++ b/site/content/en/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/v0.4.0/design/bootstrap.md
similarity index 99%
rename from docs/v0.5.0/design/bootstrap.md
rename to site/content/en/v0.4.0/design/bootstrap.md
index 30f1b52116fa..9a8f0c789efa 100644
--- a/docs/v0.5.0/design/bootstrap.md
+++ b/site/content/en/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/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/v0.4.0/design/config-api.md
index 4caaefe3e439..ca5380151a8e 100644
--- a/docs/v0.5.0/design/config-api.md
+++ b/site/content/en/v0.4.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/v0.4.0/design/egctl.md
similarity index 98%
rename from docs/v0.4.0/design/egctl.md
rename to site/content/en/v0.4.0/design/egctl.md
index 7989ff49e5e2..0f67d99f1005 100644
--- a/docs/v0.4.0/design/egctl.md
+++ b/site/content/en/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/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/v0.4.0/design/extending-envoy-gateway.md
index 61278025eb0c..fd840848990c 100644
--- a/docs/v0.4.0/design/extending-envoy-gateway.md
+++ b/site/content/en/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
@@ -39,7 +41,7 @@ they create as a direct result of their modification of Envoy Gateway.
## Diagram
-![Architecture](../images/extension-example.png)
+![Architecture](/img/extension-example.png)
## Registering Extensions in Envoy Gateway
diff --git a/docs/v0.2.0/design/gatewayapi-translator.md b/site/content/en/v0.4.0/design/gatewayapi-translator.md
similarity index 99%
rename from docs/v0.2.0/design/gatewayapi-translator.md
rename to site/content/en/v0.4.0/design/gatewayapi-translator.md
index 3cf0da94f5aa..b83ed82588d9 100644
--- a/docs/v0.2.0/design/gatewayapi-translator.md
+++ b/site/content/en/v0.4.0/design/gatewayapi-translator.md
@@ -1,4 +1,7 @@
-# Gateway API Translator Design
+---
+title: "Gateway API Translator Design"
+weight: 4
+---
The Gateway API translates external resources, e.g. GatewayClass, from the configured Provider to the Intermediate
Representation (IR).
diff --git a/site/content/en/v0.4.0/design/goals.md b/site/content/en/v0.4.0/design/goals.md
new file mode 100644
index 000000000000..fd38b2004c61
--- /dev/null
+++ b/site/content/en/v0.4.0/design/goals.md
@@ -0,0 +1,91 @@
+---
+title: "Goals"
+weight: 1
+---
+
+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/docs/v0.4.0/design/rate-limit.md b/site/content/en/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/v0.4.0/design/rate-limit.md
index 7aaa226cf456..e6e0656c8190 100644
--- a/docs/v0.4.0/design/rate-limit.md
+++ b/site/content/en/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/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/v0.4.0/design/request-authentication.md
index dd269771cc15..82682bf2a0b7 100644
--- a/docs/v0.3.0/design/request-authentication.md
+++ b/site/content/en/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/v0.4.0/design/roadmap.md
similarity index 99%
rename from docs/v0.4.0/design/roadmap.md
rename to site/content/en/v0.4.0/design/roadmap.md
index 65f88de12149..949b7809a2a4 100644
--- a/docs/v0.4.0/design/roadmap.md
+++ b/site/content/en/v0.4.0/design/roadmap.md
@@ -1,4 +1,7 @@
-# Roadmap
+---
+title: "Roadmap"
+weight: -1
+---
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/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/v0.4.0/design/system-design.md
index 86114be37fa2..16123948ee72 100644
--- a/docs/v0.5.0/design/system-design.md
+++ b/site/content/en/v0.4.0/design/system-design.md
@@ -1,4 +1,7 @@
-# System Design
+---
+title: "System Design"
+weight: 2
+---
## Goals
@@ -17,7 +20,7 @@
## Architecture
-![Architecture](../images/architecture.png)
+![Architecture](/img/architecture.png)
## Configuration
diff --git a/docs/v0.4.0/design/tcp-udp-design.md b/site/content/en/v0.4.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/v0.4.0/design/tcp-udp-design.md
index 276221b897ba..f517e24fedae 100644
--- a/docs/v0.4.0/design/tcp-udp-design.md
+++ b/site/content/en/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/v0.4.0/design/watching.md
similarity index 99%
rename from docs/v0.2.0/design/watching.md
rename to site/content/en/v0.4.0/design/watching.md
index b8477a30e2d6..72a955043e0d 100644
--- a/docs/v0.2.0/design/watching.md
+++ b/site/content/en/v0.4.0/design/watching.md
@@ -1,4 +1,7 @@
-# Watching Components Design
+---
+title: "Watching Components Design"
+weight: 3
+---
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/site/content/en/v0.4.0/user/_index.md b/site/content/en/v0.4.0/user/_index.md
new file mode 100644
index 000000000000..32a4b32e7904
--- /dev/null
+++ b/site/content/en/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/v0.4.0/user/authn.md
similarity index 98%
rename from docs/v0.4.0/user/authn.md
rename to site/content/en/v0.4.0/user/authn.md
index 1a7dba621971..ed115c95471b 100644
--- a/docs/v0.4.0/user/authn.md
+++ b/site/content/en/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/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/v0.4.0/user/customize-envoyproxy.md
index 04b7062f4508..c561b520e049 100644
--- a/docs/v0.4.0/user/customize-envoyproxy.md
+++ b/site/content/en/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/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/v0.4.0/user/deployment-mode.md
index 8c409d4c44e9..4566e2cc83de 100644
--- a/docs/v0.4.0/user/deployment-mode.md
+++ b/site/content/en/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/v0.4.0/user/egctl.md
similarity index 99%
rename from docs/v0.4.0/user/egctl.md
rename to site/content/en/v0.4.0/user/egctl.md
index 08621e40f47a..29f0200f8967 100644
--- a/docs/v0.4.0/user/egctl.md
+++ b/site/content/en/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/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/v0.4.0/user/gatewayapi-support.md
index f1129da290c7..79e077498427 100644
--- a/docs/v0.4.0/user/gatewayapi-support.md
+++ b/site/content/en/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/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/v0.4.0/user/grpc-routing.md
index a18be6e9b9c4..393767fc4340 100644
--- a/docs/v0.4.0/user/grpc-routing.md
+++ b/site/content/en/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/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/v0.4.0/user/http-redirect.md
index dcd72749f368..da61bdaf32f3 100644
--- a/docs/v0.5.0/user/http-redirect.md
+++ b/site/content/en/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/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/v0.4.0/user/http-request-headers.md
index 5e1d77fe6d2f..17fe3b87bcb1 100644
--- a/docs/latest/user/http-request-headers.md
+++ b/site/content/en/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/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/v0.4.0/user/http-response-headers.md
index 6c77c2e6c2c4..4a27728003d7 100644
--- a/docs/latest/user/http-response-headers.md
+++ b/site/content/en/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/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/v0.4.0/user/http-routing.md
index 35f893586518..67fe8e48e04d 100644
--- a/docs/v0.4.0/user/http-routing.md
+++ b/site/content/en/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/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/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/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/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/v0.4.0/user/http-urlrewrite.md
index 88e29c3269cc..fb68ae883221 100644
--- a/docs/v0.5.0/user/http-urlrewrite.md
+++ b/site/content/en/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/v0.4.0/user/quickstart.md
similarity index 98%
rename from docs/v0.4.0/user/quickstart.md
rename to site/content/en/v0.4.0/user/quickstart.md
index c7d1ea099e40..7fc64879f366 100644
--- a/docs/v0.4.0/user/quickstart.md
+++ b/site/content/en/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/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/v0.4.0/user/rate-limit.md
index aaaca7064733..59e216f15d2c 100644
--- a/docs/v0.4.0/user/rate-limit.md
+++ b/site/content/en/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/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/v0.4.0/user/secure-gateways.md
index 8ada7c59978a..2e04000d5a7d 100644
--- a/docs/v0.5.0/user/secure-gateways.md
+++ b/site/content/en/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/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/v0.4.0/user/tcp-routing.md
index 1ffbc2553b4a..fea9b35341af 100644
--- a/docs/v0.4.0/user/tcp-routing.md
+++ b/site/content/en/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/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/v0.4.0/user/tls-passthrough.md
index cc8d71365488..fde4eb358249 100644
--- a/docs/v0.4.0/user/tls-passthrough.md
+++ b/site/content/en/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/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/v0.4.0/user/udp-routing.md
index dfbd8a76c550..68e81ad3f6c9 100644
--- a/docs/v0.4.0/user/udp-routing.md
+++ b/site/content/en/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/v0.5.0/_index.md b/site/content/en/v0.5.0/_index.md
new file mode 100644
index 000000000000..5a2e188b4a14
--- /dev/null
+++ b/site/content/en/v0.5.0/_index.md
@@ -0,0 +1,21 @@
++++
+title = "Welcome to Envoy Gateway"
+description = "Envoy Gateway Documents"
+linktitle = "Documentation"
+
+[[cascade]]
+type = "docs"
++++
+
+{{% alert title="Note" color="info" %}}
+
+This project is under **active** development. Many features are not complete. We would love for you to [Get Involved](contributions/)!
+
+{{% /alert %}}
+
+Envoy Gateway is an open source project for managing [Envoy Proxy](https://www.envoyproxy.io/) as a standalone or Kubernetes-based application
+gateway. [Gateway API](https://gateway-api.sigs.k8s.io/) resources are used to dynamically provision and configure the managed Envoy Proxies.
+
+![architecture](/img/traffic.png)
+
+## Ready to get started?
diff --git a/site/content/en/v0.5.0/api/_index.md b/site/content/en/v0.5.0/api/_index.md
new file mode 100644
index 000000000000..396d9ffcefcf
--- /dev/null
+++ b/site/content/en/v0.5.0/api/_index.md
@@ -0,0 +1,5 @@
+---
+title: "API"
+description: This section includes APIs of Envoy Gateway.
+weight: 80
+---
diff --git a/docs/v0.5.0/api/config_types.md b/site/content/en/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/v0.5.0/api/config_types.md
index 9ce37099fdcf..93764201f349 100644
--- a/docs/v0.5.0/api/config_types.md
+++ b/site/content/en/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/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/v0.5.0/api/extension_types.md
index 977cd2ac8611..5eb811ac4514 100644
--- a/docs/v0.5.0/api/extension_types.md
+++ b/site/content/en/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/v0.5.0/contributions/CODEOWNERS.md b/site/content/en/v0.5.0/contributions/CODEOWNERS.md
new file mode 100644
index 000000000000..63b751abde50
--- /dev/null
+++ b/site/content/en/v0.5.0/contributions/CODEOWNERS.md
@@ -0,0 +1,19 @@
+---
+title: "Maintainers"
+description: "This section includes Maintainers of Envoy Gateway."
+---
+
+## The following maintainers, listed in alphabetical order, own everything
+
+- @AliceProxy
+- @arkodg
+- @Xunzhuo
+- @zirain
+- @qicz
+
+## Emeritus Maintainers
+
+- @danehans
+- @alexgervais
+- @skriss
+- @youngnick
diff --git a/site/content/en/v0.5.0/contributions/CODE_OF_CONDUCT.md b/site/content/en/v0.5.0/contributions/CODE_OF_CONDUCT.md
new file mode 100644
index 000000000000..e19da050dff8
--- /dev/null
+++ b/site/content/en/v0.5.0/contributions/CODE_OF_CONDUCT.md
@@ -0,0 +1,6 @@
+---
+title: "Code of Conduct"
+description: "This section includes Code of Conduct of Envoy Gateway."
+---
+
+Envoy Gateway follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/main/code-of-conduct.md).
diff --git a/site/content/en/v0.5.0/contributions/CONTRIBUTING.md b/site/content/en/v0.5.0/contributions/CONTRIBUTING.md
new file mode 100644
index 000000000000..f94b2c940e97
--- /dev/null
+++ b/site/content/en/v0.5.0/contributions/CONTRIBUTING.md
@@ -0,0 +1,190 @@
+---
+title: "Contributing"
+description: "This section tells how to contribute to Envoy Gateway."
+weight: 3
+---
+
+We welcome contributions from the community. Please carefully review the [project goals](/about)
+and following guidelines to streamline your contributions.
+
+## Communication
+
+* Before starting work on a major feature, please contact us via GitHub or Slack. We will ensure no
+ one else is working on it and ask you to open a GitHub issue.
+* A "major feature" is defined as any change that is > 100 LOC altered (not including tests), or
+ changes any user-facing behavior. We will use the GitHub issue to discuss the feature and come to
+ agreement. This is to prevent your time being wasted, as well as ours. The GitHub review process
+ for major features is also important so that [affiliations with commit access](../codeowners) can
+ come to agreement on the design. If it's appropriate to write a design document, the document must
+ be hosted either in the GitHub issue, or linked to from the issue and hosted in a world-readable
+ location.
+* Small patches and bug fixes don't need prior communication.
+
+## Inclusivity
+
+The Envoy Gateway community has an explicit goal to be inclusive to all. As such, all PRs must adhere
+to the following guidelines for all code, APIs, and documentation:
+
+* The following words and phrases are not allowed:
+ * *Whitelist*: use allowlist instead.
+ * *Blacklist*: use denylist or blocklist instead.
+ * *Master*: use primary instead.
+ * *Slave*: use secondary or replica instead.
+* Documentation should be written in an inclusive style. The [Google developer
+ documentation](https://developers.google.com/style/inclusive-documentation) contains an excellent
+ reference on this topic.
+* The above policy is not considered definitive and may be amended in the future as industry best
+ practices evolve. Additional comments on this topic may be provided by maintainers during code
+ review.
+
+## Submitting a PR
+
+* Fork the repo.
+* Hack
+* DCO sign-off each commit. This can be done with `git commit -s`.
+* Submit your PR.
+* Tests will automatically run for you.
+* We will **not** merge any PR that is not passing tests.
+* PRs are expected to have 100% test coverage for added code. This can be verified with a coverage
+ build. If your PR cannot have 100% coverage for some reason please clearly explain why when you
+ open it.
+* Any PR that changes user-facing behavior **must** have associated documentation in the [docs](https://github.com/envoyproxy/gateway/tree/main/site) folder of the repo as
+ well as the [changelog](/blog/releases).
+* All code comments and documentation are expected to have proper English grammar and punctuation.
+ If you are not a fluent English speaker (or a bad writer ;-)) please let us know and we will try
+ to find some help but there are no guarantees.
+* Your PR title should be descriptive, and generally start with type that contains a subsystem name with `()` if necessary
+ and summary followed by a colon. format `chore/docs/feat/fix/refactor/style/test: summary`.
+ Examples:
+ * "docs: fix grammar error"
+ * "feat(translator): add new feature"
+ * "fix: fix xx bug"
+ * "chore: change ci & build tools etc"
+* Your PR commit message will be used as the commit message when your PR is merged. You should
+ update this field if your PR diverges during review.
+* Your PR description should have details on what the PR does. If it fixes an existing issue it
+ should end with "Fixes #XXX".
+* If your PR is co-authored or based on an earlier PR from another contributor,
+ please attribute them with `Co-authored-by: name `. See
+ GitHub's [multiple author
+ guidance](https://help.github.com/en/github/committing-changes-to-your-project/creating-a-commit-with-multiple-authors)
+ for further details.
+* When all tests are passing and all other conditions described herein are satisfied, a maintainer
+ will be assigned to review and merge the PR.
+* Once you submit a PR, *please do not rebase it*. It's much easier to review if subsequent commits
+ are new commits and/or merges. We squash and merge so the number of commits you have in the PR
+ doesn't matter.
+* We expect that once a PR is opened, it will be actively worked on until it is merged or closed.
+ We reserve the right to close PRs that are not making progress. This is generally defined as no
+ changes for 7 days. Obviously PRs that are closed due to lack of activity can be reopened later.
+ Closing stale PRs helps us to keep on top of all the work currently in flight.
+
+## Maintainer PR Review Policy
+
+* See [CODEOWNERS.md](../codeowners) for the current list of maintainers.
+* A maintainer representing a different affiliation from the PR owner is required to review and
+ approve the PR.
+* When the project matures, it is expected that a "domain expert" for the code the PR touches should
+ review the PR. This person does not require commit access, just domain knowledge.
+* The above rules may be waived for PRs which only update docs or comments, or trivial changes to
+ tests and tools (where trivial is decided by the maintainer in question).
+* If there is a question on who should review a PR please discuss in Slack.
+* Anyone is welcome to review any PR that they want, whether they are a maintainer or not.
+* Please make sure that the PR title, commit message, and description are updated if the PR changes
+ significantly during review.
+* Please **clean up the title and body** before merging. By default, GitHub fills the squash merge
+ title with the original title, and the commit body with every individual commit from the PR.
+ The maintainer doing the merge should make sure the title follows the guidelines above and should
+ overwrite the body with the original commit message from the PR (cleaning it up if necessary)
+ while preserving the PR author's final DCO sign-off.
+
+## Decision making
+
+This is a new and complex project, and we need to make a lot of decisions very quickly.
+To this end, we've settled on this process for making (possibly contentious) decisions:
+
+* For decisions that need a record, we create an issue.
+* In that issue, we discuss opinions, then a maintainer can call for a vote in a comment.
+* Maintainers can cast binding votes on that comment by reacting or replying in another comment.
+* Non-maintainer community members are welcome to cast non-binding votes by either of these methods.
+* Voting will be resolved by simple majority.
+* In the event of deadlocks, the question will be put to steering instead.
+
+## DCO: Sign your work
+
+The sign-off is a simple line at the end of the explanation for the
+patch, which certifies that you wrote it or otherwise have the right to
+pass it on as an open-source patch. The rules are pretty simple: if you
+can certify the below (from
+[developercertificate.org](https://developercertificate.org/)):
+
+```
+Developer Certificate of Origin
+Version 1.1
+
+Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
+660 York Street, Suite 102,
+San Francisco, CA 94110 USA
+
+Everyone is permitted to copy and distribute verbatim copies of this
+license document, but changing it is not allowed.
+
+
+Developer's Certificate of Origin 1.1
+
+By making a contribution to this project, I certify that:
+
+(a) The contribution was created in whole or in part by me and I
+ have the right to submit it under the open source license
+ indicated in the file; or
+
+(b) The contribution is based upon previous work that, to the best
+ of my knowledge, is covered under an appropriate open source
+ license and I have the right under that license to submit that
+ work with modifications, whether created in whole or in part
+ by me, under the same open source license (unless I am
+ permitted to submit under a different license), as indicated
+ in the file; or
+
+(c) The contribution was provided directly to me by some other
+ person who certified (a), (b) or (c) and I have not modified
+ it.
+
+(d) I understand and agree that this project and the contribution
+ are public and that a record of the contribution (including all
+ personal information I submit with it, including my sign-off) is
+ maintained indefinitely and may be redistributed consistent with
+ this project or the open source license(s) involved.
+```
+
+then you just add a line to every git commit message:
+
+ Signed-off-by: Joe Smith
+
+using your real name (sorry, no pseudonyms or anonymous contributions.)
+
+You can add the sign-off when creating the git commit via `git commit -s`.
+
+If you want this to be automatic you can set up some aliases:
+
+```bash
+git config --add alias.amend "commit -s --amend"
+git config --add alias.c "commit -s"
+```
+
+## Fixing DCO
+
+If your PR fails the DCO check, it's necessary to fix the entire commit history in the PR. Best
+practice is to [squash](https://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html)
+the commit history to a single commit, append the DCO sign-off as described above, and [force
+push](https://git-scm.com/docs/git-push#git-push---force). For example, if you have 2 commits in
+your history:
+
+```bash
+git rebase -i HEAD^^
+(interactive squash + DCO append)
+git push origin -f
+```
+
+Note, that in general rewriting history in this way is a hindrance to the review process and this
+should only be done to correct a DCO mistake.
diff --git a/site/content/en/v0.5.0/contributions/DEVELOP.md b/site/content/en/v0.5.0/contributions/DEVELOP.md
new file mode 100644
index 000000000000..6f82c4a411f5
--- /dev/null
+++ b/site/content/en/v0.5.0/contributions/DEVELOP.md
@@ -0,0 +1,163 @@
+---
+title: "Developer Guide"
+description: "This section tells how to develop Envoy Gateway."
+weight: 2
+---
+
+Envoy Gateway is built using a [make][]-based build system. Our CI is based on [Github Actions][] using [workflows][].
+
+## Prerequisites
+
+### go
+
+* Version: 1.20
+* Installation Guide: https://go.dev/doc/install
+
+### make
+
+* Recommended Version: 4.0 or later
+* Installation Guide: https://www.gnu.org/software/make
+
+### docker
+
+* Optional when you want to build a Docker image or run `make` inside Docker.
+* Recommended Version: 20.10.16
+* Installation Guide: https://docs.docker.com/engine/install
+
+### python3
+
+* Need a `python3` program
+* Must have a functioning `venv` module; this is part of the standard
+ library, but some distributions (such as Debian and Ubuntu) replace
+ it with a stub and require you to install a `python3-venv` package
+ separately.
+
+## Quickstart
+
+* Run `make help` to see all the available targets to build, test and run Envoy Gateway.
+
+### Building
+
+* Run `make build` to build all the binaries.
+* Run `make build BINS="envoy-gateway"` to build the Envoy Gateway binary.
+* Run `make build BINS="egctl"` to build the egctl binary.
+
+__Note:__ The binaries get generated in the `bin/$OS/$ARCH` directory, for example, `bin/linux/amd64/`.
+
+### Testing
+
+* Run `make test` to run the golang tests.
+
+* Run `make testdata` to generate the golden YAML testdata files.
+
+### Running Linters
+
+* Run `make lint` to make sure your code passes all the linter checks.
+__Note:__ The `golangci-lint` configuration resides [here](https://github.com/envoyproxy/gateway/blob/main/tools/linter/golangci-lint/.golangci.yml).
+
+### Building and Pushing the Image
+
+* Run `IMAGE=docker.io/you/gateway-dev make image` to build the docker image.
+* Run `IMAGE=docker.io/you/gateway-dev make push-multiarch` to build and push the multi-arch docker image.
+
+__Note:__ Replace `IMAGE` with your registry's image name.
+
+### Deploying Envoy Gateway for Test/Dev
+
+* Run `make create-cluster` to create a [Kind][] cluster.
+
+#### Option 1: Use the Latest [gateway-dev][] Image
+
+* Run `TAG=latest make kube-deploy` to deploy Envoy Gateway in the Kind cluster using the latest image. Replace `latest`
+ to use a different image tag.
+
+#### Option 2: Use a Custom Image
+
+* Run `make kube-install-image` to build an image from the tip of your current branch and load it in the Kind cluster.
+* Run `IMAGE_PULL_POLICY=IfNotPresent make kube-deploy` to install Envoy Gateway into the Kind cluster using your custom image.
+
+### Deploying Envoy Gateway in Kubernetes
+
+* Run `TAG=latest make kube-deploy` to deploy Envoy Gateway using the latest image into a Kubernetes cluster (linked to
+ the current kube context). Preface the command with `IMAGE` or replace `TAG` to use a different Envoy Gateway image or
+ tag.
+* Run `make kube-undeploy` to uninstall Envoy Gateway from the cluster.
+
+__Note:__ Envoy Gateway is tested against Kubernetes v1.24.0.
+
+### Demo Setup
+
+* Run `make kube-demo` to deploy a demo backend service, gatewayclass, gateway and httproute resource
+(similar to steps outlined in the [Quickstart][] docs) and test the configuration.
+* Run `make kube-demo-undeploy` to delete the resources created by the `make kube-demo` command.
+
+### Run Gateway API Conformance Tests
+
+The commands below deploy Envoy Gateway to a Kubernetes cluster and run the Gateway API conformance tests. Refer to the
+Gateway API [conformance homepage][] to learn more about the tests. If Envoy Gateway is already installed, run
+`TAG=latest make run-conformance` to run the conformance tests.
+
+#### On a Linux Host
+
+* Run `TAG=latest make conformance` to create a Kind cluster, install Envoy Gateway using the latest [gateway-dev][]
+ image, and run Gateway API conformance tests.
+
+#### On a Mac Host
+
+Since Mac doesn't support [directly exposing][] the Docker network to the Mac host, use one of the following
+workarounds to run conformance tests:
+
+* Deploy your own Kubernetes cluster or use Docker Desktop with [Kubernetes support][] and then run
+ `TAG=latest make kube-deploy run-conformance`. This will install Envoy Gateway using the latest [gateway-dev][] image
+ to the Kubernetes cluster using the current kubectl context and run the conformance tests. Use `make kube-undeploy` to
+ uninstall Envoy Gateway.
+* Install and run [Docker Mac Net Connect][mac_connect] and then run `TAG=latest make conformance`.
+
+__Note:__ Preface commands with `IMAGE` or replace `TAG` to use a different Envoy Gateway image or tag. If `TAG`
+is unspecified, the short SHA of your current branch is used.
+
+### Debugging the Envoy Config
+
+An easy way to view the envoy config that Envoy Gateway is using is to port-forward to the admin interface port
+(currently `19000`) on the Envoy deployment that corresponds to a Gateway so that it can be accessed locally.
+
+Get the name of the Envoy deployment. The following example is for Gateway `eg` in the `default` namespace:
+
+```shell
+export ENVOY_DEPLOYMENT=$(kubectl get deploy -n envoy-gateway-system --selector=gateway.envoyproxy.io/owning-gateway-namespace=default,gateway.envoyproxy.io/owning-gateway-name=eg -o jsonpath='{.items[0].metadata.name}')
+```
+
+Port forward the admin interface port:
+
+```shell
+kubectl port-forward deploy/${ENVOY_DEPLOYMENT} -n envoy-gateway-system 19000:19000
+```
+
+Now you are able to view the running Envoy configuration by navigating to `127.0.0.1:19000/config_dump`.
+
+There are many other endpoints on the [Envoy admin interface][] that may be helpful when debugging.
+
+### JWT Testing
+
+An example [JSON Web Token (JWT)][jwt] and [JSON Web Key Set (JWKS)][jwks] are used for the [request authentication][]
+user guide. The JWT was created by the [JWT Debugger][], using the `RS256` algorithm. The public key from the JWTs
+verify signature was copied to [JWK Creator][] for generating the JWK. The JWK Creator was configured with matching
+settings, i.e. `Signing` public key use and the `RS256` algorithm. The generated JWK was wrapped in a JWKS structure
+and is hosted in the repo.
+
+[Quickstart]: https://github.com/envoyproxy/gateway/blob/main/docs/latest/user/quickstart.md
+[make]: https://www.gnu.org/software/make/
+[Github Actions]: https://docs.github.com/en/actions
+[workflows]: https://github.com/envoyproxy/gateway/tree/main/.github/workflows
+[Kind]: https://kind.sigs.k8s.io/
+[conformance homepage]: https://gateway-api.sigs.k8s.io/concepts/conformance/
+[directly exposing]: https://kind.sigs.k8s.io/docs/user/loadbalancer/
+[Kubernetes support]: https://docs.docker.com/desktop/kubernetes/
+[gateway-dev]: https://hub.docker.com/r/envoyproxy/gateway-dev/tags
+[mac_connect]: https://github.com/chipmk/docker-mac-net-connect
+[Envoy admin interface]: https://www.envoyproxy.io/docs/envoy/latest/operations/admin#operations-admin-interface
+[jwt]: https://tools.ietf.org/html/rfc7519
+[jwks]: https://tools.ietf.org/html/rfc7517
+[request authentication]: https://gateway.envoyproxy.io/latest/user/authn.html
+[JWT Debugger]: https://jwt.io/
+[JWK Creator]: https://russelldavies.github.io/jwk-creator/
diff --git a/site/content/en/v0.5.0/contributions/DOCS.md b/site/content/en/v0.5.0/contributions/DOCS.md
new file mode 100644
index 000000000000..8266c9e9a2bf
--- /dev/null
+++ b/site/content/en/v0.5.0/contributions/DOCS.md
@@ -0,0 +1,67 @@
+---
+title: "Working on Envoy Gateway Docs"
+description: "This section tells the development of
+ Envoy Gateway Documents."
+---
+
+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/site/content/en/v0.5.0/contributions/RELEASING.md b/site/content/en/v0.5.0/contributions/RELEASING.md
new file mode 100644
index 000000000000..013707d45694
--- /dev/null
+++ b/site/content/en/v0.5.0/contributions/RELEASING.md
@@ -0,0 +1,231 @@
+---
+title: "Release Process"
+description: "This section tells the release process of Envoy Gateway."
+---
+
+This document guides maintainers through the process of creating an Envoy Gateway release.
+
+- [Release Candidate](#release-candidate)
+- [Minor Release](#minor-release)
+- [Announce the Release](#announce-the-release)
+
+## Release Candidate
+
+The following steps should be used for creating a release candidate.
+
+### Prerequisites
+
+- Permissions to push to the Envoy Gateway repository.
+
+Set environment variables for use in subsequent steps:
+
+```shell
+export MAJOR_VERSION=0
+export MINOR_VERSION=3
+export RELEASE_CANDIDATE_NUMBER=1
+export GITHUB_REMOTE=origin
+```
+
+1. Clone the repo, checkout the `main` branch, ensure it’s up-to-date, and your local branch is clean.
+2. Create a topic branch for adding the release notes and updating the [VERSION][] file with the release version. Refer to previous [release notes][] and [VERSION][] for additional details.
+3. Sign, commit, and push your changes to your fork.
+4. Submit a [Pull Request][] to merge the changes into the `main` branch. Do not proceed until your PR has merged and
+ the [Build and Test][] has successfully completed.
+5. Create a new release branch from `main`. The release branch should be named
+ `release/v${MAJOR_VERSION}.${MINOR_VERSION}`, e.g. `release/v0.3`.
+
+ ```shell
+ git checkout -b release/v${MAJOR_VERSION}.${MINOR_VERSION}
+ ```
+
+6. Push the branch to the Envoy Gateway repo.
+
+ ```shell
+ git push ${GITHUB_REMOTE} release/v${MAJOR_VERSION}.${MINOR_VERSION}
+ ```
+
+7. Create a topic branch for updating the Envoy proxy image to the tag supported by the release. Reference [PR #958][]
+ for additional details on updating the image tag.
+8. Sign, commit, and push your changes to your fork.
+9. Submit a [Pull Request][] to merge the changes into the `release/v${MAJOR_VERSION}.${MINOR_VERSION}` branch. Do not
+ proceed until your PR has merged into the release branch and the [Build and Test][] has completed for your PR.
+10. Ensure your release branch is up-to-date and tag the head of your release branch with the release candidate number.
+
+ ```shell
+ git tag -a v${MAJOR_VERSION}.${MINOR_VERSION}.0-rc.${RELEASE_CANDIDATE_NUMBER} -m 'Envoy Gateway v${MAJOR_VERSION}.${MINOR_VERSION}.0-rc.${RELEASE_CANDIDATE_NUMBER} Release Candidate'
+ ```
+
+11. Push the tag to the Envoy Gateway repository.
+
+ ```shell
+ git push ${GITHUB_REMOTE} v${MAJOR_VERSION}.${MINOR_VERSION}.0-rc.${RELEASE_CANDIDATE_NUMBER}
+ ```
+
+12. This will trigger the [release GitHub action][] that generates the release, release artifacts, etc.
+13. Confirm that the [release workflow][] completed successfully.
+14. Confirm that the Envoy Gateway [image][] with the correct release tag was published to Docker Hub.
+15. Confirm that the [release][] was created.
+16. Note that the [Quickstart Guide][] references are __not__ updated for release candidates. However, test
+ the quickstart steps using the release candidate by manually updating the links.
+17. [Generate][] the GitHub changelog.
+18. Ensure you check the "This is a pre-release" checkbox when editing the GitHub release.
+19. If you find any bugs in this process, please create an issue.
+
+### Setup cherry picker action
+
+After release branch cut, RM (Release Manager) should add job [cherrypick action](../../../.github/workflows/cherrypick.yaml) for target release.
+
+Configuration looks like following:
+
+```yaml
+ cherry_pick_release_v0_4:
+ runs-on: ubuntu-latest
+ name: Cherry pick into release-v0.4
+ if: ${{ contains(github.event.pull_request.labels.*.name, 'cherrypick/release-v0.4') && github.event.pull_request.merged == true }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+ - name: Cherry pick into release/v0.4
+ uses: carloscastrojumo/github-cherry-pick-action@v1.0.9
+ with:
+ branch: release/v0.4
+ title: "[release/v0.4] {old_title}"
+ body: "Cherry picking #{old_pull_request_id} onto release/v0.4"
+ labels: |
+ cherrypick/release-v0.4
+ # put release manager here
+ reviewers: |
+ AliceProxy
+```
+
+Replace `v0.4` with real branch name, and `AliceProxy` with the real name of RM.
+
+## Minor Release
+
+The following steps should be used for creating a minor release.
+
+### Prerequisites
+
+- Permissions to push to the Envoy Gateway repository.
+- A release branch that has been cut from the corresponding release candidate. Refer to the
+ [Release Candidate](#release-candidate) section for additional details on cutting a release candidate.
+
+Set environment variables for use in subsequent steps:
+
+```shell
+export MAJOR_VERSION=0
+export MINOR_VERSION=3
+export GITHUB_REMOTE=origin
+```
+
+1. Clone the repo, checkout the `main` branch, ensure it’s up-to-date, and your local branch is clean.
+2. Create a topic branch for adding the release notes, release announcement, and versioned release docs.
+
+ 1. Create the release notes. Reference previous [release notes][] for additional details. __Note:__ The release
+ notes should be an accumulation of the release candidate release notes and any changes since the release
+ candidate.
+ 2. Create a release announcement. Refer to [PR #635] as an example release announcement.
+ 3. Include the release in the compatibility matrix. Refer to [PR #1002] as an example.
+ 4. Generate the versioned release docs:
+
+ ``` shell
+ make docs-release TAG=v${MAJOR_VERSION}.${MINOR_VERSION}
+ ```
+
+3. Sign, commit, and push your changes to your fork.
+4. Submit a [Pull Request][] to merge the changes into the `main` branch. Do not proceed until all your PRs have merged
+ and the [Build and Test][] has completed for your final PR.
+
+5. Checkout the release branch.
+
+ ```shell
+ git checkout -b release/v${MAJOR_VERSION}.${MINOR_VERSION} $GITHUB_REMOTE/release/v${MAJOR_VERSION}.${MINOR_VERSION}
+ ```
+
+6. If the tip of the release branch does not match the tip of `main`, perform the following:
+
+ 1. Create a topic branch from the release branch.
+ 2. Cherry-pick the commits from `main` that differ from the release branch.
+ 3. Run tests locally, e.g. `make lint`.
+ 4. Sign, commit, and push your topic branch to your Envoy Gateway fork.
+ 5. Submit a PR to merge the topic from of your fork into the Envoy Gateway release branch.
+ 6. Do not proceed until the PR has merged and CI passes for the merged PR.
+ 7. If you are still on your topic branch, change to the release branch:
+
+ ```shell
+ git checkout release/v${MAJOR_VERSION}.${MINOR_VERSION}
+ ```
+
+ 8. Ensure your local release branch is up-to-date:
+
+ ```shell
+ git pull $GITHUB_REMOTE release/v${MAJOR_VERSION}.${MINOR_VERSION}
+ ```
+
+7. Tag the head of your release branch with the release tag. For example:
+
+ ```shell
+ git tag -a v${MAJOR_VERSION}.${MINOR_VERSION}.0 -m 'Envoy Gateway v${MAJOR_VERSION}.${MINOR_VERSION}.0 Release'
+ ```
+
+ __Note:__ The tag version differs from the release branch by including the `.0` patch version.
+
+8. Push the tag to the Envoy Gateway repository.
+
+ ```shell
+ git push origin v${MAJOR_VERSION}.${MINOR_VERSION}.0
+ ```
+
+9. This will trigger the [release GitHub action][] that generates the release, release artifacts, etc.
+10. Confirm that the [release workflow][] completed successfully.
+11. Confirm that the Envoy Gateway [image][] with the correct release tag was published to Docker Hub.
+12. Confirm that the [release][] was created.
+13. Confirm that the steps in the [Quickstart Guide][] work as expected.
+14. [Generate][] the GitHub changelog and include the following text at the beginning of the release page:
+
+ ```console
+ # Release Announcement
+
+ Check out the [v${MAJOR_VERSION}.${MINOR_VERSION} release announcement]
+ (https://gateway.envoyproxy.io/releases/v${MAJOR_VERSION}.${MINOR_VERSION}.html) to learn more about the release.
+ ```
+
+If you find any bugs in this process, please create an issue.
+
+## Announce the Release
+
+It's important that the world knows about the release. Use the following steps to announce the release.
+
+1. Set the release information in the Envoy Gateway Slack channel. For example:
+
+ ```shell
+ Envoy Gateway v${MAJOR_VERSION}.${MINOR_VERSION} has been released: https://github.com/envoyproxy/gateway/releases/tag/v${MAJOR_VERSION}.${MINOR_VERSION}.0
+ ```
+
+2. Send a message to the Envoy Gateway Slack channel. For example:
+
+ ```shell
+ On behalf of the entire Envoy Gateway community, I am pleased to announce the release of Envoy Gateway
+ v${MAJOR_VERSION}.${MINOR_VERSION}. A big thank you to all the contributors that made this release possible.
+ Refer to the official v${MAJOR_VERSION}.${MINOR_VERSION} announcement for release details and the project docs
+ to start using Envoy Gateway.
+ ...
+ ```
+
+ Link to the GitHub release and release announcement page that highlights the release.
+
+[release notes]: https://github.com/envoyproxy/gateway/tree/main/release-notes
+[Pull Request]: https://github.com/envoyproxy/gateway/pulls
+[Quickstart Guide]: https://github.com/envoyproxy/gateway/blob/main/docs/user/quickstart.md
+[Build and Test]: https://github.com/envoyproxy/gateway/blob/main/.github/workflows/build_and_test.yaml
+[release GitHub action]: https://github.com/envoyproxy/gateway/blob/main/.github/workflows/release.yaml
+[release workflow]: https://github.com/envoyproxy/gateway/actions/workflows/release.yaml
+[image]: https://hub.docker.com/r/envoyproxy/gateway/tags
+[release]: https://github.com/envoyproxy/gateway/releases
+[Generate]: https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes
+[PR #635]: https://github.com/envoyproxy/gateway/pull/635
+[PR #958]: https://github.com/envoyproxy/gateway/pull/958
+[PR #1002]: https://github.com/envoyproxy/gateway/pull/1002
+[VERSION]: https://github.com/envoyproxy/gateway/blob/main/VERSION
diff --git a/site/content/en/v0.5.0/contributions/_index.md b/site/content/en/v0.5.0/contributions/_index.md
new file mode 100644
index 000000000000..3255d996472a
--- /dev/null
+++ b/site/content/en/v0.5.0/contributions/_index.md
@@ -0,0 +1,5 @@
+---
+title: Get Involved
+description: "This section includes contents related to **Contributions**"
+weight: 100
+---
diff --git a/site/content/en/v0.5.0/design/_index.md b/site/content/en/v0.5.0/design/_index.md
new file mode 100644
index 000000000000..21650809f7da
--- /dev/null
+++ b/site/content/en/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/v0.5.0/design/accesslog.md
similarity index 99%
rename from docs/v0.5.0/design/accesslog.md
rename to site/content/en/v0.5.0/design/accesslog.md
index 6d8b9d0c218c..46f39afa8eff 100644
--- a/docs/v0.5.0/design/accesslog.md
+++ b/site/content/en/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/v0.5.0/design/bootstrap.md
similarity index 99%
rename from docs/v0.4.0/design/bootstrap.md
rename to site/content/en/v0.5.0/design/bootstrap.md
index 30f1b52116fa..9a8f0c789efa 100644
--- a/docs/v0.4.0/design/bootstrap.md
+++ b/site/content/en/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/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/v0.5.0/design/config-api.md
index 4caaefe3e439..ca5380151a8e 100644
--- a/docs/v0.4.0/design/config-api.md
+++ b/site/content/en/v0.5.0/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/v0.5.0/design/egctl.md
similarity index 98%
rename from docs/v0.5.0/design/egctl.md
rename to site/content/en/v0.5.0/design/egctl.md
index 7989ff49e5e2..0f67d99f1005 100644
--- a/docs/v0.5.0/design/egctl.md
+++ b/site/content/en/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/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/v0.5.0/design/envoy-patch-policy.md
index 0116c8e6336b..d34937d05ef1 100644
--- a/docs/latest/design/envoy-patch-policy.md
+++ b/site/content/en/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/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/v0.5.0/design/extending-envoy-gateway.md
index df56964a5731..04e211fa537d 100644
--- a/docs/v0.5.0/design/extending-envoy-gateway.md
+++ b/site/content/en/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
@@ -39,7 +41,7 @@ they create as a direct result of their modification of Envoy Gateway.
## Diagram
-![Architecture](../images/extension-example.png)
+![Architecture](/img/extension-example.png)
## Registering Extensions in Envoy Gateway
diff --git a/site/content/en/v0.5.0/design/gatewayapi-translator.md b/site/content/en/v0.5.0/design/gatewayapi-translator.md
new file mode 100644
index 000000000000..b83ed82588d9
--- /dev/null
+++ b/site/content/en/v0.5.0/design/gatewayapi-translator.md
@@ -0,0 +1,253 @@
+---
+title: "Gateway API Translator Design"
+weight: 4
+---
+
+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/site/content/en/v0.5.0/design/goals.md b/site/content/en/v0.5.0/design/goals.md
new file mode 100644
index 000000000000..fd38b2004c61
--- /dev/null
+++ b/site/content/en/v0.5.0/design/goals.md
@@ -0,0 +1,91 @@
+---
+title: "Goals"
+weight: 1
+---
+
+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/docs/latest/design/local-envoy-gateway.md b/site/content/en/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/v0.5.0/design/local-envoy-gateway.md
index d382b8cfff82..aad0dc5f6f27 100644
--- a/docs/latest/design/local-envoy-gateway.md
+++ b/site/content/en/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/v0.5.0/design/metrics.md
similarity index 98%
rename from docs/v0.5.0/design/metrics.md
rename to site/content/en/v0.5.0/design/metrics.md
index 2a2924a993a5..b226db6a0027 100644
--- a/docs/v0.5.0/design/metrics.md
+++ b/site/content/en/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/v0.5.0/design/pprof.md
similarity index 97%
rename from docs/v0.5.0/design/pprof.md
rename to site/content/en/v0.5.0/design/pprof.md
index 0e0f3bdb64a6..68a64695dd5c 100644
--- a/docs/v0.5.0/design/pprof.md
+++ b/site/content/en/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/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/v0.5.0/design/rate-limit.md
index fb326b080b29..28ebbab8b360 100644
--- a/docs/v0.5.0/design/rate-limit.md
+++ b/site/content/en/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/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/v0.5.0/design/request-authentication.md
index 6b2192eadfd9..82682bf2a0b7 100644
--- a/docs/v0.4.0/design/request-authentication.md
+++ b/site/content/en/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/v0.5.0/design/roadmap.md
similarity index 99%
rename from docs/v0.5.0/design/roadmap.md
rename to site/content/en/v0.5.0/design/roadmap.md
index 7304335d9aa5..baa3823260d8 100644
--- a/docs/v0.5.0/design/roadmap.md
+++ b/site/content/en/v0.5.0/design/roadmap.md
@@ -1,4 +1,7 @@
-# Roadmap
+---
+title: "Roadmap"
+weight: -1
+---
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/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/v0.5.0/design/system-design.md
index 86114be37fa2..16123948ee72 100644
--- a/docs/v0.4.0/design/system-design.md
+++ b/site/content/en/v0.5.0/design/system-design.md
@@ -1,4 +1,7 @@
-# System Design
+---
+title: "System Design"
+weight: 2
+---
## Goals
@@ -17,7 +20,7 @@
## Architecture
-![Architecture](../images/architecture.png)
+![Architecture](/img/architecture.png)
## Configuration
diff --git a/docs/v0.5.0/design/tcp-udp-design.md b/site/content/en/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/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/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/v0.5.0/design/tracing.md
similarity index 99%
rename from docs/v0.5.0/design/tracing.md
rename to site/content/en/v0.5.0/design/tracing.md
index 73d7b94ce214..22d0f2e969ab 100644
--- a/docs/v0.5.0/design/tracing.md
+++ b/site/content/en/v0.5.0/design/tracing.md
@@ -1,4 +1,6 @@
-# Observability: Accesslog
+---
+title: "Observability: Accesslog"
+---
## Overview
diff --git a/site/content/en/v0.5.0/design/watching.md b/site/content/en/v0.5.0/design/watching.md
new file mode 100644
index 000000000000..72a955043e0d
--- /dev/null
+++ b/site/content/en/v0.5.0/design/watching.md
@@ -0,0 +1,120 @@
+---
+title: "Watching Components Design"
+weight: 3
+---
+
+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/v0.5.0/install/_index.md b/site/content/en/v0.5.0/install/_index.md
new file mode 100644
index 000000000000..b4c6f79c6fda
--- /dev/null
+++ b/site/content/en/v0.5.0/install/_index.md
@@ -0,0 +1,5 @@
+---
+title: "Installation"
+description: This section includes installation related contents of Envoy Gateway.
+weight: 70
+---
diff --git a/docs/latest/helm/api.md b/site/content/en/v0.5.0/install/api.md
similarity index 98%
rename from docs/latest/helm/api.md
rename to site/content/en/v0.5.0/install/api.md
index 98eb8e373049..130c82250ced 100644
--- a/docs/latest/helm/api.md
+++ b/site/content/en/v0.5.0/install/api.md
@@ -1,4 +1,6 @@
-# gateway-helm
+---
+title: "Helm Chart Values"
+---
![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/site/content/en/v0.5.0/user/_index.md b/site/content/en/v0.5.0/user/_index.md
new file mode 100644
index 000000000000..32a4b32e7904
--- /dev/null
+++ b/site/content/en/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/v0.5.0/user/authn.md
similarity index 98%
rename from docs/v0.5.0/user/authn.md
rename to site/content/en/v0.5.0/user/authn.md
index 1344248cf607..f09bd31108e6 100644
--- a/docs/v0.5.0/user/authn.md
+++ b/site/content/en/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/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/v0.5.0/user/customize-envoyproxy.md
index 924799e1b9e5..1be0298ffd4d 100644
--- a/docs/v0.5.0/user/customize-envoyproxy.md
+++ b/site/content/en/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/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/v0.5.0/user/deployment-mode.md
index 3e523b6680ec..2a35c5bafdec 100644
--- a/docs/v0.5.0/user/deployment-mode.md
+++ b/site/content/en/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/v0.5.0/user/egctl.md
similarity index 99%
rename from docs/v0.5.0/user/egctl.md
rename to site/content/en/v0.5.0/user/egctl.md
index bd027daa3e6a..a09b1b434813 100644
--- a/docs/v0.5.0/user/egctl.md
+++ b/site/content/en/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/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/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/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/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/v0.5.0/user/gateway-address.md
index 9bf1f8f6671d..c3f264aa35ed 100644
--- a/docs/v0.5.0/user/gateway-address.md
+++ b/site/content/en/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/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/v0.5.0/user/gatewayapi-support.md
index 7894a198dc3a..368745d2f759 100644
--- a/docs/v0.5.0/user/gatewayapi-support.md
+++ b/site/content/en/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/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/v0.5.0/user/grpc-routing.md
index a6fc3925c06e..f95785c32cf5 100644
--- a/docs/v0.5.0/user/grpc-routing.md
+++ b/site/content/en/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/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/v0.5.0/user/http-redirect.md
index dcd72749f368..da61bdaf32f3 100644
--- a/docs/v0.4.0/user/http-redirect.md
+++ b/site/content/en/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/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/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/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/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/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/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/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/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/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/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/v0.5.0/user/http-routing.md
index c6a70b63664c..eb77751344ad 100644
--- a/docs/v0.5.0/user/http-routing.md
+++ b/site/content/en/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/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/v0.5.0/user/http-traffic-splitting.md
index 92fed8bd0b11..94f021b5aecb 100644
--- a/docs/latest/user/http-traffic-splitting.md
+++ b/site/content/en/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/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/v0.5.0/user/http-urlrewrite.md
index 88e29c3269cc..fb68ae883221 100644
--- a/docs/v0.3.0/user/http-urlrewrite.md
+++ b/site/content/en/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/v0.5.0/user/installation.md
similarity index 99%
rename from docs/v0.5.0/user/installation.md
rename to site/content/en/v0.5.0/user/installation.md
index 8bca533dd9a9..29b6a60b1ca7 100644
--- a/docs/v0.5.0/user/installation.md
+++ b/site/content/en/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/v0.5.0/user/proxy-observability.md
similarity index 99%
rename from docs/latest/user/proxy-observability.md
rename to site/content/en/v0.5.0/user/proxy-observability.md
index e635460865b0..8755332262d0 100644
--- a/docs/latest/user/proxy-observability.md
+++ b/site/content/en/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/v0.5.0/user/quickstart.md
similarity index 98%
rename from docs/v0.5.0/user/quickstart.md
rename to site/content/en/v0.5.0/user/quickstart.md
index 55e066469aa1..8efb6a44ffe1 100644
--- a/docs/v0.5.0/user/quickstart.md
+++ b/site/content/en/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/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/v0.5.0/user/rate-limit.md
index 2e6c165b96dd..3c780c730a6b 100644
--- a/docs/v0.5.0/user/rate-limit.md
+++ b/site/content/en/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/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/v0.5.0/user/secure-gateways.md
index 8ada7c59978a..2e04000d5a7d 100644
--- a/docs/v0.4.0/user/secure-gateways.md
+++ b/site/content/en/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/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/v0.5.0/user/tcp-routing.md
index 07d07ba4b5b6..9ee9194400ba 100644
--- a/docs/v0.5.0/user/tcp-routing.md
+++ b/site/content/en/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/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/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/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/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/v0.5.0/user/tls-passthrough.md
index ecb5ebc16581..d5fa1067c4ee 100644
--- a/docs/v0.5.0/user/tls-passthrough.md
+++ b/site/content/en/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/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/v0.5.0/user/tls-termination.md
index 35f278063f93..7975a31c1964 100644
--- a/docs/v0.5.0/user/tls-termination.md
+++ b/site/content/en/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/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/v0.5.0/user/udp-routing.md
index 16b4c9434197..59b4992b98a5 100644
--- a/docs/v0.5.0/user/udp-routing.md
+++ b/site/content/en/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/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..67175896d509
--- /dev/null
+++ b/site/hugo.toml
@@ -0,0 +1,253 @@
+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"
+
+
+# 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 = "Versions"
+
+# 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 = true
+# 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
+# Show expand/collapse icon for sidebar sections
+sidebar_menu_foldable = true
+
+# 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 = true
+
+[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 = "/latest"
+
+# Add your release versions here
+[[params.versions]]
+ version = "v0.5.0"
+ url = "/v0.5.0"
+
+# Add your release versions here
+[[params.versions]]
+ version = "v0.4.0"
+ url = "/v0.4.0"
+
+# Add your release versions here
+[[params.versions]]
+ version = "v0.3.0"
+ url = "/v0.3.0"
+
+# Add your release versions here
+[[params.versions]]
+ version = "v0.2.0"
+ url = "/v0.2.0"
+
+[menu]
+ [[menu.main]]
+ name = "Documentation"
+ weight = -101
+ pre = ""
+ url = "/latest"
+ [[menu.main]]
+ name = "Blog"
+ weight = -100
+ pre = ""
+ url = "/blog"
+ [[menu.main]]
+ name = "About"
+ weight = -100
+ pre = ""
+ url = "/about"
+ [[menu.main]]
+ name = "GitHub"
+ weight = -99
+ pre = ""
+ url = "https://github.com/envoyproxy/gateway"
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"
+ }
+}
diff --git a/docs/latest/images/architecture.png b/site/static/img/architecture.png
similarity index 100%
rename from docs/latest/images/architecture.png
rename to site/static/img/architecture.png
diff --git a/docs/latest/images/extension-example.png b/site/static/img/extension-example.png
similarity index 100%
rename from docs/latest/images/extension-example.png
rename to site/static/img/extension-example.png
diff --git a/site/static/img/traffic.png b/site/static/img/traffic.png
new file mode 100644
index 000000000000..99970a63e462
Binary files /dev/null and b/site/static/img/traffic.png differ
diff --git a/tools/hack/docs-headings.sh b/tools/hack/docs-headings.sh
index 2b3aa039da9d..4f61928065b0 100755
--- a/tools/hack/docs-headings.sh
+++ b/tools/hack/docs-headings.sh
@@ -1,26 +1,21 @@
#!/usr/bin/env bash
-set -o errexit
-set -o nounset
-set -o pipefail
+if [ "$#" -ne 1 ]; then
+ echo "Usage: $0 "
+ exit 1
+fi
-# Wrap sed to deal with GNU and BSD sed flags.
-run::sed() {
- if sed --version &1 | grep -q GNU; then
- # GNU sed
- sed -i "$@"
- else
- # assume BSD sed
- sed -i '' "$@"
- fi
-}
+input_file=$1
+
+temp_file=$(mktemp)
-files=(docs/latest/api/extension_types.md)
+sed -n '
+/^# / {
+ s/^# \(.*\)/+++\ntitle = "\1"\n+++\n/
+ p
+ d
+}
+p
+' "$input_file" > "$temp_file"
-# Required since Sphinx mst does not link to h4 headings.
-for file in "${files[@]}" ; do
- run::sed \
- "-es|####|##|" \
- "$file"
- echo "updated markdown headings for $file"
-done
+mv "$temp_file" "$input_file"
diff --git a/tools/make/docs.mk b/tools/make/docs.mk
index 40f474c6aa03..9c53326c6830 100644
--- a/tools/make/docs.mk
+++ b/tools/make/docs.mk
@@ -1,20 +1,12 @@
-DOCS_OUTPUT_DIR := docs/html
+DOCS_OUTPUT_DIR := site/public
RELEASE_VERSIONS ?= $(foreach v,$(wildcard ${ROOT_DIR}/docs/*),$(notdir ${v}))
##@ Docs
.PHONY: docs
-docs: docs.clean $(tools/sphinx-build) docs-api helm-readme-gen ## Generate Envoy Gateway Docs Sources
+docs: docs.clean helm-readme-gen docs-api docs-api-headings ## Generate Envoy Gateway Docs Sources
@$(LOG_TARGET)
- mkdir -p $(DOCS_OUTPUT_DIR)
- cp docs/index.html $(DOCS_OUTPUT_DIR)/index.html
- cp tools/hack/get-egctl.sh $(DOCS_OUTPUT_DIR)/get-egctl.sh
- @for VERSION in $(RELEASE_VERSIONS); do \
- env BUILD_VERSION=$$VERSION \
- ENVOY_PROXY_VERSION=$(shell go run ./cmd/envoy-gateway versions -o json | jq -r ".envoyProxyVersion") \
- GATEWAYAPI_VERSION=$(shell go run ./cmd/envoy-gateway versions -o json | jq -r ".gatewayAPIVersion") \
- $(tools/sphinx-build) -j auto -b html docs/$$VERSION $(DOCS_OUTPUT_DIR)/$$VERSION; \
- done
+ cd $(ROOT_DIR)/site && npm run build:production
.PHONY: docs-release
docs-release: docs-release-prepare docs-release-gen docs ## Generate Envoy Gateway Release Docs
@@ -22,7 +14,7 @@ docs-release: docs-release-prepare docs-release-gen docs ## Generate Envoy Gate
.PHONY: docs-serve
docs-serve: ## Start Envoy Gateway Site Locally
@$(LOG_TARGET)
- python3 -m http.server -d $(DOCS_OUTPUT_DIR)
+ cd $(ROOT_DIR)/site && npm run serve
.PHONY: clean
clean: ## Remove all files that are created during builds.
@@ -40,21 +32,23 @@ docs-api: docs-api-gen docs-api-headings
helm-readme-gen: $(tools/helm-docs)
@$(LOG_TARGET)
$(tools/helm-docs) charts/gateway-helm/ -f values.tmpl.yaml -o api.md
- mv charts/gateway-helm/api.md docs/latest/helm/api.md
+ mv charts/gateway-helm/api.md site/content/en/latest/install/api.md
.PHONY: docs-api-gen
docs-api-gen: $(tools/crd-ref-docs)
+ @$(LOG_TARGET)
$(tools/crd-ref-docs) \
--source-path=api/v1alpha1 \
--config=tools/crd-ref-docs/config.yaml \
- --output-path=docs/latest/api/extension_types.md \
+ --output-path=site/content/en/latest/api/extension_types.md \
--max-depth 10 \
--renderer=markdown
.PHONY: docs-api-headings # Required since sphinx mst does not link to h4 headings.
docs-api-headings:
@$(LOG_TARGET)
- tools/hack/docs-headings.sh
+ tools/hack/docs-headings.sh site/content/en/latest/api/extension_types.md
+ tools/hack/docs-headings.sh site/content/en/latest/install/api.md
.PHONY: docs-release-prepare
docs-release-prepare: