/charm-kubernetes-control-plane

Kubernetes master charm. Report bugs at https://bugs.launchpad.net/charmed-kubernetes.

Primary LanguagePythonApache License 2.0Apache-2.0

Kubernetes-control-plane

Kubernetes is an open source system for managing application containers across a cluster of hosts. The Kubernetes project was started by Google in 2014, combining the experience of running production workloads combined with best practices from the community.

The Kubernetes project defines some new terms that may be unfamiliar to users or operators. For more information please refer to the concept guide in the getting started guide.

This charm is an encapsulation of the Kubernetes control plane processes and the operations to run on any cloud for the entire lifecycle of the cluster except for etcd, which is available in a separate charm.

This charm is built from other charm layers using the Juju reactive framework. The other layers focus on specific subset of operations making this layer specific to operations of Kubernetes control-plane processes.

Charmed Kubernetes

This charm is not fully functional when deployed by itself. It requires other charms to model a complete Kubernetes cluster. A Kubernetes cluster needs a distributed key value store such as Etcd and the kubernetes-worker charm which delivers the Kubernetes node services. A cluster also requires a Software Defined Network (SDN), a Container Runtime such as containerd, and Transport Layer Security (TLS) so the components in a cluster communicate securely.

Please take a look at the Charmed Kubernetes or the Kubernetes core bundles for examples of complete models of Kubernetes clusters.

For full install instructions, please see the Charmed Kubernetes documentation.

For details on configuring and operating this charm, see the kubernetes-control-plane documentation on the same site.

Developers

Building the charm

make charm

Testing the charm

tox

Note that the unit tests use charms.unit_test so all charms.reactive helpers are automatically patched with fakes and little manual patching needs to be done. Things like set_flag and is_flag_set can be used directly.