Skip to content

Commit

Permalink
fix: reorganize GVK/GVR list (#690)
Browse files Browse the repository at this point in the history
reorganize GVK/GVR list
  • Loading branch information
britaniar committed Feb 21, 2024
1 parent 6be95ff commit d040ce0
Show file tree
Hide file tree
Showing 8 changed files with 135 additions and 135 deletions.
4 changes: 2 additions & 2 deletions pkg/controllers/clusterresourceplacement/cluster_selector.go
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ func (r *Reconciler) selectClusters(placement *fleetv1alpha1.ClusterResourcePlac

// listClusters retrieves the clusters according to its label selector, this will hit the informer cache.
func (r *Reconciler) listClusters(labelSelector labels.Selector) ([]string, error) {
objs, err := r.InformerManager.Lister(utils.MemberClusterGVR).List(labelSelector)
objs, err := r.InformerManager.Lister(utils.MCV1Alpha1GVR).List(labelSelector)
if err != nil {
return nil, fmt.Errorf("failed to list the clusters according to obj label selector: %w", err)
}
Expand All @@ -108,7 +108,7 @@ func (r *Reconciler) listClusters(labelSelector labels.Selector) ([]string, erro
func (r *Reconciler) getClusters(clusterNames []string) ([]string, error) {
selectedClusters := make([]string, 0)
for _, clusterName := range clusterNames {
obj, err := r.InformerManager.Lister(utils.MemberClusterGVR).Get(clusterName)
obj, err := r.InformerManager.Lister(utils.MCV1Alpha1GVR).Get(clusterName)
if err != nil {
klog.ErrorS(err, "cannot get the cluster", "clusterName", clusterName)
if !apierrors.IsNotFound(err) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ func (r *Reconciler) collectAllManifestsStatus(placement *fleetv1alpha1.ClusterR

// getResourceBinding retrieves a work object by its name and namespace, this will hit the informer cache.
func (r *Reconciler) getResourceBinding(namespace, name string) (*workv1alpha1.Work, error) {
obj, err := r.InformerManager.Lister(utils.WorkGVR).ByNamespace(namespace).Get(name)
obj, err := r.InformerManager.Lister(utils.WorkV1Alpha1GVR).ByNamespace(namespace).Get(name)
if err != nil {
return nil, err
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ func (r *Reconciler) Reconcile(_ context.Context, key controller.QueueKey) (ctrl
}()

klog.V(2).InfoS("Start to reconcile a member cluster to enqueue placement events", "memberCluster", memberClusterName)
mObj, err := r.InformerManager.Lister(utils.MemberClusterGVR).Get(memberClusterName)
mObj, err := r.InformerManager.Lister(utils.MCV1Alpha1GVR).Get(memberClusterName)
if err != nil {
klog.ErrorS(err, "failed to get the member cluster", "memberCluster", memberClusterName)
if !apierrors.IsNotFound(err) {
Expand Down
8 changes: 4 additions & 4 deletions pkg/resourcewatcher/change_dector.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,8 +102,8 @@ func (d *ChangeDetector) Start(ctx context.Context) error {
workEventHandler := newHandlerOnEvents(nil, d.onWorkUpdated, d.onWorkDeleted)
d.InformerManager.AddStaticResource(
informer.APIResourceMeta{
GroupVersionKind: utils.WorkGVK,
GroupVersionResource: utils.WorkGVR,
GroupVersionKind: utils.WorkV1Alpha1GVK,
GroupVersionResource: utils.WorkV1Alpha1GVR,
IsClusterScoped: false,
}, workEventHandler)
}
Expand All @@ -114,8 +114,8 @@ func (d *ChangeDetector) Start(ctx context.Context) error {
memberClusterEventHandler := newHandlerOnEvents(nil, d.onMemberClusterUpdated, nil)
d.InformerManager.AddStaticResource(
informer.APIResourceMeta{
GroupVersionKind: utils.MemberClusterGVK,
GroupVersionResource: utils.MemberClusterGVR,
GroupVersionKind: utils.MCV1Alpha1GVK,
GroupVersionResource: utils.MCV1Alpha1GVR,
IsClusterScoped: true,
}, memberClusterEventHandler)
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/utils/apiresources.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ func NewResourceConfig(isAllowList bool) *ResourceConfig {
r.AddGroup(fleetv1alpha1.GroupVersion.Group)
r.AddGroup(placementv1beta1.GroupVersion.Group)
r.AddGroup(clusterv1beta1.GroupVersion.Group)
r.AddGroupVersionKind(WorkGVK)
r.AddGroupVersionKind(WorkV1Alpha1GVK)

// disable the below built-in resources
r.AddGroup(eventsv1.GroupName)
Expand Down
186 changes: 93 additions & 93 deletions pkg/utils/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,12 @@ var (

// Those are the GVR/GVK of the fleet related resources.
var (
ClusterResourcePlacementV1Alpha1GVK = schema.GroupVersionKind{
Group: fleetv1alpha1.GroupVersion.Group,
Version: fleetv1alpha1.GroupVersion.Version,
Kind: "ClusterResourcePlacement",
}

ClusterResourcePlacementV1Alpha1GVR = schema.GroupVersionResource{
Group: fleetv1alpha1.GroupVersion.Group,
Version: fleetv1alpha1.GroupVersion.Version,
Expand All @@ -116,76 +122,100 @@ var (
Resource: placementv1beta1.ClusterResourcePlacementResource,
}

ClusterResourcePlacementV1Alpha1GVK = schema.GroupVersionKind{
ConfigMapGVK = schema.GroupVersionKind{
Group: corev1.GroupName,
Version: corev1.SchemeGroupVersion.Version,
Kind: "ConfigMap",
}

CRDMetaGVK = metav1.GroupVersionKind{
Group: apiextensionsv1.SchemeGroupVersion.Group,
Version: apiextensionsv1.SchemeGroupVersion.Version,
Kind: "CustomResourceDefinition",
}

EndpointSliceExportMetaGVK = metav1.GroupVersionKind{
Group: fleetnetworkingv1alpha1.GroupVersion.Group,
Version: fleetnetworkingv1alpha1.GroupVersion.Version,
Kind: "EndpointSliceExport",
}

EndpointSliceImportMetaGVK = metav1.GroupVersionKind{
Group: fleetnetworkingv1alpha1.GroupVersion.Group,
Version: fleetnetworkingv1alpha1.GroupVersion.Version,
Kind: "EndpointSliceImport",
}

EventMetaGVK = metav1.GroupVersionKind{
Group: corev1.SchemeGroupVersion.Group,
Version: corev1.SchemeGroupVersion.Version,
Kind: "Event",
}

IMCV1Alpha1MetaGVK = metav1.GroupVersionKind{
Group: fleetv1alpha1.GroupVersion.Group,
Version: fleetv1alpha1.GroupVersion.Version,
Kind: "ClusterResourcePlacement",
Kind: "InternalMemberCluster",
}

NamespaceGVK = schema.GroupVersionKind{
Group: corev1.GroupName,
Version: corev1.SchemeGroupVersion.Version,
Kind: "Namespace",
InternalServiceExportMetaGVK = metav1.GroupVersionKind{
Group: fleetnetworkingv1alpha1.GroupVersion.Group,
Version: fleetnetworkingv1alpha1.GroupVersion.Version,
Kind: "InternalServiceExport",
}

NamespaceGVR = schema.GroupVersionResource{
Group: corev1.GroupName,
Version: corev1.SchemeGroupVersion.Version,
Resource: "namespaces",
InternalServiceImportMetaGVK = metav1.GroupVersionKind{
Group: fleetnetworkingv1alpha1.GroupVersion.Group,
Version: fleetnetworkingv1alpha1.GroupVersion.Version,
Kind: "InternalServiceImport",
}

MemberClusterGVR = schema.GroupVersionResource{
Group: fleetv1alpha1.GroupVersion.Group,
Version: fleetv1alpha1.GroupVersion.Version,
Resource: fleetv1alpha1.MemberClusterResource,
IMCMetaGVK = metav1.GroupVersionKind{
Group: clusterv1beta1.GroupVersion.Group,
Version: clusterv1beta1.GroupVersion.Version,
Kind: "InternalMemberCluster",
}

MemberClusterGVK = schema.GroupVersionKind{
MCV1Alpha1MetaGVK = metav1.GroupVersionKind{
Group: fleetv1alpha1.GroupVersion.Group,
Version: fleetv1alpha1.GroupVersion.Version,
Kind: fleetv1alpha1.MemberClusterKind,
Kind: "MemberCluster",
}

WorkGVK = schema.GroupVersionKind{
Group: workv1alpha1.GroupVersion.Group,
Version: workv1alpha1.GroupVersion.Version,
Kind: workv1alpha1.WorkKind,
MCV1Alpha1GVK = schema.GroupVersionKind{
Group: fleetv1alpha1.GroupVersion.Group,
Version: fleetv1alpha1.GroupVersion.Version,
Kind: fleetv1alpha1.MemberClusterKind,
}

WorkGVR = schema.GroupVersionResource{
Group: workv1alpha1.GroupVersion.Group,
Version: workv1alpha1.GroupVersion.Version,
Resource: workv1alpha1.WorkResource,
MCV1Alpha1GVR = schema.GroupVersionResource{
Group: fleetv1alpha1.GroupVersion.Group,
Version: fleetv1alpha1.GroupVersion.Version,
Resource: fleetv1alpha1.MemberClusterResource,
}

ServiceGVR = schema.GroupVersionResource{
Group: corev1.GroupName,
Version: corev1.SchemeGroupVersion.Version,
Resource: "services",
MCMetaGVK = metav1.GroupVersionKind{
Group: clusterv1beta1.GroupVersion.Group,
Version: clusterv1beta1.GroupVersion.Version,
Kind: "MemberCluster",
}

ConfigMapGVK = schema.GroupVersionKind{
NamespaceMetaGVK = metav1.GroupVersionKind{
Group: corev1.GroupName,
Version: corev1.SchemeGroupVersion.Version,
Kind: "ConfigMap",
Kind: "Namespace",
}

NamespaceMetaGVK = metav1.GroupVersionKind{
NamespaceGVK = schema.GroupVersionKind{
Group: corev1.GroupName,
Version: corev1.SchemeGroupVersion.Version,
Kind: "Namespace",
}

RoleMetaGVK = metav1.GroupVersionKind{
Group: rbacv1.SchemeGroupVersion.Group,
Version: rbacv1.SchemeGroupVersion.Version,
Kind: "Role",
}

RoleBindingMetaGVK = metav1.GroupVersionKind{
Group: rbacv1.SchemeGroupVersion.Group,
Version: rbacv1.SchemeGroupVersion.Version,
Kind: "RoleBinding",
NamespaceGVR = schema.GroupVersionResource{
Group: corev1.GroupName,
Version: corev1.SchemeGroupVersion.Version,
Resource: "namespaces",
}

PodMetaGVK = metav1.GroupVersionKind{
Expand All @@ -194,77 +224,47 @@ var (
Kind: "Pod",
}

CRDMetaGVK = metav1.GroupVersionKind{
Group: apiextensionsv1.SchemeGroupVersion.Group,
Version: apiextensionsv1.SchemeGroupVersion.Version,
Kind: "CustomResourceDefinition",
RoleMetaGVK = metav1.GroupVersionKind{
Group: rbacv1.SchemeGroupVersion.Group,
Version: rbacv1.SchemeGroupVersion.Version,
Kind: "Role",
}

V1Alpha1MCMetaGVK = metav1.GroupVersionKind{
Group: fleetv1alpha1.GroupVersion.Group,
Version: fleetv1alpha1.GroupVersion.Version,
Kind: "MemberCluster",
RoleBindingMetaGVK = metav1.GroupVersionKind{
Group: rbacv1.SchemeGroupVersion.Group,
Version: rbacv1.SchemeGroupVersion.Version,
Kind: "RoleBinding",
}

V1Alpha1IMCMetaGVK = metav1.GroupVersionKind{
Group: fleetv1alpha1.GroupVersion.Group,
Version: fleetv1alpha1.GroupVersion.Version,
Kind: "InternalMemberCluster",
ServiceGVR = schema.GroupVersionResource{
Group: corev1.GroupName,
Version: corev1.SchemeGroupVersion.Version,
Resource: "services",
}

V1Alpha1WorkMetaGVK = metav1.GroupVersionKind{
WorkV1Alpha1MetaGVK = metav1.GroupVersionKind{
Group: workv1alpha1.GroupVersion.Group,
Version: workv1alpha1.GroupVersion.Version,
Kind: "Work",
}

MCMetaGVK = metav1.GroupVersionKind{
Group: clusterv1beta1.GroupVersion.Group,
Version: clusterv1beta1.GroupVersion.Version,
Kind: "MemberCluster",
WorkV1Alpha1GVK = schema.GroupVersionKind{
Group: workv1alpha1.GroupVersion.Group,
Version: workv1alpha1.GroupVersion.Version,
Kind: workv1alpha1.WorkKind,
}

IMCMetaGVK = metav1.GroupVersionKind{
Group: clusterv1beta1.GroupVersion.Group,
Version: clusterv1beta1.GroupVersion.Version,
Kind: "InternalMemberCluster",
WorkV1Alpha1GVR = schema.GroupVersionResource{
Group: workv1alpha1.GroupVersion.Group,
Version: workv1alpha1.GroupVersion.Version,
Resource: workv1alpha1.WorkResource,
}

WorkV1Beta1MetaGVK = metav1.GroupVersionKind{
WorkMetaGVK = metav1.GroupVersionKind{
Group: placementv1beta1.GroupVersion.Group,
Version: placementv1beta1.GroupVersion.Version,
Kind: "Work",
}

EventMetaGVK = metav1.GroupVersionKind{
Group: corev1.SchemeGroupVersion.Group,
Version: corev1.SchemeGroupVersion.Version,
Kind: "Event",
}

EndpointSliceExportMetaGVK = metav1.GroupVersionKind{
Group: fleetnetworkingv1alpha1.GroupVersion.Group,
Version: fleetnetworkingv1alpha1.GroupVersion.Version,
Kind: "EndpointSliceExport",
}

EndpointSliceImportMetaGVK = metav1.GroupVersionKind{
Group: fleetnetworkingv1alpha1.GroupVersion.Group,
Version: fleetnetworkingv1alpha1.GroupVersion.Version,
Kind: "EndpointSliceImport",
}

InternalServiceExportMetaGVK = metav1.GroupVersionKind{
Group: fleetnetworkingv1alpha1.GroupVersion.Group,
Version: fleetnetworkingv1alpha1.GroupVersion.Version,
Kind: "InternalServiceExport",
}

InternalServiceImportMetaGVK = metav1.GroupVersionKind{
Group: fleetnetworkingv1alpha1.GroupVersion.Group,
Version: fleetnetworkingv1alpha1.GroupVersion.Version,
Kind: "InternalServiceImport",
}
)

// RandSecureInt returns a uniform random value in [1, max] or panic.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ func (v *fleetResourceValidator) Handle(ctx context.Context, req admission.Reque
case req.Kind == utils.CRDMetaGVK:
klog.V(2).InfoS("handling CRD resource", "name", req.Name, "operation", req.Operation, "subResource", req.SubResource)
response = v.handleCRD(req)
case req.Kind == utils.V1Alpha1MCMetaGVK:
case req.Kind == utils.MCV1Alpha1MetaGVK:
klog.V(2).InfoS("handling v1alpha1 member cluster resource", "name", req.Name, "operation", req.Operation, "subResource", req.SubResource)
response = v.handleV1Alpha1MemberCluster(req)
case req.Kind == utils.MCMetaGVK:
Expand All @@ -67,7 +67,7 @@ func (v *fleetResourceValidator) Handle(ctx context.Context, req admission.Reque
case req.Kind == utils.NamespaceMetaGVK:
klog.V(2).InfoS("handling namespace resource", "name", req.Name, "operation", req.Operation, "subResource", req.SubResource)
response = v.handleNamespace(req)
case req.Kind == utils.V1Alpha1IMCMetaGVK || req.Kind == utils.V1Alpha1WorkMetaGVK || req.Kind == utils.IMCMetaGVK || req.Kind == utils.WorkV1Beta1MetaGVK || req.Kind == utils.EndpointSliceExportMetaGVK || req.Kind == utils.EndpointSliceImportMetaGVK || req.Kind == utils.InternalServiceExportMetaGVK || req.Kind == utils.InternalServiceImportMetaGVK:
case req.Kind == utils.IMCV1Alpha1MetaGVK || req.Kind == utils.WorkV1Alpha1MetaGVK || req.Kind == utils.IMCMetaGVK || req.Kind == utils.WorkMetaGVK || req.Kind == utils.EndpointSliceExportMetaGVK || req.Kind == utils.EndpointSliceImportMetaGVK || req.Kind == utils.InternalServiceExportMetaGVK || req.Kind == utils.InternalServiceImportMetaGVK:
klog.V(2).InfoS("handling fleet owned namespaced resource in fleet reserved namespaces", "GVK", req.RequestKind, "namespacedName", namespacedName, "operation", req.Operation, "subResource", req.SubResource)
response = v.handleFleetReservedNamespacedResource(ctx, req)
case req.Kind == utils.EventMetaGVK:
Expand Down
Loading

0 comments on commit d040ce0

Please sign in to comment.