package-operator

module
v1.6.0 Latest Latest
Warning

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

Go to latest
Published: Apr 18, 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 is used in production and the concepts proven.

The Core APIs are generally stable and breaking changes should only happen in exceptional circumstances.
Be careful to check the change notes for alpha and beta APIs.

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.

Getting in touch

Our mailing lists:

  • pko-devel for development discussions.
  • pko-users for discussions among users and potential users.

Contributing

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

Package Operator is Apache 2.0 licensed and we accept contributions via GitHub pull requests.

DCO

By contributing to this project you agree to the Developer Certificate of Origin (DCO). This document was created by the Linux Kernel community and is a simple statement that you, as a contributor, have the legal right to make the contribution. See the DCO file for details.

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.19+ 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