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:
- The Package Controller (managing packages)
- The PackageInfo Controller (syncing package infos from a repository)
Package Repository
A place where PackageManifest
s are stored, searched and maintained.
Currently only the glasskube packages repository is supported: glasskube/packages
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 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.