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
7d2f997b
Commit
7d2f997b
authored
Feb 06, 2023
by
Roberto Bonafiglia
Committed by
Roberto Bonafiglia
Mar 14, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added multiClusterCIDR E2E test
Signed-off-by:
Roberto Bonafiglia
<
roberto.bonafiglia@suse.com
>
parent
262cd7de
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
464 additions
and
0 deletions
+464
-0
cluster-cidr-ipv6.yaml
tests/e2e/amd64_resource_files/cluster-cidr-ipv6.yaml
+14
-0
cluster-cidr.yaml
tests/e2e/amd64_resource_files/cluster-cidr.yaml
+14
-0
Vagrantfile
tests/e2e/multiclustercidr/Vagrantfile
+155
-0
multiclustercidr_test.go
tests/e2e/multiclustercidr/multiclustercidr_test.go
+281
-0
No files found.
tests/e2e/amd64_resource_files/cluster-cidr-ipv6.yaml
0 → 100644
View file @
7d2f997b
apiVersion
:
networking.k8s.io/v1alpha1
kind
:
ClusterCIDR
metadata
:
name
:
new-cidr
spec
:
nodeSelector
:
nodeSelectorTerms
:
-
matchExpressions
:
-
key
:
kubernetes.io/hostname
operator
:
In
values
:
-
"
agent-0"
perNodeHostBits
:
64
ipv6
:
2001:cafe:248::/56
tests/e2e/amd64_resource_files/cluster-cidr.yaml
0 → 100644
View file @
7d2f997b
apiVersion
:
networking.k8s.io/v1alpha1
kind
:
ClusterCIDR
metadata
:
name
:
new-cidr
spec
:
nodeSelector
:
nodeSelectorTerms
:
-
matchExpressions
:
-
key
:
kubernetes.io/hostname
operator
:
In
values
:
-
"
agent-0"
perNodeHostBits
:
8
ipv4
:
10.248.0.0/16
tests/e2e/multiclustercidr/Vagrantfile
0 → 100644
View file @
7d2f997b
ENV
[
'VAGRANT_NO_PARALLEL'
]
=
'no'
NODE_ROLES
=
(
ENV
[
'E2E_NODE_ROLES'
]
||
[
"server-0"
,
"server-1"
,
"server-2"
,
"agent-0"
])
NODE_BOXES
=
(
ENV
[
'E2E_NODE_BOXES'
]
||
[
'generic/ubuntu2004'
,
'generic/ubuntu2004'
,
'generic/ubuntu2004'
,
'generic/ubuntu2004'
])
GITHUB_BRANCH
=
(
ENV
[
'E2E_GITHUB_BRANCH'
]
||
"master"
)
RELEASE_VERSION
=
(
ENV
[
'E2E_RELEASE_VERSION'
]
||
""
)
NODE_CPUS
=
(
ENV
[
'E2E_NODE_CPUS'
]
||
2
).
to_i
NODE_MEMORY
=
(
ENV
[
'E2E_NODE_MEMORY'
]
||
2048
).
to_i
IP_FAMILY
=
(
ENV
[
'E2E_IP_FAMILY'
]
||
"ipv4"
)
NETWORK4_PREFIX
=
"10.10.10"
NETWORK6_PREFIX
=
"fd11:decf:c0ff:ee"
install_type
=
""
def
provision
(
vm
,
roles
,
role_num
,
node_num
)
vm
.
box
=
NODE_BOXES
[
node_num
]
vm
.
hostname
=
"
#{
roles
[
0
]
}
-
#{
role_num
}
"
node_ip4
=
"
#{
NETWORK4_PREFIX
}
.
#{
100
+
node_num
}
"
node_ip6
=
"
#{
NETWORK6_PREFIX
}
::
#{
10
+
node_num
}
"
node_ip6_gw
=
"
#{
NETWORK6_PREFIX
}
::1"
# Only works with libvirt, which allows IPv4 + IPv6 on a single network/interface
vm
.
network
"private_network"
,
:ip
=>
node_ip4
,
:netmask
=>
"255.255.255.0"
,
:libvirt__dhcp_enabled
=>
false
,
:libvirt__forward_mode
=>
"none"
,
:libvirt__guest_ipv6
=>
"yes"
,
:libvirt__ipv6_address
=>
"
#{
NETWORK6_PREFIX
}
::1"
,
:libvirt__ipv6_prefix
=>
"64"
scripts_location
=
Dir
.
exists?
(
"./scripts"
)
?
"./scripts"
:
"../scripts"
vagrant_defaults
=
File
.
exists?
(
"./vagrantdefaults.rb"
)
?
"./vagrantdefaults.rb"
:
"../vagrantdefaults.rb"
load
vagrant_defaults
defaultOSConfigure
(
vm
)
vm
.
provision
"IPv6 Setup"
,
type:
"shell"
,
path:
scripts_location
+
"/ipv6.sh"
,
args:
[
node_ip4
,
node_ip6
,
node_ip6_gw
,
vm
.
box
.
to_s
]
install_type
=
getInstallType
(
vm
,
RELEASE_VERSION
,
GITHUB_BRANCH
)
vm
.
provision
"Ping Check"
,
type:
"shell"
,
inline:
"ping -c 2 k3s.io"
if
roles
.
include?
(
"server"
)
&&
role_num
==
0
vm
.
provision
:k3s
,
run:
'once'
do
|
k3s
|
k3s
.
config_mode
=
'0644'
# side-step https://github.com/k3s-io/k3s/issues/4321
k3s
.
args
=
"server "
if
IP_FAMILY
.
include?
(
"ipv4"
)
k3s
.
config
=
<<~
YAML
node-external-ip:
#{
node_ip4
}
node-ip:
#{
node_ip4
}
cluster-init: true
token: vagrant
cluster-cidr: 10.42.0.0/16
service-cidr: 10.43.0.0/16
bind-address:
#{
NETWORK4_PREFIX
}
.100
multi-cluster-cidr: true
flannel-iface: eth1
YAML
else
k3s
.
config
=
<<~
YAML
node-external-ip:
#{
node_ip6
}
node-ip:
#{
node_ip6
}
cluster-init: true
token: vagrant
cluster-cidr: 2001:cafe:42::/56
service-cidr: 2001:cafe:43::/112
bind-address:
#{
NETWORK6_PREFIX
}
::10
multi-cluster-cidr: true
flannel-ipv6-masq: true
flannel-iface: eth1
YAML
end
k3s
.
env
=
[
"K3S_KUBECONFIG_MODE=0644"
,
install_type
]
end
elsif
roles
.
include?
(
"server"
)
&&
role_num
!=
0
vm
.
provision
:k3s
,
run:
'once'
do
|
k3s
|
k3s
.
config_mode
=
'0644'
# side-step https://github.com/k3s-io/k3s/issues/4321
k3s
.
args
=
"server "
if
IP_FAMILY
.
include?
(
"ipv4"
)
k3s
.
config
=
<<~
YAML
node-external-ip:
#{
node_ip4
}
node-ip:
#{
node_ip4
}
server: https://
#{
NETWORK4_PREFIX
}
.100:6443
token: vagrant
cluster-cidr: 10.42.0.0/16
service-cidr: 10.43.0.0/16
multi-cluster-cidr: true
flannel-iface: eth1
YAML
else
k3s
.
config
=
<<~
YAML
node-external-ip:
#{
node_ip6
}
node-ip:
#{
node_ip6
}
server: https://[
#{
NETWORK6_PREFIX
}
::10]:6443
token: vagrant
cluster-cidr: 2001:cafe:42::/56
service-cidr: 2001:cafe:43::/112
multi-cluster-cidr: true
flannel-ipv6-masq: true
flannel-iface: eth1
YAML
end
k3s
.
env
=
[
"K3S_KUBECONFIG_MODE=0644"
,
install_type
]
end
end
if
roles
.
include?
(
"agent"
)
vm
.
provision
:k3s
,
run:
'once'
do
|
k3s
|
k3s
.
config_mode
=
'0644'
# side-step https://github.com/k3s-io/k3s/issues/4321
k3s
.
args
=
"agent "
if
IP_FAMILY
.
include?
(
"ipv4"
)
k3s
.
config
=
<<~
YAML
node-external-ip:
#{
node_ip4
}
node-ip:
#{
node_ip4
}
server: https://
#{
NETWORK4_PREFIX
}
.100:6443
token: vagrant
flannel-iface: eth1
YAML
else
k3s
.
config
=
<<~
YAML
node-external-ip:
#{
node_ip6
}
node-ip:
#{
node_ip6
}
server: https://[
#{
NETWORK6_PREFIX
}
::10]:6443
token: vagrant
flannel-iface: eth1
YAML
end
k3s
.
env
=
[
"K3S_KUBECONFIG_MODE=0644"
,
"INSTALL_K3S_SKIP_START=true"
,
install_type
]
end
end
end
Vagrant
.
configure
(
"2"
)
do
|
config
|
config
.
vagrant
.
plugins
=
[
"vagrant-k3s"
,
"vagrant-reload"
,
"vagrant-libvirt"
]
config
.
vm
.
provider
"libvirt"
do
|
v
|
v
.
cpus
=
NODE_CPUS
v
.
memory
=
NODE_MEMORY
end
if
NODE_ROLES
.
kind_of?
(
String
)
NODE_ROLES
=
NODE_ROLES
.
split
(
" "
,
-
1
)
end
if
NODE_BOXES
.
kind_of?
(
String
)
NODE_BOXES
=
NODE_BOXES
.
split
(
" "
,
-
1
)
end
# Must iterate on the index, vagrant does not understand iterating
# over the node roles themselves
NODE_ROLES
.
length
.
times
do
|
i
|
name
=
NODE_ROLES
[
i
]
config
.
vm
.
define
name
do
|
node
|
roles
=
name
.
split
(
"-"
,
-
1
)
role_num
=
roles
.
pop
.
to_i
provision
(
node
.
vm
,
roles
,
role_num
,
i
)
end
end
end
tests/e2e/multiclustercidr/multiclustercidr_test.go
0 → 100644
View file @
7d2f997b
package
multiclustercidr
import
(
"flag"
"fmt"
"os"
"strings"
"testing"
"github.com/k3s-io/k3s/tests/e2e"
.
"github.com/onsi/ginkgo/v2"
.
"github.com/onsi/gomega"
)
// Valid nodeOS: generic/ubuntu2004, opensuse/Leap-15.3.x86_64
var
nodeOS
=
flag
.
String
(
"nodeOS"
,
"generic/ubuntu2004"
,
"VM operating system"
)
var
serverCount
=
flag
.
Int
(
"serverCount"
,
3
,
"number of server nodes"
)
var
agentCount
=
flag
.
Int
(
"agentCount"
,
1
,
"number of agent nodes"
)
var
hardened
=
flag
.
Bool
(
"hardened"
,
false
,
"true or false"
)
var
ci
=
flag
.
Bool
(
"ci"
,
false
,
"running on CI"
)
func
Test_E2EMultiClusterCIDR
(
t
*
testing
.
T
)
{
flag
.
Parse
()
RegisterFailHandler
(
Fail
)
suiteConfig
,
reporterConfig
:=
GinkgoConfiguration
()
RunSpecs
(
t
,
"MultiClusterCIDR Test Suite"
,
suiteConfig
,
reporterConfig
)
}
var
(
kubeConfigFile
string
serverNodeNames
[]
string
agentNodeNames
[]
string
)
var
_
=
ReportAfterEach
(
e2e
.
GenReport
)
var
_
=
Describe
(
"Verify MultiClusterCIDR Configuration"
,
Ordered
,
func
()
{
It
(
"Starts up IPv4 setup with no issues"
,
func
()
{
var
err
error
os
.
Setenv
(
"E2E_IP_FAMILY"
,
"ipv4"
)
defer
os
.
Unsetenv
(
"E2E_IP_FAMILY"
)
serverNodeNames
,
agentNodeNames
,
err
=
e2e
.
CreateCluster
(
*
nodeOS
,
*
serverCount
,
*
agentCount
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
(),
e2e
.
GetVagrantLog
(
err
))
fmt
.
Println
(
"CLUSTER CONFIG"
)
fmt
.
Println
(
"OS:"
,
*
nodeOS
)
fmt
.
Println
(
"Server Nodes:"
,
serverNodeNames
)
fmt
.
Println
(
"Agent Nodes:"
,
agentNodeNames
)
kubeConfigFile
,
err
=
e2e
.
GenKubeConfigFile
(
serverNodeNames
[
0
])
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
})
It
(
"Checks Node Status"
,
func
()
{
Eventually
(
func
(
g
Gomega
)
{
nodes
,
err
:=
e2e
.
ParseNodes
(
kubeConfigFile
,
false
)
g
.
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
for
_
,
node
:=
range
nodes
{
g
.
Expect
(
node
.
Status
)
.
Should
(
Equal
(
"Ready"
))
}
},
"420s"
,
"5s"
)
.
Should
(
Succeed
())
_
,
err
:=
e2e
.
ParseNodes
(
kubeConfigFile
,
true
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
})
It
(
"Checks Pod Status"
,
func
()
{
Eventually
(
func
(
g
Gomega
)
{
pods
,
err
:=
e2e
.
ParsePods
(
kubeConfigFile
,
false
)
g
.
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
for
_
,
pod
:=
range
pods
{
if
strings
.
Contains
(
pod
.
Name
,
"helm-install"
)
{
g
.
Expect
(
pod
.
Status
)
.
Should
(
Equal
(
"Completed"
),
pod
.
Name
)
}
else
{
g
.
Expect
(
pod
.
Status
)
.
Should
(
Equal
(
"Running"
),
pod
.
Name
)
}
}
},
"420s"
,
"5s"
)
.
Should
(
Succeed
())
_
,
err
:=
e2e
.
ParsePods
(
kubeConfigFile
,
true
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
})
It
(
"Verifies that each node has IPv4"
,
func
()
{
nodeIPs
,
err
:=
e2e
.
GetNodeIPs
(
kubeConfigFile
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
for
_
,
node
:=
range
nodeIPs
{
Expect
(
node
.
IPv4
)
.
Should
(
ContainSubstring
(
"10.10.10"
))
}
})
It
(
"Verifies that each pod has IPv4"
,
func
()
{
podIPs
,
err
:=
e2e
.
GetPodIPs
(
kubeConfigFile
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
for
_
,
pod
:=
range
podIPs
{
Expect
(
pod
.
IPv4
)
.
Should
(
Or
(
ContainSubstring
(
"10.10.10"
),
ContainSubstring
(
"10.42."
)),
pod
.
Name
)
}
})
It
(
"Add new CIDR"
,
func
()
{
_
,
err
:=
e2e
.
DeployWorkload
(
"cluster-cidr.yaml"
,
kubeConfigFile
,
*
hardened
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
Eventually
(
func
()
(
string
,
error
)
{
cmd
:=
"kubectl get clustercidr new-cidr --kubeconfig="
+
kubeConfigFile
return
e2e
.
RunCommand
(
cmd
)
},
"120s"
,
"5s"
)
.
Should
(
ContainSubstring
(
"10.248.0.0"
))
})
It
(
"Restart agent-0"
,
func
()
{
agents
:=
[]
string
{
"agent-0"
}
err
:=
e2e
.
RestartClusterAgent
(
agents
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
(),
e2e
.
GetVagrantLog
(
err
))
})
It
(
"Checks Node Status"
,
func
()
{
Eventually
(
func
(
g
Gomega
)
{
nodes
,
err
:=
e2e
.
ParseNodes
(
kubeConfigFile
,
false
)
g
.
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
for
_
,
node
:=
range
nodes
{
g
.
Expect
(
node
.
Status
)
.
Should
(
Equal
(
"Ready"
))
}
},
"420s"
,
"5s"
)
.
Should
(
Succeed
())
_
,
err
:=
e2e
.
ParseNodes
(
kubeConfigFile
,
true
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
})
It
(
"Checks Pod Status"
,
func
()
{
Eventually
(
func
(
g
Gomega
)
{
pods
,
err
:=
e2e
.
ParsePods
(
kubeConfigFile
,
false
)
g
.
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
for
_
,
pod
:=
range
pods
{
if
strings
.
Contains
(
pod
.
Name
,
"helm-install"
)
{
g
.
Expect
(
pod
.
Status
)
.
Should
(
Equal
(
"Completed"
),
pod
.
Name
)
}
else
{
g
.
Expect
(
pod
.
Status
)
.
Should
(
Equal
(
"Running"
),
pod
.
Name
)
}
}
},
"420s"
,
"5s"
)
.
Should
(
Succeed
())
_
,
err
:=
e2e
.
ParsePods
(
kubeConfigFile
,
true
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
})
It
(
"Verifies that each pod of agent-0 has IPv4 from the new CIDR"
,
func
()
{
pods
,
err
:=
e2e
.
ParsePods
(
kubeConfigFile
,
false
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
for
_
,
pod
:=
range
pods
{
if
pod
.
Node
==
"agent-0"
{
Expect
(
pod
.
NodeIP
)
.
Should
(
Or
(
ContainSubstring
(
"10.10.10"
),
ContainSubstring
(
"10.248."
)),
pod
.
Name
)
}
}
})
It
(
"Destroy Cluster"
,
func
()
{
Expect
(
e2e
.
DestroyCluster
())
.
To
(
Succeed
())
Expect
(
os
.
Remove
(
kubeConfigFile
))
.
To
(
Succeed
())
})
It
(
"Starts up IPv6 setup with no issues"
,
func
()
{
var
err
error
os
.
Setenv
(
"E2E_IP_FAMILY"
,
"ipv6"
)
defer
os
.
Unsetenv
(
"E2E_IP_FAMILY"
)
serverNodeNames
,
agentNodeNames
,
err
=
e2e
.
CreateCluster
(
*
nodeOS
,
*
serverCount
,
*
agentCount
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
(),
e2e
.
GetVagrantLog
(
err
))
fmt
.
Println
(
"CLUSTER CONFIG"
)
fmt
.
Println
(
"OS:"
,
*
nodeOS
)
fmt
.
Println
(
"Server Nodes:"
,
serverNodeNames
)
fmt
.
Println
(
"Agent Nodes:"
,
agentNodeNames
)
kubeConfigFile
,
err
=
e2e
.
GenKubeConfigFile
(
serverNodeNames
[
0
])
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
})
It
(
"Checks Node Status"
,
func
()
{
Eventually
(
func
(
g
Gomega
)
{
nodes
,
err
:=
e2e
.
ParseNodes
(
kubeConfigFile
,
false
)
g
.
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
for
_
,
node
:=
range
nodes
{
g
.
Expect
(
node
.
Status
)
.
Should
(
Equal
(
"Ready"
))
}
},
"420s"
,
"5s"
)
.
Should
(
Succeed
())
_
,
err
:=
e2e
.
ParseNodes
(
kubeConfigFile
,
true
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
})
It
(
"Checks Pod Status"
,
func
()
{
Eventually
(
func
(
g
Gomega
)
{
pods
,
err
:=
e2e
.
ParsePods
(
kubeConfigFile
,
false
)
g
.
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
for
_
,
pod
:=
range
pods
{
if
strings
.
Contains
(
pod
.
Name
,
"helm-install"
)
{
g
.
Expect
(
pod
.
Status
)
.
Should
(
Equal
(
"Completed"
),
pod
.
Name
)
}
else
{
g
.
Expect
(
pod
.
Status
)
.
Should
(
Equal
(
"Running"
),
pod
.
Name
)
}
}
},
"420s"
,
"5s"
)
.
Should
(
Succeed
())
_
,
err
:=
e2e
.
ParsePods
(
kubeConfigFile
,
true
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
})
It
(
"Verifies that each node has IPv6"
,
func
()
{
nodeIPs
,
err
:=
e2e
.
GetNodeIPs
(
kubeConfigFile
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
for
_
,
node
:=
range
nodeIPs
{
Expect
(
node
.
IPv6
)
.
Should
(
ContainSubstring
(
"fd11:decf:c0ff"
))
}
})
It
(
"Verifies that each pod has IPv6"
,
func
()
{
podIPs
,
err
:=
e2e
.
GetPodIPs
(
kubeConfigFile
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
for
_
,
pod
:=
range
podIPs
{
Expect
(
pod
.
IPv6
)
.
Should
(
Or
(
ContainSubstring
(
"fd11:decf:c0ff"
),
ContainSubstring
(
"2001:cafe:42"
)),
pod
.
Name
)
}
})
It
(
"Add new CIDR"
,
func
()
{
_
,
err
:=
e2e
.
DeployWorkload
(
"cluster-cidr-ipv6.yaml"
,
kubeConfigFile
,
*
hardened
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
Eventually
(
func
()
(
string
,
error
)
{
cmd
:=
"kubectl get clustercidr new-cidr --kubeconfig="
+
kubeConfigFile
return
e2e
.
RunCommand
(
cmd
)
},
"120s"
,
"5s"
)
.
Should
(
ContainSubstring
(
"2001:cafe:248"
))
})
It
(
"Delete and restart agent-0"
,
func
()
{
agents
:=
[]
string
{
"agent-0"
}
err
:=
e2e
.
RestartClusterAgent
(
agents
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
(),
e2e
.
GetVagrantLog
(
err
))
})
It
(
"Checks Node Status"
,
func
()
{
Eventually
(
func
(
g
Gomega
)
{
nodes
,
err
:=
e2e
.
ParseNodes
(
kubeConfigFile
,
false
)
g
.
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
for
_
,
node
:=
range
nodes
{
g
.
Expect
(
node
.
Status
)
.
Should
(
Equal
(
"Ready"
))
}
},
"420s"
,
"5s"
)
.
Should
(
Succeed
())
_
,
err
:=
e2e
.
ParseNodes
(
kubeConfigFile
,
true
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
})
It
(
"Checks Pod Status"
,
func
()
{
Eventually
(
func
(
g
Gomega
)
{
pods
,
err
:=
e2e
.
ParsePods
(
kubeConfigFile
,
false
)
g
.
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
for
_
,
pod
:=
range
pods
{
if
strings
.
Contains
(
pod
.
Name
,
"helm-install"
)
{
g
.
Expect
(
pod
.
Status
)
.
Should
(
Equal
(
"Completed"
),
pod
.
Name
)
}
else
{
g
.
Expect
(
pod
.
Status
)
.
Should
(
Equal
(
"Running"
),
pod
.
Name
)
}
}
},
"420s"
,
"5s"
)
.
Should
(
Succeed
())
_
,
err
:=
e2e
.
ParsePods
(
kubeConfigFile
,
true
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
})
It
(
"Verifies that each pod of agent-0 has IPv6 from the new CIDR"
,
func
()
{
pods
,
err
:=
e2e
.
ParsePods
(
kubeConfigFile
,
false
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
for
_
,
pod
:=
range
pods
{
if
pod
.
Node
==
"agent-0"
{
Expect
(
pod
.
NodeIP
)
.
Should
(
Or
(
ContainSubstring
(
"fd11:decf:c0ff"
),
ContainSubstring
(
"2001:cafe:248"
)),
pod
.
Name
)
}
}
})
})
var
failed
bool
var
_
=
AfterEach
(
func
()
{
failed
=
failed
||
CurrentSpecReport
()
.
Failed
()
})
var
_
=
AfterSuite
(
func
()
{
if
failed
&&
!*
ci
{
fmt
.
Println
(
"FAILED!"
)
}
else
{
Expect
(
e2e
.
DestroyCluster
())
.
To
(
Succeed
())
Expect
(
os
.
Remove
(
kubeConfigFile
))
.
To
(
Succeed
())
}
})
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