Giter Site home page Giter Site logo

catalog's Introduction

Kusion Catalog

Kusion is an Intent-Driven Platform Orchestrator that enables developers to specify their desired intent in a declarative way and then using 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 prosper 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 the official Kusion Modules maintained by the KusionStack team (all contributions welcome), representing our understanding of a "golden path" and is designed to be used out-of-the-box.

Catalog Structure

The modules directory contains all the out-of-the-box Kusion Module definitions, with the following directory structure.

├── modules
│   ├── monitoring          👈 Module definition 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             👈 Generator implementation for Promethues module in Go
│   ├── mysql               👈 Module definition for Mysql database
│   │   ├── ...
│   ├── network             👈 Module definition for Network
│   │   └── ...
│   ├── opsrule             👈 Module definition for Operational Rule
│   │   └── ...
│   └── postgres            👈 Module definition for Postgres database
│       └── ...

Using the Catalog Modules

The modules defined in the catalog repository are published to the KusionStack GitHub container registry.

To reference and import the official Kusion Modules defined in this catalog repository, you can declare the dependencies in the corresponding kcl.mod file (Pick and choose the ones you need):

[package]
name = "my-project"
edition = "0.5.0"
version = "0.1.0"

[dependencies]
kam = { git = "https://github.com/KusionStack/kam.git", tag = "0.1.0" }
monitoring = { oci = "oci://ghcr.io/kusionstack/monitoring", tag = "0.1.0" }
mysql = { oci = "oci://ghcr.io/kusionstack/mysql", tag = "0.1.0" }
postgres = { oci = "oci://ghcr.io/kusionstack/postgres", tag = "0.1.0" }
network = { oci = "oci://ghcr.io/kusionstack/network", tag = "0.1.0" }
opsrule = { oci = "oci://ghcr.io/kusionstack/opsrule", tag = "0.1.0" }

[profile]
entries = ["../base/base.k", "main.k"]

The kam repository referenced in the kcl.mod contains the definition for the AppConfiguration schema, which is a top layer concept for describing an application and may contains a collection of modules.

catalog's People

Contributors

adohe avatar elliotxx avatar ffforest avatar healthjyk avatar liu-hm19 avatar panshuai-ps avatar sparkyuan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

catalog's Issues

Initialize the github action configurations such as commit/pr constraints, pr/issue template etc

What would you like to be added?

Initialize the github action configurations such as commit/pr constraints, pr/issue template etc.

TODO:

  • Repository Settings
    • Code Review Settings
      • Allow squash merging
      • Allow auto-merge
      • Automatically delete head branches
  • Configurations
    • PR、Issue templates
  • CICD
    • CI
      • CommitLint
      • PR Title Lint
      • CLACheck

Why is this needed?

  1. Standardize the R&D process
  2. Automation
  3. Consistency

Enhancement: generate and sync docs of catalog models to kusionstack.io automatically

What would you like to be added?

a github workflow in the catalog repository to generate docs and push the doc changes to the kusionstack.io repo.

Why is this needed?

Models in the catalog repository will be updated continuously among the time and users of those models need to refer to the latest model docs.

This workflow is fixed and could be automated by GitHub workflow + KCL doc gen tool

Enhancement: add a sample for the kcl package managed by kpm.

What would you like to be added?

Add an application configuration named 'hellokpm' that can be managed by kpm.

Why is this needed?

Application configuration development and konfig management can be separated by kpm, the sample "hellokpm" is used to show how to use kpm to manage the development of the application configuration out of the konfig.

Model: Support Kafed as a workload type

What would you like to be added?

Add KafeD kusion model and related generator logic

Why is this needed?

To enable gracefully stop app network traffic and rolling updates using KafeD

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.