Lens - The Kubernetes IDE

Lens Open Source Project (OpenLens)

Build Status Chat on Slack

The Repository

This repository ("OpenLens") is where Team Lens develops the Lens IDE product together with the community. It is backed by a number of Kubernetes and cloud native ecosystem pioneers. This source code is available to everyone under the MIT license.

Lens - The Kubernetes IDE

Lens - The Kubernetes IDE ("Lens IDE") is a distribution of the OpenLens repository with Team Lens specific customizations released under a traditional EULA.

Lens IDE provides the full situational awareness for everything that runs in Kubernetes. It's lowering the barrier of entry for people just getting started and radically improving productivity for people with more experience.

Lens IDE a standalone application for MacOS, Windows and Linux operating systems. You can download it free of charge for Windows, MacOS, and Linux from Lens IDE website.

Screenshot

Installation

See Getting Started page.

Development

See Development page.

Contributing

See Contributing page.

Owner
Lens - The Kubernetes IDE
The only IDE you’ll ever need to take control of your Kubernetes clusters
Lens - The Kubernetes IDE
Comments
  • No metrics with 5.3.0-latest.2021125.2

    No metrics with 5.3.0-latest.2021125.2

    Describe the bug After installing the 5.3.0-latest.2021125.2 version (both on Windows 10 and Rocky Linux 8.5) the metrics for GKE based cluster are not available.

    To Reproduce Steps to reproduce the behavior:

    1. Install 5.2.7 - the metrics are available
    2. Install 5.3.0 - the metrics are not available
    3. Uninstall 5.3.0 and install 5.2.7 again - metrics are available again

    Expected behavior The metric should be availabe

    Screenshots If applicable, add screenshots to help explain your problem. image

    image

    Environment (please complete the following information):

    • Lens Version: 5.3.0-latest.2021125.2
    • OS: Windows 10 and Rocky Linux 8.5 (RHEL 8.5)
    • Installation method (e.g. snap or AppImage in Linux): Windows - exe; Rocky - rpm
    • GKE base cluster
    • Lens metrics configuration: tried Auto detect (works on 5.2.7) and Prometheus Operator (works on 5.2.7)

    Kubeconfig: 5.2.7 works with the exact same Kubeconfig, so the latter is not an issue

    Additional context Add any other context about the problem here.

  • Turn on strict mode in tsconfig.json, some helpful lints, and required cleanup where strictness necessitates it

    Turn on strict mode in tsconfig.json, some helpful lints, and required cleanup where strictness necessitates it

    • Turn on the following new lints:
      • react/jsx-first-prop-new-line
      • react/jsx-wrap-multilines
      • react/jsx-one-expression-per-line
      • react/jsx-max-props-per-line
      • react/jsx-indent
      • react/jsx-indent-props
      • no-restricted-imports

    All this work is done so that we can have greater confidence in our codebase. The main part of strict: true is treating null and undefined as separate and non-assignable types to all the other types. This will help catch bugs at compile time.

    Signed-off-by: Sebastian Malton [email protected]

  • Remove ExtenedMap, ToggleSet, and observable versions

    Remove ExtenedMap, ToggleSet, and observable versions

    • Switch to helper functions instead. They don't impact the prototype tree and it means that we don't need to introduce versions that are both observable and "normal"

    • Tidy and hiddenTableColumns to not need pre-initialization

    Signed-off-by: Sebastian Malton [email protected]

  • Auto-refresh is not working

    Auto-refresh is not working

    Describe the bug When I remove a pod, the pod list is not refreshed. To see recreated pod I have to click/change tab in UI

    To Reproduce

    1. click Pods tab
    2. Remove Pod

    Expected behavior The list automatically refreshes to show the new pod creation

    Screenshots Screenshot 2021-09-16 092146

    Environment (please complete the following information):

    • Lens Version: 5.2.0-latest.20210908
    • OS: Windows10
    • Installation method (e.g. snap or AppImage in Linux): Lens Setup version: 5.2.0-latest.20210908
  • OpenLens 6.3.0 - No Logs or Shell buttons

    OpenLens 6.3.0 - No Logs or Shell buttons

    Describe the bug After installing OpenLens v 6.3.0 i cannot see Logs and Shell buttons under pods / nodes

    To Reproduce Steps to reproduce the behavior:

    1. Install OpenLens on Windows using scoop
    2. Launching OpenLens

    Expected behavior I would like to see the Logs and Shell buttons like in standard Lens IDE

    Screenshots image

    Environment (please complete the following information):

    • Lens Version: OpenLens v 6.3.0
    • OS: Windows 10 Build 19044.2364
    • Installation method (e.g. snap or AppImage in Linux): scoop

    Logs: When you run the application executable from command line you will see some logging output. Please paste them here:

    info:    Ôľ¬ ­čöî Starting LensProxy +0ms
    info:    Ôľ¬ [LENS-PROXY]: Proxy server has started at 127.0.0.1:53779 +5ms
    info:    Ôľ¬ ­čöÄ Testing LensProxy connection ... +2ms
    info:    Ôľ¬ [LENS-USER-STORE]: LOADING ... +7ms
    info:    Ôľ¬ [LENS-USER-STORE]: LOADED from C:\Users\lukjaw\AppData\Roaming\OpenLens\lens-user-store.json +14ms
    info:    Ôľ¬ [LENS-CLUSTER-STORE]: LOADING ... +0ms
    info:    Ôľ¬ [LENS-CLUSTER-STORE]: LOADED from C:\Users\lukjaw\AppData\Roaming\OpenLens\lens-cluster-store.json +140ms
    info:    Ôľ¬ ÔÜí LensProxy connection OK +16ms
    info:    Ôľ¬ [CREATE-ELECTRON-WINDOW]: Loading content for window "splash" from file: C:\Users\lukjaw\scoop\apps\openlens\current\resources\app.asar\static\splash.html... +48ms
    info:    Ôľ¬ [CREATE-ELECTRON-WINDOW]: Window "splash" loaded +222ms
    info:    Ôľ¬ [LENS-EXTENSIONS]: LOADING ... +21ms
    info:    Ôľ¬ [LENS-EXTENSIONS]: LOADED from C:\Users\lukjaw\AppData\Roaming\OpenLens\lens-extensions.json +3ms
    info:    Ôľ¬ [LENS-WEBLINK-STORE]: LOADING ... +5ms
    info:    Ôľ¬ [LENS-WEBLINK-STORE]: LOADED from C:\Users\lukjaw\AppData\Roaming\OpenLens\lens-weblink-store.json +12ms
    info:    Ôľ¬ ­čôč Setting protocol client for lens:// +8ms
    info:    Ôľ¬ ­čôč Protocol client register succeeded Ôťů +2ms
    info:    Ôľ¬ ­čžę Initializing extensions +4ms
    info:    Ôľ¬ [LENS-FILESYSTEM-PROVISIONER-STORE]: LOADING ... +41ms
    info:    Ôľ¬ [LENS-FILESYSTEM-PROVISIONER-STORE]: LOADED from C:\Users\lukjaw\AppData\Roaming\OpenLens\lens-filesystem-provisioner-store.json +4ms
    info:    Ôľ¬ ­čÉÜ Syncing shell environment +0ms
    info:    Ôľ¬ [EXTENSIONS-LOADER]: auto initializing extensions +23ms
    info:    Ôľ¬ [LENS-HOTBAR-STORE]: LOADING ... +2ms
    info:    Ôľ¬ [LENS-HOTBAR-STORE]: LOADED from C:\Users\lukjaw\AppData\Roaming\OpenLens\lens-hotbar-store.json +10ms
    info:    Ôľ¬ [EXTENSION-DISCOVERY] loading extensions from C:\Users\lukjaw\AppData\Roaming\OpenLens +9ms
    info:    Ôľ¬ [EXTENSION-DISCOVERY] watching extension add/remove in C:\Users\lukjaw\.k8slens\extensions +12ms
    info:    Ôľ¬ [CREATE-ELECTRON-WINDOW]: Loading content for window "first-application-window" from url: http://localhost:53779... +17ms
    info:    Ôľ¬ [CREATE-ELECTRON-WINDOW]: Window "first-application-window" loaded +2s
    Checking for update
    info:    Ôľ¬ [KUBECONFIG-SYNC]: starting requested syncs +444ms
    info:    ÔöĆ [KUBECONFIG-SYNC]: starting sync of file/folder +2ms
    info:    ÔöŚ [1] { filePath: 'C:\\Users\\lukjaw\\AppData\\Roaming\\OpenLens\\kubeconfigs' }
    info:    ÔöĆ [KUBECONFIG-SYNC]: starting sync of file/folder +2ms
    info:    ÔöŚ [1] { filePath: 'C:\\Users\\lukjaw\\.kube' }
    
     
    Error: Error: Cannot find channel "latest.yml" update info: HttpError: 404
    "method: GET url: https://github.com/MuhammedKalkan/OpenLens/releases/download/Latest/latest.yml?noCache=1gkstml0t\n\nPlease double check that your authentication token is correct. Due to security reasons, actual status maybe not reported, but 404.\n"
    Headers: {
      "server": "GitHub.com",
      "date": "Thu, 22 Dec 2022 12:42:34 GMT",
      "content-type": "text/plain; charset=utf-8",
      "vary": "X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, Accept-Encoding, Accept, X-Requested-With",
      "cache-control": "no-cache",
      "strict-transport-security": "max-age=31536000; includeSubdomains; preload",
      "x-frame-options": "deny",
      "x-content-type-options": "nosniff",
      "x-xss-protection": "0",
      "referrer-policy": "no-referrer-when-downgrade",
      "content-security-policy": "default-src 'none'; base-uri 'self'; connect-src 'self'; form-action 'self'; img-src 'self' data:; script-src 'self'; style-src 'unsafe-inline'",
      "content-encoding": "gzip",
      "content-length": "29",
      "x-github-request-id": "D228:79F3:8527612:893D291:63A450BA"
    }
        at createHttpError (C:\Users\lukjaw\scoop\apps\openlens\6.3.0\resources\app.asar\node_modules\electron-updater\node_modules\builder-util-runtime\out\httpExecutor.js:14:12)
        at ElectronHttpExecutor.handleResponse (C:\Users\lukjaw\scoop\apps\openlens\6.3.0\resources\app.asar\node_modules\electron-updater\node_modules\builder-util-runtime\out\httpExecutor.js:116:20)
        at ClientRequest.<anonymous> (C:\Users\lukjaw\scoop\apps\openlens\6.3.0\resources\app.asar\node_modules\electron-updater\node_modules\builder-util-runtime\out\httpExecutor.js:82:26)
        at ClientRequest.emit (node:events:526:28)
        at ClientRequest.emit (node:domain:475:12)
        at SimpleURLLoaderWrapper.<anonymous> (node:electron/js2c/browser_init:101:6917)
        at SimpleURLLoaderWrapper.emit (node:events:526:28)
        at SimpleURLLoaderWrapper.emit (node:domain:475:12)
        at Object.newError (C:\Users\lukjaw\scoop\apps\openlens\6.3.0\resources\app.asar\node_modules\electron-updater\node_modules\builder-util-runtime\out\index.js:47:19)
        at GenericProvider.getLatestVersion (C:\Users\lukjaw\scoop\apps\openlens\6.3.0\resources\app.asar\node_modules\electron-updater\out\providers\GenericProvider.js:27:50)
        at async NsisUpdater.getUpdateInfoAndProvider (C:\Users\lukjaw\scoop\apps\openlens\6.3.0\resources\app.asar\node_modules\electron-updater\out\AppUpdater.js:298:19)
        at async NsisUpdater.doCheckForUpdates (C:\Users\lukjaw\scoop\apps\openlens\6.3.0\resources\app.asar\node_modules\electron-updater\out\AppUpdater.js:312:24)
        at async C:\Users\lukjaw\scoop\apps\openlens\6.3.0\resources\app.asar\static\build\main.js:2:413995
        at async r (C:\Users\lukjaw\scoop\apps\openlens\6.3.0\resources\app.asar\static\build\main.js:2:414485)
        at async C:\Users\lukjaw\scoop\apps\openlens\6.3.0\resources\app.asar\static\build\main.js:2:417149
    error:   ÔöĆ [UPDATE-APP/CHECK-FOR-UPDATES] Cannot find channel "latest.yml" update info: HttpError: 404
    "method: GET url: https://github.com/MuhammedKalkan/OpenLens/releases/download/Latest/latest.yml?noCache=1gkstml0t\n\nPlease double check that your authentication token is correct. Due to security reasons, actual status maybe not reported, but 404.\n"
    Headers: {
      "server": "GitHub.com",
      "date": "Thu, 22 Dec 2022 12:42:34 GMT",
      "content-type": "text/plain; charset=utf-8",
      "vary": "X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, Accept-Encoding, Accept, X-Requested-With",
      "cache-control": "no-cache",
      "strict-transport-security": "max-age=31536000; includeSubdomains; preload",
      "x-frame-options": "deny",
      "x-content-type-options": "nosniff",
      "x-xss-protection": "0",
      "referrer-policy": "no-referrer-when-downgrade",
      "content-security-policy": "default-src 'none'; base-uri 'self'; connect-src 'self'; form-action 'self'; img-src 'self' data:; script-src 'self'; style-src 'unsafe-inline'",
      "content-encoding": "gzip",
      "content-length": "29",
      "x-github-request-id": "D228:79F3:8527612:893D291:63A450BA"
    }
        at createHttpError (C:\Users\lukjaw\scoop\apps\openlens\6.3.0\resources\app.asar\node_modules\electron-updater\node_modules\builder-util-runtime\out\httpExecutor.js:14:12)
        at ElectronHttpExecutor.handleResponse (C:\Users\lukjaw\scoop\apps\openlens\6.3.0\resources\app.asar\node_modules\electron-updater\node_modules\builder-util-runtime\out\httpExecutor.js:116:20)
        at ClientRequest.<anonymous> (C:\Users\lukjaw\scoop\apps\openlens\6.3.0\resources\app.asar\node_modules\electron-updater\node_modules\builder-util-runtime\out\httpExecutor.js:82:26)
        at ClientRequest.emit (node:events:526:28)
        at ClientRequest.emit (node:domain:475:12)
        at SimpleURLLoaderWrapper.<anonymous> (node:electron/js2c/browser_init:101:6917)
        at SimpleURLLoaderWrapper.emit (node:events:526:28)
        at SimpleURLLoaderWrapper.emit (node:domain:475:12) +286ms
    error:   Ôöâ [ 1] Error: Cannot find channel "latest.yml" update info: HttpError: 404
    error:   Ôöâ [ 2] "method: GET url: https://github.com/MuhammedKalkan/OpenLens/releases/download/Latest/latest.yml?noCache=1gkstml0t\n\nPlease double check that your authentication token is correct. Due to security reasons, actual status maybe not reported, but 404.\n"
    error:   Ôöâ [ 3] Headers: {
    error:   Ôöâ [ 4]   "server": "GitHub.com",
    error:   Ôöâ [ 5]   "date": "Thu, 22 Dec 2022 12:42:34 GMT",
    error:   Ôöâ [ 6]   "content-type": "text/plain; charset=utf-8",
    error:   Ôöâ [ 7]   "vary": "X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, Accept-Encoding, Accept, X-Requested-With",
    error:   Ôöâ [ 8]   "cache-control": "no-cache",
    error:   Ôöâ [ 9]   "strict-transport-security": "max-age=31536000; includeSubdomains; preload",
    error:   Ôöâ [10]   "x-frame-options": "deny",
    error:   Ôöâ [11]   "x-content-type-options": "nosniff",
    error:   Ôöâ [12]   "x-xss-protection": "0",
    error:   Ôöâ [13]   "referrer-policy": "no-referrer-when-downgrade",
    error:   Ôöâ [14]   "content-security-policy": "default-src 'none'; base-uri 'self'; connect-src 'self'; form-action 'self'; img-src 'self' data:; script-src 'self'; style-src 'unsafe-inline'",
    error:   Ôöâ [15]   "content-encoding": "gzip",
    error:   Ôöâ [16]   "content-length": "29",
    error:   Ôöâ [17]   "x-github-request-id": "D228:79F3:8527612:893D291:63A450BA"
    error:   Ôöâ [18] }
    error:   Ôöâ [19]     at createHttpError (C:\Users\lukjaw\scoop\apps\openlens\6.3.0\resources\app.asar\node_modules\electron-updater\node_modules\builder-util-runtime\out\httpExecutor.js:14:12)
    error:   Ôöâ [20]     at ElectronHttpExecutor.handleResponse (C:\Users\lukjaw\scoop\apps\openlens\6.3.0\resources\app.asar\node_modules\electron-updater\node_modules\builder-util-runtime\out\httpExecutor.js:116:20)
    error:   Ôöâ [21]     at ClientRequest.<anonymous> (C:\Users\lukjaw\scoop\apps\openlens\6.3.0\resources\app.asar\node_modules\electron-updater\node_modules\builder-util-runtime\out\httpExecutor.js:82:26)
    error:   Ôöâ [22]     at ClientRequest.emit (node:events:526:28)
    error:   Ôöâ [23]     at ClientRequest.emit (node:domain:475:12)
    error:   Ôöâ [24]     at SimpleURLLoaderWrapper.<anonymous> (node:electron/js2c/browser_init:101:6917)
    error:   Ôöâ [25]     at SimpleURLLoaderWrapper.emit (node:events:526:28)
    error:   Ôöâ [26]     at SimpleURLLoaderWrapper.emit (node:domain:475:12)
    error:   Ôöâ [27]     at Object.newError (C:\Users\lukjaw\scoop\apps\openlens\6.3.0\resources\app.asar\node_modules\electron-updater\node_modules\builder-util-runtime\out\index.js:47:19)
    error:   Ôöâ [28]     at GenericProvider.getLatestVersion (C:\Users\lukjaw\scoop\apps\openlens\6.3.0\resources\app.asar\node_modules\electron-updater\out\providers\GenericProvider.js:27:50)
    error:   Ôöâ [29]     at async NsisUpdater.getUpdateInfoAndProvider (C:\Users\lukjaw\scoop\apps\openlens\6.3.0\resources\app.asar\node_modules\electron-updater\out\AppUpdater.js:298:19)
    error:   Ôöâ [30]     at async NsisUpdater.doCheckForUpdates (C:\Users\lukjaw\scoop\apps\openlens\6.3.0\resources\app.asar\node_modules\electron-updater\out\AppUpdater.js:312:24)
    error:   Ôöâ [31]     at async C:\Users\lukjaw\scoop\apps\openlens\6.3.0\resources\app.asar\static\build\main.js:2:413995
    error:   Ôöâ [32]     at async r (C:\Users\lukjaw\scoop\apps\openlens\6.3.0\resources\app.asar\static\build\main.js:2:414485)
    error:   Ôöâ [33]     at async C:\Users\lukjaw\scoop\apps\openlens\6.3.0\resources\app.asar\static\build\main.js:2:417149
    error:   ÔöŚ [34] { code: 'ERR_UPDATER_CHANNEL_FILE_NOT_FOUND' }
    

    Additional context I Was using Lens IDE on a license grace period and i wanted to switch to OpenLens.

    I removed previous Lens version and cleared all /User/Appdata files and any remaining files from old installations, rebooted, re-installed OpenLens again, tried also solution mentioned in here:

    https://github.com/lensapp/lens/issues/1690#issuecomment-886260245

    But i ran npm install from the scoop folder (C:\Users****\scoop\apps\openlens\6.3.0\resources\app.asar.unpacked\node_modules)

  • Terminal : Support for Windows Subsystem for Linux

    Terminal : Support for Windows Subsystem for Linux

    What would you like to be added:

    Add an option in the Preference page allowing to select the shell used by the terminal similarly to Visual Studio Code.

    Why is this needed:

    Windows Subsystem for Linux is commonly used by Kubernetes administrator running on Windows. Today Lens seems to only support Git Bash

    Environment you are Lens application on:

    • Kubernetes distribution: Any
    • Desktop OS: Windows
  • Mobx-6 migration

    Mobx-6 migration

    Attempt to upgrade from 5.x to 6.x.

    (re)based on https://github.com/lensapp/lens/pull/2520

    Main pitfalls:

    • when using mobx decorators (e.g @observable) class constructor must include makeObservable(this)
    • don't usemobx.toJS() with partial observable data, e.g. toJS({x: 1, y: observable([])}) still returns result.y as observable => use common/utils/toJS to handle such cases.
    • don't apply @action for overriding class methods or use extra @override from mobx package
    • don't use @observable static for classes (there is no way to wrap it with makeObservable)
    • second argument in mobx.toJS has removed, e.g. toJS(data, {recursiveEverything: true}) will throw an error.
    • don't cache when(() => this.someObservableBoolean) in class fields (might not work as you expected)

    Try it locally:

    • git checkout mobx6-migration && yarn
    • make clean && make dev

    More info: https://mobx.js.org/migrating-from-4-or-5.html

    Fixes #1536

  • Use common/logger everywhere, remove main/logger export

    Use common/logger everywhere, remove main/logger export

    • in Renderer make it 'console' which a stub for silly level

    • in Main make it a winston logger with file output as well

    • in testing make it a jest mock stub

    • in all other cases make it a winston logger without file output

    Signed-off-by: Sebastian Malton [email protected]

  • Blank Screen when accessing one (out of three) clusters

    Blank Screen when accessing one (out of three) clusters

    I have 3 clusters on Digital Ocean under various accounts. I have always been able to connect to them with Lens. About a week ago, I suddenly couldn't connect to one of the clusters. I've tried deleting and re-adding the config in kubectl, I've tried deleting and re-adding it to Lens. I just get a blank screen. kubectl works fine, it's just Lens that isn't showing anything. Lens has no trouble with the other clusters. They are all running the same version.

    Here's a screenshot of Lens and the terminal I launched it from when I try to connect to the cluster that Lens is having issues with:

    Screenshot from 2021-10-12 09-42-00

    • Lens Version: 5.2.5
    • OS: Linux (Mint)
    • Installation method (e.g. snap or AppImage in Linux): AppImage
    apiVersion: v1                                                                                                          
    clusters:                                                                                                               
    - cluster:                                                                                                              
        certificate-authority-data: --redacted--
        server: https://--redacted--.k8s.ondigitalocean.com                                         
      name: do-sfo2-aaronkube                                                                                               
    - cluster:                                                                                                              
        certificate-authority-data: --redacted--
        server: https://--redacted--.k8s.ondigitalocean.com                                         
      name: do-sfo2-caitkube                                                                                                
    - cluster:                                                                                                              
        certificate-authority-data: --redacted--
        server: https://--redacted--.k8s.ondigitalocean.com                                         
      name: do-sfo3-personalkube                                                                                            
    contexts:                                                                                                               
    - context:                                                                                                              
        cluster: do-sfo2-aaronkube                                                                                          
        user: do-sfo2-aaronkube-admin                                                                                       
      name: do-sfo2-aaronkube                                                                                               
    - context:                                                                                                              
        cluster: do-sfo2-caitkube                                                                                           
        user: do-sfo2-caitkube-admin                                                                                        
      name: do-sfo2-caitkube                                                                                                
    - context:                                                                                                              
        cluster: do-sfo3-personalkube                                                                                       
        user: do-sfo3-personalkube-admin                                                                                    
      name: do-sfo3-personalkube                                                                                            
    current-context: do-sfo2-aaronkube                                                                                      
    kind: Config                                                                                                            
    preferences: {}                                                                                                         
    users:                                                                                                                  
    - name: do-sfo2-aaronkube-admin                                                                                         
      user:                                                                                                                 
        exec:                                                                                                               
          apiVersion: client.authentication.k8s.io/v1beta1                                                                  
          args:                                                                                                             
          - kubernetes                                                                                                      
          - cluster                                                                                                         
          - kubeconfig                                                                                                      
          - exec-credential                                                                                                 
          - --version=v1beta1                                                                                               
          - --context=cait                                                                                                  
          - 28472d7b-cac9-4eb7-redacted
          command: doctl                                                                                                    
          env: null                                                                                                         
          provideClusterInfo: false                                                                                         
    - name: do-sfo2-caitkube-admin                                                                                          
      user:                                                                                                                 
        exec:                                                                                                               
          apiVersion: client.authentication.k8s.io/v1beta1                                                                  
          args:                                                                                                             
          - kubernetes                                                                                                      
          - cluster                                                                                                         
          - kubeconfig                                                                                                      
          - exec-credential                                                                                                 
          - --version=v1beta1                                                                                               
          - --context=cait                                                                                                  
          - 016d3b15-5806-4f83-8921-redacted
          command: doctl                                                                                                    
          env: null                                                                                                         
          provideClusterInfo: false                                                                                         
    - name: do-sfo2-redactedkube-admin                                                                                        
      user:                                                                                                                 
        token: --redacted--
    - name: do-sfo3-personalkube-admin                                                                                      
      user:                                                                                                                 
        exec:                                                                                                               
          apiVersion: client.authentication.k8s.io/v1beta1                                                                  
          args:                                                                                                             
          - kubernetes                                                                                                      
          - cluster                                                                                                         
          - kubeconfig                                                                                                      
          - exec-credential                                                                                                 
          - --version=v1beta1                                                                                               
          - --context=personal                                                                                              
          - 6f766a4d-2e46-4ca9-90c0-redacted
          command: doctl                                                                                                    
          env: null                                                                                                         
          provideClusterInfo: false                                                   
    

    This is a screenshot of the developer console in Lens when it can't connect: Screenshot from 2021-10-12 09-51-15

  • MonacoEditor component fixes & refactoring

    MonacoEditor component fixes & refactoring

    PR highlights:

    1. refactored react component <MonacoEditor/>:
    • detached from dock.store.ts
    • removed react-monaco-editor since buggy and provide no-real benefits instead of direct access to monaco-editor package apis
    • removed multiple redundant imports of theme-store & user-stores from places of editor usages
    • added webpack plugin monaco-editor-webpack-plugin to properly bundle editor with the app
    • faster/more reliable handling editor's dimensions with new ResizeObserver DOM api
    • improved UX with editor's focus when interacting with <Dock/> (e.g. resizing/open/close) + open/close animation
    1. Refactored dock-tab.store.ts (every dock-tab is using editor in some way, this is why it's in current PR):
    • predictable data initialization with DockTabStore.init(): void and DockTabStore.whenReady(): Promise
    • removed possibly memory leaks because of forgotten reaction for sync tab-data with local-storage
    • added methods DockTabStore.dispose() or DockTabStore.destroy() allows to fully destroy corresponding tab's data
    1. detached dock-tab views registration from dock.tsx
    2. added method-helpers for monitoring active tab state, see also dock.store.ts -> DockStore.onTabChange(callback, options?): IReactionDisposer -> DockStore.onTabClose(callback, options?): IReactionDisposer

    TODO / known bugs:

    • [x] terminal-tab background doesn't react to switching lens-theme to light/dark (see also: #2224)

    Troubleshooting:

    Q: editor's highlighting language syntax and theme is not applied / broken A: Try make clean && make dev

    Demo:

    https://user-images.githubusercontent.com/6377066/136702954-9d370424-1209-4b11-87ed-7f9ef72e5c2e.mov

    Before (Lens 5.2.5 + maybe latest master):

    • complete loosing focus to editor and restoring state (cursor position, selection, etc.) when switching between dock tabs
    • yaml validation error is shared between same kind of tabs (see video) and resets only when value changed

    https://user-images.githubusercontent.com/6377066/136702946-904044d6-3489-4185-b93f-d59468f52f1c.mov

  • Upgrade to latest node-fetch

    Upgrade to latest node-fetch

    • Introduce injection tokens for retriving the implementation of node-fetch via await import() calls

    • Add webpack file for compiling node-fetch to electron-renderer single file format

    Signed-off-by: Sebastian Malton [email protected]

  • Bump dompurify from 2.4.1 to 2.4.3

    Bump dompurify from 2.4.1 to 2.4.3

    Bumps dompurify from 2.4.1 to 2.4.3.

    Release notes

    Sourced from dompurify's releases.

    DOMPurify 2.4.3

    • Final release that is compatible with MSIE10 & MSIE 11

    DOMPurify 2.4.2

    • Fixed a Trusted Types sink violation with empty input and NAMESPACE , thanks @​tosmolka
    • Fixed a Prototype Pollution issue discovered and reported by @​kevin-mizu
    Commits
    • 90326ef Merge pull request #750 from cure53/dependabot/npm_and_yarn/json5-1.0.2
    • fade506 chore: Prepare 2.4.3, final feature release compatible w. MSIE10/11
    • 3afe389 build(deps): bump json5 from 1.0.1 to 1.0.2
    • f1e180f fix: merged from latest main
    • 7707778 Update README.md
    • 5267b04 chore: Preparing 2.4.2 release
    • d1dd037 fix: Fixed a prototype pollution bug reported by @​kevin_mizu
    • 24d2a7f Merge pull request #748 from tosmolka/tosmolka/747
    • 7de86a0 Fix formatting
    • 191cc00 Fix Trusted Types Sink violation with empty input and NAMESPACE
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump ws from 8.11.0 to 8.12.0

    Bump ws from 8.11.0 to 8.12.0

    Bumps ws from 8.11.0 to 8.12.0.

    Release notes

    Sourced from ws's releases.

    8.12.0

    Features

    • Added support for utf-8-validate@6 (ff63bba3).

    Other notable changes

    • buffer.isUtf8() is now used instead of utf-8-validate if available (42d79f60).
    Commits
    • a3214d3 [dist] 8.12.0
    • 42d79f6 [minor] Use buffer.isUtf8() if possible
    • ff63bba [pkg] Update utf-8-validate to version 6.0.0
    • d412358 [minor] Fix nits
    • 2dc2812 [minor] Make sendAfterClose() call the callback in the next tick
    • fb1dfd2 [doc] Fix badge URL
    • 83c72cf [perf] Make toBuffer() use FastBuffer
    • 1b057f9 [minor] Fix nit
    • e6a32f8 [perf] Use FastBuffer instead of Buffer#subarray()
    • 9e0fd77 [minor] Use Buffer#subarray() instead of Buffer#slice()
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump postcss from 8.4.20 to 8.4.21

    Bump postcss from 8.4.20 to 8.4.21

    Bumps postcss from 8.4.20 to 8.4.21.

    Release notes

    Sourced from postcss's releases.

    8.4.21

    Changelog

    Sourced from postcss's changelog.

    8.4.21

    • Fixed Input#error types (by Aleks Hudochenkov).
    Commits
    • 32ced0e Release 8.4.21 version
    • a936b80 Update dependencies
    • c9bd445 Fix types
    • 4ad96d1 Merge pull request #1811 from hudochenkov/fix-input-types
    • 15f5fad Add types for an Input.error()
    • 43bd2df Merge pull request #1808 from hudochenkov/update-syntaxes
    • 292b8f0 Add postcss-styled-syntax to list of syntaxes
    • 29f5168 Update postcss-html and postcss-markdown repositories
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • OpenLens 6.25 not able to show cluster CPU and Memory after eks upgraded to 1.24

    OpenLens 6.25 not able to show cluster CPU and Memory after eks upgraded to 1.24

    Describe the bug Before eks upgrade, lens worked fine with my eks clusters. It can show the cluster CPU and Memory usage. In the Node section, it also shows the cpu, memory and disk usage of each instance. After upgrading the eks from 1.22 to 1.24, all these metrics disappeared. No longer see these usages. screenshot: before the eks upgrade

    Screenshot2023_01_07_202501

    screenshot: after the eks upgrade image

    Tried to upgrade the OpenLens to 6.3.0, then all of the cluster information are missing. Same issue as this ticket https://github.com/lensapp/lens/issues/3891

    To Reproduce Steps to reproduce the behavior:

    1. upgrade eks from 1.22 to 1.24
    2. upgrade aws and update-kubeconfig
    3. reconnect the new eks cluster by lens
    4. See error

    Expected behavior Still can see the cluster CPU, memory usages. In the Node section, will be able to see the usage of each node's CPU, memory and disk.

    Environment (please complete the following information):

    • Lens Version: 6.25
    • OS: Mac
  • Bump @swc/core from 1.3.24 to 1.3.25

    Bump @swc/core from 1.3.24 to 1.3.25

    Bumps @swc/core from 1.3.24 to 1.3.25.

    Changelog

    Sourced from @​swc/core's changelog.

    [1.3.25] - 2023-01-05

    Bug Fixes

    Documentation

    Features

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Kubernetes OS Server - Kubernetes Extension API server exposing OS configuration like sysctl via Kubernetes API

KOSS is a Extension API Server which exposes OS properties and functionality using Kubernetes API, so it can be accessed using e.g. kubectl. At the moment this is highly experimental and only managing sysctl is supported. To make things actually usable, you must run KOSS binary as root on the machine you will be managing.

May 19, 2021
Litmus helps Kubernetes SREs and developers practice chaos engineering in a Kubernetes native way.
Litmus helps Kubernetes SREs and developers practice chaos engineering in a Kubernetes native way.

Litmus Cloud-Native Chaos Engineering Read this in other languages. ???? ???? ???? ???? Overview Litmus is a toolset to do cloud-native chaos engineer

Jan 1, 2023
KEDA is a Kubernetes-based Event Driven Autoscaling component. It provides event driven scale for any container running in Kubernetes
 KEDA is a Kubernetes-based Event Driven Autoscaling component. It provides event driven scale for any container running in Kubernetes

Kubernetes-based Event Driven Autoscaling KEDA allows for fine-grained autoscaling (including to/from zero) for event driven Kubernetes workloads. KED

Jan 7, 2023
vcluster - Create fully functional virtual Kubernetes clusters - Each cluster runs inside a Kubernetes namespace and can be started within seconds
vcluster - Create fully functional virtual Kubernetes clusters - Each cluster runs inside a Kubernetes namespace and can be started within seconds

Website • Quickstart • Documentation • Blog • Twitter • Slack vcluster - Virtual Clusters For Kubernetes Lightweight & Low-Overhead - Based on k3s, bu

Jan 4, 2023
network-node-manager is a kubernetes controller that controls the network configuration of a node to resolve network issues of kubernetes.
network-node-manager is a kubernetes controller that controls the network configuration of a node to resolve network issues of kubernetes.

Network Node Manager network-node-manager is a kubernetes controller that controls the network configuration of a node to resolve network issues of ku

Dec 18, 2022
A k8s vault webhook is a Kubernetes webhook that can inject secrets into Kubernetes resources by connecting to multiple secret managers
A k8s vault webhook is a Kubernetes webhook that can inject secrets into Kubernetes resources by connecting to multiple secret managers

k8s-vault-webhook is a Kubernetes admission webhook which listen for the events related to Kubernetes resources for injecting secret directly from sec

Oct 15, 2022
Carrier is a Kubernetes controller for running and scaling game servers on Kubernetes.
Carrier is a Kubernetes controller for running and scaling game servers on Kubernetes.

Carrier is a Kubernetes controller for running and scaling game servers on Kubernetes. This project is inspired by agones. Introduction Genera

Nov 25, 2022
Kubei is a flexible Kubernetes runtime scanner, scanning images of worker and Kubernetes nodes providing accurate vulnerabilities assessment, for more information checkout:
Kubei is a flexible Kubernetes runtime scanner, scanning images of worker and Kubernetes nodes providing accurate vulnerabilities assessment, for more information checkout:

Kubei is a vulnerabilities scanning and CIS Docker benchmark tool that allows users to get an accurate and immediate risk assessment of their kubernet

Dec 30, 2022
The OCI Service Operator for Kubernetes (OSOK) makes it easy to connect and manage OCI services from a cloud native application running in a Kubernetes environment.

OCI Service Operator for Kubernetes Introduction The OCI Service Operator for Kubernetes (OSOK) makes it easy to create, manage, and connect to Oracle

Sep 27, 2022
Kubernetes IN Docker - local clusters for testing Kubernetes
Kubernetes IN Docker - local clusters for testing Kubernetes

kind is a tool for running local Kubernetes clusters using Docker container "nodes".

Jan 5, 2023
An Easy to use Go framework for Kubernetes based on kubernetes/client-go

k8devel An Easy to use Go framework for Kubernetes based on kubernetes/client-go, see examples dir for a quick start. How to test it ? Download the mo

Mar 25, 2022
PolarDB-X Operator is a Kubernetes extension that aims to create and manage PolarDB-X cluster on Kubernetes.

GalaxyKube -- PolarDB-X Operator PolarDB-X Operator is a Kubernetes extension that aims to create and manage PolarDB-X cluster on Kubernetes. It follo

Dec 19, 2022
provider-kubernetes is a Crossplane Provider that enables deployment and management of arbitrary Kubernetes objects on clusters

provider-kubernetes provider-kubernetes is a Crossplane Provider that enables deployment and management of arbitrary Kubernetes objects on clusters ty

Dec 14, 2022
Kubernetes Operator to sync secrets between different secret backends and Kubernetes

Vals-Operator Here at Digitalis we love vals, it's a tool we use daily to keep secrets stored securely. We also use secrets-manager on the Kubernetes

Nov 13, 2022
Crossplane provider to provision and manage Kubernetes objects on (remote) Kubernetes clusters.

provider-kubernetes provider-kubernetes is a Crossplane Provider that enables deployment and management of arbitrary Kubernetes objects on clusters ty

Jan 3, 2023
kitex running in kubernetes cluster and discover each other in kubernetes Service way

Using kitex in kubernetes Kitex [kaɪt'eks] is a high-performance and strong-extensibility Golang RPC framework. This go module helps you to build mult

Feb 21, 2022
cluster-api-state-metrics (CASM) is a service that listens to the Kubernetes API server and generates metrics about the state of custom resource objects related of Kubernetes Cluster API.

Overview cluster-api-state-metrics (CASM) is a service that listens to the Kubernetes API server and generates metrics about the state of custom resou

Oct 27, 2022
Kubernetes IN Docker - local clusters for testing Kubernetes
Kubernetes IN Docker - local clusters for testing Kubernetes

Please see Our Documentation for more in-depth installation etc. kind is a tool for running local Kubernetes clusters using Docker container "nodes".

Feb 14, 2022