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
dd65505e
Commit
dd65505e
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
9fe819ee
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 @
dd65505e
...
...
@@ -59,9 +59,9 @@ var _ = Describe("Basic Tests", Ordered, func() {
Context
(
"Verify Binaries and Images"
,
func
()
{
It
(
"has valid bundled binaries"
,
func
()
{
for
_
,
server
:=
range
config
.
Servers
{
Expect
(
tester
.
VerifyValidVersion
(
server
.
Name
,
"kubectl"
))
.
To
(
Succeed
())
Expect
(
tester
.
VerifyValidVersion
(
server
.
Name
,
"ctr"
))
.
To
(
Succeed
())
Expect
(
tester
.
VerifyValidVersion
(
server
.
Name
,
"crictl"
))
.
To
(
Succeed
())
Expect
(
tester
.
VerifyValidVersion
(
server
,
"kubectl"
))
.
To
(
Succeed
())
Expect
(
tester
.
VerifyValidVersion
(
server
,
"ctr"
))
.
To
(
Succeed
())
Expect
(
tester
.
VerifyValidVersion
(
server
,
"crictl"
))
.
To
(
Succeed
())
}
})
It
(
"has valid airgap images"
,
func
()
{
...
...
tests/docker/bootstraptoken/bootstraptoken_test.go
View file @
dd65505e
...
...
@@ -37,7 +37,7 @@ var _ = Describe("Boostrap Token Tests", Ordered, func() {
var
newSecret
string
It
(
"creates a bootstrap token"
,
func
()
{
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
(
newSecret
)
.
NotTo
(
BeEmpty
())
})
...
...
tests/docker/lazypull/lazypull_test.go
View file @
dd65505e
...
...
@@ -84,7 +84,7 @@ func lookLayers(node, layer string) error {
layersNum
:=
0
var
err
error
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
)
layer
,
err
=
tester
.
RunCommand
(
cmd
)
if
err
!=
nil
{
...
...
tests/docker/skew/skew_test.go
View file @
dd65505e
...
...
@@ -67,7 +67,7 @@ var _ = Describe("Skew Tests", Ordered, func() {
})
It
(
"should match respective versions"
,
func
()
{
for
_
,
server
:=
range
config
.
Servers
{
out
,
err
:=
tester
.
RunCmdOnDocker
(
server
.
Name
,
"k3s --version"
)
out
,
err
:=
server
.
RunCmdOnNode
(
"k3s --version"
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
// The k3s image is in the format rancher/k3s:v1.20.0-k3s1
cVersion
:=
strings
.
Split
(
*
k3sImage
,
":"
)[
1
]
...
...
@@ -76,7 +76,7 @@ var _ = Describe("Skew Tests", Ordered, func() {
Expect
(
out
)
.
To
(
ContainSubstring
(
cVersion
))
}
for
_
,
agent
:=
range
config
.
Agents
{
Expect
(
tester
.
RunCmdOnDocker
(
agent
.
Name
,
"k3s --version"
))
.
Expect
(
agent
.
RunCmdOnNode
(
"k3s --version"
))
.
To
(
ContainSubstring
(
strings
.
Replace
(
lastMinorVersion
,
"-"
,
"+"
,
1
)))
}
})
...
...
@@ -115,11 +115,11 @@ var _ = Describe("Skew Tests", Ordered, func() {
},
"60s"
,
"5s"
)
.
Should
(
Succeed
())
})
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
(
out
)
.
To
(
ContainSubstring
(
strings
.
Replace
(
lastMinorVersion
,
"-"
,
"+"
,
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
())
// The k3s image is in the format rancher/k3s:v1.20.0-k3s1-amd64
cVersion
:=
strings
.
Split
(
*
k3sImage
,
":"
)[
1
]
...
...
tests/docker/test-helpers.go
View file @
dd65505e
...
...
@@ -32,21 +32,20 @@ type TestConfig struct {
NumAgents
int
NeedRestart
bool
Servers
[]
Server
Agents
[]
Agent
Agents
[]
DockerNode
ServerYaml
string
AgentYaml
string
}
type
Server
struct
{
type
DockerNode
struct
{
Name
string
Port
int
IP
string
URL
string
}
type
Agent
struct
{
Name
string
IP
string
type
Server
struct
{
DockerNode
Port
int
URL
string
}
// NewTestConfig initializes the test environment and returns the configuration
...
...
@@ -140,6 +139,12 @@ func (config *TestConfig) ProvisionServers(numOfServers int) error {
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
// and start the server using the install script
...
...
@@ -167,7 +172,7 @@ func (config *TestConfig) ProvisionServers(numOfServers int) error {
// 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 -
\"
"
,
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
)
}
}
else
{
...
...
@@ -199,13 +204,9 @@ func (config *TestConfig) ProvisionServers(numOfServers int) error {
ip
:=
strings
.
TrimSpace
(
ipOutput
)
url
:=
fmt
.
Sprintf
(
"https://%s:6443"
,
ip
)
config
.
Servers
=
append
(
config
.
Servers
,
Server
{
Name
:
name
,
Port
:
port
,
IP
:
ip
,
URL
:
url
,
})
newServer
.
URL
=
url
newServer
.
IP
=
ip
config
.
Servers
=
append
(
config
.
Servers
,
newServer
)
fmt
.
Printf
(
"Started %s @ %s
\n
"
,
name
,
url
)
...
...
@@ -235,6 +236,9 @@ func (config *TestConfig) ProvisionAgents(numOfAgents int) error {
name
:=
fmt
.
Sprintf
(
"k3s-agent-%d-%s"
,
i
,
strings
.
ToLower
(
testID
))
agentInstanceArgs
:=
fmt
.
Sprintf
(
"AGENT_%d_ARGS"
,
i
)
newAgent
:=
DockerNode
{
Name
:
name
,
}
if
config
.
NeedRestart
{
dRun
:=
strings
.
Join
([]
string
{
"docker run -d"
,
...
...
@@ -257,7 +261,8 @@ func (config *TestConfig) ProvisionAgents(numOfAgents int) error {
// 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 -
\"
"
,
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
)
}
}
else
{
...
...
@@ -285,11 +290,9 @@ func (config *TestConfig) ProvisionAgents(numOfAgents int) error {
return
err
}
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
)
return
nil
})
...
...
@@ -385,9 +388,9 @@ func copyAndModifyKubeconfig(config *TestConfig) error {
return
nil
}
// RunCmdOn
Docker
runs a command on a docker container
func
RunCmdOnDocker
(
container
,
cmd
string
)
(
string
,
error
)
{
dCmd
:=
fmt
.
Sprintf
(
"docker exec %s %s"
,
container
,
cmd
)
// RunCmdOn
Node
runs a command on a docker container
func
(
node
DockerNode
)
RunCmdOnNode
(
cmd
string
)
(
string
,
error
)
{
dCmd
:=
fmt
.
Sprintf
(
"docker exec %s %s"
,
node
.
Name
,
cmd
)
return
RunCommand
(
dCmd
)
}
...
...
@@ -425,8 +428,8 @@ func getEnvOrDefault(key, defaultValue string) string {
}
// VerifyValidVersion checks for invalid version strings
func
VerifyValidVersion
(
container
string
,
binary
string
)
error
{
output
,
err
:=
RunCmdOnDocker
(
container
,
binary
+
" version"
)
func
VerifyValidVersion
(
node
Server
,
binary
string
)
error
{
output
,
err
:=
node
.
RunCmdOnNode
(
binary
+
" version"
)
if
err
!=
nil
{
return
err
}
...
...
tests/docker/upgrade/upgrade_test.go
View file @
dd65505e
package
main
package
upgrade
import
(
"flag"
...
...
@@ -81,7 +81,7 @@ var _ = Describe("Upgrade Tests", Ordered, func() {
})
It
(
"should confirm latest version"
,
func
()
{
for
_
,
server
:=
range
config
.
Servers
{
out
,
err
:=
tester
.
RunCmdOnDocker
(
server
.
Name
,
"k3s --version"
)
out
,
err
:=
server
.
RunCmdOnNode
(
"k3s --version"
)
Expect
(
err
)
.
NotTo
(
HaveOccurred
())
Expect
(
out
)
.
To
(
ContainSubstring
(
strings
.
Replace
(
latestVersion
,
"-"
,
"+"
,
1
)))
}
...
...
@@ -127,11 +127,11 @@ var _ = Describe("Upgrade Tests", Ordered, func() {
})
It
(
"should confirm commit version"
,
func
()
{
for
_
,
server
:=
range
config
.
Servers
{
Expect
(
tester
.
VerifyValidVersion
(
server
.
Name
,
"kubectl"
))
.
To
(
Succeed
())
Expect
(
tester
.
VerifyValidVersion
(
server
.
Name
,
"ctr"
))
.
To
(
Succeed
())
Expect
(
tester
.
VerifyValidVersion
(
server
.
Name
,
"crictl"
))
.
To
(
Succeed
())
Expect
(
tester
.
VerifyValidVersion
(
server
,
"kubectl"
))
.
To
(
Succeed
())
Expect
(
tester
.
VerifyValidVersion
(
server
,
"ctr"
))
.
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
())
cVersion
:=
strings
.
Split
(
*
k3sImage
,
":"
)[
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