test: bump Talos version used in integration tests to v1.10
Some checks are pending
default / default (push) Waiting to run
default / e2e-backups (push) Blocked by required conditions
default / e2e-forced-removal (push) Blocked by required conditions
default / e2e-scaling (push) Blocked by required conditions
default / e2e-short (push) Blocked by required conditions
default / e2e-short-secureboot (push) Blocked by required conditions
default / e2e-templates (push) Blocked by required conditions
default / e2e-upgrades (push) Blocked by required conditions
default / e2e-workload-proxy (push) Blocked by required conditions

Test 1.10 before release.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
This commit is contained in:
Utku Ozdemir 2025-04-28 15:51:48 +02:00 committed by Artem Chernyshev
parent f21cedc7e7
commit dc753f4e75
No known key found for this signature in database
GPG Key ID: E084A2DF1143C14D
7 changed files with 35 additions and 43 deletions

View File

@ -14,7 +14,7 @@ const SecureBoot = "secureboot"
// DefaultTalosVersion is pre-selected in the UI, default image and used in the integration tests.
//
// tsgen:DefaultTalosVersion
const DefaultTalosVersion = "1.9.5"
const DefaultTalosVersion = "1.10.1"
const (
// TalosRegistry is the default Talos repository URL.

View File

@ -455,7 +455,7 @@ func AssertAPIAuthz(rootCtx context.Context, rootCli *client.Client, clientConfi
},
{
namePrefix: "talos-etcd-status",
requiredRole: role.Operator,
requiredRole: role.Reader,
assertSuccess: assertSuccess,
assertFailure: func(t *testing.T, err error) {
assert.Truef(t, status.Code(err) == codes.PermissionDenied, "unexpected error: %v", err)
@ -1243,7 +1243,7 @@ func AssertResourceAuthzWithACL(ctx context.Context, rootCli *client.Client, cli
clusterUnauthorized := omni.NewCluster(resources.DefaultNamespace, "unauthorized-"+testID)
clusterUnauthorized.TypedSpec().Value.TalosVersion = constants.DefaultTalosVersion
clusterUnauthorized.TypedSpec().Value.KubernetesVersion = "1.27.3"
clusterUnauthorized.TypedSpec().Value.KubernetesVersion = "1.28.3"
userState := userCli.Omni().State()
@ -1259,7 +1259,7 @@ func AssertResourceAuthzWithACL(ctx context.Context, rootCli *client.Client, cli
// create a cluster that is authorized to the user by the ACL
clusterAuthorized := omni.NewCluster(resources.DefaultNamespace, clusterAuthorizedID)
clusterAuthorized.TypedSpec().Value.TalosVersion = constants.DefaultTalosVersion
clusterAuthorized.TypedSpec().Value.KubernetesVersion = "1.27.3"
clusterAuthorized.TypedSpec().Value.KubernetesVersion = "1.28.3"
err = userState.Create(ctx, clusterAuthorized)
require.NoError(t, err)

View File

@ -21,10 +21,8 @@ import (
"github.com/stretchr/testify/require"
"github.com/siderolabs/omni/client/api/omni/specs"
clientconsts "github.com/siderolabs/omni/client/pkg/constants"
"github.com/siderolabs/omni/client/pkg/omni/resources/omni"
"github.com/siderolabs/omni/client/pkg/template/operations"
"github.com/siderolabs/omni/internal/pkg/constants"
)
//go:embed testdata/cluster-1.tmpl.yaml
@ -50,7 +48,7 @@ func renderTemplate(t *testing.T, tmpl []byte, opts tmplOptions) []byte {
}
// AssertClusterTemplateFlow verifies cluster template operations.
func AssertClusterTemplateFlow(testCtx context.Context, st state.State) TestFunc {
func AssertClusterTemplateFlow(testCtx context.Context, st state.State, options MachineOptions) TestFunc {
return func(t *testing.T) {
ctx, cancel := context.WithTimeout(testCtx, 20*time.Minute)
defer cancel()
@ -72,8 +70,8 @@ func AssertClusterTemplateFlow(testCtx context.Context, st state.State) TestFunc
machineIDs = mIDs
opts = tmplOptions{
KubernetesVersion: "v" + constants.DefaultKubernetesVersion,
TalosVersion: "v" + clientconsts.DefaultTalosVersion,
KubernetesVersion: "v" + options.KubernetesVersion,
TalosVersion: "v" + options.TalosVersion,
CP: machineIDs[:3],
W: machineIDs[3:],

View File

@ -1330,7 +1330,7 @@ Test flow of cluster creation and scaling using cluster templates.`,
Subtests: []subTest{
{
"TestClusterTemplateFlow",
AssertClusterTemplateFlow(ctx, rootClient.Omni().State()),
AssertClusterTemplateFlow(ctx, rootClient.Omni().State(), options.MachineOptions),
},
},
Finalizer: DestroyCluster(ctx, rootClient.Omni().State(), "tmpl-cluster"),

View File

@ -32,7 +32,7 @@ export const ServicePrefixAnnotationKey = "omni-kube-service-exposer.sidero.dev/
export const installDiskMinSize = 5e+09;
export const authPublicKeyIDQueryParam = "public-key-id";
export const SecureBoot = "secureboot";
export const DefaultTalosVersion = "1.9.5";
export const DefaultTalosVersion = "1.10.1";
export const PatchWeightInstallDisk = 0;
export const PatchBaseWeightCluster = 200;
export const PatchBaseWeightMachineSet = 400;

View File

@ -20,7 +20,9 @@ echo "127.0.0.1 my-instance.localhost" | tee -a /etc/hosts
# Settings.
TALOS_VERSION=1.9.5
TALOS_VERSION=1.10.1
ENABLE_TALOS_PRERELEASE_VERSIONS=false
ARTIFACTS=_out
JOIN_TOKEN=testonly
RUN_DIR=$(pwd)
@ -38,13 +40,24 @@ mkdir -p ${ARTIFACTS}
[ -f ${ARTIFACTS}/talosctl ] || (crane export ghcr.io/siderolabs/talosctl:latest | tar x -C ${ARTIFACTS})
# Your image schematic ID is: cf9b7aab9ed7c365d5384509b4d31c02fdaa06d2b3ac6cc0bc806f28130eff1f
#
# customization:
# systemExtensions:
# officialExtensions:
# - siderolabs/hello-world-service
SCHEMATIC_ID="cf9b7aab9ed7c365d5384509b4d31c02fdaa06d2b3ac6cc0bc806f28130eff1f"
# Determine the local IP SideroLink API will listen on
LOCAL_IP=$(ip -o route get to 8.8.8.8 | sed -n 's/.*src \([0-9.]\+\).*/\1/p')
# Prepare schematic with kernel args
SCHEMATIC=$(
cat <<EOF
customization:
extraKernelArgs:
- siderolink.api=grpc://$LOCAL_IP:8090?jointoken=${JOIN_TOKEN}
- talos.events.sink=[fdae:41e4:649b:9303::1]:8090
- talos.logging.kernel=tcp://[fdae:41e4:649b:9303::1]:8092
systemExtensions:
officialExtensions:
- siderolabs/hello-world-service
EOF
)
SCHEMATIC_ID=$(curl -X POST --data-binary "${SCHEMATIC}" https://factory.talos.dev/schematics | jq -r '.id')
# Build registry mirror args.
@ -79,9 +92,6 @@ function cleanup() {
trap cleanup EXIT SIGINT
# Determine the local IP SideroLink API will listen on
LOCAL_IP=$(ip -o route get to 8.8.8.8 | sed -n 's/.*src \([0-9.]\+\).*/\1/p')
# Start Vault.
docker run --rm -d --cap-add=IPC_LOCK -p 8200:8200 -e 'VAULT_DEV_ROOT_TOKEN_ID=dev-o-token' --name vault-dev hashicorp/vault:1.18
@ -137,6 +147,7 @@ SIDEROLINK_DEV_JOIN_TOKEN="${JOIN_TOKEN}" \
--etcd-embedded-unsafe-fsync=true \
--etcd-backup-s3 \
--audit-log-dir /tmp/omni-data/audit-log \
--enable-talos-pre-release-versions="${ENABLE_TALOS_PRERELEASE_VERSIONS}" \
"${REGISTRY_MIRROR_FLAGS[@]}" \
&
@ -230,22 +241,6 @@ ${ARTIFACTS}/talosctl cluster create \
--vmlinuz-path="https://factory.talos.dev/image/${SCHEMATIC_ID}/v${TALOS_VERSION}/kernel-amd64" \
--initrd-path="https://factory.talos.dev/image/${SCHEMATIC_ID}/v${TALOS_VERSION}/initramfs-amd64.xz"
# Prepare schematic with kernel args for secure boot
SECURE_BOOT_SCHEMATIC=$(
cat <<EOF
customization:
extraKernelArgs:
- siderolink.api=grpc://$LOCAL_IP:8090?jointoken=${JOIN_TOKEN}
- talos.events.sink=[fdae:41e4:649b:9303::1]:8090
- talos.logging.kernel=tcp://[fdae:41e4:649b:9303::1]:8092
systemExtensions:
officialExtensions:
- siderolabs/hello-world-service
EOF
)
SECURE_BOOT_SCHEMATIC_ID=$(curl -X POST --data-binary "${SECURE_BOOT_SCHEMATIC}" https://factory.talos.dev/schematics | jq -r '.id')
if [[ "${ENABLE_SECUREBOOT}" == "true" ]]; then
# Kernel args, secure boot
${ARTIFACTS}/talosctl cluster create \
@ -266,7 +261,7 @@ if [[ "${ENABLE_SECUREBOOT}" == "true" ]]; then
--cidr=172.22.0.0/24 \
--no-masquerade-cidrs=172.20.0.0/24,172.21.0.0/24 \
--with-tpm2 \
--iso-path="https://factory.talos.dev/image/${SECURE_BOOT_SCHEMATIC_ID}/v${TALOS_VERSION}/metal-amd64-secureboot.iso" \
--iso-path="https://factory.talos.dev/image/${SCHEMATIC_ID}/v${TALOS_VERSION}/metal-amd64-secureboot.iso" \
--disk-encryption-key-types=tpm
fi

View File

@ -12,7 +12,7 @@ import (
)
// AnotherTalosVersion is used in the integration tests for Talos upgrade.
const AnotherTalosVersion = "1.9.0"
const AnotherTalosVersion = "1.10.0"
// MinDiscoveredTalosVersion makes Omni pull the versions from this point.
const MinDiscoveredTalosVersion = "1.3.0"
@ -33,9 +33,8 @@ const MinKubernetesVersion = "1.24.0"
// DenylistedTalosVersions is a list of versions which should never show up in the version picker.
var DenylistedTalosVersions = Denylist{
"1.4.2": {}, // issue with the number of open files limit
"1.4.3": {}, // issue with the number of open files limit
"1.10.*": {}, // Omni is not ready for 1.10.x yet
"1.4.2": {}, // issue with the number of open files limit
"1.4.3": {}, // issue with the number of open files limit
}
// Denylist helper.