github.com/oam-dev/kubevela@v1.9.11/apis/core.oam.dev/v1beta1/register.go (about) 1 /* 2 Copyright 2021. The KubeVela Authors. 3 4 Licensed under the Apache License, Version 2.0 (the "License"); 5 you may not use this file except in compliance with the License. 6 You may obtain a copy of the License at 7 8 http://www.apache.org/licenses/LICENSE-2.0 9 10 Unless required by applicable law or agreed to in writing, software 11 distributed under the License is distributed on an "AS IS" BASIS, 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 See the License for the specific language governing permissions and 14 limitations under the License. 15 */ 16 17 package v1beta1 18 19 import ( 20 "reflect" 21 22 "k8s.io/apimachinery/pkg/runtime/schema" 23 k8sscheme "k8s.io/client-go/kubernetes/scheme" 24 "sigs.k8s.io/controller-runtime/pkg/scheme" 25 26 "github.com/oam-dev/kubevela/apis/core.oam.dev/common" 27 ) 28 29 // Package type metadata. 30 const ( 31 Group = common.Group 32 Version = "v1beta1" 33 ) 34 35 var ( 36 // SchemeGroupVersion is group version used to register these objects 37 SchemeGroupVersion = schema.GroupVersion{Group: Group, Version: Version} 38 39 // SchemeBuilder is used to add go types to the GroupVersionKind scheme 40 SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion} 41 42 // AddToScheme is a global function that registers this API group & version to a scheme 43 AddToScheme = SchemeBuilder.AddToScheme 44 ) 45 46 // ComponentDefinition type metadata. 47 var ( 48 ComponentDefinitionKind = reflect.TypeOf(ComponentDefinition{}).Name() 49 ComponentDefinitionGroupKind = schema.GroupKind{Group: Group, Kind: ComponentDefinitionKind}.String() 50 ComponentDefinitionKindAPIVersion = ComponentDefinitionKind + "." + SchemeGroupVersion.String() 51 ComponentDefinitionGroupVersionKind = SchemeGroupVersion.WithKind(ComponentDefinitionKind) 52 ) 53 54 // WorkloadDefinition type metadata. 55 var ( 56 WorkloadDefinitionKind = reflect.TypeOf(WorkloadDefinition{}).Name() 57 WorkloadDefinitionGroupKind = schema.GroupKind{Group: Group, Kind: WorkloadDefinitionKind}.String() 58 WorkloadDefinitionKindAPIVersion = WorkloadDefinitionKind + "." + SchemeGroupVersion.String() 59 WorkloadDefinitionGroupVersionKind = SchemeGroupVersion.WithKind(WorkloadDefinitionKind) 60 ) 61 62 // TraitDefinition type metadata. 63 var ( 64 TraitDefinitionKind = reflect.TypeOf(TraitDefinition{}).Name() 65 TraitDefinitionGroupKind = schema.GroupKind{Group: Group, Kind: TraitDefinitionKind}.String() 66 TraitDefinitionKindAPIVersion = TraitDefinitionKind + "." + SchemeGroupVersion.String() 67 TraitDefinitionGroupVersionKind = SchemeGroupVersion.WithKind(TraitDefinitionKind) 68 ) 69 70 // PolicyDefinition type metadata. 71 var ( 72 PolicyDefinitionKind = reflect.TypeOf(PolicyDefinition{}).Name() 73 PolicyDefinitionGroupKind = schema.GroupKind{Group: Group, Kind: PolicyDefinitionKind}.String() 74 PolicyDefinitionKindAPIVersion = PolicyDefinitionKind + "." + SchemeGroupVersion.String() 75 PolicyDefinitionGroupVersionKind = SchemeGroupVersion.WithKind(PolicyDefinitionKind) 76 ) 77 78 // WorkflowStepDefinition type metadata. 79 var ( 80 WorkflowStepDefinitionKind = reflect.TypeOf(WorkflowStepDefinition{}).Name() 81 WorkflowStepDefinitionGroupKind = schema.GroupKind{Group: Group, Kind: WorkflowStepDefinitionKind}.String() 82 WorkflowStepDefinitionKindAPIVersion = WorkflowStepDefinitionKind + "." + SchemeGroupVersion.String() 83 WorkflowStepDefinitionGroupVersionKind = SchemeGroupVersion.WithKind(WorkflowStepDefinitionKind) 84 ) 85 86 // DefinitionRevision type metadata. 87 var ( 88 DefinitionRevisionKind = reflect.TypeOf(DefinitionRevision{}).Name() 89 DefinitionRevisionGroupKind = schema.GroupKind{Group: Group, Kind: DefinitionRevisionKind}.String() 90 DefinitionRevisionKindAPIVersion = DefinitionRevisionKind + "." + SchemeGroupVersion.String() 91 DefinitionRevisionGroupVersionKind = SchemeGroupVersion.WithKind(DefinitionRevisionKind) 92 ) 93 94 // Application type metadata. 95 var ( 96 ApplicationKind = reflect.TypeOf(Application{}).Name() 97 ApplicationGroupKind = schema.GroupKind{Group: Group, Kind: ApplicationKind}.String() 98 ApplicationKindAPIVersion = ApplicationKind + "." + SchemeGroupVersion.String() 99 ApplicationKindVersionKind = SchemeGroupVersion.WithKind(ApplicationKind) 100 ) 101 102 // ApplicationRevision type metadata 103 var ( 104 ApplicationRevisionKind = reflect.TypeOf(ApplicationRevision{}).Name() 105 ApplicationRevisionGroupKind = schema.GroupKind{Group: Group, Kind: ApplicationRevisionKind}.String() 106 ApplicationRevisionKindAPIVersion = ApplicationRevisionKind + "." + SchemeGroupVersion.String() 107 ApplicationRevisionGroupVersionKind = SchemeGroupVersion.WithKind(ApplicationRevisionKind) 108 ) 109 110 // ResourceTracker type metadata. 111 var ( 112 ResourceTrackerKind = reflect.TypeOf(ResourceTracker{}).Name() 113 ResourceTrackerGroupKind = schema.GroupKind{Group: Group, Kind: ResourceTrackerKind}.String() 114 ResourceTrackerKindAPIVersion = ResourceTrackerKind + "." + SchemeGroupVersion.String() 115 ResourceTrackerKindVersionKind = SchemeGroupVersion.WithKind(ResourceTrackerKind) 116 ) 117 118 func init() { 119 SchemeBuilder.Register(&ComponentDefinition{}, &ComponentDefinitionList{}) 120 SchemeBuilder.Register(&WorkloadDefinition{}, &WorkloadDefinitionList{}) 121 SchemeBuilder.Register(&TraitDefinition{}, &TraitDefinitionList{}) 122 SchemeBuilder.Register(&PolicyDefinition{}, &PolicyDefinitionList{}) 123 SchemeBuilder.Register(&WorkflowStepDefinition{}, &WorkflowStepDefinitionList{}) 124 SchemeBuilder.Register(&DefinitionRevision{}, &DefinitionRevisionList{}) 125 SchemeBuilder.Register(&Application{}, &ApplicationList{}) 126 SchemeBuilder.Register(&ApplicationRevision{}, &ApplicationRevisionList{}) 127 SchemeBuilder.Register(&ResourceTracker{}, &ResourceTrackerList{}) 128 _ = SchemeBuilder.AddToScheme(k8sscheme.Scheme) 129 } 130 131 // Resource takes an unqualified resource and returns a Group qualified GroupResource 132 func Resource(resource string) schema.GroupResource { 133 return SchemeGroupVersion.WithResource(resource).GroupResource() 134 }