Skip to content

new post: configure wsl for openlens accessing gardener cluster via oidc login #2

@newtork

Description

@newtork

Running FreeLensin Windows sub-system for Linux (WSL)

I want to access a Gardener cluster with FreeLens.
Unfortunately tooling is very limited in Windows.
That's why my only reasonable approach for now is to use FreeLens in WSL.

This is a step-by-step guide.

Install and setup WSL

wsl --version
wsl --set-default-version 2
wsl --install -d ubuntu
wsl --set-default ubuntu
wsl --status

Check whether WSL starts, feel free to explore:

wsl

Provision config files

  1. Create or copy the cluster > Access > "Kubeconfig - Gardenlogin" manifest

    ~/.kube/my-config.yaml
    

    It contains /contexts/*, /cluster/* and /users/*.

  2. Create or copy the My Account > Access > "Kubeconfig" manifest

    ~/.kube/garden-kubeconfig.yaml
    

    It contains /contexts/*, /cluster/* and /users/*[name='oidc-login'].

  3. Create or copy the cluster > Access > configuration for gardenlogin manifest

    ~/.garden/gardenctl-v2.yaml
    

    It contains /gardens/identity and /gardens/kubeconfig.

    Ensure the /gardens/kubeconfig points to your ~/.kube/garden-kubeconfig.yaml file.

Install and setup FreeLens in WSL

  1. Update system

    sudo apt update
    sudo apt upgrade -y
    
  2. Install required base packages

    sudo apt install -y curl wget unzip jq xdg-utils
    sudo apt install -y libasound2t64 libasound2-plugins alsa-utils
    
  3. Link Windows Chrome into WSL

    sudo ln -s "/mnt/c/Program Files/Google/Chrome/Application/chrome.exe" /usr/local/bin/chrome
    export BROWSER=/usr/local/bin/chrome
    echo 'export BROWSER=/usr/local/bin/chrome' >> ~/.bashrc
    
  4. Install kubectl

    curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
    sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
    kubectl version --client
    
  5. Install gardenlogin (required for Gardener clusters)

    version=$(curl -s https://raw.githubusercontent.com/gardener/gardenlogin/master/LATEST)
    curl -LO "https://github.com/gardener/gardenlogin/releases/download/${version}/gardenlogin_linux_amd64"
    chmod +x gardenlogin_linux_amd64
    sudo mv gardenlogin_linux_amd64 /usr/local/bin/gardenlogin
    sudo ln -s /usr/local/bin/gardenlogin /usr/local/bin/kubectl-gardenlogin
    gardenlogin version
    
  6. Install kubelogin (OIDC plugin)

    VERSION=$(curl -s https://api.github.com/repos/int128/kubelogin/releases/latest | grep tag_name | cut -d '"' -f4)
    curl -LO https://github.com/int128/kubelogin/releases/download/${VERSION}/kubelogin_linux_amd64.zip
    unzip kubelogin_linux_amd64.zip
    chmod +x kubelogin
    sudo mv kubelogin /usr/local/bin/
    sudo ln -s /usr/local/bin/kubelogin /usr/local/bin/kubectl-oidc_login
    kubelogin --version
    
  7. Install Freelens

    wget https://github.com/freelensapp/freelens/releases/latest/download/Freelens-linux-amd64.deb
    sudo dpkg -i Freelens-linux-amd64.deb
    sudo apt-get install -f -y
    
  8. Start Freelens with your Gardener kubeconfig

    KUBECONFIG=~/.kube/my-config.yaml freelens
    

Setup shortcut

  1. Create a .bat file and save it somewhere.

    @echo off
    wsl bash -c "KUBECONFIG=~/.kube/my-config.yaml /usr/bin/freelens --no-sandbox"
    

    You can now start FreeLens without command line.

  2. (Optional) Create a pinned shortcut in taskbar

    • Create a shortcut for the .bat file.
    • Edit the properties of he shortcut to target:
      - C:\Users\xyz\foo\freelens.bat
      + C:\Windows\System32\cmd.exe /c "C:\Users\xyz\foo\freelens.bat"
    • Drag and drop the shortcut to your taskbar.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions