Skip to content

Latest commit

 

History

History
308 lines (254 loc) · 26 KB

CHANGELOG-1.11.md

File metadata and controls

308 lines (254 loc) · 26 KB

Table of Contents generated with DocToc

v1.11.1

Downloads for v1.11.1

Download v1.11.1 in the v1.11.1 release page.

Changelog since v1.11.0

Changes by Kind

Bug Fixes

  • karmada-operator: Fixed the issue where the manifests for the karmada-scheduler and karmada-descheduler components were not parsed correctly. (#5550 @zhzhuang-zju)
  • karmadactl:Fixed the issue where commands create, annotate, delete, edit, label, and patch cannot specify the namespace flag. (#5513 @zhzhuang-zju)
  • karmadactl: Fixed the issue that karmadactl addon failed to install karmada-scheduler-estimator due to unknown flag. (#5538 @chaosi-zju)

Others

  • The base image alpine now has been promoted from alpine:3.20.2 to alpine:3.20.3.
  • Karmada(release-1.11) now using Golang v1.22.7. (#5531 @RainbowMango)

v1.11.0

Downloads for v1.11.0

Download v1.11.0 in the v1.11.0 release page.

What's New

Cluster-Level Resource Propagation Pause and Resume

This release provides a capability that supports the pause and resume of resource propagation at the cluster granularity, bringing more possibilities to developing, operating, and maintaining the system.

In some scenarios, Karmada users would like to control the timing of the synchronization of the above resource changes themselves, such as:

  • As a developer, when the Karmada control plane competes with member clusters for control of resources, there is a situation where resources are repeatedly updated. Pausing the process of synchronizing the resource to the member clusters would be helpful to quickly locate the problem.

  • As a release manager, this feature allows for control over which clusters receive application updates, thus achieving a rolling update cluster by cluster.

With the cluster-level resource propagation pause and resume capabilities, users will be able to better control the propagation of resources.

For a detailed description of this feature, see the User Guide.

(Feature contributors: @a7i, @XiShanYongYe-Chang)

Karmadactl Offers More Advanced Features

In this release, the Karmada community is dedicated to enhancing Karmadactl capabilities and improving its functionalities from multiple perspectives.

  • Richer command set

Karmadactl has implemented new commands, such as create, patch, delete, label, annotate, edit, attach, top node,api-resources and explain, which allow users to perform more operations on resources in the Karmada control plane or member clusters.

  • Richer capabilities

Karmadactl introduces the --operation-scope flag to control the scope of command operations. With the new flag, the commands get, describe, exec, and explain can operate on resources in the Karmada control plane or member clusters.

  • More detailed command output information

The output of the karmadactl get cluster command now add the information of Zones, Region, Provider, API-Endpoint, and Proxy-URL.

With these capability enhancements, the operational experience of karmadactl could be improved. The new capabilities and more information about karmadactl can be obtained using karmadactl --help.

(Feature contributors: @hulizhe, @zhzhuang-zju, @whitewindmills, @a7i, @guozheng-shen, @grosser)

Consistent generation semantics for multi-cluster workloads

In this release, Karmada has introduced consistent generation semantics for workloads running on multiple clusters. This update provides a reliable reference for release systems, enhancing the precision of multi-cluster deployments. By standardizing the generation semantics, Karmada simplifies the release process and ensures that workload statuses are consistently tracked, making it easier to manage and monitor applications across multiple clusters.

The following resource adaptations have been completed.

  • GroupVersion: apps/v1 Kind: Deployment, DaemonSet, StatefulSet

  • GroupVersion: apps.kruise.io/v1alpha1 Kind: CloneSet, DaemonSet

  • GroupVersion: apps.kruise.io/v1beta1 Kind: StatefulSet

  • GroupVersion: helm.toolkit.fluxcd.io/v2beta1 Kind: HelmRelease

  • GroupVersion: kustomize.toolkit.fluxcd.io/v1 Kind: Kustomization

  • GroupVersion: source.toolkit.fluxcd.io/v1 Kind: GitRepository

  • GroupVersion: source.toolkit.fluxcd.io/v1beta2 Kind: Bucket, HelmChart, HelmRepository, OCIRepository

For a detailed description of this feature, see the issue.

(Feature contributors: @yike21, @veophi, @whitewindmills, @liangyuanpeng, @zhy76)

Karmada Operator Supports Custom CRD Download Strategy

CRD (Custom Resource Definition) resources are crucial prerequisite resources used by the Karmada operator for provisioning a new Karmada instance. This release Karmada-Operator Supports Custom CRD Download Strategy. With this, users can specify the download path for CRD resources and define more download strategies, providing richer and more configurable CRD download capabilities.

For a detailed description of this feature, see the Proposal: Custom CRD Download Strategy Support for Karmada Operator

(Feature contributors: @jabellard)

Other Notable Changes

API Changes

  • Introduced Suspension to the PropagationPolicy/ClusterPropagationPolicy API to provide a cluster-level resource propagation pause and resume capabilities. (#4838, @a7i)
  • Introduced Dispatching condition to the Work API to represent the dispatching status. (#5317, @a7i)
  • ResourceInterpreterCustomization: Added two additional printer columns, TARGET-API-VERSION and TARGET-KIND, to represent the target resource type, these columns will be displayed in the output of kubectl get. (#5077, @a7i)
  • PropagationPolicy/ClusterPropagationPolicy: Added two additional printer columns, Conflict-Resolution and Priority, to represent the conflict resolution strategy and priority, these columns will be displayed in the output of kubectl get. (#5077, @a7i)
  • Introduced CRDTarball to the Karmada API to supports custom CRD download strategy. (#5185 @jabellard)

Deprecation

  • The following labels that were deprecated(replaced by propagationpolicy.karmada.io/permanent-id and clusterpropagationpolicy.karmada.io/permanent-id) at release-1.10 now have been removed:
    • propagationpolicy.karmada.io/namespace
    • propagationpolicy.karmada.io/name
    • clusterpropagationpolicy.karmada.io/name
  • Specification of merics and health probe port parameters. Karmada introduced the --metrics-bind-address and --health-probe-bind-address flags and deprecated the following labels. This is a compatible change as the default values remain unchanged from previous versions. (contributors: @whitewindmills, @seanlaii, @liangyuanpeng)
    • The flags deprecated by karmada-agent are: --bind-address --secure-port
    • The flags deprecated by karmada-controller-manager are: --bind-address --secure-port
    • The flags deprecated by karmada-descheduler are: --bind-address --secure-port
    • The flags deprecated by karmada-scheduler are: --bind-address --secure-port
    • The flags deprecated by karmada-scheduler-estimator are: --bind-address --secure-port

Bug Fixes

  • karmada-scheduler-estimator: Fixed the Unschedulable result returned by plugins to be treated as an exception issue. (#5012, @mszacillo)
  • karmada-controller-manager: Fixed the issue that the cluster-status-controller overwrites the remedyActions field. (#5030, @XiShanYongYe-Chang)
  • karmada-controller-manager: Fixed the issue that the default resource interpreter doesn't accurately interpret the numbers of replicas. (#5095, @whitewindmills)
  • karmada-controller-manager: Fixed the issue of residual work in the MultiClusterService feature. (#5188, @XiShanYongYe-Chang)
  • karmada-controller-manager: Fixed the issue that status aggregation against the resource template might be missed due to slow cache sync. (#5318, @chaosi-zju)
  • karmada-controller-manager: Fixed the error of cluster status old condition update will overwrite the newest condition. (#5227, @XiShanYongYe-Chang)
  • karmada-controller-manager: work status sync when work dispatching is suspended. (#5403, @a7i)
  • karmada-aggregated-apiserver: User can append a "/" at the end when configuring the cluster's apiEndpoint. (#5432, @spiritNO1)
  • Correct ClusterResourceBinding scope in MutatingWebhookConfiguration. (#5252, @a7i)

Security

  • Security Enhancement: Introduced TLS certificate authentication mechanism to secure gRPC connections to karmada-scheduler-estimator. (#5040, @zhzhuang-zju)
    • The flags added to karmada-scheduler-estimator are: --grpc-auth-cert-file --grpc-auth-key-file --grpc-client-ca-file --insecure-skip-grpc-client-verify
    • The flags added to karmada-scheduler are: --scheduler-estimator-ca-file --scheduler-estimator-key-file --scheduler-estimator-cert-file --insecure-skip-estimator-verify
    • The flags added to karmada-descheduler are: --scheduler-estimator-ca-file --scheduler-estimator-key-file --scheduler-estimator-cert-file --insecure-skip-estimator-verify The added filed don't require any adoption during the process of upgrading from a previous version of Karmada, but gives an optional and recommended wait to secure the gRPC connection.
  • In this release, Karmada has invested significant effort in enhancing Karmada maturity based on Clomonitor check sets. So far, we have achieved a score of 99, and the last check (Signed releases) will be passed after 5 releases. This indicates that the Karmada community has made great strides in both security and maturity. (contributors: @zhzhuang-zju, @B1F030, @adiya7302, @Akash-Singh04, @RainbowMango)
  • Introduced SBOM to release assests to enhance transparency around Karmada components and dependencies, bolster the security posture of our project. The composition and usage of SBOM can refer to SBOM DOC. (#5110, @zhzhuang-zju)
  • Introduced SLSA provenance file to release assets, with which Karmada users verify the artifacts to prevent counterfeiting. (#5178, @zhzhuang-zju)

Features & Enhancements

  • karmada-controller-manager: Added work namespace/name annotation in the endpointslice resources to explain which work is associated. (#5042, @XiShanYongYe-Chang)
  • karmada-controller-manager: Mark .status.observedGeneration of Deployment with .metadata.generation only when all members' statuses are algined with its resource template generation. (#4867, @veophi)
  • karmada-controller-manager: Mark .status.observedGeneration of Kustomization with .metadata.generation only when all members' statuses are algined with its resource template generation. (#5084, @yike21)
  • karmada-controller-manager: Mark .status.observedGeneration of StatefulSet with .metadata.generation only when all members' statuses are algined with its resource template generation. (#5094, @zhy76)
  • karmada-controller-manager: Mark .status.observedGeneration of GitRepository with .metadata.generation only when all members' statuses are algined with its resource template generation. (#5086, @yike21)
  • karmada-controller-manager: Mark .status.observedGeneration of CloneSet with .metadata.generation only when all members' statuses are algined with its resource template generation. (#5057, @veophi)
  • karmada-controller-manager: Mark .status.observedGeneration of DaemonSet with .metadata.generation only when all members' statuses are algined with its resource template generation. (#5165, @whitewindmills)
  • karmada-controller-manager: Mark .status.observedGeneration of daemonsets.apps.kruise.io with .metadata.generation only when all members' statuses are algined with its resource template generation. (#5167, @whitewindmills)
  • karmada-controller-manager: Mark .status.observedGeneration of StatefulSet with .metadata.generation only when all members' statuses are algined with its resource template generation. (#5204, @liangyuanpeng)
  • karmada-controller-manager: Mark .status.observedGeneration of helmrepositories.source.toolkit.fluxcd.io with .metadata.generation only when all members' statuses are algined with its resource template generation. (#5196, @yike21)
  • karmada-controller-manager: Mark .status.observedGeneration of buckets.source.toolkit.fluxcd.io with .metadata.generation only when all members' statuses are algined with its resource template generation. (#5193, @yike21)
  • karmada-controller-manager: Mark .status.observedGeneration of ocirepositories.source.toolkit.fluxcd.io with .metadata.generation only when all members' statuses are algined with its resource template generation. (#5197, @yike21)
  • karmada-controller-manager: Mark .status.observedGeneration of helmcharts.source.toolkit.fluxcd.io with .metadata.generation only when all members' statuses are algined with its resource template generation. (#5194, @yike21)
  • karmada-controller-manager: Mark .status.observedGeneration of helmreleases.helm.toolkit.fluxcd.io with .metadata.generation only when all members' statuses are algined with its resource template generation. (#5311, @yike21)
  • karmada-controller-manager: Add health probe argument health-probe-bind-address, and deprecate --bind-address and --secure-port flag. (#5290, @seanlaii)
  • karmadactl: Renamed join command options from --host-as-* to --karmada-as-*. (#5099, @grosser)
  • karmadactl: Expose the metrics port for PodMonitor. (#5169, @whitewindmills)
  • karmadactl: Add the reserved label karmada.io/system to resources created by the join command. (#4620, @a7i)
  • karmadactl: Introduced --ca-cert-file and --ca-key-file flags to init command to specify the root CA which will be used to issue the certificate for components. (#5127, @guozheng-shen)
  • karmadactl: The get command can show Karmada resources now. (#5254, @hulizhe)
  • karmadactl: The describe command can show details of Karmada resources now. (#5392, @hulizhe)
  • karmadactl: The exec command can execute a command in a Karmada container now. (#5398, @hulizhe)
  • karmadactl: add new command top node to display resource (CPU/memory) usage of nodes in member clusters. (#4224, @zhzhuang-zju)
  • karmadactl: add new command create to create a resource from a file or from stdin in Karmada control plane. (#5399, @hulizhe)
  • karmadactl: add new command attach to attach to a running container in Karmada control plane or a member cluster. (#5395, @hulizhe)
  • karmadactl: add new command api-resources to print the supported API resources on the server in Karmada control plane or a member cluster. (#5394, @hulizhe)
  • karmadactl: add new command api-versions to print the supported API versions on the server in Karmada control plane or a member cluster. (#5394, @hulizhe)
  • karmadactl: add new command karmadactl explain to describe fields and structure of various resources in Karmada control plane or a member cluster. (#5393, @hulizhe)
  • karmadactl: add new command karmadactl delete to delete resources. (#5431, @zhzhuang-zju)
  • karmadactl: add new command karmadactl edit to edit a resource on the server. (#5434, @zhzhuang-zju)
  • karmadactl: add new command label to update the labels on a resource. (#5453, @zhzhuang-zju)
  • karmadactl: add new command annotate to update the annotations on a resource. (#5458, @zhzhuang-zju)
  • karmadactl: add new command patch to update fields of a resource. (#5463, @zhzhuang-zju)
  • karmada-operator: Introduced --metrics-bind-address and --health-probe-bind-address flags, it's a compatible change as the default value does not change from previous versions. (#5174, @whitewindmills)
  • karmada-operator: Introduced CRD download strategy that allows downloading CRD from a private source. (#5185, @jabellard)
  • karmada-scheduler: GroupClusters will sort clusters by score and availableReplica count. (#5144, @mszacillo)
  • karmada-scheduler: Add health probe argument health-probe-bind-address and metrics argument metrics-bind-address. Deprecate --bind-address and --secure-port flags. (#5437, @liangyuanpeng)
  • karmada-webhook: changed "app" label from mutating-config/validating-config to karmada-webhook to make them identifiyable. (#5246, @grosser)
  • karmada-webhook: Remove the limit of 63 name lengths with PropagationPolicy/ClusterPropagationPolicy resource. (#5029, @XiShanYongYe-Chang)
  • karmada-agent: Add health probe argument health-probe-bind-address, deprecate --bind-address and --secure-port flag. (#5223, @whitewindmills)
  • karmada-scheduler-estimator: Add health probe argument health-probe-bind-address and metrics argument metrics-bind-address. Deprecate --bind-address and --secure-port flags. (#5273, @seanlaii)
  • karmada-descheduler: Add health probe argument health-probe-bind-address and metrics argument metrics-bind-address. Deprecate --bind-address and --secure-port flags. (#5435, @whitewindmills)
  • Expose the metrics port for the karmada-controller-manager, scheduler、agent、karmada-webhook、descheduler and scheduler-estimator in local-up-karmada. (#5428, @dzcvxe)
  • Expose the metrics port for the karmada-controller-manager, scheduler、karmada-webhook and descheduler in operator installation. (#5465, @chaosi-zju)
  • Expose the default port for the karmada-controller-manager, scheduler and agent when creating a PodMonitor. ([#5139]karmada-io#5139, wangxf1987)
  • Added generic handling of priorityclass and namespace for default flinkdeployment interpreter. (#5215, @mszacillo)
  • add karmada.io/system=true label to newly created karmada-es-* namespaces. (#5243, @grosser)
  • add karmada.io/system=true label to internally created karmada cluster-roles and cluster-role-bindings. (#5281, @grosser)
  • cluster-level resource propagation pause and resume capabilities. (#4838, @a7i)
  • Adding FlinkDeployment v1beta1 CRD to supported third party resource customizatons. (#5023, @mszacillo)

Other

Dependencies

  • Karmada is now built with Go1.22.4. (#5015, @grosser)
  • karmada-apiserver and kube-controller-manager is using v1.28.9 by default. (#5065, @liangyuanpeng)
  • The base image alpine now has been promoted from alpine:3.20.0 to alpine:3.20.1.
  • karmada-apiserver and kube-controller-manager is using v1.29.6 by default. (#5209, @liangyuanpeng)
  • The base image alpine now has been promoted from alpine:3.20.1 to alpine:3.20.2.
  • Karmada is now built with Go1.22.6. (#5335, @RainbowMango)

Helm Charts

  • helm install karmada components in order to reduce components crashing during the installation. (#5010 @chaosi-zju)
  • set karmada-metrics-adapter image pull policy to karmadaImagePullPolicy, in order to keep the same as other components. (#5113, @chaosi-zju)
  • expose metrics port for helm installation. (#5168, @whitewindmills)
  • ignore the static-resource Pod in the post-install check. (#5369, @iawia002)
  • Support custom cluster service CIDR in the helm chart. (#5379, @iawia002)
  • Fix the creation condition of metrics-adapter related APIService. (#5378, @iawia002)
  • fix controller can't restart in helm for dependent secret not found. (#5305, @chaosi-zju)
  • automatically clean up the static-resource Job after it completes. (#5442, @iawia002)

Instrumentation

  • karmada-controller-manager: add metrics recreate_resource_to_cluster and update_resource_to_cluster for recreate/update resource event when sync work status. (#5247, @chaosi-zju)

Contributors

Thank you to everyone who contributed to this release!

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

  • @08AHAD
  • @a7i
  • @aditya7302
  • @Affan-7
  • @Akash-Singh04
  • @anujagrawal699
  • @B1F030
  • @chaosi-zju
  • @dzcvxe
  • @grosser
  • @guozheng-shen
  • @hulizhe
  • @iawia002
  • @mohamedawnallah
  • @mszacillo
  • @NishantBansal2003
  • @jabellard
  • @khanhtc1202
  • @liangyuanpeng
  • @qinguoyi
  • @RainbowMango
  • @renxiangyu_yewu
  • @seanlaii
  • @spiritNO1
  • @tiansuo114
  • @varshith257
  • @veophi
  • @wangxf1987
  • @whitewindmills
  • @xiaoloongfang
  • @XiShanYongYe-Chang
  • @xovoxy
  • @Yash Pandey
  • @yike21
  • @zhy76
  • @zhzhuang-zju