- Extension Anatomy
-
-
+ Extension Anatomy
+You've now learnt how to get basic extension running. In this topic you will learn some fundamental concepts to Lens Extension development; How does it work under the hood?
+Hello World extension does three things:
+
+- Hooks on
onActivate() and ouputs message into console.
+- Hooks on
onDectivate() and ouputs message into console.
+- Registers
ClusterPage so that page is visible in the sidebars of cluster dashboards.
+
+Let's take a closer look at Hello World sample's source code and see how to achieve these things.
+Extension File Structure
+.
+├── .gitignore // Ignore build output and node_modules
+├── Makefile // Config for build tasks that compiles the extension
+├── README.md // Readable description of your extension's functionality
+├── src
+│ └── page.tsx // Extension's additional source code
+├── main.ts // Source code for extension's main entrypoint
+├── package.json // Extension manifest and dependencies
+├── renderer.tsx // Source code for extension's renderer entrypoint
+├── tsconfig.json // TypeScript configuration
+├── webpack.config.js // Webpack configuration
+
+Extension directory contains extension's entry files and few configuration files. Let's focus on package.json, main.ts and renderer.tsx which are essential to understanding the Hello World extension.
+Extension Manifest
+Each Lens extension must have package.json. The package.json contains a mix of Node.js fields such as scripts and dependencies and Lens specific fields such as publisher and contributes. Here are some most important fields:
+
+name and publisher: Lens uses @<publisher>/<name> as a unique ID for the extension. For example, the Hello World sample has the ID @lensapp-samples/helloworld-sample. Lens uses the ID to uniquely identify your extension
+main: The extension's entry point run in main process.
+renderer: The extension's entry point run in renderer process.
+engines.lens: This specifies the minimum version of Lens API that the extension depends on.
+
+{
+ "name": "helloworld-sample",
+ "publisher": "lens-samples",
+ "version": "0.0.1",
+ "description": "Lens helloworld-sample",
+ "license": "MIT",
+ "homepage": "https://github.com/lensapp/lens-extension-samples",
+ "engines": {
+ "lens": "^4.0.0"
+ },
+ "main": "dist/main.js",
+ "renderer": "dist/renderer.js",
+ "scripts": {
+ "build": "webpack --config webpack.config.js",
+ "dev": "npm run build --watch"
+ },
+ "dependencies": {
+ "react-open-doodles": "^1.0.5"
+ },
+ "devDependencies": {
+ "@k8slens/extensions": "^4.0.0-alpha.2",
+ "ts-loader": "^8.0.4",
+ "typescript": "^4.0.3",
+ "@types/react": "^16.9.35",
+ "@types/node": "^12.0.0",
+ "webpack": "^4.44.2",
+ "webpack-cli": "^3.3.11"
+ }
+}
+
+Extension Entry Files
+Lens extensions can have two separate entry files. One file that is used in main process of Lens application and antoher that is used in renderer process. main entry file should export class that extends LensMainExtension and renderer entry file should export class that extends LensRendererExtension.
+Both extensions classes have onActivate and onDeactivate methods. onActivate is executed when your extension activation happens. You may want to initialize something in your extension at this point. onDeactivate gives you a chance to clean up before your extension becomes deactivated. For many extensions, explicit cleanup may not be required, and you don't need to override this method. However, if an extension needs to perform an operation when Lens is shutting down or the extension is disabled or uninstalled, this is the method to do so.
+Hello world extension does not do anything special on main process, so let's focus on the renderer side. On renderer entry point, Hello world extension defines one Cluster Page object that registers /extension-example path that renders ExamplePage React component. It registers also MenuItem component that displays ExampleIcon React component and "Hello World" text in the sidebar of cluster dashboards. These React components are defined in additional ./src/page.tsx file.
+import { LensRendererExtension } from "@k8slens/extensions";
+import { ExampleIcon, ExamplePage } from "./page"
+import React from "react"
+
+export default class ExampleExtension extends LensRendererExtension {
+ clusterPages = [
+ {
+ path: "/extension-example",
+ title: "Hello World",
+ components: {
+ Page: () => <ExamplePage extension={this}/>,
+ MenuIcon: ExampleIcon,
+ }
+ }
+ ]
+}
+
+Hello World extension uses only one capability (Cluster Page) of Lens extensions. The Extension Capabilities Overview topic helps you find the right capabilities you can use with your own extension.
diff --git a/latest/search/search_index.json b/latest/search/search_index.json
index 5dd1738a65..bb5a3249ea 100644
--- a/latest/search/search_index.json
+++ b/latest/search/search_index.json
@@ -1 +1 @@
-{"config":{"lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"Overview # Lens is the most powerful Kubernetes IDE on the market. It is a standalone application, and it is available on macOS, Windows, and Linux. Some of the benefits of using Lens include: Confidence that your clusters are properly setup and configured. Increased visibility, real time statistics, log streams, and hands-on troubleshooting capabilities. The ability to work with your clusters quickly and easily, radically improving productivity and the speed of business. Watch this introductory video to see Lens in action: Note: Use CTRL+click (on Windows and Linux) or CMD+click (on MacOS) to open the above in a new tab Downloading Lens # Download Lens for macOS, Windows, or Linux. Quick Start # Get up and running quickly by learning to add clusters .","title":"Overview"},{"location":"#overview","text":"Lens is the most powerful Kubernetes IDE on the market. It is a standalone application, and it is available on macOS, Windows, and Linux. Some of the benefits of using Lens include: Confidence that your clusters are properly setup and configured. Increased visibility, real time statistics, log streams, and hands-on troubleshooting capabilities. The ability to work with your clusters quickly and easily, radically improving productivity and the speed of business. Watch this introductory video to see Lens in action: Note: Use CTRL+click (on Windows and Linux) or CMD+click (on MacOS) to open the above in a new tab","title":"Overview"},{"location":"#downloading-lens","text":"Download Lens for macOS, Windows, or Linux.","title":"Downloading Lens"},{"location":"#quick-start","text":"Get up and running quickly by learning to add clusters .","title":"Quick Start"},{"location":"clusters/adding-clusters/","text":"Adding clusters # Add clusters by clicking the Add Cluster button in the left-side menu. Click the Add Cluster button (indicated with a '+' icon). Enter the path to your kubeconfig file. You'll need to have a kubeconfig file for the cluster you want to add. You can either browse for the path from the file system or or enter it directly. Selected cluster contexts are added as a separate item in the left-side cluster menu to allow you to operate easily on multiple clusters and/or contexts. NOTE : Any cluster that you added manually will not be merged into your kubeconfig file. For more information on kubeconfig see Kubernetes docs . To see your currently-enabled config with kubectl , enter kubectl config view --minify --raw in your terminal.","title":"Adding clusters"},{"location":"clusters/adding-clusters/#adding-clusters","text":"Add clusters by clicking the Add Cluster button in the left-side menu. Click the Add Cluster button (indicated with a '+' icon). Enter the path to your kubeconfig file. You'll need to have a kubeconfig file for the cluster you want to add. You can either browse for the path from the file system or or enter it directly. Selected cluster contexts are added as a separate item in the left-side cluster menu to allow you to operate easily on multiple clusters and/or contexts. NOTE : Any cluster that you added manually will not be merged into your kubeconfig file. For more information on kubeconfig see Kubernetes docs . To see your currently-enabled config with kubectl , enter kubectl config view --minify --raw in your terminal.","title":"Adding clusters"},{"location":"clusters/removing-clusters/","text":"Removing clusters # Remove Lens clusters using the context menu that appears when you right-click the cluster in the left-side menu that you want to remove. To remove a cluster from your cluster list: Right-click the name of the cluster in the left-side menu that you want to remove. Click Remove . NOTE : This will only remove the cluster from your Lens cluster list. It will not affect your actual Kubernetes cluster or its configuration.","title":"Removing cluster"},{"location":"clusters/removing-clusters/#removing-clusters","text":"Remove Lens clusters using the context menu that appears when you right-click the cluster in the left-side menu that you want to remove. To remove a cluster from your cluster list: Right-click the name of the cluster in the left-side menu that you want to remove. Click Remove . NOTE : This will only remove the cluster from your Lens cluster list. It will not affect your actual Kubernetes cluster or its configuration.","title":"Removing clusters"},{"location":"clusters/settings/","text":"Settings # It is easy to configure Lens Clusters to your liking through its various settings. Right-click the name of the cluster in the left-side menu that you want to open the settings for. Click Settings . Status # Overview of the cluster status Cluster Status # Cluster status information including the detected distribution, kernel version, API endpoint, and online status General # General cluster settings Cluster Name # The cluster name is inheritated by default from the kubeconfig file. Change the cluster name to another value by updating it here. Note that doing so does not update your kubeconfig file. Workspace # This is the Lens workspace that the cluster is associated with. Change workspaces by selecting a different workspace from the dropdown menu. Create a new workspace by clicking workspace in \"Define cluster workspace\" above the dropdown menu. This option will take you the workspaces editor. Create a new workspace and then navigate back to cluster settings. Cluster Icon # Lens randomly generates an icon to associate with each newly-created cluster. Use this setting to choose your own icon. HTTP Proxy # Some users will need to define an HTTP proxy for communicating with the Kubernetes API. Use this setting to do so. Prometheus # Lens can be configured to query a Prometheus server installed in the cluster. Select a query format by choosing either to auto-detect or from the following configurations: Lens Helm Operator Prometheus Operator Stacklight To learn more about custom Prometheus configurations, please refer to this guide . Working Directory # Use this field to set the terminal working directory. The default is $HOME . Features # Additional Lens features that can be installed by the user Metrics # Enable timeseries data visualization (Prometheus stack) for your cluster. Install this only if you don't have existing Prometheus stack installed. User Mode # User Mode feature enables non-admin users to see namespaces they have access to. This is achieved by configuring RBAC rules so that every authenticated user is granted to list namespaces. Removal # Use this setting to remove the current cluster.","title":"Settings"},{"location":"clusters/settings/#settings","text":"It is easy to configure Lens Clusters to your liking through its various settings. Right-click the name of the cluster in the left-side menu that you want to open the settings for. Click Settings .","title":"Settings"},{"location":"clusters/settings/#status","text":"Overview of the cluster status","title":"Status"},{"location":"clusters/settings/#cluster-status","text":"Cluster status information including the detected distribution, kernel version, API endpoint, and online status","title":"Cluster Status"},{"location":"clusters/settings/#general","text":"General cluster settings","title":"General"},{"location":"clusters/settings/#cluster-name","text":"The cluster name is inheritated by default from the kubeconfig file. Change the cluster name to another value by updating it here. Note that doing so does not update your kubeconfig file.","title":"Cluster Name"},{"location":"clusters/settings/#workspace","text":"This is the Lens workspace that the cluster is associated with. Change workspaces by selecting a different workspace from the dropdown menu. Create a new workspace by clicking workspace in \"Define cluster workspace\" above the dropdown menu. This option will take you the workspaces editor. Create a new workspace and then navigate back to cluster settings.","title":"Workspace"},{"location":"clusters/settings/#cluster-icon","text":"Lens randomly generates an icon to associate with each newly-created cluster. Use this setting to choose your own icon.","title":"Cluster Icon"},{"location":"clusters/settings/#http-proxy","text":"Some users will need to define an HTTP proxy for communicating with the Kubernetes API. Use this setting to do so.","title":"HTTP Proxy"},{"location":"clusters/settings/#prometheus","text":"Lens can be configured to query a Prometheus server installed in the cluster. Select a query format by choosing either to auto-detect or from the following configurations: Lens Helm Operator Prometheus Operator Stacklight To learn more about custom Prometheus configurations, please refer to this guide .","title":"Prometheus"},{"location":"clusters/settings/#working-directory","text":"Use this field to set the terminal working directory. The default is $HOME .","title":"Working Directory"},{"location":"clusters/settings/#features","text":"Additional Lens features that can be installed by the user","title":"Features"},{"location":"clusters/settings/#metrics","text":"Enable timeseries data visualization (Prometheus stack) for your cluster. Install this only if you don't have existing Prometheus stack installed.","title":"Metrics"},{"location":"clusters/settings/#user-mode","text":"User Mode feature enables non-admin users to see namespaces they have access to. This is achieved by configuring RBAC rules so that every authenticated user is granted to list namespaces.","title":"User Mode"},{"location":"clusters/settings/#removal","text":"Use this setting to remove the current cluster.","title":"Removal"},{"location":"contributing/","text":"Contributing # There are multiple ways you can contribute to Lens - even if you are not a developer, you can still contribute. We are always looking for assistance with creating or updating documentation, testing the application, reporting and troubleshooting issues. Here are some ideas how you can contribute! Development \u2013 Help making Lens better. Maintaining the Project \u2013 Become community maintainer and help us maintain the project. Extension Development \u2013 Add integrations via Lens Extensions. Documentation \u2013 Help improve Lens documentation. Promotion \u2013 Show your support, be an ambassador to Lens, write blogs and make videos! If you are an influencer, blogger or journalist, feel free to spread the word ! Code of Conduct # This project adheres to the Contributor Covenant code of conduct. By participating and contributing to Lens, you are expected to uphold this code. Please report unacceptable behaviour to info@k8slens.dev","title":"Contributing"},{"location":"contributing/#contributing","text":"There are multiple ways you can contribute to Lens - even if you are not a developer, you can still contribute. We are always looking for assistance with creating or updating documentation, testing the application, reporting and troubleshooting issues. Here are some ideas how you can contribute! Development \u2013 Help making Lens better. Maintaining the Project \u2013 Become community maintainer and help us maintain the project. Extension Development \u2013 Add integrations via Lens Extensions. Documentation \u2013 Help improve Lens documentation. Promotion \u2013 Show your support, be an ambassador to Lens, write blogs and make videos! If you are an influencer, blogger or journalist, feel free to spread the word !","title":"Contributing"},{"location":"contributing/#code-of-conduct","text":"This project adheres to the Contributor Covenant code of conduct. By participating and contributing to Lens, you are expected to uphold this code. Please report unacceptable behaviour to info@k8slens.dev","title":"Code of Conduct"},{"location":"contributing/development/","text":"Development # TBD","title":"Development"},{"location":"contributing/development/#development","text":"TBD","title":"Development"},{"location":"contributing/documentation/","text":"Documentation # We are glad to see you are interested in contributing to Lens documentation. If this is the first Open Source project you will contribute to, we strongly suggest reading GitHub's excellent guide: How to Contribute to Open Source . Finding Documentation Issues to Work On # You can find a list of open documentation related issues here . When you find something you would like to work on: Express your interest to start working on an issue via comments. One of the maintainers will assign the issue for you. You can start working on the issue. Once done, simply submit a pull request. Requirements for Documentation Pull Requests # When you create a new pull request, we expect some requirements to be met. Follow this naming convention for Pull Requests: When adding new documentation, add New Documentation: before the title. E.g. New Documentation: Getting Started When fixing documentation, add Fix Documentation: before the title. E.g. Fix Documentation: Getting Started When updating documentation, add Update Documentation: before the title. E.g. Update Documentation: Getting Started If your Pull Request closes an issue you need to write Closes #ISSUE_NUMBER where the ISSUE_NUMBER is the number in the end of the link url that will link your pull request to the issue, when merged will close that issue. For each pull request made, we run tests to check if there are any broken links, the markdown formatting is valid and the linter is passing.","title":"Documentation"},{"location":"contributing/documentation/#documentation","text":"We are glad to see you are interested in contributing to Lens documentation. If this is the first Open Source project you will contribute to, we strongly suggest reading GitHub's excellent guide: How to Contribute to Open Source .","title":"Documentation"},{"location":"contributing/documentation/#finding-documentation-issues-to-work-on","text":"You can find a list of open documentation related issues here . When you find something you would like to work on: Express your interest to start working on an issue via comments. One of the maintainers will assign the issue for you. You can start working on the issue. Once done, simply submit a pull request.","title":"Finding Documentation Issues to Work On"},{"location":"contributing/documentation/#requirements-for-documentation-pull-requests","text":"When you create a new pull request, we expect some requirements to be met. Follow this naming convention for Pull Requests: When adding new documentation, add New Documentation: before the title. E.g. New Documentation: Getting Started When fixing documentation, add Fix Documentation: before the title. E.g. Fix Documentation: Getting Started When updating documentation, add Update Documentation: before the title. E.g. Update Documentation: Getting Started If your Pull Request closes an issue you need to write Closes #ISSUE_NUMBER where the ISSUE_NUMBER is the number in the end of the link url that will link your pull request to the issue, when merged will close that issue. For each pull request made, we run tests to check if there are any broken links, the markdown formatting is valid and the linter is passing.","title":"Requirements for Documentation Pull Requests"},{"location":"contributing/maintainers/","text":"Maintainers # We are looking for community maintainers for the Lens project. Maintainers will be added to a special team with write permissions. These permissions consist of opening, closing, tagging and editing issues, and pull requests, as well as create and delete non protected branches. The responsibilities of a community maintainer are listed below. Issues Triage # Labeling Issues: Label issues accordingly. Finding Duplicates: Finding and closing duplicate issues. Doing First Level Contact: Getting more information on the issues (like version number or asking for clarification) if needed. Closing Irrelevant Issues: Closing issues that are determined irrelevant, no longer needed, not relevant to the project and/or doesn't follow the issues guidelines. Help with Contributions # Help Manage Pull Requests: Help the author of the pull request with any problems. Contributing: Create pull requests to help maintain and drive the project forward.","title":"Maintainers"},{"location":"contributing/maintainers/#maintainers","text":"We are looking for community maintainers for the Lens project. Maintainers will be added to a special team with write permissions. These permissions consist of opening, closing, tagging and editing issues, and pull requests, as well as create and delete non protected branches. The responsibilities of a community maintainer are listed below.","title":"Maintainers"},{"location":"contributing/maintainers/#issues-triage","text":"Labeling Issues: Label issues accordingly. Finding Duplicates: Finding and closing duplicate issues. Doing First Level Contact: Getting more information on the issues (like version number or asking for clarification) if needed. Closing Irrelevant Issues: Closing issues that are determined irrelevant, no longer needed, not relevant to the project and/or doesn't follow the issues guidelines.","title":"Issues Triage"},{"location":"contributing/maintainers/#help-with-contributions","text":"Help Manage Pull Requests: Help the author of the pull request with any problems. Contributing: Create pull requests to help maintain and drive the project forward.","title":"Help with Contributions"},{"location":"contributing/promotion/","text":"Promoting # Help promote Lens! If you are not a developer (or even if you are), you can still contribute to the project, a lot, by helping us promote it. As we are a free open source project, the community is our most important asset, so here are some ways that you can help the project continue to grow. Follow, Like, Recommend, Favorite, Vote and Star Us # There are many sites where you can vote, recommend, favorite and star us. Twitter - Like, comment and retweet our posts, and follow us on Twitter Medium - Give claps to our articles and follow us on Medium GitHub - Become a stargazer on GitHub StackShare - Indicate you are using Lens and follow us on StackShare Reddit - Upvote and be an ambassador of Lens by participating relevant discussions on Reddit Hacker News - Upvote and be an ambassador of Lens by participating relevant discussions on Hacker News Write Blogs or Make Videos About Us # Here are some nice blog posts and videos about our project for you to get some inspiration: Onboard AWS EKS Cluster on Lens(Kubernetes IDE) Using Lens to Manage All Your Kubernetes Cluster Kontena Lens - Beautiful Kubernetes UI Gerenciando Kubernetes com Lens e Octant Walkthrough of Kubernetes IDE - Lens LENS - Interfaz Gr\u00e1fica para Kubernetes en 1 PASO. Psst... If you have created some content around Lens, let us know!","title":"Promoting"},{"location":"contributing/promotion/#promoting","text":"Help promote Lens! If you are not a developer (or even if you are), you can still contribute to the project, a lot, by helping us promote it. As we are a free open source project, the community is our most important asset, so here are some ways that you can help the project continue to grow.","title":"Promoting"},{"location":"contributing/promotion/#follow-like-recommend-favorite-vote-and-star-us","text":"There are many sites where you can vote, recommend, favorite and star us. Twitter - Like, comment and retweet our posts, and follow us on Twitter Medium - Give claps to our articles and follow us on Medium GitHub - Become a stargazer on GitHub StackShare - Indicate you are using Lens and follow us on StackShare Reddit - Upvote and be an ambassador of Lens by participating relevant discussions on Reddit Hacker News - Upvote and be an ambassador of Lens by participating relevant discussions on Hacker News","title":"Follow, Like, Recommend, Favorite, Vote and Star Us"},{"location":"contributing/promotion/#write-blogs-or-make-videos-about-us","text":"Here are some nice blog posts and videos about our project for you to get some inspiration: Onboard AWS EKS Cluster on Lens(Kubernetes IDE) Using Lens to Manage All Your Kubernetes Cluster Kontena Lens - Beautiful Kubernetes UI Gerenciando Kubernetes com Lens e Octant Walkthrough of Kubernetes IDE - Lens LENS - Interfaz Gr\u00e1fica para Kubernetes en 1 PASO. Psst... If you have created some content around Lens, let us know!","title":"Write Blogs or Make Videos About Us"},{"location":"extensions/","text":"Lens Extension API # The Extensions API in Lens allows users to customize and enhance the Lens experience by creating their own menus or page content that is extended from the existing pages. Many of the core features of Lens are built as extensions and use the same Extension API. This documentation describes: How to build, run, test and publish an extension How to take advantage of Lens's Extension API Where to find guides and code samples to help get you started Code samples are available at lensapp/lens-extension-samples . What can extensions do # Here are some examples of what you can achieve with the Extension API: Add custom components & views in the UI - Extending the Lens Workbench If you'd like to have a more comprehensive overview of the Extension API, refer to the Extension Capabilities Overview page. Extension Guides Overview also includes a list of code samples and guides that illustrate various Extension API usage. How to build extensions # Building a good extension can take a lot of effort. Here is what each section of the API doc can help you with: Get Started teaches fundamental concepts for building extensions with the Hello World sample. Extension Capabilities dissects Lens's Extension API into smaller categories and points you to more detailed topics. Extension Guides includes guides and code samples that explain specific usages of Lens Extension API. Testing and Publishing includes in-depth guides on various extension development topics, such as testing and publishing extensions. Advanced Topics explains advanced concepts such as integrating with 3rd party applications/services. References contains exhaustive references for the Lens Extension API, Contribution Points, and many other topics. What's new # Lens updates on a monthly cadence, and that applies to the Extension API as well. New features and APIs become available every month to increase the power and scope of Lens extensions. To stay current with the Extension API and Lens features in general, you can review the release notes . Looking for help # If you have questions for extension development, try asking on: Lens Dev Slack : Public chatroom for Lens developers. Some Lens team members chime in on conversations. To provide feedback on the documentation or issues with the Lens Extension API, create new issues at lensapp/lens with the labels area/documentation and/or area/extension . Download Lens - The Kubernetes IDE # Go to Lens","title":"Overview"},{"location":"extensions/#lens-extension-api","text":"The Extensions API in Lens allows users to customize and enhance the Lens experience by creating their own menus or page content that is extended from the existing pages. Many of the core features of Lens are built as extensions and use the same Extension API. This documentation describes: How to build, run, test and publish an extension How to take advantage of Lens's Extension API Where to find guides and code samples to help get you started Code samples are available at lensapp/lens-extension-samples .","title":"Lens Extension API"},{"location":"extensions/#what-can-extensions-do","text":"Here are some examples of what you can achieve with the Extension API: Add custom components & views in the UI - Extending the Lens Workbench If you'd like to have a more comprehensive overview of the Extension API, refer to the Extension Capabilities Overview page. Extension Guides Overview also includes a list of code samples and guides that illustrate various Extension API usage.","title":"What can extensions do"},{"location":"extensions/#how-to-build-extensions","text":"Building a good extension can take a lot of effort. Here is what each section of the API doc can help you with: Get Started teaches fundamental concepts for building extensions with the Hello World sample. Extension Capabilities dissects Lens's Extension API into smaller categories and points you to more detailed topics. Extension Guides includes guides and code samples that explain specific usages of Lens Extension API. Testing and Publishing includes in-depth guides on various extension development topics, such as testing and publishing extensions. Advanced Topics explains advanced concepts such as integrating with 3rd party applications/services. References contains exhaustive references for the Lens Extension API, Contribution Points, and many other topics.","title":"How to build extensions"},{"location":"extensions/#whats-new","text":"Lens updates on a monthly cadence, and that applies to the Extension API as well. New features and APIs become available every month to increase the power and scope of Lens extensions. To stay current with the Extension API and Lens features in general, you can review the release notes .","title":"What's new"},{"location":"extensions/#looking-for-help","text":"If you have questions for extension development, try asking on: Lens Dev Slack : Public chatroom for Lens developers. Some Lens team members chime in on conversations. To provide feedback on the documentation or issues with the Lens Extension API, create new issues at lensapp/lens with the labels area/documentation and/or area/extension .","title":"Looking for help"},{"location":"extensions/#download-lens-the-kubernetes-ide","text":"Go to Lens","title":"Download Lens - The Kubernetes IDE"},{"location":"extensions/api/","text":"Lens Extension API Reference # TBD","title":"API Reference"},{"location":"extensions/api/#lens-extension-api-reference","text":"TBD","title":"Lens Extension API Reference"},{"location":"extensions/capabilities/","text":"","title":"Overview"},{"location":"extensions/capabilities/common-capabilities/","text":"","title":"Common Capabilities"},{"location":"extensions/capabilities/theming/","text":"","title":"Theming"},{"location":"extensions/get-started/anatomy/","text":"","title":"Extension Anatomy"},{"location":"extensions/get-started/wrapping-up/","text":"Wrapping Up # In the Your First Extension topic, you learned how to create and run an extension. In the Extension Anatomy topic, you learned fundamental concepts to Lens extension development. However, this is just a small glimpse of what can be created with Lens Extensions. Below are some suggested routes for furthering your Lens extension development skills. Extension Capabilities # In this section, we split the Lens extension points into a few categories, each with short descriptions as to what your extension could achieve. Validate that your extension idea is achievable by reading the Extension Capabilities section for new extension ideas. Guides & Samples # We have a great collection of sample extensions that you can adapt from, and some of them include a detailed guide that explains the source code. You can find all Samples & Guides in the lens-extension-samples repository. Testing and Publishing # This section includes topics that help you develop high-quality Lens extensions. For example, you can learn How to add integration tests for your extension How to publish your extension","title":"Wrapping Up"},{"location":"extensions/get-started/wrapping-up/#wrapping-up","text":"In the Your First Extension topic, you learned how to create and run an extension. In the Extension Anatomy topic, you learned fundamental concepts to Lens extension development. However, this is just a small glimpse of what can be created with Lens Extensions. Below are some suggested routes for furthering your Lens extension development skills.","title":"Wrapping Up"},{"location":"extensions/get-started/wrapping-up/#extension-capabilities","text":"In this section, we split the Lens extension points into a few categories, each with short descriptions as to what your extension could achieve. Validate that your extension idea is achievable by reading the Extension Capabilities section for new extension ideas.","title":"Extension Capabilities"},{"location":"extensions/get-started/wrapping-up/#guides-samples","text":"We have a great collection of sample extensions that you can adapt from, and some of them include a detailed guide that explains the source code. You can find all Samples & Guides in the lens-extension-samples repository.","title":"Guides & Samples"},{"location":"extensions/get-started/wrapping-up/#testing-and-publishing","text":"This section includes topics that help you develop high-quality Lens extensions. For example, you can learn How to add integration tests for your extension How to publish your extension","title":"Testing and Publishing"},{"location":"extensions/get-started/your-first-extension/","text":"Your First Extension # In this topic, we'll teach you the fundamental concepts for building extensions. Make sure you have Node.js and Git installed.... Installing and Building the extension # Simple Lens extension that adds \"Hello World\" page to a cluster menu. Linux # First you will need to clone the Lens Extension samples repository to your local machine: git clone https://github.com/lensapp/lens-extension-samples.git Next you need to create a symlink from the directory that Lens will monitor for user installed extensions to the sample extension, in this case helloworld-sample : mkdir -p ~/.k8slens/extensions cd ~/.k8slens/extensions ln -s /helloworld-sample helloworld-sample To build the extension you can use make or run the npm commands manually: cd /helloworld-sample make build OR cd /helloworld-sample npm install npm run build If you want to watch for any source code changes and automatically rebuild the extension you can use: cd /helloworld-sample npm run dev Finally, if you already have Lens open you will need to quit and restart Lens for the extension to be loaded. After this initial restart you can reload Lens and it will pick up any new builds of the extension. Within Lens connect to an existing cluster or create a new one . You should see then see the \"Hello World\" page in the Lens sidebar cluster menu. Developing the extension # Let's make a change to the message that our helloworld-sample extension displays: Navigate to /helloworld-sample . Change the message from HelloWorld! to Hello Lens Extensions in page.tsx . Rebuild the extension or, if you used npm run dev , the extension should automatically rebuild. Reload the Lens window and click on the Hello World page. You should see the updated message showing up. Next steps # In the next topic, Extension Anatomy , we'll take a closer look at the source code of the Hello World sample and explain key concepts. You can find the source code of this tutorial at: lensapp/lens-extension-samples . The Extension Guides topic contains other samples, each illustrating a different Lens Extension API.","title":"Your First Extension"},{"location":"extensions/get-started/your-first-extension/#your-first-extension","text":"In this topic, we'll teach you the fundamental concepts for building extensions. Make sure you have Node.js and Git installed....","title":"Your First Extension"},{"location":"extensions/get-started/your-first-extension/#installing-and-building-the-extension","text":"Simple Lens extension that adds \"Hello World\" page to a cluster menu.","title":"Installing and Building the extension"},{"location":"extensions/get-started/your-first-extension/#linux","text":"First you will need to clone the Lens Extension samples repository to your local machine: git clone https://github.com/lensapp/lens-extension-samples.git Next you need to create a symlink from the directory that Lens will monitor for user installed extensions to the sample extension, in this case helloworld-sample : mkdir -p ~/.k8slens/extensions cd ~/.k8slens/extensions ln -s /helloworld-sample helloworld-sample To build the extension you can use make or run the npm commands manually: cd /helloworld-sample make build OR cd /helloworld-sample npm install npm run build If you want to watch for any source code changes and automatically rebuild the extension you can use: cd /helloworld-sample npm run dev Finally, if you already have Lens open you will need to quit and restart Lens for the extension to be loaded. After this initial restart you can reload Lens and it will pick up any new builds of the extension. Within Lens connect to an existing cluster or create a new one . You should see then see the \"Hello World\" page in the Lens sidebar cluster menu.","title":"Linux"},{"location":"extensions/get-started/your-first-extension/#developing-the-extension","text":"Let's make a change to the message that our helloworld-sample extension displays: Navigate to /helloworld-sample . Change the message from HelloWorld! to Hello Lens Extensions in page.tsx . Rebuild the extension or, if you used npm run dev , the extension should automatically rebuild. Reload the Lens window and click on the Hello World page. You should see the updated message showing up.","title":"Developing the extension"},{"location":"extensions/get-started/your-first-extension/#next-steps","text":"In the next topic, Extension Anatomy , we'll take a closer look at the source code of the Hello World sample and explain key concepts. You can find the source code of this tutorial at: lensapp/lens-extension-samples . The Extension Guides topic contains other samples, each illustrating a different Lens Extension API.","title":"Next steps"},{"location":"extensions/guides/","text":"","title":"Overview"},{"location":"extensions/guides/renderer-extension/","text":"Renderer Extension #","title":"Renderer Extension"},{"location":"extensions/guides/renderer-extension/#renderer-extension","text":"","title":"Renderer Extension"},{"location":"extensions/testing-and-publishing/bundling/","text":"","title":"Bundling Extensions"},{"location":"extensions/testing-and-publishing/publishing/","text":"","title":"Publishing Extensions"},{"location":"extensions/testing-and-publishing/testing/","text":"Testing Extensions # Console.log # console.log() might be handy for extension developers to prints out info/errors from extensions. To use console.log , note that Lens is based on Electron. Electron has two types of processes: Main and Renderer . Renderer process logs # console.log() in Renderer process is printed in the Console in Developer Tools (View > Toggle Developer Tools). Main process logs # To view the logs from the main process is a bit trickier, since you cannot open developer tools for them. On MacOSX, one way is to run Lens from the terminal. /Applications/Lens.app/Contents/MacOS/Lens You can alos use Console.app to view logs from Lens. On linux, you can get PID of Lens first ps aux | grep Lens | grep -v grep And get logs by the PID tail -f /proc/ [ pid ] /fd/1 # stdout (console.log) tail -f /proc/ [ pid ] /fd/2 # stdout (console.error)","title":"Testing Extensions"},{"location":"extensions/testing-and-publishing/testing/#testing-extensions","text":"","title":"Testing Extensions"},{"location":"extensions/testing-and-publishing/testing/#consolelog","text":"console.log() might be handy for extension developers to prints out info/errors from extensions. To use console.log , note that Lens is based on Electron. Electron has two types of processes: Main and Renderer .","title":"Console.log"},{"location":"extensions/testing-and-publishing/testing/#renderer-process-logs","text":"console.log() in Renderer process is printed in the Console in Developer Tools (View > Toggle Developer Tools).","title":"Renderer process logs"},{"location":"extensions/testing-and-publishing/testing/#main-process-logs","text":"To view the logs from the main process is a bit trickier, since you cannot open developer tools for them. On MacOSX, one way is to run Lens from the terminal. /Applications/Lens.app/Contents/MacOS/Lens You can alos use Console.app to view logs from Lens. On linux, you can get PID of Lens first ps aux | grep Lens | grep -v grep And get logs by the PID tail -f /proc/ [ pid ] /fd/1 # stdout (console.log) tail -f /proc/ [ pid ] /fd/2 # stdout (console.error)","title":"Main process logs"},{"location":"extensions/usage/","text":"Using Extensions # TBD","title":"Using Extensions"},{"location":"extensions/usage/#using-extensions","text":"TBD","title":"Using Extensions"},{"location":"faq/","text":"TBD","title":"FAQ"},{"location":"getting-started/","text":"Getting Started # Lens is lightweight and simple to install. You'll be up and running in just a few minutes. System requirements # Review the System Requirements to check if your computer configuration is supported. macOS # Download Lens for macOS. Open the browser's download list and locate the downloaded archive. Select the 'magnifying glass' icon to open the archive in Finder. Double-click Lens-{version}.dmg and drag Lens.app to the Applications folder, making it available in the macOS Launchpad. Add Lens to your Dock by right-clicking on the icon to bring up the context menu and choosing Options , Keep in Dock . Windows # Download the Lens installer for Windows. Once it is downloaded, run the installer Lens-Setup-{version}.exe . This will only take a minute. By default, Lens is installed under C:\\users\\{username}\\AppData\\Local\\Programs\\Lens . Linux # See the Download Lens page for a complete list of available installation options. Snap # Lens is officially distributed as a Snap package in the Snap Store : You can install it by running: sudo snap install kontena-lens --classic Update cadence # Lens releases a new version each month with new features and important bug fixes. Lens supports auto updating and you will be prompted to install the new release when it becomes available! To stay current with the Lens features, you can review the release notes . Next Steps # Add clusters Watch introductory videos","title":"Getting Started"},{"location":"getting-started/#getting-started","text":"Lens is lightweight and simple to install. You'll be up and running in just a few minutes.","title":"Getting Started"},{"location":"getting-started/#system-requirements","text":"Review the System Requirements to check if your computer configuration is supported.","title":"System requirements"},{"location":"getting-started/#macos","text":"Download Lens for macOS. Open the browser's download list and locate the downloaded archive. Select the 'magnifying glass' icon to open the archive in Finder. Double-click Lens-{version}.dmg and drag Lens.app to the Applications folder, making it available in the macOS Launchpad. Add Lens to your Dock by right-clicking on the icon to bring up the context menu and choosing Options , Keep in Dock .","title":"macOS"},{"location":"getting-started/#windows","text":"Download the Lens installer for Windows. Once it is downloaded, run the installer Lens-Setup-{version}.exe . This will only take a minute. By default, Lens is installed under C:\\users\\{username}\\AppData\\Local\\Programs\\Lens .","title":"Windows"},{"location":"getting-started/#linux","text":"See the Download Lens page for a complete list of available installation options.","title":"Linux"},{"location":"getting-started/#snap","text":"Lens is officially distributed as a Snap package in the Snap Store : You can install it by running: sudo snap install kontena-lens --classic","title":"Snap"},{"location":"getting-started/#update-cadence","text":"Lens releases a new version each month with new features and important bug fixes. Lens supports auto updating and you will be prompted to install the new release when it becomes available! To stay current with the Lens features, you can review the release notes .","title":"Update cadence"},{"location":"getting-started/#next-steps","text":"Add clusters Watch introductory videos","title":"Next Steps"},{"location":"getting-started/introductory-videos/","text":"Introductory Videos # Continue your Lens journey with this set of introductory videos! These videos are meant to quickly familiarize you with Lens' various powerful features. Getting started Get Lens Kubernetes IDE Running in 5 Minutes Duration 35 minutes Introducing Lens Lens Kubernetes IDE overview Duration 2 minutes Demo of Mirantis Lens The Best IDE For Kubernetes Duration 10 minutes","title":"Introductory Videos"},{"location":"getting-started/introductory-videos/#introductory-videos","text":"Continue your Lens journey with this set of introductory videos! These videos are meant to quickly familiarize you with Lens' various powerful features.","title":"Introductory Videos"},{"location":"getting-started/preferences/","text":"Preferences # Color themes # The Color Themes option in Lens preferences lets you set the colors in the Lens user interface to suit your liking. Go to File > Preferences ( Lens > Preferences on Mac). Select your preferred theme from the Color Theme dropdown. Telemetry & usage tracking # Lens collects telemetry data, which is used to help us understand how to improve the product. For example, this usage data helps us to debug issues and to prioritize new features. While we appreciate the insights this data provides, we also know that not everyone wants to send usage data. Please see our privacy statement to learn more. Disable telemetry reporting # If you don't wish to send usage data to Mirantis, you can disable the \"Telemetry & Usage Tracking\" in the Lens preferences. Go to File > Preferences ( Lens > Preferences on Mac). Scroll down to Telemetry & Usage Tracking Uncheck Allow telemetry & usage tracking . This will silence all telemetry events from Lens going forward. Telemetry information may have been collected and sent up until the point when you disable this setting.","title":"Preferences"},{"location":"getting-started/preferences/#preferences","text":"","title":"Preferences"},{"location":"getting-started/preferences/#color-themes","text":"The Color Themes option in Lens preferences lets you set the colors in the Lens user interface to suit your liking. Go to File > Preferences ( Lens > Preferences on Mac). Select your preferred theme from the Color Theme dropdown.","title":"Color themes"},{"location":"getting-started/preferences/#telemetry-usage-tracking","text":"Lens collects telemetry data, which is used to help us understand how to improve the product. For example, this usage data helps us to debug issues and to prioritize new features. While we appreciate the insights this data provides, we also know that not everyone wants to send usage data. Please see our privacy statement to learn more.","title":"Telemetry & usage tracking"},{"location":"getting-started/preferences/#disable-telemetry-reporting","text":"If you don't wish to send usage data to Mirantis, you can disable the \"Telemetry & Usage Tracking\" in the Lens preferences. Go to File > Preferences ( Lens > Preferences on Mac). Scroll down to Telemetry & Usage Tracking Uncheck Allow telemetry & usage tracking . This will silence all telemetry events from Lens going forward. Telemetry information may have been collected and sent up until the point when you disable this setting.","title":"Disable telemetry reporting"},{"location":"helm/","text":"Using Helm Charts # TBD","title":"Using Helm Charts"},{"location":"helm/#using-helm-charts","text":"TBD","title":"Using Helm Charts"},{"location":"supporting/requirements/","text":"Requirements for Lens # Hardware # Lens is a small download (< 300 MB) and has a disk footprint of 600 MB. Lens is lightweight and should easily run on today's hardware. We recommend: 2 GHz or faster processor 1 GB of RAM Platforms # Lens has been tested on the following platforms: OS X Windows Linux Additional Windows requirements # ... Additional Linux requirements # ...","title":"Requirements for Lens"},{"location":"supporting/requirements/#requirements-for-lens","text":"","title":"Requirements for Lens"},{"location":"supporting/requirements/#hardware","text":"Lens is a small download (< 300 MB) and has a disk footprint of 600 MB. Lens is lightweight and should easily run on today's hardware. We recommend: 2 GHz or faster processor 1 GB of RAM","title":"Hardware"},{"location":"supporting/requirements/#platforms","text":"Lens has been tested on the following platforms: OS X Windows Linux","title":"Platforms"},{"location":"supporting/requirements/#additional-windows-requirements","text":"...","title":"Additional Windows requirements"},{"location":"supporting/requirements/#additional-linux-requirements","text":"...","title":"Additional Linux requirements"}]}
\ No newline at end of file
+{"config":{"lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"Overview # Lens is the most powerful Kubernetes IDE on the market. It is a standalone application, and it is available on macOS, Windows, and Linux. Some of the benefits of using Lens include: Confidence that your clusters are properly setup and configured. Increased visibility, real time statistics, log streams, and hands-on troubleshooting capabilities. The ability to work with your clusters quickly and easily, radically improving productivity and the speed of business. Watch this introductory video to see Lens in action: Note: Use CTRL+click (on Windows and Linux) or CMD+click (on MacOS) to open the above in a new tab Downloading Lens # Download Lens for macOS, Windows, or Linux. Quick Start # Get up and running quickly by learning to add clusters .","title":"Overview"},{"location":"#overview","text":"Lens is the most powerful Kubernetes IDE on the market. It is a standalone application, and it is available on macOS, Windows, and Linux. Some of the benefits of using Lens include: Confidence that your clusters are properly setup and configured. Increased visibility, real time statistics, log streams, and hands-on troubleshooting capabilities. The ability to work with your clusters quickly and easily, radically improving productivity and the speed of business. Watch this introductory video to see Lens in action: Note: Use CTRL+click (on Windows and Linux) or CMD+click (on MacOS) to open the above in a new tab","title":"Overview"},{"location":"#downloading-lens","text":"Download Lens for macOS, Windows, or Linux.","title":"Downloading Lens"},{"location":"#quick-start","text":"Get up and running quickly by learning to add clusters .","title":"Quick Start"},{"location":"clusters/adding-clusters/","text":"Adding clusters # Add clusters by clicking the Add Cluster button in the left-side menu. Click the Add Cluster button (indicated with a '+' icon). Enter the path to your kubeconfig file. You'll need to have a kubeconfig file for the cluster you want to add. You can either browse for the path from the file system or or enter it directly. Selected cluster contexts are added as a separate item in the left-side cluster menu to allow you to operate easily on multiple clusters and/or contexts. NOTE : Any cluster that you added manually will not be merged into your kubeconfig file. For more information on kubeconfig see Kubernetes docs . To see your currently-enabled config with kubectl , enter kubectl config view --minify --raw in your terminal.","title":"Adding clusters"},{"location":"clusters/adding-clusters/#adding-clusters","text":"Add clusters by clicking the Add Cluster button in the left-side menu. Click the Add Cluster button (indicated with a '+' icon). Enter the path to your kubeconfig file. You'll need to have a kubeconfig file for the cluster you want to add. You can either browse for the path from the file system or or enter it directly. Selected cluster contexts are added as a separate item in the left-side cluster menu to allow you to operate easily on multiple clusters and/or contexts. NOTE : Any cluster that you added manually will not be merged into your kubeconfig file. For more information on kubeconfig see Kubernetes docs . To see your currently-enabled config with kubectl , enter kubectl config view --minify --raw in your terminal.","title":"Adding clusters"},{"location":"clusters/removing-clusters/","text":"Removing clusters # Remove Lens clusters using the context menu that appears when you right-click the cluster in the left-side menu that you want to remove. To remove a cluster from your cluster list: Right-click the name of the cluster in the left-side menu that you want to remove. Click Remove . NOTE : This will only remove the cluster from your Lens cluster list. It will not affect your actual Kubernetes cluster or its configuration.","title":"Removing cluster"},{"location":"clusters/removing-clusters/#removing-clusters","text":"Remove Lens clusters using the context menu that appears when you right-click the cluster in the left-side menu that you want to remove. To remove a cluster from your cluster list: Right-click the name of the cluster in the left-side menu that you want to remove. Click Remove . NOTE : This will only remove the cluster from your Lens cluster list. It will not affect your actual Kubernetes cluster or its configuration.","title":"Removing clusters"},{"location":"clusters/settings/","text":"Settings # It is easy to configure Lens Clusters to your liking through its various settings. Right-click the name of the cluster in the left-side menu that you want to open the settings for. Click Settings . Status # Overview of the cluster status Cluster Status # Cluster status information including the detected distribution, kernel version, API endpoint, and online status General # General cluster settings Cluster Name # The cluster name is inheritated by default from the kubeconfig file. Change the cluster name to another value by updating it here. Note that doing so does not update your kubeconfig file. Workspace # This is the Lens workspace that the cluster is associated with. Change workspaces by selecting a different workspace from the dropdown menu. Create a new workspace by clicking workspace in \"Define cluster workspace\" above the dropdown menu. This option will take you the workspaces editor. Create a new workspace and then navigate back to cluster settings. Cluster Icon # Lens randomly generates an icon to associate with each newly-created cluster. Use this setting to choose your own icon. HTTP Proxy # Some users will need to define an HTTP proxy for communicating with the Kubernetes API. Use this setting to do so. Prometheus # Lens can be configured to query a Prometheus server installed in the cluster. Select a query format by choosing either to auto-detect or from the following configurations: Lens Helm Operator Prometheus Operator Stacklight To learn more about custom Prometheus configurations, please refer to this guide . Working Directory # Use this field to set the terminal working directory. The default is $HOME . Features # Additional Lens features that can be installed by the user Metrics # Enable timeseries data visualization (Prometheus stack) for your cluster. Install this only if you don't have existing Prometheus stack installed. User Mode # User Mode feature enables non-admin users to see namespaces they have access to. This is achieved by configuring RBAC rules so that every authenticated user is granted to list namespaces. Removal # Use this setting to remove the current cluster.","title":"Settings"},{"location":"clusters/settings/#settings","text":"It is easy to configure Lens Clusters to your liking through its various settings. Right-click the name of the cluster in the left-side menu that you want to open the settings for. Click Settings .","title":"Settings"},{"location":"clusters/settings/#status","text":"Overview of the cluster status","title":"Status"},{"location":"clusters/settings/#cluster-status","text":"Cluster status information including the detected distribution, kernel version, API endpoint, and online status","title":"Cluster Status"},{"location":"clusters/settings/#general","text":"General cluster settings","title":"General"},{"location":"clusters/settings/#cluster-name","text":"The cluster name is inheritated by default from the kubeconfig file. Change the cluster name to another value by updating it here. Note that doing so does not update your kubeconfig file.","title":"Cluster Name"},{"location":"clusters/settings/#workspace","text":"This is the Lens workspace that the cluster is associated with. Change workspaces by selecting a different workspace from the dropdown menu. Create a new workspace by clicking workspace in \"Define cluster workspace\" above the dropdown menu. This option will take you the workspaces editor. Create a new workspace and then navigate back to cluster settings.","title":"Workspace"},{"location":"clusters/settings/#cluster-icon","text":"Lens randomly generates an icon to associate with each newly-created cluster. Use this setting to choose your own icon.","title":"Cluster Icon"},{"location":"clusters/settings/#http-proxy","text":"Some users will need to define an HTTP proxy for communicating with the Kubernetes API. Use this setting to do so.","title":"HTTP Proxy"},{"location":"clusters/settings/#prometheus","text":"Lens can be configured to query a Prometheus server installed in the cluster. Select a query format by choosing either to auto-detect or from the following configurations: Lens Helm Operator Prometheus Operator Stacklight To learn more about custom Prometheus configurations, please refer to this guide .","title":"Prometheus"},{"location":"clusters/settings/#working-directory","text":"Use this field to set the terminal working directory. The default is $HOME .","title":"Working Directory"},{"location":"clusters/settings/#features","text":"Additional Lens features that can be installed by the user","title":"Features"},{"location":"clusters/settings/#metrics","text":"Enable timeseries data visualization (Prometheus stack) for your cluster. Install this only if you don't have existing Prometheus stack installed.","title":"Metrics"},{"location":"clusters/settings/#user-mode","text":"User Mode feature enables non-admin users to see namespaces they have access to. This is achieved by configuring RBAC rules so that every authenticated user is granted to list namespaces.","title":"User Mode"},{"location":"clusters/settings/#removal","text":"Use this setting to remove the current cluster.","title":"Removal"},{"location":"contributing/","text":"Contributing # There are multiple ways you can contribute to Lens - even if you are not a developer, you can still contribute. We are always looking for assistance with creating or updating documentation, testing the application, reporting and troubleshooting issues. Here are some ideas how you can contribute! Development \u2013 Help making Lens better. Maintaining the Project \u2013 Become community maintainer and help us maintain the project. Extension Development \u2013 Add integrations via Lens Extensions. Documentation \u2013 Help improve Lens documentation. Promotion \u2013 Show your support, be an ambassador to Lens, write blogs and make videos! If you are an influencer, blogger or journalist, feel free to spread the word ! Code of Conduct # This project adheres to the Contributor Covenant code of conduct. By participating and contributing to Lens, you are expected to uphold this code. Please report unacceptable behaviour to info@k8slens.dev","title":"Contributing"},{"location":"contributing/#contributing","text":"There are multiple ways you can contribute to Lens - even if you are not a developer, you can still contribute. We are always looking for assistance with creating or updating documentation, testing the application, reporting and troubleshooting issues. Here are some ideas how you can contribute! Development \u2013 Help making Lens better. Maintaining the Project \u2013 Become community maintainer and help us maintain the project. Extension Development \u2013 Add integrations via Lens Extensions. Documentation \u2013 Help improve Lens documentation. Promotion \u2013 Show your support, be an ambassador to Lens, write blogs and make videos! If you are an influencer, blogger or journalist, feel free to spread the word !","title":"Contributing"},{"location":"contributing/#code-of-conduct","text":"This project adheres to the Contributor Covenant code of conduct. By participating and contributing to Lens, you are expected to uphold this code. Please report unacceptable behaviour to info@k8slens.dev","title":"Code of Conduct"},{"location":"contributing/development/","text":"Development # TBD","title":"Development"},{"location":"contributing/development/#development","text":"TBD","title":"Development"},{"location":"contributing/documentation/","text":"Documentation # We are glad to see you are interested in contributing to Lens documentation. If this is the first Open Source project you will contribute to, we strongly suggest reading GitHub's excellent guide: How to Contribute to Open Source . Finding Documentation Issues to Work On # You can find a list of open documentation related issues here . When you find something you would like to work on: Express your interest to start working on an issue via comments. One of the maintainers will assign the issue for you. You can start working on the issue. Once done, simply submit a pull request. Requirements for Documentation Pull Requests # When you create a new pull request, we expect some requirements to be met. Follow this naming convention for Pull Requests: When adding new documentation, add New Documentation: before the title. E.g. New Documentation: Getting Started When fixing documentation, add Fix Documentation: before the title. E.g. Fix Documentation: Getting Started When updating documentation, add Update Documentation: before the title. E.g. Update Documentation: Getting Started If your Pull Request closes an issue you need to write Closes #ISSUE_NUMBER where the ISSUE_NUMBER is the number in the end of the link url that will link your pull request to the issue, when merged will close that issue. For each pull request made, we run tests to check if there are any broken links, the markdown formatting is valid and the linter is passing.","title":"Documentation"},{"location":"contributing/documentation/#documentation","text":"We are glad to see you are interested in contributing to Lens documentation. If this is the first Open Source project you will contribute to, we strongly suggest reading GitHub's excellent guide: How to Contribute to Open Source .","title":"Documentation"},{"location":"contributing/documentation/#finding-documentation-issues-to-work-on","text":"You can find a list of open documentation related issues here . When you find something you would like to work on: Express your interest to start working on an issue via comments. One of the maintainers will assign the issue for you. You can start working on the issue. Once done, simply submit a pull request.","title":"Finding Documentation Issues to Work On"},{"location":"contributing/documentation/#requirements-for-documentation-pull-requests","text":"When you create a new pull request, we expect some requirements to be met. Follow this naming convention for Pull Requests: When adding new documentation, add New Documentation: before the title. E.g. New Documentation: Getting Started When fixing documentation, add Fix Documentation: before the title. E.g. Fix Documentation: Getting Started When updating documentation, add Update Documentation: before the title. E.g. Update Documentation: Getting Started If your Pull Request closes an issue you need to write Closes #ISSUE_NUMBER where the ISSUE_NUMBER is the number in the end of the link url that will link your pull request to the issue, when merged will close that issue. For each pull request made, we run tests to check if there are any broken links, the markdown formatting is valid and the linter is passing.","title":"Requirements for Documentation Pull Requests"},{"location":"contributing/maintainers/","text":"Maintainers # We are looking for community maintainers for the Lens project. Maintainers will be added to a special team with write permissions. These permissions consist of opening, closing, tagging and editing issues, and pull requests, as well as create and delete non protected branches. The responsibilities of a community maintainer are listed below. Issues Triage # Labeling Issues: Label issues accordingly. Finding Duplicates: Finding and closing duplicate issues. Doing First Level Contact: Getting more information on the issues (like version number or asking for clarification) if needed. Closing Irrelevant Issues: Closing issues that are determined irrelevant, no longer needed, not relevant to the project and/or doesn't follow the issues guidelines. Help with Contributions # Help Manage Pull Requests: Help the author of the pull request with any problems. Contributing: Create pull requests to help maintain and drive the project forward.","title":"Maintainers"},{"location":"contributing/maintainers/#maintainers","text":"We are looking for community maintainers for the Lens project. Maintainers will be added to a special team with write permissions. These permissions consist of opening, closing, tagging and editing issues, and pull requests, as well as create and delete non protected branches. The responsibilities of a community maintainer are listed below.","title":"Maintainers"},{"location":"contributing/maintainers/#issues-triage","text":"Labeling Issues: Label issues accordingly. Finding Duplicates: Finding and closing duplicate issues. Doing First Level Contact: Getting more information on the issues (like version number or asking for clarification) if needed. Closing Irrelevant Issues: Closing issues that are determined irrelevant, no longer needed, not relevant to the project and/or doesn't follow the issues guidelines.","title":"Issues Triage"},{"location":"contributing/maintainers/#help-with-contributions","text":"Help Manage Pull Requests: Help the author of the pull request with any problems. Contributing: Create pull requests to help maintain and drive the project forward.","title":"Help with Contributions"},{"location":"contributing/promotion/","text":"Promoting # Help promote Lens! If you are not a developer (or even if you are), you can still contribute to the project, a lot, by helping us promote it. As we are a free open source project, the community is our most important asset, so here are some ways that you can help the project continue to grow. Follow, Like, Recommend, Favorite, Vote and Star Us # There are many sites where you can vote, recommend, favorite and star us. Twitter - Like, comment and retweet our posts, and follow us on Twitter Medium - Give claps to our articles and follow us on Medium GitHub - Become a stargazer on GitHub StackShare - Indicate you are using Lens and follow us on StackShare Reddit - Upvote and be an ambassador of Lens by participating relevant discussions on Reddit Hacker News - Upvote and be an ambassador of Lens by participating relevant discussions on Hacker News Write Blogs or Make Videos About Us # Here are some nice blog posts and videos about our project for you to get some inspiration: Onboard AWS EKS Cluster on Lens(Kubernetes IDE) Using Lens to Manage All Your Kubernetes Cluster Kontena Lens - Beautiful Kubernetes UI Gerenciando Kubernetes com Lens e Octant Walkthrough of Kubernetes IDE - Lens LENS - Interfaz Gr\u00e1fica para Kubernetes en 1 PASO. Psst... If you have created some content around Lens, let us know!","title":"Promoting"},{"location":"contributing/promotion/#promoting","text":"Help promote Lens! If you are not a developer (or even if you are), you can still contribute to the project, a lot, by helping us promote it. As we are a free open source project, the community is our most important asset, so here are some ways that you can help the project continue to grow.","title":"Promoting"},{"location":"contributing/promotion/#follow-like-recommend-favorite-vote-and-star-us","text":"There are many sites where you can vote, recommend, favorite and star us. Twitter - Like, comment and retweet our posts, and follow us on Twitter Medium - Give claps to our articles and follow us on Medium GitHub - Become a stargazer on GitHub StackShare - Indicate you are using Lens and follow us on StackShare Reddit - Upvote and be an ambassador of Lens by participating relevant discussions on Reddit Hacker News - Upvote and be an ambassador of Lens by participating relevant discussions on Hacker News","title":"Follow, Like, Recommend, Favorite, Vote and Star Us"},{"location":"contributing/promotion/#write-blogs-or-make-videos-about-us","text":"Here are some nice blog posts and videos about our project for you to get some inspiration: Onboard AWS EKS Cluster on Lens(Kubernetes IDE) Using Lens to Manage All Your Kubernetes Cluster Kontena Lens - Beautiful Kubernetes UI Gerenciando Kubernetes com Lens e Octant Walkthrough of Kubernetes IDE - Lens LENS - Interfaz Gr\u00e1fica para Kubernetes en 1 PASO. Psst... If you have created some content around Lens, let us know!","title":"Write Blogs or Make Videos About Us"},{"location":"extensions/","text":"Lens Extension API # The Extensions API in Lens allows users to customize and enhance the Lens experience by creating their own menus or page content that is extended from the existing pages. Many of the core features of Lens are built as extensions and use the same Extension API. This documentation describes: How to build, run, test and publish an extension How to take advantage of Lens's Extension API Where to find guides and code samples to help get you started Code samples are available at lensapp/lens-extension-samples . What can extensions do # Here are some examples of what you can achieve with the Extension API: Add custom components & views in the UI - Extending the Lens Workbench If you'd like to have a more comprehensive overview of the Extension API, refer to the Extension Capabilities Overview page. Extension Guides Overview also includes a list of code samples and guides that illustrate various Extension API usage. How to build extensions # Building a good extension can take a lot of effort. Here is what each section of the API doc can help you with: Get Started teaches fundamental concepts for building extensions with the Hello World sample. Extension Capabilities dissects Lens's Extension API into smaller categories and points you to more detailed topics. Extension Guides includes guides and code samples that explain specific usages of Lens Extension API. Testing and Publishing includes in-depth guides on various extension development topics, such as testing and publishing extensions. Advanced Topics explains advanced concepts such as integrating with 3rd party applications/services. References contains exhaustive references for the Lens Extension API, Contribution Points, and many other topics. What's new # Lens updates on a monthly cadence, and that applies to the Extension API as well. New features and APIs become available every month to increase the power and scope of Lens extensions. To stay current with the Extension API and Lens features in general, you can review the release notes . Looking for help # If you have questions for extension development, try asking on: Lens Dev Slack : Public chatroom for Lens developers. Some Lens team members chime in on conversations. To provide feedback on the documentation or issues with the Lens Extension API, create new issues at lensapp/lens with the labels area/documentation and/or area/extension . Download Lens - The Kubernetes IDE # Go to Lens","title":"Overview"},{"location":"extensions/#lens-extension-api","text":"The Extensions API in Lens allows users to customize and enhance the Lens experience by creating their own menus or page content that is extended from the existing pages. Many of the core features of Lens are built as extensions and use the same Extension API. This documentation describes: How to build, run, test and publish an extension How to take advantage of Lens's Extension API Where to find guides and code samples to help get you started Code samples are available at lensapp/lens-extension-samples .","title":"Lens Extension API"},{"location":"extensions/#what-can-extensions-do","text":"Here are some examples of what you can achieve with the Extension API: Add custom components & views in the UI - Extending the Lens Workbench If you'd like to have a more comprehensive overview of the Extension API, refer to the Extension Capabilities Overview page. Extension Guides Overview also includes a list of code samples and guides that illustrate various Extension API usage.","title":"What can extensions do"},{"location":"extensions/#how-to-build-extensions","text":"Building a good extension can take a lot of effort. Here is what each section of the API doc can help you with: Get Started teaches fundamental concepts for building extensions with the Hello World sample. Extension Capabilities dissects Lens's Extension API into smaller categories and points you to more detailed topics. Extension Guides includes guides and code samples that explain specific usages of Lens Extension API. Testing and Publishing includes in-depth guides on various extension development topics, such as testing and publishing extensions. Advanced Topics explains advanced concepts such as integrating with 3rd party applications/services. References contains exhaustive references for the Lens Extension API, Contribution Points, and many other topics.","title":"How to build extensions"},{"location":"extensions/#whats-new","text":"Lens updates on a monthly cadence, and that applies to the Extension API as well. New features and APIs become available every month to increase the power and scope of Lens extensions. To stay current with the Extension API and Lens features in general, you can review the release notes .","title":"What's new"},{"location":"extensions/#looking-for-help","text":"If you have questions for extension development, try asking on: Lens Dev Slack : Public chatroom for Lens developers. Some Lens team members chime in on conversations. To provide feedback on the documentation or issues with the Lens Extension API, create new issues at lensapp/lens with the labels area/documentation and/or area/extension .","title":"Looking for help"},{"location":"extensions/#download-lens-the-kubernetes-ide","text":"Go to Lens","title":"Download Lens - The Kubernetes IDE"},{"location":"extensions/api/","text":"Lens Extension API Reference # TBD","title":"API Reference"},{"location":"extensions/api/#lens-extension-api-reference","text":"TBD","title":"Lens Extension API Reference"},{"location":"extensions/capabilities/","text":"","title":"Overview"},{"location":"extensions/capabilities/common-capabilities/","text":"","title":"Common Capabilities"},{"location":"extensions/capabilities/theming/","text":"","title":"Theming"},{"location":"extensions/get-started/anatomy/","text":"Extension Anatomy # You've now learnt how to get basic extension running. In this topic you will learn some fundamental concepts to Lens Extension development; How does it work under the hood? Hello World extension does three things: Hooks on onActivate() and ouputs message into console. Hooks on onDectivate() and ouputs message into console. Registers ClusterPage so that page is visible in the sidebars of cluster dashboards. Let's take a closer look at Hello World sample's source code and see how to achieve these things. Extension File Structure # . \u251c\u2500\u2500 .gitignore // Ignore build output and node_modules \u251c\u2500\u2500 Makefile // Config for build tasks that compiles the extension \u251c\u2500\u2500 README.md // Readable description of your extension's functionality \u251c\u2500\u2500 src \u2502 \u2514\u2500\u2500 page.tsx // Extension's additional source code \u251c\u2500\u2500 main.ts // Source code for extension's main entrypoint \u251c\u2500\u2500 package.json // Extension manifest and dependencies \u251c\u2500\u2500 renderer.tsx // Source code for extension's renderer entrypoint \u251c\u2500\u2500 tsconfig.json // TypeScript configuration \u251c\u2500\u2500 webpack.config.js // Webpack configuration Extension directory contains extension's entry files and few configuration files. Let's focus on package.json , main.ts and renderer.tsx which are essential to understanding the Hello World extension. Extension Manifest # Each Lens extension must have package.json . The package.json contains a mix of Node.js fields such as scripts and dependencies and Lens specific fields such as publisher and contributes . Here are some most important fields: name and publisher : Lens uses @/ as a unique ID for the extension. For example, the Hello World sample has the ID @lensapp-samples/helloworld-sample . Lens uses the ID to uniquely identify your extension main : The extension's entry point run in main process. renderer : The extension's entry point run in renderer process. engines.lens : This specifies the minimum version of Lens API that the extension depends on. { \"name\" : \"helloworld-sample\" , \"publisher\" : \"lens-samples\" , \"version\" : \"0.0.1\" , \"description\" : \"Lens helloworld-sample\" , \"license\" : \"MIT\" , \"homepage\" : \"https://github.com/lensapp/lens-extension-samples\" , \"engines\" : { \"lens\" : \"^4.0.0\" }, \"main\" : \"dist/main.js\" , \"renderer\" : \"dist/renderer.js\" , \"scripts\" : { \"build\" : \"webpack --config webpack.config.js\" , \"dev\" : \"npm run build --watch\" }, \"dependencies\" : { \"react-open-doodles\" : \"^1.0.5\" }, \"devDependencies\" : { \"@k8slens/extensions\" : \"^4.0.0-alpha.2\" , \"ts-loader\" : \"^8.0.4\" , \"typescript\" : \"^4.0.3\" , \"@types/react\" : \"^16.9.35\" , \"@types/node\" : \"^12.0.0\" , \"webpack\" : \"^4.44.2\" , \"webpack-cli\" : \"^3.3.11\" } } Extension Entry Files # Lens extensions can have two separate entry files. One file that is used in main process of Lens application and antoher that is used in renderer process. main entry file should export class that extends LensMainExtension and renderer entry file should export class that extends LensRendererExtension . Both extensions classes have onActivate and onDeactivate methods. onActivate is executed when your extension activation happens. You may want to initialize something in your extension at this point. onDeactivate gives you a chance to clean up before your extension becomes deactivated. For many extensions, explicit cleanup may not be required, and you don't need to override this method. However, if an extension needs to perform an operation when Lens is shutting down or the extension is disabled or uninstalled, this is the method to do so. Hello world extension does not do anything special on main process, so let's focus on the renderer side. On renderer entry point, Hello world extension defines one Cluster Page object that registers /extension-example path that renders ExamplePage React component. It registers also MenuItem component that displays ExampleIcon React component and \"Hello World\" text in the sidebar of cluster dashboards. These React components are defined in additional ./src/page.tsx file. import { LensRendererExtension } from \"@k8slens/extensions\" ; import { ExampleIcon , ExamplePage } from \"./page\" import React from \"react\" export default class ExampleExtension extends LensRendererExtension { clusterPages = [ { path : \"/extension-example\" , title : \"Hello World\" , components : { Page : () => < ExamplePage extension = { this } /> , MenuIcon : ExampleIcon , } } ] } Hello World extension uses only one capability ( Cluster Page ) of Lens extensions. The Extension Capabilities Overview topic helps you find the right capabilities you can use with your own extension.","title":"Extension Anatomy"},{"location":"extensions/get-started/anatomy/#extension-anatomy","text":"You've now learnt how to get basic extension running. In this topic you will learn some fundamental concepts to Lens Extension development; How does it work under the hood? Hello World extension does three things: Hooks on onActivate() and ouputs message into console. Hooks on onDectivate() and ouputs message into console. Registers ClusterPage so that page is visible in the sidebars of cluster dashboards. Let's take a closer look at Hello World sample's source code and see how to achieve these things.","title":"Extension Anatomy"},{"location":"extensions/get-started/anatomy/#extension-file-structure","text":". \u251c\u2500\u2500 .gitignore // Ignore build output and node_modules \u251c\u2500\u2500 Makefile // Config for build tasks that compiles the extension \u251c\u2500\u2500 README.md // Readable description of your extension's functionality \u251c\u2500\u2500 src \u2502 \u2514\u2500\u2500 page.tsx // Extension's additional source code \u251c\u2500\u2500 main.ts // Source code for extension's main entrypoint \u251c\u2500\u2500 package.json // Extension manifest and dependencies \u251c\u2500\u2500 renderer.tsx // Source code for extension's renderer entrypoint \u251c\u2500\u2500 tsconfig.json // TypeScript configuration \u251c\u2500\u2500 webpack.config.js // Webpack configuration Extension directory contains extension's entry files and few configuration files. Let's focus on package.json , main.ts and renderer.tsx which are essential to understanding the Hello World extension.","title":"Extension File Structure"},{"location":"extensions/get-started/anatomy/#extension-manifest","text":"Each Lens extension must have package.json . The package.json contains a mix of Node.js fields such as scripts and dependencies and Lens specific fields such as publisher and contributes . Here are some most important fields: name and publisher : Lens uses @/ as a unique ID for the extension. For example, the Hello World sample has the ID @lensapp-samples/helloworld-sample . Lens uses the ID to uniquely identify your extension main : The extension's entry point run in main process. renderer : The extension's entry point run in renderer process. engines.lens : This specifies the minimum version of Lens API that the extension depends on. { \"name\" : \"helloworld-sample\" , \"publisher\" : \"lens-samples\" , \"version\" : \"0.0.1\" , \"description\" : \"Lens helloworld-sample\" , \"license\" : \"MIT\" , \"homepage\" : \"https://github.com/lensapp/lens-extension-samples\" , \"engines\" : { \"lens\" : \"^4.0.0\" }, \"main\" : \"dist/main.js\" , \"renderer\" : \"dist/renderer.js\" , \"scripts\" : { \"build\" : \"webpack --config webpack.config.js\" , \"dev\" : \"npm run build --watch\" }, \"dependencies\" : { \"react-open-doodles\" : \"^1.0.5\" }, \"devDependencies\" : { \"@k8slens/extensions\" : \"^4.0.0-alpha.2\" , \"ts-loader\" : \"^8.0.4\" , \"typescript\" : \"^4.0.3\" , \"@types/react\" : \"^16.9.35\" , \"@types/node\" : \"^12.0.0\" , \"webpack\" : \"^4.44.2\" , \"webpack-cli\" : \"^3.3.11\" } }","title":"Extension Manifest"},{"location":"extensions/get-started/anatomy/#extension-entry-files","text":"Lens extensions can have two separate entry files. One file that is used in main process of Lens application and antoher that is used in renderer process. main entry file should export class that extends LensMainExtension and renderer entry file should export class that extends LensRendererExtension . Both extensions classes have onActivate and onDeactivate methods. onActivate is executed when your extension activation happens. You may want to initialize something in your extension at this point. onDeactivate gives you a chance to clean up before your extension becomes deactivated. For many extensions, explicit cleanup may not be required, and you don't need to override this method. However, if an extension needs to perform an operation when Lens is shutting down or the extension is disabled or uninstalled, this is the method to do so. Hello world extension does not do anything special on main process, so let's focus on the renderer side. On renderer entry point, Hello world extension defines one Cluster Page object that registers /extension-example path that renders ExamplePage React component. It registers also MenuItem component that displays ExampleIcon React component and \"Hello World\" text in the sidebar of cluster dashboards. These React components are defined in additional ./src/page.tsx file. import { LensRendererExtension } from \"@k8slens/extensions\" ; import { ExampleIcon , ExamplePage } from \"./page\" import React from \"react\" export default class ExampleExtension extends LensRendererExtension { clusterPages = [ { path : \"/extension-example\" , title : \"Hello World\" , components : { Page : () => < ExamplePage extension = { this } /> , MenuIcon : ExampleIcon , } } ] } Hello World extension uses only one capability ( Cluster Page ) of Lens extensions. The Extension Capabilities Overview topic helps you find the right capabilities you can use with your own extension.","title":"Extension Entry Files"},{"location":"extensions/get-started/wrapping-up/","text":"Wrapping Up # In the Your First Extension topic, you learned how to create and run an extension. In the Extension Anatomy topic, you learned fundamental concepts to Lens extension development. However, this is just a small glimpse of what can be created with Lens Extensions. Below are some suggested routes for furthering your Lens extension development skills. Extension Capabilities # In this section, we split the Lens extension points into a few categories, each with short descriptions as to what your extension could achieve. Validate that your extension idea is achievable by reading the Extension Capabilities section for new extension ideas. Guides & Samples # We have a great collection of sample extensions that you can adapt from, and some of them include a detailed guide that explains the source code. You can find all Samples & Guides in the lens-extension-samples repository. Testing and Publishing # This section includes topics that help you develop high-quality Lens extensions. For example, you can learn How to add integration tests for your extension How to publish your extension","title":"Wrapping Up"},{"location":"extensions/get-started/wrapping-up/#wrapping-up","text":"In the Your First Extension topic, you learned how to create and run an extension. In the Extension Anatomy topic, you learned fundamental concepts to Lens extension development. However, this is just a small glimpse of what can be created with Lens Extensions. Below are some suggested routes for furthering your Lens extension development skills.","title":"Wrapping Up"},{"location":"extensions/get-started/wrapping-up/#extension-capabilities","text":"In this section, we split the Lens extension points into a few categories, each with short descriptions as to what your extension could achieve. Validate that your extension idea is achievable by reading the Extension Capabilities section for new extension ideas.","title":"Extension Capabilities"},{"location":"extensions/get-started/wrapping-up/#guides-samples","text":"We have a great collection of sample extensions that you can adapt from, and some of them include a detailed guide that explains the source code. You can find all Samples & Guides in the lens-extension-samples repository.","title":"Guides & Samples"},{"location":"extensions/get-started/wrapping-up/#testing-and-publishing","text":"This section includes topics that help you develop high-quality Lens extensions. For example, you can learn How to add integration tests for your extension How to publish your extension","title":"Testing and Publishing"},{"location":"extensions/get-started/your-first-extension/","text":"Your First Extension # In this topic, we'll teach you the fundamental concepts for building extensions. Make sure you have Node.js and Git installed.... Installing and Building the extension # Simple Lens extension that adds \"Hello World\" page to a cluster menu. Linux # First you will need to clone the Lens Extension samples repository to your local machine: git clone https://github.com/lensapp/lens-extension-samples.git Next you need to create a symlink from the directory that Lens will monitor for user installed extensions to the sample extension, in this case helloworld-sample : mkdir -p ~/.k8slens/extensions cd ~/.k8slens/extensions ln -s /helloworld-sample helloworld-sample To build the extension you can use make or run the npm commands manually: cd /helloworld-sample make build OR cd /helloworld-sample npm install npm run build If you want to watch for any source code changes and automatically rebuild the extension you can use: cd /helloworld-sample npm run dev Finally, if you already have Lens open you will need to quit and restart Lens for the extension to be loaded. After this initial restart you can reload Lens and it will pick up any new builds of the extension. Within Lens connect to an existing cluster or create a new one . You should see then see the \"Hello World\" page in the Lens sidebar cluster menu. Developing the extension # Let's make a change to the message that our helloworld-sample extension displays: Navigate to /helloworld-sample . Change the message from HelloWorld! to Hello Lens Extensions in page.tsx . Rebuild the extension or, if you used npm run dev , the extension should automatically rebuild. Reload the Lens window and click on the Hello World page. You should see the updated message showing up. Next steps # In the next topic, Extension Anatomy , we'll take a closer look at the source code of the Hello World sample and explain key concepts. You can find the source code of this tutorial at: lensapp/lens-extension-samples . The Extension Guides topic contains other samples, each illustrating a different Lens Extension API.","title":"Your First Extension"},{"location":"extensions/get-started/your-first-extension/#your-first-extension","text":"In this topic, we'll teach you the fundamental concepts for building extensions. Make sure you have Node.js and Git installed....","title":"Your First Extension"},{"location":"extensions/get-started/your-first-extension/#installing-and-building-the-extension","text":"Simple Lens extension that adds \"Hello World\" page to a cluster menu.","title":"Installing and Building the extension"},{"location":"extensions/get-started/your-first-extension/#linux","text":"First you will need to clone the Lens Extension samples repository to your local machine: git clone https://github.com/lensapp/lens-extension-samples.git Next you need to create a symlink from the directory that Lens will monitor for user installed extensions to the sample extension, in this case helloworld-sample : mkdir -p ~/.k8slens/extensions cd ~/.k8slens/extensions ln -s /helloworld-sample helloworld-sample To build the extension you can use make or run the npm commands manually: cd /helloworld-sample make build OR cd /helloworld-sample npm install npm run build If you want to watch for any source code changes and automatically rebuild the extension you can use: cd /helloworld-sample npm run dev Finally, if you already have Lens open you will need to quit and restart Lens for the extension to be loaded. After this initial restart you can reload Lens and it will pick up any new builds of the extension. Within Lens connect to an existing cluster or create a new one . You should see then see the \"Hello World\" page in the Lens sidebar cluster menu.","title":"Linux"},{"location":"extensions/get-started/your-first-extension/#developing-the-extension","text":"Let's make a change to the message that our helloworld-sample extension displays: Navigate to /helloworld-sample . Change the message from HelloWorld! to Hello Lens Extensions in page.tsx . Rebuild the extension or, if you used npm run dev , the extension should automatically rebuild. Reload the Lens window and click on the Hello World page. You should see the updated message showing up.","title":"Developing the extension"},{"location":"extensions/get-started/your-first-extension/#next-steps","text":"In the next topic, Extension Anatomy , we'll take a closer look at the source code of the Hello World sample and explain key concepts. You can find the source code of this tutorial at: lensapp/lens-extension-samples . The Extension Guides topic contains other samples, each illustrating a different Lens Extension API.","title":"Next steps"},{"location":"extensions/guides/","text":"","title":"Overview"},{"location":"extensions/guides/renderer-extension/","text":"Renderer Extension #","title":"Renderer Extension"},{"location":"extensions/guides/renderer-extension/#renderer-extension","text":"","title":"Renderer Extension"},{"location":"extensions/testing-and-publishing/bundling/","text":"","title":"Bundling Extensions"},{"location":"extensions/testing-and-publishing/publishing/","text":"","title":"Publishing Extensions"},{"location":"extensions/testing-and-publishing/testing/","text":"Testing Extensions # Console.log # console.log() might be handy for extension developers to prints out info/errors from extensions. To use console.log , note that Lens is based on Electron. Electron has two types of processes: Main and Renderer . Renderer process logs # console.log() in Renderer process is printed in the Console in Developer Tools (View > Toggle Developer Tools). Main process logs # To view the logs from the main process is a bit trickier, since you cannot open developer tools for them. On MacOSX, one way is to run Lens from the terminal. /Applications/Lens.app/Contents/MacOS/Lens You can alos use Console.app to view logs from Lens. On linux, you can get PID of Lens first ps aux | grep Lens | grep -v grep And get logs by the PID tail -f /proc/ [ pid ] /fd/1 # stdout (console.log) tail -f /proc/ [ pid ] /fd/2 # stdout (console.error)","title":"Testing Extensions"},{"location":"extensions/testing-and-publishing/testing/#testing-extensions","text":"","title":"Testing Extensions"},{"location":"extensions/testing-and-publishing/testing/#consolelog","text":"console.log() might be handy for extension developers to prints out info/errors from extensions. To use console.log , note that Lens is based on Electron. Electron has two types of processes: Main and Renderer .","title":"Console.log"},{"location":"extensions/testing-and-publishing/testing/#renderer-process-logs","text":"console.log() in Renderer process is printed in the Console in Developer Tools (View > Toggle Developer Tools).","title":"Renderer process logs"},{"location":"extensions/testing-and-publishing/testing/#main-process-logs","text":"To view the logs from the main process is a bit trickier, since you cannot open developer tools for them. On MacOSX, one way is to run Lens from the terminal. /Applications/Lens.app/Contents/MacOS/Lens You can alos use Console.app to view logs from Lens. On linux, you can get PID of Lens first ps aux | grep Lens | grep -v grep And get logs by the PID tail -f /proc/ [ pid ] /fd/1 # stdout (console.log) tail -f /proc/ [ pid ] /fd/2 # stdout (console.error)","title":"Main process logs"},{"location":"extensions/usage/","text":"Using Extensions # TBD","title":"Using Extensions"},{"location":"extensions/usage/#using-extensions","text":"TBD","title":"Using Extensions"},{"location":"faq/","text":"TBD","title":"FAQ"},{"location":"getting-started/","text":"Getting Started # Lens is lightweight and simple to install. You'll be up and running in just a few minutes. System requirements # Review the System Requirements to check if your computer configuration is supported. macOS # Download Lens for macOS. Open the browser's download list and locate the downloaded archive. Select the 'magnifying glass' icon to open the archive in Finder. Double-click Lens-{version}.dmg and drag Lens.app to the Applications folder, making it available in the macOS Launchpad. Add Lens to your Dock by right-clicking on the icon to bring up the context menu and choosing Options , Keep in Dock . Windows # Download the Lens installer for Windows. Once it is downloaded, run the installer Lens-Setup-{version}.exe . This will only take a minute. By default, Lens is installed under C:\\users\\{username}\\AppData\\Local\\Programs\\Lens . Linux # See the Download Lens page for a complete list of available installation options. Snap # Lens is officially distributed as a Snap package in the Snap Store : You can install it by running: sudo snap install kontena-lens --classic Update cadence # Lens releases a new version each month with new features and important bug fixes. Lens supports auto updating and you will be prompted to install the new release when it becomes available! To stay current with the Lens features, you can review the release notes . Next Steps # Add clusters Watch introductory videos","title":"Getting Started"},{"location":"getting-started/#getting-started","text":"Lens is lightweight and simple to install. You'll be up and running in just a few minutes.","title":"Getting Started"},{"location":"getting-started/#system-requirements","text":"Review the System Requirements to check if your computer configuration is supported.","title":"System requirements"},{"location":"getting-started/#macos","text":"Download Lens for macOS. Open the browser's download list and locate the downloaded archive. Select the 'magnifying glass' icon to open the archive in Finder. Double-click Lens-{version}.dmg and drag Lens.app to the Applications folder, making it available in the macOS Launchpad. Add Lens to your Dock by right-clicking on the icon to bring up the context menu and choosing Options , Keep in Dock .","title":"macOS"},{"location":"getting-started/#windows","text":"Download the Lens installer for Windows. Once it is downloaded, run the installer Lens-Setup-{version}.exe . This will only take a minute. By default, Lens is installed under C:\\users\\{username}\\AppData\\Local\\Programs\\Lens .","title":"Windows"},{"location":"getting-started/#linux","text":"See the Download Lens page for a complete list of available installation options.","title":"Linux"},{"location":"getting-started/#snap","text":"Lens is officially distributed as a Snap package in the Snap Store : You can install it by running: sudo snap install kontena-lens --classic","title":"Snap"},{"location":"getting-started/#update-cadence","text":"Lens releases a new version each month with new features and important bug fixes. Lens supports auto updating and you will be prompted to install the new release when it becomes available! To stay current with the Lens features, you can review the release notes .","title":"Update cadence"},{"location":"getting-started/#next-steps","text":"Add clusters Watch introductory videos","title":"Next Steps"},{"location":"getting-started/introductory-videos/","text":"Introductory Videos # Continue your Lens journey with this set of introductory videos! These videos are meant to quickly familiarize you with Lens' various powerful features. Getting started Get Lens Kubernetes IDE Running in 5 Minutes Duration 35 minutes Introducing Lens Lens Kubernetes IDE overview Duration 2 minutes Demo of Mirantis Lens The Best IDE For Kubernetes Duration 10 minutes","title":"Introductory Videos"},{"location":"getting-started/introductory-videos/#introductory-videos","text":"Continue your Lens journey with this set of introductory videos! These videos are meant to quickly familiarize you with Lens' various powerful features.","title":"Introductory Videos"},{"location":"getting-started/preferences/","text":"Preferences # Color themes # The Color Themes option in Lens preferences lets you set the colors in the Lens user interface to suit your liking. Go to File > Preferences ( Lens > Preferences on Mac). Select your preferred theme from the Color Theme dropdown. Telemetry & usage tracking # Lens collects telemetry data, which is used to help us understand how to improve the product. For example, this usage data helps us to debug issues and to prioritize new features. While we appreciate the insights this data provides, we also know that not everyone wants to send usage data. Please see our privacy statement to learn more. Disable telemetry reporting # If you don't wish to send usage data to Mirantis, you can disable the \"Telemetry & Usage Tracking\" in the Lens preferences. Go to File > Preferences ( Lens > Preferences on Mac). Scroll down to Telemetry & Usage Tracking Uncheck Allow telemetry & usage tracking . This will silence all telemetry events from Lens going forward. Telemetry information may have been collected and sent up until the point when you disable this setting.","title":"Preferences"},{"location":"getting-started/preferences/#preferences","text":"","title":"Preferences"},{"location":"getting-started/preferences/#color-themes","text":"The Color Themes option in Lens preferences lets you set the colors in the Lens user interface to suit your liking. Go to File > Preferences ( Lens > Preferences on Mac). Select your preferred theme from the Color Theme dropdown.","title":"Color themes"},{"location":"getting-started/preferences/#telemetry-usage-tracking","text":"Lens collects telemetry data, which is used to help us understand how to improve the product. For example, this usage data helps us to debug issues and to prioritize new features. While we appreciate the insights this data provides, we also know that not everyone wants to send usage data. Please see our privacy statement to learn more.","title":"Telemetry & usage tracking"},{"location":"getting-started/preferences/#disable-telemetry-reporting","text":"If you don't wish to send usage data to Mirantis, you can disable the \"Telemetry & Usage Tracking\" in the Lens preferences. Go to File > Preferences ( Lens > Preferences on Mac). Scroll down to Telemetry & Usage Tracking Uncheck Allow telemetry & usage tracking . This will silence all telemetry events from Lens going forward. Telemetry information may have been collected and sent up until the point when you disable this setting.","title":"Disable telemetry reporting"},{"location":"helm/","text":"Using Helm Charts # TBD","title":"Using Helm Charts"},{"location":"helm/#using-helm-charts","text":"TBD","title":"Using Helm Charts"},{"location":"supporting/requirements/","text":"Requirements for Lens # Hardware # Lens is a small download (< 300 MB) and has a disk footprint of 600 MB. Lens is lightweight and should easily run on today's hardware. We recommend: 2 GHz or faster processor 1 GB of RAM Platforms # Lens has been tested on the following platforms: OS X Windows Linux Additional Windows requirements # ... Additional Linux requirements # ...","title":"Requirements for Lens"},{"location":"supporting/requirements/#requirements-for-lens","text":"","title":"Requirements for Lens"},{"location":"supporting/requirements/#hardware","text":"Lens is a small download (< 300 MB) and has a disk footprint of 600 MB. Lens is lightweight and should easily run on today's hardware. We recommend: 2 GHz or faster processor 1 GB of RAM","title":"Hardware"},{"location":"supporting/requirements/#platforms","text":"Lens has been tested on the following platforms: OS X Windows Linux","title":"Platforms"},{"location":"supporting/requirements/#additional-windows-requirements","text":"...","title":"Additional Windows requirements"},{"location":"supporting/requirements/#additional-linux-requirements","text":"...","title":"Additional Linux requirements"}]}
\ No newline at end of file
diff --git a/latest/sitemap.xml.gz b/latest/sitemap.xml.gz
index 6e4f8f7512..3247157794 100644
Binary files a/latest/sitemap.xml.gz and b/latest/sitemap.xml.gz differ