Code Monkey home page Code Monkey logo

operator's Introduction

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


Glasskube Logo

๐ŸงŠ The next generation Package Manager for Kubernetes ๐Ÿ“ฆ (Beta Version)

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 favorit 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 

โ˜๏ธ 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.

operator's People

Contributors

anefu avatar christophenne avatar dependabot[bot] avatar inem0o avatar jensac avatar kosmoz avatar mmontes11 avatar muecahit94 avatar pmig avatar renovate[bot] avatar thekubernaut avatar thschue avatar utkarshumre avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

operator's Issues

Remove JOSDK Annotation Processor Invocation

The annotation processor provided by the JOSDK can be removed, as the generated resources are not used outside of io.javaoperatorsdk.operator.config.runtime.DefaultConfigurationService (which we do not use).

Improve default `storageClass` identification

Currently the operator assumes the storage class standard is present.
Instead we should look for the storage class annotated with storageclass.kubernetes.io/is-default-class: true

Create Glasskube install script

In order to simply Glasskube Operator installation and it's dependencies we want to create an install script that does provide this functionallity.

Additonal information:

  • A switch makes sense to install Glasskube cluster-wide or namespaced

Depends on:

Configure Logging

Currently the logging output in our testing branch has a lot of potential.

  • Use an ASCII art Logo:
   ____ _               _          _          
  / ___| | __ _ ___ ___| | ___   _| |__   ___ 
 | |  _| |/ _` / __/ __| |/ / | | | '_ \ / _ \
 | |_| | | (_| \__ \__ \   <| |_| | |_) |  __/
  \____|_|\__,_|___/___/_|\_\\__,_|_.__/ \___|
                                           

Generated via https://manytools.org/hacker-tools/ascii-banner/ (Font: Standard)

  • Log time, level, processid, thread, Class, message - "spring" and "quarkus" sample projects can be used as inspiration
  • Configure different colors for different logging levels
  • Create example logging lines in the main class
  • Create a started in 0.01s logging line to let user know when to operator is functional

Update mariadb-operator

  • Pin chart version in deploy script as mariadb-operator is not yet stable
  • Update Chart Repo
  • Renamce MariaDB CRD

Dynamic `ingressClassName`

Current:
On every non aws cloud deployment we set the ingressClassName to "nginx".
In some environments (e.g. microk8s) this can lead to failing loadbalancers as microk8s expects ingressClassName: "public".

Desired:
Dynamically set the ingressClassName. If it cannot be determined automatically it should be part of the glasskube-settings ConfigMap.

First Kubernetes Deployment from custom resource

  • Custom resource definition should define custom html
  • Resources (deployments, service, ingress) should be automatically created on CR appearance
  • http-echo can be used as http image
  • Resources should be delete on CR deletion
  • document crd

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.