mirror of
https://github.com/siderolabs/talos.git
synced 2025-12-16 06:51:27 +01:00
test: update init node check in reset API tests
Previously we assumed that node 0 is the init node, and it can't be reset. With new bootstrap API approach, there's no init node, and all the nodes can be reset. This corrects the check to skip only the init node, and with bootstrap API there's no init node (so no nodes are skipped). Fixes #2277 Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
This commit is contained in:
parent
804f162756
commit
931237b23c
@ -12,6 +12,7 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/talos-systems/talos/internal/app/machined/pkg/runtime"
|
||||
"github.com/talos-systems/talos/internal/integration/base"
|
||||
)
|
||||
|
||||
@ -52,15 +53,23 @@ func (suite *ResetSuite) TestResetNodeByNode() {
|
||||
suite.T().Skip("without full cluster state reset test is not reliable (can't wait for cluster readiness in between resets)")
|
||||
}
|
||||
|
||||
initNodeAddress := ""
|
||||
for _, node := range suite.Cluster.Info().Nodes {
|
||||
if node.Type == runtime.MachineTypeInit {
|
||||
initNodeAddress = node.PrivateIP.String()
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
nodes := suite.DiscoverNodes()
|
||||
suite.Require().NotEmpty(nodes)
|
||||
|
||||
sort.Strings(nodes)
|
||||
|
||||
for i, node := range nodes {
|
||||
if i == 0 {
|
||||
// first node should be init node, due to bug with etcd cluster build for init node
|
||||
// and Reset(), skip resetting first node
|
||||
for _, node := range nodes {
|
||||
if node == initNodeAddress {
|
||||
// due to the bug with etcd cluster build for the init node after Reset(), skip resetting first node
|
||||
// there's no problem if bootstrap API was used, so this check only protects legacy init nodes
|
||||
suite.T().Log("Skipping init node", node, "due to known issue with etcd")
|
||||
continue
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user