forked from jetstack/kube-lego
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ingress.go
124 lines (108 loc) · 3.18 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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
package mocks
import (
. "github.com/jetstack/kube-lego/pkg/kubelego_const"
"github.com/golang/mock/gomock"
k8sMeta "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/intstr"
k8sExtensions "k8s.io/client-go/pkg/apis/extensions/v1beta1"
)
func BasicIngressBackend(service string, port int) k8sExtensions.IngressBackend {
return k8sExtensions.IngressBackend{
ServiceName: service,
ServicePort: intstr.FromInt(port),
}
}
func BasicIngressRule(host string, path string, backend k8sExtensions.IngressBackend) k8sExtensions.IngressRule {
return k8sExtensions.IngressRule{
Host: host,
IngressRuleValue: k8sExtensions.IngressRuleValue{
HTTP: &k8sExtensions.HTTPIngressRuleValue{
Paths: []k8sExtensions.HTTPIngressPath{
k8sExtensions.HTTPIngressPath{
Path: path,
Backend: backend,
},
},
},
},
}
}
func BasicIngress(name string, namespace string) *k8sExtensions.Ingress {
return &k8sExtensions.Ingress{
ObjectMeta: k8sMeta.ObjectMeta{
Name: name,
Namespace: namespace,
},
Spec: k8sExtensions.IngressSpec{
Rules: []k8sExtensions.IngressRule{
BasicIngressRule(
"domain1",
"/*",
BasicIngressBackend("service1", 8001),
),
},
},
}
}
func BasicIngressDomain12() *k8sExtensions.Ingress {
ing := BasicIngress("ingress-domain12", "namespace1")
ing.Spec.Rules = append(ing.Spec.Rules, BasicIngressRule("domain2", "/*", BasicIngressBackend("service2", 80)))
return ing
}
func BasicIngressDomain12Challenge12() *k8sExtensions.Ingress {
ing := BasicIngressDomain12()
ing.Name = "ingress-domain12-challenge12"
challengeRule := BasicIngressRule("unused", "/.well-known/acme-challenge/*", BasicIngressBackend("kube-lego-gce", 8080))
ing.Spec.Rules[0].HTTP.Paths = append(challengeRule.HTTP.Paths, ing.Spec.Rules[0].HTTP.Paths...)
ing.Spec.Rules[1].HTTP.Paths = append(challengeRule.HTTP.Paths, ing.Spec.Rules[1].HTTP.Paths...)
return ing
}
func DummyIngress(c *gomock.Controller, tls []Tls, ingress *k8sExtensions.Ingress) *MockIngress {
mockIng := NewMockIngress(c)
mockIng.EXPECT().Object().AnyTimes().Return(ingress)
mockIng.EXPECT().Tls().AnyTimes().Return(tls)
mockIng.EXPECT().Save().AnyTimes().Return(nil)
mockIng.EXPECT().Delete().AnyTimes().Return(nil)
return mockIng
}
func DummyIngressNoRules(c *gomock.Controller, tls []Tls) *MockIngress {
ing := BasicIngress("ingress-no-rules", "namespace1")
ing.Spec.Rules = []k8sExtensions.IngressRule{}
return DummyIngress(
c,
tls,
ing,
)
}
func DummyIngressDomain1(c *gomock.Controller, tls []Tls) *MockIngress {
ing := BasicIngress("ingress-domain1", "namespace1")
return DummyIngress(
c,
tls,
ing,
)
}
func DummyIngressDomain12(c *gomock.Controller, tls []Tls) *MockIngress {
ing := BasicIngressDomain12()
return DummyIngress(
c,
tls,
ing,
)
}
func DummyIngressDomain12Challenge12(c *gomock.Controller, tls []Tls) *MockIngress {
return DummyIngress(
c,
tls,
BasicIngressDomain12Challenge12(),
)
}
func DummyIngressNoRulesTLSDomains134(c *gomock.Controller) *MockIngress {
ing := BasicIngress("ingress-no-rules", "namespace1")
ing.Spec.Rules = []k8sExtensions.IngressRule{}
return DummyIngress(
c,
DummyTlsDomain134(c),
ing,
)
}