-
Notifications
You must be signed in to change notification settings - Fork 683
/
ingress.go
106 lines (94 loc) · 3.88 KB
/
ingress.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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
package k8s_resource_types
import (
"fmt"
types_ext_v1beta1 "k8s.io/api/extensions/v1beta1"
types_net_v1 "k8s.io/api/networking/v1"
types_net_v1beta1 "k8s.io/api/networking/v1beta1"
types_net_internal "k8s.io/kubernetes/pkg/apis/networking"
conv_ext_v1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
conv_net_v1 "k8s.io/kubernetes/pkg/apis/networking/v1"
conv_net_v1beta1 "k8s.io/kubernetes/pkg/apis/networking/v1beta1"
kates_internal "github.com/datawire/ambassador/v2/pkg/kates_internal"
k8s_metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
k8s_runtime "k8s.io/apimachinery/pkg/runtime"
)
// TODO: Update the consumers (mostly Python, unfortunately... weaker typechecking makes this hard)
// of this to understand types_net_v1.Ingress (or even types_net_internal.Ingress) instead.
type Ingress = types_ext_v1beta1.Ingress
var IngressTypeMeta = k8s_metav1.TypeMeta{
APIVersion: types_ext_v1beta1.SchemeGroupVersion.String(),
Kind: "Ingress",
}
func NewIngress(untyped k8s_runtime.Object) (*Ingress, error) {
var internal types_net_internal.Ingress
switch untyped.GetObjectKind().GroupVersionKind() {
case types_ext_v1beta1.SchemeGroupVersion.WithKind("Ingress"):
var typed types_ext_v1beta1.Ingress
if err := kates_internal.Convert(untyped, &typed); err != nil {
return nil, err
}
if err := conv_ext_v1beta1.Convert_v1beta1_Ingress_To_networking_Ingress(&typed, &internal, nil); err != nil {
return nil, err
}
case types_net_v1beta1.SchemeGroupVersion.WithKind("Ingress"):
var typed types_net_v1beta1.Ingress
if err := kates_internal.Convert(untyped, &typed); err != nil {
return nil, err
}
if err := conv_net_v1beta1.Convert_v1beta1_Ingress_To_networking_Ingress(&typed, &internal, nil); err != nil {
return nil, err
}
case types_net_v1.SchemeGroupVersion.WithKind("Ingress"):
var typed types_net_v1.Ingress
if err := kates_internal.Convert(untyped, &typed); err != nil {
return nil, err
}
if err := conv_net_v1.Convert_v1_Ingress_To_networking_Ingress(&typed, &internal, nil); err != nil {
return nil, err
}
default:
return nil, fmt.Errorf("unrecognized Ingress GroupVersionKind: %v", untyped.GetObjectKind().GroupVersionKind())
}
var ret Ingress
ret.TypeMeta = IngressTypeMeta
if err := conv_ext_v1beta1.Convert_networking_Ingress_To_v1beta1_Ingress(&internal, &ret, nil); err != nil {
return nil, err
}
return &ret, nil
}
// TODO: Consider migrating the consumers (mostly Python, unfortunately... weaker typechecking makes
// this hard) of this to understand types_net_internal.IngressClass instead?
type IngressClass = types_net_v1.IngressClass
var IngressClassTypeMeta = k8s_metav1.TypeMeta{
APIVersion: types_net_v1.SchemeGroupVersion.String(),
Kind: "IngressClass",
}
func NewIngressClass(untyped k8s_runtime.Object) (*IngressClass, error) {
var internal types_net_internal.IngressClass
switch untyped.GetObjectKind().GroupVersionKind() {
case types_net_v1beta1.SchemeGroupVersion.WithKind("IngressClass"):
var typed types_net_v1beta1.IngressClass
if err := kates_internal.Convert(untyped, &typed); err != nil {
return nil, err
}
if err := conv_net_v1beta1.Convert_v1beta1_IngressClass_To_networking_IngressClass(&typed, &internal, nil); err != nil {
return nil, err
}
case types_net_v1.SchemeGroupVersion.WithKind("IngressClass"):
var typed types_net_v1.IngressClass
if err := kates_internal.Convert(untyped, &typed); err != nil {
return nil, err
}
if err := conv_net_v1.Convert_v1_IngressClass_To_networking_IngressClass(&typed, &internal, nil); err != nil {
return nil, err
}
default:
return nil, fmt.Errorf("unrecognized IngressClass GroupVersionKind: %v", untyped.GetObjectKind().GroupVersionKind())
}
var ret IngressClass
ret.TypeMeta = IngressClassTypeMeta
if err := conv_net_v1.Convert_networking_IngressClass_To_v1_IngressClass(&internal, &ret, nil); err != nil {
return nil, err
}
return &ret, nil
}