Skip to main content

Welcome

📦️ Glasskube will help you to install your favorite Kubernetes packages.

🤯 Using traditional package managers or applying manifests can be super confusing.

😍 Using the Glasskube UI for reduced complexity and increased transparency.

🧑‍💻 Still providing a brew inspired CLI for advanced users.

🏗️ Glasskube 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.

Glasskube is an open-source Kubernetes package manager that simplifies package management for Kubernetes.

Fast Track ⏱️

Install your first package in 5 minutes.

Install Glasskube via Homebrew:

brew install glasskube/tap/glasskube

Bootstrap Glasskube in your cluster:

glasskube bootstrap

Start the package manager:

glasskube serve

Open http://localhost:8580 and explore available packages.

For more installation options see the Getting started section.

Architecture 📏

Glasskube uses multiple components, most notably a client and a package operator.

Components

Client

The client is an executable written in Go. It accepts user inputs via a UI and CLI.

The client manages packages in the form of Kubernetes Resources via the Kubernetes API.

Package Operator

The package operator has two controllers:

  1. The Package Controller (managing packages)
  2. The PackageInfo Controller (syncing package infos from a repository)

Package Repository

A place where PackageManifests are stored, searched and maintained. There is a central package repository managed by Glasskube: glasskube/packages, however using custom package repositories is supported too, see Glasskube Repositories.

Commands

For any command, by default the cluster given in ~/.kube/config (current-context) will be used. An alternative kube config can be passed with the --kubeconfig flag.

glasskube bootstrap

Bootstraps Glasskube in the given cluster. For more information, check out our bootstrap guide.

glasskube serve

Starts the UI server and opens a browser on http://localhost:8580.

glasskube list

Lists packages. By default, all packages available in the configured repository are shown, including their installation status in the given cluster.

With the --installed flag you can restrict the list of packages to the ones installed in your cluster. If you only want to see installed packages that have a newer version available, use the --outdated flag.

glasskube install <package>

Installs the latest version of a package in your cluster and waits until the installation is either finished successfully or failed.

Use --version=... if you want to install a specific version of a package, or --enable-auto-updates if you want a package to always be updated to the latest version automatically.

If a package offers configuration parameters, glassube install provides a workflow to interactively set those parameters. For non-interactive parameter configuration, you can use --value (can be used multiple times).

For more information, check out glasskube help install.

glasskube update <packages...>

Updates the given packages in your cluster to their respecive latest version. If no packages are specified, all outdated packages will be updated.

glasskube configure <package>

Interactively or non-interactively modify the configuration of a package.

Use --value for non-interactive mode (can be used multiple times). If you want to delete existing values, use --keep-old-values=false (can be used in combination with --value)

For more information, check out glasskube help configure.

glasskube uninstall <package>

Removes the given package from your cluster.

glasskube describe <package>

Shows additional information about the given package.

glasskube open <package>

Opens the default entrypoint of the given package. Use glasskube open <package> <entrypoint> to open a specific entrypoint.

glasskube suspend

Instruct the package-operator to suspend reconciliation of the given package

glasskube resume

Resume reconciliation of a suspended package

glasskube auto-update

Update autopilot for packages where automatic updates are enabled. Use the enable and disable subcommands to enable/disable automatic updates for some or all packages. Examples:

  • glasskube auto-update enable (Enable automatic updates for all packages)
  • glasskube auto-update disable foo bar (Disable automatic updates for packages "foo" and "bar")

For more information check out glasskube help auto-update and glasskube help auto-update enable.

glasskube repo

Manages the package repositories of the cluster. glasskube repo list lists the currently configured repositories, while glasskube repo add allows you to add new repositories to your cluster.

glasskube purge

Uninstalls the Glassube package-operator from the current cluster and deletes all Glasskube Custom Resource Definitions. Warning: This will delete all installed packages.

If you are unhappy with Glasskube we would love to hear your feedback, so please get in touch!

glasskube version

Prints the version of the local Glasskube installation, as well as the installed cluster components.

glasskube --version

Prints the version of the local Glasskube installation.

glasskube help

Prints helpful information about glasskube and its commands. Use glasskube help <subcommand> to learn more about a specific subcommand.