/salt

A collection of salt states used to provision a kubernetes cluster

Primary LanguagePythonApache License 2.0Apache-2.0

Description

A collection of Salt states used to provision a kubernetes cluster in the context of CaaSP/MicroOS.

Running Tests

First of all, you have to install tox:

% zypper in python-tox

After that, from the root of the project you can run style checks:

$ tox -e flake8

And unit tests:

$ tox -e tests-salt-2018.3.0-py27

If you want to run everything simply perform:

$ tox

Salt states and CaaSP architecture

The Salt state creates an architecture that depends on some (already existing) elements. This is the expected setup before running the orchestration:

The salt master is installed in the Admin Dashboard and is reponsible for orchestrating the deployment and controlling all the minions in the cluster, including a local minion that is used for generating the CA certificate.

An etcd instance is also used for bootstrapping the other etcd instances in the cluster. It will be configured from Salt with the number of etcd masters set in the pillar.

After running the orchestration, the architecture will look like this:

Some notes:

  • the etcd discovery server is not a member of the etcd cluster: it is only used as a rendezvous for bootstrapping the etcd cluster.
  • for the systems that need to talk to etcd, they connect to the local etcd instance. This local server will be either a full member of the etcd cluster or an instance that works in rw-proxy mode.

License

This project is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.