Fix upgrade test container version (#11996)

* Fix upgrade test container version

Signed-off-by: Derek Nola <derek.nola@suse.com>

* Ensure CI cleanup on all docker tests

Signed-off-by: Derek Nola <derek.nola@suse.com>

Fix cleanup

Signed-off-by: Derek Nola <derek.nola@suse.com>

* Bump skew test timeout

Signed-off-by: Derek Nola <derek.nola@suse.com>

---------

Signed-off-by: Derek Nola <derek.nola@suse.com>
This commit is contained in:
Derek Nola 2025-03-21 13:31:19 -07:00 committed by GitHub
parent 2f3233bc73
commit 7837d29269
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 39 additions and 30 deletions

View file

@ -26,25 +26,25 @@ export K3S_IMAGE="rancher/k3s:${VERSION_TAG}${SUFFIX}"
# Run all tests on tag events, as we want test failures to block the release
if [ "$ARCH" == 'arm' ] || [ "$DRONE_BUILD_EVENT" = 'tag' ]; then
go test ./tests/docker/basics/basics_test.go -k3sImage="$K3S_IMAGE"
go test ./tests/docker/basics/basics_test.go -k3sImage="$K3S_IMAGE" -ci
echo "Did go test basics $?"
# Extract v1.XX minor version for skew and upgrade tests
minor_version=$(echo $VERSION_K8S | cut -d '.' -f1,2)
go test ./tests/docker/cacerts/cacerts_test.go -k3sImage="$K3S_IMAGE"
go test ./tests/docker/cacerts/cacerts_test.go -k3sImage="$K3S_IMAGE" -ci
echo "Did go test cacerts $?"
go test ./tests/docker/skew/skew_test.go -k3sImage="$K3S_IMAGE" -channel="$minor_version"
go test ./tests/docker/skew/skew_test.go -k3sImage="$K3S_IMAGE" -channel="$minor_version" -ci
echo "Did go test skew $?"
go test ./tests/docker/bootstraptoken/bootstraptoken_test.go -k3sImage="$K3S_IMAGE"
go test ./tests/docker/bootstraptoken/bootstraptoken_test.go -k3sImage="$K3S_IMAGE" -ci
echo "Did go test bootstraptoken $?"
go test ./tests/docker/upgrade/upgrade_test.go -k3sImage="$K3S_IMAGE" -channel="$minor_version"
go test ./tests/docker/upgrade/upgrade_test.go -k3sImage="$K3S_IMAGE" -channel="$minor_version" -ci
echo "Did go test upgrade $?"
go test ./tests/docker/lazypull/lazypull_test.go -k3sImage="$K3S_IMAGE"
go test ./tests/docker/lazypull/lazypull_test.go -k3sImage="$K3S_IMAGE" -ci
echo "Did go test lazypull $?"
fi
@ -67,9 +67,9 @@ fi
# ---
if [ "$DRONE_BUILD_EVENT" = 'cron' ]; then
run-go-test ./tests/docker/conformance/conformance_test.go -k3sImage="$K3S_IMAGE" -db sqlite -serial -ginkgo.v
run-go-test ./tests/docker/conformance/conformance_test.go -k3sImage="$K3S_IMAGE" -db sqlite -serial -ginkgo.v -ci
echo "Did go conformance sqlite serial $?"
run-go-test ./tests/docker/conformance/conformance_test.go -k3sImage="$K3S_IMAGE" -db etcd -serial -ginkgo.v
run-go-test ./tests/docker/conformance/conformance_test.go -k3sImage="$K3S_IMAGE" -db etcd -serial -ginkgo.v -ci
echo "Did go conformance etcd serial $?"
test-run-sonobuoy mysql serial
echo "Did test-run-sonobuoy-mysqk serial $?"
@ -87,9 +87,9 @@ if [ "$DRONE_BUILD_EVENT" = 'cron' ]; then
E2E_OUTPUT=$artifacts test-run-sonobuoy parallel
echo "Did test-run-sonobuoy parallel $?"
run-go-test ./tests/docker/conformance/conformance_test.go -k3sImage="$K3S_IMAGE" -db sqlite -ginkgo.v
run-go-test ./tests/docker/conformance/conformance_test.go -k3sImage="$K3S_IMAGE" -db sqlite -ginkgo.v -ci
echo "Did go conformance sqlite parallel $?"
run-go-test ./tests/docker/conformance/conformance_test.go -k3sImage="$K3S_IMAGE" -db etcd -ginkgo.v
run-go-test ./tests/docker/conformance/conformance_test.go -k3sImage="$K3S_IMAGE" -db etcd -ginkgo.v -ci
echo "Did go test conformance etcd parallel $?"
test-run-sonobuoy mysql parallel
echo "Did test-run-sonobuoy-mysql parallel $?"

View file

@ -15,6 +15,7 @@ import (
)
var k3sImage = flag.String("k3sImage", "", "The image used to provision containers")
var ci = flag.Bool("ci", false, "running on CI, forced cleanup")
var config *tester.TestConfig
func Test_DockerBasic(t *testing.T) {
@ -34,7 +35,7 @@ var _ = Describe("Basic Tests", Ordered, func() {
Expect(config.ProvisionAgents(1)).To(Succeed())
Eventually(func() error {
return tests.CheckDeployments([]string{"coredns", "local-path-provisioner", "metrics-server", "traefik"}, config.KubeconfigFile)
}, "120s", "5s").Should(Succeed())
}, "180s", "5s").Should(Succeed())
Eventually(func() error {
return tests.NodesReady(config.KubeconfigFile, config.GetNodeNames())
}, "40s", "5s").Should(Succeed())
@ -79,8 +80,8 @@ var _ = AfterSuite(func() {
AddReportEntry("describe", docker.DescribeNodesAndPods(config))
AddReportEntry("docker-logs", docker.TailDockerLogs(1000, append(config.Servers, config.Agents...)))
}
if config != nil && !failed {
config.Cleanup()
if config != nil && (*ci || !failed) {
Expect(config.Cleanup()).To(Succeed())
}
})

View file

@ -13,6 +13,7 @@ import (
)
var k3sImage = flag.String("k3sImage", "", "The k3s image used to provision containers")
var ci = flag.Bool("ci", false, "running on CI, forced cleanup")
var config *tester.TestConfig
func Test_DockerBootstrapToken(t *testing.T) {
@ -67,7 +68,7 @@ var _ = AfterSuite(func() {
AddReportEntry("describe", docker.DescribeNodesAndPods(config))
AddReportEntry("docker-logs", docker.TailDockerLogs(1000, append(config.Servers, config.Agents...)))
}
if config != nil && !failed {
config.Cleanup()
if config != nil && (*ci || !failed) {
Expect(config.Cleanup()).To(Succeed())
}
})

View file

@ -16,6 +16,7 @@ import (
)
var k3sImage = flag.String("k3sImage", "", "The k3s image used to provision containers")
var ci = flag.Bool("ci", false, "running on CI, forced cleanup")
var config *tester.TestConfig
var testID string

View file

@ -21,6 +21,7 @@ import (
var k3sImage = flag.String("k3sImage", "", "The k3s image used to provision containers")
var db = flag.String("db", "", "The database to use for the tests (sqlite, etcd, mysql, postgres)")
var serial = flag.Bool("serial", false, "Run the Serial Conformance Tests")
var ci = flag.Bool("ci", false, "running on CI, forced cleanup")
var config *tester.TestConfig
func Test_DockerConformance(t *testing.T) {
@ -128,8 +129,8 @@ var _ = AfterSuite(func() {
AddReportEntry("describe", docker.DescribeNodesAndPods(config))
AddReportEntry("docker-logs", docker.TailDockerLogs(1000, append(config.Servers, config.Agents...)))
}
if config != nil && !failed {
config.Cleanup()
if config != nil && (*ci || !failed) {
Expect(config.Cleanup()).To(Succeed())
}
})

View file

@ -13,6 +13,7 @@ import (
)
var k3sImage = flag.String("k3sImage", "", "The k3s image used to provision containers")
var ci = flag.Bool("ci", false, "running on CI, forced cleanup")
var config *tester.TestConfig
func Test_DockerEtcd(t *testing.T) {
@ -77,7 +78,7 @@ var _ = AfterSuite(func() {
AddReportEntry("describe", docker.DescribeNodesAndPods(config))
AddReportEntry("docker-logs", docker.TailDockerLogs(1000, append(config.Servers, config.Agents...)))
}
if config != nil && !failed {
config.Cleanup()
if config != nil && (*ci || !failed) {
Expect(config.Cleanup()).To(Succeed())
}
})

View file

@ -14,6 +14,7 @@ import (
)
var k3sImage = flag.String("k3sImage", "", "The k3s image used to provision containers")
var ci = flag.Bool("ci", false, "running on CI, forced cleanup")
var config *tester.TestConfig
func Test_DockerLazyPull(t *testing.T) {
@ -76,8 +77,8 @@ var _ = AfterSuite(func() {
AddReportEntry("describe", docker.DescribeNodesAndPods(config))
AddReportEntry("docker-logs", docker.TailDockerLogs(1000, append(config.Servers, config.Agents...)))
}
if config != nil && !failed {
config.Cleanup()
if config != nil && (*ci || !failed) {
Expect(config.Cleanup()).To(Succeed())
}
})

View file

@ -18,6 +18,7 @@ import (
// the current commit build of K3s defined by <k3sImage>
var k3sImage = flag.String("k3sImage", "", "The current commit build of K3s")
var channel = flag.String("channel", "latest", "The release channel to test")
var ci = flag.Bool("ci", false, "running on CI, forced cleanup")
var config *tester.TestConfig
func Test_DockerSkew(t *testing.T) {
@ -56,7 +57,7 @@ var _ = Describe("Skew Tests", Ordered, func() {
Expect(config.ProvisionAgents(1)).To(Succeed())
Eventually(func() error {
return tests.CheckDeployments([]string{"coredns", "local-path-provisioner", "metrics-server", "traefik"}, config.KubeconfigFile)
}, "120s", "5s").Should(Succeed())
}, "180s", "5s").Should(Succeed())
})
It("should match respective versions", func() {
for _, server := range config.Servers {
@ -101,7 +102,7 @@ var _ = Describe("Skew Tests", Ordered, func() {
Expect(config.ProvisionServers(3)).To(Succeed())
Eventually(func() error {
return tests.CheckDeployments([]string{"coredns", "local-path-provisioner", "metrics-server", "traefik"}, config.KubeconfigFile)
}, "120s", "5s").Should(Succeed())
}, "180s", "5s").Should(Succeed())
Eventually(func(g Gomega) {
g.Expect(tests.ParseNodes(config.KubeconfigFile)).To(HaveLen(3))
g.Expect(tests.NodesReady(config.KubeconfigFile, config.GetNodeNames())).To(Succeed())
@ -139,7 +140,7 @@ var _ = AfterSuite(func() {
AddReportEntry("describe", docker.DescribeNodesAndPods(config))
AddReportEntry("docker-logs", docker.TailDockerLogs(1000, append(config.Servers, config.Agents...)))
}
if config != nil && !failed {
config.Cleanup()
if config != nil && (*ci || !failed) {
Expect(config.Cleanup()).To(Succeed())
}
})

View file

@ -390,6 +390,7 @@ func (config *TestConfig) RemoveNode(nodeName string) error {
if _, err := RunCommand(cmd); err != nil {
return fmt.Errorf("failed to remove node %s: %v", nodeName, err)
}
fmt.Println("Stopped and removed ", nodeName)
return nil
}
@ -428,6 +429,7 @@ func (config *TestConfig) Cleanup() error {
errs = append(errs, err)
}
}
config.Servers = nil
// Stop and remove all agents
for _, agent := range config.Agents {
@ -435,6 +437,7 @@ func (config *TestConfig) Cleanup() error {
errs = append(errs, err)
}
}
config.Agents = nil
// Stop DB if it was started
if config.DBType == "mysql" || config.DBType == "postgres" {
@ -456,8 +459,6 @@ func (config *TestConfig) Cleanup() error {
if config.TestDir != "" {
return os.RemoveAll(config.TestDir)
}
config.Agents = nil
config.Servers = nil
return nil
}

View file

@ -20,6 +20,7 @@ import (
// the current commit build of K3s defined by <k3sImage>
var k3sImage = flag.String("k3sImage", "", "The current commit build of K3s")
var channel = flag.String("channel", "latest", "The release channel to test")
var ci = flag.Bool("ci", false, "running on CI, forced cleanup")
var config *tester.TestConfig
var numServers = 1
@ -128,7 +129,7 @@ var _ = Describe("Upgrade Tests", Ordered, func() {
cVersion = strings.Replace(cVersion, "-amd64", "", 1)
cVersion = strings.Replace(cVersion, "-arm64", "", 1)
cVersion = strings.Replace(cVersion, "-arm", "", 1)
cVersion = strings.Replace(cVersion, "-", "+", 1)
cVersion = strings.Replace(cVersion, "-k3s", "+k3s", 1)
Expect(out).To(ContainSubstring(cVersion))
}
})
@ -151,7 +152,7 @@ var _ = AfterSuite(func() {
AddReportEntry("describe", docker.DescribeNodesAndPods(config))
AddReportEntry("docker-logs", docker.TailDockerLogs(1000, append(config.Servers, config.Agents...)))
}
if config != nil && !failed {
config.Cleanup()
if config != nil && (*ci || !failed) {
Expect(config.Cleanup()).To(Succeed())
}
})