Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add headlamp #517

Merged
merged 1 commit into from
May 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 88 additions & 0 deletions stacks/headlamp/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# Headlamp <img align="right" width=384 src="assets/images/headlamp_light.svg">

Headlamp is an easy-to-use and extensible Kubernetes web UI.

Headlamp was created to be a Kubernetes web UI that has the traditional functionality of other
web UIs/dashboards available (i.e. to list and view resources) as well as other features.

<div align="center">
<img src="assets/images/headlamp_quick_run.gif" width="80%">
</div>

## Features

* Vendor independent / generic Kubernetes UI
* Works in-cluster, or locally as a desktop app
* Multi-cluster
* Extensible through plugins
* UI controls reflecting user roles (no deletion/update if not allowed)
* Clean & modern UI
* Cancellable creation/update/deletion operations
* Logs, exec, and resource editor with documentation
* Read-write / interactive (actions based on permissions)

## Screenshots

<table>
<tr>
<td width="33%"><img src="assets/images/home.png"></td>
<td width="33%"><img src="assets/images/cluster_chooser.png"></td>
</tr>
<tr>
<td width="33%"><img src="assets/images/workloads.png"></td>
<td width="33%"><img src="assets/images/resource_edition.png"></td>
</tr>
<tr>
<td width="33%"><img src="assets/images/logs.png"></td>
<td width="33%"><img src="assets/images/terminal.png"></td>
</tr>
</table>

## Quickstart

If you want to deploy Headlamp in your cluster, check out the instructions on running it [in-cluster](https://headlamp.dev/docs/latest/installation/in-cluster/).

If you have a kube config already, you can quickly try Headlamp locally as a
[desktop application](https://headlamp.dev/docs/latest/installation/desktop/),
for [Linux](https://headlamp.dev/docs/latest/installation/desktop/linux-installation),
[Mac](https://headlamp.dev/docs/latest/installation/desktop/mac-installation),
or [Windows](https://headlamp.dev/docs/latest/installation/desktop/win-installation).
**Make sure** you have a kubeconfig file set up with your favorite clusters and
in the default path so Headlamp can use it.

### Accessing

Headlamp uses [RBAC](https://kubernetes.io/docs/reference/access-authn-authz/rbac) for checking
whether and how users can access resources. If you try Headlamp with a token that has very limited
permissions, you may not be able to view your cluster resources correctly.

See the documentation on [how to easily get a Service Account token](https://headlamp.dev/docs/latest/installation#create-a-service-account-token) for your cluster.

## Tested platforms

We maintain a list of the [Kubernetes platforms](./docs/platforms.md) we have
tested Headlamp with, and invite you to add any missing platform you have
tested, or comments if there are regressions in already filed platforms that
should be consider.

## Extensions / Plugins

If you are interested in tweaking Headlamp to fit your use-cases, you can check out
our [plugin development guide](https://headlamp.dev/docs/latest/development/plugins/).

## Get involved

Check out our [guidelines](https://headlamp.dev/docs/latest/contributing/), including our [Code of Conduct](./CODE_OF_CONDUCT.md),
and join the discussion on the
[#headlamp](https://kubernetes.slack.com/messages/headlamp) channel
in the Kubernetes Slack.

## Roadmap

If you are interested in the direction of the project, we maintain a
[Roadmap](https://github.com/headlamp-k8s/headlamp/projects/2) for it with the
biggest changes planned so far.

## License

Headlamp is released under the terms of the [Apache 2.0](./LICENSE) license.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
106 changes: 106 additions & 0 deletions stacks/headlamp/assets/images/headlamp_light.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added stacks/headlamp/assets/images/home.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added stacks/headlamp/assets/images/logs.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added stacks/headlamp/assets/images/terminal.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added stacks/headlamp/assets/images/workloads.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
35 changes: 35 additions & 0 deletions stacks/headlamp/deploy.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#!/bin/sh

set -e

################################################################################
# repo
################################################################################
helm repo add headlamp https://headlamp-k8s.github.io/headlamp/
helm repo update > /dev/null

################################################################################
# chart
################################################################################
STACK="headlamp"
CHART="headlamp/headlamp"
CHART_VERSION="0.20.0"
NAMESPACE="headlamp"

if [ -z "${MP_KUBERNETES}" ]; then
# use local version of values.yml
ROOT_DIR=$(git rev-parse --show-toplevel)
values="$ROOT_DIR/stacks/$STACK/values.yml"
else
# use github hosted master version of values.yml
values="https://raw.githubusercontent.com/digitalocean/marketplace-kubernetes/master/stacks/${STACK}/values.yml"
fi

helm upgrade "$STACK" "$CHART" \
--atomic \
--create-namespace \
--install \
--timeout 8m0s \
--namespace "$NAMESPACE" \
--values "$values" \
--version "$CHART_VERSION"
14 changes: 14 additions & 0 deletions stacks/headlamp/uninstall.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/sh

set -e

################################################################################
# chart
################################################################################
STACK="headlamp"
NAMESPACE="headlamp"


helm uninstall "$STACK" \
--namespace "$NAMESPACE"
kubectl delete --ignore-not-found=true namespace "$NAMESPACE"
31 changes: 31 additions & 0 deletions stacks/headlamp/upgrade.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/bin/sh

set -e

################################################################################
# repo
################################################################################
helm repo add headlamp https://headlamp-k8s.github.io/headlamp/
helm repo update > /dev/null

################################################################################
# chart
################################################################################
STACK="headlamp"
CHART="headlamp/headlamp"
NAMESPACE="headlamp"



if [ -z "${MP_KUBERNETES}" ]; then
# use local version of values.yml
ROOT_DIR=$(git rev-parse --show-toplevel)
values="$ROOT_DIR/stacks/$STACK/values.yml"
else
# use github hosted master version of values.yml
values="https://raw.githubusercontent.com/digitalocean/marketplace-kubernetes/master/stacks/${STACK}/values.yml"
fi

helm upgrade "$STACK" "$CHART" \
--namespace "$NAMESPACE" \
--values "$values"
Empty file added stacks/headlamp/values.yml
Empty file.
Loading