Code Monkey home page Code Monkey logo

kubeapps's Introduction

Kubeapps

CircleCI

Kubeapps is a web-based UI for deploying and managing applications in Kubernetes clusters. Kubeapps allows you to:

  • Browse and deploy Helm charts from chart repositories
  • Inspect, upgrade and delete Helm-based applications installed in the cluster
  • Add custom and private chart repositories (supports ChartMuseum and JFrog Artifactory)
  • Browse and provision external services from the Service Catalog and available Service Brokers
  • Connect Helm-based applications to external services with Service Catalog Bindings
  • Secure authentication and authorization based on Kubernetes Role-Based Access Control

Quickstart

Kubeapps assumes a working Kubernetes cluster (v1.8+), Helm (2.9.1+) installed in your cluster and kubectl installed and configured to talk to your Kubernetes cluster. Kubeapps has been tested with Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE),minikube and Docker for Desktop Kubernetes. Kubeapps works on RBAC-enabled clusters and this configuration is encouraged for a more secure install.

On GKE, you must either be an "Owner" or have the "Container Engine Admin" role in order to install Kubeapps.

IMPORTANT: Kubeapps v1.0.0-alpha.4 and below used the kubeapps CLI to install Kubeapps, Tiller and other components. Please see the migration guide when upgrading from a previous version to v1.0.0-alpha.5 and above.

Use the Helm chart to install the latest version of Kubeapps:

helm repo add bitnami https://charts.bitnami.com/bitnami
helm install --name kubeapps --namespace kubeapps bitnami/kubeapps

IMPORTANT This assumes an insecure Helm installation, which is not recommended in production. See the documentation to learn how to secure Helm and Kubeapps in production.

The above commands will deploy Kubeapps into the kubeapps namespace in your cluster, it may take a few seconds to execute. For more information on installing and configuring Kubeapps, checkout the chart README.

Once it has been deployed and the Kubeapps pods are running, port-forward to access the Dashboard:

export POD_NAME=$(kubectl get pods -n kubeapps -l "app=kubeapps,release=kubeapps" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 in your browser to access the Kubeapps Dashboard"
kubectl port-forward -n kubeapps $POD_NAME 8080:8080

Dashboard login page

Access to the dashboard requires a Kubernetes API token to authenticate with the Kubernetes API server. Read the Access Control documentation for more information on configuring users for Kubeapps.

The following commands create a ServiceAccount and ClusterRoleBinding named kubeapps-operator which will enable the dashboard to authenticate and manage resources on the Kubernetes cluster:

kubectl create serviceaccount kubeapps-operator
kubectl create clusterrolebinding kubeapps-operator --clusterrole=cluster-admin --serviceaccount=default:kubeapps-operator

Use the following command to reveal the authorization token that should be used to authenticate the Kubeapps dashboard with the Kubernetes API:

kubectl get secret $(kubectl get serviceaccount kubeapps-operator -o jsonpath='{.secrets[].name}') -o jsonpath='{.data.token}' | base64 --decode

NOTE: It's not recommended to create cluster-admin users for Kubeapps. Please refer to the Access Control documentation to configure more fine-grained access.

Dashboard main page

To remove Kubeapps from your cluster, simply run:

helm delete --purge kubeapps
kubectl delete crd apprepositories.kubeapps.com

To delete the kubeapps-operator ServiceAccount and ClusterRoleBinding,

kubectl delete clusterrolebinding kubeapps-operator
kubectl delete serviceaccount kubeapps-operator

Build from Source

Please refer to the Kubeapps Build Guide for instructions on setting up the build environment and building Kubeapps from source.

Developer Documentation

Please refer to the Kubeapps Developer Documentation for instructions on setting up the developer environment for developing on Kubeapps and its components.

Next Steps

Use Kubeapps to easily manage your applications running in your cluster, or look under the hood to see what's included in Kubeapps.

For a more detailed and step-by-step introduction to Kubeapps, read our introductory walkthrough.

Useful Resources

Differences from Monocular

The Monocular project was designed to run a public search and discovery website for Helm repositories (e.g. https://hub.kubeapps.com). Following its 1.0 release, Monocular is focused on delivering the experience for the Helm Hub.

Versions of Monocular 0.7 and older include a basic ability to install, view and delete Helm releases in a Kubernetes cluster. To focus on the Helm Hub experience, these features have been removed since the 1.0 release and are no longer supported. We recommend users of Monocular's in-cluster features try Kubeapps as it provides a more featured, robust and secure solution to managing Helm applications in your cluster.

Community

Click here to sign up to the Kubernetes Slack org.

kubeapps's People

Contributors

andresmgot avatar angelmmiguel avatar anguslees avatar arapulido avatar carrodher avatar edsealing avatar evanlouie avatar janbrunrasmussen avatar jgtech avatar jjo avatar juan131 avatar migmartri avatar murali-reddy avatar natiki avatar ngtuna avatar prydonius avatar ritazh avatar saswatb avatar sebgoa avatar shark8me avatar sozercan avatar vikram-bitnami avatar

Stargazers

 avatar  avatar

Watchers

 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.