Project: Karmada (Orchestration & Management / Scheduling & Orchestration)
File: CHANGELOG-1.9.md

<!-- START doctoc generated TOC please keep comment here to allow auto update --> <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --> Table of Contents generated with - - - - - - - - - - - <!-- END doctoc generated TOC please keep comment here to allow auto update --> Download v1.9.1 in the . `karmada-controller-manager`: Fixed incorrect annotation markup when policy preemption occurs. (, @XiShanYongYe-Chang) `karmada-controller-manager`: Fix the problem that labels cannot be deleted via Karmada propagation. (, @whitewindmills) `karmada-controller-manager`: Fix the problem that work.karmada.io/permanent-id constantly changes with every update. (, @XiShanYongYe-Chang) `karmada-controller-manager`: Fixed the bug of mcs binding losing resourcebinding.karmada.io/permanent-id label. (, @XiShanYongYe-Chang) None. Download v1.9.0 in the . The PropgationPolicy now supports lazy mode that can delay the activation of modification. In contrast to the default behavior, modifications to the PropagationPolicy will not immediately trigger scheduling and redistribute the workload but will be delayed until changes happen on workloads themselves. It will be useful in using global PropagationPolicy to manage huge amounts of workloads. The ability also applies to ClusterPropagationPolicy and it is disabled by default for backward compatibility, users need to enable it explicitly by specifying the `activationPreference` in PropagationPolicy or ClusterPropagationPolicy. See for more details. (Feature contributors: @chaosi-zju) The applications running within a cluster may be disrupted by cluster failures, it's an effective practice to deploy applications across multiple clusters, by leveraging load balancers that can route business traffic simultaneously to these clusters. This release introduced an automated healing capability based on the health status of clusters. It relies on a third-party system to identify cluster failures and report through Conditions of a Cluster object, with the remedy capability, Karmada can take predefined actions according to the reported cluster failures. This can be used to prevent business traffic from the failure cluster, and thus can enhance availability by promptly responding to and mitigating the impact of cluster failures. (Feature contributor: @XiShanYongYe-Chang) The Karmada Scheduler Estimator introduced a plugin that takes resource quota into account during the estimation process. It is in alpha state and controlled by the feature gate `ResourceQuotaEstimate`, once this feature is enabled, the Karmada Scheduler Estimator can estimate the number of workload replicas based on resource quota. (Feature contributors: @wengyao04) Introduced `ActivationPreference` to the `PropagationPolicy` and `ClusterPropagationPolicy` to indicate how the referencing resource template will be propagated, in case of policy changes. (, @chaosi-zju) Introduced the `Remedy` CRD in the `remedy.karmada.io` group. (, @XiShanYongYe-Chang) Introduced `RemedyActions` to the `Cluster` API to represent the remedy actions. (, @XiShanYongYe-Chang) Introduced `TrafficBlockClusters` and `ServiceLocations` to the `MultiClusterIngress` API. (, @XiShanYongYe-Chang) Added additional printer columns `KIND` for `Work` CRD. (, @lonelyCZ) None `karmada-controller-manager`: fix incorrect `forType` in `cluster-resource-binding-status controller` from `ResouceBinding` to `ClusterResourceBinding`. (, @lxtywypc) `karmada-controller-manager`: Fix resource(work/resource in member clusters) conflicting between PP and

(, @jwcesign) `karmada-controller-manager`: Fixed the issue that always trying to re-create resources that should not be propagated. (, @jwcesign) `karmada-controller-manager`: Fixed the issue that the service of MCS can not be propagated to newly joined clusters. (, @jwcesign) `karmada-controller-manager`: Fix the bug that losing the chance to un-claim resource template in case of deleting ClusterPropagationPolicy. (, @whitewindmills) `karmada-controller-manager`: clean the finalizer of MCS if the ExposureType transforms from CrossCluster to LoadBalancer. (, @jwcesign) `karmada-controller-manager`: ignore reconcile the mcs(triggered by svc) if the mcs is not CrossCluster. (, @jwcesign) `karmada-controller-manager`: Fixed the issue that grace eviction is being blocked due to skipping InterpretHealth for resources without status. (, @chaosi-zju) `karmada-controller-manager`: Fixed a corner case that `applied` status on Work/ResourceBinding not updated in case of re-create failed. (, @zhzhuang-zju) `karmadactl`: Fixed return err in case of secret.spec. caBundle is nil. (, @CharlesQQ) `karmadactl`: Register cluster install karmada-agent should set leader-elect-resouce-namespace. (, @yanfeng1992) `karmada-search`: Add the logic of checking whether the resource API to be retrieved is installed in the cluster. (, @yanfeng1992) karmada-search: support accept content type `as=Table` in the proxy global resource function. (, @niuyueyang1996) `karmada-scheduler`: reschedule the replicas of the disappear clusters in PP/CPP. (, @jwcesign) `karmada-operator`: Fixed the issue that the component can not be redeployed due to service update is not allowed. (, @laihezhao) `Security`: Disabled unsafe lua packages and only safe packages are allowed when customing resource interpreter. (, @XiShanYongYe-Chang) `karmada-controller-manager`: Make `multiclusterservice` aware of Cluster changes. (, @Rains6) `karmada-controller-manager`: dispatch eps to the newly joined consumption clusters. (, @jwcesign) `karmada-controller-manager`: The control plane is responsible for deleting expired EPS of MultiClusterService. (, @jwcesign) `karmada-controller-manager: use Patch() instead of Update() when updating workload status because the error rate is too high.` (, @zach593) `karmada-operator`: Support install `karmada-search` with operator. (, @zhzhuang-zju) `karmada-operator`: Enable embedded object meta generated for karmada operator CRD. (, @zhzhuang-zju) `karmada-webhook`: prevent updates to mcs.types or when multiple types are involved. (, @jwcesign) `karmada-search`: Implement node/pod tableconvert, Other resource keep use defaultTableConvert. (, @niuyueyang1996) The base image `alpine` now has been promoted from `alpine:3.18.3` to `alpine:3.18.5`. (, @zhzhuang-zju) Kubernetes dependencies now have been bumped to v1.28.5. (, @RainbowMango) Bump golang.org/x/crypto to v.0.17.0 to fix CVE(CVE-2023-48795) concerns. (, @zhzhuang-zju) The base image `alpine` now has been promoted from `alpine:3.18.5` to `alpine:3.19.1` (, @Fish-pro) `Helm Chart`: Provided the ability to label resources. (, @a7i) `Helm chart`: Updated helm index for 1.8.0 release, and added the karmada-operator chart.(, @wrhight) `Helm Chart`: Make `karmada-metrics-adapter` installation optional with host mode. (, @yizhang-zen) `Helm Chart`: Make hook-delete-policy in helm job configurable. (, @chaosi-zju) `Instrumentation`: Event `SyncServiceFailed` will be emitted in case MCS fails to sync service to target clusters. (, @jwcesign) Thank you to everyone who contributed to this release! Users whose commits are in this release (alphabetically by username) @a7i @Affan-7 @chaosi-zju @CharlesQQ @chengleqi @dongjiang1989 @Fish-pro @helen-frank @hezhizhen @ipsum-0320 @jwcesign @laihezhao @Larry-shuo @liangyuanpeng @lonelyCZ @lxtywypc @niuyueyang1996 @RainbowMango @Rains6 @Vacant2333 @wengyao04 @whitewindmills @wm775825 @wrhight @XiShanYongYe-Chang @yanfeng1992 @yanggangtony @yizhang-zen @zach593 @zhzhuang-zju @zll600