Skip to content

Releases: clusternet/clusternet

v0.16.0

21 Jun 08:48
3085492
Compare
Choose a tag to compare

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

Security

  • 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!

v0.15.2

21 Apr 10:54
c6bb6a4
Compare
Choose a tag to compare

This is a patch version to fix GHSA-833c-xh79-p429.

What's Changed

Full Changelog: v0.15.1...v0.15.2

v0.15.1

20 Apr 02:06
e156bf0
Compare
Choose a tag to compare

This is a patch version of v0.15.0.

What's Changed

  • fix feature gate usage of MultiClusterService by @dixudx in #655
  • install controller-manager for local running by @dixudx in #658
  • fix error message in cluster status controller by @dixudx in #657
  • fix wrong status referring in framework by @autumn0207 in #661
  • always show predictorDirectAccess in status by @autumn0207 in #660
  • bump k8s dependencies to 1.26 by @dixudx in #659
  • fix validating serviceAccount token by @xjbdjay in #667

New Contributors

Full Changelog: v0.15.0...v0.15.1

v0.15.0

06 Apr 09:08
ae6ffab
Compare
Choose a tag to compare

On Mar 4th, Clusternet was approved to join CNCF as a Sandbox project. 🎉🎉🎉 Thanks for the endeavour of the whole community. It was a HUGE milestone. ⛳⛳⛳

This release introduces a new component clusternet-controller-manager, which inherits the capabilities from clusternet-hub. With this new component, clusternet-hub will focus on serving as an apiserver to provide shadow APIs and peer connections.

In this release, we also add new features and make multiple enhancements, such as simplifying cobra commands with common boilerplate codes and use named flagsets, migrating legacy self-cluster lease, adding metrics for Clusternet components, etc.

Changes Since v0.14.0

Full Changelog: v0.14.0...v0.15.0

What's Changed

New Features & Enhancements

Bug Fixes

  • fix bugs in TestGenerateClusterName (by @autumn0207 in #596)
  • use namespaced name of Subscription for new Bases (by @yinsenyan in #642)
  • use codecov token in CI pipeline to avoid occasionally 404 errors (by @autumn0207 in #587)
  • do deepcopy before add finalizer to avoid mis-updating (by @abstractmj in #644)
  • triggering merge group checks in pipelines (by @yiwei-C in #598)

Security

Roadmap

New Contributors

Thanks to all contributors!

v0.14.0

13 Feb 09:10
d98adc8
Compare
Choose a tag to compare

This release improved the stability and introduced metrics for clusternet-hub. A critical bug, which led to unexpected feed deletions when clusternet-agent and clusternet-hub were running in the same cluster, was fixed as well. A new option ReplaceCRDs was introduced for HelmChart, which may help mitigate the annoying CRDs updating issues in the Helm community.

Changes Since v0.13.0

Full Changelog: v0.13.0...v0.14.0

What's Changed

New Features & Enhancements

Bug Fixes

  • fix con not get the correct status of the old subscription object by @zhenkuang in #550
  • fix incorrect comments by @dixudx in #552
  • fix merging TargetClusters by @yinsenyan in #560
  • no need enqueue when FeedInventory feature disable by @silenceper in #570
  • when request is not set, it needs to be filled by limits by @silenceper in #573
  • fix unexpected manifest deletion when delete ns in parent-child cluster by @lmxia in #574

Workflow

New Contributors

Thanks to all contributors!

v0.13.0

14 Nov 10:35
3db7cc8
Compare
Choose a tag to compare

What's Changed

  • ignore rescheduler when no available cluster by @silenceper in #501
  • update codecov to v3 by @dixudx in #502
  • add mcs related cluster roles by @lmxia in #506
  • Fix non-nil pointer error about ClusterRoleBindingList by @xieyanker in #507
  • populate legacy secret-based sa token by @dixudx in #503
  • fix rollback-with-no-crd-error by @lmxia in #510
  • Add routes from parent cluster to child cluster pod by @Airren in #512
  • fix unmateched serviceimport port name in mcs-api example by @Airren in #513
  • add list verb to clusternet:hub clusterRole by @metang326 in #514
  • add scheduler config and support out-of-tree scheduler plugin by @silenceper in #498
  • use discovery v1beta1 by @metang326 in #518
  • aggregate work nodes labels with threshold by @lmxia in #520
  • fix helm description cannot delete by @DanielXLee in #525
  • bugfix: fix the improper usage of version package by @mars1024 in #523
  • only enable service import/export controllers after EndpointSlice v1beta1 promoted by @mars1024 in #529
  • only discovery endpointslice for k8s upper than 1.21.0 by @yiwei-C in #532
  • support scheduling by cluster subgroup by @Sad-polar-bear in #524
  • fix missing status update of description by @Sad-polar-bear in #534
  • update subGroup example fields by @Sad-polar-bear in #535
  • sort the clusters by descending order of decimal part in dynamicDivideReplicas by @Garrybest in #533
  • update RBAC rules for clusternet-agent running in capi by @dixudx in #537
  • fix bindingClusters not update and generic description cannot delete by @DanielXLee in #539
  • non blocking callback handler for feature gate Recovery by @silenceper in #542
  • bump container images to v0.13.0 by @dixudx in #540

New Contributors

Full Changelog: v0.12.0...v0.13.0

v0.12.0

29 Sep 08:21
76b0dd0
Compare
Choose a tag to compare

This release brings Clusternet to a "discovery" world. Clusters creating by cluster-api will be discovered automatically and registered to parent cluster. Auto-labelling for managed clusters is also available now. By integrating mcs-api, multi-cluster services are discoverable and accessible across clusters with a virtual IP.

Changes Since v0.11.0

Full Changelog: v0.11.0...v0.12.0

What's Changed

New Features & Enhancements

Bug Fixes

  • bump helm version to v3.8.2 to solve memory leak (by @DanielXLee in #495)
  • don't override empty original object for jsonpatch (by @DanielXLee in #431)
  • fixed shadow crd scheme encoding (by @dixudx in #433)
  • re-queued Helm Release after helm repo got an update (by @dixudx in #438)
  • added status patch rules for scheduler (by @Garrybest in #442)
  • ignored custom metrics api group (by @silenceper in #447)
  • fixed nil assignments when collecting metrics (by @dixudx in #460)
  • ignored apiservices self group checking (by @dixudx in #465, #466)
  • added random fake uid when skipping validating objects (by @dixudx in #469)
  • forgot workqueue key for a successful scheduling (by @silenceper in #471)
  • rewired MaxHistory for chart Upgrade action (by @dixudx in #485)
  • fix merging TargetClusters (by @yinsenyan in #487)
  • ignored non-harmful missing parent storage errors (by @dixudx in #492)

User Experiences

  • added WHAT param to specify building targets (by @dixudx in #424)
  • bumped build image and go version (by @dixudx in #481)

New Contributors

Thanks to all contributors!

v0.11.0

14 Jul 07:32
e50d81f
Compare
Choose a tag to compare

This release brings in multiple fantastic features and improves the performance. This is a big update of Clusternet. Running clusternet-hub with high availability is possible now. And the performance of clusternet-scheduler is improved as well. Dynamic replica scheduling is fully supported. Applications with multiple replicas can be divided and scheduled to multiple clusters based on cluster dynamic capacity. Please check out this tutorial. Moreover, the aggregated statuses of all deployed resources can be shown by visiting the status of Subscription.

Changes Since v0.10.0

Full Changelog: v0.10.0...v0.11.0

What's Changed

New Features & Enhancements

  • Made clusternet-hub high availability (by @dixudx in #378, #405, #411 and by @xrmzju in #387)
  • Aggregated resource/feed statuses from child clusters (@aven-ai in #358, #359, #360). The aggregated status of all deployed resources can be shown by visiting the status of Subscription. For every feed/resource, you can check the detailed status (field feedStatusDetails) per cluster and the summarized status (field feedStatusSummary) of all clusters in status.aggregatedStatuses.
  • Added new scheduling strategy Dynamic for clusternet-scheduler. Applications with multiple replicas now can be divided and scheduled to multiple clusters based on cluster dynamic capacity. (by @Garrybest in #366, #395, #400, #419). Default predictors run on every clusternet-agent, external predictors had been supported as well (by @yinsenyan in #367 and @dixudx in #418). Learn more from this tutorial.
  • Improved the performance of clusternet-scheduler (by @Garrybest in #383, #399, #388)
  • Added support to override HelmChart spec (by @DanielXLee in #385 and @dixudx in #416, #417)
  • Aggregated common labels starting with node.clusternet.io/ from nodes in child clusters (@lmxia in #396, #413). If all nodes of a child cluster have such common labels, then these labels will be aggregated and updated to its corresponding ManagedCluster object.
  • Real-time cpu/mem usage and pod statistics can be collected from metrics server by enabling flag --use-metrics-server=true on clusternet-agent side (by @GeorgeGuo2018 in #362, #365 and @DanielXLee in #421)
  • Added intermediate status for the helm chart (by @DanielXLee in #382)
  • Used sepearte clientsets for election (by @xrmzju in #389)
  • Added env for cluster-cidr and service-cidr (by @snstaberah in #391), which would be useful when the kubernetes components were not running as static pods.

Bug Fixes

  • Fixed statefulset feedinventory (by @dixudx in #398)
  • Removed go routine for storing parent cluster secret (by @DanielXLee in #381)
  • Fixed WATCH events on transforming and encoding (by @dixudx in #407)
  • Removed Manifest finalizer in shadow api (by @caryxychen in #408)
  • Fixed localizations when scaling (by @Garrybest in #406)
  • Pruned localizations when scheduling strategy was changed (by @dixudx in #401)
  • Fixed clusterIP for non headless services (by @dixudx in #404)

User Experiences

Security

  • Fixed containerd CVE-2022-31030: A bug was found in containerd's CRI implementation where programs inside a container can cause the containerd daemon to consume memory without bound during invocation of the ExecSync API. This can cause containerd to consume all available memory on the computer, denying service to other legitimate workloads. Kubernetes and crictl can both be configured to use containerd's CRI implementation; ExecSync may be used when running probes or when executing processes via an "exec" facility. (by @dixudx in #364)

New Contributors

Thanks to all contributors!

Clusternet v0.10.0

01 Jun 08:20
6cc9077
Compare
Choose a tag to compare

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: 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!

Clusternet v0.9.1

14 Apr 09:08
996ba83
Compare
Choose a tag to compare

This is a patch version for v0.9.0.

Changelog