v0.16.0 (2023-06-21)

Clusternet Release v0.16.0

This release introduces multiple scheduling features, such as feature gate FailOver will migrate workloads from not-ready clusters to healthy spare clusters, feature gate FeasibleClustersToleration could tolerate failures on feasible clusters for dynamic scheduling with predictors.

In this release, we also improve the performance and efficiency to deploy applications to child clusters.

Changes Since v0.15.0

Full Changelog: v0.15.0…v0.16.0

What’s Changed

New Features & Enhancements

  • install controller-manager for local running by @dixudx in #658
  • always show predictorDirectAccess in status by @autumn0207 in #660
  • bump k8s dependencies to 1.26 by @dixudx in #659
  • apply resources to child clusters with method PATCH by @abstractmj in #666
  • tighten rbac rules by @dixudx in #671
  • bump clusternet images to v0.15.2 by @dixudx in #672
  • bump dependency yacht to v0.4.0 by @dixudx in #663
  • taint cluster with not-ready conditions by @dixudx in #673
  • migrate workloads from not-ready clusters to healthy spare clusters by @dixudx in #674
  • user-defined prefixes for label aggregation by @yinsenyan in #679
  • Bump github.com/docker/distribution from 2.8.1+incompatible to 2.8.2+incompatible by @dependabot in #685
  • support different format base name by @yinsenyan in #681
  • update github action checkout to v3 by @dixudx in #687
  • configurable percentage of clusters to be scored for scheduling by @yiwei-C in #690
  • Optimize yacht controller in mcs controllers by @yiwei-C in #691
  • Update README.md by @guoguodan in #693
  • Update ROADMAP.md by @guoguodan in #695
  • update api doc of FeedInventory by @dixudx in #700
  • add context to predictor http requests by @dixudx in #701
  • Add license scan report and status by @fossabot in #702
  • add action fossa by @dixudx in #703
  • only run fossa for clusternet org by @dixudx in #704
  • record metrics data for health checks with feature gate ComponentSLIs by @dixudx in #610
  • tolerate predicting failures on feasible clusters by @dixudx in #705
  • configurable client qps and burst to access child clusters by @dixudx in #707
  • get dynamic client from cache by @stpolar in #708
  • agent-side generic deployer uses configurable qps and burst by @dixudx in #709
  • bump clusternet container images to v0.16.0 by @dixudx in #706

Bug Fixes

  • fix feature gate usage of MultiClusterService by @dixudx in #655
  • fix error message in cluster status controller by @dixudx in #657
  • fix wrong status referring in framework by @autumn0207 in #661
  • fix validating serviceAccount token by @xjbdjay in #667
  • add missing child cluster token for hub proxy by @xjbdjay in #682
  • fix missing clusternet-hub-proxy serviceaccount token by @xjbdjay in #683
  • fix controller manager lease name by @zxbyoyoyo in #694
  • Clean warning in pkg/agent/options/cluster_reg_options.go by @yeqiugt in #697
  • fix nil pointer panic by @willzgli in #696
  • fix pruning obsolete feeds when running in pull mode by @abstractmj in #711
  • fix the merging algorithm when the previous target cluster is empty by @zhenkuang in #713
  • update labels created by clusternet controller manager by @dixudx in #714
  • fix metadata precondition failure by @dixudx in #716


  • fix CVE-2023-30622 to mitigate a potential risk which can be leveraged to make a cluster-level privilege escalation

New Contributors

Thanks to all contributors!