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 }