talos/internal/integration/api/version.go
Andrey Smirnov af2b6fa130 test: implement node discovery for integration tests
This adds support for node discovery for API-based tests, but discovery
is based on k8s state. Discovery can be overridden if we provide a list
of node IPs as a flag.

Also adds a test for K8s API server version.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-11-14 15:35:07 -08:00

55 lines
1.4 KiB
Go

// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
// +build integration_api
package api
import (
"context"
"github.com/talos-systems/talos/cmd/osctl/pkg/client"
"github.com/talos-systems/talos/internal/integration/base"
)
// VersionSuite verifies version API
type VersionSuite struct {
base.APISuite
}
// SuiteName ...
func (suite *VersionSuite) SuiteName() string {
return "api.VersionSuite"
}
// TestExpectedVersionMaster verifies master node version matches expected
func (suite *VersionSuite) TestExpectedVersionMaster() {
v, err := suite.Client.Version(context.Background())
suite.Require().NoError(err)
suite.Assert().Equal(suite.Version, v.Response[0].Version.Tag)
}
// TestSameVersionCluster verifies that all the nodes are on the same version
func (suite *VersionSuite) TestSameVersionCluster() {
nodes := suite.DiscoverNodes()
suite.Require().NotEmpty(nodes)
ctx := client.WithTargets(context.Background(), nodes...)
v, err := suite.Client.Version(ctx)
suite.Require().NoError(err)
suite.Require().Len(v.Response, len(nodes))
expectedVersion := v.Response[0].Version.Tag
for _, version := range v.Response {
suite.Assert().Equal(expectedVersion, version.Version.Tag)
}
}
func init() {
allSuites = append(allSuites, new(VersionSuite))
}