/glasskube

๐ŸงŠ The missing Package Manager for Kubernetes ๐Ÿ“ฆ Featuring a GUI and a CLI. Glasskube packages are dependency aware, GitOps ready and can get automatic updates via a central public package repository.

Primary LanguageGoApache License 2.0Apache-2.0

GitHub Repo stars License Docs Downloads twitter CNCF Landscape


Glasskube Logo

๐ŸงŠ The missing Package Manager for Kubernetes ๐Ÿ“ฆ

Getting started ยป

Explore our website ยป

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


Glasskube GUI Mockup

โญ๏ธ Why Glasskube?

Using traditional package managers or applying manifests directly can be super confusing and doesn't scale. Therefore, Glasskube will help you to install your favorite Kubernetes packages using the Glasskube UI for reduced complexity and increased transparency. We are also providing a brew inspired CLI for advanced users. Our packages are dependency aware, as you would expect from a package manager. Designed as a cloud native application, so you can follow your GitOps approach.

โœจ Features

  • ๐Ÿ’ก Streamlined UI and CLI Experience:
    We've stripped away unnecessary complexities, providing a simple yet powerful user interface and command-line interface for easy package management.
  • ๐Ÿ”„ Automated Updates:
    Glasskube ensures your Kubernetes packages and apps are always up-to-date, minimizing the manual effort required for maintenance.
  • ๐Ÿค Dependency Awareness:
    We understand the interconnected nature of Kubernetes packages. Glasskube intelligently manages dependencies.
  • ๐Ÿ› ๏ธ GitOps Ready with ArgoCD or Flux:
    Seamlessly integrate Glasskube into your GitOps workflow with support for popular tools like ArgoCD or Flux.
  • ๐Ÿ“ฆ Central Package Repository:
    Keep track of all your packages in one central repository, with a planned feature for custom repositories.
  • ๐Ÿ” Cluster Scan (planned):
    Introducing the Cluster Scan feature in a future version, which allows you to detect packages in your cluster, providing valuable insights for better management and upgrade paths.
  • ๐Ÿ” Version Pinning (planned):
    With a future version, Glasskube will introduce Version Pinning, giving you control over your package versions.

๐Ÿ—„๏ธ Table Of Contents

๐Ÿš€ Quick Start - Install your first package in less than 5 minutes.

You can install Glasskube via Homebrew:

brew install glasskube/tap/glasskube

For other installation options check out our install 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! ๐ŸŽ‰

๐Ÿ“ฆ Supported Packages

Coming Soon

In the next versions you will be able to install more packages like the Kube-Prometheus-Stack, Velero and the CloudNativePG. With v0.1.0 you will also be able to install apps like GitLab, Keycloak or Hashicorp Vault with the Glasskube Apps Operator. You can find the full list and release schedule in our roadmap

Can't find a package or want your app included in the list? We are always adding new supported packages & apps, so just join us on Discord or open up a new issue and let us know what is missing!

๐ŸŽฌ How to install you first package

cast

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[(Public Glasskube<br>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?

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

See the contributing guide for detailed instructions.

๐Ÿคฉ Thanks to all our Contributors

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

๐Ÿ“˜ License

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