agones.dev/agones@v1.53.0/pkg/apis/agones/v1/register.go (about) 1 // Copyright 2017 Google LLC All Rights Reserved. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package v1 16 17 import ( 18 "agones.dev/agones/pkg/apis/agones" 19 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 20 k8sruntime "k8s.io/apimachinery/pkg/runtime" 21 "k8s.io/apimachinery/pkg/runtime/schema" 22 "k8s.io/client-go/kubernetes/scheme" 23 ) 24 25 // VersionAnnotation is the key for version annotation 26 // associated with the CRD 27 const VersionAnnotation = agones.GroupName + "/sdk-version" 28 29 // SchemeGroupVersion is group version used to register these objects 30 var SchemeGroupVersion = schema.GroupVersion{Group: agones.GroupName, Version: "v1"} 31 32 // Kind takes an unqualified kind and returns back a Group qualified GroupKind 33 func Kind(kind string) schema.GroupKind { 34 return SchemeGroupVersion.WithKind(kind).GroupKind() 35 } 36 37 // Resource takes an unqualified resource and returns a Group qualified GroupResource 38 func Resource(resource string) schema.GroupResource { 39 return SchemeGroupVersion.WithResource(resource).GroupResource() 40 } 41 42 var ( 43 // SchemeBuilder registers our types 44 SchemeBuilder = k8sruntime.NewSchemeBuilder(addKnownTypes) 45 // AddToScheme local alias for SchemeBuilder.AddToScheme 46 AddToScheme = SchemeBuilder.AddToScheme 47 ) 48 49 func init() { 50 if err := AddToScheme(scheme.Scheme); err != nil { 51 panic(err) 52 } 53 } 54 55 // Adds the list of known types to api.Scheme. 56 func addKnownTypes(apiScheme *k8sruntime.Scheme) error { 57 apiScheme.AddKnownTypes(SchemeGroupVersion, 58 &GameServer{}, 59 &GameServerList{}, 60 &GameServerSet{}, 61 &GameServerSetList{}, 62 &Fleet{}, 63 &FleetList{}, 64 ) 65 metav1.AddToGroupVersion(apiScheme, SchemeGroupVersion) 66 return nil 67 }