Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
945c7452
Commit
945c7452
authored
Jun 29, 2016
by
Quinton Hoole
Browse files
Options
Browse Files
Download
Plain Diff
Fix federation e2e tests by correctly managing cluster clients.
parents
2baf9b0f
3e65d075
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
32 additions
and
10 deletions
+32
-10
federated-service.go
test/e2e/federated-service.go
+32
-10
No files found.
test/e2e/federated-service.go
View file @
945c7452
...
...
@@ -106,6 +106,7 @@ var _ = framework.KubeDescribe("[Feature:Federation]", func() {
}
framework
.
Logf
(
"%d clusters are Ready"
,
len
(
contexts
))
clusterClientSets
=
make
([]
*
release_1_3
.
Clientset
,
len
(
clusterList
.
Items
))
for
i
,
cluster
:=
range
clusterList
.
Items
{
framework
.
Logf
(
"Creating a clientset for the cluster %s"
,
cluster
.
Name
)
...
...
@@ -125,7 +126,7 @@ var _ = framework.KubeDescribe("[Feature:Federation]", func() {
cfg
.
QPS
=
KubeAPIQPS
cfg
.
Burst
=
KubeAPIBurst
clset
:=
release_1_3
.
NewForConfigOrDie
(
restclient
.
AddUserAgent
(
cfg
,
UserAgentName
))
clusterClientSets
=
append
(
clusterClientSets
,
clset
)
clusterClientSets
[
i
]
=
clset
}
clusterNamespaceCreated
=
make
([]
bool
,
len
(
clusterClientSets
))
...
...
@@ -221,10 +222,15 @@ var _ = framework.KubeDescribe("[Feature:Federation]", func() {
if
backendPods
!=
nil
{
deleteBackendPodsOrFail
(
clusterClientSets
,
f
.
Namespace
.
Name
,
backendPods
)
backendPods
=
nil
}
else
{
By
(
"No backend pods to delete. BackendPods is nil."
)
}
if
service
!=
nil
{
deleteServiceOrFail
(
f
.
FederationClientset_1_3
,
f
.
Namespace
.
Name
,
service
.
Name
)
service
=
nil
}
else
{
By
(
"No service to delete. Service is nil"
)
}
})
...
...
@@ -252,7 +258,7 @@ var _ = framework.KubeDescribe("[Feature:Federation]", func() {
// Delete all the backend pods from the shard which is local to the discovery pod.
deleteBackendPodsOrFail
([]
*
release_1_3
.
Clientset
{
f
.
Clientset_1_3
},
f
.
Namespace
.
Name
,
[]
*
v1
.
Pod
{
backendPods
[
0
]})
backendPods
[
0
]
=
nil
// So we don't try to delete it again in an outer AfterEach
})
It
(
"should be able to discover a non-local federated service"
,
func
()
{
...
...
@@ -279,7 +285,7 @@ var _ = framework.KubeDescribe("[Feature:Federation]", func() {
fmt
.
Sprintf
(
"%s.%s.svc.cluster.local."
,
FederatedServiceName
,
f
.
Namespace
.
Name
),
}
for
i
,
name
:=
range
localSvcDNSNames
{
discoverService
(
f
,
name
,
false
,
FederatedServicePodName
+
strconv
.
Itoa
(
i
))
discoverService
(
f
,
name
,
false
,
"federated-service-e2e-discovery-pod-"
+
strconv
.
Itoa
(
i
))
}
})
})
...
...
@@ -452,17 +458,24 @@ func discoverService(f *framework.Framework, name string, exists bool, podName s
},
}
By
(
fmt
.
Sprintf
(
"Creating pod %q in namespace %q"
,
pod
.
Name
,
f
.
Namespace
.
Name
))
_
,
err
:=
f
.
Client
.
Pods
(
f
.
Namespace
.
Name
)
.
Create
(
pod
)
framework
.
ExpectNoError
(
err
,
"Trying to create pod to run %q"
,
command
)
defer
func
()
{
f
.
Client
.
Pods
(
f
.
Namespace
.
Name
)
.
Delete
(
podName
,
api
.
NewDeleteOptions
(
0
))
}()
By
(
fmt
.
Sprintf
(
"Successfully created pod %q in namespace %q"
,
pod
.
Name
,
f
.
Namespace
.
Name
))
defer
func
()
{
By
(
fmt
.
Sprintf
(
"Deleting pod %q from namespace %q"
,
podName
,
f
.
Namespace
.
Name
))
err
:=
f
.
Client
.
Pods
(
f
.
Namespace
.
Name
)
.
Delete
(
podName
,
api
.
NewDeleteOptions
(
0
))
framework
.
ExpectNoError
(
err
,
"Deleting pod %q from namespace %q"
,
podName
,
f
.
Namespace
.
Name
)
By
(
fmt
.
Sprintf
(
"Deleted pod %q from namespace %q"
,
podName
,
f
.
Namespace
.
Name
))
}()
if
exists
{
// TODO(mml): Eventually check the IP address is correct, too.
Eventually
(
podExitCodeDetector
(
f
,
podName
,
0
),
3
*
DNSTTL
,
time
.
Second
*
2
)
.
Should
(
BeNil
(),
"%q should exit 0, but it never did"
,
command
)
}
else
{
Consistent
ly
(
podExitCodeDetector
(
f
,
podName
,
0
),
3
*
DNSTTL
,
time
.
Second
*
2
)
.
ShouldNot
(
BeNil
(),
"%q should
never exit 0, but it
did"
,
command
)
Eventual
ly
(
podExitCodeDetector
(
f
,
podName
,
0
),
3
*
DNSTTL
,
time
.
Second
*
2
)
.
ShouldNot
(
BeNil
(),
"%q should
eventually not exit 0, but it always
did"
,
command
)
}
}
...
...
@@ -473,9 +486,9 @@ If creation of any pod fails, the test fails (possibly with a partially created
func
createBackendPodsOrFail
(
clusterClientSets
[]
*
release_1_3
.
Clientset
,
namespace
string
,
name
string
)
[]
*
v1
.
Pod
{
pod
:=
&
v1
.
Pod
{
ObjectMeta
:
v1
.
ObjectMeta
{
Name
:
name
,
Namespace
:
namespace
,
Labels
:
FederatedServiceLabels
,
Name
:
name
,
//
Namespace: namespace,
Labels
:
FederatedServiceLabels
,
},
Spec
:
v1
.
PodSpec
{
Containers
:
[]
v1
.
Container
{
...
...
@@ -489,8 +502,10 @@ func createBackendPodsOrFail(clusterClientSets []*release_1_3.Clientset, namespa
}
pods
:=
make
([]
*
v1
.
Pod
,
len
(
clusterClientSets
))
for
i
,
client
:=
range
clusterClientSets
{
By
(
fmt
.
Sprintf
(
"Creating pod %q in namespace %q in cluster %d"
,
pod
.
Name
,
namespace
,
i
))
createdPod
,
err
:=
client
.
Core
()
.
Pods
(
namespace
)
.
Create
(
pod
)
framework
.
ExpectNoError
(
err
,
"Creating pod %q in namespace %q in cluster %d"
,
name
,
namespace
,
i
)
By
(
fmt
.
Sprintf
(
"Successfully created pod %q in namespace %q in cluster %d: %v"
,
pod
.
Name
,
namespace
,
i
,
*
createdPod
))
pods
[
i
]
=
createdPod
}
return
pods
...
...
@@ -507,7 +522,14 @@ func deleteBackendPodsOrFail(clusterClientSets []*release_1_3.Clientset, namespa
for
i
,
client
:=
range
clusterClientSets
{
if
pods
[
i
]
!=
nil
{
err
:=
client
.
Core
()
.
Pods
(
namespace
)
.
Delete
(
pods
[
i
]
.
Name
,
api
.
NewDeleteOptions
(
0
))
framework
.
ExpectNoError
(
err
,
"Deleting pod %q in namespace %q from cluster %d"
,
pods
[
i
]
.
Name
,
namespace
,
i
)
if
errors
.
IsNotFound
(
err
)
{
By
(
fmt
.
Sprintf
(
"Pod %q in namespace %q in cluster %d does not exist. No need to delete it."
,
pods
[
i
]
.
Name
,
namespace
,
i
))
}
else
{
framework
.
ExpectNoError
(
err
,
"Deleting pod %q in namespace %q from cluster %d"
,
pods
[
i
]
.
Name
,
namespace
,
i
)
}
By
(
fmt
.
Sprintf
(
"Backend pod %q in namespace %q in cluster %d deleted or does not exist"
,
pods
[
i
]
.
Name
,
namespace
,
i
))
}
else
{
By
(
fmt
.
Sprintf
(
"No backend pod to delete for cluster %d"
,
i
))
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment