Skip to content

Commit

Permalink
publish release note for v1.12.0
Browse files Browse the repository at this point in the history
Signed-off-by: zhzhuang-zju <m17799853869@163.com>
  • Loading branch information
zhzhuang-zju committed Nov 29, 2024
1 parent 1b8d09c commit db64a7e
Showing 1 changed file with 153 additions and 0 deletions.
153 changes: 153 additions & 0 deletions docs/CHANGELOG/CHANGELOG-1.12.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,159 @@

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

# v1.12.0
## Downloads for v1.12.0

Download v1.12.0 in the [v1.12.0 release page](https://github.com/karmada-io/karmada/releases/tag/v1.12.0).

## What's New

## Other Notable Changes
### API Changes
- Introduced `SecretRef` to `Karmada` API as part of the configuration for connecting to an external etcd cluster can be used to reference a secret that contains credentials for connecting to an external etcd cluster. ([#5699](https://github.com/karmada-io/karmada/pull/5699), @jabellard)
- Introduced `extraVolumes` and `extraVolumemounts` to the `Karmada` API to optionally specify extra volumes and volume mounts for the Karmada API server component. ([#5509](https://github.com/karmada-io/karmada/pull/5509), @jabellard)
- Introduced `ApiServerService` field to `Karmada` API as part of the Karmada instance status can be used to reference the API Server service for that instance. This is useful for scenarios where higher level operators need to discover the API Server service of a Karmada instance for tasks like setting up ingress traffic. ([#5775](https://github.com/karmada-io/karmada/pull/5775), @jabellard)
- Introduced `CustomCertificate.ApiServerCACert` field to `Karmada` API as part of the `Karmada` spec to specify the reference to a secret that contains a custom CA certificate for the Karmada API Server. ([#5842](https://github.com/karmada-io/karmada/pull/5842), @jabellard)
- API change: The ServiceType of Karmada API server now has been restrict to `ClusterIP`, `NodePort` and `LoadBalancer`. ([#5769](https://github.com/karmada-io/karmada/pull/5581), @RainbowMango)
- Introduced a new condition `CompleteAPIEnablements` to represent api collection status of clusters. ([#5400](https://github.com/karmada-io/karmada/pull/5400), @whitewindmills)
- Introduced `PreserveResourcesOnDeletion` field to both PropagationPolicy and ClusterPropagationPolicy API, which provides the ability to roll back migration safely. ([#5575](https://github.com/karmada-io/karmada/pull/5575), @RainbowMango)
- API Change: Introduced `FieldOverrider` to both OverridePolicy and ClusterOverridePolicy, which provides the ability to override structured data nested in manifest like ConfigMap or Secret. ([#5581](https://github.com/karmada-io/karmada/pull/5581), @RainbowMango)
- Introduced `PurgeMode` to GracefulEvictionTask in ResourceBinding. ([#5816](https://github.com/karmada-io/karmada/pull/5816), @mszacillo)
- Introduced `StatePreservation` to `PropagationPolicy`, which will be used to preserve status in case of application failover. ([#5885](https://github.com/karmada-io/karmada/pull/5885), @RainbowMango)

### Deprecation
- `ExternalEtcd.CAData`, `ExternalEtcd.CertData` and `ExternalEtcd.KeyData` in `Karmada` API are deprecated and will be removed in a future version. Use SecretRef for providing client connection credentials. ([#5699](https://github.com/karmada-io/karmada/pull/5699), @jabellard)
- The following flags have been deprecated from release `v1.11.0` and now have been removed:
* `karmada-agent`: ([#5548](https://github.com/karmada-io/karmada/pull/5548), @whitewindmills)
--bind-address
--secure-port
* `karmada-controller-manager`: ([#5549](https://github.com/karmada-io/karmada/pull/5549), @whitewindmills)
--bind-address
--secure-port
* `karmada-scheduler-estimator`: ([#5555](https://github.com/karmada-io/karmada/pull/5555), @seanlaii)
--bind-address
--secure-port
* `karmada-scheduler`: ([#5551](https://github.com/karmada-io/karmada/pull/5551), @chaosi-zju)
--bind-address
--secure-port
* `karmada-descheduler`: ([#5552](https://github.com/karmada-io/karmada/pull/5552), @chaosi-zju)
--bind-address
--secure-port

### Bug Fixes
- `karmada-scheduler`: Fixed unexpected modification of original `ResourceSummary` due to lack of deep copy. ([#5685](https://github.com/karmada-io/karmada/pull/5685), @LivingCcj)
- `karmada-scheduler`: Fixes an issue where resource model grades were incorrectly matched based on resource requests. Now only grades that can provide sufficient resources will be selected. ([#5706](https://github.com/karmada-io/karmada/pull/5706), @RainbowMango)
- `karmada-scheduler`: skip the filter if the cluster is already in the list of scheduling result even if the API is missed. ([#5216](https://github.com/karmada-io/karmada/pull/5216), @yanfeng1992)
- `karmada-controller-manager`: Fixed the corner case where the reconciliation of aggregating status might be missed in case of component restart. ([#5865](https://github.com/karmada-io/karmada/pull/5865), @zach593)
- `karmada-controller-manager`: Ignored StatefulSet Dependencies with PVCs created via the VolumeClaimTemplates. ([#5568](https://github.com/karmada-io/karmada/pull/5568), @jklaw90)
- `karmada-controller-manager`: Clean up the residual annotations when resources are preempted by pp from cpp. ([#5563](https://github.com/karmada-io/karmada/pull/5563), @zhzhuang-zju)
- `karmada-controller-manager`: Fixed an issue that policy claim metadata might be lost during the rapid deletion and creation of PropagationPolicy(s)/ClusterPropagationPolicy(s). ([#5319](https://github.com/karmada-io/karmada/pull/5319), @zhzhuang-zju)
- `karmadactl`:Fixed the issue where commands `create`, `annotate`, `delete`, `edit`, `label`, and `patch` cannot specify the namespace flag. ([#5487](https://github.com/karmada-io/karmada/pull/5487), @zhzhuang-zju)
- `karmadactl`: Fixed the issue that karmadactl addon failed to install karmada-scheduler-estimator due to unknown flag. ([#5523](https://github.com/karmada-io/karmada/pull/5523), @chaosi-zju)
- `karmadactl`: Fixed `karmada-metrics-adapter` use the incorrect certificate issue when deployed via karmadactl `init`. ([#5840](https://github.com/karmada-io/karmada/pull/5840), @KhalilSantana)
- `karmada-operator`: Fixed the issue where the manifests for the `karmada-scheduler` and `karmada-descheduler` components were not parsed correctly. ([#5546](https://github.com/karmada-io/karmada/pull/5546), @jabellard)
- `karmada-operator`: Fixed `system:admin` can not proxy to member cluster issue. ([#5572](https://github.com/karmada-io/karmada/pull/5572), @chaosi-zju)
- `karmada-search`: Modify the logic of checking whether the resource is registered when selecting the plugin. ([#5662](https://github.com/karmada-io/karmada/pull/5662), @yanfeng1992)
- `karmada-aggregate-apiserver`: limit aggregate apiserver http method to get. User can modify member cluster's object with * in aggregated apiserver url. ([#5430](https://github.com/karmada-io/karmada/pull/5430), @spiritNO1)

### Security
In this release, the Karmada community is committed to enhancing the security of Karmada and improving the robustness of Karmada system operations. By combing components to minimize permissions and reinforcing default configurations for installations, the Karmada system's security has been significantly strengthened to protect against potential threats in an increasingly complex multi-cloud environment.
- Component Permissions Minimization
* Reconfigure the `karmadactl register` to minimize access permissions to the Karmada control plane for its registered PULL mode clusters. ([#5793](https://github.com/karmada-io/karmada/pull/5793), @zhzhuang-zju)
* `karmada-operator`: minimize the rbac permissions for karmada-operator. ([#5586](https://github.com/karmada-io/karmada/pull/5586), @B1F030)
- `karmadactl init`: add CRDs archive verification to enhance file system robustness. ([#5713](https://github.com/karmada-io/karmada/pull/5713), @zhzhuang-zju)
- `karmada-operator`: add CRDs archive verification to enhance file system robustness. ([#5703](https://github.com/karmada-io/karmada/pull/5703), @zhzhuang-zju)
- `local up`: add CA data to generated karmada config for enhanced security. ([#5739](https://github.com/karmada-io/karmada/pull/5739), @chaosi-zju)
- `karmadactl init`: Eliminate unnecessary and potentially exploitable information from command output. ([#5714](https://github.com/karmada-io/karmada/pull/5714), @zhzhuang-zju)

### Features & Enhancements
- `karmada-controller-manager`: introduces the `agentcsrapproving` controller to provide the capability for the agent's CSR to be automatically approved. ([#5825](https://github.com/karmada-io/karmada/pull/5825), @zhzhuang-zju)
- `karmada-controller-manager`: update taint-manager to config eviction task with purgeMode. ([#5879](https://github.com/karmada-io/karmada/pull/5879), @XiShanYongYe-Chang)
- `karmada-controller-manager`: Build eviction task for application failover when using purgeMode Immediately. ([#5881](https://github.com/karmada-io/karmada/pull/5881), @mszacillo)
- `karmada-controller-manager`: build PreservedLabelState when triggering evition in RB/CRB application controller. ([#5887](https://github.com/karmada-io/karmada/pull/5887), @XiShanYongYe-Chang)
- `karmada-controller-manager`: keep preserveResourcesOnDeletion of the dependent resource consistent with that of the primary resource. ([#5717](https://github.com/karmada-io/karmada/pull/5717), @XiShanYongYe-Chang)
- `karmada-controller-manager`: set conflictResolution for dependent resources. ([#4418](https://github.com/karmada-io/karmada/pull/4418), @@chaunceyjiang)
- `karmada-controller-manager`: The health status of resources without ResourceInterpreter customization will be treated as healthy by default. ([#5530](https://github.com/karmada-io/karmada/pull/5530), @a7i)
- `karmada-controller-manager`: Unique controller names and remove ambitions when reporting metrics. ([#5799](https://github.com/karmada-io/karmada/pull/5799), @chaosi-zju)
- `karmada-contoller-manager`: Add index for `work` resources to significantly accelerate the query efficiency. ([#5779](https://github.com/karmada-io/karmada/pull/5779), @zach593)
- `karmada-controller-manager`: Introduced `--concurrent-dependent-resource-syncs` flags to specify the number of dependent resource that are allowed to sync concurrently. ([#5809](https://github.com/karmada-io/karmada/pull/5809), @CharlesQQ)
- `karmadactl`: Implementing autocompletion for karmadactl to save a lot of typing. ([#5533](https://github.com/karmada-io/karmada/pull/5533), @zhzhuang-zju)
- `karmadactl`: Added shorthand letter `s` to 'operation-scope' flags across commands. ([#5483](https://github.com/karmada-io/karmada/pull/5483), @ahorine)
- `karmadactl`: `karmadactl init` support multiple label selection ability with flag `EtcdNodeSelectorLabels`. ([#5321](https://github.com/karmada-io/karmada/pull/5321), @tiansuo114)
- `karmadactl`: `karmadactl init` supports deployment through configuration files. ([#5357](https://github.com/karmada-io/karmada/pull/5357), @tiansuo114)
- `karmadactl`: new command `karmadactl unregister` supports unregister a pull mode cluster. ([#5626](https://github.com/karmada-io/karmada/pull/5626), @wulemao)
- `karmadactl`: set `PreserveResourcesOnDeletion` by default in auto-created propagation policy during promotion process. ([#5601](https://github.com/karmada-io/karmada/pull/5601), #wulemao)
- `karmadactl`: The `--force` option of `unjoin` command now try to clean up resources propagated in member clusters. ([#4451](https://github.com/karmada-io/karmada/pull/4451), @zhzhuang-zju)
- `karmadactl`: command `register` minimizes the RBAC permissions for the registering cluster to access Karmada control plane. ([#5793](https://github.com/karmada-io/karmada/pull/5793), @zhzhuang-zju)
- `karmada-operator`: The new `SecretRef` field added as part of the configuration for connecting to an external etcd cluster can be used to reference a secret that contains credentials for connecting to an external etcd cluster. ([#5699](https://github.com/karmada-io/karmada/pull/5699), @jabellard)
- `karmada-operator`: Adds one-click script to install a Karmada instance through the `karmada-operator`. ([#5519](https://github.com/karmada-io/karmada/pull/5519), @zhzhuang-zju)
- `karmada-operator`: enable LoadBalancer type karmada-apiserver service. ([#5773](https://github.com/karmada-io/karmada/pull/5423), @chaosi-zju)
- `karmada-scheduler`: implement group score calculation instead of take the highest score of clusters. ([#5621](https://github.com/karmada-io/karmada/pull/5621), @ipsum-0320)
- `karmada-scheduler`: The `scheduler-estimator-service-namespace` flag is introduced, which can be used to explicitly specify the namespace that should be used to discover scheduler estimator services. For backwards compatibility, when not explicitly set, the default value of `karmada-system` is retained. ([#5478](https://github.com/karmada-io/karmada/pull/5478), @jabellard)
- `karmada-descheduler`: Introduced leaderElection options including: `--leader-elect-lease-duration`, `--leader-elect-renew-deadline`, `--leader-elect-retry-period`, the default value not changed compared to previous version. ([#5787](https://github.com/karmada-io/karmada/pull/5787), @yanfeng1992)
- `karmada-desheduler`: The `scheduler-estimator-service-namespace` flag is introduced, which can be used to explicitly specify the namespace that should be used to discover scheduler estimator services. For backwards compatibility, when not explicitly set, the default value of `karmada-system` is retained. ([#5478](https://github.com/karmada-io/karmada/pull/5478), @jabellard)
- `karmada-search`: Implement search proxy cache initialization post-start-hook. ([#5846](https://github.com/karmada-io/karmada/pull/5846), @XiShanYongYe-Chang)
- `karmada-search`: Support field selector for corev1 resources. ([#5801](https://github.com/karmada-io/karmada/pull/5801), @SataQiu)
- `karmada-scheduler-estimator`: grpc connection adds the support for custom DNS Domain. ([#5472](https://github.com/karmada-io/karmada/pull/5472), @zhzhuang-zju)
- `karmada-webhook`: validate fieldOverrider operation. ([#5671](https://github.com/karmada-io/karmada/pull/5671), @chaunceyjiang)
- Standardize the naming of karmada secrets in local up installation method. ([#5423](https://github.com/karmada-io/karmada/pull/5423), @chaosi-zju)
- implement preserveResourcesOnDeletion to support migration rollback. ([#5597](https://github.com/karmada-io/karmada/pull/5597), @a7i)
- Introduced `FieldOverrider` for overriding values in JSON and YAML. ([#5591](https://github.com/karmada-io/karmada/pull/5591), @sophiefeifeifeiya)
- standardize the naming of karmada config in local up installation method. ([#5679](https://github.com/karmada-io/karmada/pull/5679), @chaosi-zju)
- Support PurgeMode setting in evection tasks. ([#5821](https://github.com/karmada-io/karmada/pull/5821), @XiShanYongYe-Chang)

## Other
### Dependencies
- The base image `alpine` now has been promoted from `alpine:3.20.2` to `alpine:3.20.3`.
- Kuberentes dependencies have been updated to v1.31.2. ([#5807](https://github.com/karmada-io/karmada/pull/5807), @RainbowMango)
- Karmada now built with Golang v1.22.9. ([#5820](https://github.com/karmada-io/karmada/pull/5820), @RainbowMango)
- `karmada-apiserver` and `kube-controller-manager` is using v1.31.3 by default. ([#5851](https://github.com/karmada-io/karmada/pull/5851), @chaosi-zju)
- `etcd`: update default version to 3.5.16-0. ([#5854](https://github.com/karmada-io/karmada/pull/5854), @chaosi-zju)

### Helm Charts
- `Helm chart`: Added helm index for v1.10.0 and v1.11.0 release. ([#5579](https://github.com/karmada-io/karmada/pull/5579), @chaosi-zju)

### Instrumentation
- Unique controller names and remove ambitions when reporting metrics. ([#5799](https://github.com/karmada-io/karmada/pull/5799), @chaosi-zju)

## Contributors
Thank you to everyone who contributed to this release!

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

- @a7i
- @ahorine
- @anujagrawal699
- @B1f030
- @chaosi-zju
- @CharlesQQ
- @chaunceyjiang
- @husnialhamdani
- @iawia002
- @ipsum-0320
- @jabellard
- @jklaw90
- @KhalilSantana
- @LavredisG
- @liangyuanpeng
- @LivingCcj
- @MAVRICK-1
- @mohamedawnallah
- @mszacillo
- @RainbowMango
- @SataQiu
- @seanlaii
- @sophiefeifeifeiya
- @tiansuo114
- @wangxf1987
- @whitewindmills
- @wulemao
- @xovoxy
- @yanfeng1992
- @yelshall
- @zach593
- @zhzuang-zju

# v1.12.0-beta.0
## Downloads for v1.12.0-beta.0

Expand Down

0 comments on commit db64a7e

Please sign in to comment.