Skip to content

Latest commit

 

History

History
181 lines (135 loc) · 11.6 KB

README.md

File metadata and controls

181 lines (135 loc) · 11.6 KB

GitHub Repo stars License Docs PRs Downloads CNCF Landscape Go Reference Go Report Card HelloGitHub


Glasskube Logo

🧊 The next generation Package Manager for Kubernetes 📦

Getting started »

Explore our website »

GitHub . Docker Hub . Artifact Hub . LinkedIn . Twitter / X


Glasskube GUI

📦 What is Glasskube?

Glasskube is an Open Source package manager for Kubernetes. It makes deploying, updating, and configuring packages on Kubernetes 20 times faster than tools like Helm or Kustomize. Inspired by the simplicity of Homebrew and npm. You can decide if you want to use the Glasskube UI, CLI, or directly deploy packages via GitOps.

⭐️ Why Glasskube?

We have been working in the Kubernetes ecosystem for over five years. During this time, we have consistently struggled with package management, configuration, and distribution. We've spent countless hours templating and writing documentation for commands and concepts that were difficult to grasp.

In contrast, tools like Homebrew, apt, and dnf felt easy to use and rarely caused problems. While we worked on other cloud-native projects, our users consistently highlighted several common pain points. This realization prompted us to tackle the larger issue of package management in Kubernetes, leading to the development of Glasskube.

🗄️ Table Of Contents

✨ Features

Focusing on simplicity and reliability with our CLI and UI
Easily install packages in your cluster via the Glasskube UI, where all packages are conveniently located, eliminating the need to search for a Helm repository.
Glasskube GUI
Package configurations
Configure packages with typesafe input values via the UI or interactive CLI questionnaire. Inject values from other packages, ConfigMaps, and Secrets easily. No more untyped and undocumented values.yaml files.
Configuration
Dependency Management
Glasskube packages are dependency aware, so they can be used and referenced by multiple other packages. They will also get installed in the correct namespace. This is how umbrella charts should have worked from the beginning.
Dependency
Safe Package Updates
Preview and perform pending updates to your desired version with a single click (or CLI command). All updates are pre-tested by the Glasskube test suite.
Updates
Reactions and comments
Discuss and upvote your favorite Kubernetes package on GitHub or right inside the Glasskube UI.
Reactions
GitOps Integration
All Glasskube packages are custom resources, manageable via GitOps. We're also integrating with renovate
GitOps
Multiple Repositories and private packages
Use multiple repositories and publish your own private packages. This could be your companies internal services packages, so all developers will have up-to-date and easily configured internal services.
Repo

🚀 Quick Start - Install the Beta Version.

You can install Glasskube via Homebrew:

brew install glasskube/tap/glasskube

For other installation options check out our installation guide.

Once the CLI is installed, the first step is to install the necessary components in your cluster. To do that, run

glasskube bootstrap

After successfully bootstrapping your cluster, you are ready to start the package manager UI:

glasskube serve

This command will open http://localhost:8580 in your default browser. Congratulations, you can now explore and install all our available packages! 🎉

🎬 Glasskube Demo Video

Glasskube Demo Video

📦 Supported Packages

Glasskube already supports a wide range of packages, including, but not limited to:

You can find all supported and planned packages on glasskube.dev/packages.

Architecture Diagram

---
title: glasskube install [package]
---
flowchart BT
  UI([UI])-- via local server<br>http://localhost:8580 ---Client(Client)
  CLI([CLI])-- cobra cli ---Client
  Client-- (1) validate package -->Repo[(Package Repo)]
  Client-- (2) create<br>`Package` CR -->Kubernetes(((Kubernetes API)))
  subgraph Cluster
    Kubernetes-- (3) reconcile<br>`Package` -->PackageController
    PackageController-- (4) create `PackageInfo`<br>if not present-->Kubernetes
    Kubernetes-- (5) reconcile<br>`PackageInfo`-->PackageInfoController
    end
  PackageInfoController<-- (6) update package manifest -->Repo
  subgraph Cluster
    PackageInfoController-- (7) update manifest<br>in `PackageInfo` -->Kubernetes
    Kubernetes-- (8) reconcile<br>`PackageInfo` -->PackageController
    PackageController-- (9) deploy package -->Kubernetes
  end

  Kubernetes-- (10) package status -->Client 
Loading

☝️ Need Help or Want to Provide Feedback?

If you encounter any problems, we will be happy to support you wherever we can on our Discord. For bugs, issues or feature requests fee free to open an issue. We are happy to assist you with anything related to the project.

📎 Related Projects

🤝 How to Contribute to Glasskube

Your feedback is invaluable to us as we continue to improve Glasskube. If you'd like to contribute, consider trying out the beta version, reporting any issues, and sharing your suggestions. See the contributing guide for detailed instructions on how you can contribute.

🤩 Thanks to all our Contributors

Thanks to everyone, that is supporting this project. We are thankful, for every contribution, no matter its size!

👾 Activity

Glasskube Activity

📘 License

The Glasskube is licensed under the Apache 2.0 license. For more information check the LICENSE file for details.