v0.10.0 (2022-06-01)

Clusternet Release v0.10.0

This release introduced a new concept predictor. It is a on-going feature, which will be fully available in next release (v0.11.0). With predictor, we could dynamically schedule replicas to child clusters that have the capacity to hold them. Also in this release, we optimized the scheduler framework, making it more adaptable to multiple cluster scenarios. A new feature on cluster-aware Globalization was introduced as well. Meantime, we improved user experience on trying Clusternet with kind and Docker Desktop.

Changes Since v0.9.1

Full Changelog: https://github.com/clusternet/clusternet/compare/v0.9.1...v0.10.0

What’s Changed

New Features & Enhancements

  • Introduced new concept predictor, which can be used to predict containable replicas in each matching child clusters. This is a on-going feature, which will be fully available in next release (v0.11.0). In this release, following tasks were finished,
    • Added replica predictor interface, which can be implemented by external customized predictors. (by @dixudx in #274)
    • Added a extensible framework for predictor server, and a built-in predictor. (by @qianjun1993 in #346, #336)
    • Added a new scheduling plugin predictor. (by @yinsenyan in #354)
    • Bumped default predictor server into clusternet-agent. (by @yinsenyan in #344, by @qianjun1993 in #355)
  • Added extra arg --threadiness for hub. (by @DanielXLee in #314)
  • Added annotation to support skipping validation. (by @dixudx in #317)
  • Optimized scheduler framework for multi-cluster. (by @Garrybest in #322)
  • Cluster-aware overrides from Globalization can be applied now. (by @jasine in #334)
  • Rescheduled subscriptions when binding clusters got a change on labels. (by @DanielXLee in #339, #341)
  • Optimized context usage and shared informer factory in clusternet-agent. (by @dixudx in #356, #357)

Bug Fixes

  • Fixed inconsistent helm release name. (by @jasine in #309)
  • Fixed incorrect cluster and service ip range in ManagedCluster status. (by @jasine in #311)
  • Removing duplicate module import. (by @yinsenyan in #313)
  • Fixed resource AlreadyExists error for shadow apis (by @dixudx in #316, #330)
  • Fixed empty overrides deserialization. (by @dixudx in #323)
  • Fixed issue on deploying helm charts to target namespace. (by @dixudx in #326)
  • Label apps.clusternet.io/owned-by-description was changed to annotation to avoid label length limit. (by @silenceper in #327)
  • Fixed updating feedInventory with missing resource version. (by @dixudx in #332)
  • Fixed resource controller running more than one. (by @lmxia in #352)
  • Converged resync conditions from upper updates and rolling back. (by @lmxia in #343)
  • Fixed enqueue issue in feedinventory. (by @Garrybest in #340)

User Experiences

  • Images can be built faster and better. (by @dixudx in #319)
  • Removed default log level (used to be -v 4) to avoid log flooded. (by @dixudx in #320)
  • Added cluster register name for local kind clusters. (by @Garrybest in #321)
  • Used port-mapping endpoints for kind clusters on Docker Desktop Mac. (by @bartdong in #328)

Security

  • Fixed CVE GHSA-hp87-p4gw-j4gq: An issue in the Unmarshal function in Go-Yaml v3 causes the program to crash when attempting to deserialize invalid input. (by @dixudx in #348)

New Contributors

Thanks to all contributors!