@@ -23,188 +23,19 @@ import (
23
23
24
24
v1 "k8s.io/api/core/v1"
25
25
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
26
- "k8s.io/apimachinery/pkg/util/wait"
27
26
"k8s.io/kubernetes/test/e2e/framework"
28
27
e2eservice "k8s.io/kubernetes/test/e2e/framework/service"
29
28
30
29
"github.com/onsi/ginkgo"
31
30
)
32
31
33
- type dnsFederationsConfigMapTest struct {
34
- dnsTestCommon
35
-
36
- fedMap map [string ]string
37
- isValid bool
38
- }
39
-
40
32
var (
41
33
googleDNSHostname = "dns.google"
42
34
// The ConfigMap update mechanism takes longer than the standard
43
35
// wait.ForeverTestTimeout.
44
36
moreForeverTestTimeout = 2 * 60 * time .Second
45
37
)
46
38
47
- var _ = SIGDescribe ("DNS configMap federations [Feature:Federation]" , func () {
48
-
49
- t := & dnsFederationsConfigMapTest {dnsTestCommon : newDNSTestCommon ()}
50
-
51
- ginkgo .It ("should be able to change federation configuration [Slow][Serial]" , func () {
52
- t .c = t .f .ClientSet
53
- t .run ()
54
- })
55
- })
56
-
57
- func (t * dnsFederationsConfigMapTest ) run () {
58
- t .init ()
59
-
60
- defer t .c .CoreV1 ().ConfigMaps (t .ns ).Delete (context .TODO (), t .name , metav1.DeleteOptions {})
61
- t .createUtilPodLabel ("e2e-dns-configmap" )
62
- defer t .deleteUtilPod ()
63
- originalConfigMapData := t .fetchDNSConfigMapData ()
64
- defer t .restoreDNSConfigMap (originalConfigMapData )
65
-
66
- t .validate (framework .TestContext .ClusterDNSDomain )
67
-
68
- if t .name == "coredns" {
69
- t .labels = []string {"abc" , "ghi" }
70
- valid1 := map [string ]string {
71
- "Corefile" : fmt .Sprintf (`.:53 {
72
- health
73
- ready
74
- kubernetes %v in-addr.arpa ip6.arpa {
75
- pods insecure
76
- fallthrough in-addr.arpa ip6.arpa
77
- ttl 30
78
- }
79
- federation %v {
80
- abc def.com
81
- }
82
- forward . /etc/resolv.conf
83
- }` , framework .TestContext .ClusterDNSDomain , framework .TestContext .ClusterDNSDomain )}
84
- valid1m := map [string ]string {t .labels [0 ]: "def.com" }
85
-
86
- valid2 := map [string ]string {
87
- "Corefile" : fmt .Sprintf (`:53 {
88
- health
89
- ready
90
- kubernetes %v in-addr.arpa ip6.arpa {
91
- pods insecure
92
- fallthrough in-addr.arpa ip6.arpa
93
- ttl 30
94
- }
95
- federation %v {
96
- ghi xyz.com
97
- }
98
- forward . /etc/resolv.conf
99
- }` , framework .TestContext .ClusterDNSDomain , framework .TestContext .ClusterDNSDomain )}
100
- valid2m := map [string ]string {t .labels [1 ]: "xyz.com" }
101
-
102
- ginkgo .By ("default -> valid1" )
103
- t .setConfigMap (& v1.ConfigMap {Data : valid1 }, valid1m , true )
104
- t .deleteCoreDNSPods ()
105
- t .validate (framework .TestContext .ClusterDNSDomain )
106
-
107
- ginkgo .By ("valid1 -> valid2" )
108
- t .setConfigMap (& v1.ConfigMap {Data : valid2 }, valid2m , true )
109
- t .deleteCoreDNSPods ()
110
- t .validate (framework .TestContext .ClusterDNSDomain )
111
-
112
- ginkgo .By ("valid2 -> default" )
113
- t .setConfigMap (& v1.ConfigMap {Data : originalConfigMapData }, nil , false )
114
- t .deleteCoreDNSPods ()
115
- t .validate (framework .TestContext .ClusterDNSDomain )
116
-
117
- t .restoreDNSConfigMap (originalConfigMapData )
118
-
119
- } else {
120
- t .labels = []string {"abc" , "ghi" }
121
- valid1 := map [string ]string {"federations" : t .labels [0 ] + "=def" }
122
- valid1m := map [string ]string {t .labels [0 ]: "def" }
123
- valid2 := map [string ]string {"federations" : t .labels [1 ] + "=xyz" }
124
- valid2m := map [string ]string {t .labels [1 ]: "xyz" }
125
- invalid := map [string ]string {"federations" : "invalid.map=xyz" }
126
-
127
- ginkgo .By ("empty -> valid1" )
128
- t .setConfigMap (& v1.ConfigMap {Data : valid1 }, valid1m , true )
129
- t .validate (framework .TestContext .ClusterDNSDomain )
130
-
131
- ginkgo .By ("valid1 -> valid2" )
132
- t .setConfigMap (& v1.ConfigMap {Data : valid2 }, valid2m , true )
133
- t .validate (framework .TestContext .ClusterDNSDomain )
134
-
135
- ginkgo .By ("valid2 -> invalid" )
136
- t .setConfigMap (& v1.ConfigMap {Data : invalid }, nil , false )
137
- t .validate (framework .TestContext .ClusterDNSDomain )
138
-
139
- ginkgo .By ("invalid -> valid1" )
140
- t .setConfigMap (& v1.ConfigMap {Data : valid1 }, valid1m , true )
141
- t .validate (framework .TestContext .ClusterDNSDomain )
142
-
143
- ginkgo .By ("valid1 -> deleted" )
144
- t .deleteConfigMap ()
145
- t .validate (framework .TestContext .ClusterDNSDomain )
146
-
147
- ginkgo .By ("deleted -> invalid" )
148
- t .setConfigMap (& v1.ConfigMap {Data : invalid }, nil , false )
149
- t .validate (framework .TestContext .ClusterDNSDomain )
150
- }
151
- }
152
-
153
- func (t * dnsFederationsConfigMapTest ) validate (dnsDomain string ) {
154
- federations := t .fedMap
155
-
156
- if len (federations ) == 0 {
157
- ginkgo .By (fmt .Sprintf ("Validating federation labels %v do not exist" , t .labels ))
158
-
159
- for _ , label := range t .labels {
160
- var federationDNS = fmt .Sprintf ("e2e-dns-configmap.%s.%s.svc.%s." ,
161
- t .f .Namespace .Name , label , framework .TestContext .ClusterDNSDomain )
162
- predicate := func (actual []string ) bool {
163
- return len (actual ) == 0
164
- }
165
- t .checkDNSRecordFrom (federationDNS , predicate , "cluster-dns" , wait .ForeverTestTimeout )
166
- }
167
- } else {
168
- for label := range federations {
169
- var federationDNS = fmt .Sprintf ("%s.%s.%s.svc.%s." ,
170
- t .utilService .ObjectMeta .Name , t .f .Namespace .Name , label , framework .TestContext .ClusterDNSDomain )
171
- var localDNS = fmt .Sprintf ("%s.%s.svc.%s." ,
172
- t .utilService .ObjectMeta .Name , t .f .Namespace .Name , framework .TestContext .ClusterDNSDomain )
173
- if t .name == "coredns" {
174
- localDNS = t .utilService .Spec .ClusterIP
175
- }
176
- // Check local mapping. Checking a remote mapping requires
177
- // creating an arbitrary DNS record which is not possible at the
178
- // moment.
179
- ginkgo .By (fmt .Sprintf ("Validating federation record %v" , label ))
180
- predicate := func (actual []string ) bool {
181
- for _ , v := range actual {
182
- if v == localDNS {
183
- return true
184
- }
185
- }
186
- return false
187
- }
188
- t .checkDNSRecordFrom (federationDNS , predicate , "cluster-dns" , wait .ForeverTestTimeout )
189
- }
190
- }
191
- }
192
-
193
- func (t * dnsFederationsConfigMapTest ) setConfigMap (cm * v1.ConfigMap , fedMap map [string ]string , isValid bool ) {
194
- t .fedMap = nil
195
-
196
- if isValid {
197
- t .fedMap = fedMap
198
- }
199
- t .isValid = isValid
200
- t .dnsTestCommon .setConfigMap (cm )
201
- }
202
-
203
- func (t * dnsFederationsConfigMapTest ) deleteConfigMap () {
204
- t .isValid = false
205
- t .dnsTestCommon .deleteConfigMap ()
206
- }
207
-
208
39
type dnsNameserverTest struct {
209
40
dnsTestCommon
210
41
}
0 commit comments