Releases: KusionStack/kusion
v0.9.1-rc
What's Changed
- chore(deps): bump google.golang.org/grpc from 1.58.0 to 1.58.3 by @dependabot in #600
- chore(deps): bump golang.org/x/net from 0.7.0 to 0.17.0 in /scripts/install-kcl-openapi by @dependabot in #603
- feat: add random string function for upcoming secret generator refact by @adohe in #602
- refactor: rename Spec to the Intent by @SparkYuan in #601
- docs: add the collaboration design doc by @SparkYuan in #578
- refactor: deprecate old vals based secret store by @adohe in #609
- refactor: update secret generator for upcoming external secret by @adohe in #607
- feat: introduce the new command
kusion build
and delete redundant commands by @SparkYuan in #608 - docs: refresh cmd docs by @SparkYuan in #611
- feat: add external secret store api and interface by @adohe in #610
- chore: delete redundant scripts by @SparkYuan in #613
- feat: add secret store provider registry impl by @adohe in #612
- fix: stack nil pointer error by @cr7258 in #615
- chore: delete redundant commands by @SparkYuan in #616
- docs: add workspace management proposal by @healthjyk in #621
- feat: update secrets related types and interfaces by @adohe in #624
- feat: add vault secret store impl by @adohe in #614
- refactor: file directories to enhance its conciseness by @SparkYuan in #636
- test: enable watch for kusion apply in e2e test by @liu-hm19 in #633
- chore: remove go build flags in the code that are not applicable for ARM64 compilation by @SparkYuan in #637
- chore: rename remaining
spec
tointent
by @SparkYuan in #640 - docs: refresh cmd docs by @SparkYuan in #641
- feat: add workspace domain model by @healthjyk in #639
- chore: rename ProjectConfiguration to Configuration to follow go convention by @SparkYuan in #644
- chore: rename ExternalSecretRef key to name by @adohe in #645
- feat: add workspace, modules, backends, runtimes management by @healthjyk in #642
- docs: add secret management proposal by @adohe in #599
- feat: add aws secrets manager based secret store provider by @adohe in #623
- feat: add workspace CRUD operations by @healthjyk in #651
- feat: support setting KCL setting-files when building an Intent by @SparkYuan in #649
New Contributors
Full Changelog: v0.9.1-beta...v0.9.1-rc
v0.9.1-beta
What’s Changed
Feature
Framework Upgrades
- The unit test framework of kusion has been upgraded from
monkey
tomockey
by @Mrcopytuo - The implementation framework of
AppConfiguration
generator has been upgraded by @Wenfeng-GAO
KubeConfig Configuration
- Support declaring the
kubeconfig
file path instack.yaml
by @liu-hm19
Bug Fixes
- Fix some problems of setting remote state backend in
project.yaml
by @liu-hm19
New Contributors
- @Mrcopytuo made their first contribution in #561
- @Wenfeng-GAO made their first contribution in #574
Docker Images
kusionstack/kusion:v0.9.1-beta
v0.9.0
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 theCatalog
repository. - The output of
kusion compile
is now in the completespec
format.
Docker Images
kusionstack/kusion:v0.9.0
Dependent version
- kcl-go:
v0.6.0-alpha.1
- kcl-plugin:
v0.5.0
v0.9.0-rc.2
What's Changed
- fix: wrong e2e ut for kusion deps and apply by @elliotxx in #532
- fix: occasional ut failures for generator by @elliotxx in #531
- chore: bump kcl-go version to v0.6.0-alpha.1 by @elliotxx in #533
- chore: update pr title max length by @SparkYuan in #536
- chore(deps): bump github.com/docker/docker from 23.0.1+incompatible to 23.0.3+incompatible by @dependabot in #535
- fix: fix aws database generator by @liu-hm19 in #542
- fix: compile error with -w flag in kpm mode by @SparkYuan in #538
Full Changelog: v0.9.0-rc.1...v0.9.0-rc.2
v0.9.0-rc.1
What's Changed
- feat: support spec as input by @panshuai-ps in #400
- doc: Add design documentation for Istio support in kusion by @ffforest in #399
- add more details when runtime init failed by @SparkYuan in #409
- update compile output to a complete spec by @SparkYuan in #413
- chore: bump kcl version to v0.5.1 by @Peefy in #414
- refactor: move pkg/engine/models to pkg/models by @SparkYuan in #434
- style: normalize some annotations by @healthjyk in #430
- feat: add AppConfiguration, Deploy, and Job models by @SparkYuan in #451
- doc: Add design documentation for Prometheus support in kusion by @ffforest in #412
- refactor: Use mock as the function name instead of monkey by @panshuai-ps in #449
- feat: remove mandatory validation of settings.yaml during kusion compile by @panshuai-ps in #448
- fix: confuse config of commitlint by @elliotxx in #452
- test: add generator and namespace tests by @SparkYuan in #454
- feat: modify the generators to adapt to the new model's adjustments by @elliotxx in #453
- refactor: use generic optimization code by @elliotxx in #455
- feat: customize workload deserialization and serialization by type by @elliotxx in #456
- fix: missing labels and annotations injection logic by @elliotxx in #457
- feat: customize workload deserialization and serialization for yaml by type by @elliotxx in #458
- refactor: reorg generators packages and simplify namings by @SparkYuan in #459
- feat: add stack name as part of workload's name by @SparkYuan in #460
- feat: support unmarshal KCL union to AppConfiguration by @panshuai-ps in #462
- feat: add the CollaSet generator by @SparkYuan in #463
- feat: support watching the collaset by @SparkYuan in #464
- test: complete workload unit tests by @elliotxx in #475
- fix: avoid generating duplicate namespaces by @liu-hm19 in #477
- feat: support some magic env parsers by @elliotxx in #473
- test: complete generator unit test by @elliotxx in #476
- test: complete appconfiguartion model unit tests by @elliotxx in #484
- feat: support default order of kubernetes resource by @elliotxx in #485
- feat: add probe types and encoding/decoding support by @adohe in #487
- chore: upgrade the goveralls by @SparkYuan in #488
- feat: add lifecycle type and encoding/decoding support by @adohe in #491
- refactor: replace cmd arguments from string array to map by @SparkYuan in #492
- fix: type mismatch in replacing implicit dependencies by @SparkYuan in #493
- feat: add a ruleset generator to support the maxavailable deploy strategy. by @panshuai-ps in #494
- feat: only support kcl schema type in the AppConfig generator by @SparkYuan in #496
- fix: error messages are ignored when executing resource nodes by @SparkYuan in #498
- feat: update workload generator support probe&lifecycle by @adohe in #495
- feat: support creating files with configmap in container by @liu-hm19 in #479
- fix: fix a coding mistake by @liu-hm19 in #499
- fix: port in probe url now gets parsed properly by @ffforest in #501
- feat: add Prometheus support by @ffforest in #490
- feat: add database generator by @liu-hm19 in #435
- feat: add network port generator by @healthjyk in #500
- fix: incorrect dag walk log messages by @SparkYuan in #508
- fix: a npe panic when deleting a resource failed by @SparkYuan in #507
- chore: update the version of alicloud provider by @SparkYuan in #506
- feat: support config maxunavaliable in deployment by @panshuai-ps in #504
- fix: add maxUnavailable in OpsRule by @SparkYuan in #509
- fix: set host to empty when url parse get localhost or 127.0.0.1 by @adohe in #512
- fix: don't generate a ruleset when the ops rule is empty by @SparkYuan in #513
- fix: add a kusion-control label in svc labels by @SparkYuan in #510
- feat: update kusion workflow and arch by @SparkYuan in #515
- feat: update scaffold template with kpm by @elliotxx in #505
- feat: update readme and workflow img by @SparkYuan in #516
- fix: invalidate dependency replacement in preview by @SparkYuan in #518
New Contributors
Full Changelog: v0.8.2...v0.9.0-rc.1
v0.8.2
What's Changed
Feature
- Optimize the output format and style control for better integration with other systems,
kusion init templates
andkusion preview
now support outputs in JSON format @healthjyk @liu-hm19 - Support listing templates for project initialization @healthjyk
- Support live-updated progress bar @howieyuen
- Bump KCL version to
v0.5.0
@Peefy - Handle incompatible K8s ingress api change @SparkYuan
Bug or Regression
- Fix some incorrect error messages @SparkYuan
- Fix some bugs with the ignore-fields flag in
kusion apply
@SparkYuan - Fix some bugs with the ignored paths in
kusion deps
@amyXia1994
New Contributors
Docker Images
kusionstack/kusion:v0.8.2
Dependent version
- kcl-go:
v0.5.0
- kcl-plugin:
v0.5.0
Full Changelog: v0.8.1...v0.8.2
v0.8.1
What's Changed
- delete redundant codes by @SparkYuan in #323
- upgrade to go 1.19 by @SparkYuan in #326
- delete unused kustomize related codes to cleanup go.mod by @SparkYuan in #327
- fix lint errors by @SparkYuan in #328
- Handle incompatible k8s ingress api change since 1.26.0. by @SparkYuan in #325
- update readme demo by @SparkYuan in #333
- Update: kusion deps: ignore all paths in --ignore option even if they appear in focus paths by @amyXia1994 in #332
- fix TFRuntime uts by @SparkYuan in #337
- chore(deps): bump golang.org/x/text from 0.3.7 to 0.3.8 in /scripts/install-kcl-openapi by @dependabot in #338
- fix: kusion deps check if focus path under certain stack by @amyXia1994 in #336
- chore: bump kcl version to v0.4.6.2 and deprecated kcl-go install scripts. by @Peefy in #340
- add "init templates" cmd, used to list templates in format by @healthjyk in #334
- bugfix: dedup pint apply/destroy dag node executing error by @howieyuen in #342
- chore: upgrade pterm to achieve a live-updated progressbar by @howieyuen in #345
- support init with specified template by @healthjyk in #343
- chore: use yaml.v2 to keep indent to 2 spaces by @howieyuen in #341
- support kusion preview --ouput json by @healthjyk in #346
- update pulumi sdk to fix incorrect error msg by @SparkYuan in #349
- update arch and highlights in the readme by @SparkYuan in #350
- chore: bump kcl go version to v0.5.0-alpha.1 by @Peefy in #351
New Contributors
- @healthjyk made their first contribution in #334
Full Changelog: v0.8.0...v0.8.1
v0.8.1-rc.0
Changelog
- 621db5f: add templates as sub cmd of init, used to list templates, support json format (#334) (@healthjyk)
- 074a213: bugfix: dedup pint apply/destroy dag node executing error (#342) (@howieyuen)
- 12b1ab1: chore(deps): bump golang.org/x/text in /scripts/install-kcl-openapi (#338) (@dependabot[bot])
- 6d5c50f: chore: bump kcl version to v0.4.6.2 and deprecated kcl-go install scripts. (#340) (@Peefy)
- 86d50b0: chore: upgrade pterm to achieve a live-updated progressbar (#345) (@howieyuen)
- 3a0f50c: delete redundant codes in spec (#323) (@SparkYuan)
- b5ebcb4: delete unused kustomize related codes to cleanup go.mod (#327) (@SparkYuan)
- a16347d: fix lint errors (#328) (@SparkYuan)
- 2d235ab: fix tf runtime uts (#337) (@SparkYuan)
- aafd548: fix: kusion deps check if focus path under certain stack (#336) (@amyXia1994)
- 1e29e8e: fix: when the --ignore paths are contained in --focus paths, ignore that focus (#332) (@amyXia1994)
- 97402c2: handle incompatible k8s ingress api change since 1.26.0. (#325) (@SparkYuan)
- 650fb02: support init with specified template (#343) (@healthjyk)
- 74d50db: update readme demo (#333) (@SparkYuan)
- 5fa2b5c: upgrade to go 1.19 (#326) (@SparkYuan)
Docker Images
kusionstack/kusion:v0.8.1-rc.0
Dependent version
- kclvm-go:
v0.4.7-0.20230509063441-affee8026160
- kcl-plugin:
v0.4.4
v0.8.0
What's Changed
Feature
- All Kusion operations support the use of hybrid resources, such as K8s and IaaS resources, in the same Stack @SparkYuan
- Support new IaaS resources: Aliyun OSS, RDS, VPC, VSwitch @liu-hm19
- Cache TF providers to speed up operations @SparkYuan
- Enhance the accuracy of the preview for TF resources @SparkYuan
- Kusion watch supports Kubernetes networking/v1.Ingress @jakezhu9
Bug or Regression
- Fix some bugs during operating Terraform resources @SparkYuan
- Do not auto-update local Terraform providers when the hash of this provider in the registry changes but the local Terraform provider version has not been updated @SparkYuan
New Contributors
Docker Images
kusionstack/kusion:v0.8.0
Dependent version
- kclvm-go:
v0.4.5
- kcl-plugin:
v0.4.4
Full Changelog: v0.7.4...v0.8.0
v0.7.4
Changelog
- edbc8f8: Auto import resources exist in spec and live cluster but no recorded in Kusion (#236) (@SparkYuan)
- df72471: Create PULL_REQUEST_TEMPLATE.md (#201) (@SparkYuan)
- 7ede4e1: Fix invalide hcl file name (#263) (@SparkYuan)
- ebdacc8: Revert "cleanup: remove pulumi deplendency, use third_party instead (#68)" (#190) (@howieyuen)
- bb4df7a: Support manipulating multi-runtime resources in one Stack (@SparkYuan)
- 62619d7: Update Makefile (#226) (@howieyuen)
- 3729ccb: add Stack in operation context and runtime interface (#216) (@SparkYuan)
- 3cfa054: add brew dependencies (#261) (@howieyuen)
- a8a2767: auto import resources exist in spec and live cluster but no recorded in kusion_state.json (#222) (@SparkYuan)
- 6028ea2: bugfix: get latest tag doesn't require git credentials (#251) (@howieyuen)
- ca7a644: bugfix: kusion watch has no pod details (#252) (@howieyuen)
- 9d43e0a: bugfix: no such file or directory for compile (#229) (@howieyuen)
- 8fd2757: bugfix: preset o.Settings and o.Output separately (#206) (@howieyuen)
- 33ef2e5: bugfix: update go install command (#234) (@howieyuen)
- 61f6f3d: bugfix: watch ignore non-support watch resources (#262) (@howieyuen)
- 6b0e343: bump up kclvm to 0.4.5 (#269) (@howieyuen)
- ff3be99: chore: bump dockerfile base image to ubuntu:22.04 (#214) (@Peefy)
- 5de105c: chore: delete unused package pkg/types (#197) (@howieyuen)
- 2a26fec: chore: refactor printers code structure (#257) (@howieyuen)
- bdfbf04: chore: use golangci-lint github action instead if manual download (#245) (@howieyuen)
- bc59552: delete nonexistent tasks in the makefile (#227) (@SparkYuan)
- b5cb537: delete the
replace
domain in go.mod for go install (#189) (@SparkYuan) - 7a6e482: enhancement: ignore field support slice type (#243) (@howieyuen)
- 5d479da: feat: add brew install support (#209) (@howieyuen)
- 6949059: feat: bump kclvm version and support kclvm windows artifact. (#207) (@Peefy)
- 249cd6d: feat: support scoop install (#231) (@howieyuen)
- a5397fd: feat: support vault as secret store (#202) (@howieyuen)
- 32c3547: feat: watch support kubevela Application from core.oam.dev/v1beta1 (#238) (@howieyuen)
- 5fa7704: fix kusion compile terminal output (#212) (@markliby)
- 1b87acb: fix kusion resource state id of TF resources (#203) (@markliby)
- 06b83fa: fix makefile (#211) (@howieyuen)
- 3f37ce4: fix npe in the log (#242) (@SparkYuan)
- 3f5dd96: fix readme typo (#199) (@SparkYuan)
- 7e20ed2: fix tf runtime concurrent execution (#235) (@markliby)
- 6bb5eed: fix: differentiate dry run action based on live state is nil or not (#187) (@howieyuen)
- 16946d2: fix: unsupported resource type (#186) (@SparkYuan)
- 1f73d86: move tf runtime workspace to stack dir (#221) (@markliby)
- ff2f377: normalize fields added by K8s that will cause a perpetual diff (#259) (@SparkYuan)
- a095d9d: normalize the Service when importing in k8s runtime (#244) (@SparkYuan)
- c98f4e3: polish readme.md (#254) (@SparkYuan)
- dfb7dbf: polish the readme (#260) (@SparkYuan)
- 9c39291: refactor and cleanup the compile command (#246) (@SparkYuan)
- 3378e6a: refactor: merge pkg operation/models and operation/types (#198) (@howieyuen)
- 7ceb57f: refactor: mv cmd/kcl-go to scripts/install-kcl-go (#194) (@howieyuen)
- 6ae06f1: refactor: mv cmd/kcl-openapi to scripts/install-kcl-openapi (#195) (@howieyuen)
- a001935: refactor: rename kusionctl to kusion (#196) (@howieyuen)
- ba2c0fd: refactor: rewrite gendocs to generate en/zh docs for one time (#193) (@howieyuen)
- 37fb45d: style: "io/ioutil" has been deprecated since Go 1.16 (#217) (@ismdeep)
- e4db076: support provider log output (#220) (@markliby)
- 8192726: unfold kusionctl pkg (#232) (@SparkYuan)
- 9faa160: update .gitigonre (#225) (@SparkYuan)
- 5ea6525: update TF config when provider hash or version has changed (#208) (@markliby)
- 331a4b2: update installation guide in readme (#215) (@howieyuen)
- d3075c9: update readme slogan (#185) (@SparkYuan)
- ee0d8ca: upgrade to spec generator mechanism (#230) (@SparkYuan)
- 7be555e: use goreleaser to release tarball and image, support brew install (#210) (@howieyuen)
- d4c20f3: use reflect pkg to break the limit of for-range by dynamic select/case set (#240) (@howieyuen)
Docker Images
kusionstack/kusion:v0.7.4
Dependent version
- kclvm-go:
v0.4.5
- kcl-plugin:
v0.4.4