14 KiB
v1.4.0
Downloads for v1.4.0
Download v1.4.0 in the v1.4.0 release page.
Karmada v1.4 Release Notes
What's New
#Declarative Resource Interpreter
The Interpreter Framework is designed for interpreting the structure of arbitrary resource types. It consists of built-in
and customized
interpreters, this release introduced another brand-new customized interpreter.
With the newly introduced declarative
interpreter, users can quickly customize resource interpreters for both Kubernetes resources and CRD resources by the rules declared in the ResourceInterpreterCustomization
API specification. Compared with the interpreter customized by the webhook, it gets the rules from the declarative specifications instead of requiring an additional webhook component.
The new command named interpret
in the karmadactl
could be used to test the rules before applying them to the system.
Some examples are provided to help users better understand how this interpreter can be used.
(Feature contributor: @jameszhangyukun @ikaven1024 @chaunceyjiang @XiShanYongYe-Chang @RainbowMango)
PropagationPolicy/ClusterPropagationPolicy priority
Users are now able to declare the priority for both PropagationPolicy
and ClusterPropagationPolicy
, a policy will be applied for the matched resource templates if there are no other policies with higher priority at the point of the resource template be processed.
The priority could be used by the system administrator to manage and control the policies. Refer to Configure PropagationPolicy priority for more details.
(Feature contributor: @Garrybest @jwcesign)
Instrumentation improvement
This release enhanced observability significantly through metrics and events.
The metrics can be queried by the endpoint(/metrics
) of each component using an HTTP scrap, and they are served in Prometheus format. And the events are reported to the relevant resource objects respectively.
Refer to events and metrics for more details.
(Feature contributor: @Poor12)
Other Notable Changes
API Changes
- Introduce priority to PropagationPolicy. (#2758, @RainbowMango)
- Introduced
LabelsOverrider
andAnnotationsOverrider
for overriding labels and annotations.(#2584, @chaunceyjiang) - evolute PropagateDeps FeatureGate to Beta and enable it by default. (#2875, @XiShanYongYe-Chang)
- evolute Failover/GracefulEviction FeatureGate to Beta and enable it by default. (#2876, @jwcesign)
- evolute CustomizedClusterResourceModeling FeatureGate to Beta and enable it by default. (#2877, @Poor12)
Bug Fixes
karmada-search
: fix concurrent map writes panic while list objects via proxy. (#2483, @ikaven1024)karmada-search
: Fixed returned ResourceVersion by proxy not stable issue. (#2746, @cmicat)karmada-controller-manager
/karmada-agent
: Fixed pod information can not be collected issue when building resource summary. (#2489, @Poor12)karmada-controller-manager
: use cluster secret ref namespace in unified-auth-controller when generate ClusterRoleBinding. (#2516, @XiShanYongYe-Chang)karmada-controller-manager
: fix the error of resources whose name contains colons failing to be created. (#2549, @XiShanYongYe-Chang)karmada-controller-manager
: Fixed the panic when cluster ImpersonatorSecretRef is nil.(#2675, @stingshen)karmada-controller-manager
: Fix serviceaccount continual regeneration by service account controller.(#2578, @Poor12)karmada-controller-manager
: Disable the preemption matching of pp/cpp priority. (#2734, @XiShanYongYe-Chang)karmada-controller-manager
: Fix clusterOverridePolicy and overridePolicy with nil resource selector could not work. (#2771, @wuyingjun-lucky)karmada-controlle-managerr
: ignore resource that do not match with policy before apply policy. (#2786, @XiShanYongYe-Chang)karmada-agent
: FixedServiceExport
controller can not reportendpointSlices
issue(due to misscreate
permission). (#2515, @lonelyCZ)karmadactl
: Fixedinit
can not honor IPV6 address issue when generating kubeconfig file. (#2450, @duanmengkk)karmadactl
: Fixed--karmada-data
directory not initialization issue ininit
command. (#2548, @jwcesign)karmadactl
: Fixedinit
commands print incorrect register command issue. (#2707, @Songjoy)karmadactl
: Fix namespace already exists. (#2505, @cleverhu)karmada-webhook
: Fixed failed to set resource selector default namespace if the relevant OverridePolicy and PropagationPolicy with namespace unset issue. (#2858, @carlory)
Security
Security
: Add limitReader toio.ReadAll
which could limit the memory request and avoid DoS attacks. (#2765, @Poor12)
Features & Enhancements
karmadactl
: Improve karmada init help output. (#2342, @my-git9)karmadactl
: karmadactl prohibit input extra arguments forinit
command. (#2497, @helen-frank)karmadactl
/chart
: Theinit
no longer creates redundant ServiceAccounts for components exceptkarmada-agent
. (#2523, @carlory)karmadactl
: Fixed options ofdeinit
can not be shown issue. (#2540, @helen-frank)karmadactl/chart
: if karmada is installed by using karmadactl or helm chart with default configuration, the image version of karmada-kube-controller-manager/karmada-apiserver will be kube-controller-manager:v1.25.2/kube-apiserver:v1.25.2. (#2539, @jwcesign)karmadactl
: Introduced--karmada-apiserver-advertise-address
flag to specify Karmada APIserver's address to theinit
sub-command. (#2550, @wuyingjun-lucky)karmadactl
: introduce --enable-cert-rotation option to register command.(#2596, @lonelyCZ)karmadactl
: uncordon add dryrun (#2760, @helen-frank)karmadactl
: karmadactl get add validate cluster exist (#2787, @helen-frank)karmadactl
: add liveness probe into the kube-controller-manager component (#2817, @carlory)karmadactl
:init
add--image-registry
flags (#2655, @helen-frank)karmadactl
: add interpreter command for resource interpret customizations. (#2750, @ikaven1024)karmadactl
: add execute mod for interpret command. (#2824, @ikaven1024)karmada-search
: objects returned by proxy will haveresource.karmada.io/cached-from-cluster
annotation to indicate which member cluster from. (#2469, @ikaven1024)karmada-search
: users can get the real resource request metrics while using the proxy. (#2481, @ikaven1024)karmada-search
: users now can use--disable-search
and--disable-proxy
options to disable search and proxy feature (default both are enabled).(#2650, @ikaven1024)karmada-controller-manager
: add implicit priority for PropagationPolicy. (#2267, @Garrybest)karmada-controller-manager
: Introduced resource labelnamespace.karmada.io/skip-auto-propagation: "true"
which can label the namespaces that should be skipped from auto propagation.(#2696, @jwcesign)karmada-controller-manager
: allow users to update the.spec.resourceSelectors
filed ofPropagationPolicy/ClusterPropagationPolicy
. (#2562, @XiShanYongYe-Chang)- karmada-controller-manager`: Introduce priority to PropagationPolicy. (#2767, @jwcesign)
karmada-scheduler-estimator
: leverage scheduler cache to estimate replicas.(#2704, @Garrybest)karmada-controller-manager
: do not propagate finalizers to member cluster (#2870, @stingshen)karmada-scheduler
/karmada-scheduler-descheduler
: Introduced--scheduler-estimator-service-prefix
flag for discovery estimators.(#2527, @carlory)karmada-scheduler
: add scheduling diagnosis.(#2302, @Garrybest)karmada-agent
: introduce auto certificate rotation function.(#2596, @lonelyCZ)karmada-webhook
: Prevent modifying and creatingResourceInterpreterCustomization
using the same interpretation rules. (#2755, @chaunceyjiang)- validate cluster fields: provider, region and zone. (#2849, @carlory)
Other
Dependencies
- Download images from docker hub by default. (#2795, @jwcesign)
- Karmada is now built with Golang 1.19.3. (#2857, @RainbowMango)
Helm Chart
Helm Chart
: add descheduler name suffix of chart deployment manifest (#2330, @calvin0327)HelmChart
: Fixed liveness probe misconfiguration which caused kube-controller-manager to alwaysCrashLoopBackup
. (#2277, @calvin0327 )chart
: Fix use custom certs lead to post-install-job failed and kube-controller-manager crash by missing /etc/karmada/pki/server-ca.key.(#2637, @631068264)
Instrumentation
Instrumentation
: Introduced theGetDependenciesSucceed
andGetDependenciesFailed
to the resource template. Introduced theSyncScheduleResultToDependenciesSucceed
andSyncScheduleResultToDependenciesFailed
toresourceBinding
object. (#2773, @Poor12 )Instrumentation
: IntroduceEvictWorkloadFromClusterSucceed
,EvictWorkloadFromClusterFailed
to thebinding
object and its reference. Refactor the event name ofTaintManagerEviction
. (#2835, @Poor12)Instrumentation
: Introduced theresource_find_matched_policy_duration_seconds
,resource_apply_policy_duration_seconds
,policy_apply_attempts_total
,binding_sync_work_duration_seconds
,work_sync_workload_duration_seconds
metrics. (#2868, @Poor12 )Instrumentation
: Introduced theCreateExecutionSpaceSucceed
andRemoveExecutionSpaceSucceed
events toCluster
object. (#2688, @Poor12)Instrumentation
: Introduced theApplyOverridePolicySucceed
andApplyOverridePolicyFailed
events to workload. (#2764, @Poor12)Instrumentation
: Introduced theReflectStatusToWorkSucceed
,ReflectStatusToWorkFailed
,InterpretHealthSucceed
andInterpretHealthFailed
events towork
object. (#2770, @Poor12)Instrumentation
: Introduced theSyncImpersonationConfigSucceed
andSyncImpersonationConfigFailed
to thecluster
object.(#2796, @Poor12)Instrumentation
: ApplyAggregateStatusFailed
,AggregateStatusSucceed
,SyncWorkSucceed
, andSyncWorkFailed
to thefederatedResourceQuota
object. (#2812, @Poor12)Instrumentation
: introduceSyncDerivedServiceSucceed
andSyncDerivedServiceFailed
to theserviceImport
object. (#2830, @Poor12)Instrumentation
: Introduced thecluster_ready_info
,cluster_node_number
,cluster_ready_node_number
,cluster_memory_allocatable_bytes
,cluster_cpu_allocatable_number
,cluster_pod_allocatable_number
,cluster_memory_allocated_bytes
,cluster_cpu_allocated_number
,cluster_pod_allocated_number
,cluster_sync_status_duration
to record the cluster status inkarmada-controller-manager
andkarmada-agent
. (@Poor12 #2496Instrumentation
: introduced theframework_extension_point_duration_seconds
andplugin_execution_duration_seconds
metrics forkarmada-scheduler
.(#2087, @Poor12)