Skip to content

[Control Center] Add steps to install Control Center in WSL #4280

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

Merged
merged 8 commits into from
May 13, 2025
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
2 changes: 2 additions & 0 deletions .github/styles/config/vocabularies/Docs/accept.txt
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,7 @@ Thymeleaf
TravaOpenJDK
Typescale
TypeScript
Ubuntu
[uU]nbuffered
[uU]ndeploy
[uU]nix
Expand All @@ -224,6 +225,7 @@ WebSphere
widget's
WildFly
Workbox
WSL
Xcode
XPath

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
47 changes: 47 additions & 0 deletions articles/control-center/getting-started/local-environment.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -119,3 +119,50 @@ To start deploying your Vaadin applications and take full advantage of Control C
== Application Development

To develop applications locally, you can use the <<../dev-mode#,Local Development Mode>>. It allows you to run your application locally and interact with the cluster as if it were running inside it.


== Install Control Center in WSL

One solution to install Control Center on Windows in a local environment is to use https://www.docker.com/products/docker-desktop[Docker Desktop] and https://learn.microsoft.com/en-us/windows/wsl[WSL] (Windows Subsystem for Linux).

First, you need to https://learn.microsoft.com/en-us/windows/wsl/install[install] WSL. It is important to choose a distribution that allows installation of Helm, for example Ubuntu:

[source,shell]
----
wsl --install -d Ubuntu
----

Then, you need to enable Kubernetes and WSL in Docker Desktop:

image::images/enable_kubernetes.png[Enable Kubernetes]

image::images/enable_wsl.png[Enable WSL]

You also need to enable integration with the Ubuntu distribution in Docker Desktop:

image::images/enable_ubuntu_distribution.png[Enable Ubuntu Distribution]

Then, you can start the WSL with the following command, using the distribution you chose before (in this case Ubuntu):

[source,shell]
----
wsl.exe -d Ubuntu
----

After this, you need to use the WSL terminal to install Helm and Control Center. First, you need to https://helm.sh/docs/intro/install/#from-apt-debianubuntu[install] Helm before you can xref:../getting-started/local-environment#deploying-control-center[install] Control Center in the local environment.

It is important to xref:../getting-started/local-environment#windows[update] the `hosts` file on the Windows system, which is usually located at `C:\Windows\System32\drivers\etc\hosts`, with the domain you used during the Control Center installation, in this case with the `control.local` and `auth.local` domains:

[source,text]
----
# Added by Docker Desktop:
192.168.31.179 host.docker.internal
192.168.31.179 gateway.docker.internal
# Added by Docker Desktop to allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal
# You need to add these entries:
127.0.0.1 control.local
127.0.0.1 auth.local
----

Note that there are other entries added to the `hosts` file which are also important. Those should be added automatically by the Docker Desktop when the Kubernetes and WSL engines are enabled.