Giter Site home page Giter Site logo

clastix / capsule-lens-extension Goto Github PK

View Code? Open in Web Editor NEW
41.0 6.0 7.0 1.14 MB

Lens Extension for Capsule Operator - Looking for a maintainer

License: Apache License 2.0

JavaScript 5.39% Makefile 1.25% TypeScript 86.11% SCSS 7.25%
lens-extension capsule-extension capsule-operator multitenancy kubernetes

capsule-lens-extension's Introduction

Capsule Lens extension

This is a Lens extension for the Capsule Operator which provides advanced multi-tennancy and policy control on your Kubernetes cluster.

Screenshot

Installation

This guide shows how to install the extension either from from pre-built release or source.

Prerequisites

  • Lens minimum 5.3.0 should first be installed on your workstation.
  • Follow the Capsule Getting Started guide to understand how to install the Capsule Operator in your Kubernetes cluster.
  • Optionally, install the Capsule Proxy for an enhanced user experience for your tenant users.

From pre-built release

Lens extension for Capsule provides the tarball-file that can be manually downloaded and installed. Alternatively, you can copy the download URL of the release artifact to paste it in the Manage Lens Extensions page.

  1. Download your desired version from GitHub release page. Alternatively, just copy the download URL of the release artefact.
  2. Open Lens application and select Lens menu, and then click Extensions item, or press Shift + Command + E to open the Manage Lens Extensions page.
  3. Specify the path of the extension package .tar, .tgz or the download URL and click Install.
  4. If everything is fine, you'll see the @clastix/capsule-lens-extension extension listed under Installed Extensions. Click Enable to enable it.
  5. Close the Manage Lens Extensions page and verify that the Capsule menu item shows up in the main Lens menu.

From source (Linux/MacOS)

  1. Clone this repo.
  2. make build && make install to build the extension and create a symlink.
  3. Enable the extension in Lens Extensions as above.

Development mode

  1. Install the extension by following the steps above.
  2. make dev to start webpack process in watch mode.
  3. Press Ctrl+R in Lens to reload the extension after making changes.

Getting Started

With Capsule extension for Lens, a cluster administrator can easly manage from a single pane of glass all resources of a Kubernetes cluster, including all the Tenants created through the Capsule Operator. Please, refer to the documentation about how Capsule can help to address multi-tanancy and policy control on your Kubernetes cluster.

Tenants list

List all tenants:

Tenants List

Tenant details

See the deatils of each tenant and change it through the embedded Lens editor:

Tenant details

Resources Quota and Budget for all tenants

Check the resources usage and quota at both the tenant and namespace level:

Resources Quota and Budget

Allowed namespaces list

If you installed the Capsule Proxy, each tenant user can see only the namespaces he has access:

Allowed namespaces list

capsule-lens-extension's People

Contributors

barrydobson avatar bsctl avatar qayshp avatar zhilinn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

capsule-lens-extension's Issues

Installing from source code on Mac OS fails

Installing from source code on Mac OS fails:

make build
make install
ln -sT "/Users/joe/Shared/clastix/capsule-lens-extension" "/Users/joe/.k8slens/extensions/capsule"
ln: illegal option -- T

Add new Tenant button

In the Tenants list windows, provide a button to create a new tenant. This will open a wizard with guided process to create a new tenant.

Support of CapsuleConfiguration CR

Introduce support of CapsuleConfiguration CRD APIs:

apiVersion: capsule.clastix.io/v1alpha1
kind: CapsuleConfiguration
metadata:
  name: default
spec:
  userGroups: ["capsule.clastix.io"]
  forceTenantPrefix: false
  protectedNamespaceRegex: ""

Update the Resource Budget menu

Currently, the "Resource Budget" menu shows the list of Resource Quota objects. Initially, the aim of this menu was to give users a way to check the resource consumption at both namespace and tenant level. This info is derived from the annotations placed on the Resource Quota object by the Capsule Operator.

However, current implementation already provides this info in the Resource Quota objects from the standard "Resource Quota" page. The "Resource Budget" menu is now redundant. Shall we consider to remove it?

Hide the menu for unprivileged users

Currently, the Capsule menu on the left side of Lens is displayed for all the users. It would be nice to hide/show the menu according to the user's permissions. For example, users that cannot list tenants should not see the menu.

Support of Capsule Tenant CR v1beta1

Introduce the support of Capsule Tenant CRD v1beta1 APIs version:

apiVersion: capsule.clastix.io/v1beta1
kind: Tenant
metadata:
  name: gas
spec:
  owners:
    -
      kind: User
      name: bob

[Tenant details page] Display of Limit Ranges

[Tenant details page]

Change the display of Limit Ranges to make it consistent with yaml structure of LimitRanges and aligned with look&feel of the other tenant fields.

@zhilinn I appreciate your effort to make the display more compact and readable but I prefer to have a more consistent view.

Try this display

image

Extension incompatible with Lens 5.4.x

When adding the pre-build release (0.0.1) to the Lens instance (version 5.4.3), it states "Incompatible version".

Is there a dependency that needs to be bumped to get the extension to work with newer versions of Lens?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.