Table of Contents generated with DocToc
Download v1.11.1 in the v1.11.1 release page.
karmada-operator
: Fixed the issue where the manifests for thekarmada-scheduler
andkarmada-descheduler
components were not parsed correctly. (#5550 @zhzhuang-zju)karmadactl
:Fixed the issue where commandscreate
,annotate
,delete
,edit
,label
, andpatch
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)
- The base image
alpine
now has been promoted fromalpine:3.20.2
toalpine:3.20.3
. - Karmada(release-1.11) now using Golang v1.22.7. (#5531 @RainbowMango)
Download v1.11.0 in the v1.11.0 release page.
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)
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)
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)
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)
- Introduced
Suspension
to thePropagationPolicy/ClusterPropagationPolicy
API to provide a cluster-level resource propagation pause and resume capabilities. (#4838, @a7i) - Introduced
Dispatching
condition to theWork
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
andPriority
, to represent the conflict resolution strategy and priority, these columns will be displayed in the output of kubectl get. (#5077, @a7i)- Introduced
CRDTarball
to theKarmada
API to supports custom CRD download strategy. (#5185 @jabellard)
- The following labels that were deprecated(replaced by
propagationpolicy.karmada.io/permanent-id
andclusterpropagationpolicy.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
- The flags deprecated by
karmada-scheduler-estimator
: Fixed theUnschedulable
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 inMutatingWebhookConfiguration
. (#5252, @a7i)
Security Enhancement
: Introduced TLS certificate authentication mechanism to secure gRPC connections tokarmada-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.
- The flags added to
- 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)
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 argumenthealth-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 labelkarmada.io/system
to resources created by thejoin
command. (#4620, @a7i)karmadactl
: Introduced--ca-cert-file
and--ca-key-file
flags toinit
command to specify the root CA which will be used to issue the certificate for components. (#5127, @guozheng-shen)karmadactl
: Theget
command can show Karmada resources now. (#5254, @hulizhe)karmadactl
: Thedescribe
command can show details of Karmada resources now. (#5392, @hulizhe)karmadactl
: Theexec
command can execute a command in a Karmada container now. (#5398, @hulizhe)karmadactl
: add new commandtop node
to display resource (CPU/memory) usage of nodes in member clusters. (#4224, @zhzhuang-zju)karmadactl
: add new commandcreate
to create a resource from a file or from stdin in Karmada control plane. (#5399, @hulizhe)karmadactl
: add new commandattach
to attach to a running container in Karmada control plane or a member cluster. (#5395, @hulizhe)karmadactl
: add new commandapi-resources
to print the supported API resources on the server in Karmada control plane or a member cluster. (#5394, @hulizhe)karmadactl
: add new commandapi-versions
to print the supported API versions on the server in Karmada control plane or a member cluster. (#5394, @hulizhe)karmadactl
: add new commandkarmadactl explain
to describe fields and structure of various resources in Karmada control plane or a member cluster. (#5393, @hulizhe)karmadactl
: add new commandkarmadactl delete
to delete resources. (#5431, @zhzhuang-zju)karmadactl
: add new commandkarmadactl edit
to edit a resource on the server. (#5434, @zhzhuang-zju)karmadactl
: add new commandlabel
to update the labels on a resource. (#5453, @zhzhuang-zju)karmadactl
: add new commandannotate
to update the annotations on a resource. (#5458, @zhzhuang-zju)karmadactl
: add new commandpatch
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 argumenthealth-probe-bind-address
and metrics argumentmetrics-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 argumenthealth-probe-bind-address
, deprecate--bind-address
and--secure-port
flag. (#5223, @whitewindmills)karmada-scheduler-estimator
: Add health probe argumenthealth-probe-bind-address
and metrics argumentmetrics-bind-address
. Deprecate--bind-address
and--secure-port
flags. (#5273, @seanlaii)karmada-descheduler
: Add health probe argumenthealth-probe-bind-address
and metrics argumentmetrics-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)
- 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 fromalpine:3.20.0
toalpine: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 fromalpine:3.20.1
toalpine:3.20.2
. - Karmada is now built with Go1.22.6. (#5335, @RainbowMango)
- 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)
karmada-controller-manager
: add metricsrecreate_resource_to_cluster
andupdate_resource_to_cluster
for recreate/update resource event when sync work status. (#5247, @chaosi-zju)
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