Kusion is an Intent-Driven Platform Orchestrator that enables developers to specify their desired intent in a declarative way and then use a consistent workflow to drive continuous delivery through the entire application lifecycle.
To achieve that, we've introduced the concept of Kusion Modules for users to prescribe their intent in a structured way. Kusion Modules are modular building blocks that represent common and re-usable capabilities required during an application delivery.
One of the core goals of Kusion is to build an open, inclusive and prosperous open-source community focused on solving real-world application delivery and management problems, in the meantime sharing the reusable building blocks and best practices.
This repository contains the source code for all Kusion Modules that can be used publicly. If your module is open to the public, we welcome and highly encourage you to contribute it to this repository, so that more people can benefit from the module. Submit a pull request to this repository, once it is merged, it will be published to the KusionStack GitHub container registry.
We also provide a module developer guide on our website, if you have any questions, please don't hesitate to contact us directly.
Some of the modules in this repository are maintained by the KusionStack team, representing our understanding of a "golden path" and are designed to be used out-of-the-box. All examples can be found in the User Guide on our website.
The modules
directory contains all the out-of-the-box Kusion Module definitions, with the following directory structure.
├── modules
│ ├── monitoring 👈 Module for Promethues
│ │ ├── example 👈 Example for using the Promethues module
│ │ ├── kcl.mod 👈 kcl.mod includes the KCL package metadata
│ │ ├── prometheus.k 👈 Schema definition for Promethues configuration
│ │ └── src 👈 gRPC interfaces implementation for Promethues module in Go
│ ├── mysql 👈 Module for Mysql database
│ │ ├── ...
│ ├── network 👈 Module for Network
│ │ └── ...
│ ├── opsrule 👈 Module for Operational Rule
│ │ └── ...
│ └── postgres 👈 Module for Postgres database
│ └── ...
The modules defined in the catalog
repository are published to the KusionStack GitHub container registry.
- Please visit module references on the website or example/readme.md in each module directory to understand the capabilities and usage of each module.
- Register this module in your workspace and set default values to standardize the module's behavior
Please visit the platform engineer development guide for more details.
As an application developer, the workflow of using a Kusion module looks like this:
- Browse available modules registered by platform engineers in the workspace
- Add modules you need to your Stack
- Initialize modules
- Apply the AppConfiguration
Please visit the application developer user guide for more details.