Project: Karmada (Orchestration & Management / Scheduling & Orchestration)
File: CHANGELOG-1.8.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.8.3 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) None. Download v1.8.2 in the . `karmada-search`: Add the logic of checking whether the resource API to be retrieved is installed in the cluster. (, @XiShanYongYe-Chang) `karmada-search`: support accept content type `as=Table` in the proxy global resource function. (, @jwcesign) The base image `alpine` now has been promoted from `alpine:3.18.5` to `alpine:3.19.1`. (, @Fish-pro) Download v1.8.1 in the . `karmada-controller-manager`: fix incorrect `forType` in `cluster-resource-binding-status controller` from `ResouceBinding` to `ClusterResourceBinding`. (, @lxtywypc) `karmadactl`: Fixed return err in case of `secret.spec.caBundle` is nil. (, @XiShanYongYe-Chang) Karmada is now built with Go1.20.12. (, @RainbowMango) Download v1.8.0 in the . With the newly designed `MultiClusterService` API, users can easily share services across clusters and the services can be consumed directly with the domain name. See for more details. (Feature contributors: @bivas, @XiShanYongYe-Chang, @jwcesign, @Rains6) With the optimized static weight replica assignment algorithm, the replicas can be evenly scheduled to desired clusters, this guarantees that resource consumption in large-scale scenarios is more balanced. See for more details. (Feature contributors: @chaosi-zju) This release significantly enhanced the project's security including the removal of insecure component access methods(see ), ensuring all components deployed by installation tools have secure configurations by default(see ), and so on. (Feature contributor: @chaosi-zju, @yanfeng1992, @zhzhuang-zju) Any resources deployed through Karmada can be protected to avoid accidental deletion. The resource template deployed in Karmada may exist widely across multiple clusters, accidental deletion of resource template can lead to serious accidents, such as accidental deletion of namespaces may cause all resources in the namespace to be cascaded removed. To eliminate this concern, this feature provides protection policies for any resource type, protected resources are not allowed to be removed. See for more details. (Feature contributor: @Vacant2333, @XiShanYongYe-Chang) `MultiClusterService`: Introduced `ServiceProvisionClusters` and `ServiceConsumptionClusters` which will be used to specify service source and consumption place. (, @jwcesign) The following label on `resource template` now has been deprecated and will be removed from the following releases: `propagationpolicy.karmada.io/name` replaced by `propagationpolicy.karmada.io/permanent-id` `propagationpolicy.karmada.io/namespace` replaced by `propagationpolicy.karmada.io/permanent-id` `clusterpropagationpolicy.karmada.io/name` replaced by `clusterpropagationpolicy.karmada.io/permanent-id` `propagationpolicy.karmada.io/uid` replaced by `propagationpolicy.karmada.io/permanent-id` `clusterpropagationpolicy.karmada.io/uid` replaced by

These labels were used to refer to `PropagationPolicy` or `ClusterPropagationPolicy`, now they are replaced by the permanent label. `karmada-aggregated-apiserver`: Fixed the issue that can not proxy `exec` request to a proxy issue. (, @XiShanYongYe-Chang) `karmada-aggregated-apiserver`: Fix exec failure due to incorrupt TLS config. (, @jwcesign) `karmada-operator`: Fixed the issue that karmada-metrics-adapter was not removed after deleting a Karmada instance. (, @wawa0210) `karmada-operator`: Fixed can not load Karmada v1.7.0 crds issue. (, @liangyuanpeng) `karmada-operator`: Fix karmada instance aggregated service externalName and namespace error. (, @wawa0210) `karmada-operator`: Fixed an issue that components can not be deployed due to invalid manifests. (, @calvin0327) `karmada-operator`: resolve resource version conflict when updating service. (, @calvin0327) `karmada-webhook`: Fixed to validate spec.types of MultiClusterService API. (, @lonelyCZ) `karmada-controller-manager`: Fix panic when FederatedHPA's SelectPolicy is nil and FederatedHPA webhook is disabled. (, @jwcesign) `karmada-controller-manager`: Fixed a panic issue due to `index out of range` in resource model functionality. (, @halfrost) `karmada-controller-manager`: Fixed inconsistent generation issue between `metadata.generation` and `status.observedGeneration`. (, @jwcesign) `karmada-controller-manager`: only update `aggregated status` and `conditions` fields during `binding-status controller` updating status of binding. (, @lxtywypc) `karmada-controller-manager`: Fix the bug that losing the chance to unclaim resource template in case of PropagationPolicy/ClusterPropagationPolicy is removed. (, @whitewindmills) `karmada-search`: Fixed can not access ResourceRegistry issue due to misconfigured singular name. (, @zhzhuang-zju) `karmada-search`: Fixed the ResourceRegistry is incompatible in the upgrade scenario. (, @zhzhuang-zju) `karmada-search`: Fix lock race affects watch RestChan not close, causing client watch api to hang. (, @xigang) Introduced `trivy` for image security scanning. (, @zhzhuang-zju) bump golang.org/x/net to v0.17.0 to address CVE(CVE-2023-39325, CVE-2023-44487) concerns. (, @RainbowMango) Bump golang.org/grpc to v1.56.3 to address security concerns(GHSA-m425-mq94-257g). (, @zhzhuang-zju) `karmadactl`: The `karmada-apiserver` and `karmada-aggregated-apiserver` installed by the `init` command will take `--tls-min-version=VersionTLS13` by default. (, @yanfeng1992) `karmadactl`: The `karmada-search` and `karmada-metrics-adapter` installed by the `addon` command will take `--tls-min-version=VersionTLS13` by default. (, @yanfeng1992) The`karmada-apiserver`, `karmada-aggregated-apiserver`, `karmada-search`, and `karmada-metrics-adapter` installed by `karmada-operator` and `chart` will take `--tls-min-version=VersionTLS13` by default. (, @zhzhuang-zju) Fixed CVE-2016-2183 by setting Golang's secure cipher suites to ETCD's cipher suites. (, @zhzhuang-zju) `karmadactl`: The `init` now can setup production a production-ready HA control plane by using an external HA ETCD cluster. (, @tedli) `karmadactl`: Introduced `--cluster-zones` flag to `register` command to declare cluster zones during registering a cluster. (, @MingZhang-YBPS) `karmadactl`: Introduced `--proxy-server-address` flag to `register` command to declare proxy server during registering a cluster. (, @yanfeng1992) `karmadactl`: Introduced `--cluster` flag to the `top` command to specify the cluster name. (, @zhzhuang-zju) `karmadactl`: Introduced `--dependencies` flag to `promote` command, which will be used to promote dependencies. (, @zhy76) `karmada-controller-manager`: Now the `currentReplicas` and `desiredReplicas` in the status of HPA will be aggregated to the resource template by

(, @chaosi-zju) `karmada-controller-manager`: Introduced `hpaReplicasSyncer` controller which syncs workload's replicas from the member cluster to the control plane. (, @lxtywypc) `karmada-controller-manager`: Now the replicas of deployments can be automatically retained if it is scaling with an HPA. (, @chaosi-zju) `karmada-controller-manager`: Fix panic caused by concurrent global variable reads and writes. (, @jwcesign) `karmada-controller-manager`: Ignored `configmap/extension-apiserver-authentication` from propagation. (, @zhzhuang-zju) `karmada-controller-manager`: Pruned job labels `batch.kubernetes.io/controller-uid` and `batch.kubernetes.io/job-name` which were introduced by Kubernetes 1.27. (, @liangyuanpeng) `karmada-controller-manager`: Introduced permanent ID to PropagationPolicy, ClusterPropagationPolicy, ResourceBinding, ClusterResourceBinding, and Work. (, @jwcesign) `karmada-controller-manager`: Resource models now support any arbitrary resource type and are no longer limited to `cpu`, `memory`, `storage`, and `ephemeral-storage`. (, @chaosi-zju) `karmada-controller-manager`: Introduced `multiclusterservice` controller to sync MultiClusterService. (, @Rains6) `karmada-agent`: Introduced `--cluster-zones` flag to declare cluster zones during registering a cluster. (, @MingZhang-YBPS) `karmada-scheduler`: Introduced rate limiter options including: `--rate-limiter-base-delay`, `--rate-limiter-max-delay`, `--rate-limiter-qps`, and `--rate-limiter-bucket-size`, the default value not changed compared to the previous version. (, @yanfeng1992) `karmada-scheduler`: Fixed an issue that the scheduler does not ignore RB/CRB by scheduler name during enqueuing. (, @yanfeng1992) `karmada-scheduler`: Introduced leaderElection options including: `--leader-elect-lease-duration`, `--leader-elect-renew-deadline`, `--leader-elect-retry-period`, the default value not changed compared to the previous version. (, @yanfeng1992) `karmada-scheduler`: The replicas now can be evenly distributed across clusters in case of scheduling replicas based on static weight. (, @chaosi-zju) `karmada-aggregated-apiserver`: Add ca to check the validation of the member clusters' server certificate. (, @jwcesign) `karmada-aggregated-apiserver`: Supports cross-cluster unified query. (, @chaunceyjiang) `karmada-operator`: Support config required resources for each Karmada component. (, @wawa0210) `karmada-operator`: Attached kubeconfig file into status(.status.secretRef) after installation. (, @calvin0327) `karmada-operator`: The default installation version of Karmada now is v1.7. (, @MolisXYliu) `karmada-operator`: The default installed version of Karmada now depends on the operator version. (, @chaosi-zju) `karmada operator`: Now able to install karmada on a remote cluster. (, @calvin0327) Bump Golang version to Go1.20.10. (, @vikash485) Karmada(v1.8) is now built with Go1.20.11. (, @CoderTH) Kubernetes dependencies now has been bumped to v1.27.8. (, @RainbowMango) `helm-chart`: Fixed the issue that can not install `karmada-search`. (, @chaosi-zju) `Helm chart`: Added helm index for 1.7 release. (, @a7i) `Helm chart`: Added helm index for 1.7.1 release. (, @a7i) Fixed render issue of podDisruptionBudget in controller-manager. (, @a7i) Now able to install the component `karmada-metrics-adapter` with the chart. (, @jwcesign) `karmada-controller-manager`: Skip emitting the `ApplyPolicyFailed` event for the resource template which does not match any PropagationPolicy. (, @wu0407) Thank you to everyone who contributed to this release! Users whose commits are in this release (alphabetically by username) @22RC @a7i @calvin0327 @chaosi-zju @chaunceyjiang @CoderTH @codrAlxx @huangyutongs @halfrost @JadeFlute0127 @jwcesign @liangyuanpeng @lonelyCZ @lxtywypc @MingZhang-YBPS @MolisXYliu @RainbowMango @Rains6 @tedli @Vacant2333 @vikash485 @watermeionG @wawa0210 @whitewindmills @wrhight @wu0407 @xigang @XiShanYongYe-Chang @Yan-Daojiang @yanfeng1992 @zhy76 @zhzhuang-zju