---
title: v1.17 to v1.18
---

Follow the [Regular Upgrading Process](./README.md).

## Upgrading Notable Changes

### API Changes

- Introduced `OverflowClusterAffinities` to `PropagationPolicy`/`ClusterPropagationPolicy` API to support overflow cluster resource pools for hybrid cloud scheduling.
- `karmada-scheduler-estimator`: Introduced `AssumedWorkloads` field into the gRPC message `MaxAvailableComponentSetsRequest`.
- `karmada-scheduler-estimator`: Introduced `AssumedWorkloads` field into the gRPC message `MaxAvailableReplicasRequest`.
- `karmada-webhook`: Now rejects `PropagationPolicy` and `ClusterPropagationPolicy` resources that use the `Lt` or `Gt` operator in `spec.placement.clusterTolerations`.
- `scheduler-estimator`: Migrated to standard `protoc-gen-go` for gRPC API generation to support Kubernetes 1.35+. Introduced peer `bytes` fields for K8s types to ensure compatibility.
    - `ReplicaRequirements.resourceRequest` has been deprecated in favor of `resourceRequestBytes`, which stores proto-serialized `resource.Quantity` objects.
    - `ComponentReplicaRequirements.resourceRequest` has been deprecated in favor of `resourceRequestBytes`, which stores proto-serialized `resource.Quantity` objects.
    - `NodeClaim.nodeAffinity` has been deprecated in favor of `nodeAffinityBytes`, which stores a proto-serialized `corev1.NodeSelector` object.
    - `NodeClaim.tolerations` has been deprecated in favor of `tolerationsBytes`, which stores proto-serialized `corev1.Toleration` objects.

### Deprecation

- `Instrumentation`: The deprecated `cluster` and `cluster_name` Prometheus metric labels have been removed. The newly introduced `member_cluster` metric label name will now be used for that purpose moving forward.
- `karmada-controller-manager`: The flags `--cluster-lease-duration` and `--cluster-lease-renew-interval-fraction` have been removed.
- `karmada-scheduler-estimator`: The deprecated `Estimator` label value for `estimating_plugin_extension_point` in the `estimating_plugin_execution_duration_seconds` and `estimating_plugin_extension_point_duration_seconds` metrics has been removed.
- `karmadactl`: The deprecated `Etcd.Local.InitImage` in `Karmada Init Configuration` has been removed.

### Dependencies

- `karmada-controller-manager`/`karmada-agent`: Upgraded `gopher-lua` dependency to v1.1.1.
- Kubernetes dependencies have been updated to v1.35.3.
- The base image `alpine` has been promoted from `alpine:3.23.3` to `alpine:3.23.4`.

### Others

- `karmada-operator-chart`: To ensure a smooth upgrade, users must first upgrade to release `v1.17.3+` before upgrading to a `v1.18.x` release.
