nowfound

Dev tools · June 26, 2024

PO

Package Operator – Kubernetes application packaging and management

Hey HN :) I just saw the post about Glasskube - an open source package manager for kubernetes [1] and would like to throw package-operator in the ring for y'all to look at and get some feedback on it. Disclaimer up front: I'm an engineer working on package-operator as part of my SRE work in Red Hat's service delivery org. Opinions are my own, though. :) Package-Operator is a multi component ecosystem to tackle the package management story for kubernetes in a slighly novel- (and not so novel- when compared with OLM [2]) way: - `package-operator-manager` is an actual operator running inside…

What it does

In the maker’s words, at launch

Hey HN :) I just saw the post about Glasskube - an open source package manager for kubernetes [1] and would like to throw package-operator in the ring for y'all to look at and get some feedback on it. Disclaimer up front: I'm an engineer working on package-operator as part of my SRE work in Red Hat's service delivery org. Opinions are my own, though. :) Package-Operator is a multi component ecosystem to tackle the package management story for kubernetes in a slighly novel- (and not so novel- when compared with OLM [2]) way: - `package-operator-manager` is an actual operator running inside your kube-like cluster to control the rollouts and status reporting of your packages - `kubectl package` is a kubectl cli-extension that helps you build package images and validate beforehands. - packages are built into and distributed as very small regular OCI images, which let's you re-use the container registry you probably already use as part of your delivery pipeline. If you're into kube: the really interesting part of package-operator is the way it handles packages within the kubernetes api: 1. Packages get extracted and the containing manifest templates get rendered into an `ObjectDeployment` (or a `ClusterObjectDeployment` if you're installing a cluster wide / non-namespaced `ClusterPackage`) 2. The `ObjectDeployment` in turn creates and manages an immutable `ObjectSet`. 3. The ObjectSet is ordered into reconciliation phases, which can be guarded by probes on status condition or field of objects, to serve as stopgaps before the next phase begins. 4. The ObjectSet uses this phased approach to create and manage the objects contained within the `Package` and also uses specified probes to report the workload status. 5. Status reporting bubbles back up to the `Package` object as you'd expect. 6. When rolling out an updated image by changing `.spec.image` on the parent `Package`, new objects get rendered and the `ObjectDeployment` gets updated. 7. The `ObjectDeployment` then creates a new `ObjectSet` and uses the phased approach again to roll forward from the old to the new `ObjectSet` (similar to how `Deployments` use `ReplicaSets` to manage `Pods`). We took a lot of inspiration from `Deployments`/`ReplicaSets` for this project. There's still a lot of documentation missing, but if you're interested in playing around, there's a couple of example manifests in the folder `config` [3] in the main repo of PKO [4]. You don't need `Package` images and objects at all and you can directly write `ObjectDeployment` objects as well. Look into `config/examples/nginx` [5] to find some playground inspiration. As of today, we're successfully using package-operator to deploy and operate managed workloads on top of managed OpenShift. :) Here's a one-liner to install the latest version package-operator: `kubectl create -f https://github.com/package-operator/package-operator/release...` [1] https://news.ycombinator.com/item?id=40789862 [2] https://olm.operatorframework.io/ [3] https://github.com/package-operator/package-operator/tree/df... [4] https://github.com/package-operator/package-operator [5] https://github.com/package-operator/package-operator/tree/df... Edit: slightly fixed formatting (or made it worse?).

Does the same job

all alternatives →
  • Cyclops2024 · ▲248

    Developer friendly Kubernetes

  • kubewall2024 · ▲225

    A free and open-source GUI dashboard for Kubernetes

  • Cyclops2024 · ▲217

    Developer friendly Kubernetes

  • KubeAdvisor2019 · ▲78

    KubeAdvisor helps DevOps adopt best practices for Kubernetes

  • KA
    Kubernetes as a back-end for OpenFaaS2017 · github.com · ▲194
  • KubernsJul 2026 · kuberns.com · ▲40

    The AI agent that deploys and manages your cloud

More dev tools this month

the category →
  • Dograh592

    The open source VAPI alternative

    Dev tools · 25d ago · dograh.com

  • Meridian530

    Don't let your work go unnoticed. Get promoted!

    Dev tools · 20d ago · meridiona.com

  • x1516

    Lovable for iPhone apps go from idea to App Store

    Dev tools · 11d ago · x1.new

  • Open-source GTM skills for technical founders

    Dev tools · 29d ago · gtmcofounder.com

  • OpenTrailPaper is open-source bike computer firmware for the LilyGO T5S3 4.7" E-Paper PRO. It supports offline maps, GPX routes, FIT recording and Bluetooth sensors.

    Dev tools · 1d ago · opentrailpaper.com

  • Nuphos380

    The AI-Native DevOps Workspace.

    Dev tools · 24d ago · nuphos.ai

Launched alongside, June 2024

the whole month →
  • Pygma1,409

    AI copilot for Instagram

    AI · 2024 · pygma.me

  • Cello1,347

    Easiest way to add a referral program to your SaaS

    Growth · 2024 · cello.so

  • Create personalized, multi-channel conversations at scale

    AI · 2024 · lagrowthmachine.com

  • FlowMapp 3.01,147

    Visual website planning in the most powerful way

    Work · 2024 · flowmapp.com

  • Revolutionary AI email, reimagined for teams

    AI · 2024 · superhuman.com

  • PyjamaHR1,132

    Hiring on autopilot. The AI applicant tracking system (ATS).

    Work · 2024 · pyjamahr.com