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
cea58a00
Commit
cea58a00
authored
Jan 17, 2025
by
Derek Nola
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make (Docker) RunOnNode a method
Signed-off-by:
Derek Nola
<
derek.nola@suse.com
>
parent
30677dd6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
43 additions
and
40 deletions
+43
-40
basics_test.go
tests/docker/basics/basics_test.go
+3
-3
bootstraptoken_test.go
tests/docker/bootstraptoken/bootstraptoken_test.go
+1
-1
lazypull_test.go
tests/docker/lazypull/lazypull_test.go
+1
-1
skew_test.go
tests/docker/skew/skew_test.go
+4
-4
test-helpers.go
tests/docker/test-helpers.go
+28
-25
upgrade_test.go
tests/docker/upgrade/upgrade_test.go
+6
-6
No files found.
tests/docker/basics/basics_test.go
View file @
cea58a00
...
@@ -59,9 +59,9 @@ var _ = Describe("Basic Tests", Ordered, func() {
...
@@ -59,9 +59,9 @@ var _ = Describe("Basic Tests", Ordered, func() {
Context
(
"Verify Binaries and Images"
,
func
()
{
Context
(
"Verify Binaries and Images"
,
func
()
{
It
(
"has valid bundled binaries"
,
func
()
{
It
(
"has valid bundled binaries"
,
func
()
{
for
_
,
server
:=
range
config
.
Servers
{
for
_
,
server
:=
range
config
.
Servers
{
Expect
(
tester
.
VerifyValidVersion
(
server
.
Name
,
"kubectl"
))
.
To
(
Succeed
())
Expect
(
tester
.
VerifyValidVersion
(
server
,
"kubectl"
))
.
To
(
Succeed
())
Expect
(
tester
.
VerifyValidVersion
(
server
.
Name
,
"ctr"
))
.
To
(
Succeed
())
Expect
(
tester
.
VerifyValidVersion
(
server
,
"ctr"
))
.
To
(
Succeed
())
Expect
(
tester
.
VerifyValidVersion
(
server
.
Name
,
"crictl"
))
.
To
(
Succeed
())
Expect
(
tester
.
VerifyValidVersion
(
server
,
"crictl"
))
.
To
(
Succeed
())
}
}
})
})
It
(
"has valid airgap images"
,
func
()
{
It
(
"has valid airgap images"
,
func
()
{
...
...
tests/docker/bootstraptoken/bootstraptoken_test.go
View file @
cea58a00
...
@@ -37,7 +37,7 @@ var _ = Describe("Boostrap Token Tests", Ordered, func() {
...
@@ -37,7 +37,7 @@ var _ = Describe("Boostrap Token Tests", Ordered, func() {
var
newSecret
string
var
newSecret
string
It
(
"creates a bootstrap token"
,
func
()
{
It
(
"creates a bootstrap token"
,
func
()
{
var
err
error
var
err
error
newSecret
,
err
=
tester
.
RunCmdOnDocker
(
config
.
Servers
[
0
]
.
Name
,
"k3s token create --ttl=5m --description=Test"
)
newSecret
,
err
=
config
.
Servers
[
0
]
.
RunCmdOnNode
(
"k3s token create --ttl=5m --description=Test"
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
Expect
(
newSecret
)
.
NotTo
(
BeEmpty
())
Expect
(
newSecret
)
.
NotTo
(
BeEmpty
())
})
})
...
...
tests/docker/lazypull/lazypull_test.go
View file @
cea58a00
...
@@ -84,7 +84,7 @@ func lookLayers(node, layer string) error {
...
@@ -84,7 +84,7 @@ func lookLayers(node, layer string) error {
layersNum
:=
0
layersNum
:=
0
var
err
error
var
err
error
for
layersNum
=
0
;
layersNum
<
100
;
layersNum
++
{
for
layersNum
=
0
;
layersNum
<
100
;
layersNum
++
{
// We use RunCommand instead of RunCmdOn
Docker
because we pipe the output to jq
// We use RunCommand instead of RunCmdOn
Node
because we pipe the output to jq
cmd
:=
fmt
.
Sprintf
(
"docker exec -i %s ctr --namespace=k8s.io snapshot --snapshotter=stargz info %s | jq -r '.Parent'"
,
node
,
layer
)
cmd
:=
fmt
.
Sprintf
(
"docker exec -i %s ctr --namespace=k8s.io snapshot --snapshotter=stargz info %s | jq -r '.Parent'"
,
node
,
layer
)
layer
,
err
=
tester
.
RunCommand
(
cmd
)
layer
,
err
=
tester
.
RunCommand
(
cmd
)
if
err
!=
nil
{
if
err
!=
nil
{
...
...
tests/docker/skew/skew_test.go
View file @
cea58a00
...
@@ -67,7 +67,7 @@ var _ = Describe("Skew Tests", Ordered, func() {
...
@@ -67,7 +67,7 @@ var _ = Describe("Skew Tests", Ordered, func() {
})
})
It
(
"should match respective versions"
,
func
()
{
It
(
"should match respective versions"
,
func
()
{
for
_
,
server
:=
range
config
.
Servers
{
for
_
,
server
:=
range
config
.
Servers
{
out
,
err
:=
tester
.
RunCmdOnDocker
(
server
.
Name
,
"k3s --version"
)
out
,
err
:=
server
.
RunCmdOnNode
(
"k3s --version"
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
// The k3s image is in the format rancher/k3s:v1.20.0-k3s1
// The k3s image is in the format rancher/k3s:v1.20.0-k3s1
cVersion
:=
strings
.
Split
(
*
k3sImage
,
":"
)[
1
]
cVersion
:=
strings
.
Split
(
*
k3sImage
,
":"
)[
1
]
...
@@ -76,7 +76,7 @@ var _ = Describe("Skew Tests", Ordered, func() {
...
@@ -76,7 +76,7 @@ var _ = Describe("Skew Tests", Ordered, func() {
Expect
(
out
)
.
To
(
ContainSubstring
(
cVersion
))
Expect
(
out
)
.
To
(
ContainSubstring
(
cVersion
))
}
}
for
_
,
agent
:=
range
config
.
Agents
{
for
_
,
agent
:=
range
config
.
Agents
{
Expect
(
tester
.
RunCmdOnDocker
(
agent
.
Name
,
"k3s --version"
))
.
Expect
(
agent
.
RunCmdOnNode
(
"k3s --version"
))
.
To
(
ContainSubstring
(
strings
.
Replace
(
lastMinorVersion
,
"-"
,
"+"
,
1
)))
To
(
ContainSubstring
(
strings
.
Replace
(
lastMinorVersion
,
"-"
,
"+"
,
1
)))
}
}
})
})
...
@@ -115,11 +115,11 @@ var _ = Describe("Skew Tests", Ordered, func() {
...
@@ -115,11 +115,11 @@ var _ = Describe("Skew Tests", Ordered, func() {
},
"60s"
,
"5s"
)
.
Should
(
Succeed
())
},
"60s"
,
"5s"
)
.
Should
(
Succeed
())
})
})
It
(
"should match respective versions"
,
func
()
{
It
(
"should match respective versions"
,
func
()
{
out
,
err
:=
tester
.
RunCmdOnDocker
(
config
.
Servers
[
0
]
.
Name
,
"k3s --version"
)
out
,
err
:=
config
.
Servers
[
0
]
.
RunCmdOnNode
(
"k3s --version"
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
Expect
(
out
)
.
To
(
ContainSubstring
(
strings
.
Replace
(
lastMinorVersion
,
"-"
,
"+"
,
1
)))
Expect
(
out
)
.
To
(
ContainSubstring
(
strings
.
Replace
(
lastMinorVersion
,
"-"
,
"+"
,
1
)))
for
_
,
server
:=
range
config
.
Servers
[
1
:
]
{
for
_
,
server
:=
range
config
.
Servers
[
1
:
]
{
out
,
err
:=
tester
.
RunCmdOnDocker
(
server
.
Name
,
"k3s --version"
)
out
,
err
:=
server
.
RunCmdOnNode
(
"k3s --version"
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
// The k3s image is in the format rancher/k3s:v1.20.0-k3s1-amd64
// The k3s image is in the format rancher/k3s:v1.20.0-k3s1-amd64
cVersion
:=
strings
.
Split
(
*
k3sImage
,
":"
)[
1
]
cVersion
:=
strings
.
Split
(
*
k3sImage
,
":"
)[
1
]
...
...
tests/docker/test-helpers.go
View file @
cea58a00
...
@@ -32,21 +32,20 @@ type TestConfig struct {
...
@@ -32,21 +32,20 @@ type TestConfig struct {
NumAgents
int
NumAgents
int
NeedRestart
bool
NeedRestart
bool
Servers
[]
Server
Servers
[]
Server
Agents
[]
Agent
Agents
[]
DockerNode
ServerYaml
string
ServerYaml
string
AgentYaml
string
AgentYaml
string
}
}
type
Server
struct
{
type
DockerNode
struct
{
Name
string
Name
string
Port
int
IP
string
IP
string
URL
string
}
}
type
Agent
struct
{
type
Server
struct
{
Name
string
DockerNode
IP
string
Port
int
URL
string
}
}
// NewTestConfig initializes the test environment and returns the configuration
// NewTestConfig initializes the test environment and returns the configuration
...
@@ -140,6 +139,12 @@ func (config *TestConfig) ProvisionServers(numOfServers int) error {
...
@@ -140,6 +139,12 @@ func (config *TestConfig) ProvisionServers(numOfServers int) error {
joinOrStart
=
fmt
.
Sprintf
(
"--server %s"
,
config
.
Servers
[
0
]
.
URL
)
joinOrStart
=
fmt
.
Sprintf
(
"--server %s"
,
config
.
Servers
[
0
]
.
URL
)
}
}
}
}
newServer
:=
Server
{
DockerNode
:
DockerNode
{
Name
:
name
,
},
Port
:
port
,
}
// If we need restarts, we use the systemd-node container, volume mount the k3s binary
// If we need restarts, we use the systemd-node container, volume mount the k3s binary
// and start the server using the install script
// and start the server using the install script
...
@@ -167,7 +172,7 @@ func (config *TestConfig) ProvisionServers(numOfServers int) error {
...
@@ -167,7 +172,7 @@ func (config *TestConfig) ProvisionServers(numOfServers int) error {
// The pipe requires that we use sh -c with "" to run the command
// The pipe requires that we use sh -c with "" to run the command
sCmd
:=
fmt
.
Sprintf
(
"/bin/sh -c
\"
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC='%s' INSTALL_K3S_SKIP_DOWNLOAD=true sh -
\"
"
,
sCmd
:=
fmt
.
Sprintf
(
"/bin/sh -c
\"
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC='%s' INSTALL_K3S_SKIP_DOWNLOAD=true sh -
\"
"
,
joinOrStart
+
" "
+
os
.
Getenv
(
fmt
.
Sprintf
(
"SERVER_%d_ARGS"
,
i
)))
joinOrStart
+
" "
+
os
.
Getenv
(
fmt
.
Sprintf
(
"SERVER_%d_ARGS"
,
i
)))
if
out
,
err
:=
RunCmdOnDocker
(
name
,
sCmd
);
err
!=
nil
{
if
out
,
err
:=
newServer
.
RunCmdOnNode
(
sCmd
);
err
!=
nil
{
return
fmt
.
Errorf
(
"failed to start server: %s: %v"
,
out
,
err
)
return
fmt
.
Errorf
(
"failed to start server: %s: %v"
,
out
,
err
)
}
}
}
else
{
}
else
{
...
@@ -199,13 +204,9 @@ func (config *TestConfig) ProvisionServers(numOfServers int) error {
...
@@ -199,13 +204,9 @@ func (config *TestConfig) ProvisionServers(numOfServers int) error {
ip
:=
strings
.
TrimSpace
(
ipOutput
)
ip
:=
strings
.
TrimSpace
(
ipOutput
)
url
:=
fmt
.
Sprintf
(
"https://%s:6443"
,
ip
)
url
:=
fmt
.
Sprintf
(
"https://%s:6443"
,
ip
)
newServer
.
URL
=
url
config
.
Servers
=
append
(
config
.
Servers
,
Server
{
newServer
.
IP
=
ip
Name
:
name
,
config
.
Servers
=
append
(
config
.
Servers
,
newServer
)
Port
:
port
,
IP
:
ip
,
URL
:
url
,
})
fmt
.
Printf
(
"Started %s @ %s
\n
"
,
name
,
url
)
fmt
.
Printf
(
"Started %s @ %s
\n
"
,
name
,
url
)
...
@@ -235,6 +236,9 @@ func (config *TestConfig) ProvisionAgents(numOfAgents int) error {
...
@@ -235,6 +236,9 @@ func (config *TestConfig) ProvisionAgents(numOfAgents int) error {
name
:=
fmt
.
Sprintf
(
"k3s-agent-%d-%s"
,
i
,
strings
.
ToLower
(
testID
))
name
:=
fmt
.
Sprintf
(
"k3s-agent-%d-%s"
,
i
,
strings
.
ToLower
(
testID
))
agentInstanceArgs
:=
fmt
.
Sprintf
(
"AGENT_%d_ARGS"
,
i
)
agentInstanceArgs
:=
fmt
.
Sprintf
(
"AGENT_%d_ARGS"
,
i
)
newAgent
:=
DockerNode
{
Name
:
name
,
}
if
config
.
NeedRestart
{
if
config
.
NeedRestart
{
dRun
:=
strings
.
Join
([]
string
{
"docker run -d"
,
dRun
:=
strings
.
Join
([]
string
{
"docker run -d"
,
...
@@ -257,7 +261,8 @@ func (config *TestConfig) ProvisionAgents(numOfAgents int) error {
...
@@ -257,7 +261,8 @@ func (config *TestConfig) ProvisionAgents(numOfAgents int) error {
// The pipe requires that we use sh -c with "" to run the command
// The pipe requires that we use sh -c with "" to run the command
sCmd
:=
fmt
.
Sprintf
(
"/bin/sh -c
\"
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC='agent %s' INSTALL_K3S_SKIP_DOWNLOAD=true sh -
\"
"
,
sCmd
:=
fmt
.
Sprintf
(
"/bin/sh -c
\"
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC='agent %s' INSTALL_K3S_SKIP_DOWNLOAD=true sh -
\"
"
,
os
.
Getenv
(
agentInstanceArgs
))
os
.
Getenv
(
agentInstanceArgs
))
if
out
,
err
:=
RunCmdOnDocker
(
name
,
sCmd
);
err
!=
nil
{
if
out
,
err
:=
newAgent
.
RunCmdOnNode
(
sCmd
);
err
!=
nil
{
return
fmt
.
Errorf
(
"failed to start server: %s: %v"
,
out
,
err
)
return
fmt
.
Errorf
(
"failed to start server: %s: %v"
,
out
,
err
)
}
}
}
else
{
}
else
{
...
@@ -285,11 +290,9 @@ func (config *TestConfig) ProvisionAgents(numOfAgents int) error {
...
@@ -285,11 +290,9 @@ func (config *TestConfig) ProvisionAgents(numOfAgents int) error {
return
err
return
err
}
}
ip
:=
strings
.
TrimSpace
(
ipOutput
)
ip
:=
strings
.
TrimSpace
(
ipOutput
)
newAgent
.
IP
=
ip
config
.
Agents
=
append
(
config
.
Agents
,
newAgent
)
config
.
Agents
=
append
(
config
.
Agents
,
Agent
{
Name
:
name
,
IP
:
ip
,
})
fmt
.
Printf
(
"Started %s
\n
"
,
name
)
fmt
.
Printf
(
"Started %s
\n
"
,
name
)
return
nil
return
nil
})
})
...
@@ -385,9 +388,9 @@ func copyAndModifyKubeconfig(config *TestConfig) error {
...
@@ -385,9 +388,9 @@ func copyAndModifyKubeconfig(config *TestConfig) error {
return
nil
return
nil
}
}
// RunCmdOn
Docker
runs a command on a docker container
// RunCmdOn
Node
runs a command on a docker container
func
RunCmdOnDocker
(
container
,
cmd
string
)
(
string
,
error
)
{
func
(
node
DockerNode
)
RunCmdOnNode
(
cmd
string
)
(
string
,
error
)
{
dCmd
:=
fmt
.
Sprintf
(
"docker exec %s %s"
,
container
,
cmd
)
dCmd
:=
fmt
.
Sprintf
(
"docker exec %s %s"
,
node
.
Name
,
cmd
)
return
RunCommand
(
dCmd
)
return
RunCommand
(
dCmd
)
}
}
...
@@ -425,8 +428,8 @@ func getEnvOrDefault(key, defaultValue string) string {
...
@@ -425,8 +428,8 @@ func getEnvOrDefault(key, defaultValue string) string {
}
}
// VerifyValidVersion checks for invalid version strings
// VerifyValidVersion checks for invalid version strings
func
VerifyValidVersion
(
container
string
,
binary
string
)
error
{
func
VerifyValidVersion
(
node
Server
,
binary
string
)
error
{
output
,
err
:=
RunCmdOnDocker
(
container
,
binary
+
" version"
)
output
,
err
:=
node
.
RunCmdOnNode
(
binary
+
" version"
)
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
...
...
tests/docker/upgrade/upgrade_test.go
View file @
cea58a00
package
main
package
upgrade
import
(
import
(
"flag"
"flag"
...
@@ -81,7 +81,7 @@ var _ = Describe("Upgrade Tests", Ordered, func() {
...
@@ -81,7 +81,7 @@ var _ = Describe("Upgrade Tests", Ordered, func() {
})
})
It
(
"should confirm latest version"
,
func
()
{
It
(
"should confirm latest version"
,
func
()
{
for
_
,
server
:=
range
config
.
Servers
{
for
_
,
server
:=
range
config
.
Servers
{
out
,
err
:=
tester
.
RunCmdOnDocker
(
server
.
Name
,
"k3s --version"
)
out
,
err
:=
server
.
RunCmdOnNode
(
"k3s --version"
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
Expect
(
out
)
.
To
(
ContainSubstring
(
strings
.
Replace
(
latestVersion
,
"-"
,
"+"
,
1
)))
Expect
(
out
)
.
To
(
ContainSubstring
(
strings
.
Replace
(
latestVersion
,
"-"
,
"+"
,
1
)))
}
}
...
@@ -127,11 +127,11 @@ var _ = Describe("Upgrade Tests", Ordered, func() {
...
@@ -127,11 +127,11 @@ var _ = Describe("Upgrade Tests", Ordered, func() {
})
})
It
(
"should confirm commit version"
,
func
()
{
It
(
"should confirm commit version"
,
func
()
{
for
_
,
server
:=
range
config
.
Servers
{
for
_
,
server
:=
range
config
.
Servers
{
Expect
(
tester
.
VerifyValidVersion
(
server
.
Name
,
"kubectl"
))
.
To
(
Succeed
())
Expect
(
tester
.
VerifyValidVersion
(
server
,
"kubectl"
))
.
To
(
Succeed
())
Expect
(
tester
.
VerifyValidVersion
(
server
.
Name
,
"ctr"
))
.
To
(
Succeed
())
Expect
(
tester
.
VerifyValidVersion
(
server
,
"ctr"
))
.
To
(
Succeed
())
Expect
(
tester
.
VerifyValidVersion
(
server
.
Name
,
"crictl"
))
.
To
(
Succeed
())
Expect
(
tester
.
VerifyValidVersion
(
server
,
"crictl"
))
.
To
(
Succeed
())
out
,
err
:=
tester
.
RunCmdOnDocker
(
server
.
Name
,
"k3s --version"
)
out
,
err
:=
server
.
RunCmdOnNode
(
"k3s --version"
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
cVersion
:=
strings
.
Split
(
*
k3sImage
,
":"
)[
1
]
cVersion
:=
strings
.
Split
(
*
k3sImage
,
":"
)[
1
]
cVersion
=
strings
.
Replace
(
cVersion
,
"-amd64"
,
""
,
1
)
cVersion
=
strings
.
Replace
(
cVersion
,
"-amd64"
,
""
,
1
)
...
...
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