Repository: kubernetes-sigs/kueue

Issue:
v1beta2: Decouple FairSharingStatus from LocalQueue
<!-- Please only use this template for submitting enhancement requests -->

**What would you like to be added**:
I would propose uncommonizing FaireSharingStatus: https://github.com/kubernetes-sigs/kueue/blob/8c3ed54cacceec656dea21fc615adf41e251e0c8/apis/kueue/v1beta2/fairsharing_types.go#L49-L63

So, my proposal is introducing the following typed:

1. The LocalQueueFairSharingStatus for LocalQueue.

```go
// LocalQueueFairSharingStatus contains the information about the current status of Fair Sharing.
type LocalQueueFairSharingStatus struct {
	// weightedShare represents the maximum of the ratios of usage
	// above nominal quota to the lendable resources in the
	// Cohort, among all the resources provided by the Node, and
	// divided by the weight.  If zero, it means that the usage of
	// the Node is below the nominal quota.  If the Node has a
	// weight of zero and is borrowing, this will return
	// 9223372036854775807, the maximum possible share value.
	// +required
	WeightedShare int64 `json:"weightedShare"`

	// admissionFairSharingStatus represents information relevant to the Admission Fair Sharing
	// +optional
	AdmissionFairSharingStatus *AdmissionFairSharingStatus `json:"admissionFairSharingStatus,omitempty"`
}
```

1. The FairSharingStatus for ClusterQueue and Cohort

```go
// FairSharingStatus contains the information about the current status of Fair Sharing.
type FairSharingStatus struct {
	// weightedShare represents the maximum of the ratios of usage
	// above nominal quota to the lendable resources in the
	// Cohort, among all the resources provided by the Node, and
	// divided by the weight.  If zero, it means that the usage of
	// the Node is below the nominal quota.  If the Node has a
	// weight of zero and is borrowing, this will return
	// 9223372036854775807, the maximum possible share value.
	// +required
	WeightedShare int64 `json:"weightedShare"`
}
```

**Why is this needed**:
Currently, LocalQueue, ClusterQueue, and Cohort use a commonized `FairSharingStatus` object, but in the ClusterQueue and Cohort cases, the `admissionFairSharingStatus` has never been used.

We should remove the never-used fields.
However, these fields have already been released for the v1beta1 API. So, we can work on this improvement only for v1beta2.

**Completion requirements**:

This enhancement requires the following artifacts:

- [ ] Design doc
- [ ] API change
- [ ] Docs update

The artifacts should be linked in subsequent comments.


Discussion:
@tenzen-y: cc @mimowo @PBundyra @tenzen-y: The LocalQueue controller has AFS status involving mechanism in https://github.com/kubernetes-sigs/kueue/blob/8c3ed54cacceec656dea21fc615adf41e251e0c8/pkg/controller/core/localqueue_controller.go#L263-L274

But, ClusterQueue and Cohort controllers do not have such mechanisms:
https://github.com/kubernetes-sigs/kueue/blob/8c3ed54cacceec656dea21fc615adf41e251e0c8/pkg/controller/core/cohort_controller.go#L169-L177
https://github.com/kubernetes-sigs/kueue/blob/8c3ed54cacceec656dea21fc615adf41e251e0c8/pkg/controller/core/clusterqueue_controller.go#L564-L578
because AFS will be computed based on LocalQueue usage.@tenzen-y: tentatively
/assign

Solution patch:
diff --git a/apis/kueue/v1beta1/cohort_conversion.go b/apis/kueue/v1beta1/cohort_conversion.go
new file mode 100644
index 000000000..a93fd1a94
--- /dev/null
+++ b/apis/kueue/v1beta1/cohort_conversion.go
@@ -0,0 +1,36 @@
+/*
+Copyright The Kubernetes Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package v1beta1
+
+import (
+	"sigs.k8s.io/controller-runtime/pkg/conversion"
+
+	"sigs.k8s.io/kueue/apis/kueue/v1beta2"
+)
+
+//lint:file-ignore ST1003 "generated Convert_* calls below use underscores"
+//revive:disable:var-naming
+
+func (src *Cohort) ConvertTo(dstRaw conversion.Hub) error {
+	dst := dstRaw.(*v1beta2.Cohort)
+	return Convert_v1beta1_Cohort_To_v1beta2_Cohort(src, dst, nil)
+}
+
+func (dst *Cohort) ConvertFrom(srcRaw conversion.Hub) error {
+	src := srcRaw.(*v1beta2.Cohort)
+	return Convert_v1beta2_Cohort_To_v1beta1_Cohort(src, dst, nil)
+}
diff --git a/apis/kueue/v1beta1/cohort_types.go b/apis/kueue/v1beta1/cohort_types.go
index e6ea5f77b..899447156 100644
--- a/apis/kueue/v1beta1/cohort_types.go
+++ b/apis/kueue/v1beta1/cohort_types.go
@@ -79,6 +79,7 @@ type CohortStatus struct {
 }
 
 // +genclient
+// +genclient:nonNamespaced
 // +kubebuilder:object:root=true
 // +kubebuilder:storageversion
 // +kubebuilder:resource:scope=Cluster
diff --git a/apis/kueue/v1beta1/fairsharing_conversion.go b/apis/kueue/v1beta1/fairsharing_conversion.go
new file mode 100644
index 000000000..83ffa2023
--- /dev/null
+++ b/apis/kueue/v1beta1/fairsharing_conversion.go
@@ -0,0 +1,30 @@
+/*
+Copyright The Kubernetes Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package v1beta1
+
+import (
+	conversionapi "k8s.io/apimachinery/pkg/conversion"
+
+	"sigs.k8s.io/kueue/apis/kueue/v1beta2"
+)
+
+//lint:file-ignore ST1003 "generated Convert_* calls below use underscores"
+//revive:disable:var-naming
+
+func Convert_v1beta1_FairSharingStatus_To_v1beta2_FairSharingStatus(in *FairSharingStatus, out *v1beta2.FairSharingStatus, s conversionapi.Scope) error {
+	return autoConvert_v1beta1_FairSharingStatus_To_v1beta2_FairSharingStatus(in, out, s)
+}
diff --git a/apis/kueue/v1beta1/zz_generated.conversion.go b/apis/kueue/v1beta1/zz_generated.conversion.go
index 5086f8a92..9ad696a59 100644
--- a/apis/kueue/v1beta1/zz_generated.conversion.go
+++ b/apis/kueue/v1beta1/zz_generated.conversion.go
@@ -123,16 +123,6 @@ func RegisterConversions(s *runtime.Scheme) error {
 	}); err != nil {
 		return err
 	}
-	if err := s.AddGeneratedConversionFunc((*AdmissionFairSharingStatus)(nil), (*v1beta2.AdmissionFairSharingStatus)(nil), func(a, b interface{}, scope conversion.Scope) error {
-		return Convert_v1beta1_AdmissionFairSharingStatus_To_v1beta2_AdmissionFairSharingStatus(a.(*AdmissionFairSharingStatus), b.(*v1beta2.AdmissionFairSharingStatus), scope)
-	}); err != nil {
-		return err
-	}
-	if err := s.AddGeneratedConversionFunc((*v1beta2.AdmissionFairSharingStatus)(nil), (*AdmissionFairSharingStatus)(nil), func(a, b interface{}, scope conversion.Scope) error {
-		return Convert_v1beta2_AdmissionFairSharingStatus_To_v1beta1_AdmissionFairSharingStatus(a.(*v1beta2.AdmissionFairSharingStatus), b.(*AdmissionFairSharingStatus), scope)
-	}); err != nil {
-		return err
-	}
 	if err := s.AddGeneratedConversionFunc((*AdmissionScope)(nil), (*v1beta2.AdmissionScope)(nil), func(a, b interface{}, scope conversion.Scope) error {
 		return Convert_v1beta1_AdmissionScope_To_v1beta2_AdmissionScope(a.(*AdmissionScope), b.(*v1beta2.AdmissionScope), scope)
 	}); err != nil {
@@ -238,11 +228,6 @@ func RegisterConversions(s *runtime.Scheme) error {
 	}); err != nil {
 		return err
 	}
-	if err := s.AddGeneratedConversionFunc((*FairSharingStatus)(nil), (*v1beta2.FairSharingStatus)(nil), func(a, b interface{}, scope conversion.Scope) error {
-		return Convert_v1beta1_FairSharingStatus_To_v1beta2_FairSharingStatus(a.(*FairSharingStatus), b.(*v1beta2.FairSharingStatus), scope)
-	}); err != nil {
-		return err
-	}
 	if err := s.AddGeneratedConversionFunc((*v1beta2.FairSharingStatus)(nil), (*FairSharingStatus)(nil), func(a, b interface{}, scope conversion.Scope) error {
 		return Convert_v1beta2_FairSharingStatus_To_v1beta1_FairSharingStatus(a.(*v1beta2.FairSharingStatus), b.(*FairSharingStatus), scope)
 	}); err != nil {
@@ -723,6 +708,11 @@ func RegisterConversions(s *runtime.Scheme) error {
 	}); err != nil {
 		return err
 	}
+	if err := s.AddConversionFunc((*FairSharingStatus)(nil), (*v1beta2.FairSharingStatus)(nil), func(a, b interface{}, scope conversion.Scope) error {
+		return Convert_v1beta1_FairSharingStatus_To_v1beta2_FairSharingStatus(a.(*FairSharingStatus), b.(*v1beta2.FairSharingStatus), scope)
+	}); err != nil {
+		return err
+	}
 	if err := s.AddConversionFunc((*LocalQueueStatus)(nil), (*v1beta2.LocalQueueStatus)(nil), func(a, b interface{}, scope conversion.Scope) error {
 		return Convert_v1beta1_LocalQueueStatus_To_v1beta2_LocalQueueStatus(a.(*LocalQueueStatus), b.(*v1beta2.LocalQueueStatus), scope)
 	}); err != nil {
@@ -1033,28 +1023,6 @@ func Convert_v1beta2_AdmissionChecksStrategy_To_v1beta1_AdmissionChecksStrategy(
 	return autoConvert_v1beta2_AdmissionChecksStrategy_To_v1beta1_AdmissionChecksStrategy(in, out, s)
 }
 
-func autoConvert_v1beta1_AdmissionFairSharingStatus_To_v1beta2_AdmissionFairSharingStatus(in *AdmissionFairSharingStatus, out *v1beta2.AdmissionFairSharingStatus, s conversion.Scope) error {
-	out.ConsumedResources = *(*corev1.ResourceList)(unsafe.Pointer(&in.ConsumedResources))
-	out.LastUpdate = in.LastUpdate
-	return nil
-}
-
-// Convert_v1beta1_AdmissionFairSharingStatus_To_v1beta2_AdmissionFairSharingStatus is an autogenerated conversion function.
-func Convert_v1beta1_AdmissionFairSharingStatus_To_v1beta2_AdmissionFairSharingStatus(in *AdmissionFairSharingStatus, out *v1beta2.AdmissionFairSharingStatus, s conversion.Scope) error {
-	return autoConvert_v1beta1_AdmissionFairSharingStatus_To_v1beta2_AdmissionFairSharingStatus(in, out, s)
-}
-
-func autoConvert_v1beta2_AdmissionFairSharingStatus_To_v1beta1_AdmissionFairSharingStatus(in *v1beta2.AdmissionFairSharingStatus, out *AdmissionFairSharingStatus, s conversion.Scope) error {
-	out.ConsumedResources = *(*corev1.ResourceList)(unsafe.Pointer(&in.ConsumedResources))
-	out.LastUpdate = in.LastUpdate
-	return nil
-}
-
-// Convert_v1beta2_AdmissionFairSharingStatus_To_v1beta1_AdmissionFairSharingStatus is an autogenerated conversion function.
-func Convert_v1beta2_AdmissionFairSharingStatus_To_v1beta1_AdmissionFairSharingStatus(in *v1beta2.AdmissionFairSharingStatus, out *AdmissionFairSharingStatus, s conversion.Scope) error {
-	return autoConvert_v1beta2_AdmissionFairSharingStatus_To_v1beta1_AdmissionFairSharingStatus(in, out, s)
-}
-
 func autoConvert_v1beta1_AdmissionScope_To_v1beta2_AdmissionScope(in *AdmissionScope, out *v1beta2.AdmissionScope, s conversion.Scope) error {
 	out.AdmissionMode = v1beta2.AdmissionMode(in.AdmissionMode)
 	return nil
@@ -1232,7 +1200,15 @@ func autoConvert_v1beta1_ClusterQueueStatus_To_v1beta2_ClusterQueueStatus(in *Cl
 	out.ReservingWorkloads = in.ReservingWorkloads
 	out.AdmittedWorkloads = in.AdmittedWorkloads
 	// WARNING: in.PendingWorkloadsStatus requires manual conversion: does not exist in peer-type
-	out.FairSharing = (*v1beta2.FairSharingStatus)(unsafe.Pointer(in.FairSharing))
+	if in.FairSharing != nil {
+		in, out := &in.FairSharing, &out.FairSharing
+		*out = new(v1beta2.FairSharingStatus)
+		if err := Convert_v1beta1_FairSharingStatus_To_v1beta2_FairSharingStatus(*in, *out, s); err != nil {
+			return err
+		}
+	} else {
+		out.FairSharing = nil
+	}
 	return nil
 }
 
@@ -1243,7 +1219,15 @@ func autoConvert_v1beta2_ClusterQueueStatus_To_v1beta1_ClusterQueueStatus(in *v1
 	out.PendingWorkloads = in.PendingWorkloads
 	out.ReservingWorkloads = in.ReservingWorkloads
 	out.AdmittedWorkloads = in.AdmittedWorkloads
-	out.FairSharing = (*FairSharingStatus)(unsafe.Pointer(in.FairSharing))
+	if in.FairSharing != nil {
+		in, out := &in.FairSharing, &out.FairSharing
+		*out = new(FairSharingStatus)
+		if err := Convert_v1beta2_FairSharingStatus_To_v1beta1_FairSharingStatus(*in, *out, s); err != nil {
+			return err
+		}
+	} else {
+		out.FairSharing = nil
+	}
 	return nil
 }
 
@@ -1286,7 +1270,17 @@ func Convert_v1beta2_Cohort_To_v1beta1_Cohort(in *v1beta2.Cohort, out *Cohort, s
 
 func autoConvert_v1beta1_CohortList_To_v1beta2_CohortList(in *CohortList, out *v1beta2.CohortList, s conversion.Scope) error {
 	out.ListMeta = in.ListMeta
-	out.Items = *(*[]v1beta2.Cohort)(unsafe.Pointer(&in.Items))
+	if in.Items != nil {
+		in, out := &in.Items, &out.Items
+		*out = make([]v1beta2.Cohort, len(*in))
+		for i := range *in {
+			if err := Convert_v1beta1_Cohort_To_v1beta2_Cohort(&(*in)[i], &(*out)[i], s); err != nil {
+				return err
+			}
+		}
+	} else {
+		out.Items = nil
+	}
 	return nil
 }
 
@@ -1297,7 +1291,17 @@ func Convert_v1beta1_CohortList_To_v1beta2_CohortList(in *CohortList, out *v1bet
 
 func autoConvert_v1beta2_CohortList_To_v1beta1_CohortList(in *v1beta2.CohortList, out *CohortList, s conversion.Scope) error {
 	out.ListMeta = in.ListMeta
-	out.Items = *(*[]Cohort)(unsafe.Pointer(&in.Items))
+	if in.Items != nil {
+		in, out := &in.Items, &out.Items
+		*out = make([]Cohort, len(*in))
+		for i := range *in {
+			if err := Convert_v1beta2_Cohort_To_v1beta1_Cohort(&(*in)[i], &(*out)[i], s); err != nil {
+				return err
+			}
+		}
+	} else {
+		out.Items = nil
+	}
 	return nil
 }
 
@@ -1331,7 +1335,15 @@ func Convert_v1beta2_CohortSpec_To_v1beta1_CohortSpec(in *v1beta2.CohortSpec, ou
 }
 
 func autoConvert_v1beta1_CohortStatus_To_v1beta2_CohortStatus(in *CohortStatus, out *v1beta2.CohortStatus, s conversion.Scope) error {
-	out.FairSharing = (*v1beta2.FairSharingStatus)(unsafe.Pointer(in.FairSharing))
+	if in.FairSharing != nil {
+		in, out := &in.FairSharing, &out.FairSharing
+		*out = new(v1beta2.FairSharingStatus)
+		if err := Convert_v1beta1_FairSharingStatus_To_v1beta2_FairSharingStatus(*in, *out, s); err != nil {
+			return err
+		}
+	} else {
+		out.FairSharing = nil
+	}
 	return nil
 }
 
@@ -1341,7 +1353,15 @@ func Convert_v1beta1_CohortStatus_To_v1beta2_CohortStatus(in *CohortStatus, out
 }
 
 func autoConvert_v1beta2_CohortStatus_To_v1beta1_CohortStatus(in *v1beta2.CohortStatus, out *CohortStatus, s conversion.Scope) error {
-	out.FairSharing = (*FairSharingStatus)(unsafe.Pointer(in.FairSharing))
+	if in.FairSharing != nil {
+		in, out := &in.FairSharing, &out.FairSharing
+		*out = new(FairSharingStatus)
+		if err := Convert_v1beta2_FairSharingStatus_To_v1beta1_FairSharingStatus(*in, *out, s); err != nil {
+			return err
+		}
+	} else {
+		out.FairSharing = nil
+	}
 	return nil
 }
 
@@ -1372,18 +1392,12 @@ func Convert_v1beta2_FairSharing_To_v1beta1_FairSharing(in *v1beta2.FairSharing,
 
 func autoConvert_v1beta1_FairSharingStatus_To_v1beta2_FairSharingStatus(in *FairSharingStatus, out *v1beta2.FairSharingStatus, s conversion.Scope) error {
 	out.WeightedShare = in.WeightedShare
-	out.AdmissionFairSharingStatus = (*v1beta2.AdmissionFairSharingStatus)(unsafe.Pointer(in.AdmissionFairSharingStatus))
+	// WARNING: in.AdmissionFairSharingStatus requires manual conversion: does not exist in peer-type
 	return nil
 }
 
-// Convert_v1beta1_FairSharingStatus_To_v1beta2_FairSharingStatus is an autogenerated conversion function.
-func Convert_v1beta1_FairSharingStatus_To_v1beta2_FairSharingStatus(in *FairSharingStatus, out *v1beta2.FairSharingStatus, s conversion.Scope) error {
-	return autoConvert_v1beta1_FairSharingStatus_To_v1beta2_FairSharingStatus(in, out, s)
-}
-
 func autoConvert_v1beta2_FairSharingStatus_To_v1beta1_FairSharingStatus(in *v1beta2.FairSharingStatus, out *FairSharingStatus, s conversion.Scope) error {
 	out.WeightedShare = in.WeightedShare
-	out.AdmissionFairSharingStatus = (*AdmissionFairSharingStatus)(unsafe.Pointer(in.AdmissionFairSharingStatus))
 	return nil
 }
 
@@ -1632,7 +1646,7 @@ func autoConvert_v1beta1_LocalQueueStatus_To_v1beta2_LocalQueueStatus(in *LocalQ
 	out.FlavorsReservation = *(*[]v1beta2.LocalQueueFlavorUsage)(unsafe.Pointer(&in.FlavorsReservation))
 	// WARNING: in.FlavorUsage requires manual conversion: does not exist in peer-type
 	// WARNING: in.Flavors requires manual conversion: does not exist in peer-type
-	out.FairSharing = (*v1beta2.FairSharingStatus)(unsafe.Pointer(in.FairSharing))
+	out.FairSharing = (*v1beta2.LocalQueueFairSharingStatus)(unsafe.Pointer(in.FairSharing))
 	return nil
 }
 
diff --git a/apis/kueue/v1beta2/cohort_types.go b/apis/kueue/v1beta2/cohort_types.go
index 8542b1097..865096f4c 100644
--- a/apis/kueue/v1beta2/cohort_types.go
+++ b/apis/kueue/v1beta2/cohort_types.go
@@ -81,6 +81,7 @@ type CohortStatus struct {
 }
 
 // +genclient
+// +genclient:nonNamespaced
 // +kubebuilder:object:root=true
 // +kubebuilder:resource:scope=Cluster
 // +kubebuilder:subresource:status
@@ -116,3 +117,5 @@ type CohortList struct {
 func init() {
 	SchemeBuilder.Register(&Cohort{}, &CohortList{})
 }
+
+func (src *Cohort) Hub() {}
diff --git a/apis/kueue/v1beta2/fairsharing_types.go b/apis/kueue/v1beta2/fairsharing_types.go
index 2bab0cc89..0cbb7c074 100644
--- a/apis/kueue/v1beta2/fairsharing_types.go
+++ b/apis/kueue/v1beta2/fairsharing_types.go
@@ -17,9 +17,7 @@ limitations under the License.
 package v1beta2
 
 import (
-	corev1 "k8s.io/api/core/v1"
 	"k8s.io/apimachinery/pkg/api/resource"
-	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 )
 
 // FairSharing contains the properties of the ClusterQueue or Cohort,
@@ -56,22 +54,6 @@ type FairSharingStatus struct {
 	// 9223372036854775807, the maximum possible share value.
 	// +required
 	WeightedShare int64 `json:"weightedShare"`
-
-	// admissionFairSharingStatus represents information relevant to the Admission Fair Sharing
-	// +optional
-	AdmissionFairSharingStatus *AdmissionFairSharingStatus `json:"admissionFairSharingStatus,omitempty"`
-}
-
-type AdmissionFairSharingStatus struct {
-	// consumedResources represents the aggregated usage of resources over time,
-	// with decaying function applied.
-	// The value is populated if usage consumption functionality is enabled in Kueue config.
-	// +required
-	ConsumedResources corev1.ResourceList `json:"consumedResources"`
-
-	// lastUpdate is the time when share and consumed resources were updated.
-	// +required
-	LastUpdate metav1.Time `json:"lastUpdate"`
 }
 
 type AdmissionScope struct {
diff --git a/apis/kueue/v1beta2/localqueue_types.go b/apis/kueue/v1beta2/localqueue_types.go
index e047c7367..c1c12321f 100644
--- a/apis/kueue/v1beta2/localqueue_types.go
+++ b/apis/kueue/v1beta2/localqueue_types.go
@@ -118,7 +118,36 @@ type LocalQueueStatus struct {
 
 	// fairSharing contains the information about the current status of fair sharing.
 	// +optional
-	FairSharing *FairSharingStatus `json:"fairSharing,omitempty"`
+	FairSharing *LocalQueueFairSharingStatus `json:"fairSharing,omitempty"`
+}
+
+// LocalQueueFairSharingStatus contains the information about the current status of Fair Sharing.
+type LocalQueueFairSharingStatus struct {
+	// weightedShare represents the maximum of the ratios of usage
+	// above nominal quota to the lendable resources in the
+	// Cohort, among all the resources provided by the Node, and
+	// divided by the weight.  If zero, it means that the usage of
+	// the Node is below the nominal quota.  If the Node has a
+	// weight of zero and is borrowing, this will return
+	// 9223372036854775807, the maximum possible share value.
+	// +required
+	WeightedShare int64 `json:"weightedShare"`
+
+	// admissionFairSharingStatus represents information relevant to the Admission Fair Sharing
+	// +optional
+	AdmissionFairSharingStatus *LocalQueueAdmissionFairSharingStatus `json:"admissionFairSharingStatus,omitempty"`
+}
+
+type LocalQueueAdmissionFairSharingStatus struct {
+	// consumedResources represents the aggregated usage of resources over time,
+	// with decaying function applied.
+	// The value is populated if usage consumption functionality is enabled in Kueue config.
+	// +required
+	ConsumedResources corev1.ResourceList `json:"consumedResources"`
+
+	// lastUpdate is the time when share and consumed resources were updated.
+	// +required
+	LastUpdate metav1.Time `json:"lastUpdate"`
 }
 
 const (
diff --git a/apis/kueue/v1beta2/zz_generated.deepcopy.go b/apis/kueue/v1beta2/zz_generated.deepcopy.go
index 9ea20cb1e..22a152d2e 100644
--- a/apis/kueue/v1beta2/zz_generated.deepcopy.go
+++ b/apis/kueue/v1beta2/zz_generated.deepcopy.go
@@ -239,29 +239,6 @@ func (in *AdmissionChecksStrategy) DeepCopy() *AdmissionChecksStrategy {
 	return out
 }
 
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *AdmissionFairSharingStatus) DeepCopyInto(out *AdmissionFairSharingStatus) {
-	*out = *in
-	if in.ConsumedResources != nil {
-		in, out := &in.ConsumedResources, &out.ConsumedResources
-		*out = make(corev1.ResourceList, len(*in))
-		for key, val := range *in {
-			(*out)[key] = val.DeepCopy()
-		}
-	}
-	in.LastUpdate.DeepCopyInto(&out.LastUpdate)
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdmissionFairSharingStatus.
-func (in *AdmissionFairSharingStatus) DeepCopy() *AdmissionFairSharingStatus {
-	if in == nil {
-		return nil
-	}
-	out := new(AdmissionFairSharingStatus)
-	in.DeepCopyInto(out)
-	return out
-}
-
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *AdmissionScope) DeepCopyInto(out *AdmissionScope) {
 	*out = *in
@@ -475,7 +452,7 @@ func (in *ClusterQueueStatus) DeepCopyInto(out *ClusterQueueStatus) {
 	if in.FairSharing != nil {
 		in, out := &in.FairSharing, &out.FairSharing
 		*out = new(FairSharingStatus)
-		(*in).DeepCopyInto(*out)
+		**out = **in
 	}
 }
 
@@ -581,7 +558,7 @@ func (in *CohortStatus) DeepCopyInto(out *CohortStatus) {
 	if in.FairSharing != nil {
 		in, out := &in.FairSharing, &out.FairSharing
 		*out = new(FairSharingStatus)
-		(*in).DeepCopyInto(*out)
+		**out = **in
 	}
 }
 
@@ -618,11 +595,6 @@ func (in *FairSharing) DeepCopy() *FairSharing {
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *FairSharingStatus) DeepCopyInto(out *FairSharingStatus) {
 	*out = *in
-	if in.AdmissionFairSharingStatus != nil {
-		in, out := &in.AdmissionFairSharingStatus, &out.AdmissionFairSharingStatus
-		*out = new(AdmissionFairSharingStatus)
-		(*in).DeepCopyInto(*out)
-	}
 }
 
 // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FairSharingStatus.
@@ -741,6 +713,49 @@ func (in *LocalQueue) DeepCopyObject() runtime.Object {
 	return nil
 }
 
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *LocalQueueAdmissionFairSharingStatus) DeepCopyInto(out *LocalQueueAdmissionFairSharingStatus) {
+	*out = *in
+	if in.ConsumedResources != nil {
+		in, out := &in.ConsumedResources, &out.ConsumedResources
+		*out = make(corev1.ResourceList, len(*in))
+		for key, val := range *in {
+			(*out)[key] = val.DeepCopy()
+		}
+	}
+	in.LastUpdate.DeepCopyInto(&out.LastUpdate)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalQueueAdmissionFairSharingStatus.
+func (in *LocalQueueAdmissionFairSharingStatus) DeepCopy() *LocalQueueAdmissionFairSharingStatus {
+	if in == nil {
+		return nil
+	}
+	out := new(LocalQueueAdmissionFairSharingStatus)
+	in.DeepCopyInto(out)
+	return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *LocalQueueFairSharingStatus) DeepCopyInto(out *LocalQueueFairSharingStatus) {
+	*out = *in
+	if in.AdmissionFairSharingStatus != nil {
+		in, out := &in.AdmissionFairSharingStatus, &out.AdmissionFairSharingStatus
+		*out = new(LocalQueueAdmissionFairSharingStatus)
+		(*in).DeepCopyInto(*out)
+	}
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalQueueFairSharingStatus.
+func (in *LocalQueueFairSharingStatus) DeepCopy() *LocalQueueFairSharingStatus {
+	if in == nil {
+		return nil
+	}
+	out := new(LocalQueueFairSharingStatus)
+	in.DeepCopyInto(out)
+	return out
+}
+
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *LocalQueueFlavorUsage) DeepCopyInto(out *LocalQueueFlavorUsage) {
 	*out = *in
@@ -862,7 +877,7 @@ func (in *LocalQueueStatus) DeepCopyInto(out *LocalQueueStatus) {
 	}
 	if in.FairSharing != nil {
 		in, out := &in.FairSharing, &out.FairSharing
-		*out = new(FairSharingStatus)
+		*out = new(LocalQueueFairSharingStatus)
 		(*in).DeepCopyInto(*out)
 	}
 }
diff --git a/charts/kueue/templates/crd/kueue.x-k8s.io_clusterqueues.yaml b/charts/kueue/templates/crd/kueue.x-k8s.io_clusterqueues.yaml
index 238758e6b..8e7d605f3 100644
--- a/charts/kueue/templates/crd/kueue.x-k8s.io_clusterqueues.yaml
+++ b/charts/kueue/templates/crd/kueue.x-k8s.io_clusterqueues.yaml
@@ -1384,29 +1384,6 @@ spec:
                     when participating in Fair Sharing.
                     This is recorded only when Fair Sharing is enabled in the Kueue configuration.
                   properties:
-                    admissionFairSharingStatus:
-                      description: admissionFairSharingStatus represents information relevant to the Admission Fair Sharing
-                      properties:
-                        consumedResources:
-                          additionalProperties:
-                            anyOf:
-                              - type: integer
-                              - type: string
-                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
-                            x-kubernetes-int-or-string: true
-                          description: |-
-                            consumedResources represents the aggregated usage of resources over time,
-                            with decaying function applied.
-                            The value is populated if usage consumption functionality is enabled in Kueue config.
-                          type: object
-                        lastUpdate:
-                          description: lastUpdate is the time when share and consumed resources were updated.
-                          format: date-time
-                          type: string
-                      required:
-                        - consumedResources
-                        - lastUpdate
-                      type: object
                     weightedShare:
                       description: |-
                         weightedShare represents the maximum of the ratios of usage
diff --git a/charts/kueue/templates/crd/kueue.x-k8s.io_cohorts.yaml b/charts/kueue/templates/crd/kueue.x-k8s.io_cohorts.yaml
index e7d0ed710..1b576099f 100644
--- a/charts/kueue/templates/crd/kueue.x-k8s.io_cohorts.yaml
+++ b/charts/kueue/templates/crd/kueue.x-k8s.io_cohorts.yaml
@@ -542,29 +542,6 @@ spec:
                     when participating in Fair Sharing.
                     The is recorded only when Fair Sharing is enabled in the Kueue configuration.
                   properties:
-                    admissionFairSharingStatus:
-                      description: admissionFairSharingStatus represents information relevant to the Admission Fair Sharing
-                      properties:
-                        consumedResources:
-                          additionalProperties:
-                            anyOf:
-                              - type: integer
-                              - type: string
-                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
-                            x-kubernetes-int-or-string: true
-                          description: |-
-                            consumedResources represents the aggregated usage of resources over time,
-                            with decaying function applied.
-                            The value is populated if usage consumption functionality is enabled in Kueue config.
-                          type: object
-                        lastUpdate:
-                          description: lastUpdate is the time when share and consumed resources were updated.
-                          format: date-time
-                          type: string
-                      required:
-                        - consumedResources
-                        - lastUpdate
-                      type: object
                     weightedShare:
                       description: |-
                         weightedShare represents the maximum of the ratios of usage
diff --git a/client-go/applyconfiguration/kueue/v1beta1/cohort.go b/client-go/applyconfiguration/kueue/v1beta1/cohort.go
index 1e85e4982..2172b2395 100644
--- a/client-go/applyconfiguration/kueue/v1beta1/cohort.go
+++ b/client-go/applyconfiguration/kueue/v1beta1/cohort.go
@@ -34,10 +34,9 @@ type CohortApplyConfiguration struct {
 
 // Cohort constructs a declarative configuration of the Cohort type for use with
 // apply.
-func Cohort(name, namespace string) *CohortApplyConfiguration {
+func Cohort(name string) *CohortApplyConfiguration {
 	b := &CohortApplyConfiguration{}
 	b.WithName(name)
-	b.WithNamespace(namespace)
 	b.WithKind("Cohort")
 	b.WithAPIVersion("kueue.x-k8s.io/v1beta1")
 	return b
diff --git a/client-go/applyconfiguration/kueue/v1beta2/cohort.go b/client-go/applyconfiguration/kueue/v1beta2/cohort.go
index 1903d044c..4a9022f37 100644
--- a/client-go/applyconfiguration/kueue/v1beta2/cohort.go
+++ b/client-go/applyconfiguration/kueue/v1beta2/cohort.go
@@ -34,10 +34,9 @@ type CohortApplyConfiguration struct {
 
 // Cohort constructs a declarative configuration of the Cohort type for use with
 // apply.
-func Cohort(name, namespace string) *CohortApplyConfiguration {
+func Cohort(name string) *CohortApplyConfiguration {
 	b := &CohortApplyConfiguration{}
 	b.WithName(name)
-	b.WithNamespace(namespace)
 	b.WithKind("Cohort")
 	b.WithAPIVersion("kueue.x-k8s.io/v1beta2")
 	return b
diff --git a/client-go/applyconfiguration/kueue/v1beta2/fairsharingstatus.go b/client-go/applyconfiguration/kueue/v1beta2/fairsharingstatus.go
index e8eaf9732..9f1759cd1 100644
--- a/client-go/applyconfiguration/kueue/v1beta2/fairsharingstatus.go
+++ b/client-go/applyconfiguration/kueue/v1beta2/fairsharingstatus.go
@@ -20,8 +20,7 @@ package v1beta2
 // FairSharingStatusApplyConfiguration represents a declarative configuration of the FairSharingStatus type for use
 // with apply.
 type FairSharingStatusApplyConfiguration struct {
-	WeightedShare              *int64                                        `json:"weightedShare,omitempty"`
-	AdmissionFairSharingStatus *AdmissionFairSharingStatusApplyConfiguration `json:"admissionFairSharingStatus,omitempty"`
+	WeightedShare *int64 `json:"weightedShare,omitempty"`
 }
 
 // FairSharingStatusApplyConfiguration constructs a declarative configuration of the FairSharingStatus type for use with
@@ -37,11 +36,3 @@ func (b *FairSharingStatusApplyConfiguration) WithWeightedShare(value int64) *Fa
 	b.WeightedShare = &value
 	return b
 }
-
-// WithAdmissionFairSharingStatus sets the AdmissionFairSharingStatus field in the declarative configuration to the given value
-// and returns the receiver, so that objects can be built by chaining "With" function invocations.
-// If called multiple times, the AdmissionFairSharingStatus field is set to the value of the last call.
-func (b *FairSharingStatusApplyConfiguration) WithAdmissionFairSharingStatus(value *AdmissionFairSharingStatusApplyConfiguration) *FairSharingStatusApplyConfiguration {
-	b.AdmissionFairSharingStatus = value
-	return b
-}
diff --git a/client-go/applyconfiguration/kueue/v1beta2/admissionfairsharingstatus.go b/client-go/applyconfiguration/kueue/v1beta2/localqueueadmissionfairsharingstatus.go
similarity index 64%
rename from client-go/applyconfiguration/kueue/v1beta2/admissionfairsharingstatus.go
rename to client-go/applyconfiguration/kueue/v1beta2/localqueueadmissionfairsharingstatus.go
index 01231c0bc..03f73d332 100644
--- a/client-go/applyconfiguration/kueue/v1beta2/admissionfairsharingstatus.go
+++ b/client-go/applyconfiguration/kueue/v1beta2/localqueueadmissionfairsharingstatus.go
@@ -22,23 +22,23 @@ import (
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 )
 
-// AdmissionFairSharingStatusApplyConfiguration represents a declarative configuration of the AdmissionFairSharingStatus type for use
+// LocalQueueAdmissionFairSharingStatusApplyConfiguration represents a declarative configuration of the LocalQueueAdmissionFairSharingStatus type for use
 // with apply.
-type AdmissionFairSharingStatusApplyConfiguration struct {
+type LocalQueueAdmissionFairSharingStatusApplyConfiguration struct {
 	ConsumedResources *v1.ResourceList `json:"consumedResources,omitempty"`
 	LastUpdate        *metav1.Time     `json:"lastUpdate,omitempty"`
 }
 
-// AdmissionFairSharingStatusApplyConfiguration constructs a declarative configuration of the AdmissionFairSharingStatus type for use with
+// LocalQueueAdmissionFairSharingStatusApplyConfiguration constructs a declarative configuration of the LocalQueueAdmissionFairSharingStatus type for use with
 // apply.
-func AdmissionFairSharingStatus() *AdmissionFairSharingStatusApplyConfiguration {
-	return &AdmissionFairSharingStatusApplyConfiguration{}
+func LocalQueueAdmissionFairSharingStatus() *LocalQueueAdmissionFairSharingStatusApplyConfiguration {
+	return &LocalQueueAdmissionFairSharingStatusApplyConfiguration{}
 }
 
 // WithConsumedResources sets the ConsumedResources field in the declarative configuration to the given value
 // and returns the receiver, so that objects can be built by chaining "With" function invocations.
 // If called multiple times, the ConsumedResources field is set to the value of the last call.
-func (b *AdmissionFairSharingStatusApplyConfiguration) WithConsumedResources(value v1.ResourceList) *AdmissionFairSharingStatusApplyConfiguration {
+func (b *LocalQueueAdmissionFairSharingStatusApplyConfiguration) WithConsumedResources(value v1.ResourceList) *LocalQueueAdmissionFairSharingStatusApplyConfiguration {
 	b.ConsumedResources = &value
 	return b
 }
@@ -46,7 +46,7 @@ func (b *AdmissionFairSharingStatusApplyConfiguration) WithConsumedResources(val
 // WithLastUpdate sets the LastUpdate field in the declarative configuration to the given value
 // and returns the receiver, so that objects can be built by chaining "With" function invocations.
 // If called multiple times, the LastUpdate field is set to the value of the last call.
-func (b *AdmissionFairSharingStatusApplyConfiguration) WithLastUpdate(value metav1.Time) *AdmissionFairSharingStatusApplyConfiguration {
+func (b *LocalQueueAdmissionFairSharingStatusApplyConfiguration) WithLastUpdate(value metav1.Time) *LocalQueueAdmissionFairSharingStatusApplyConfiguration {
 	b.LastUpdate = &value
 	return b
 }
diff --git a/client-go/applyconfiguration/kueue/v1beta2/localqueuefairsharingstatus.go b/client-go/applyconfiguration/kueue/v1beta2/localqueuefairsharingstatus.go
new file mode 100644
index 000000000..5bcb9778b
--- /dev/null
+++ b/client-go/applyconfiguration/kueue/v1beta2/localqueuefairsharingstatus.go
@@ -0,0 +1,47 @@
+/*
+Copyright The Kubernetes Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+// Code generated by applyconfiguration-gen. DO NOT EDIT.
+
+package v1beta2
+
+// LocalQueueFairSharingStatusApplyConfiguration represents a declarative configuration of the LocalQueueFairSharingStatus type for use
+// with apply.
+type LocalQueueFairSharingStatusApplyConfiguration struct {
+	WeightedShare              *int64                                                  `json:"weightedShare,omitempty"`
+	AdmissionFairSharingStatus *LocalQueueAdmissionFairSharingStatusApplyConfiguration `json:"admissionFairSharingStatus,omitempty"`
+}
+
+// LocalQueueFairSharingStatusApplyConfiguration constructs a declarative configuration of the LocalQueueFairSharingStatus type for use with
+// apply.
+func LocalQueueFairSharingStatus() *LocalQueueFairSharingStatusApplyConfiguration {
+	return &LocalQueueFairSharingStatusApplyConfiguration{}
+}
+
+// WithWeightedShare sets the WeightedShare field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the WeightedShare field is set to the value of the last call.
+func (b *LocalQueueFairSharingStatusApplyConfiguration) WithWeightedShare(value int64) *LocalQueueFairSharingStatusApplyConfiguration {
+	b.WeightedShare = &value
+	return b
+}
+
+// WithAdmissionFairSharingStatus sets the AdmissionFairSharingStatus field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the AdmissionFairSharingStatus field is set to the value of the last call.
+func (b *LocalQueueFairSharingStatusApplyConfiguration) WithAdmissionFairSharingStatus(value *LocalQueueAdmissionFairSharingStatusApplyConfiguration) *LocalQueueFairSharingStatusApplyConfiguration {
+	b.AdmissionFairSharingStatus = value
+	return b
+}
diff --git a/client-go/applyconfiguration/kueue/v1beta2/localqueuestatus.go b/client-go/applyconfiguration/kueue/v1beta2/localqueuestatus.go
index 988cf8655..834e54c06 100644
--- a/client-go/applyconfiguration/kueue/v1beta2/localqueuestatus.go
+++ b/client-go/applyconfiguration/kueue/v1beta2/localqueuestatus.go
@@ -24,13 +24,13 @@ import (
 // LocalQueueStatusApplyConfiguration represents a declarative configuration of the LocalQueueStatus type for use
 // with apply.
 type LocalQueueStatusApplyConfiguration struct {
-	Conditions         []v1.ConditionApplyConfiguration          `json:"conditions,omitempty"`
-	PendingWorkloads   *int32                                    `json:"pendingWorkloads,omitempty"`
-	ReservingWorkloads *int32                                    `json:"reservingWorkloads,omitempty"`
-	AdmittedWorkloads  *int32                                    `json:"admittedWorkloads,omitempty"`
-	FlavorsReservation []LocalQueueFlavorUsageApplyConfiguration `json:"flavorsReservation,omitempty"`
-	FlavorsUsage       []LocalQueueFlavorUsageApplyConfiguration `json:"flavorsUsage,omitempty"`
-	FairSharing        *FairSharingStatusApplyConfiguration      `json:"fairSharing,omitempty"`
+	Conditions         []v1.ConditionApplyConfiguration               `json:"conditions,omitempty"`
+	PendingWorkloads   *int32                                         `json:"pendingWorkloads,omitempty"`
+	ReservingWorkloads *int32                                         `json:"reservingWorkloads,omitempty"`
+	AdmittedWorkloads  *int32                                         `json:"admittedWorkloads,omitempty"`
+	FlavorsReservation []LocalQueueFlavorUsageApplyConfiguration      `json:"flavorsReservation,omitempty"`
+	FlavorsUsage       []LocalQueueFlavorUsageApplyConfiguration      `json:"flavorsUsage,omitempty"`
+	FairSharing        *LocalQueueFairSharingStatusApplyConfiguration `json:"fairSharing,omitempty"`
 }
 
 // LocalQueueStatusApplyConfiguration constructs a declarative configuration of the LocalQueueStatus type for use with
@@ -105,7 +105,7 @@ func (b *LocalQueueStatusApplyConfiguration) WithFlavorsUsage(values ...*LocalQu
 // WithFairSharing sets the FairSharing field in the declarative configuration to the given value
 // and returns the receiver, so that objects can be built by chaining "With" function invocations.
 // If called multiple times, the FairSharing field is set to the value of the last call.
-func (b *LocalQueueStatusApplyConfiguration) WithFairSharing(value *FairSharingStatusApplyConfiguration) *LocalQueueStatusApplyConfiguration {
+func (b *LocalQueueStatusApplyConfiguration) WithFairSharing(value *LocalQueueFairSharingStatusApplyConfiguration) *LocalQueueStatusApplyConfiguration {
 	b.FairSharing = value
 	return b
 }
diff --git a/client-go/applyconfiguration/utils.go b/client-go/applyconfiguration/utils.go
index d774f9ae1..6def11048 100644
--- a/client-go/applyconfiguration/utils.go
+++ b/client-go/applyconfiguration/utils.go
@@ -189,8 +189,6 @@ func ForKind(kind schema.GroupVersionKind) interface{} {
 		return &kueuev1beta2.AdmissionCheckStatusApplyConfiguration{}
 	case v1beta2.SchemeGroupVersion.WithKind("AdmissionCheckStrategyRule"):
 		return &kueuev1beta2.AdmissionCheckStrategyRuleApplyConfiguration{}
-	case v1beta2.SchemeGroupVersion.WithKind("AdmissionFairSharingStatus"):
-		return &kueuev1beta2.AdmissionFairSharingStatusApplyConfiguration{}
 	case v1beta2.SchemeGroupVersion.WithKind("AdmissionScope"):
 		return &kueuev1beta2.AdmissionScopeApplyConfiguration{}
 	case v1beta2.SchemeGroupVersion.WithKind("BorrowWithinCohort"):
@@ -225,6 +223,10 @@ func ForKind(kind schema.GroupVersionKind) interface{} {
 		return &kueuev1beta2.KubeConfigApplyConfiguration{}
 	case v1beta2.SchemeGroupVersion.WithKind("LocalQueue"):
 		return &kueuev1beta2.LocalQueueApplyConfiguration{}
+	case v1beta2.SchemeGroupVersion.WithKind("LocalQueueAdmissionFairSharingStatus"):
+		return &kueuev1beta2.LocalQueueAdmissionFairSharingStatusApplyConfiguration{}
+	case v1beta2.SchemeGroupVersion.WithKind("LocalQueueFairSharingStatus"):
+		return &kueuev1beta2.LocalQueueFairSharingStatusApplyConfiguration{}
 	case v1beta2.SchemeGroupVersion.WithKind("LocalQueueFlavorUsage"):
 		return &kueuev1beta2.LocalQueueFlavorUsageApplyConfiguration{}
 	case v1beta2.SchemeGroupVersion.WithKind("LocalQueueResourceUsage"):
diff --git a/client-go/clientset/versioned/typed/kueue/v1beta1/cohort.go b/client-go/clientset/versioned/typed/kueue/v1beta1/cohort.go
index 9fe9b552a..e33925307 100644
--- a/client-go/clientset/versioned/typed/kueue/v1beta1/cohort.go
+++ b/client-go/clientset/versioned/typed/kueue/v1beta1/cohort.go
@@ -32,7 +32,7 @@ import (
 // CohortsGetter has a method to return a CohortInterface.
 // A group's client should implement this interface.
 type CohortsGetter interface {
-	Cohorts(namespace string) CohortInterface
+	Cohorts() CohortInterface
 }
 
 // CohortInterface has methods to work with Cohort resources.
@@ -59,13 +59,13 @@ type cohorts struct {
 }
 
 // newCohorts returns a Cohorts
-func newCohorts(c *KueueV1beta1Client, namespace string) *cohorts {
+func newCohorts(c *KueueV1beta1Client) *cohorts {
 	return &cohorts{
 		gentype.NewClientWithListAndApply[*kueuev1beta1.Cohort, *kueuev1beta1.CohortList, *applyconfigurationkueuev1beta1.CohortApplyConfiguration](
 			"cohorts",
 			c.RESTClient(),
 			scheme.ParameterCodec,
-			namespace,
+			"",
 			func() *kueuev1beta1.Cohort { return &kueuev1beta1.Cohort{} },
 			func() *kueuev1beta1.CohortList { return &kueuev1beta1.CohortList{} },
 		),
diff --git a/client-go/clientset/versioned/typed/kueue/v1beta1/fake/fake_cohort.go b/client-go/clientset/versioned/typed/kueue/v1beta1/fake/fake_cohort.go
index 8dfc0962c..553df18b1 100644
--- a/client-go/clientset/versioned/typed/kueue/v1beta1/fake/fake_cohort.go
+++ b/client-go/clientset/versioned/typed/kueue/v1beta1/fake/fake_cohort.go
@@ -30,11 +30,11 @@ type fakeCohorts struct {
 	Fake *FakeKueueV1beta1
 }
 
-func newFakeCohorts(fake *FakeKueueV1beta1, namespace string) typedkueuev1beta1.CohortInterface {
+func newFakeCohorts(fake *FakeKueueV1beta1) typedkueuev1beta1.CohortInterface {
 	return &fakeCohorts{
 		gentype.NewFakeClientWithListAndApply[*v1beta1.Cohort, *v1beta1.CohortList, *kueuev1beta1.CohortApplyConfiguration](
 			fake.Fake,
-			namespace,
+			"",
 			v1beta1.SchemeGroupVersion.WithResource("cohorts"),
 			v1beta1.SchemeGroupVersion.WithKind("Cohort"),
 			func() *v1beta1.Cohort { return &v1beta1.Cohort{} },
diff --git a/client-go/clientset/versioned/typed/kueue/v1beta1/fake/fake_kueue_client.go b/client-go/clientset/versioned/typed/kueue/v1beta1/fake/fake_kueue_client.go
index dd159b6f0..3f451ccce 100644
--- a/client-go/clientset/versioned/typed/kueue/v1beta1/fake/fake_kueue_client.go
+++ b/client-go/clientset/versioned/typed/kueue/v1beta1/fake/fake_kueue_client.go
@@ -35,8 +35,8 @@ func (c *FakeKueueV1beta1) ClusterQueues() v1beta1.ClusterQueueInterface {
 	return newFakeClusterQueues(c)
 }
 
-func (c *FakeKueueV1beta1) Cohorts(namespace string) v1beta1.CohortInterface {
-	return newFakeCohorts(c, namespace)
+func (c *FakeKueueV1beta1) Cohorts() v1beta1.CohortInterface {
+	return newFakeCohorts(c)
 }
 
 func (c *FakeKueueV1beta1) LocalQueues(namespace string) v1beta1.LocalQueueInterface {
diff --git a/client-go/clientset/versioned/typed/kueue/v1beta1/kueue_client.go b/client-go/clientset/versioned/typed/kueue/v1beta1/kueue_client.go
index a8653da25..3725740bc 100644
--- a/client-go/clientset/versioned/typed/kueue/v1beta1/kueue_client.go
+++ b/client-go/clientset/versioned/typed/kueue/v1beta1/kueue_client.go
@@ -53,8 +53,8 @@ func (c *KueueV1beta1Client) ClusterQueues() ClusterQueueInterface {
 	return newClusterQueues(c)
 }
 
-func (c *KueueV1beta1Client) Cohorts(namespace string) CohortInterface {
-	return newCohorts(c, namespace)
+func (c *KueueV1beta1Client) Cohorts() CohortInterface {
+	return newCohorts(c)
 }
 
 func (c *KueueV1beta1Client) LocalQueues(namespace string) LocalQueueInterface {
diff --git a/client-go/clientset/versioned/typed/kueue/v1beta2/cohort.go b/client-go/clientset/versioned/typed/kueue/v1beta2/cohort.go
index 51a7dba8b..5fb658d3c 100644
--- a/client-go/clientset/versioned/typed/kueue/v1beta2/cohort.go
+++ b/client-go/clientset/versioned/typed/kueue/v1beta2/cohort.go
@@ -32,7 +32,7 @@ import (
 // CohortsGetter has a method to return a CohortInterface.
 // A group's client should implement this interface.
 type CohortsGetter interface {
-	Cohorts(namespace string) CohortInterface
+	Cohorts() CohortInterface
 }
 
 // CohortInterface has methods to work with Cohort resources.
@@ -59,13 +59,13 @@ type cohorts struct {
 }
 
 // newCohorts returns a Cohorts
-func newCohorts(c *KueueV1beta2Client, namespace string) *cohorts {
+func newCohorts(c *KueueV1beta2Client) *cohorts {
 	return &cohorts{
 		gentype.NewClientWithListAndApply[*kueuev1beta2.Cohort, *kueuev1beta2.CohortList, *applyconfigurationkueuev1beta2.CohortApplyConfiguration](
 			"cohorts",
 			c.RESTClient(),
 			scheme.ParameterCodec,
-			namespace,
+			"",
 			func() *kueuev1beta2.Cohort { return &kueuev1beta2.Cohort{} },
 			func() *kueuev1beta2.CohortList { return &kueuev1beta2.CohortList{} },
 		),
diff --git a/client-go/clientset/versioned/typed/kueue/v1beta2/fake/fake_cohort.go b/client-go/clientset/versioned/typed/kueue/v1beta2/fake/fake_cohort.go
index d7dbd736b..5235a57c4 100644
--- a/client-go/clientset/versioned/typed/kueue/v1beta2/fake/fake_cohort.go
+++ b/client-go/clientset/versioned/typed/kueue/v1beta2/fake/fake_cohort.go
@@ -30,11 +30,11 @@ type fakeCohorts struct {
 	Fake *FakeKueueV1beta2
 }
 
-func newFakeCohorts(fake *FakeKueueV1beta2, namespace string) typedkueuev1beta2.CohortInterface {
+func newFakeCohorts(fake *FakeKueueV1beta2) typedkueuev1beta2.CohortInterface {
 	return &fakeCohorts{
 		gentype.NewFakeClientWithListAndApply[*v1beta2.Cohort, *v1beta2.CohortList, *kueuev1beta2.CohortApplyConfiguration](
 			fake.Fake,
-			namespace,
+			"",
 			v1beta2.SchemeGroupVersion.WithResource("cohorts"),
 			v1beta2.SchemeGroupVersion.WithKind("Cohort"),
 			func() *v1beta2.Cohort { return &v1beta2.Cohort{} },
diff --git a/client-go/clientset/versioned/typed/kueue/v1beta2/fake/fake_kueue_client.go b/client-go/clientset/versioned/typed/kueue/v1beta2/fake/fake_kueue_client.go
index fb3cf79ba..91d096a13 100644
--- a/client-go/clientset/versioned/typed/kueue/v1beta2/fake/fake_kueue_client.go
+++ b/client-go/clientset/versioned/typed/kueue/v1beta2/fake/fake_kueue_client.go
@@ -35,8 +35,8 @@ func (c *FakeKueueV1beta2) ClusterQueues() v1beta2.ClusterQueueInterface {
 	return newFakeClusterQueues(c)
 }
 
-func (c *FakeKueueV1beta2) Cohorts(namespace string) v1beta2.CohortInterface {
-	return newFakeCohorts(c, namespace)
+func (c *FakeKueueV1beta2) Cohorts() v1beta2.CohortInterface {
+	return newFakeCohorts(c)
 }
 
 func (c *FakeKueueV1beta2) LocalQueues(namespace string) v1beta2.LocalQueueInterface {
diff --git a/client-go/clientset/versioned/typed/kueue/v1beta2/kueue_client.go b/client-go/clientset/versioned/typed/kueue/v1beta2/kueue_client.go
index ffa61483f..4ad4b6d50 100644
--- a/client-go/clientset/versioned/typed/kueue/v1beta2/kueue_client.go
+++ b/client-go/clientset/versioned/typed/kueue/v1beta2/kueue_client.go
@@ -53,8 +53,8 @@ func (c *KueueV1beta2Client) ClusterQueues() ClusterQueueInterface {
 	return newClusterQueues(c)
 }
 
-func (c *KueueV1beta2Client) Cohorts(namespace string) CohortInterface {
-	return newCohorts(c, namespace)
+func (c *KueueV1beta2Client) Cohorts() CohortInterface {
+	return newCohorts(c)
 }
 
 func (c *KueueV1beta2Client) LocalQueues(namespace string) LocalQueueInterface {
diff --git a/client-go/informers/externalversions/kueue/v1beta1/cohort.go b/client-go/informers/externalversions/kueue/v1beta1/cohort.go
index cdc36fb12..205eb53c3 100644
--- a/client-go/informers/externalversions/kueue/v1beta1/cohort.go
+++ b/client-go/informers/externalversions/kueue/v1beta1/cohort.go
@@ -41,45 +41,44 @@ type CohortInformer interface {
 type cohortInformer struct {
 	factory          internalinterfaces.SharedInformerFactory
 	tweakListOptions internalinterfaces.TweakListOptionsFunc
-	namespace        string
 }
 
 // NewCohortInformer constructs a new informer for Cohort type.
 // Always prefer using an informer factory to get a shared informer instead of getting an independent
 // one. This reduces memory footprint and number of connections to the server.
-func NewCohortInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
-	return NewFilteredCohortInformer(client, namespace, resyncPeriod, indexers, nil)
+func NewCohortInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
+	return NewFilteredCohortInformer(client, resyncPeriod, indexers, nil)
 }
 
 // NewFilteredCohortInformer constructs a new informer for Cohort type.
 // Always prefer using an informer factory to get a shared informer instead of getting an independent
 // one. This reduces memory footprint and number of connections to the server.
-func NewFilteredCohortInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
+func NewFilteredCohortInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
 	return cache.NewSharedIndexInformer(
 		&cache.ListWatch{
 			ListFunc: func(options v1.ListOptions) (runtime.Object, error) {
 				if tweakListOptions != nil {
 					tweakListOptions(&options)
 				}
-				return client.KueueV1beta1().Cohorts(namespace).List(context.Background(), options)
+				return client.KueueV1beta1().Cohorts().List(context.Background(), options)
 			},
 			WatchFunc: func(options v1.ListOptions) (watch.Interface, error) {
 				if tweakListOptions != nil {
 					tweakListOptions(&options)
 				}
-				return client.KueueV1beta1().Cohorts(namespace).Watch(context.Background(), options)
+				return client.KueueV1beta1().Cohorts().Watch(context.Background(), options)
 			},
 			ListWithContextFunc: func(ctx context.Context, options v1.ListOptions) (runtime.Object, error) {
 				if tweakListOptions != nil {
 					tweakListOptions(&options)
 				}
-				return client.KueueV1beta1().Cohorts(namespace).List(ctx, options)
+				return client.KueueV1beta1().Cohorts().List(ctx, options)
 			},
 			WatchFuncWithContext: func(ctx context.Context, options v1.ListOptions) (watch.Interface, error) {
 				if tweakListOptions != nil {
 					tweakListOptions(&options)
 				}
-				return client.KueueV1beta1().Cohorts(namespace).Watch(ctx, options)
+				return client.KueueV1beta1().Cohorts().Watch(ctx, options)
 			},
 		},
 		&apiskueuev1beta1.Cohort{},
@@ -89,7 +88,7 @@ func NewFilteredCohortInformer(client versioned.Interface, namespace string, res
 }
 
 func (f *cohortInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
-	return NewFilteredCohortInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
+	return NewFilteredCohortInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
 }
 
 func (f *cohortInformer) Informer() cache.SharedIndexInformer {
diff --git a/client-go/informers/externalversions/kueue/v1beta1/interface.go b/client-go/informers/externalversions/kueue/v1beta1/interface.go
index e0882502d..1e4f4f374 100644
--- a/client-go/informers/externalversions/kueue/v1beta1/interface.go
+++ b/client-go/informers/externalversions/kueue/v1beta1/interface.go
@@ -70,7 +70,7 @@ func (v *version) ClusterQueues() ClusterQueueInformer {
 
 // Cohorts returns a CohortInformer.
 func (v *version) Cohorts() CohortInformer {
-	return &cohortInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
+	return &cohortInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}
 }
 
 // LocalQueues returns a LocalQueueInformer.
diff --git a/client-go/informers/externalversions/kueue/v1beta2/cohort.go b/client-go/informers/externalversions/kueue/v1beta2/cohort.go
index 60c5fcc98..785d95959 100644
--- a/client-go/informers/externalversions/kueue/v1beta2/cohort.go
+++ b/client-go/informers/externalversions/kueue/v1beta2/cohort.go
@@ -41,45 +41,44 @@ type CohortInformer interface {
 type cohortInformer struct {
 	factory          internalinterfaces.SharedInformerFactory
 	tweakListOptions internalinterfaces.TweakListOptionsFunc
-	namespace        string
 }
 
 // NewCohortInformer constructs a new informer for Cohort type.
 // Always prefer using an informer factory to get a shared informer instead of getting an independent
 // one. This reduces memory footprint and number of connections to the server.
-func NewCohortInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
-	return NewFilteredCohortInformer(client, namespace, resyncPeriod, indexers, nil)
+func NewCohortInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
+	return NewFilteredCohortInformer(client, resyncPeriod, indexers, nil)
 }
 
 // NewFilteredCohortInformer constructs a new informer for Cohort type.
 // Always prefer using an informer factory to get a shared informer instead of getting an independent
 // one. This reduces memory footprint and number of connections to the server.
-func NewFilteredCohortInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
+func NewFilteredCohortInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
 	return cache.NewSharedIndexInformer(
 		&cache.ListWatch{
 			ListFunc: func(options v1.ListOptions) (runtime.Object, error) {
 				if tweakListOptions != nil {
 					tweakListOptions(&options)
 				}
-				return client.KueueV1beta2().Cohorts(namespace).List(context.Background(), options)
+				return client.KueueV1beta2().Cohorts().List(context.Background(), options)
 			},
 			WatchFunc: func(options v1.ListOptions) (watch.Interface, error) {
 				if tweakListOptions != nil {
 					tweakListOptions(&options)
 				}
-				return client.KueueV1beta2().Cohorts(namespace).Watch(context.Background(), options)
+				return client.KueueV1beta2().Cohorts().Watch(context.Background(), options)
 			},
 			ListWithContextFunc: func(ctx context.Context, options v1.ListOptions) (runtime.Object, error) {
 				if tweakListOptions != nil {
 					tweakListOptions(&options)
 				}
-				return client.KueueV1beta2().Cohorts(namespace).List(ctx, options)
+				return client.KueueV1beta2().Cohorts().List(ctx, options)
 			},
 			WatchFuncWithContext: func(ctx context.Context, options v1.ListOptions) (watch.Interface, error) {
 				if tweakListOptions != nil {
 					tweakListOptions(&options)
 				}
-				return client.KueueV1beta2().Cohorts(namespace).Watch(ctx, options)
+				return client.KueueV1beta2().Cohorts().Watch(ctx, options)
 			},
 		},
 		&apiskueuev1beta2.Cohort{},
@@ -89,7 +88,7 @@ func NewFilteredCohortInformer(client versioned.Interface, namespace string, res
 }
 
 func (f *cohortInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
-	return NewFilteredCohortInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
+	return NewFilteredCohortInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
 }
 
 func (f *cohortInformer) Informer() cache.SharedIndexInformer {
diff --git a/client-go/informers/externalversions/kueue/v1beta2/interface.go b/client-go/informers/externalversions/kueue/v1beta2/interface.go
index 7c431b5eb..dc4ed828e 100644
--- a/client-go/informers/externalversions/kueue/v1beta2/interface.go
+++ b/client-go/informers/externalversions/kueue/v1beta2/interface.go
@@ -70,7 +70,7 @@ func (v *version) ClusterQueues() ClusterQueueInformer {
 
 // Cohorts returns a CohortInformer.
 func (v *version) Cohorts() CohortInformer {
-	return &cohortInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
+	return &cohortInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}
 }
 
 // LocalQueues returns a LocalQueueInformer.
diff --git a/client-go/listers/kueue/v1beta1/cohort.go b/client-go/listers/kueue/v1beta1/cohort.go
index 6a496f6c9..0c1e85cad 100644
--- a/client-go/listers/kueue/v1beta1/cohort.go
+++ b/client-go/listers/kueue/v1beta1/cohort.go
@@ -30,8 +30,9 @@ type CohortLister interface {
 	// List lists all Cohorts in the indexer.
 	// Objects returned here must be treated as read-only.
 	List(selector labels.Selector) (ret []*kueuev1beta1.Cohort, err error)
-	// Cohorts returns an object that can list and get Cohorts.
-	Cohorts(namespace string) CohortNamespaceLister
+	// Get retrieves the Cohort from the index for a given name.
+	// Objects returned here must be treated as read-only.
+	Get(name string) (*kueuev1beta1.Cohort, error)
 	CohortListerExpansion
 }
 
@@ -44,26 +45,3 @@ type cohortLister struct {
 func NewCohortLister(indexer cache.Indexer) CohortLister {
 	return &cohortLister{listers.New[*kueuev1beta1.Cohort](indexer, kueuev1beta1.Resource("cohort"))}
 }
-
-// Cohorts returns an object that can list and get Cohorts.
-func (s *cohortLister) Cohorts(namespace string) CohortNamespaceLister {
-	return cohortNamespaceLister{listers.NewNamespaced[*kueuev1beta1.Cohort](s.ResourceIndexer, namespace)}
-}
-
-// CohortNamespaceLister helps list and get Cohorts.
-// All objects returned here must be treated as read-only.
-type CohortNamespaceLister interface {
-	// List lists all Cohorts in the indexer for a given namespace.
-	// Objects returned here must be treated as read-only.
-	List(selector labels.Selector) (ret []*kueuev1beta1.Cohort, err error)
-	// Get retrieves the Cohort from the indexer for a given namespace and name.
-	// Objects returned here must be treated as read-only.
-	Get(name string) (*kueuev1beta1.Cohort, error)
-	CohortNamespaceListerExpansion
-}
-
-// cohortNamespaceLister implements the CohortNamespaceLister
-// interface.
-type cohortNamespaceLister struct {
-	listers.ResourceIndexer[*kueuev1beta1.Cohort]
-}
diff --git a/client-go/listers/kueue/v1beta1/expansion_generated.go b/client-go/listers/kueue/v1beta1/expansion_generated.go
index 357b54ed7..c1a01bcb9 100644
--- a/client-go/listers/kueue/v1beta1/expansion_generated.go
+++ b/client-go/listers/kueue/v1beta1/expansion_generated.go
@@ -29,10 +29,6 @@ type ClusterQueueListerExpansion interface{}
 // CohortLister.
 type CohortListerExpansion interface{}
 
-// CohortNamespaceListerExpansion allows custom methods to be added to
-// CohortNamespaceLister.
-type CohortNamespaceListerExpansion interface{}
-
 // LocalQueueListerExpansion allows custom methods to be added to
 // LocalQueueLister.
 type LocalQueueListerExpansion interface{}
diff --git a/client-go/listers/kueue/v1beta2/cohort.go b/client-go/listers/kueue/v1beta2/cohort.go
index ebb56aeb6..73841e788 100644
--- a/client-go/listers/kueue/v1beta2/cohort.go
+++ b/client-go/listers/kueue/v1beta2/cohort.go
@@ -30,8 +30,9 @@ type CohortLister interface {
 	// List lists all Cohorts in the indexer.
 	// Objects returned here must be treated as read-only.
 	List(selector labels.Selector) (ret []*kueuev1beta2.Cohort, err error)
-	// Cohorts returns an object that can list and get Cohorts.
-	Cohorts(namespace string) CohortNamespaceLister
+	// Get retrieves the Cohort from the index for a given name.
+	// Objects returned here must be treated as read-only.
+	Get(name string) (*kueuev1beta2.Cohort, error)
 	CohortListerExpansion
 }
 
@@ -44,26 +45,3 @@ type cohortLister struct {
 func NewCohortLister(indexer cache.Indexer) CohortLister {
 	return &cohortLister{listers.New[*kueuev1beta2.Cohort](indexer, kueuev1beta2.Resource("cohort"))}
 }
-
-// Cohorts returns an object that can list and get Cohorts.
-func (s *cohortLister) Cohorts(namespace string) CohortNamespaceLister {
-	return cohortNamespaceLister{listers.NewNamespaced[*kueuev1beta2.Cohort](s.ResourceIndexer, namespace)}
-}
-
-// CohortNamespaceLister helps list and get Cohorts.
-// All objects returned here must be treated as read-only.
-type CohortNamespaceLister interface {
-	// List lists all Cohorts in the indexer for a given namespace.
-	// Objects returned here must be treated as read-only.
-	List(selector labels.Selector) (ret []*kueuev1beta2.Cohort, err error)
-	// Get retrieves the Cohort from the indexer for a given namespace and name.
-	// Objects returned here must be treated as read-only.
-	Get(name string) (*kueuev1beta2.Cohort, error)
-	CohortNamespaceListerExpansion
-}
-
-// cohortNamespaceLister implements the CohortNamespaceLister
-// interface.
-type cohortNamespaceLister struct {
-	listers.ResourceIndexer[*kueuev1beta2.Cohort]
-}
diff --git a/client-go/listers/kueue/v1beta2/expansion_generated.go b/client-go/listers/kueue/v1beta2/expansion_generated.go
index 8d0039064..0ef35d4ea 100644
--- a/client-go/listers/kueue/v1beta2/expansion_generated.go
+++ b/client-go/listers/kueue/v1beta2/expansion_generated.go
@@ -29,10 +29,6 @@ type ClusterQueueListerExpansion interface{}
 // CohortLister.
 type CohortListerExpansion interface{}
 
-// CohortNamespaceListerExpansion allows custom methods to be added to
-// CohortNamespaceLister.
-type CohortNamespaceListerExpansion interface{}
-
 // LocalQueueListerExpansion allows custom methods to be added to
 // LocalQueueLister.
 type LocalQueueListerExpansion interface{}
diff --git a/config/components/crd/bases/kueue.x-k8s.io_clusterqueues.yaml b/config/components/crd/bases/kueue.x-k8s.io_clusterqueues.yaml
index 49f62c81d..6294ebb91 100644
--- a/config/components/crd/bases/kueue.x-k8s.io_clusterqueues.yaml
+++ b/config/components/crd/bases/kueue.x-k8s.io_clusterqueues.yaml
@@ -1384,31 +1384,6 @@ spec:
                   when participating in Fair Sharing.
                   This is recorded only when Fair Sharing is enabled in the Kueue configuration.
                 properties:
-                  admissionFairSharingStatus:
-                    description: admissionFairSharingStatus represents information
-                      relevant to the Admission Fair Sharing
-                    properties:
-                      consumedResources:
-                        additionalProperties:
-                          anyOf:
-                          - type: integer
-                          - type: string
-                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
-                          x-kubernetes-int-or-string: true
-                        description: |-
-                          consumedResources represents the aggregated usage of resources over time,
-                          with decaying function applied.
-                          The value is populated if usage consumption functionality is enabled in Kueue config.
-                        type: object
-                      lastUpdate:
-                        description: lastUpdate is the time when share and consumed
-                          resources were updated.
-                        format: date-time
-                        type: string
-                    required:
-                    - consumedResources
-                    - lastUpdate
-                    type: object
                   weightedShare:
                     description: |-
                       weightedShare represents the maximum of the ratios of usage
diff --git a/config/components/crd/bases/kueue.x-k8s.io_cohorts.yaml b/config/components/crd/bases/kueue.x-k8s.io_cohorts.yaml
index add75e420..cdddd24eb 100644
--- a/config/components/crd/bases/kueue.x-k8s.io_cohorts.yaml
+++ b/config/components/crd/bases/kueue.x-k8s.io_cohorts.yaml
@@ -526,31 +526,6 @@ spec:
                   when participating in Fair Sharing.
                   The is recorded only when Fair Sharing is enabled in the Kueue configuration.
                 properties:
-                  admissionFairSharingStatus:
-                    description: admissionFairSharingStatus represents information
-                      relevant to the Admission Fair Sharing
-                    properties:
-                      consumedResources:
-                        additionalProperties:
-                          anyOf:
-                          - type: integer
-                          - type: string
-                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
-                          x-kubernetes-int-or-string: true
-                        description: |-
-                          consumedResources represents the aggregated usage of resources over time,
-                          with decaying function applied.
-                          The value is populated if usage consumption functionality is enabled in Kueue config.
-                        type: object
-                      lastUpdate:
-                        description: lastUpdate is the time when share and consumed
-                          resources were updated.
-                        format: date-time
-                        type: string
-                    required:
-                    - consumedResources
-                    - lastUpdate
-                    type: object
                   weightedShare:
                     description: |-
                       weightedShare represents the maximum of the ratios of usage
diff --git a/config/components/crd/kustomization.yaml b/config/components/crd/kustomization.yaml
index c5779dd70..0c7988be2 100644
--- a/config/components/crd/kustomization.yaml
+++ b/config/components/crd/kustomization.yaml
@@ -20,6 +20,7 @@ patches:
 # patches here are for enabling the conversion webhook for each CRD
 - path: patches/webhook_in_localqueues.yaml
 - path: patches/webhook_in_clusterqueues.yaml
+- path: patches/webhook_in_cohorts.yaml
 - path: patches/webhook_in_workloads.yaml
 #- path: patches/webhook_in_resourceflavors.yaml
 #+kubebuilder:scaffold:crdkustomizewebhookpatch
diff --git a/config/components/crd/patches/webhook_in_cohorts.yaml b/config/components/crd/patches/webhook_in_cohorts.yaml
new file mode 100644
index 000000000..96328b84e
--- /dev/null
+++ b/config/components/crd/patches/webhook_in_cohorts.yaml
@@ -0,0 +1,16 @@
+# The following patch enables a conversion webhook for the CRD
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+  name: cohorts.kueue.x-k8s.io
+spec:
+  conversion:
+    strategy: Webhook
+    webhook:
+      clientConfig:
+        service:
+          namespace: system
+          name: webhook-service
+          path: /convert
+      conversionReviewVersions:
+      - v1
diff --git a/pkg/cache/queue/cluster_queue.go b/pkg/cache/queue/cluster_queue.go
index 585e4f50f..926ff5e1d 100644
--- a/pkg/cache/queue/cluster_queue.go
+++ b/pkg/cache/queue/cluster_queue.go
@@ -28,6 +28,7 @@ import (
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/apimachinery/pkg/labels"
 	"k8s.io/apimachinery/pkg/types"
+	"k8s.io/klog/v2"
 	"k8s.io/utils/clock"
 	ctrl "sigs.k8s.io/controller-runtime"
 	"sigs.k8s.io/controller-runtime/pkg/client"
@@ -567,8 +568,8 @@ func queueOrderingFunc(ctx context.Context, c client.Client, wo workload.Orderin
 			case errB != nil:
 				log.V(2).Error(errB, "Error determining LocalQueue usage")
 			default:
-				log.V(3).Info("Resource usage from LocalQueue", "LocalQueue", a.Obj.Spec.QueueName, "Usage", lqAUsage)
-				log.V(3).Info("Resource usage from LocalQueue", "LocalQueue", b.Obj.Spec.QueueName, "Usage", lqBUsage)
+				log.V(3).Info("Resource usage from LocalQueue", "localQueue", klog.KRef(a.Obj.Namespace, string(a.Obj.Spec.QueueName)), "usage", lqAUsage)
+				log.V(3).Info("Resource usage from LocalQueue", "localQueue", klog.KRef(b.Obj.Namespace, string(b.Obj.Spec.QueueName)), "usage", lqBUsage)
 				if lqAUsage != lqBUsage {
 					return lqAUsage < lqBUsage
 				}
diff --git a/pkg/controller/core/localqueue_controller.go b/pkg/controller/core/localqueue_controller.go
index b0c56ac16..0b4eb38ed 100644
--- a/pkg/controller/core/localqueue_controller.go
+++ b/pkg/controller/core/localqueue_controller.go
@@ -262,10 +262,10 @@ func (r *LocalQueueReconciler) Update(e event.TypedUpdateEvent[*kueue.LocalQueue
 
 func (r *LocalQueueReconciler) initializeAdmissionFsStatus(lq *kueue.LocalQueue) bool {
 	if lq.Status.FairSharing == nil {
-		lq.Status.FairSharing = &kueue.FairSharingStatus{}
+		lq.Status.FairSharing = &kueue.LocalQueueFairSharingStatus{}
 	}
 	if lq.Status.FairSharing.AdmissionFairSharingStatus == nil {
-		lq.Status.FairSharing.AdmissionFairSharingStatus = &kueue.AdmissionFairSharingStatus{
+		lq.Status.FairSharing.AdmissionFairSharingStatus = &kueue.LocalQueueAdmissionFairSharingStatus{
 			LastUpdate: metav1.NewTime(r.clock.Now()),
 		}
 		return true
diff --git a/pkg/util/cert/cert.go b/pkg/util/cert/cert.go
index 18c6d4e5e..b4a68984e 100644
--- a/pkg/util/cert/cert.go
+++ b/pkg/util/cert/cert.go
@@ -73,6 +73,9 @@ func ManageCerts(mgr ctrl.Manager, cfg config.Configuration, setupFinished chan
 		}, {
 			Type: cert.CRDConversion,
 			Name: "workloads.kueue.x-k8s.io",
+		}, {
+			Type: cert.CRDConversion,
+			Name: "cohorts.kueue.x-k8s.io",
 		}},
 		// When kueue is running in the leader election mode,
 		// we expect webhook server will run in primary and secondary instance
diff --git a/site/content/en/docs/reference/kueue.v1beta2.md b/site/content/en/docs/reference/kueue.v1beta2.md
index d2ffb7a9f..c8175acae 100644
--- a/site/content/en/docs/reference/kueue.v1beta2.md
+++ b/site/content/en/docs/reference/kueue.v1beta2.md
@@ -671,39 +671,6 @@ If empty, the AdmissionCheck will run for all workloads submitted to the Cluster
 </tbody>
 </table>
 
-## `AdmissionFairSharingStatus`     {#kueue-x-k8s-io-v1beta2-AdmissionFairSharingStatus}
-    
-
-**Appears in:**
-
-- [FairSharingStatus](#kueue-x-k8s-io-v1beta2-FairSharingStatus)
-
-
-
-<table class="table">
-<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
-<tbody>
-    
-  
-<tr><td><code>consumedResources</code> <B>[Required]</B><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#resourcelist-v1-core"><code>k8s.io/api/core/v1.ResourceList</code></a>
-</td>
-<td>
-   <p>consumedResources represents the aggregated usage of resources over time,
-with decaying function applied.
-The value is populated if usage consumption functionality is enabled in Kueue config.</p>
-</td>
-</tr>
-<tr><td><code>lastUpdate</code> <B>[Required]</B><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta"><code>k8s.io/apimachinery/pkg/apis/meta/v1.Time</code></a>
-</td>
-<td>
-   <p>lastUpdate is the time when share and consumed resources were updated.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
 ## `AdmissionMode`     {#kueue-x-k8s-io-v1beta2-AdmissionMode}
     
 (Alias of `string`)
@@ -1350,8 +1317,6 @@ When not 0, Weight must be greater than 10^-9.</p>
 
 - [CohortStatus](#kueue-x-k8s-io-v1beta2-CohortStatus)
 
-- [LocalQueueStatus](#kueue-x-k8s-io-v1beta2-LocalQueueStatus)
-
 
 <p>FairSharingStatus contains the information about the current status of Fair Sharing.</p>
 
@@ -1374,13 +1339,6 @@ weight of zero and is borrowing, this will return
 9223372036854775807, the maximum possible share value.</p>
 </td>
 </tr>
-<tr><td><code>admissionFairSharingStatus</code><br/>
-<a href="#kueue-x-k8s-io-v1beta2-AdmissionFairSharingStatus"><code>AdmissionFairSharingStatus</code></a>
-</td>
-<td>
-   <p>admissionFairSharingStatus represents information relevant to the Admission Fair Sharing</p>
-</td>
-</tr>
 </tbody>
 </table>
 
@@ -1571,6 +1529,78 @@ which the kueue controller manager is running. The config should be stored in th
 </tbody>
 </table>
 
+## `LocalQueueAdmissionFairSharingStatus`     {#kueue-x-k8s-io-v1beta2-LocalQueueAdmissionFairSharingStatus}
+    
+
+**Appears in:**
+
+- [LocalQueueFairSharingStatus](#kueue-x-k8s-io-v1beta2-LocalQueueFairSharingStatus)
+
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+  
+<tr><td><code>consumedResources</code> <B>[Required]</B><br/>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#resourcelist-v1-core"><code>k8s.io/api/core/v1.ResourceList</code></a>
+</td>
+<td>
+   <p>consumedResources represents the aggregated usage of resources over time,
+with decaying function applied.
+The value is populated if usage consumption functionality is enabled in Kueue config.</p>
+</td>
+</tr>
+<tr><td><code>lastUpdate</code> <B>[Required]</B><br/>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta"><code>k8s.io/apimachinery/pkg/apis/meta/v1.Time</code></a>
+</td>
+<td>
+   <p>lastUpdate is the time when share and consumed resources were updated.</p>
+</td>
+</tr>
+</tbody>
+</table>
+
+## `LocalQueueFairSharingStatus`     {#kueue-x-k8s-io-v1beta2-LocalQueueFairSharingStatus}
+    
+
+**Appears in:**
+
+- [LocalQueueStatus](#kueue-x-k8s-io-v1beta2-LocalQueueStatus)
+
+
+<p>LocalQueueFairSharingStatus contains the information about the current status of Fair Sharing.</p>
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+  
+<tr><td><code>weightedShare</code> <B>[Required]</B><br/>
+<code>int64</code>
+</td>
+<td>
+   <p>weightedShare represents the maximum of the ratios of usage
+above nominal quota to the lendable resources in the
+Cohort, among all the resources provided by the Node, and
+divided by the weight.  If zero, it means that the usage of
+the Node is below the nominal quota.  If the Node has a
+weight of zero and is borrowing, this will return
+9223372036854775807, the maximum possible share value.</p>
+</td>
+</tr>
+<tr><td><code>admissionFairSharingStatus</code><br/>
+<a href="#kueue-x-k8s-io-v1beta2-LocalQueueAdmissionFairSharingStatus"><code>LocalQueueAdmissionFairSharingStatus</code></a>
+</td>
+<td>
+   <p>admissionFairSharingStatus represents information relevant to the Admission Fair Sharing</p>
+</td>
+</tr>
+</tbody>
+</table>
+
 ## `LocalQueueFlavorUsage`     {#kueue-x-k8s-io-v1beta2-LocalQueueFlavorUsage}
     
 
@@ -1762,7 +1792,7 @@ workloads assigned to this LocalQueue.</p>
 </td>
 </tr>
 <tr><td><code>fairSharing</code><br/>
-<a href="#kueue-x-k8s-io-v1beta2-FairSharingStatus"><code>FairSharingStatus</code></a>
+<a href="#kueue-x-k8s-io-v1beta2-LocalQueueFairSharingStatus"><code>LocalQueueFairSharingStatus</code></a>
 </td>
 <td>
    <p>fairSharing contains the information about the current status of fair sharing.</p>
diff --git a/site/static/examples/admin/single-clusterqueue-setup.yaml b/site/static/examples/admin/single-clusterqueue-setup.yaml
index 2ee6dd52d..2e4b2ef4d 100644
--- a/site/static/examples/admin/single-clusterqueue-setup.yaml
+++ b/site/static/examples/admin/single-clusterqueue-setup.yaml
@@ -1,4 +1,4 @@
-apiVersion: kueue.x-k8s.io/v1beta2
+apiVersion: kueue.x-k8s.io/v1beta1
 kind: ResourceFlavor
 metadata:
   name: "default-flavor"



Test patch:
diff --git a/apis/kueue/v1beta1/clusterqueue_conversion_test.go b/apis/kueue/v1beta1/clusterqueue_conversion_test.go
index e5c15565b..66ebb34ba 100644
--- a/apis/kueue/v1beta1/clusterqueue_conversion_test.go
+++ b/apis/kueue/v1beta1/clusterqueue_conversion_test.go
@@ -20,6 +20,8 @@ import (
 	"testing"
 
 	"github.com/google/go-cmp/cmp"
+	corev1 "k8s.io/api/core/v1"
+	"k8s.io/apimachinery/pkg/api/resource"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 
 	"sigs.k8s.io/kueue/apis/kueue/v1beta2"
@@ -206,6 +208,15 @@ func TestClusterQueueConvertTo(t *testing.T) {
 					QueueingStrategy: StrictFIFO,
 				},
 				Status: ClusterQueueStatus{
+					FairSharing: &FairSharingStatus{
+						WeightedShare: 100,
+						AdmissionFairSharingStatus: &AdmissionFairSharingStatus{
+							ConsumedResources: corev1.ResourceList{
+								corev1.ResourceCPU: resource.MustParse("10"),
+							},
+							LastUpdate: metav1.Now(),
+						},
+					},
 					Conditions: []metav1.Condition{
 						{
 							Type:   "Active",
@@ -232,6 +243,9 @@ func TestClusterQueueConvertTo(t *testing.T) {
 					QueueingStrategy: v1beta2.StrictFIFO,
 				},
 				Status: v1beta2.ClusterQueueStatus{
+					FairSharing: &v1beta2.FairSharingStatus{
+						WeightedShare: 100,
+					},
 					Conditions: []metav1.Condition{
 						{
 							Type:   "Active",
@@ -347,6 +361,9 @@ func TestClusterQueueConvertFrom(t *testing.T) {
 					QueueingStrategy: v1beta2.StrictFIFO,
 				},
 				Status: v1beta2.ClusterQueueStatus{
+					FairSharing: &v1beta2.FairSharingStatus{
+						WeightedShare: 100,
+					},
 					Conditions: []metav1.Condition{
 						{
 							Type:   "Active",
@@ -368,6 +385,9 @@ func TestClusterQueueConvertFrom(t *testing.T) {
 					QueueingStrategy: StrictFIFO,
 				},
 				Status: ClusterQueueStatus{
+					FairSharing: &FairSharingStatus{
+						WeightedShare: 100,
+					},
 					Conditions: []metav1.Condition{
 						{
 							Type:   "Active",
diff --git a/apis/kueue/v1beta1/localqueue_conversion_test.go b/apis/kueue/v1beta1/localqueue_conversion_test.go
index f7c5821ef..994dd67a7 100644
--- a/apis/kueue/v1beta1/localqueue_conversion_test.go
+++ b/apis/kueue/v1beta1/localqueue_conversion_test.go
@@ -32,6 +32,7 @@ func TestLocalQueueConvertTo(t *testing.T) {
 		Name:      "test-localqueue",
 		Namespace: "default",
 	}
+	now := metav1.Now()
 
 	testCases := map[string]struct {
 		input    *LocalQueue
@@ -172,6 +173,15 @@ func TestLocalQueueConvertTo(t *testing.T) {
 					ClusterQueue: "cluster-queue-1",
 				},
 				Status: LocalQueueStatus{
+					FairSharing: &FairSharingStatus{
+						WeightedShare: 100,
+						AdmissionFairSharingStatus: &AdmissionFairSharingStatus{
+							ConsumedResources: corev1.ResourceList{
+								corev1.ResourceCPU: resource.MustParse("10"),
+							},
+							LastUpdate: now,
+						},
+					},
 					Conditions: []metav1.Condition{
 						{
 							Type:   "Active",
@@ -199,6 +209,15 @@ func TestLocalQueueConvertTo(t *testing.T) {
 					ClusterQueue: "cluster-queue-1",
 				},
 				Status: v1beta2.LocalQueueStatus{
+					FairSharing: &v1beta2.LocalQueueFairSharingStatus{
+						WeightedShare: 100,
+						AdmissionFairSharingStatus: &v1beta2.LocalQueueAdmissionFairSharingStatus{
+							ConsumedResources: corev1.ResourceList{
+								corev1.ResourceCPU: resource.MustParse("10"),
+							},
+							LastUpdate: now,
+						},
+					},
 					Conditions: []metav1.Condition{
 						{
 							Type:   "Active",
diff --git a/pkg/cache/queue/cluster_queue_test.go b/pkg/cache/queue/cluster_queue_test.go
index a67cdaa61..f8770ea05 100644
--- a/pkg/cache/queue/cluster_queue_test.go
+++ b/pkg/cache/queue/cluster_queue_test.go
@@ -899,8 +899,8 @@ func TestFsAdmission(t *testing.T) {
 						Weight: ptr.To(resource.MustParse("1")),
 					}).
 					FairSharingStatus(
-						&kueue.FairSharingStatus{
-							AdmissionFairSharingStatus: &kueue.AdmissionFairSharingStatus{
+						&kueue.LocalQueueFairSharingStatus{
+							AdmissionFairSharingStatus: &kueue.LocalQueueAdmissionFairSharingStatus{
 								ConsumedResources: map[corev1.ResourceName]resource.Quantity{
 									corev1.ResourceCPU: resource.MustParse("2"),
 								},
@@ -913,8 +913,8 @@ func TestFsAdmission(t *testing.T) {
 						Weight: ptr.To(resource.MustParse("1")),
 					}).
 					FairSharingStatus(
-						&kueue.FairSharingStatus{
-							AdmissionFairSharingStatus: &kueue.AdmissionFairSharingStatus{
+						&kueue.LocalQueueFairSharingStatus{
+							AdmissionFairSharingStatus: &kueue.LocalQueueAdmissionFairSharingStatus{
 								ConsumedResources: map[corev1.ResourceName]resource.Quantity{
 									corev1.ResourceCPU: resource.MustParse("1"),
 								},
@@ -939,8 +939,8 @@ func TestFsAdmission(t *testing.T) {
 						Weight: ptr.To(resource.MustParse("1")),
 					}).
 					FairSharingStatus(
-						&kueue.FairSharingStatus{
-							AdmissionFairSharingStatus: &kueue.AdmissionFairSharingStatus{
+						&kueue.LocalQueueFairSharingStatus{
+							AdmissionFairSharingStatus: &kueue.LocalQueueAdmissionFairSharingStatus{
 								ConsumedResources: map[corev1.ResourceName]resource.Quantity{
 									corev1.ResourceCPU: resource.MustParse("1"),
 									resourceGPU:        resource.MustParse("10"),
@@ -954,8 +954,8 @@ func TestFsAdmission(t *testing.T) {
 						Weight: ptr.To(resource.MustParse("1")),
 					}).
 					FairSharingStatus(
-						&kueue.FairSharingStatus{
-							AdmissionFairSharingStatus: &kueue.AdmissionFairSharingStatus{
+						&kueue.LocalQueueFairSharingStatus{
+							AdmissionFairSharingStatus: &kueue.LocalQueueAdmissionFairSharingStatus{
 								ConsumedResources: map[corev1.ResourceName]resource.Quantity{
 									corev1.ResourceCPU: resource.MustParse("1000"),
 									resourceGPU:        resource.MustParse("1"),
@@ -986,8 +986,8 @@ func TestFsAdmission(t *testing.T) {
 						Weight: ptr.To(resource.MustParse("1")),
 					}).
 					FairSharingStatus(
-						&kueue.FairSharingStatus{
-							AdmissionFairSharingStatus: &kueue.AdmissionFairSharingStatus{
+						&kueue.LocalQueueFairSharingStatus{
+							AdmissionFairSharingStatus: &kueue.LocalQueueAdmissionFairSharingStatus{
 								ConsumedResources: map[corev1.ResourceName]resource.Quantity{
 									corev1.ResourceCPU: resource.MustParse("10"),
 								},
@@ -1000,8 +1000,8 @@ func TestFsAdmission(t *testing.T) {
 						Weight: ptr.To(resource.MustParse("2")),
 					}).
 					FairSharingStatus(
-						&kueue.FairSharingStatus{
-							AdmissionFairSharingStatus: &kueue.AdmissionFairSharingStatus{
+						&kueue.LocalQueueFairSharingStatus{
+							AdmissionFairSharingStatus: &kueue.LocalQueueAdmissionFairSharingStatus{
 								ConsumedResources: map[corev1.ResourceName]resource.Quantity{
 									corev1.ResourceCPU: resource.MustParse("6"),
 								},
@@ -1026,8 +1026,8 @@ func TestFsAdmission(t *testing.T) {
 						Weight: ptr.To(resource.MustParse("1")),
 					}).
 					FairSharingStatus(
-						&kueue.FairSharingStatus{
-							AdmissionFairSharingStatus: &kueue.AdmissionFairSharingStatus{
+						&kueue.LocalQueueFairSharingStatus{
+							AdmissionFairSharingStatus: &kueue.LocalQueueAdmissionFairSharingStatus{
 								ConsumedResources: map[corev1.ResourceName]resource.Quantity{
 									corev1.ResourceCPU: resource.MustParse("10"),
 								},
diff --git a/pkg/controller/core/localqueue_controller_test.go b/pkg/controller/core/localqueue_controller_test.go
index 88bbe6775..eb04ab9bb 100644
--- a/pkg/controller/core/localqueue_controller_test.go
+++ b/pkg/controller/core/localqueue_controller_test.go
@@ -135,8 +135,8 @@ func TestLocalQueueReconcile(t *testing.T) {
 					Weight: ptr.To(resource.MustParse("1")),
 				}).
 				FairSharingStatus(
-					&kueue.FairSharingStatus{
-						AdmissionFairSharingStatus: &kueue.AdmissionFairSharingStatus{
+					&kueue.LocalQueueFairSharingStatus{
+						AdmissionFairSharingStatus: &kueue.LocalQueueAdmissionFairSharingStatus{
 							LastUpdate: metav1.NewTime(clock.Now().Add(-5 * time.Minute)),
 							ConsumedResources: map[corev1.ResourceName]resource.Quantity{
 								corev1.ResourceCPU: resource.MustParse("8")},
@@ -150,8 +150,8 @@ func TestLocalQueueReconcile(t *testing.T) {
 					Weight: ptr.To(resource.MustParse("1")),
 				}).
 				FairSharingStatus(
-					&kueue.FairSharingStatus{
-						AdmissionFairSharingStatus: &kueue.AdmissionFairSharingStatus{
+					&kueue.LocalQueueFairSharingStatus{
+						AdmissionFairSharingStatus: &kueue.LocalQueueAdmissionFairSharingStatus{
 							ConsumedResources: map[corev1.ResourceName]resource.Quantity{
 								corev1.ResourceCPU: resource.MustParse("4"),
 							},
@@ -174,8 +174,8 @@ func TestLocalQueueReconcile(t *testing.T) {
 					Weight: ptr.To(resource.MustParse("1")),
 				}).
 				FairSharingStatus(
-					&kueue.FairSharingStatus{
-						AdmissionFairSharingStatus: &kueue.AdmissionFairSharingStatus{
+					&kueue.LocalQueueFairSharingStatus{
+						AdmissionFairSharingStatus: &kueue.LocalQueueAdmissionFairSharingStatus{
 							LastUpdate: metav1.NewTime(clock.Now().Add(-5 * time.Minute)),
 							ConsumedResources: map[corev1.ResourceName]resource.Quantity{
 								corev1.ResourceCPU: resource.MustParse("8")},
@@ -191,8 +191,8 @@ func TestLocalQueueReconcile(t *testing.T) {
 					Weight: ptr.To(resource.MustParse("1")),
 				}).
 				FairSharingStatus(
-					&kueue.FairSharingStatus{
-						AdmissionFairSharingStatus: &kueue.AdmissionFairSharingStatus{
+					&kueue.LocalQueueFairSharingStatus{
+						AdmissionFairSharingStatus: &kueue.LocalQueueAdmissionFairSharingStatus{
 							ConsumedResources: map[corev1.ResourceName]resource.Quantity{
 								corev1.ResourceCPU: resource.MustParse("6"),
 							},
@@ -223,8 +223,8 @@ func TestLocalQueueReconcile(t *testing.T) {
 					Weight: ptr.To(resource.MustParse("1")),
 				}).
 				FairSharingStatus(
-					&kueue.FairSharingStatus{
-						AdmissionFairSharingStatus: &kueue.AdmissionFairSharingStatus{
+					&kueue.LocalQueueFairSharingStatus{
+						AdmissionFairSharingStatus: &kueue.LocalQueueAdmissionFairSharingStatus{
 							LastUpdate: metav1.NewTime(clock.Now().Add(-5 * time.Minute)),
 							ConsumedResources: map[corev1.ResourceName]resource.Quantity{
 								corev1.ResourceCPU: resource.MustParse("8"),
@@ -242,8 +242,8 @@ func TestLocalQueueReconcile(t *testing.T) {
 					Weight: ptr.To(resource.MustParse("1")),
 				}).
 				FairSharingStatus(
-					&kueue.FairSharingStatus{
-						AdmissionFairSharingStatus: &kueue.AdmissionFairSharingStatus{
+					&kueue.LocalQueueFairSharingStatus{
+						AdmissionFairSharingStatus: &kueue.LocalQueueAdmissionFairSharingStatus{
 							ConsumedResources: map[corev1.ResourceName]resource.Quantity{
 								corev1.ResourceCPU: resource.MustParse("6"),
 								"GPU":              resource.MustParse("10"),
@@ -287,8 +287,8 @@ func TestLocalQueueReconcile(t *testing.T) {
 					Weight: ptr.To(resource.MustParse("1")),
 				}).
 				FairSharingStatus(
-					&kueue.FairSharingStatus{
-						AdmissionFairSharingStatus: &kueue.AdmissionFairSharingStatus{
+					&kueue.LocalQueueFairSharingStatus{
+						AdmissionFairSharingStatus: &kueue.LocalQueueAdmissionFairSharingStatus{
 							LastUpdate: metav1.NewTime(clock.Now().Add(-5 * time.Minute)),
 							ConsumedResources: map[corev1.ResourceName]resource.Quantity{
 								corev1.ResourceCPU: resource.MustParse("8")},
@@ -304,8 +304,8 @@ func TestLocalQueueReconcile(t *testing.T) {
 				ReservingWorkloads(1).
 				AdmittedWorkloads(1).
 				FairSharingStatus(
-					&kueue.FairSharingStatus{
-						AdmissionFairSharingStatus: &kueue.AdmissionFairSharingStatus{
+					&kueue.LocalQueueFairSharingStatus{
+						AdmissionFairSharingStatus: &kueue.LocalQueueAdmissionFairSharingStatus{
 							ConsumedResources: map[corev1.ResourceName]resource.Quantity{
 								corev1.ResourceCPU: resource.MustParse("6827m"),
 							},
@@ -336,8 +336,8 @@ func TestLocalQueueReconcile(t *testing.T) {
 					Weight: ptr.To(resource.MustParse("1")),
 				}).
 				FairSharingStatus(
-					&kueue.FairSharingStatus{
-						AdmissionFairSharingStatus: &kueue.AdmissionFairSharingStatus{
+					&kueue.LocalQueueFairSharingStatus{
+						AdmissionFairSharingStatus: &kueue.LocalQueueAdmissionFairSharingStatus{
 							LastUpdate: metav1.NewTime(clock.Now().Add(-5 * time.Minute)),
 							ConsumedResources: map[corev1.ResourceName]resource.Quantity{
 								corev1.ResourceCPU: resource.MustParse("8")},
@@ -351,8 +351,8 @@ func TestLocalQueueReconcile(t *testing.T) {
 					Weight: ptr.To(resource.MustParse("1")),
 				}).
 				FairSharingStatus(
-					&kueue.FairSharingStatus{
-						AdmissionFairSharingStatus: &kueue.AdmissionFairSharingStatus{
+					&kueue.LocalQueueFairSharingStatus{
+						AdmissionFairSharingStatus: &kueue.LocalQueueAdmissionFairSharingStatus{
 							ConsumedResources: map[corev1.ResourceName]resource.Quantity{
 								corev1.ResourceCPU: resource.MustParse("7980m"),
 							},
@@ -375,8 +375,8 @@ func TestLocalQueueReconcile(t *testing.T) {
 					Weight: ptr.To(resource.MustParse("1")),
 				}).
 				FairSharingStatus(
-					&kueue.FairSharingStatus{
-						AdmissionFairSharingStatus: &kueue.AdmissionFairSharingStatus{
+					&kueue.LocalQueueFairSharingStatus{
+						AdmissionFairSharingStatus: &kueue.LocalQueueAdmissionFairSharingStatus{
 							LastUpdate: metav1.NewTime(clock.Now().Add(-5 * time.Minute)),
 							ConsumedResources: map[corev1.ResourceName]resource.Quantity{
 								"GPU": resource.MustParse("8")},
@@ -392,8 +392,8 @@ func TestLocalQueueReconcile(t *testing.T) {
 				ReservingWorkloads(1).
 				AdmittedWorkloads(1).
 				FairSharingStatus(
-					&kueue.FairSharingStatus{
-						AdmissionFairSharingStatus: &kueue.AdmissionFairSharingStatus{
+					&kueue.LocalQueueFairSharingStatus{
+						AdmissionFairSharingStatus: &kueue.LocalQueueAdmissionFairSharingStatus{
 							ConsumedResources: map[corev1.ResourceName]resource.Quantity{
 								"GPU": resource.MustParse("6827m"),
 							},
@@ -424,8 +424,8 @@ func TestLocalQueueReconcile(t *testing.T) {
 					Weight: ptr.To(resource.MustParse("1")),
 				}).
 				FairSharingStatus(
-					&kueue.FairSharingStatus{
-						AdmissionFairSharingStatus: &kueue.AdmissionFairSharingStatus{
+					&kueue.LocalQueueFairSharingStatus{
+						AdmissionFairSharingStatus: &kueue.LocalQueueAdmissionFairSharingStatus{
 							LastUpdate: metav1.NewTime(clock.Now().Add(-5 * time.Minute)),
 							ConsumedResources: map[corev1.ResourceName]resource.Quantity{
 								"GPU": resource.MustParse("8")},
@@ -441,8 +441,8 @@ func TestLocalQueueReconcile(t *testing.T) {
 				ReservingWorkloads(1).
 				AdmittedWorkloads(1).
 				FairSharingStatus(
-					&kueue.FairSharingStatus{
-						AdmissionFairSharingStatus: &kueue.AdmissionFairSharingStatus{},
+					&kueue.LocalQueueFairSharingStatus{
+						AdmissionFairSharingStatus: &kueue.LocalQueueAdmissionFairSharingStatus{},
 					}).
 				Obj(),
 			runningWls: []kueue.Workload{
@@ -469,8 +469,8 @@ func TestLocalQueueReconcile(t *testing.T) {
 					Weight: ptr.To(resource.MustParse("1")),
 				}).
 				FairSharingStatus(
-					&kueue.FairSharingStatus{
-						AdmissionFairSharingStatus: &kueue.AdmissionFairSharingStatus{
+					&kueue.LocalQueueFairSharingStatus{
+						AdmissionFairSharingStatus: &kueue.LocalQueueAdmissionFairSharingStatus{
 							LastUpdate: metav1.NewTime(clock.Now().Add(-4 * time.Minute)),
 							ConsumedResources: map[corev1.ResourceName]resource.Quantity{
 								corev1.ResourceCPU: resource.MustParse("8")},
@@ -484,8 +484,8 @@ func TestLocalQueueReconcile(t *testing.T) {
 					Weight: ptr.To(resource.MustParse("1")),
 				}).
 				FairSharingStatus(
-					&kueue.FairSharingStatus{
-						AdmissionFairSharingStatus: &kueue.AdmissionFairSharingStatus{
+					&kueue.LocalQueueFairSharingStatus{
+						AdmissionFairSharingStatus: &kueue.LocalQueueAdmissionFairSharingStatus{
 							LastUpdate: metav1.NewTime(clock.Now().Add(-4 * time.Minute)),
 							ConsumedResources: map[corev1.ResourceName]resource.Quantity{
 								corev1.ResourceCPU: resource.MustParse("8")},
@@ -560,7 +560,7 @@ func TestLocalQueueReconcile(t *testing.T) {
 				cmpopts.EquateEmpty(),
 				util.IgnoreConditionTimestamps,
 				util.IgnoreObjectMetaResourceVersion,
-				cmpopts.IgnoreFields(kueue.AdmissionFairSharingStatus{}, "LastUpdate"),
+				cmpopts.IgnoreFields(kueue.LocalQueueAdmissionFairSharingStatus{}, "LastUpdate"),
 			}
 			if diff := cmp.Diff(tc.wantLocalQueue, gotLocalQueue, cmpOpts...); diff != "" {
 				t.Errorf("Workloads after reconcile (-want,+got):\n%s", diff)
diff --git a/pkg/scheduler/scheduler_afs_test.go b/pkg/scheduler/scheduler_afs_test.go
index 3185cd79e..320579443 100644
--- a/pkg/scheduler/scheduler_afs_test.go
+++ b/pkg/scheduler/scheduler_afs_test.go
@@ -64,9 +64,9 @@ func TestScheduleForAFS(t *testing.T) {
 		*utiltestingapi.MakeLocalQueue("lq-a", "default").
 			FairSharing(&kueue.FairSharing{Weight: ptr.To(resource.MustParse("1"))}).
 			ClusterQueue("cq1").
-			FairSharingStatus(&kueue.FairSharingStatus{
+			FairSharingStatus(&kueue.LocalQueueFairSharingStatus{
 				WeightedShare: 1,
-				AdmissionFairSharingStatus: &kueue.AdmissionFairSharingStatus{
+				AdmissionFairSharingStatus: &kueue.LocalQueueAdmissionFairSharingStatus{
 					ConsumedResources: corev1.ResourceList{},
 				},
 			}).
@@ -74,9 +74,9 @@ func TestScheduleForAFS(t *testing.T) {
 		*utiltestingapi.MakeLocalQueue("lq-b", "default").
 			FairSharing(&kueue.FairSharing{Weight: ptr.To(resource.MustParse("1"))}).
 			ClusterQueue("cq1").
-			FairSharingStatus(&kueue.FairSharingStatus{
+			FairSharingStatus(&kueue.LocalQueueFairSharingStatus{
 				WeightedShare: 1,
-				AdmissionFairSharingStatus: &kueue.AdmissionFairSharingStatus{
+				AdmissionFairSharingStatus: &kueue.LocalQueueAdmissionFairSharingStatus{
 					ConsumedResources: corev1.ResourceList{},
 				},
 			}).
@@ -84,9 +84,9 @@ func TestScheduleForAFS(t *testing.T) {
 		*utiltestingapi.MakeLocalQueue("lq-c", "default").
 			FairSharing(&kueue.FairSharing{Weight: ptr.To(resource.MustParse("1"))}).
 			ClusterQueue("cq1").
-			FairSharingStatus(&kueue.FairSharingStatus{
+			FairSharingStatus(&kueue.LocalQueueFairSharingStatus{
 				WeightedShare: 1,
-				AdmissionFairSharingStatus: &kueue.AdmissionFairSharingStatus{
+				AdmissionFairSharingStatus: &kueue.LocalQueueAdmissionFairSharingStatus{
 					ConsumedResources: corev1.ResourceList{},
 				},
 			}).
diff --git a/pkg/util/testing/v1beta2/wrappers.go b/pkg/util/testing/v1beta2/wrappers.go
index d3dcf6715..8a7091193 100644
--- a/pkg/util/testing/v1beta2/wrappers.go
+++ b/pkg/util/testing/v1beta2/wrappers.go
@@ -777,7 +777,7 @@ func (q *LocalQueueWrapper) Active(status metav1.ConditionStatus) *LocalQueueWra
 }
 
 // FairSharingStatus updates the fairSharing in status.
-func (q *LocalQueueWrapper) FairSharingStatus(status *kueue.FairSharingStatus) *LocalQueueWrapper {
+func (q *LocalQueueWrapper) FairSharingStatus(status *kueue.LocalQueueFairSharingStatus) *LocalQueueWrapper {
 	q.Status.FairSharing = status
 	return q
 }