Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

docs: clarify Windows build status #34328

Merged
merged 1 commit into from
May 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions ci/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ main commit at which the binary was compiled, and `latest` corresponds to a bina

## Windows 2019 Envoy image

On August 31, 2023 the Envoy project ended official Windows support due to a lack of resources.
We will continue to accept patches related to the Windows build. Until further notice, Windows
builds are excluded from Envoy CI, as well as the Envoy release and security processes.

The Windows 2019 based Envoy Docker image at [`envoyproxy/envoy-build-windows2019:<hash>`](https://hub.docker.com/r/envoyproxy/envoy-build-windows2019/)
is used for CI checks, where `<hash>` is specified in [`envoy_build_sha.sh`](https://github.com/envoyproxy/envoy/blob/main/ci/envoy_build_sha.sh).
Developers may work with the most recent `envoyproxy/envoy-build-windows2019` image to provide a self-contained environment for building Envoy binaries and
Expand Down
5 changes: 5 additions & 0 deletions docs/root/_include/windows_support_ended.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
.. note::

On August 31, 2023 the Envoy project ended official Windows support due to a lack of resources.
We will continue to accept patches related to the Windows build. Until further notice, Windows
builds are excluded from Envoy CI, as well as the Envoy release and security processes.
2 changes: 2 additions & 0 deletions docs/root/faq/overview.rst
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,8 @@ Extensions
Windows
-------

.. include:: ../_include/windows_support_ended.rst

.. toctree::
:maxdepth: 2

Expand Down
2 changes: 2 additions & 0 deletions docs/root/faq/windows/win_fips_support.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
Does Envoy on Windows support FIPS?
===================================

.. include:: ../../_include/windows_support_ended.rst

Envoy uses `BoringSSL <https://boringssl.googlesource.com/boringssl/>`_ which is a slimmed down TLS implementation. At the time of writing,
BoringSSL does not support a FIPS mode on Windows. As a result, Envoy does not offer support for FIPS on Windows.

Expand Down
2 changes: 2 additions & 0 deletions docs/root/faq/windows/win_not_supported_features.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
Which Envoy features are not supported on Windows?
==================================================

.. include:: ../../_include/windows_support_ended.rst

The vast majority of Envoy features are supported on Windows. There are few exceptions that are documented explicitly.
The most notable features that are not supported on Windows are:

Expand Down
2 changes: 2 additions & 0 deletions docs/root/faq/windows/win_performance.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
How fast is Envoy on Windows?
=============================

.. include:: ../../_include/windows_support_ended.rst

Everything that is mentioned in :ref:`How fast is Envoy? <faq_how_fast_is_envoy>` applies to Windows. We have
done some work to improve the event loop on Windows. That being said, we have observed that the tail performance of Envoy on Windows
tends to be worse compared to Linux, especially when TLS is involved.
Expand Down
4 changes: 3 additions & 1 deletion docs/root/faq/windows/win_requirements.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
What are the requirements to run on Envoy on Windows?
=====================================================

Envoy is tested on Windows Server Core 2019 (Long-Term Servicing Channel). This corresponds to OS version 10.0.17763.1879. We have also tested a few more recent versions of Windows Server
.. include:: ../../_include/windows_support_ended.rst

Envoy was tested on Windows Server Core 2019 (Long-Term Servicing Channel). This corresponds to OS version 10.0.17763.1879. We have also tested a few more recent versions of Windows Server
and in general higher versions will be fully supported. For more info please see `Windows Server Core <https://hub.docker.com/_/microsoft-windows-servercore>`_.
To build Envoy from source you will need to have at least Windows 10 SDK, version 1803 (10.0.17134.12).
Earlier versions will not compile because the ``afunix.h`` header is not available.
Expand Down
2 changes: 2 additions & 0 deletions docs/root/faq/windows/win_run_as_service.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
Can I run Envoy on Windows under SCM?
=====================================

.. include:: ../../_include/windows_support_ended.rst

.. note::

This feature is still in Experimental state.
Expand Down
2 changes: 2 additions & 0 deletions docs/root/faq/windows/win_security.rst
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
What is the security release process?
=====================================

.. include:: ../../_include/windows_support_ended.rst

We follow the process described at `Security Reporting Process <https://github.com/envoyproxy/envoy/blob/main/SECURITY.md#security-reporting-process>`_.
8 changes: 5 additions & 3 deletions docs/root/start/building.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ Building

The Envoy build system uses `Bazel <https://bazel.build/>`_.

In order to ease initial building and for a quick start, we provide an Ubuntu 16 and a Windows based docker containers
that have everything needed inside of it to build and *statically link* Envoy, see :repo:`ci/README.md`.
In order to ease initial building and for a quick start, we provide a recent Ubuntu-based docker container
that has everything needed inside of it to build and *statically link* Envoy, see :repo:`ci/README.md`.

In order to build without using the Docker container, follow the instructions at :repo:`bazel/README.md`.

Expand All @@ -33,7 +33,9 @@ as the new tcmalloc code is not guaranteed to compile with lower versions of Cla
Windows Target Requirements
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i wonder whether we should remove this section given we cant guarantee that it will build

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to keep is somewhere for the record, in case someone wants to come in and resurrect Windows build. With the note I think the expectations of Windows build state are clear.

---------------------------

Envoy now suports Windows as a target platform. The requirements below only apply if you want to build the Windows
.. include:: ../_include/windows_support_ended.rst

Envoy supports Windows as a target platform. The requirements below only apply if you want to build the Windows
native executable. If you want to build the Linux version of Envoy on Windows either with WSL or Linux containers
please see the Linux requirements above.

Expand Down
31 changes: 0 additions & 31 deletions docs/root/start/install.rst
Original file line number Diff line number Diff line change
Expand Up @@ -73,18 +73,6 @@ You can install Envoy on Mac OSX using the official brew repositories.
$ brew update
$ brew install envoy

.. _start_install_windows:

Install Envoy on Windows
~~~~~~~~~~~~~~~~~~~~~~~~

You can run Envoy using the official Windows Docker image.

.. substitution-code-block:: console

$ docker pull envoyproxy/|envoy_windows_docker_image|
$ docker run --rm envoyproxy/|envoy_windows_docker_image| --version

.. _start_install_docker:

Install Envoy using Docker
Expand Down Expand Up @@ -215,25 +203,6 @@ The following table shows the available Docker tag variants for the latest
- :dockerhub_envoy:`tools-dev`


`envoyproxy/envoy-windows <https://hub.docker.com/r/envoyproxy/envoy-windows>`__, `envoyproxy/envoy-windows-dev <https://hub.docker.com/r/envoyproxy/envoy-windows-dev>`__
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Release binary with symbols stripped on top of a Windows Server 1809 base.

The ``windows-dev`` image also contains build tools.

.. list-table::
:widths: auto
:header-rows: 1
:stub-columns: 1

* - variant
- latest stable (amd64)
- main dev (amd64)
* - envoy-windows
- :dockerhub_envoy:`windows`
- :dockerhub_envoy:`windows-dev`

.. _install_tools:

`envoyproxy/envoy-build-ubuntu <https://hub.docker.com/r/envoyproxy/envoy-build-ubuntu>`__
Expand Down
103 changes: 2 additions & 101 deletions docs/root/start/quick-start/run-envoy.rst
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,6 @@ Once you have :ref:`installed Envoy <install>`, you can check the version inform
envoyproxy/|envoy_docker_image| \
--version
...
.. tab:: Docker (Windows Image)

.. substitution-code-block:: powershell

PS> docker run --rm
'envoyproxy/|envoy_windows_docker_image|'
--version
...

.. _start_quick_start_help:

Expand Down Expand Up @@ -66,15 +58,6 @@ flag:
--help
...

.. tab:: Docker (Windows Image)

.. substitution-code-block:: powershell

PS> docker run --rm
'envoyproxy/|envoy_windows_docker_image|'
--help
...

.. _start_quick_start_config:

Run Envoy with the demo configuration
Expand Down Expand Up @@ -124,33 +107,6 @@ Envoy will parse the config file according to the file extension, please see the
-c /envoy-custom.yaml
...

.. tab:: Docker (Windows Image)

You can start the Envoy Docker image without specifying a configuration file, and
it will use the demo config by default.

.. substitution-code-block:: powershell

PS> docker run --rm -it
-p '9901:9901'
-p '10000:10000'
'envoyproxy/|envoy_windows_docker_image|'
...

To specify a custom configuration you can mount the config into the container, and specify the path with ``-c``.

Assuming you have a custom configuration in the current directory named ``envoy-custom.yaml``, from PowerShell run:

.. substitution-code-block:: powershell

PS> docker run --rm -it
-v "$PWD\:`"C:\envoy-configs`""
-p '9901:9901'
-p '10000:10000'
'envoyproxy/|envoy_windows_docker_image|'
-c 'C:\envoy-configs\envoy-custom.yaml'
...

Check Envoy is proxying on http://localhost:10000.

.. code-block:: console
Expand Down Expand Up @@ -201,6 +157,8 @@ Next, start the Envoy server using the override configuration:

On Windows run:

.. include:: ../../_include/windows_support_ended.rst

.. code-block:: powershell

$ envoy -c envoy-demo.yaml --config-yaml "$(Get-Content -Raw envoy-override.yaml)"
Expand All @@ -218,18 +176,6 @@ Next, start the Envoy server using the override configuration:
--config-yaml "$(cat envoy-override.yaml)"
...

.. tab:: Docker (Windows Image)

.. substitution-code-block:: powershell

PS> docker run --rm -it
-p '9902:9902'
-p '10000:10000'
'envoyproxy/|envoy_windows_docker_image|'
-c 'C:\ProgramData\envoy.yaml'
--config-yaml "$(Get-Content -Raw envoy-override.yaml)"
...

The Envoy admin interface should now be available on http://localhost:9902.

.. code-block:: console
Expand Down Expand Up @@ -303,20 +249,6 @@ For invalid configuration the process will print the errors and exit with ``1``.
[2020-11-08 12:36:06.549][11][info][config] [source/server/configuration_impl.cc:121] loading stats sink configuration
configuration 'my-envoy-config.yaml' OK

.. tab:: Docker (Windows Image)

.. substitution-code-block:: powershell

PS> docker run --rm -it
-v "$PWD\:`"C:\envoy-configs`""
-p '9901:9901'
-p '10000:10000'
'envoyproxy/|envoy_windows_docker_image|'
--mode validate
-c 'C:\envoy-configs\my-envoy-config.yaml'

configuration 'my-envoy-config.yaml' OK

Envoy logging
-------------

Expand Down Expand Up @@ -346,24 +278,6 @@ This can be overridden using :option:`--log-path`.
-c /etc/envoy/envoy.yaml \
--log-path logs/custom.log

.. tab:: Docker (Windows Image)

.. substitution-code-block:: powershell

PS> mkdir logs
PS> docker run --rm -it
-p '10000:10000'
-v "$PWD\logs\:`"C:\logs`""
'envoyproxy/|envoy_windows_docker_image|'
-c 'C:\ProgramData\envoy.yaml'
--log-path 'C:\logs\custom.log'

.. note::

Envoy on a Windows system Envoy will output to ``CON`` by default.

This can also be used as a logging path when configuring logging.

:ref:`Access log <arch_overview_access_logs>` paths can be set for the
:ref:`admin interface <start_quick_start_admin>`, and for configured
:ref:`listeners <envoy_v3_api_file_envoy/config/listener/v3/listener.proto>`.
Expand Down Expand Up @@ -454,19 +368,6 @@ which are set to ``debug`` and ``trace`` respectively.
--component-log-level upstream:debug,connection:trace
...

.. tab:: Docker (Windows Image)

.. substitution-code-block:: powershell

PS> mkdir logs
PS> docker run --rm -it
-p '10000:10000'
envoyproxy/|envoy_windws_docker_image|
-c 'C:\ProgramData\envoy.yaml'
-l off
--component-log-level 'upstream:debug,connection:trace'
...

.. tip::

See ``ALL_LOGGER_IDS`` in :repo:`logger.h </source/common/common/logger.h#L29>` for a list of components.
3 changes: 0 additions & 3 deletions docs/root/start/sandboxes/setup.rst
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,6 @@ The user account running the examples will need to have permission to use Docker

Full instructions for installing Docker can be found on the `Docker website <https://docs.docker.com/get-docker/>`_

If you want to use the Windows based Envoy images make sure that you
`switch Docker to use Windows containers <https://docs.docker.com/docker-for-windows/#switch-between-windows-and-linux-containers>`_.

.. _start_sandboxes_setup_docker_compose:

Install ``docker compose``
Expand Down
2 changes: 2 additions & 0 deletions docs/root/start/sandboxes/win32_front_proxy.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
Windows based Front proxy
=========================

.. include:: ../../_include/windows_support_ended.rst

.. sidebar:: Requirements

.. include:: _include/docker-env-setup-link.rst
Expand Down