mirror of
https://github.com/siderolabs/talos.git
synced 2025-08-22 07:01:12 +02:00
This PR brings our protobuf files into conformance with the protobuf style guide, and community conventions. It is purely renames, along with generated docs. Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
67 lines
2.2 KiB
Go
67 lines
2.2 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_k8s
|
|
|
|
package k8s
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
|
|
"github.com/talos-systems/talos/internal/integration/base"
|
|
"github.com/talos-systems/talos/internal/pkg/runtime"
|
|
"github.com/talos-systems/talos/pkg/constants"
|
|
)
|
|
|
|
// VersionSuite verifies Talos version
|
|
type VersionSuite struct {
|
|
base.K8sSuite
|
|
}
|
|
|
|
// SuiteName ...
|
|
func (suite *VersionSuite) SuiteName() string {
|
|
return "k8s.VersionSuite"
|
|
}
|
|
|
|
// TestExpectedVersion verifies that node versions matches expected
|
|
func (suite *VersionSuite) TestExpectedVersion() {
|
|
// verify k8s version (api server)
|
|
apiServerVersion, err := suite.DiscoveryClient.ServerVersion()
|
|
suite.Require().NoError(err)
|
|
|
|
expectedApiServerVersion := fmt.Sprintf("v%s", constants.DefaultKubernetesVersion)
|
|
suite.Assert().Equal(expectedApiServerVersion, apiServerVersion.GitVersion)
|
|
|
|
v, err := suite.Client.Version(context.Background())
|
|
suite.Require().NoError(err)
|
|
|
|
checkKernelVersion := v.Messages[0].Platform != nil && v.Messages[0].Platform.Mode != runtime.Container.String()
|
|
|
|
// verify each node (kubelet version, Talos version, etc.)
|
|
nodes, err := suite.Clientset.CoreV1().Nodes().List(metav1.ListOptions{})
|
|
suite.Require().NoError(err)
|
|
|
|
expectedTalosVersion := fmt.Sprintf("Talos (%s)", suite.Version)
|
|
expectedContainerRuntimeVersion := fmt.Sprintf("containerd://%s", constants.DefaultContainerdVersion)
|
|
expectedKubeletVersion := fmt.Sprintf("v%s", constants.DefaultKubernetesVersion)
|
|
expectedKernelVersion := constants.DefaultKernelVersion
|
|
|
|
for _, node := range nodes.Items {
|
|
suite.Assert().Equal(expectedTalosVersion, node.Status.NodeInfo.OSImage)
|
|
suite.Assert().Equal("linux", node.Status.NodeInfo.OperatingSystem)
|
|
suite.Assert().Equal(expectedContainerRuntimeVersion, node.Status.NodeInfo.ContainerRuntimeVersion)
|
|
suite.Assert().Equal(expectedKubeletVersion, node.Status.NodeInfo.KubeletVersion)
|
|
if checkKernelVersion {
|
|
suite.Assert().Equal(expectedKernelVersion, node.Status.NodeInfo.KernelVersion)
|
|
}
|
|
}
|
|
}
|
|
|
|
func init() {
|
|
allSuites = append(allSuites, new(VersionSuite))
|
|
}
|