jfchevrette / package-operator

Operator for packaging and managing a collection of arbitrary Kubernetes objects to install software on one or multiple clusters.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Package Operator

Documentation


Package Operator is an open source operator for Kubernetes, managing packages as collections of arbitrary objects, to install and maintain applications on one or multiple clusters.



Project Status

Package Operator had it's first stable release and is in limited production use. The APIs have not been finalized and may be subject to breaking changes with future releases.

Features

  • No Surprises
    • Ordered Installation and Removal
    • Operating Transparency
  • Extensible
    • Declarative APIs
    • Plug and Play
  • Cheap Failures and Easy Recovery
    • Rollout History
    • Rollback

Documentation

Package Operator documentation is available on package-operator.run.

The source of this website is our website repository which is hosted via Github Pages, Hugo and using the Doks template.

Contributing

Thank you for taking time to help to improve Package Operator!

Feel free to open issues or propose pull requests, but please keep in mind that Package Operator is still very fresh and response times for reviewing contributions may vary.

We also are not yet ready to open project management and meetings to the general public, but will try to be accommodating.

Development

The Package Operator project keeps almost all dependencies confined to the project checkout directory and manages dependencies within the project itself.

To get started hacking, you just need Go 1.18+ and podman or docker installed.

Commands and local development

Dev Note Before running mage targets run export CONTAINER_RUNTIME=docker, export CONTAINER_RUNTIME=podman if using podman, or you will get cryptic errors from mage that may lead you to think there is a problem with the kind cluster.

Package Operator uses Mage (Think make, but all targets are written in Go instead of Shell) as task manager and developer command interface.

Command Description
./mage -l List all available commands.
./mage dev:deploy Creates a new cluster via kind and deploys PKO on it.
./mage dev:integration Creates a new cluster via kind and deploys PKO on it and runs the integration test suite.
./mage dev:teardown Tears down the local development cluster.
./mage dependency:all Installs all project dependencies into the local checkout.

About

Operator for packaging and managing a collection of arbitrary Kubernetes objects to install software on one or multiple clusters.

License:Apache License 2.0


Languages

Language:Go 98.4%Language:Smarty 1.3%Language:Makefile 0.2%Language:Shell 0.1%