github.com/verrazzano/verrazzano@v1.7.0/tools/vz/pkg/helpers/scheme.go (about)

     1  // Copyright (c) 2023, Oracle and/or its affiliates.
     2  // Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
     3  
     4  package helpers
     5  
     6  import (
     7  	clustersv1alpha1 "github.com/verrazzano/verrazzano/application-operator/apis/clusters/v1alpha1"
     8  	vmcv1alpha1 "github.com/verrazzano/verrazzano/cluster-operator/apis/clusters/v1alpha1"
     9  	"github.com/verrazzano/verrazzano/platform-operator/apis/verrazzano/v1beta1"
    10  	"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
    11  	"k8s.io/apimachinery/pkg/runtime"
    12  	"k8s.io/apimachinery/pkg/runtime/schema"
    13  )
    14  
    15  func GetScheme() *runtime.Scheme {
    16  	scheme := runtime.NewScheme()
    17  	_ = v1beta1.AddToScheme(scheme)
    18  	_ = clustersv1alpha1.AddToScheme(scheme)
    19  	_ = vmcv1alpha1.AddToScheme(scheme)
    20  	scheme.AddKnownTypeWithName(schema.GroupVersionKind{Group: clustersv1alpha1.SchemeGroupVersion.Group, Version: clustersv1alpha1.SchemeGroupVersion.Version, Kind: clustersv1alpha1.VerrazzanoProjectKind + "List"}, &clustersv1alpha1.VerrazzanoProjectList{})
    21  	scheme.AddKnownTypeWithName(schema.GroupVersionKind{Group: vmcv1alpha1.SchemeGroupVersion.Group, Version: vmcv1alpha1.SchemeGroupVersion.Version, Kind: vmcv1alpha1.VerrazzanoManagedClusterKind + "List"}, &vmcv1alpha1.VerrazzanoManagedClusterList{})
    22  	AddCapiToScheme(scheme)
    23  	return scheme
    24  }
    25  
    26  func AddCapiToScheme(scheme *runtime.Scheme) {
    27  	for _, resource := range capiNamespacedResources {
    28  		scheme.AddKnownTypeWithName(schema.GroupVersionKind{Group: resource.GVR.Group, Version: resource.GVR.Version, Kind: resource.Kind + "List"}, &unstructured.Unstructured{})
    29  	}
    30  	for _, resource := range capiResources {
    31  		scheme.AddKnownTypeWithName(schema.GroupVersionKind{Group: resource.GVR.Group, Version: resource.GVR.Version, Kind: resource.Kind + "List"}, &unstructured.Unstructured{})
    32  	}
    33  	for _, resource := range rancherNamespacedResources {
    34  		scheme.AddKnownTypeWithName(schema.GroupVersionKind{Group: resource.GVR.Group, Version: resource.GVR.Version, Kind: resource.Kind + "List"}, &unstructured.Unstructured{})
    35  	}
    36  	for _, resource := range rancherResources {
    37  		scheme.AddKnownTypeWithName(schema.GroupVersionKind{Group: resource.GVR.Group, Version: resource.GVR.Version, Kind: resource.Kind + "List"}, &unstructured.Unstructured{})
    38  	}
    39  }