Clusternet Versions Save

[CNCF Sandbox Project] Managing your Kubernetes clusters (including public, private, edge, etc.) as easily as visiting the Internet

v0.9.0

2 years ago

This version introduced static diving scheduling which would help splitting workloads into multiple clusters. For example, if you want to deploy a Deployment with a total of 6 replicas to 2 clusters ("cluster-01" with weight 1, "cluster-02" with weight 2), then "cluster-01" will run such a Deployment with 2 replicas, "cluster-02" runs the other 4 replicas. Please learn more from this tutorial. Several new fields spec.overrides and spec.releaseName were introduced for HelmRelease. Multiple bugs were fixed as well, such as crd storage race condition, in-deleting Description rolling back, etc.

Please use patch version v0.9.1 instead!!!

Changes Since v0.8.0

Full Changelog: https://github.com/clusternet/clusternet/compare/v0.8.0...v0.9.0

What's Changed

New Features & Enhancements

Bug Fixes

Misc

v0.8.0

2 years ago

This version mainly introduced OCI-based Helm charts. Clusternet is the first project that supports this feature in multiple cluster management. Also unexpected operations (like deleting, updating) that occurred solely inside a child cluster will be rolled back automatically unless those were made explicitly from parent cluster, which kept applications running more stable in child clusters. Kubernetes v1.23 was fully supported as well.

Changes Since v0.7.0

Full Changelog: https://github.com/clusternet/clusternet/compare/v0.7.0...v0.8.0

What's Changed

New Features & Enhancements

  • Fully support OCI-based Helm charts (by @dixudx in #247,#255, #224 and @rootdeep in #257). Clusternet is the first project that support this feature in multi-cluster management.
  • Golang version was bumped to 1.17 (by @dixudx in #247,#241)
  • Default timeout 5m0s was applied to helm deployer, which stayed the same with Helm command line (by @dixudx in #225)
  • Alternative label app.kubernetes.io/component was added when finding kube-apiserver pod (by @fangyuchen86 in #227)
  • Collecting and reporting Nvidia GPU statics in child clusters (by @lmxia in #235)
  • Unexpected operations (like deleting, updating) that occurred solely inside a child cluster will be rolled back automatically unless those were made explicitly from parent cluster (by @lmxia in #242). A new feature gate named Recovery was added as well (by @dixudx in #226).

Bug Fixes

  • Fixing scheduler issue when cluster affinity rules matched no clusters (by @DanielXLee in #239)
  • Fixing nonresource 403 errors (by @dixudx in #248)

Security Enhancements

  • Upgrading dependency github.com/containerd/containerd to 1.5.10 to mitigate CVE-2022-23648 (by @dixudx in #258)

Misc

  • Clusternet got a logo 🎉. Thank our designer Zuowei Li.
  • Kubernetes v1.23 was supported as well.

New Contributors

  • @fangyuchen86 made their first contribution in #227
  • @rootdeep made their first contribution in #257

Thanks to all contributors in this release.

v0.7.0

2 years ago

The 7th release of Clusternet ! 🦌🦌🦌🎅🎄🎄🎄

Merry Christmas!

This version mainly focuses on supporting scheduler framework, fully supporting k3s and improving the stability of deploying applications to child clusters.

Changes Since v0.6.0

Full Changelog: https://github.com/clusternet/clusternet/compare/v0.6.0...v0.7.0

What's Changed

New Features & Enhancements

  • Adding Clusternet roadmap (by @dixudx in #191)
  • Supporting using helm charts in private repository (by @silenceper in #193)
  • Adding a new component clusternet-scheduler, which is base on scheduler framework (by @dixudx in #204, #217, #221)
  • Taints and tolerations based scheduling are supported as well (by @Garrybest in #203, #210)
  • Supporting running clusternet-hub on k3s (by @dixudx in #209)
  • Configurable clusternet built namespaces, such as clusternet-system, clusternet-reserved (by @dixudx in #205, #211, #216, #219)
  • Rolling back resource changes in child clusters (by @lmxia in #194)
  • kubectl-clusternet plugin v0.5.0 introduced new flags --cluster-id and --child-kubeconfig. This made it easier to visit child clusters through parent cluster using CLI, instead of constructing a complicated and dedicated kubeconfig (by @dixudx in #214)

Bug Fixes

  • Mitigating Manifest name with hyphens (by @dixudx in #83)
  • Fixing cluster label parsing during registration (by @silenceper in #197)
  • Reconciling Description when HelmChart got changed (by @DanielXLee in #202)
  • Only register resources with the highest priority (by @dixudx in #213)

Security Enhancements

  • Fixing dependency vulnerability github.com/opencontainers/image-spec (GHSA-77vh-xpmg-72qh) and github.com/containerd/containerd (GHSA-5j5w-g665-5m35) (by @dixudx in #188)
  • Upgrading dependency github.com/opencontainers/runc to v1.0.3 to mitigate vulnerability CVE-2021-43784 (Overflow in netlink bytemsg length field allows attacker to override netlink-based container configuration) (by @dixudx in #198)

Deprecated APIs

  • Removing deprecated field ManagedCluster.Status.ParentAPIServerURL (by @dixudx in #165)

New Contributors

  • @lmxia made their first contribution in #194
  • @Garrybest made their first contribution in #203, #210

v0.6.0

2 years ago

🥳🥳🥳 The sixth release of Clusternet comes!

This version mainly focuses on supporting Kubernetes version skew and improving the stability of deploying applications to child clusters.

Changes Since v0.5.0

Full Changelog: https://github.com/clusternet/clusternet/compare/v0.5.0...v0.6.0

What's Changed

New Features & Enhancements

  • Codecov was integrated into Clusternet CI. (by @ShirleyDing in #157, by @dixudx in #171)
  • Serviceaccount tokens can be used for cluster registration as well. (by @dixudx in #158)
  • Labels can be customized on cluster registration. (by @silenceper in #179)
  • With #183 (by @dixudx ), visiting child clusters would be not affected anymore, when the kube-apiserver running in parent cluster sets flag --anonymous-auth to false explicitly.
  • Kubernetes compatibility (by @dixudx in #173, #182) had been well improved. The versions of Kubernetes clusters could range from v1.18.x to v1.22.x.
  • Examples on curl with tls certificates was added. (by @dixudx in #169)
  • When a resource, like HelmChart, was not referred as a feed by Subscription/Base any more, redundant uid labels should be pruned. (by @dixudx in #92)

Bug Fixes

  • clusternet-hub used in-cluster url instead of deprecated ParentAPIServerURL when accessing child clusters. (by @dixudx in #164)
  • Group metrics.k8s.io should be ignored to avoid same resource names with corev1. (by @dixudx in #166)
  • Module clusternet/apis import path restriction was removed. (by @dixudx in #162)
  • Resource deletions would be not blocked when clusters got lost. (by @dixudx in #177)
  • Description would be reconciled when applying failed. (@DanielXLee in #181)
  • Dry-run results would be trimmed before storing (by @dixudx in #170, #178)

New Contributors

  • @silenceper made their first contribution in #179

v0.5.0

2 years ago

🥳🥳🥳 Clusternet Fifth Release !

Clusternet (Cluster Internet) is an open source add-on that helps you manage thousands of millions of Kubernetes clusters as easily as visiting the Internet. No matter the clusters are running on public cloud, private cloud, hybrid cloud, or at the edge, Clusternet lets you manage/visit them all as if they were running locally. This also help eliminate the need to juggle different management tools for each cluster.

Clusternet can also help deploy and coordinate applications to multiple clusters from a single set of APIs in a hosting cluster.

Changes Since v0.4.0

Full Changelog: https://github.com/clusternet/clusternet/compare/v0.4.0...v0.5.0

New Features

  • Implements new ApplyNow that will apply overrides for matched objects immediately, including those are already populated (by @dixudx in #112)
  • Shrinks overrides when deleting Localization or Globalization, which means current superposed overrides will be re-deduced (by @dixudx in #151)
  • Treats scale as a standalone subresource (by @dixudx in #145, #152)
  • When a CRD is created or updated, shadow apis and scheme will be updated accordingly (by @dixudx in #102)
  • Adds cluster lifecycle controller to determine if a cluster gets lost (by @qmhu #100)
  • Supports continue value when listing in chunks (by @dixudx in #131)

Bug Fixes

  • Prunes feeds in Description that are no longer subscribed (by @dixudx in #143)
  • Enforces syncing HelmRelease when overrides get changed (by @dixudx in #150, #153)
  • Gets child cluster IP range from command or args (by @chenkaiyue in #136)
  • Applies updated resources back to child clusters (by @dixudx in #132 )

Security Enhancements

  • Remediates security vulnerabilities in dependencies, such as CVE-2021-41103, CVE-2021-30465, CVE-2020-26160 (by @dixudx in #144, #142, #141)

New Contributors

v0.4.0

2 years ago

🎉 🎉 🎉 Clusternet Fourth Release !

Clusternet (Cluster Internet) is an open source add-on that helps you manage thousands of millions of Kubernetes clusters as easily as visiting the Internet. No matter the clusters are running on public cloud, private cloud, hybrid cloud, or at the edge, Clusternet lets you manage/visit them all as if they were running locally. This also help eliminate the need to juggle different management tools for each cluster.

Clusternet can also help deploy and coordinate applications to multiple clusters from a single set of APIs in a hosting cluster.

Changes Since v0.3.0

New Features

  • provides a two-stage priority based override strategy. Localization and Globalization will define the overrides with priority (ranging from 0 to 1000, default to 500), where lower numbers are considered lower priority. Localization is namespace-scoped resource, while Globalization is cluster-scoped. (by @dixudx in #58,#81 and @qmhu in #61)
    • NOTE: Currently only ApplyLater overrideType is supported, which means these overrides will be applied for all matched objects on next updates (including updates on Subscription, Manifest, HelmChart, etc) or newly created objects.
  • reports cluster/service CIDR and cluster node count in ManagedCluster status (by @DanielXLee in #68)
  • introduces new feature gate FeedInUseProtection to automatically inject finalizer apps.clusternet.io/feed-protection on new objects and removes corresponding feeds from Subscriptions when deleting objects that do not have finalizer apps.clusternet.io/feed-protection (by @dixudx in #77)
  • reconciles and applies resources on agent side - pull mode (by @dixudx in #96)
  • allowing customizing ClusterType on cluster regsitration (by @dixudx in #94)

Bug Fixes

  • fixes resources listing over all namespaces and filtering over label selectors (by @dixudx in #65, #72)
  • When a new cluster is registered, or clusters are re-matched with updated labels, these clusters should be dispatched with all matching Subscriptions. (by @dixudx in #90)

Downloading Clusternet v0.4.0

The common platform binaries are here:

OS Arch Checksum
Linux i386 887b091e43ec342fc773ea24b86ac431929269e2390d645872cacb4b5c30f921
Linux amd64 f4984b2b900d296423aeff4fcbcc41d6fb693c872a9e43c36a82dfea77134cb9
Linux arm 6bdc655e384de105fc7ac9a66aa9a2c39795b3daae3a8c7f48f8cb6239d71326
Linux arm64 9945b8229c9953db50505a21b8b97c312b919180f164989415d72de0e56bc14a
Linux ppc64le fc070aba3bc5a6bfaf907ea1182cb65465a709a823f34b1042e7914a8212bbab
Linux s390x 2363e9012cdaebf0db478f0a93fb1dd94a8ac44d94ed96614ec1568aa3066a43

v0.3.0

2 years ago

🎉 🎉 🎉 Third Release! v0.3.0 !

Clusternet (Cluster Internet) is an open source add-on that helps you manage thousands of millions of Kubernetes clusters as easily as visiting the Internet. No matter the clusters are running on public cloud, private cloud, hybrid cloud, or at the edge, Clusternet lets you manage/visit them all as if they were running locally. This also help eliminate the need to juggle different management tools for each cluster.

Clusternet can also help deploy and coordinate applications to multiple clusters from a single set of APIs in a hosting cluster.

Changes Since v0.2.0

  • use socket transport only when ManagedCluster.Status.UseSocket is true (#30)
  • introduce new kind Localization, Globalization, and Base to apps/v1alpha1 (#23)
  • introduce new Group shadow/v1alpha1, and use feature gate ShadowAPI to enable serving apiserver for shadow apis / GVKs, such as apps/v1, batch/v1, extensions/v1beta1 and etc (#35, #39, #41, #45)
  • deploy objects, such as Deployments, StatefulSet, Namespace, CRDs, etc, with generic deployer (#49, #48, #46)
  • add client-go wrapper and example codes (#43)
  • kubectl plugin kubectl-clusternet

Downloading Clusternet v0.3.0

The common platform binaries are here:

OS Arch Checksum
MacOS amd64 706ca01fe677e0c1ec879f6547e3d54e82994fd6897e20157e575026ca20b762
MacOS arm64 50b0f20a7945c3bdfed9dd12ab39eff83e9f4bb00a5eeb1e61896407efae8e6e
Linux i386 77d1974b832f9e057cdd0ae233b41c8b9d60ca8c8a7dc62de950427f53fa9759
Linux amd64 eae53a9aaf2ac14fd4690fbac818f40df7765509abb3fa593dcd01328e18cf2b
Linux arm d5617c160dd3b2c319edb5b5581a0ac385ea905a36f78a0bbb7c86467812d4dc
Linux arm64 151644b5393a7cc05e63798b0bdca1843ff4f0c18f0396b68a8b2802505d76bd
Linux ppc64le 6ecf3aff2c0e85b92872be0e8da1e3271388c0989f335abb866bb78bbf5221ca
Linux s390x b656840889b6994f06188e997bc7fd99914c7c7d74249c3201663470b3447cd0

v0.2.0

2 years ago

:tada: :tada: :tada:Second Release! v0.2.0 !

Clusternet (Cluster Internet) is an open source add-on that helps you manage thousands of millions of Kubernetes clusters as easily as visiting the Internet. No matter the clusters are running on public cloud, private cloud, hybrid cloud, or at the edge, Clusternet lets you manage/visit them all as if they were running locally. This also help eliminate the need to juggle different management tools for each cluster.

Clusternet can also help deploy and coordinate applications to multiple clusters from a single set of APIs in a hosting cluster.

Changes Since v0.1.0

  • Bumps default namespace from edge-system to clusternet-system (#4)
  • Allows using a short-path URL handler for direct child cluster visiting (#3, #18)
  • Adds subresource sockets/proxy (#18)
  • Supports visiting child clusters with RBAC, including serviceaccount tokens, tls certificates (#19)
  • Introduces new api group apps/v1alpha1, which includes HelmChart, Subscription, Description, HelmRelease (#13)
  • Add a new feature gate Deployer to allow clusternet-hub working as a deployer to distribute kinds of resources to a group of clusters (#13)
  • Supports deploying helm charts to multiple clusters (#13)
  • Introduce cluster sync mode, Push, Pull, and Dual (#12)
  • Add a new feature gate AppPusher to fasten seat belt of child clusters (#11). With regard to security of child clusters, deploying applications directly from parent cluster should be limited. A more configurable way is provided here.

Downloading Clusternet v0.2.0

The common platform binaries are here:

OS Arch Checksum
MacOS amd64 633c8b52f4dd67a7a3c4f2be0ecbd4665d3f8c455f76e8a6038ecb6b6e24069b
MacOS arm64 08df33a46bb593c3a5bcf2e23eb2258ed75c8b2167a94666185d4566c05a2b48
Linux i386 f3c78a884b187c0f49dc7f5a04b378b305ef8b04ad9785ee3fac3711d1bee878
Linux amd64 03979f5653b9fc89a7aa2a157de653d2121922d8ade4f9df9be2779a53d2db51
Linux arm 689423d9e97babcba31d9b609dd46b456c41a9e98a086647583ea8e64f149c55
Linux arm64 58537016a150b742e3270bcf3bedc93520caae87456a541eecbbca978b9c402c
Linux ppc64le 4421ec3a3cb2dd4e7c6e3432ab0280ec87357f7170ab4bd671ad30c4387feb72
Linux s390x a8fabd9dd424f337714f27140e76309acbaa8c39107071a52536de57271d4dc8

v0.1.0

2 years ago

âš¡ âš¡ âš¡ First Release!

This is the first release of Clusternet, which is aimed to help manage multiple Kubernetes clusters (including public, private, edge, etc) as easily as visiting the Internet.


What's In

Clusternet consists of two components, clusternet-agent and clusternet-hub.

And Clusternet is multiple platforms supported, including linux/amd64, linux/arm64, linux/s390x, etc.

clusternet-agent: runing at each child Kubernetes cluster

  • Automatically registers current cluster to a parent cluster as a child cluster
  • Reports heartbeats of current cluster, including Kubernetes version, running platform, healthz/readyz/livez status, etc
  • Sets up a websocket connection with clusternet-hub in the parent cluster to provide full-duplex communication channels over a single TCP connection

clusternet-hub: running at the parent Kubernetes cluster

  • Runs as an Aggregated Apiserver (AA) that maintains multiple active WebSocket connections between child clusters
  • Approves registration requests from child clusters
  • Creates exclusive set of resources for each child cluster, such as namespaces, service accounts and RBAC rules
  • Proxies all Kubernstes-styled APIs to targeted child cluster
  • Allows to manage all child clusters (running in private cloud, at the edge, etc) with KubeConfig

Downloading Clusternet v0.1.0

The common platform binaries are here:

OS Arch Checksum
MacOS amd64 1594051bf314760f4e24e1aa5724ade82caff19d36be36b9ccfe071e10b29a87
MacOS arm64 6eb331b649e4e45171038f28227d217d40a9f5244067b9b170796b970139c476
Linux i386 06ee6a40227bfe6b560078da16d10f89af910fba5aaad3998c2025782412bcef
Linux amd64 45add7008e56e836e27ef8caa66f24c881bf79714fd57238caec9b1490e17d49
Linux arm 7e7f327ab58cfdc180804d136af76dd951bbe8b98741ad687ff9099092e16405
Linux arm64 2e4708f52e8750294b985e775820cf28b1541512ca80f41aa1900d8ff5851474
Linux ppc64le 610e0301b7eebaa3bc41e842e898fc5ba21c02c823879bc3d4c3d107e71b0a90
Linux s390x c46ea0c3601ed1de260a5cbcc2b6b0526964c8c862d19398b36a8f0fd24b72df