Kusion Versions Save

Deliver intentions to Kubernetes and Clouds

v0.11.1

2 weeks ago

Features

Kusion Apply Supports Automatic Port Forwarding

In this version, kusion apply supports specifying the port of the application to forward with the --port-forward option. After the application resources are deployed, Kusion CLI will automatically forward the local port with the same number to the corresponding pod port of the application in the targeted Kubernetes cluster, which makes it easier for users to debug their application. @liu-hm19

Adding Sub Commands for Project and Stack

In this version, we added the kusion project and kusion stack sub commands for a better project and stack lifecycle management, facilitating the creation of new Project and Stack. A new stack can be created based on the existing ones, allowing users to quickly initiate a new set of application configurations. @liu-hm19

Adding Supports for Customized Namespace

In Kusion v0.11.0, application resources will by default be created in the namespace with the same name as the project. In this version, we added supports for customized namespaces. Users now can specify a namespace in the extension fields of project.yaml and stack.yaml files, and the application resources will be created in the specified namespace accordingly. @adohe

Kusion Mod Push Enhancement

In this version, we optimized the version management of Kusion Module OCI artifacts for kusion mod push cmd and introduced the support for multiple operating systems and architectures. @SparkYuan

Bug Fixes

  • Fixed some issues of the Kusion CLI interactive terminal display @liu-hm19
  • Fixed some issues of the Kusion CLI flag options @adohe @liu-hm19

Concept Update

The definitions, boundaries as well as their relationships of the Kusion core concepts, Project, Stack and Workspace, have been updated.

Docker Images

  • kusionstack/kusion:v0.11.1

v0.11.1-rc.1

2 weeks ago

What's Changed

Full Changelog: https://github.com/KusionStack/kusion/compare/v0.11.0...v0.11.1-rc.1

v0.11.0

1 month ago

Features

Kusion Module Extension Mechanism

In v0.10.0, we have introduced the collaboration paradigm between Application Developers and Platform Engineers. Here we further improve the relevant AppConfiguration model and Kusion Module extension mechanism. A Kusion module is a reusable building block designed by platform engineers to standardize application deployments and enable app developers to self-service, usually including a module schema and a module generator. We update the AppConfiguration model and open the accessories field to support various modules adding capabilities to application Workload. Some common modules like Network, MySQL, PostgreSQL, OpsRule and Monitoring have been built in by us. Meanwhile, we provide a Kusion Module development framework with which platform engineers can efficiently build their own customized modules, as well as the user guides for application developers. We also provide the kusion mod cmd for users to build and push local cross-platform module packages to remote repositories, such as Github Packages. @SparkYuan @ffforest @liu-hm19

Kusion Core Workflow Upgrade

The core workflow of Kusion CLI are getting some big changes. An internal demo application is embedded in simplified kusion init for users to get started with Kusion CLI more quickly. And kusion build has now been upgraded to kusion generate to adapt to using Kusion Modules to convert the users' Intent for workload accessories into the resource specification (Spec), support a versioned Spec storage. The interaction interfaces for kusion preview, kusion apply and kusion destroy has also been upgraded. @adohe @healthjyk @liu-hm19

Kusion Workspace Management Upgrade

In the previous version of Kusion, a Stack could only be bounded to the Workspace with the same name, both of which were tightly coupled. And now they have been decoupled, achieving a more flexible workspace management. Kusion provides a default workspace when no workspace is explicitly specified as the current workspace, and adds the kusion workspace switch cmd to switch the current workspace. @healthjyk

Kusion Backend Management Upgrade

We add the kusion config cmd for users to configure the storage backend of Kusion CLI with more flexibility and capability, enhancing the support for Workspace, Spec and State stored in Local, MySQL, S3 and OSS. Users can now configure and manage different backend storages for different workspaces with Kusion CLI. @healthjyk

User Experience Enhancement

Kusion now supports the automatic installation of Terraform CLI, eliminating the need for users to manually install it. @liu-hm19

Bug Fixes

  • Fix some issues of Kusion CLI when running on Windows. @healthjyk
  • Fix some outdated or inaccurate cmd prompts and outputs. @liu-hm19
  • Fix some issues related to the logging of Kusion CLI. @SparkYuan

Deprecations

  • The kusion init cmd no longer supports application templates.
  • The kusion build cmd has been upgraded to kusion generate.
  • The AppConfiguration and Workload models have been migrated from the catalog to the kam repository.

New Contributors

  • @skoenig made their first contribution in #954

Docker Images

  • kusionstack/kusion:v0.11.0

v0.11.0-rc.1

1 month ago

What's Changed

New Contributors

Full Changelog: https://github.com/KusionStack/kusion/compare/v0.10.0...v0.11.0-rc.1

v0.10.0

4 months ago

Features

Collaboration Paradigm

Introduce the collaboration paradigm between application developers and platform engineers. Due to the mixed configuration and unclear division of labor, the application developers have to face the high cognitive burden, while the platform engineers have great difficulty in standardization management. Hence, we make the huge upgrade —— proposing the collaboration paradigm between application developers and platform engineers and the core workflow, implementing the separation of concerns, to improve the efficiency and standardization.

The platform engineers are responsible for creating Kusion modules and maintaining workspaces. A module is a reusable building block, and contains two components: an application developer-oriented schema and a module generator. By the application developer-oriented schema, platform engineers shield the underlying complexity and achieve standardization.

The application developers are responsible to write AppConfiguration, which are composed of the developer-oriented and dead-simple schemas. There are few or even no complex configs for application developers, which reduce the cognitive burden of them.

For more detail, please refer to How Kusion Works?

Workspace Management

Introduce workspace and integrate it into the Kusion core workflow. The workspace is a logical concept representing a target that a stack will be deployed to, which contains a set of configurations that can be reused by multiple stacks. We recommend workspaces grouped by SDLC phases (such as dev, staging, and prod) or cloud vendors (such as AWS, Azure, and Alibaba Cloud).

The workspace contains four types of configurations: modules, runtimes, backends and secretStore, while the configuration is organized in YAML. We provide command lines to get, show, create, update, and delete workspace.

For more detail, please refer to Workspace.

Secret Management

Upgrade secret management in the new collaboration paradigm, and support more providers. Define the new core workflow of secret management in the collaboration scenario. Support storing sensitive data in Vault, AWS, Azure and Alibaba Cloud.

For more detail, please refer to Secrets and Using Cloud Secrets Manager.

AppConfiguration Revamp

Revamp the AppConfiguration according to the collaboration paradigm. Stripping platform configuration, the AppConfiguration only contains application developer-oriented configs. Splitting Database schema into MySQL and PostgreSQL, for better user experience.

For more detail, please refer to AppConfiguration.

Bug Fixes

  • Fix the recurring prompt ProjectName when using kusion init.
  • Fix NPE bug when using kusion apply --watch.

Deprecations

  • No longer support kusion compile, use kusion buildto replace it.
  • Deprecate core concept Spec, use Intent to replace it.
  • The state file is stored in the kusion_state.yaml, not kusion_state.json.

Docker Images

  • kusionstack/kusion:v0.10.0

v0.10.0-rc.1

4 months ago

Changelog

  • e5d5f061b78228e7f3674ab4c1f29c4929c68009: chore: cleanup useless io util code (#707) (@adohe)
  • 019f51e5826244a1da0d3a8dfdbe9d74c1c70c49: chore: delete useless gitutil types (#679) (@adohe)
  • cccee10cfd219c0cc5acd9c63b68c949ce81a044: chore: secret generator add more comments (#712) (@adohe)
  • dbf37e01d10c70da2912a0c6cd45e36a15ccf7a0: chore: secret generator add more test cases (#740) (@adohe)
  • 4a15a1e61e156707e385129b7a1c68db0405e49d: feat: add alicloud secrets manager based secret store provider (#665) (@liu-hm19)
  • de583e767dc42c5a6f1fb146f5fa25082e314fa0: feat: add azure keyvault based secret store (#652) (@adohe)
  • 9141195dc0ba2592d492658ca1319b057cec9f95: feat: add fake secret store provider for test (#739) (@adohe)
  • 1b178f6c70d26fb980c50256246880177099cf34: feat: add func of getting specified type from workspace genericConfig (#708) (@healthjyk)
  • 089068e582a83d89c9494a9b5a14a6618c9ed432: feat: add kubeConfig from workspace in extensions when kusion build (#675) (@healthjyk)
  • 2385045adf858c0d5b43c61228a97e8e04fab2d4: feat: add mysql/oss/s3 as new backends (#662) (@healthjyk)
  • 11807b45d9d909bbc3ceb594d688bfa60d9b3951: feat: add workspace CURD by default operator, and the default workspace dir is not hidden folder (#668) (@healthjyk)
  • a91a525e00ebdb509def28097fa0b2b30231baec: feat: add workspace cli (#718) (@healthjyk)
  • 61f7798ad846e45d7aee33c9d3d7f047f1c55389: feat: do not create the kcl.mod.lock file when building config (#720) (@SparkYuan)
  • cc705cce9924379380211ee4f266d6871928a3cb: feat: getting workspace when running kusion build (#653) (@healthjyk)
  • fe2ce94cfe3b737436fd1df6e0218d4700dcfbe4: feat: opsRule supports workspace config (#711) (@SparkYuan)
  • f10f3c61183d461d77ed5ac8b68e326d01b20764: feat: refactor module port with config from workspace (#723) (@healthjyk)
  • f1722d946c8a31c6d22a87224a74a80bd2e49eab: feat: secret generator add external secret type support (#737) (@adohe)
  • 1dd8aa263939825d80467196edc969debdcc0bce: feat: state backend using workspace, and upgrade of state (#669) (@healthjyk)
  • 401821cb6a815cda43afc40d79113f589d52572f: feat: support customize namespace through workspace config (#704) (@adohe)
  • 2cba13ef4494e01cb9247e98ab925dc46f6b8965: feat: update command constructor and enable profiling (#680) (@adohe)
  • a2d162d2a78925a20778a67ae07b5009750136d4: feat: update kpm to 0.6.0 to support assign kpm pkg version by commit (#744) (@healthjyk)
  • e92cd0d0705332fdb36c1fcdbe9f25232eb8a553: feat: update the latest version when releasing formal version (#726) (@healthjyk)
  • 8dce43b413e503e961be6c599a8e771504f17d4b: feat: update workspace type add secret store config (#724) (@adohe)
  • efa145e47f659771e053b856ac703579fca1ef75: feat: use kubeConfig in extensions to init kubernetes runtime (#672) (@healthjyk)
  • 1ef33b832434d7fa1197e19ba1cd6d661be5a14d: feat: use workspace config when build service and job (#717) (@healthjyk)
  • c7dfc82845131d1d8bf6dd7a510f11cfc34e3bc4: fix: a bug of the map assertion (#743) (@healthjyk)
  • c1f045593f69f9979f18147564f79c5de851cf64: fix: customize namespace generator issue (#721) (@adohe)
  • 3386d901b2d1ae66e03cd50e8fb9a927bb1f1c26: fix: e2e tests (#664) (@SparkYuan)
  • 207ebeb394236a065757309de0f25129d0d503d8: fix: misuse of env KUSION_PATH (#716) (@healthjyk)
  • 816225b5629e69a24f251c42238a7dc152ff7214: fix: opsRule doesn't work in CollaSet (#706) (@SparkYuan)
  • 5eb12a8afb4554c08244f873491876bcd9dcc3c2: refactor: monitoring generator with workspace configuration (#741) (@ffforest)
  • e1010559aca30f6cff4b9a23177284d6c20a80e3: refactor: re-pack basic api types for susitable iteration (#710) (@adohe)
  • 687408f6c752733f482ef89b31064a49a11736a8: refactor: rename SecretStoreFactory to SecretStoreProvider (#738) (@adohe)
  • 9c447767151528b0cfdb03dee80bf6d767dea52d: refactor: update database generator and related unit tests (#731) (@liu-hm19)
  • b65129ffc708c8c3d9dfc07247534fe46756fcaf: refactor: update secret store providers implementation (#677) (@adohe)
  • 3d09a64af3eaa2c765dc20aab985b7cb7a00199f: refactor: update the struct of ModuleConfig (#671) (@healthjyk)
  • 75314255e2767d2d66d325349752e92cd3320dce: refactor: update the struct of TerraformConfig (#670) (@healthjyk)
  • d09fa12b09debe76fc4d3796f67fd8be3f0fdddf: refactor: use api types in status and core pkg (#719) (@adohe)
  • 8165d7a4f21e7dd4134908b8b1174341be206c84: refactor: use project&stack types in core v1 pkg (#715) (@adohe)
  • 0413e0c3bc5a6c73199aff53d20d97d903ed6a8e: refactor: use secret types in core v1 pkg (#714) (@adohe)
  • d9db45aa0afe5a72ad28bbaf8b0dde2ae0ba5281: refactor: use workspace types with v1 pkg (#713) (@adohe)

Docker Images

  • kusionstack/kusion:0.10.0-rc.1

Dependent version

v0.9.1

5 months ago

What's Changed

Feature

  • Introduce the new command kusion build and deprecate the kusion compile to build the single-source-of-truth (Intent) by @SparkYuan
  • Support declaring the kubeconfig file path in stack.yaml by @liu-hm19
  • The unit test framework of kusion has been upgraded from monkey to mockey by @Mrcopytuo
  • The implementation framework of AppConfiguration generator has been upgraded by @Wenfeng-GAO

Bug Fixes

  • Fix some problems with setting remote state backend in project.yaml by @liu-hm19
  • Fix missing pod restartPolicy issue in the job generator by @adohe
  • Fix a nil pointer error when executing kusion apply with --watch by @cr7258

Design Docs

  • Define the Collaboration Paradigm Between App Developers and Platform Engineers With Kusion by @SparkYuan
  • Kusion Workspace Management Proposal by @healthjyk
  • Secret Management with Kusion by @adohe

Deprecated

  • kusion compile has been deprecated and replaced with kusion build to generate the Intent
  • Use AppConfiguration generator as the default generator instead of KCL generator

New Contributors

Full Changelog: https://github.com/KusionStack/kusion/compare/v0.9.0...v0.9.1

v0.9.1-rc

5 months ago

What's Changed

New Contributors

Full Changelog: https://github.com/KusionStack/kusion/compare/v0.9.1-beta...v0.9.1-rc

v0.9.1-beta

6 months ago

What’s Changed

Feature

Framework Upgrades

  • The unit test framework of kusion has been upgraded from monkey to mockey by @Mrcopytuo
  • The implementation framework of AppConfiguration generator has been upgraded by @Wenfeng-GAO

KubeConfig Configuration

  • Support declaring the kubeconfig file path in stack.yaml by @liu-hm19

Bug Fixes

  • Fix some problems of setting remote state backend in project.yaml by @liu-hm19

New Contributors

Docker Images

  • kusionstack/kusion:v0.9.1-beta

v0.9.0

7 months ago

What’s Changed

Feature

AppConfiguration Revamp

Introducing the new declarative application configuration model - AppConfiguration! It is replacing the Server model in the past versions. We have received numerous feedback in the past that it's challenging to get the ball rolling with KusionStack. So we have revamped the mechanism significantly.

The AppConfiguration model intends to eventually cover application delivery and operational needs in its full lifecycle. Currently, we have introduced the ability to configure workloads, networking, database, monitoring, basic operational rules, etc. We will continuously iterate and extend the capability of AppConfiguration to carry out our vision.

The design document can be found here

KCL is still the choice of configuration language for the AppConfiguration model. KCL has advantages when authoring a complex configuration file with some of its core features such as abstraction and validations capabilities. The logic to render the application abstraction model to the infrastructure manifests are now written in go.

Monitoring via Prometheus

Introducing the capability to configure application monitoring as part of AppConfiguration model. You can now customize the scraping behavior via the monitoring field.

More Cloud Resources

We have added better support for more cloud resources such as CLB, RDS on AWS and AliCloud. They can be provisioned at your fingertip as part of the AppConfiguration model.

Spec as input

In Kusion terminology, spec is the infrastructure specification that is generated by Kusion from the user-facing input. It represents the declarative intent from the user. Kusion now supports using the spec as an input to the preview and apply subcommand. This enables the integration and version control of declarative intent for the platform users.

Bug fixes

  • Fixed an issue where preview command unexpected fails under circumstances caused by incorrect resource dependency
  • Fixed an issue where error messages are not specific enough after failing to initialize the runtime

Deprecations

  • The Konfig repository has now been revamped into a samples repository. The schemas for AppConfiguration model will be managed in the Catalog repository.
  • The output of kusion compile is now in the complete spec format.

Docker Images

  • kusionstack/kusion:v0.9.0

Dependent version