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

     1  // Copyright (c) 2023, 2024, 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  	oam "github.com/crossplane/oam-kubernetes-runtime/apis/core"
     8  	clustersv1alpha1 "github.com/verrazzano/verrazzano/application-operator/apis/clusters/v1alpha1"
     9  	vzoamapi "github.com/verrazzano/verrazzano/application-operator/apis/oam/v1alpha1"
    10  	vmcv1alpha1 "github.com/verrazzano/verrazzano/cluster-operator/apis/clusters/v1alpha1"
    11  	"github.com/verrazzano/verrazzano/platform-operator/apis/verrazzano/v1alpha1"
    12  	"github.com/verrazzano/verrazzano/platform-operator/apis/verrazzano/v1beta1"
    13  	istioclient "istio.io/client-go/pkg/apis/networking/v1alpha3"
    14  	"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
    15  	"k8s.io/apimachinery/pkg/runtime"
    16  	"k8s.io/apimachinery/pkg/runtime/schema"
    17  )
    18  
    19  func GetScheme() *runtime.Scheme {
    20  	scheme := runtime.NewScheme()
    21  	_ = v1alpha1.AddToScheme(scheme)
    22  	_ = v1beta1.AddToScheme(scheme)
    23  	_ = clustersv1alpha1.AddToScheme(scheme)
    24  	_ = vmcv1alpha1.AddToScheme(scheme)
    25  	_ = oam.AddToScheme(scheme)
    26  	_ = istioclient.AddToScheme(scheme)
    27  	_ = vzoamapi.AddToScheme(scheme)
    28  	scheme.AddKnownTypeWithName(schema.GroupVersionKind{Group: clustersv1alpha1.SchemeGroupVersion.Group, Version: clustersv1alpha1.SchemeGroupVersion.Version, Kind: clustersv1alpha1.VerrazzanoProjectKind + "List"}, &clustersv1alpha1.VerrazzanoProjectList{})
    29  	scheme.AddKnownTypeWithName(schema.GroupVersionKind{Group: vmcv1alpha1.SchemeGroupVersion.Group, Version: vmcv1alpha1.SchemeGroupVersion.Version, Kind: vmcv1alpha1.VerrazzanoManagedClusterKind + "List"}, &vmcv1alpha1.VerrazzanoManagedClusterList{})
    30  	AddCapiToScheme(scheme)
    31  	return scheme
    32  }
    33  
    34  func AddCapiToScheme(scheme *runtime.Scheme) {
    35  	for _, resource := range capiNamespacedResources {
    36  		scheme.AddKnownTypeWithName(schema.GroupVersionKind{Group: resource.GVR.Group, Version: resource.GVR.Version, Kind: resource.Kind + "List"}, &unstructured.Unstructured{})
    37  	}
    38  	for _, resource := range capiResources {
    39  		scheme.AddKnownTypeWithName(schema.GroupVersionKind{Group: resource.GVR.Group, Version: resource.GVR.Version, Kind: resource.Kind + "List"}, &unstructured.Unstructured{})
    40  	}
    41  	for _, resource := range rancherNamespacedResources {
    42  		scheme.AddKnownTypeWithName(schema.GroupVersionKind{Group: resource.GVR.Group, Version: resource.GVR.Version, Kind: resource.Kind + "List"}, &unstructured.Unstructured{})
    43  	}
    44  	for _, resource := range rancherResources {
    45  		scheme.AddKnownTypeWithName(schema.GroupVersionKind{Group: resource.GVR.Group, Version: resource.GVR.Version, Kind: resource.Kind + "List"}, &unstructured.Unstructured{})
    46  	}
    47  }