package-operator

module
v1.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 16, 2023 License: Apache-2.0

README

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.

Directories

Path Synopsis
cmd
mage
Make but in go!
Make but in go!
internal
adapters
The adapters package contains interface implementations to use Cluster- and non Cluster- prefixed APIs via the same code.
The adapters package contains interface implementations to use Cluster- and non Cluster- prefixed APIs via the same code.
controllers/hostedclusters/hypershift/v1beta1
The package v1beta1 contains some API Schema definitions for the v1beta1 version of some Hypershift API group.
The package v1beta1 contains some API Schema definitions for the v1beta1 version of some Hypershift API group.
dynamiccache
taken from sigs.k8s.io/controller-runtime@v0.12.3/pkg/cache/internal/selector.go
taken from sigs.k8s.io/controller-runtime@v0.12.3/pkg/cache/internal/selector.go
preflight
package preflight implements preflight checks for PKO APIs.
package preflight implements preflight checks for PKO APIs.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL