Skip to content

karmada v1.6.0 release

Compare
Choose a tag to compare
@RainbowMango RainbowMango released this 31 May 09:55
· 58 commits to release-1.6 since this release
6eb79b3

What's New

FederatedHPA

Introduced FederatedHPA API to address the requirements that scale workloads across clusters.
FederatedHPA works similarly to HPA in a single cluster. Karmada aggregates metrics from multiple clusters through the karmada-metrics-adaptor component and then scales Pod replicas. The scaled replicas will be distributed to multiple clusters according to the declaration of PropagationPolicy or ClusterPropagationPolicy.

See FederatedHPA Proposal for more details.

(Feature contributor: @chaunceyjiang @jwcesign @Poor12)

Application Failover

In a multi-cluster scenario, the fault may come from the cluster as a whole, or it may be because the application cannot adapt to a certain cluster. Users are now able to declare strategies of application failover about when and how to migrate the unhealthy application in PropagationPolicy and ClusterPropagationPolicy. Karmada will automatically migrate unhealthy applications to other available clusters to improve their availability.

See application-level failover for more details.
(Feature contributor: @Poor12, @RainbowMango)

Karmada Operator

Karmada provides CLI tools and Helm Charts for installation and deployment in previous releases. In this release, the Karmada operator is provided as another declarative deployment method.

The Karmada operator is a method for installing, upgrading, and deleting Karmada instances. It builds upon the basic Karmada resource and controller concepts and provides convenience to centrally manage the entire lifecycle of Karmada instances in a global cluster. With the operator, users can extend Karmada with custom resources (CRs) to manage their instances not only in local clusters but also in remote clusters.

See quick start for more details.
(Feature contributor: @calvin0327, @lonelyCZ, @Poor12)

Third-party Resource Interpreter

Karmada's Resource Interpreter Framework is designed for interpreting resource structure. It consists of built-in and customized interpreters. Karmada has bundled the following open-sourced resources so that users can save the effort to customize them, including Argo Workflow, Flux CD, Kyverno, and OpenKruise. They have been verified by the community.

(Feature contributor: @yike12, @chaunceyjiang, @Poor12)

Other Notable Changes

API Changes

  • API change: The length of AffinityName in PropagationPolicy now is restricted to [1, 32], and must be a qualified name. (#3442, @chaunceyjiang)
  • API change: Introduced short name wk for resource Work. (#3468, @yanfeng1992)

Bug Fixes

  • karmada-webhook: Introduced validation to ensure the .spec.placement.spreadConstraints.maxGroups/minGroups in PropagationPolicy is declared with a reasonable value. (#3232, @whitewindmills )
  • karmada-webhook: Validated the predicate path for imageOverride. (#3397, @chaunceyjiang)
  • karmada-webhook: Added the missing federatedresourcequota validation config. (#3523, @chaunceyjiang)
  • karmada-controller-manager: Fixed the issue that RB/CRB labels were not merged when syncing new changes. (#3239, @lxtywypc)
  • karmada-controller-manager: Fixed the issue that control plane endpointslices cannot be deleted. (#3348, @wenchezhao)
  • karmada-controller-manager: Corrected the issue of adding duplicate eviction tasks. (#3456, @jwcesign)
  • karmada-controller-manager: Fixed a corner case that when there were tasks in the GracefulEvictionTasks queue, graceful-eviction-controller would not work after restarting karmada-controller-manager. (#3475, @chaunceyjiang)
  • karmada-controller-manager: Fixed the panic issue in the case that the grade number of resourceModel is less than the number of resources. (#3591, @sunbinnnnn)
  • karmadactl: Resolved the failure to view the options of karmadactl addons enable/disable. (#3298, @Poor12)
  • karmada-scheduler: Resolved unexpected re-scheduling due to mutating informer cache issue. (#3393, @whitewindmills)
  • karmada-scheduler: Fixed the issue of inconsistent Generation and SchedulerObservedGeneration. (#3455, @Poor12)
  • karmada-search: Fixed the paging list issue in karmada search proxy in large-scale member clusters. (#3402, @ikaven1024)
  • karmada-search: Fixed a panic in ResourceRegistry controller caused by receiving DeletedFinalStateUnknown object from the cache. (#3478, @xigang)
  • karmada-search: Fixed contecnt-type header issue in HTTP responses. (#3505, @callmeoldprince)

Security

None

Features & Enhancements

  • karmadactl: Introduced --image-pull-secrets flag to init command to specify the secret. (#3237, @my-git9)
  • karmadactl: Introduced --force flag to addons disable command. (#3266, @my-git9)
  • karmadactl: Introduced support for running init within a pod. (#3338, @lonelyCZ)
  • karmadactl: Introduced --host-cluster-domain flag to command init and addons to specify the host cluster domain. (#3292, @tedli)
  • karmadactl: Introduced --private-image-registry flag to addons command to specify image registry. (#3345, @my-git9)
  • karmadactl: Introduced --purge-namespace flag for deinit command to skip namespace deletion during uninstallation. (#3326, @my-git9)
  • karmadactl: Introduced --auto-create-policy and --policy-name flags for promote command to customize the policy during the promotion. (#3494, @LronDC)
  • karmada-aggregated-apiserver: Increased .metadata.generation once the desired state of the Cluster object is changed. (#3241, @XiShanYongYe-Chang)
  • karmada-controller-mamager: Provided support for Lua's built-in string function in ResourceInterpreterCustomization. (#3256, @chaunceyjiang)
  • karmada-controller-manager: The overriders commandsOverrider and argOverride in OverridePolicy now support Job resources. (#3414, @chaunceyjiang)
  • karmada-controller-manager: Allowed setting wildcards for --skippedPropagatingNamespaces flag. (#3373, @chaunceyjiang)
  • karmada-controller-manager/karmada-agent: Supported connection to resourceInterpretWebhook without DNS Service. (#2999, @lxtywypc)
  • karmada-controller-manager: The --skipped-propagating-namespaces flags now can take regular expressions to represent namespaces and defaults to kube-*. (#3433, @chaunceyjiang)
  • karmada-controller-manager: Introduced --concurrent-propagation-policy-syncs/--concurrent-cluster-propagation-policy-syncs flags to specify concurrent syncs for PropagationPolicy and ClusterPropagationPolicy. (#3511, @zach593)
  • karmada-search: Introduced unified-auth support for proxy. (#3279, @XiShanYongYe-Chang)
  • karmada-search: Returned the actual resource list from search API. (#3312, @tedli )
  • karmada-search: Fixed the problem that ResourceVersion base64 encrypted repeatedly when starting multiple informers to watch resources. (#3376, @niuyueyang1996)
  • karmada-search: Supported namespace filters in RR for search proxy. (#3527, @ikaven1024)
  • karmada-scheduler: Optimized the region selection algorithm. (#3259, @whitewindmills)
  • karmada-scheduler: Introduced clusterEviction plugin to skip the clusters that are in the process of eviction. (#3469)
  • karmada-webhook: Inroduced validation for MultiClusterIngress objects. (#3516, @XiShanYongYe-Chang)

Other

Dependencies

Helm Chart

  • chart: Introduced controllers config for karmada-controller-manager. (#3240, @Poor12)
  • Users can specify command-line parameters other than the default parameters in helm values ​​through controllerManager.extraCommandArgs. (#3268, @Poor12)
  • chart: Introduced support for customizing tolerances for internal etcd. (#3336, @chaunceyjiang)
  • chart: Fixed the issue of resource residue after deletion(helm uninstall). (#3473, @7sunarni)

Instrumentation

None

Contributors

Thank you to everyone who contributed to this release!

Users whose commits are in this release (alphabetically by username)