-
Notifications
You must be signed in to change notification settings - Fork 181
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs(website): improve comparision documentation
Signed-off-by: Philip Miglinci <[email protected]>
- Loading branch information
Showing
5 changed files
with
96 additions
and
19 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
--- | ||
slug: helm | ||
sidebar_label: With Helm | ||
title: Glasskube vs Helm Comparison | ||
description: Discover Glasskube, a fresh Kubernetes package manager challenging Helm's shortcomings. Explore automatic updates, dependency management and much more. | ||
--- | ||
|
||
# Glasskube vs Helm Comparison | ||
|
||
In late 2023, we published a [blog post](https://glasskube.eu/en/r/knowledge/5-helm-shortcomings/) about, what we thought, were the biggest shortcomings of [Helm](https://helm.sh/)—undoubtedly the most popular package manager for Kubernetes. | ||
After receiving *TONS* of feedback from the community we realized that we were not alone in being unsatisfied with the status quo. | ||
That is why we started thinking about and prototyping Glasskube—a *new* vision of what a package manager for Kubernetes could look like. | ||
|
||
We take a new approach on multiple features, but want to highlight the 5 most important differences that got either just released, are in development right now or are on our roadmap and will be started soon: | ||
|
||
1. **Package updates**<br/>Glasskube provides the possibility to install packages in `@latest` version which leads to automatic updates or install a package in specific version and explore new versions via the `outdated` command and upgrade them with the `upgrade` command. | ||
2. **Dependency management**<br/>Glasskube offers—as you would expect—dependency management out of the box. Multiple packages can require a specific package (e.g. `cert-manager`) being installed and updated in the Kubernetes cluster and its preferred namespace. | ||
3. **Custom Resources Definition (CRD) changes**<br/>Upgrading CRDs will be taken care of by Glasskube to ensure CRs and its operators don't get out-of-sync. | ||
4. **Cloud-Native architecture**<br/>As Helm's architecture is purely client side, it renders the templates and applies them via the Kubernetes API. Although releases are stored in Kubernetes Secrets there is no first party server-side component for helm making it harder to install packages via the GitOps approach. | ||
5. **Kubernetes version upgrade compatibility**<br/>Glasskube tries to make Kubernetes version upgrades as smooth as possible by automatically testing all package (combinations) across multiple Kubernetes versions. | ||
|
||
We acknowledge that Helm, with its flexibility and extensibility, has its place in a seasoned DevOps engineer's tool belt, and it's status as one of the most popular methods to deploy applications in Kubernetes is not without merit. | ||
However, Helm's extensive flexibility comes, at least in part, at the cost of the user, which is especially true for junior and novice Kubernetes administrators. | ||
That is why Glasskube is laser focused on delivering a tool for administrators who need to only manage a couple of applications, but who also need to make sure that a multitude of infrastructure components are kept up-to-date and secure throughout multiple Kubernetes version upgrades while also adapting to inevitable breaking changes. | ||
|
||
With that being said, **Glasskube is not a full replacement of Helm**, neither do we aspire for it to become one in the future. | ||
Rather, Glasskube is designed to integrate with established workflows and work in synergy with existing tools, such as Helm, Flux, ArgoCD and many more. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
--- | ||
slug: timoni | ||
sidebar_label: With Timoni | ||
title: Glasskube vs Timoni Comparison | ||
description: Timoni installs and updates cloud-native applications as bundles (OCI images) with a great support for configuration, but it requires users to create its own bundles. | ||
--- | ||
|
||
# Glasskube vs Timoni Comparison | ||
|
||
[Timoni](https://helm.sh/) was created by [Stefan Prodman](https://github.com/stefanprodan) to improve bundling cloud native applications and their lifecycle management. | ||
|
||
Timoni is closer related to Helm than Glasskube, but brings some features and new approaches to the table Helm doesn't offer. | ||
Its bundles are OCI images, so the only way to install these bundles is to publish them first to an OCI registry, | ||
which makes additional security features like image (co-)singing possible. | ||
Similar to Glasskube it performs garbage collection of orphan resources after an uninstallation operation. | ||
|
||
Timoni is generally more mature than Glasskube. However, it doesn't prioritize making standard package installation and upgrades easy. | ||
As of now, there's no plan for GUI support either. Users have to bundle their own applications and provide their registry for images. | ||
|
||
Glasskube is not yet compatible with Timoni or its bundles, but in a similar way how Glasskube supports helm charts, Timoni bundles can be supported. | ||
There is currently an [open discussion](https://github.com/glasskube/glasskube/discussions/242) to provide Timoni support. Let us know what you think! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
--- | ||
slug: olm | ||
sidebar_label: With OLM | ||
title: Glasskube vs OLM Comparison | ||
description: The Operator Lifecycle Manager (OLM) was introduced by Red Hat to manage operators. Glasskube supports all kinds of cloud-native packages and a GUI. | ||
--- | ||
|
||
# Glasskube vs Operator Lifecycle Manager (OLM) Comparison | ||
|
||
The operator framework was [introduced by RedHat in 2018](https://www.redhat.com/en/blog/introducing-operator-framework-building-apps-kubernetes) based on a concept from 2016. | ||
|
||
The two most popular projects are the Operator SDK and the Operator Lifecycle Management. | ||
|
||
The [Operator SDK](https://github.com/operator-framework/operator-sdk) is a wrapper for Kubernetes SIGS project [Kubebuilder](https://github.com/kubernetes-sigs/kubebuilder). | ||
An SDK for building Kubernetes APIs using Custom Resource Definitions (CRDs). | ||
The Operator SDK also supports writing Operators with Go, Ansible, Helm and even JVM based languages with the [`java-operator-sdk`](https://github.com/operator-framework/java-operator-sdk) | ||
which Glasskube uses for its [`apps-operator`](https://github.com/glasskube/operator). | ||
|
||
The [Operator Lifecycle Manager](https://github.com/operator-framework/operator-lifecycle-manager) is part of the operator framework and a toolkit to provide automatic updates for Kubernetes operators. | ||
Although it is not directly part of OpenShift, it is loosely coupled as the related GUI is not open-source and only part of OpenShift, a commercial product. | ||
Using the OLM is very complex and consists of multiple CRDs and concepts, but you could achieve something similar to `glasskube install cert-manager` with | ||
`kubectl operator install cert-manager -n cert-manager --channel stable --approval Automatic --create-operator-group`, but still lacking a GUI and the simple bootstrap of `glasskube bootstrap`. | ||
|
||
OLMs [operatorhub.io](https://operatorhub.io/) lists currently more packages than Glasskube, but [Glasskube packages](https://glasskube.dev/packages/) will rapidly increase over time. | ||
|
||
Another difference between Glasskube and OLM is that **OLM only supports operators while Glasskube supports all kinds of cloud-native applications**. | ||
|
||
If you are already an OpenShift customer or only want to install operators, OLM might be a good fit for you, | ||
but you will enjoy using Glasskube if you work with Kubernetes clusters and are looking for a package manager that supports all kind of packages. | ||
|
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters