Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .kres.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ spec:
GRPC_GATEWAY_VERSION="$(GRPC_GATEWAY_VERSION)"
VTPROTOBUF_VERSION="$(VTPROTOBUF_VERSION)"
DEEPCOPY_VERSION="$(DEEPCOPY_VERSION)"
DIS_VULNCHECK_VERSION="$(DIS_VULNCHECK_VERSION)"
TESTPKGS="$(TESTPKGS)"
COMPOSE_DOCKER_CLI_BUILD=1
DOCKER_BUILDKIT=1
Expand Down Expand Up @@ -187,6 +188,7 @@ spec:
GRPC_GATEWAY_VERSION="$(GRPC_GATEWAY_VERSION)"
VTPROTOBUF_VERSION="$(VTPROTOBUF_VERSION)"
DEEPCOPY_VERSION="$(DEEPCOPY_VERSION)"
DIS_VULNCHECK_VERSION="$(DIS_VULNCHECK_VERSION)"
TESTPKGS="$(TESTPKGS)"
COMPOSE_DOCKER_CLI_BUILD=1
DOCKER_BUILDKIT=1
Expand Down Expand Up @@ -713,6 +715,8 @@ spec:
destination: frontend/src/schemas/config_1_11.schema.json
- source: https://raw.githubusercontent.com/siderolabs/talos/v1.12.6/pkg/machinery/config/schemas/config.schema.json
destination: frontend/src/schemas/config_1_12.schema.json
- source: https://raw.githubusercontent.com/siderolabs/talos/v1.13.0-rc.0/pkg/machinery/config/schemas/config.schema.json
destination: frontend/src/schemas/config_1_13.schema.json
destinationRoot: src/api
specs:
- source: client/api/common/omni.proto
Expand Down
3 changes: 2 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
#
# Generated on 2026-04-14T11:47:48Z by kres b6d29bf.
# Generated on 2026-04-16T13:44:23Z by kres b6d29bf.

ARG JS_TOOLCHAIN
ARG TOOLCHAIN=scratch
Expand Down Expand Up @@ -274,6 +274,7 @@ ADD https://raw.githubusercontent.com/siderolabs/talos/v1.9.6/pkg/machinery/conf
ADD https://raw.githubusercontent.com/siderolabs/talos/v1.10.9/pkg/machinery/config/schemas/config.schema.json frontend/src/schemas/config_1_10.schema.json
ADD https://raw.githubusercontent.com/siderolabs/talos/v1.11.6/pkg/machinery/config/schemas/config.schema.json frontend/src/schemas/config_1_11.schema.json
ADD https://raw.githubusercontent.com/siderolabs/talos/v1.12.6/pkg/machinery/config/schemas/config.schema.json frontend/src/schemas/config_1_12.schema.json
ADD https://raw.githubusercontent.com/siderolabs/talos/v1.13.0-rc.0/pkg/machinery/config/schemas/config.schema.json frontend/src/schemas/config_1_13.schema.json
COPY --from=proto-compile-frontend frontend/ frontend/

# run go generate
Expand Down
6 changes: 3 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
#
# Generated on 2026-04-14T11:51:07Z by kres b6d29bf.
# Generated on 2026-04-16T13:44:23Z by kres b6d29bf.

# common variables

Expand Down Expand Up @@ -455,11 +455,11 @@ image-omni-integration-test: ## Builds image for omni-integration-test.

.PHONY: docker-compose-up
docker-compose-up:
ARTIFACTS="$(ARTIFACTS)" SHA="$(SHA)" TAG="$(TAG)" USERNAME="$(USERNAME)" REGISTRY="$(REGISTRY)" JS_TOOLCHAIN="$(JS_TOOLCHAIN)" PROTOBUF_TS_VERSION="$(PROTOBUF_TS_VERSION)" PROTOBUF_GRPC_GATEWAY_TS_VERSION="$(PROTOBUF_GRPC_GATEWAY_TS_VERSION)" NODE_BUILD_ARGS="$(NODE_BUILD_ARGS)" TOOLCHAIN="$(TOOLCHAIN)" CGO_ENABLED="$(CGO_ENABLED)" GO_BUILDFLAGS="$(GO_BUILDFLAGS)" GOLANGCILINT_VERSION="$(GOLANGCILINT_VERSION)" GOFUMPT_VERSION="$(GOFUMPT_VERSION)" GOIMPORTS_VERSION="$(GOIMPORTS_VERSION)" GOMOCK_VERSION="$(GOMOCK_VERSION)" PROTOBUF_GO_VERSION="$(PROTOBUF_GO_VERSION)" GRPC_GO_VERSION="$(GRPC_GO_VERSION)" GRPC_GATEWAY_VERSION="$(GRPC_GATEWAY_VERSION)" VTPROTOBUF_VERSION="$(VTPROTOBUF_VERSION)" DEEPCOPY_VERSION="$(DEEPCOPY_VERSION)" TESTPKGS="$(TESTPKGS)" COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 GO_LDFLAGS="$(GO_LDFLAGS)" GOTOOLCHAIN="$(GOTOOLCHAIN)" GOEXPERIMENT="$(GOEXPERIMENT)" WITH_DEBUG="$(WITH_DEBUG)" DIS_VULNCHECK_VERSION="$(DIS_VULNCHECK_VERSION)" docker compose --file ./hack/compose/docker-compose.yml --file ./hack/compose/docker-compose.override.yml up --build
ARTIFACTS="$(ARTIFACTS)" SHA="$(SHA)" TAG="$(TAG)" USERNAME="$(USERNAME)" REGISTRY="$(REGISTRY)" JS_TOOLCHAIN="$(JS_TOOLCHAIN)" PROTOBUF_TS_VERSION="$(PROTOBUF_TS_VERSION)" PROTOBUF_GRPC_GATEWAY_TS_VERSION="$(PROTOBUF_GRPC_GATEWAY_TS_VERSION)" NODE_BUILD_ARGS="$(NODE_BUILD_ARGS)" TOOLCHAIN="$(TOOLCHAIN)" CGO_ENABLED="$(CGO_ENABLED)" GO_BUILDFLAGS="$(GO_BUILDFLAGS)" GOLANGCILINT_VERSION="$(GOLANGCILINT_VERSION)" GOFUMPT_VERSION="$(GOFUMPT_VERSION)" GOIMPORTS_VERSION="$(GOIMPORTS_VERSION)" GOMOCK_VERSION="$(GOMOCK_VERSION)" PROTOBUF_GO_VERSION="$(PROTOBUF_GO_VERSION)" GRPC_GO_VERSION="$(GRPC_GO_VERSION)" GRPC_GATEWAY_VERSION="$(GRPC_GATEWAY_VERSION)" VTPROTOBUF_VERSION="$(VTPROTOBUF_VERSION)" DEEPCOPY_VERSION="$(DEEPCOPY_VERSION)" DIS_VULNCHECK_VERSION="$(DIS_VULNCHECK_VERSION)" TESTPKGS="$(TESTPKGS)" COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 GO_LDFLAGS="$(GO_LDFLAGS)" GOTOOLCHAIN="$(GOTOOLCHAIN)" GOEXPERIMENT="$(GOEXPERIMENT)" WITH_DEBUG="$(WITH_DEBUG)" DIS_VULNCHECK_VERSION="$(DIS_VULNCHECK_VERSION)" docker compose --file ./hack/compose/docker-compose.yml --file ./hack/compose/docker-compose.override.yml up --build

.PHONY: docker-compose-down
docker-compose-down:
ARTIFACTS="$(ARTIFACTS)" SHA="$(SHA)" TAG="$(TAG)" USERNAME="$(USERNAME)" REGISTRY="$(REGISTRY)" JS_TOOLCHAIN="$(JS_TOOLCHAIN)" PROTOBUF_TS_VERSION="$(PROTOBUF_TS_VERSION)" PROTOBUF_GRPC_GATEWAY_TS_VERSION="$(PROTOBUF_GRPC_GATEWAY_TS_VERSION)" NODE_BUILD_ARGS="$(NODE_BUILD_ARGS)" TOOLCHAIN="$(TOOLCHAIN)" CGO_ENABLED="$(CGO_ENABLED)" GO_BUILDFLAGS="$(GO_BUILDFLAGS)" GOLANGCILINT_VERSION="$(GOLANGCILINT_VERSION)" GOFUMPT_VERSION="$(GOFUMPT_VERSION)" GOIMPORTS_VERSION="$(GOIMPORTS_VERSION)" GOMOCK_VERSION="$(GOMOCK_VERSION)" PROTOBUF_GO_VERSION="$(PROTOBUF_GO_VERSION)" GRPC_GO_VERSION="$(GRPC_GO_VERSION)" GRPC_GATEWAY_VERSION="$(GRPC_GATEWAY_VERSION)" VTPROTOBUF_VERSION="$(VTPROTOBUF_VERSION)" DEEPCOPY_VERSION="$(DEEPCOPY_VERSION)" TESTPKGS="$(TESTPKGS)" COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 GO_LDFLAGS="$(GO_LDFLAGS)" GOTOOLCHAIN="$(GOTOOLCHAIN)" GOEXPERIMENT="$(GOEXPERIMENT)" WITH_DEBUG="$(WITH_DEBUG)" DIS_VULNCHECK_VERSION="$(DIS_VULNCHECK_VERSION)" docker compose --file ./hack/compose/docker-compose.yml --file ./hack/compose/docker-compose.override.yml down --rmi local --remove-orphans --volumes=$(REMOVE_VOLUMES)
ARTIFACTS="$(ARTIFACTS)" SHA="$(SHA)" TAG="$(TAG)" USERNAME="$(USERNAME)" REGISTRY="$(REGISTRY)" JS_TOOLCHAIN="$(JS_TOOLCHAIN)" PROTOBUF_TS_VERSION="$(PROTOBUF_TS_VERSION)" PROTOBUF_GRPC_GATEWAY_TS_VERSION="$(PROTOBUF_GRPC_GATEWAY_TS_VERSION)" NODE_BUILD_ARGS="$(NODE_BUILD_ARGS)" TOOLCHAIN="$(TOOLCHAIN)" CGO_ENABLED="$(CGO_ENABLED)" GO_BUILDFLAGS="$(GO_BUILDFLAGS)" GOLANGCILINT_VERSION="$(GOLANGCILINT_VERSION)" GOFUMPT_VERSION="$(GOFUMPT_VERSION)" GOIMPORTS_VERSION="$(GOIMPORTS_VERSION)" GOMOCK_VERSION="$(GOMOCK_VERSION)" PROTOBUF_GO_VERSION="$(PROTOBUF_GO_VERSION)" GRPC_GO_VERSION="$(GRPC_GO_VERSION)" GRPC_GATEWAY_VERSION="$(GRPC_GATEWAY_VERSION)" VTPROTOBUF_VERSION="$(VTPROTOBUF_VERSION)" DEEPCOPY_VERSION="$(DEEPCOPY_VERSION)" DIS_VULNCHECK_VERSION="$(DIS_VULNCHECK_VERSION)" TESTPKGS="$(TESTPKGS)" COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 GO_LDFLAGS="$(GO_LDFLAGS)" GOTOOLCHAIN="$(GOTOOLCHAIN)" GOEXPERIMENT="$(GOEXPERIMENT)" WITH_DEBUG="$(WITH_DEBUG)" DIS_VULNCHECK_VERSION="$(DIS_VULNCHECK_VERSION)" docker compose --file ./hack/compose/docker-compose.yml --file ./hack/compose/docker-compose.override.yml down --rmi local --remove-orphans --volumes=$(REMOVE_VOLUMES)

.PHONY: mkcert-install
mkcert-install:
Expand Down
29 changes: 27 additions & 2 deletions frontend/e2e/qemu/clusters.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,43 @@
// included in the LICENSE file.
import fs from 'node:fs/promises'
import os from 'node:os'
import path from 'node:path'

import type { Page } from '@playwright/test'
import { milliseconds } from 'date-fns'
import { diff as diffJSON } from 'json-diff-ts'
import * as uuid from 'uuid'
import * as yaml from 'yaml'

import { expect, test } from '../omnictl_fixtures.js'
import { expect, test as base } from '../omnictl_fixtures.js'

const clusterName = 'talos-test-cluster'

const test = base.extend<{ saveSupportBundleOnFailure: void }>({
saveSupportBundleOnFailure: [
async ({ omnictl }, use, testInfo) => {
await use()

// Save support bundle if the test failed
if (testInfo.status !== 'passed') {
const bundleDir = path.resolve(testInfo.outputDir, '..', 'support-bundles')
const bundlePath = path.join(bundleDir, `support-bundle-${clusterName}.zip`)

try {
await fs.mkdir(bundleDir, { recursive: true })
await omnictl(['support', '--cluster', clusterName, '--output', bundlePath])
await testInfo.attach(`support-bundle-${clusterName}.zip`, { path: bundlePath })
} catch (e) {
console.error(`failed to save support bundle for cluster ${clusterName}:`, e)
}
}
},
{ auto: true },
],
})

test.describe.configure({ mode: 'serial', retries: 0 })

const clusterName = 'talos-test-cluster'
const cpMachineName = 'deadbeef'
Comment on lines +42 to 44

@Slessi Slessi Apr 17, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is a total nit but can u move the earlier const down so the diff doesnt look weird? 😅

if left exactly like this it wont show unchanged lines as changed

Suggested change
test.describe.configure({ mode: 'serial', retries: 0 })
const cpMachineName = 'deadbeef'
/*your new thingy*/
test.describe.configure({ mode: 'serial', retries: 0 })
const clusterName = 'talos-test-cluster'
const cpMachineName = 'deadbeef'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it also has Omni resources which won't be garbage and are actually useful :)


test('create cluster', async ({ page }) => {
Expand Down
16 changes: 16 additions & 0 deletions frontend/e2e/talemu/cluster_fixtures.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
//
// Use of this software is governed by the Business Source License
// included in the LICENSE file.
import path from 'node:path'

import { faker } from '@faker-js/faker'
import { milliseconds } from 'date-fns'
import fs from 'fs/promises'
Expand Down Expand Up @@ -53,6 +55,20 @@ const test = base.extend<ClusterFixtures>({

await use({ name: clusterName })

// Save support bundle if the test failed
if (testInfo.status !== 'passed') {
Comment on lines +58 to +59

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

does this make sense for talemu tests? wont u get garbage back? or u only interested in the omni logs?

const bundleDir = path.resolve(testInfo.outputDir, '..', 'support-bundles')
const bundlePath = path.join(bundleDir, `support-bundle-${clusterName}.zip`)

try {
await fs.mkdir(bundleDir, { recursive: true })
await omnictl(['support', '--cluster', clusterName, '--output', bundlePath])
await testInfo.attach(`support-bundle-${clusterName}.zip`, { path: bundlePath })
} catch (e) {
console.error(`failed to save support bundle for cluster ${clusterName}:`, e)
}
}

// Destroy
await omnictl(['cluster', 'template', 'delete', '-f', templatePath, '--verbose'])
},
Expand Down
Loading
Loading