Giter Site home page Giter Site logo

jenn-remesh / purser Goto Github PK

View Code? Open in Web Editor NEW

This project forked from vmware-archive/purser

0.0 1.0 0.0 153.64 MB

Kubernetes Cloud Native Applications visibility

License: Other

Makefile 0.89% Shell 1.61% Go 76.60% JavaScript 0.35% TypeScript 12.41% HTML 6.73% CSS 1.20% Smarty 0.21%

purser's Introduction

logo

K8s Extension for Application Visibility

Build Status Go Report Card

Overview

Purser is an extension to Kubernetes tasked at providing an insight into cluster topology, costing, capacity allocations and resource interactions along with the provision of logical grouping of resources for Kubernetes based cloud native applications in a cloud neutral manner, with the focus on catering to a multitude of users ranging from Sys Admins, to DevOps to Developers.

It comprises of three components: a controller, a plugin and a UI dashboard.

The controller component deployed inside the cluster watches for K8s native and custom resources associated with the application, thereby, periodically building not just an inventory but also performing discovery by generating and storing the interactions among the resources such as containers, pods and services.

The plugin component is a CLI tool interfacing with the kubectl that helps query costs, savings defined at a level of control of the application level components rather than at the infrastructure level.

The UI dashboard is a robust application that renders the Purser UI for providing visual representation to the complete cluster metrics in a single pane of glass.

Features

Purser with its robust CLI and UI capabilities provides a set of features including, but not limited to the list below.

  • Capability to provide visibility into the following aspects of the K8s cluster

    • workload cost associated with the native/custom resources
    • savings opportunities associated with storage and compute requirements
    • single pane view of the complete cluster hierarchy
    • capacity allocations for CPU, memory, disk space and other resources
    • interactions among associated resources such as pods and services
  • Capability of user defined logical grouping of resources based on K8s CRD implementation for enhanced filtering.

  • A plugin extension to kubectl along with the UI for developer centric usage.

  • Capability to subscribe to inventory changes via web-hook implementation.

UI Demo

demo

CLI Demo

demo

Setup and Installation

Prerequisites

  • Kubernetes version 1.9 or greater.
  • kubectl installed and configured. For details see here.
  • curl installed. Download it here

Linux/Mac Users:

curl https://raw.githubusercontent.com/vmware/purser/master/build/purser-setup.sh -O && sh purser-setup.sh

NOTE: If you want to try out purser on minikube, you can do the following steps instead.

curl https://raw.githubusercontent.com/vmware/purser/master/build/purser-minimal-setup.sh -O && sh purser-minimal-setup.sh

# Wait for containers to start, around 30s
# Open Purser in browser
minikube service purser-ui -n purser

Windows/Other Users:

For detailed installation steps follow the instructions in the manual installation guide.

Purser Plugin Setup (Optional)

NOTE: This Plugin installation is optional. This feature is not actively maintained and will be deprecated soon.

If you want to install and use Purser's command line interface

Other Installation Methods

For other installation methods such as manual installation or installation from source code refer guides in docs.

Uninstalling

kubectl delete ns purser

NOTE: Use flag --kubeconfig=<absolute path to config> if your cluster configuration is not at the default location.

API Documentation

The project uses Swagger to document API's endpoints. The documentation is available at Swagger Hub.

Additional Documentation

Additional documentation can be found below:

Community, Discussion, Contribution and Support

Issues: Have an issue with Purser, please log it.

Contributing: Would you like to contribute to our project, refer How to contribute, Developers Guide and Code of Conduct docs.

purser's People

Contributors

kreddyj avatar gurusreekanthc avatar hemani19 avatar rachil-chandran avatar chaitanyamullangi avatar vmwsrpbot avatar keshav1007 avatar agarwalakash06 avatar akashs2795 avatar anish-gupta-bose avatar jain-anshul avatar crazcalm avatar mjpitz avatar prashant-shahi avatar the-alchemist avatar

Watchers

James Cloos avatar

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.