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
79bb7bcc
Unverified
Commit
79bb7bcc
authored
Aug 26, 2022
by
ShylajaDevadiga
Committed by
GitHub
Aug 26, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix e2e tests (#6018)
Signed-off-by:
Shylaja Devadiga
<
shylaja@rancher.com
>
parent
4c9ad254
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
94 additions
and
23 deletions
+94
-23
testutils.go
tests/e2e/testutils.go
+2
-2
Vagrantfile
tests/e2e/upgradecluster/Vagrantfile
+91
-21
vagrantdefaults.rb
tests/e2e/vagrantdefaults.rb
+1
-0
No files found.
tests/e2e/testutils.go
View file @
79bb7bcc
...
@@ -306,7 +306,7 @@ func RunCommand(cmd string) (string, error) {
...
@@ -306,7 +306,7 @@ func RunCommand(cmd string) (string, error) {
func
UpgradeCluster
(
serverNodeNames
[]
string
,
agentNodeNames
[]
string
)
error
{
func
UpgradeCluster
(
serverNodeNames
[]
string
,
agentNodeNames
[]
string
)
error
{
for
_
,
nodeName
:=
range
serverNodeNames
{
for
_
,
nodeName
:=
range
serverNodeNames
{
cmd
:=
"RELEASE_CHANNEL=commit vagrant provision "
+
nodeName
cmd
:=
"
E2E_
RELEASE_CHANNEL=commit vagrant provision "
+
nodeName
fmt
.
Println
(
cmd
)
fmt
.
Println
(
cmd
)
if
out
,
err
:=
RunCommand
(
cmd
);
err
!=
nil
{
if
out
,
err
:=
RunCommand
(
cmd
);
err
!=
nil
{
fmt
.
Println
(
"Error Upgrading Cluster"
,
out
)
fmt
.
Println
(
"Error Upgrading Cluster"
,
out
)
...
@@ -314,7 +314,7 @@ func UpgradeCluster(serverNodeNames []string, agentNodeNames []string) error {
...
@@ -314,7 +314,7 @@ func UpgradeCluster(serverNodeNames []string, agentNodeNames []string) error {
}
}
}
}
for
_
,
nodeName
:=
range
agentNodeNames
{
for
_
,
nodeName
:=
range
agentNodeNames
{
cmd
:=
"RELEASE_CHANNEL=commit vagrant provision "
+
nodeName
cmd
:=
"
E2E_
RELEASE_CHANNEL=commit vagrant provision "
+
nodeName
if
_
,
err
:=
RunCommand
(
cmd
);
err
!=
nil
{
if
_
,
err
:=
RunCommand
(
cmd
);
err
!=
nil
{
fmt
.
Println
(
"Error Upgrading Cluster"
,
err
)
fmt
.
Println
(
"Error Upgrading Cluster"
,
err
)
return
err
return
err
...
...
tests/e2e/upgradecluster/Vagrantfile
View file @
79bb7bcc
ENV
[
'VAGRANT_NO_PARALLEL'
]
=
'no'
ENV
[
'VAGRANT_NO_PARALLEL'
]
=
'no'
NODE_ROLES
=
(
ENV
[
'NODE_ROLES'
]
||
NODE_ROLES
=
(
ENV
[
'
E2E_
NODE_ROLES'
]
||
[
"server-0"
,
"server-1"
,
"server-2"
,
"agent-0"
,
"agent-1"
])
[
"server-0"
,
"server-1"
,
"server-2"
,
"agent-0"
,
"agent-1"
])
NODE_BOXES
=
(
ENV
[
'NODE_BOXES'
]
||
NODE_BOXES
=
(
ENV
[
'
E2E_
NODE_BOXES'
]
||
[
'generic/ubuntu2004'
,
'generic/ubuntu2004'
,
'generic/ubuntu2004'
,
'generic/ubuntu2004'
,
'generic/ubuntu2004'
])
[
'generic/ubuntu2004'
,
'generic/ubuntu2004'
,
'generic/ubuntu2004'
,
'generic/ubuntu2004'
,
'generic/ubuntu2004'
])
RELEASE_CHANNEL
=
(
ENV
[
'RELEASE_CHANNEL'
]
||
"latest"
)
RELEASE_CHANNEL
=
(
ENV
[
'E2E_RELEASE_CHANNEL'
]
||
"latest"
)
RELEASE_VERSION
=
(
ENV
[
'RELEASE_VERSION'
]
||
""
)
RELEASE_VERSION
=
(
ENV
[
'E2E_RELEASE_VERSION'
]
||
""
)
NODE_CPUS
=
(
ENV
[
'NODE_CPUS'
]
||
2
).
to_i
EXTERNAL_DB
=
(
ENV
[
'E2E_EXTERNAL_DB'
]
||
"etcd"
)
NODE_MEMORY
=
(
ENV
[
'NODE_MEMORY'
]
||
1024
).
to_i
NODE_CPUS
=
(
ENV
[
'E2E_NODE_CPUS'
]
||
2
).
to_i
NODE_MEMORY
=
(
ENV
[
'E2E_NODE_MEMORY'
]
||
1024
).
to_i
# Virtualbox >= 6.1.28 require `/etc/vbox/network.conf` for expanded private networks
# Virtualbox >= 6.1.28 require `/etc/vbox/network.conf` for expanded private networks
NETWORK_PREFIX
=
"10.10.10"
NETWORK_PREFIX
=
"10.10.10"
install_type
=
""
install_type
=
""
...
@@ -15,11 +16,13 @@ def provision(vm, role, role_num, node_num)
...
@@ -15,11 +16,13 @@ def provision(vm, role, role_num, node_num)
vm
.
box
=
NODE_BOXES
[
node_num
]
vm
.
box
=
NODE_BOXES
[
node_num
]
vm
.
hostname
=
role
vm
.
hostname
=
role
# An expanded netmask is required to allow VM<-->VM communication, virtualbox defaults to /32
# An expanded netmask is required to allow VM<-->VM communication, virtualbox defaults to /32
vm
.
network
"private_network"
,
ip:
"
#{
NETWORK_PREFIX
}
.
#{
100
+
node_num
}
"
,
netmask:
"255.255.255.0"
node_ip
=
"
#{
NETWORK_PREFIX
}
.
#{
100
+
node_num
}
"
vm
.
network
"private_network"
,
ip:
node_ip
,
netmask:
"255.255.255.0"
scripts_location
=
Dir
.
exists?
(
"./scripts"
)
?
"./scripts"
:
"../scripts"
vagrant_defaults
=
File
.
exists?
(
"./vagrantdefaults.rb"
)
?
"./vagrantdefaults.rb"
:
"../vagrantdefaults.rb"
load
vagrant_defaults
vagrant_defaults
=
'../vagrantdefaults.rb'
load
vagrant_defaults
if
File
.
exists?
(
vagrant_defaults
)
defaultOSConfigure
(
vm
)
defaultOSConfigure
(
vm
)
if
!
RELEASE_VERSION
.
empty?
if
!
RELEASE_VERSION
.
empty?
...
@@ -33,33 +36,100 @@ def provision(vm, role, role_num, node_num)
...
@@ -33,33 +36,100 @@ def provision(vm, role, role_num, node_num)
install_type
=
"INSTALL_K3S_VERSION=$(cat
\
/tmp/k3s_version)"
install_type
=
"INSTALL_K3S_VERSION=$(cat
\
/tmp/k3s_version)"
end
end
vm
.
provision
"shell"
,
inline:
"ping -c 2 k3s.io"
vm
.
provision
"shell"
,
inline:
"ping -c 2 k3s.io"
db_type
=
getDBType
(
role
,
role_num
,
vm
)
if
role
.
include?
(
"server"
)
&&
role_num
==
0
if
role
.
include?
(
"server"
)
&&
role_num
==
0
vm
.
provision
'k3s-install'
,
type:
'k3s'
,
run:
'once'
do
|
k3s
|
vm
.
provision
'k3s-primary-server'
,
type:
'k3s'
,
run:
'once'
do
|
k3s
|
k3s
.
args
=
%W[server --cluster-init --node-external-ip=
#{
NETWORK_PREFIX
}
.100 --flannel-iface=eth1]
k3s
.
args
=
"server "
k3s
.
env
=
%W[K3S_KUBECONFIG_MODE=0644 K3S_TOKEN=vagrant
#{
install_type
}
]
k3s
.
config
=
<<~
YAML
token: vagrant
node-external-ip:
#{
NETWORK_PREFIX
}
.100
flannel-iface: eth1
tls-san:
#{
NETWORK_PREFIX
}
.100.nip.io
#{
db_type
}
YAML
k3s
.
env
=
%W[K3S_KUBECONFIG_MODE=0644
#{
install_type
}
]
k3s
.
config_mode
=
'0644'
# side-step https://github.com/k3s-io/k3s/issues/4321
k3s
.
config_mode
=
'0644'
# side-step https://github.com/k3s-io/k3s/issues/4321
end
end
elsif
role
.
include?
(
"server"
)
&&
role_num
!=
0
elsif
role
.
include?
(
"server"
)
&&
role_num
!=
0
vm
.
provision
'k3s-install'
,
type:
'k3s'
,
run:
'once'
do
|
k3s
|
vm
.
provision
'k3s-secondary-server'
,
type:
'k3s'
,
run:
'once'
do
|
k3s
|
k3s
.
args
=
%W[server --server https://
#{
NETWORK_PREFIX
}
.100:6443 --flannel-iface=eth1]
k3s
.
args
=
"server"
k3s
.
config
=
<<~
YAML
server: "https://
#{
NETWORK_PREFIX
}
.100:6443"
token: vagrant
node-external-ip:
#{
node_ip
}
flannel-iface: eth1
#{
db_type
}
YAML
k3s
.
env
=
%W[K3S_KUBECONFIG_MODE=0644 K3S_TOKEN=vagrant
#{
install_type
}
]
k3s
.
env
=
%W[K3S_KUBECONFIG_MODE=0644 K3S_TOKEN=vagrant
#{
install_type
}
]
k3s
.
config_mode
=
'0644'
# side-step https://github.com/k3s-io/k3s/issues/4321
k3s
.
config_mode
=
'0644'
# side-step https://github.com/k3s-io/k3s/issues/4321
end
end
end
end
if
role
.
include?
(
"agent"
)
vm
.
provision
'k3s-install'
,
type:
'k3s'
,
run:
'once'
do
|
k3s
|
if
role
.
include?
(
"agent"
)
k3s
.
args
=
%W[agent --server https://
#{
NETWORK_PREFIX
}
.100:6443 --flannel-iface=eth1]
vm
.
provision
'k3s-agent'
,
type:
'k3s'
,
run:
'once'
do
|
k3s
|
k3s
.
env
=
%W[K3S_KUBECONFIG_MODE=0644 K3S_TOKEN=vagrant
#{
install_type
}
]
k3s
.
args
=
"agent"
k3s
.
config
=
<<~
YAML
server: "https://
#{
NETWORK_PREFIX
}
.100:6443"
token: vagrant
node-external-ip:
#{
node_ip
}
flannel-iface: eth1
#{
db_type
}
YAML
k3s
.
env
=
%W[K3S_KUBECONFIG_MODE=0644
#{
install_type
}
]
k3s
.
config_mode
=
'0644'
# side-step https://github.com/k3s-io/k3s/issues/4321
k3s
.
config_mode
=
'0644'
# side-step https://github.com/k3s-io/k3s/issues/4321
end
end
end
end
if
vm
.
box
.
to_s
.
include?
(
"microos"
)
if
vm
.
box
.
to_s
.
include?
(
"microos"
)
vm
.
provision
'k3s-reload'
,
type:
'reload'
,
run:
'once'
vm
.
provision
'k3s-reload'
,
type:
'reload'
,
run:
'once'
if
!
EXTERNAL_DB
.
empty?
vm
.
provision
"shell"
,
inline:
"docker start
#{
EXTERNAL_DB
}
"
end
end
end
def
getDBType
(
role
,
role_num
,
vm
)
if
EXTERNAL_DB
==
"mysql"
if
role
.
include?
(
"server"
)
&&
role_num
==
0
dockerInstall
(
vm
)
vm
.
provision
"Start mysql"
,
inline:
"docker run -d -p 3306:3306 --name
#{
EXTERNAL_DB
}
-e MYSQL_ROOT_PASSWORD=e2e mysql:5.7"
vm
.
provision
"shell"
,
inline:
"echo
\"
Wait for mysql to startup
\"
; sleep 10"
return
"datastore-endpoint: 'mysql://root:e2e@tcp(
#{
NETWORK_PREFIX
}
.100:3306)/k3s'"
elsif
role
.
include?
(
"server"
)
&&
role_num
!=
0
return
"datastore-endpoint: 'mysql://root:e2e@tcp(
#{
NETWORK_PREFIX
}
.100:3306)/k3s'"
end
elsif
EXTERNAL_DB
==
"postgres"
if
role
.
include?
(
"server"
)
&&
role_num
==
0
dockerInstall
(
vm
)
vm
.
provision
"Start postgres"
,
inline:
"docker run -d -p 5432:5432 --name
#{
EXTERNAL_DB
}
-e POSTGRES_PASSWORD=e2e postgres:14-alpine"
vm
.
provision
"shell"
,
inline:
"echo
\"
Wait for postgres to startup
\"
; sleep 10"
return
"datastore-endpoint: 'postgres://postgres:e2e@
#{
NETWORK_PREFIX
}
.100:5432/k3s?sslmode=disable'"
elsif
role
.
include?
(
"server"
)
&&
role_num
!=
0
return
"datastore-endpoint: 'postgres://postgres:e2e@
#{
NETWORK_PREFIX
}
.100:5432/k3s?sslmode=disable'"
end
elsif
(
EXTERNAL_DB
==
""
||
EXTERNAL_DB
==
"etcd"
)
if
role
.
include?
(
"server"
)
&&
role_num
==
0
return
"cluster-init: true"
end
elsif
(
EXTERNAL_DB
==
"none"
)
# Use internal sqlite
else
puts
"Unknown EXTERNAL_DB: "
+
EXTERNAL_DB
abort
end
end
return
""
end
end
Vagrant
.
configure
(
"2"
)
do
|
config
|
Vagrant
.
configure
(
"2"
)
do
|
config
|
config
.
vagrant
.
plugins
=
[
"vagrant-k3s"
,
"vagrant-reload"
]
config
.
vagrant
.
plugins
=
[
"vagrant-k3s"
,
"vagrant-reload"
]
# Default provider is libvirt, virtualbox is only provided as a backup
# Default provider is libvirt, virtualbox is only provided as a backup
...
@@ -71,7 +141,7 @@ Vagrant.configure("2") do |config|
...
@@ -71,7 +141,7 @@ Vagrant.configure("2") do |config|
v
.
cpus
=
NODE_CPUS
v
.
cpus
=
NODE_CPUS
v
.
memory
=
NODE_MEMORY
v
.
memory
=
NODE_MEMORY
end
end
if
NODE_ROLES
.
kind_of?
(
String
)
if
NODE_ROLES
.
kind_of?
(
String
)
NODE_ROLES
=
NODE_ROLES
.
split
(
" "
,
-
1
)
NODE_ROLES
=
NODE_ROLES
.
split
(
" "
,
-
1
)
end
end
...
@@ -79,7 +149,7 @@ Vagrant.configure("2") do |config|
...
@@ -79,7 +149,7 @@ Vagrant.configure("2") do |config|
NODE_BOXES
=
NODE_BOXES
.
split
(
" "
,
-
1
)
NODE_BOXES
=
NODE_BOXES
.
split
(
" "
,
-
1
)
end
end
# Must iterate on the index, vagrant does not understand iterating
# Must iterate on the index, vagrant does not understand iterating
# over the node roles themselves
# over the node roles themselves
NODE_ROLES
.
length
.
times
do
|
i
|
NODE_ROLES
.
length
.
times
do
|
i
|
name
=
NODE_ROLES
[
i
]
name
=
NODE_ROLES
[
i
]
...
...
tests/e2e/vagrantdefaults.rb
View file @
79bb7bcc
...
@@ -5,6 +5,7 @@ def defaultOSConfigure(vm)
...
@@ -5,6 +5,7 @@ def defaultOSConfigure(vm)
vm
.
provision
"Install jq"
,
type:
"shell"
,
inline:
"apt install -y jq"
vm
.
provision
"Install jq"
,
type:
"shell"
,
inline:
"apt install -y jq"
elsif
box
.
include?
(
"Leap"
)
||
box
.
include?
(
"Tumbleweed"
)
elsif
box
.
include?
(
"Leap"
)
||
box
.
include?
(
"Tumbleweed"
)
vm
.
provision
"Install jq"
,
type:
"shell"
,
inline:
"zypper install -y jq"
vm
.
provision
"Install jq"
,
type:
"shell"
,
inline:
"zypper install -y jq"
vm
.
provision
"Install apparmor-parser"
,
type:
"shell"
,
inline:
"zypper install -y apparmor-parser"
elsif
box
.
include?
(
"rocky8"
)
||
box
.
include?
(
"rocky9"
)
elsif
box
.
include?
(
"rocky8"
)
||
box
.
include?
(
"rocky9"
)
vm
.
provision
"Install jq"
,
type:
"shell"
,
inline:
"dnf install -y jq"
vm
.
provision
"Install jq"
,
type:
"shell"
,
inline:
"dnf install -y jq"
vm
.
provision
"Disable firewall"
,
type:
"shell"
,
inline:
"systemctl stop firewalld"
vm
.
provision
"Disable firewall"
,
type:
"shell"
,
inline:
"systemctl stop firewalld"
...
...
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