-
Notifications
You must be signed in to change notification settings - Fork 433
/
register.go
77 lines (70 loc) · 1.87 KB
/
register.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package v1
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"github.com/kubeovn/kube-ovn/pkg/apis/kubeovn"
)
// SchemeGroupVersion is group version used to register these objects
var SchemeGroupVersion = schema.GroupVersion{Group: kubeovn.GroupName, Version: "v1"}
// Kind takes an unqualified kind and returns back a Group qualified GroupKind
func Kind(kind string) schema.GroupKind {
return SchemeGroupVersion.WithKind(kind).GroupKind()
}
// Resource takes an unqualified resource and returns a Group qualified GroupResource
func Resource(resource string) schema.GroupResource {
return SchemeGroupVersion.WithResource(resource).GroupResource()
}
var (
// SchemeBuilder initializes a scheme builder
SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
// AddToScheme is a global function that registers this API group & version to a scheme
AddToScheme = SchemeBuilder.AddToScheme
)
// Adds the list of known types to Scheme.
func addKnownTypes(scheme *runtime.Scheme) error {
scheme.AddKnownTypes(SchemeGroupVersion,
&IP{},
&IPList{},
&IPPool{},
&IPPoolList{},
&Subnet{},
&SubnetList{},
&Vlan{},
&VlanList{},
&ProviderNetwork{},
&ProviderNetworkList{},
&Vpc{},
&VpcList{},
&VpcNatGateway{},
&VpcNatGatewayList{},
&Vip{},
&VipList{},
&IptablesEIP{},
&IptablesEIPList{},
&IptablesFIPRule{},
&IptablesFIPRuleList{},
&IptablesDnatRule{},
&IptablesDnatRuleList{},
&IptablesSnatRule{},
&IptablesSnatRuleList{},
&OvnEip{},
&OvnEipList{},
&OvnFip{},
&OvnFipList{},
&OvnSnatRule{},
&OvnSnatRuleList{},
&OvnDnatRule{},
&OvnDnatRuleList{},
&SecurityGroup{},
&SecurityGroupList{},
&SwitchLBRule{},
&SwitchLBRuleList{},
&VpcDns{},
&VpcDnsList{},
&QoSPolicy{},
&QoSPolicyList{},
)
metav1.AddToGroupVersion(scheme, SchemeGroupVersion)
return nil
}