KFD is structured on modules, and each module has a set of packages.
- A package is a single unit of functionality.
- A module groups together packages that are functionally related.
Modules and packages are loosely coupled. You don't have to deploy all the distribution modules, and you don't have to deploy all the packages inside a module. So it's up to you to decide which module could be helpful for your scenario and which tool you want to use or use not.
Here is an example of our logging module and its packages:
As we said, a module is a set of cohesive functionalities offered by the distribution, and there are two types of modules:
- Core modules: they provide essential functionality for a production-grade cluster.
- Add-on modules: add-on modules are plugins to provide additional features. For example, we can integrate with Kong and Istio.
All the tools you find on our modules are open source, widely used, easily customizable, and pre-configured with sane defaults.
Each module is composed of a set of packages divided into three categories:
- Kustomize bases
- Ansible roles
- Terraform modules
All tools inside the packages are widely used, not proprietary, pre-configured and easily customizable.