diff --git a/.kres.yaml b/.kres.yaml index 35e490ef5..f86003c35 100644 --- a/.kres.yaml +++ b/.kres.yaml @@ -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 @@ -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 @@ -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 diff --git a/Dockerfile b/Dockerfile index e2938151e..aa21ac5d9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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 @@ -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 diff --git a/Makefile b/Makefile index 30ce991c0..af54fceba 100644 --- a/Makefile +++ b/Makefile @@ -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 @@ -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: diff --git a/frontend/e2e/qemu/clusters.spec.ts b/frontend/e2e/qemu/clusters.spec.ts index 493a8a23d..1cbd6f557 100644 --- a/frontend/e2e/qemu/clusters.spec.ts +++ b/frontend/e2e/qemu/clusters.spec.ts @@ -4,6 +4,7 @@ // 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' @@ -11,11 +12,35 @@ 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' test('create cluster', async ({ page }) => { diff --git a/frontend/e2e/talemu/cluster_fixtures.ts b/frontend/e2e/talemu/cluster_fixtures.ts index 199012494..85bd31432 100644 --- a/frontend/e2e/talemu/cluster_fixtures.ts +++ b/frontend/e2e/talemu/cluster_fixtures.ts @@ -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' @@ -53,6 +55,20 @@ const test = base.extend({ await use({ name: clusterName }) + // 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) + } + } + // Destroy await omnictl(['cluster', 'template', 'delete', '-f', templatePath, '--verbose']) }, diff --git a/frontend/src/schemas/config_1_13.schema.json b/frontend/src/schemas/config_1_13.schema.json new file mode 100644 index 000000000..4a1794c3a --- /dev/null +++ b/frontend/src/schemas/config_1_13.schema.json @@ -0,0 +1,5854 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://talos.dev/v1.13/schemas/config.schema.json", + "$defs": { + "block.DiskSelector": { + "properties": { + "match": { + "type": "string", + "title": "match", + "description": "The Common Expression Language (CEL) expression to match the disk.\n", + "markdownDescription": "The Common Expression Language (CEL) expression to match the disk.", + "x-intellij-html-description": "\u003cp\u003eThe Common Expression Language (CEL) expression to match the disk.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "DiskSelector selects a disk for the volume." + }, + "block.EncryptionKey": { + "properties": { + "slot": { + "type": "integer", + "title": "slot", + "description": "Key slot number for LUKS2 encryption.\n", + "markdownDescription": "Key slot number for LUKS2 encryption.", + "x-intellij-html-description": "\u003cp\u003eKey slot number for LUKS2 encryption.\u003c/p\u003e\n" + }, + "static": { + "$ref": "#/$defs/block.EncryptionKeyStatic", + "title": "static", + "description": "Key which value is stored in the configuration file.\n", + "markdownDescription": "Key which value is stored in the configuration file.", + "x-intellij-html-description": "\u003cp\u003eKey which value is stored in the configuration file.\u003c/p\u003e\n" + }, + "nodeID": { + "$ref": "#/$defs/block.EncryptionKeyNodeID", + "title": "nodeID", + "description": "Deterministically generated key from the node UUID and PartitionLabel.\n", + "markdownDescription": "Deterministically generated key from the node UUID and PartitionLabel.", + "x-intellij-html-description": "\u003cp\u003eDeterministically generated key from the node UUID and PartitionLabel.\u003c/p\u003e\n" + }, + "kms": { + "$ref": "#/$defs/block.EncryptionKeyKMS", + "title": "kms", + "description": "KMS managed encryption key.\n", + "markdownDescription": "KMS managed encryption key.", + "x-intellij-html-description": "\u003cp\u003eKMS managed encryption key.\u003c/p\u003e\n" + }, + "tpm": { + "$ref": "#/$defs/block.EncryptionKeyTPM", + "title": "tpm", + "description": "Enable TPM based disk encryption.\n", + "markdownDescription": "Enable TPM based disk encryption.", + "x-intellij-html-description": "\u003cp\u003eEnable TPM based disk encryption.\u003c/p\u003e\n" + }, + "lockToState": { + "type": "boolean", + "title": "lockToState", + "description": "Lock the disk encryption key to the random salt stored in the STATE partition. This is useful to prevent the volume from being unlocked if STATE partition is compromised or replaced. It is recommended to use this option with TPM disk encryption for non-STATE volumes.\n", + "markdownDescription": "Lock the disk encryption key to the random salt stored in the STATE partition. This is useful to prevent the volume from being unlocked if STATE partition is compromised or replaced. It is recommended to use this option with TPM disk encryption for non-STATE volumes.", + "x-intellij-html-description": "\u003cp\u003eLock the disk encryption key to the random salt stored in the STATE partition. This is useful to prevent the volume from being unlocked if STATE partition is compromised or replaced. It is recommended to use this option with TPM disk encryption for non-STATE volumes.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "EncryptionKey represents configuration for disk encryption key." + }, + "block.EncryptionKeyKMS": { + "properties": { + "endpoint": { + "type": "string", + "title": "endpoint", + "description": "KMS endpoint to Seal/Unseal the key.\n", + "markdownDescription": "KMS endpoint to Seal/Unseal the key.", + "x-intellij-html-description": "\u003cp\u003eKMS endpoint to Seal/Unseal the key.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "EncryptionKeyKMS represents a key that is generated and then sealed/unsealed by the KMS server." + }, + "block.EncryptionKeyNodeID": { + "properties": {}, + "additionalProperties": false, + "type": "object", + "description": "EncryptionKeyNodeID represents deterministically generated key from the node UUID and PartitionLabel." + }, + "block.EncryptionKeyStatic": { + "properties": { + "passphrase": { + "type": "string", + "title": "passphrase", + "description": "Defines the static passphrase value.\n", + "markdownDescription": "Defines the static passphrase value.", + "x-intellij-html-description": "\u003cp\u003eDefines the static passphrase value.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "EncryptionKeyStatic represents throw away key type." + }, + "block.EncryptionKeyTPM": { + "properties": { + "options": { + "$ref": "#/$defs/block.EncryptionKeyTPMOptions", + "title": "options", + "description": "TPM options for key protection.\n", + "markdownDescription": "TPM options for key protection.", + "x-intellij-html-description": "\u003cp\u003eTPM options for key protection.\u003c/p\u003e\n" + }, + "checkSecurebootStatusOnEnroll": { + "type": "boolean", + "title": "checkSecurebootStatusOnEnroll", + "description": "Check that Secureboot is enabled in the EFI firmware.\nIf Secureboot is not enabled, the enrollment of the key will fail.\n", + "markdownDescription": "Check that Secureboot is enabled in the EFI firmware.\nIf Secureboot is not enabled, the enrollment of the key will fail.", + "x-intellij-html-description": "\u003cp\u003eCheck that Secureboot is enabled in the EFI firmware.\nIf Secureboot is not enabled, the enrollment of the key will fail.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "EncryptionKeyTPM represents a key that is generated and then sealed/unsealed by the TPM." + }, + "block.EncryptionKeyTPMOptions": { + "properties": { + "pcrs": { + "items": { + "type": "integer" + }, + "type": "array", + "title": "pcrs", + "description": "List of PCRs to bind the key to. If not set, defaults to PCR 7, can be disabled by passing an empty list.\n", + "markdownDescription": "List of PCRs to bind the key to. If not set, defaults to PCR 7, can be disabled by passing an empty list.", + "x-intellij-html-description": "\u003cp\u003eList of PCRs to bind the key to. If not set, defaults to PCR 7, can be disabled by passing an empty list.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "EncryptionKeyTPMOptions represents the options for TPM-based key protection." + }, + "block.EncryptionSpec": { + "properties": { + "provider": { + "enum": [ + "luks2" + ], + "title": "provider", + "description": "Encryption provider to use for the encryption.\n", + "markdownDescription": "Encryption provider to use for the encryption.", + "x-intellij-html-description": "\u003cp\u003eEncryption provider to use for the encryption.\u003c/p\u003e\n" + }, + "keys": { + "items": { + "$ref": "#/$defs/block.EncryptionKey" + }, + "type": "array", + "title": "keys", + "description": "Defines the encryption keys generation and storage method.\n", + "markdownDescription": "Defines the encryption keys generation and storage method.", + "x-intellij-html-description": "\u003cp\u003eDefines the encryption keys generation and storage method.\u003c/p\u003e\n" + }, + "cipher": { + "enum": [ + "aes-xts-plain64", + "xchacha12,aes-adiantum-plain64", + "xchacha20,aes-adiantum-plain64" + ], + "title": "cipher", + "description": "Cipher to use for the encryption. Depends on the encryption provider.\n", + "markdownDescription": "Cipher to use for the encryption. Depends on the encryption provider.", + "x-intellij-html-description": "\u003cp\u003eCipher to use for the encryption. Depends on the encryption provider.\u003c/p\u003e\n" + }, + "keySize": { + "type": "integer", + "title": "keySize", + "description": "Defines the encryption key length.\n", + "markdownDescription": "Defines the encryption key length.", + "x-intellij-html-description": "\u003cp\u003eDefines the encryption key length.\u003c/p\u003e\n" + }, + "blockSize": { + "type": "integer", + "title": "blockSize", + "description": "Defines the encryption sector size.\n", + "markdownDescription": "Defines the encryption sector size.", + "x-intellij-html-description": "\u003cp\u003eDefines the encryption sector size.\u003c/p\u003e\n" + }, + "options": { + "enum": [ + "no_read_workqueue", + "no_write_workqueue", + "same_cpu_crypt" + ], + "title": "options", + "description": "Additional –perf parameters for the LUKS2 encryption.\n", + "markdownDescription": "Additional --perf parameters for the LUKS2 encryption.", + "x-intellij-html-description": "\u003cp\u003eAdditional \u0026ndash;perf parameters for the LUKS2 encryption.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "EncryptionSpec represents volume encryption settings." + }, + "block.ExistingMountSpec": { + "properties": { + "readOnly": { + "type": "boolean", + "title": "readOnly", + "description": "Mount the volume read-only.\n", + "markdownDescription": "Mount the volume read-only.", + "x-intellij-html-description": "\u003cp\u003eMount the volume read-only.\u003c/p\u003e\n" + }, + "disableAccessTime": { + "type": "boolean", + "title": "disableAccessTime", + "description": "If true, disable file access time updates.\n", + "markdownDescription": "If true, disable file access time updates.", + "x-intellij-html-description": "\u003cp\u003eIf true, disable file access time updates.\u003c/p\u003e\n" + }, + "secure": { + "type": "boolean", + "title": "secure", + "description": "Enable secure mount options (nosuid, nodev).\n\nDefaults to true for better security.\n", + "markdownDescription": "Enable secure mount options (nosuid, nodev).\n\nDefaults to true for better security.", + "x-intellij-html-description": "\u003cp\u003eEnable secure mount options (nosuid, nodev).\u003c/p\u003e\n\n\u003cp\u003eDefaults to true for better security.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "ExistingMountSpec describes how the volume is mounted." + }, + "block.ExistingVolumeConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "ExistingVolumeConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Name of the volume.\n\nName can only contain:\nlowercase and uppercase ASCII letters, digits, and hyphens.\n", + "markdownDescription": "Name of the volume.\n\nName can only contain:\nlowercase and uppercase ASCII letters, digits, and hyphens.", + "x-intellij-html-description": "\u003cp\u003eName of the volume.\u003c/p\u003e\n\n\u003cp\u003eName can only contain:\nlowercase and uppercase ASCII letters, digits, and hyphens.\u003c/p\u003e\n" + }, + "discovery": { + "$ref": "#/$defs/block.VolumeDiscoverySpec", + "title": "discovery", + "description": "The discovery describes how to find a volume.\n", + "markdownDescription": "The discovery describes how to find a volume.", + "x-intellij-html-description": "\u003cp\u003eThe discovery describes how to find a volume.\u003c/p\u003e\n" + }, + "mount": { + "$ref": "#/$defs/block.ExistingMountSpec", + "title": "mount", + "description": "The mount describes additional mount options.\n", + "markdownDescription": "The mount describes additional mount options.", + "x-intellij-html-description": "\u003cp\u003eThe mount describes additional mount options.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind" + ], + "description": "ExistingVolumeConfig is an existing volume configuration document.\\nExisting volumes allow to mount partitions (or whole disks) that were created\\noutside of Talos. Volume will be mounted under `/var/mnt/\u003cname\u003e`.\\nThe existing volume config name should not conflict with user volume names.\\n" + }, + "block.ExternalMountSpec": { + "properties": { + "readOnly": { + "type": "boolean", + "title": "readOnly", + "description": "Mount the volume read-only.\n", + "markdownDescription": "Mount the volume read-only.", + "x-intellij-html-description": "\u003cp\u003eMount the volume read-only.\u003c/p\u003e\n" + }, + "disableAccessTime": { + "type": "boolean", + "title": "disableAccessTime", + "description": "If true, disable file access time updates.\n", + "markdownDescription": "If true, disable file access time updates.", + "x-intellij-html-description": "\u003cp\u003eIf true, disable file access time updates.\u003c/p\u003e\n" + }, + "secure": { + "type": "boolean", + "title": "secure", + "description": "Enable secure mount options (nosuid, nodev).\n\nDefaults to true for better security.\n", + "markdownDescription": "Enable secure mount options (nosuid, nodev).\n\nDefaults to true for better security.", + "x-intellij-html-description": "\u003cp\u003eEnable secure mount options (nosuid, nodev).\u003c/p\u003e\n\n\u003cp\u003eDefaults to true for better security.\u003c/p\u003e\n" + }, + "virtiofs": { + "$ref": "#/$defs/block.VirtiofsMountSpec", + "title": "virtiofs", + "description": "Virtiofs mount options.\n", + "markdownDescription": "Virtiofs mount options.", + "x-intellij-html-description": "\u003cp\u003eVirtiofs mount options.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "ExternalMountSpec describes how the external volume is mounted." + }, + "block.ExternalVolumeConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "ExternalVolumeConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Name of the mount.\n\nName might be between 1 and 34 characters long and can only contain:\nlowercase and uppercase ASCII letters, digits, and hyphens.\n", + "markdownDescription": "Name of the mount.\n\nName might be between 1 and 34 characters long and can only contain:\nlowercase and uppercase ASCII letters, digits, and hyphens.", + "x-intellij-html-description": "\u003cp\u003eName of the mount.\u003c/p\u003e\n\n\u003cp\u003eName might be between 1 and 34 characters long and can only contain:\nlowercase and uppercase ASCII letters, digits, and hyphens.\u003c/p\u003e\n" + }, + "filesystemType": { + "enum": [ + "virtiofs" + ], + "title": "filesystemType", + "description": "Filesystem type.\n", + "markdownDescription": "Filesystem type.", + "x-intellij-html-description": "\u003cp\u003eFilesystem type.\u003c/p\u003e\n" + }, + "mount": { + "$ref": "#/$defs/block.ExternalMountSpec", + "title": "mount", + "description": "The mount describes additional mount options.\n", + "markdownDescription": "The mount describes additional mount options.", + "x-intellij-html-description": "\u003cp\u003eThe mount describes additional mount options.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind" + ], + "description": "ExternalVolumeConfig is an external disk mount configuration document.\\nExternal volumes allow to mount volumes that were created outside of Talos,\\nover the network or API. Volume will be mounted under `/var/mnt/\u003cname\u003e`.\\nThe external volume config name should not conflict with user volume names.\\n" + }, + "block.FilesystemSpec": { + "properties": { + "type": { + "enum": [ + "ext4", + "xfs" + ], + "title": "type", + "description": "Filesystem type. Default is xfs.\n", + "markdownDescription": "Filesystem type. Default is `xfs`.", + "x-intellij-html-description": "\u003cp\u003eFilesystem type. Default is \u003ccode\u003exfs\u003c/code\u003e.\u003c/p\u003e\n" + }, + "projectQuotaSupport": { + "type": "boolean", + "title": "projectQuotaSupport", + "description": "Enables project quota support, valid only for ‘xfs’ filesystem.\n\nNote: changing this value might require a full remount of the filesystem.\n", + "markdownDescription": "Enables project quota support, valid only for 'xfs' filesystem.\n\nNote: changing this value might require a full remount of the filesystem.", + "x-intellij-html-description": "\u003cp\u003eEnables project quota support, valid only for \u0026lsquo;xfs\u0026rsquo; filesystem.\u003c/p\u003e\n\n\u003cp\u003eNote: changing this value might require a full remount of the filesystem.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "FilesystemSpec configures the filesystem for the volume." + }, + "block.MountSpec": { + "properties": { + "secure": { + "type": "boolean", + "title": "secure", + "description": "Enable secure mount options (nosuid, nodev).\n\nDefaults to true for better security.\n", + "markdownDescription": "Enable secure mount options (nosuid, nodev).\n\nDefaults to true for better security.", + "x-intellij-html-description": "\u003cp\u003eEnable secure mount options (nosuid, nodev).\u003c/p\u003e\n\n\u003cp\u003eDefaults to true for better security.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "MountSpec describes how the volume is mounted." + }, + "block.ProvisioningSpec": { + "properties": { + "diskSelector": { + "$ref": "#/$defs/block.DiskSelector", + "title": "diskSelector", + "description": "The disk selector expression.\n", + "markdownDescription": "The disk selector expression.", + "x-intellij-html-description": "\u003cp\u003eThe disk selector expression.\u003c/p\u003e\n" + }, + "grow": { + "type": "boolean", + "title": "grow", + "description": "Should the volume grow to the size of the disk (if possible).\n", + "markdownDescription": "Should the volume grow to the size of the disk (if possible).", + "x-intellij-html-description": "\u003cp\u003eShould the volume grow to the size of the disk (if possible).\u003c/p\u003e\n" + }, + "minSize": { + "type": "string", + "title": "minSize", + "description": "The minimum size of the volume.\n\nSize is specified in bytes, but can be expressed in human readable format, e.g. 100MB.\n", + "markdownDescription": "The minimum size of the volume.\n\nSize is specified in bytes, but can be expressed in human readable format, e.g. 100MB.", + "x-intellij-html-description": "\u003cp\u003eThe minimum size of the volume.\u003c/p\u003e\n\n\u003cp\u003eSize is specified in bytes, but can be expressed in human readable format, e.g. 100MB.\u003c/p\u003e\n" + }, + "maxSize": { + "type": "string", + "title": "maxSize", + "description": "The maximum size of the volume, if not specified the volume can grow to the size of the\ndisk.\n\nSize is specified in bytes or in percents. It can be expressed in human readable format, e.g. 100MB.\n", + "markdownDescription": "The maximum size of the volume, if not specified the volume can grow to the size of the\ndisk.\n\nSize is specified in bytes or in percents. It can be expressed in human readable format, e.g. 100MB.", + "x-intellij-html-description": "\u003cp\u003eThe maximum size of the volume, if not specified the volume can grow to the size of the\ndisk.\u003c/p\u003e\n\n\u003cp\u003eSize is specified in bytes or in percents. It can be expressed in human readable format, e.g. 100MB.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "ProvisioningSpec describes how the volume is provisioned." + }, + "block.RawVolumeConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "RawVolumeConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Name of the volume.\n\nName might be between 1 and 34 characters long and can only contain:\nlowercase and uppercase ASCII letters, digits, and hyphens.\n", + "markdownDescription": "Name of the volume.\n\nName might be between 1 and 34 characters long and can only contain:\nlowercase and uppercase ASCII letters, digits, and hyphens.", + "x-intellij-html-description": "\u003cp\u003eName of the volume.\u003c/p\u003e\n\n\u003cp\u003eName might be between 1 and 34 characters long and can only contain:\nlowercase and uppercase ASCII letters, digits, and hyphens.\u003c/p\u003e\n" + }, + "provisioning": { + "$ref": "#/$defs/block.ProvisioningSpec", + "title": "provisioning", + "description": "The provisioning describes how the volume is provisioned.\n", + "markdownDescription": "The provisioning describes how the volume is provisioned.", + "x-intellij-html-description": "\u003cp\u003eThe provisioning describes how the volume is provisioned.\u003c/p\u003e\n" + }, + "encryption": { + "$ref": "#/$defs/block.EncryptionSpec", + "title": "encryption", + "description": "The encryption describes how the volume is encrypted.\n", + "markdownDescription": "The encryption describes how the volume is encrypted.", + "x-intellij-html-description": "\u003cp\u003eThe encryption describes how the volume is encrypted.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind" + ], + "description": "RawVolumeConfig is a raw volume configuration document.\\nRaw volumes allow to create partitions without formatting them.\\n If you want to use local storage, user volumes is a better choice,\\n raw volumes are intended to be used with CSI provisioners.\\nThe partition label is automatically generated as `r-\u003cname\u003e`.\\n" + }, + "block.SwapVolumeConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "SwapVolumeConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Name of the volume.\n\nName might be between 1 and 34 characters long and can only contain:\nlowercase and uppercase ASCII letters, digits, and hyphens.\n", + "markdownDescription": "Name of the volume.\n\nName might be between 1 and 34 characters long and can only contain:\nlowercase and uppercase ASCII letters, digits, and hyphens.", + "x-intellij-html-description": "\u003cp\u003eName of the volume.\u003c/p\u003e\n\n\u003cp\u003eName might be between 1 and 34 characters long and can only contain:\nlowercase and uppercase ASCII letters, digits, and hyphens.\u003c/p\u003e\n" + }, + "provisioning": { + "$ref": "#/$defs/block.ProvisioningSpec", + "title": "provisioning", + "description": "The provisioning describes how the volume is provisioned.\n", + "markdownDescription": "The provisioning describes how the volume is provisioned.", + "x-intellij-html-description": "\u003cp\u003eThe provisioning describes how the volume is provisioned.\u003c/p\u003e\n" + }, + "encryption": { + "$ref": "#/$defs/block.EncryptionSpec", + "title": "encryption", + "description": "The encryption describes how the volume is encrypted.\n", + "markdownDescription": "The encryption describes how the volume is encrypted.", + "x-intellij-html-description": "\u003cp\u003eThe encryption describes how the volume is encrypted.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind" + ], + "description": "SwapVolumeConfig is a disk swap volume configuration document.\\nSwap volume is automatically allocated as a partition on the specified disk\\nand activated as swap, removing a swap volume deactivates swap.\\nThe partition label is automatically generated as `s-\u003cname\u003e`.\\n" + }, + "block.UserMountSpec": { + "properties": { + "disableAccessTime": { + "type": "boolean", + "title": "disableAccessTime", + "description": "If true, disable file access time updates.\n", + "markdownDescription": "If true, disable file access time updates.", + "x-intellij-html-description": "\u003cp\u003eIf true, disable file access time updates.\u003c/p\u003e\n" + }, + "secure": { + "type": "boolean", + "title": "secure", + "description": "Enable secure mount options (nosuid, nodev).\n\nDefaults to true for better security.\n", + "markdownDescription": "Enable secure mount options (nosuid, nodev).\n\nDefaults to true for better security.", + "x-intellij-html-description": "\u003cp\u003eEnable secure mount options (nosuid, nodev).\u003c/p\u003e\n\n\u003cp\u003eDefaults to true for better security.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "UserMountSpec describes how the volume is mounted." + }, + "block.UserVolumeConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "UserVolumeConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Name of the volume.\n\nName might be between 1 and 34 characters long and can only contain:\nlowercase and uppercase ASCII letters, digits, and hyphens.\n", + "markdownDescription": "Name of the volume.\n\nName might be between 1 and 34 characters long and can only contain:\nlowercase and uppercase ASCII letters, digits, and hyphens.", + "x-intellij-html-description": "\u003cp\u003eName of the volume.\u003c/p\u003e\n\n\u003cp\u003eName might be between 1 and 34 characters long and can only contain:\nlowercase and uppercase ASCII letters, digits, and hyphens.\u003c/p\u003e\n" + }, + "volumeType": { + "enum": [ + "directory", + "disk", + "partition" + ], + "title": "volumeType", + "description": "Volume type.\n", + "markdownDescription": "Volume type.", + "x-intellij-html-description": "\u003cp\u003eVolume type.\u003c/p\u003e\n" + }, + "provisioning": { + "$ref": "#/$defs/block.ProvisioningSpec", + "title": "provisioning", + "description": "The provisioning describes how the volume is provisioned.\n", + "markdownDescription": "The provisioning describes how the volume is provisioned.", + "x-intellij-html-description": "\u003cp\u003eThe provisioning describes how the volume is provisioned.\u003c/p\u003e\n" + }, + "filesystem": { + "$ref": "#/$defs/block.FilesystemSpec", + "title": "filesystem", + "description": "The filesystem describes how the volume is formatted.\n", + "markdownDescription": "The filesystem describes how the volume is formatted.", + "x-intellij-html-description": "\u003cp\u003eThe filesystem describes how the volume is formatted.\u003c/p\u003e\n" + }, + "encryption": { + "$ref": "#/$defs/block.EncryptionSpec", + "title": "encryption", + "description": "The encryption describes how the volume is encrypted.\n", + "markdownDescription": "The encryption describes how the volume is encrypted.", + "x-intellij-html-description": "\u003cp\u003eThe encryption describes how the volume is encrypted.\u003c/p\u003e\n" + }, + "mount": { + "$ref": "#/$defs/block.UserMountSpec", + "title": "mount", + "description": "The mount describes additional mount options.\n", + "markdownDescription": "The mount describes additional mount options.", + "x-intellij-html-description": "\u003cp\u003eThe mount describes additional mount options.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind" + ], + "description": "UserVolumeConfig is a user volume configuration document.\\nUser volume is automatically allocated as a partition on the specified disk\\nand mounted under `/var/mnt/\u003cname\u003e`.\\nThe partition label is automatically generated as `u-\u003cname\u003e`.\\n" + }, + "block.VirtiofsMountSpec": { + "properties": { + "tag": { + "type": "string", + "title": "tag", + "description": "Selector tag for the Virtiofs mount.\n", + "markdownDescription": "Selector tag for the Virtiofs mount.", + "x-intellij-html-description": "\u003cp\u003eSelector tag for the Virtiofs mount.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "VirtiofsMountSpec describes Virtiofs mount options." + }, + "block.VolumeConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "VolumeConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Name of the volume.\n", + "markdownDescription": "Name of the volume.", + "x-intellij-html-description": "\u003cp\u003eName of the volume.\u003c/p\u003e\n" + }, + "provisioning": { + "$ref": "#/$defs/block.ProvisioningSpec", + "title": "provisioning", + "description": "The provisioning describes how the volume is provisioned.\n", + "markdownDescription": "The provisioning describes how the volume is provisioned.", + "x-intellij-html-description": "\u003cp\u003eThe provisioning describes how the volume is provisioned.\u003c/p\u003e\n" + }, + "encryption": { + "$ref": "#/$defs/block.EncryptionSpec", + "title": "encryption", + "description": "The encryption describes how the volume is encrypted.\n", + "markdownDescription": "The encryption describes how the volume is encrypted.", + "x-intellij-html-description": "\u003cp\u003eThe encryption describes how the volume is encrypted.\u003c/p\u003e\n" + }, + "mount": { + "$ref": "#/$defs/block.MountSpec", + "title": "mount", + "description": "The mount describes additional mount options.\n", + "markdownDescription": "The mount describes additional mount options.", + "x-intellij-html-description": "\u003cp\u003eThe mount describes additional mount options.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind" + ], + "description": "VolumeConfig is a system volume configuration document.\\nNote: at the moment, only `STATE`, `EPHEMERAL` and `IMAGE-CACHE` system volumes are supported.\\n" + }, + "block.VolumeDiscoverySpec": { + "properties": { + "volumeSelector": { + "$ref": "#/$defs/block.VolumeSelector", + "title": "volumeSelector", + "description": "The volume selector expression.\n", + "markdownDescription": "The volume selector expression.", + "x-intellij-html-description": "\u003cp\u003eThe volume selector expression.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "VolumeDiscoverySpec describes how the volume is discovered." + }, + "block.VolumeSelector": { + "properties": { + "match": { + "type": "string", + "title": "match", + "description": "The Common Expression Language (CEL) expression to match the volume.\n", + "markdownDescription": "The Common Expression Language (CEL) expression to match the volume.", + "x-intellij-html-description": "\u003cp\u003eThe Common Expression Language (CEL) expression to match the volume.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "VolumeSelector selects an existing volume." + }, + "block.ZswapConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "ZswapConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "maxPoolPercent": { + "type": "integer", + "title": "maxPoolPercent", + "description": "The maximum percent of memory that zswap can use.\nThis is a percentage of the total system memory.\nThe value must be between 0 and 100.\n", + "markdownDescription": "The maximum percent of memory that zswap can use.\nThis is a percentage of the total system memory.\nThe value must be between 0 and 100.", + "x-intellij-html-description": "\u003cp\u003eThe maximum percent of memory that zswap can use.\nThis is a percentage of the total system memory.\nThe value must be between 0 and 100.\u003c/p\u003e\n" + }, + "shrinkerEnabled": { + "type": "boolean", + "title": "shrinkerEnabled", + "description": "Enable the shrinker feature: kernel might move\ncold pages from zswap to swap device to free up memory\nfor other use cases.\n", + "markdownDescription": "Enable the shrinker feature: kernel might move\ncold pages from zswap to swap device to free up memory\nfor other use cases.", + "x-intellij-html-description": "\u003cp\u003eEnable the shrinker feature: kernel might move\ncold pages from zswap to swap device to free up memory\nfor other use cases.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind" + ], + "description": "ZswapConfig is a zswap (compressed memory) configuration document.\\nWhen zswap is enabled, Linux kernel compresses pages that would otherwise be swapped out to disk.\\nThe compressed pages are stored in a memory pool, which is used to avoid writing to disk\\nwhen the system is under memory pressure.\\n" + }, + "cri.RegistryAuthConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "RegistryAuthConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Registry endpoint to apply the authentication configuration to.\n\nRegistry endpoint is the hostname part of the endpoint URL,\ne.g. ‘my-mirror.local:5000’ for ‘https://my-mirror.local:5000/v2/’.\n\nThe authentication configuration will apply to all image pulls for this\nregistry endpoint, by Talos or any Kubernetes workloads.\n", + "markdownDescription": "Registry endpoint to apply the authentication configuration to.\n\nRegistry endpoint is the hostname part of the endpoint URL,\ne.g. 'my-mirror.local:5000' for 'https://my-mirror.local:5000/v2/'.\n\nThe authentication configuration will apply to all image pulls for this\nregistry endpoint, by Talos or any Kubernetes workloads.", + "x-intellij-html-description": "\u003cp\u003eRegistry endpoint to apply the authentication configuration to.\u003c/p\u003e\n\n\u003cp\u003eRegistry endpoint is the hostname part of the endpoint URL,\ne.g. \u0026lsquo;my-mirror.local:5000\u0026rsquo; for \u0026lsquo;\u003ca href=\"https://my-mirror.local:5000/v2/'\" target=\"_blank\"\u003ehttps://my-mirror.local:5000/v2/\u0026rsquo;\u003c/a\u003e.\u003c/p\u003e\n\n\u003cp\u003eThe authentication configuration will apply to all image pulls for this\nregistry endpoint, by Talos or any Kubernetes workloads.\u003c/p\u003e\n" + }, + "username": { + "type": "string", + "title": "username", + "description": "Username/password authentication.\n", + "markdownDescription": "Username/password authentication.", + "x-intellij-html-description": "\u003cp\u003eUsername/password authentication.\u003c/p\u003e\n" + }, + "password": { + "type": "string", + "title": "password", + "description": "Username/password authentication.\n", + "markdownDescription": "Username/password authentication.", + "x-intellij-html-description": "\u003cp\u003eUsername/password authentication.\u003c/p\u003e\n" + }, + "auth": { + "type": "string", + "title": "auth", + "description": "Raw authentication string.\n", + "markdownDescription": "Raw authentication string.", + "x-intellij-html-description": "\u003cp\u003eRaw authentication string.\u003c/p\u003e\n" + }, + "identityToken": { + "type": "string", + "title": "identityToken", + "description": "Identity token authentication.\n", + "markdownDescription": "Identity token authentication.", + "x-intellij-html-description": "\u003cp\u003eIdentity token authentication.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "name" + ], + "description": "RegistryAuthConfig configures authentication for a registry endpoint." + }, + "cri.RegistryEndpoint": { + "properties": { + "url": { + "type": "string", + "pattern": "^(http|https)://", + "title": "url", + "description": "The URL of the registry mirror endpoint.\n", + "markdownDescription": "The URL of the registry mirror endpoint.", + "x-intellij-html-description": "\u003cp\u003eThe URL of the registry mirror endpoint.\u003c/p\u003e\n" + }, + "overridePath": { + "type": "boolean", + "title": "overridePath", + "description": "Use endpoint path as supplied, without adding /v2/ suffix.\n", + "markdownDescription": "Use endpoint path as supplied, without adding `/v2/` suffix.", + "x-intellij-html-description": "\u003cp\u003eUse endpoint path as supplied, without adding \u003ccode\u003e/v2/\u003c/code\u003e suffix.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "url" + ], + "description": "RegistryEndpoint defines a registry mirror endpoint." + }, + "cri.RegistryMirrorConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "RegistryMirrorConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Registry name to apply the mirror configuration to.\n\nRegistry name is the first segment of image identifier, with ‘docker.io’\nbeing default one.\n\nA special name ‘*’ can be used to define mirror configuration\nthat applies to all registries.\n", + "markdownDescription": "Registry name to apply the mirror configuration to.\n\nRegistry name is the first segment of image identifier, with 'docker.io'\nbeing default one.\n\nA special name '*' can be used to define mirror configuration\nthat applies to all registries.", + "x-intellij-html-description": "\u003cp\u003eRegistry name to apply the mirror configuration to.\u003c/p\u003e\n\n\u003cp\u003eRegistry name is the first segment of image identifier, with \u0026lsquo;docker.io\u0026rsquo;\nbeing default one.\u003c/p\u003e\n\n\u003cp\u003eA special name \u0026lsquo;*\u0026rsquo; can be used to define mirror configuration\nthat applies to all registries.\u003c/p\u003e\n" + }, + "endpoints": { + "items": { + "$ref": "#/$defs/cri.RegistryEndpoint" + }, + "type": "array", + "title": "endpoints", + "description": "List of mirror endpoints for the registry.\nMirrors will be used in the order they are specified,\nfalling back to the default registry is skipFallback is not set to true.\n", + "markdownDescription": "List of mirror endpoints for the registry.\nMirrors will be used in the order they are specified,\nfalling back to the default registry is `skipFallback` is not set to true.", + "x-intellij-html-description": "\u003cp\u003eList of mirror endpoints for the registry.\nMirrors will be used in the order they are specified,\nfalling back to the default registry is \u003ccode\u003eskipFallback\u003c/code\u003e is not set to true.\u003c/p\u003e\n" + }, + "skipFallback": { + "type": "boolean", + "title": "skipFallback", + "description": "Skip fallback to the original registry if none of the mirrors are available\nor contain the requested image.\n", + "markdownDescription": "Skip fallback to the original registry if none of the mirrors are available\nor contain the requested image.", + "x-intellij-html-description": "\u003cp\u003eSkip fallback to the original registry if none of the mirrors are available\nor contain the requested image.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "name" + ], + "description": "RegistryMirrorConfig configures an image registry mirror." + }, + "cri.RegistryTLSConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "RegistryTLSConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Registry endpoint to apply the TLS configuration to.\n\nRegistry endpoint is the hostname part of the endpoint URL,\ne.g. ‘my-mirror.local:5000’ for ‘https://my-mirror.local:5000/v2/’.\n\nThe TLS configuration makes sense only for HTTPS endpoints.\nThe TLS configuration will apply to all image pulls for this\nregistry endpoint, by Talos or any Kubernetes workloads.\n", + "markdownDescription": "Registry endpoint to apply the TLS configuration to.\n\nRegistry endpoint is the hostname part of the endpoint URL,\ne.g. 'my-mirror.local:5000' for 'https://my-mirror.local:5000/v2/'.\n\nThe TLS configuration makes sense only for HTTPS endpoints.\nThe TLS configuration will apply to all image pulls for this\nregistry endpoint, by Talos or any Kubernetes workloads.", + "x-intellij-html-description": "\u003cp\u003eRegistry endpoint to apply the TLS configuration to.\u003c/p\u003e\n\n\u003cp\u003eRegistry endpoint is the hostname part of the endpoint URL,\ne.g. \u0026lsquo;my-mirror.local:5000\u0026rsquo; for \u0026lsquo;\u003ca href=\"https://my-mirror.local:5000/v2/'\" target=\"_blank\"\u003ehttps://my-mirror.local:5000/v2/\u0026rsquo;\u003c/a\u003e.\u003c/p\u003e\n\n\u003cp\u003eThe TLS configuration makes sense only for HTTPS endpoints.\nThe TLS configuration will apply to all image pulls for this\nregistry endpoint, by Talos or any Kubernetes workloads.\u003c/p\u003e\n" + }, + "clientIdentity": { + "properties": { + "crt": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "title": "clientIdentity", + "description": "Enable mutual TLS authentication with the registry.\nClient certificate and key should be PEM-encoded.\n", + "markdownDescription": "Enable mutual TLS authentication with the registry.\nClient certificate and key should be PEM-encoded.", + "x-intellij-html-description": "\u003cp\u003eEnable mutual TLS authentication with the registry.\nClient certificate and key should be PEM-encoded.\u003c/p\u003e\n" + }, + "ca": { + "type": "string", + "title": "ca", + "description": "CA registry certificate to add the list of trusted certificates.\nCertificate should be PEM-encoded.\n", + "markdownDescription": "CA registry certificate to add the list of trusted certificates.\nCertificate should be PEM-encoded.", + "x-intellij-html-description": "\u003cp\u003eCA registry certificate to add the list of trusted certificates.\nCertificate should be PEM-encoded.\u003c/p\u003e\n" + }, + "insecureSkipVerify": { + "type": "boolean", + "title": "insecureSkipVerify", + "description": "Skip TLS server certificate verification (not recommended).\n", + "markdownDescription": "Skip TLS server certificate verification (not recommended).", + "x-intellij-html-description": "\u003cp\u003eSkip TLS server certificate verification (not recommended).\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "name" + ], + "description": "RegistryTLSConfig configures TLS for a registry endpoint." + }, + "extensions.ConfigFile": { + "properties": { + "content": { + "type": "string", + "title": "content", + "description": "The content of the extension service config file.\n", + "markdownDescription": "The content of the extension service config file.", + "x-intellij-html-description": "\u003cp\u003eThe content of the extension service config file.\u003c/p\u003e\n" + }, + "mountPath": { + "type": "string", + "title": "mountPath", + "description": "The mount path of the extension service config file.\n", + "markdownDescription": "The mount path of the extension service config file.", + "x-intellij-html-description": "\u003cp\u003eThe mount path of the extension service config file.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "ConfigFile is a config file for extension services." + }, + "extensions.ServiceConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "ExtensionServiceConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Name of the extension service.\n", + "markdownDescription": "Name of the extension service.", + "x-intellij-html-description": "\u003cp\u003eName of the extension service.\u003c/p\u003e\n" + }, + "configFiles": { + "items": { + "$ref": "#/$defs/extensions.ConfigFile" + }, + "type": "array", + "title": "configFiles", + "description": "The config files for the extension service.\n", + "markdownDescription": "The config files for the extension service.", + "x-intellij-html-description": "\u003cp\u003eThe config files for the extension service.\u003c/p\u003e\n" + }, + "environment": { + "items": { + "type": "string" + }, + "type": "array", + "title": "environment", + "description": "The environment for the extension service.\n", + "markdownDescription": "The environment for the extension service.", + "x-intellij-html-description": "\u003cp\u003eThe environment for the extension service.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "name" + ], + "description": "ExtensionServiceConfig is a extensionserviceconfig document." + }, + "hardware.PCIDriverRebindConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "PCIDriverRebindConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "PCI device id\n", + "markdownDescription": "PCI device id", + "x-intellij-html-description": "\u003cp\u003ePCI device id\u003c/p\u003e\n" + }, + "targetDriver": { + "type": "string", + "title": "targetDriver", + "description": "Target driver to rebind the PCI device to.\n", + "markdownDescription": "Target driver to rebind the PCI device to.", + "x-intellij-html-description": "\u003cp\u003eTarget driver to rebind the PCI device to.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "name", + "targetDriver" + ], + "description": "PCIDriverRebindConfig allows to configure PCI driver rebinds." + }, + "network.AddressConfig": { + "properties": { + "address": { + "type": "string", + "pattern": "^[0-9a-f.:]+/\\d{1,3}$", + "title": "address", + "description": "IP address to be assigned to the link.\n\nThis field must include the network prefix length (e.g. /24 for IPv4, /64 for IPv6).\n", + "markdownDescription": "IP address to be assigned to the link.\n\nThis field must include the network prefix length (e.g. /24 for IPv4, /64 for IPv6).", + "x-intellij-html-description": "\u003cp\u003eIP address to be assigned to the link.\u003c/p\u003e\n\n\u003cp\u003eThis field must include the network prefix length (e.g. /24 for IPv4, /64 for IPv6).\u003c/p\u003e\n" + }, + "routePriority": { + "type": "integer", + "title": "routePriority", + "description": "Configure the route priority (metric) for routes created for this address.\n\nIf not specified, the system default route priority will be used.\n", + "markdownDescription": "Configure the route priority (metric) for routes created for this address.\n\nIf not specified, the system default route priority will be used.", + "x-intellij-html-description": "\u003cp\u003eConfigure the route priority (metric) for routes created for this address.\u003c/p\u003e\n\n\u003cp\u003eIf not specified, the system default route priority will be used.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "address" + ], + "description": "AddressConfig represents a network address configuration." + }, + "network.BlackholeRouteConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "BlackholeRouteConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Route destination as an address prefix.\n", + "markdownDescription": "Route destination as an address prefix.", + "x-intellij-html-description": "\u003cp\u003eRoute destination as an address prefix.\u003c/p\u003e\n" + }, + "metric": { + "type": "integer", + "title": "metric", + "description": "The optional metric for the route.\n", + "markdownDescription": "The optional metric for the route.", + "x-intellij-html-description": "\u003cp\u003eThe optional metric for the route.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "name" + ], + "description": "BlackholeRouteConfig is a config document to configure blackhole routes." + }, + "network.BondConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "BondConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Name of the bond link (interface) to be created.\n", + "markdownDescription": "Name of the bond link (interface) to be created.", + "x-intellij-html-description": "\u003cp\u003eName of the bond link (interface) to be created.\u003c/p\u003e\n" + }, + "hardwareAddr": { + "type": "string", + "pattern": "^[0-9a-f:]+$", + "title": "hardwareAddr", + "description": "Override the hardware (MAC) address of the link.\n", + "markdownDescription": "Override the hardware (MAC) address of the link.", + "x-intellij-html-description": "\u003cp\u003eOverride the hardware (MAC) address of the link.\u003c/p\u003e\n" + }, + "links": { + "items": { + "type": "string" + }, + "type": "array", + "title": "links", + "description": "Names of the links (interfaces) on which the bond will be created.\nLink aliases can be used here as well.\n", + "markdownDescription": "Names of the links (interfaces) on which the bond will be created.\nLink aliases can be used here as well.", + "x-intellij-html-description": "\u003cp\u003eNames of the links (interfaces) on which the bond will be created.\nLink aliases can be used here as well.\u003c/p\u003e\n" + }, + "bondMode": { + "enum": [ + "balance-rr", + "active-backup", + "balance-xor", + "broadcast", + "802.3ad", + "balance-tlb", + "balance-alb" + ], + "title": "bondMode", + "description": "Bond mode.\n", + "markdownDescription": "Bond mode.", + "x-intellij-html-description": "\u003cp\u003eBond mode.\u003c/p\u003e\n" + }, + "miimon": { + "type": "integer", + "title": "miimon", + "description": "Link monitoring frequency in milliseconds.\n", + "markdownDescription": "Link monitoring frequency in milliseconds.", + "x-intellij-html-description": "\u003cp\u003eLink monitoring frequency in milliseconds.\u003c/p\u003e\n" + }, + "updelay": { + "type": "integer", + "title": "updelay", + "description": "The time, in milliseconds, to wait before enabling a slave after a link recovery has been detected.\n", + "markdownDescription": "The time, in milliseconds, to wait before enabling a slave after a link recovery has been detected.", + "x-intellij-html-description": "\u003cp\u003eThe time, in milliseconds, to wait before enabling a slave after a link recovery has been detected.\u003c/p\u003e\n" + }, + "downdelay": { + "type": "integer", + "title": "downdelay", + "description": "The time, in milliseconds, to wait before disabling a slave after a link failure has been detected.\n", + "markdownDescription": "The time, in milliseconds, to wait before disabling a slave after a link failure has been detected.", + "x-intellij-html-description": "\u003cp\u003eThe time, in milliseconds, to wait before disabling a slave after a link failure has been detected.\u003c/p\u003e\n" + }, + "useCarrier": { + "type": "boolean", + "title": "useCarrier", + "description": "Specifies whether or not miimon should use MII or ETHTOOL.\n", + "markdownDescription": "Specifies whether or not miimon should use MII or ETHTOOL.", + "x-intellij-html-description": "\u003cp\u003eSpecifies whether or not miimon should use MII or ETHTOOL.\u003c/p\u003e\n" + }, + "xmitHashPolicy": { + "enum": [ + "layer2", + "layer3+4", + "layer2+3", + "encap2+3", + "encap3+4" + ], + "title": "xmitHashPolicy", + "description": "Selects the transmit hash policy to use for slave selection.\n", + "markdownDescription": "Selects the transmit hash policy to use for slave selection.", + "x-intellij-html-description": "\u003cp\u003eSelects the transmit hash policy to use for slave selection.\u003c/p\u003e\n" + }, + "arpInterval": { + "type": "integer", + "title": "arpInterval", + "description": "ARP link monitoring frequency in milliseconds.\n", + "markdownDescription": "ARP link monitoring frequency in milliseconds.", + "x-intellij-html-description": "\u003cp\u003eARP link monitoring frequency in milliseconds.\u003c/p\u003e\n" + }, + "arpIpTargets": { + "items": { + "type": "string", + "pattern": "^[0-9a-f.:]+$" + }, + "type": "array", + "title": "arpIpTargets", + "description": "The list of IPv4 addresses to use for ARP link monitoring when arpInterval is set.\nMaximum of 16 targets are supported.\n", + "markdownDescription": "The list of IPv4 addresses to use for ARP link monitoring when arpInterval is set.\nMaximum of 16 targets are supported.", + "x-intellij-html-description": "\u003cp\u003eThe list of IPv4 addresses to use for ARP link monitoring when arpInterval is set.\nMaximum of 16 targets are supported.\u003c/p\u003e\n" + }, + "nsIp6Targets": { + "items": { + "type": "string", + "pattern": "^[0-9a-f.:]+$" + }, + "type": "array", + "title": "nsIp6Targets", + "description": "The list of IPv6 addresses to use for NS link monitoring when arpInterval is set.\nMaximum of 16 targets are supported.\n", + "markdownDescription": "The list of IPv6 addresses to use for NS link monitoring when arpInterval is set.\nMaximum of 16 targets are supported.", + "x-intellij-html-description": "\u003cp\u003eThe list of IPv6 addresses to use for NS link monitoring when arpInterval is set.\nMaximum of 16 targets are supported.\u003c/p\u003e\n" + }, + "arpValidate": { + "enum": [ + "none", + "active", + "backup", + "all", + "filter", + "filter-active", + "filter-backup" + ], + "title": "arpValidate", + "description": "Specifies whether or not ARP probes and replies should be validated.\n", + "markdownDescription": "Specifies whether or not ARP probes and replies should be validated.", + "x-intellij-html-description": "\u003cp\u003eSpecifies whether or not ARP probes and replies should be validated.\u003c/p\u003e\n" + }, + "arpAllTargets": { + "enum": [ + "any", + "all" + ], + "title": "arpAllTargets", + "description": "Specifies whether ARP probes should be sent to any or all targets.\n", + "markdownDescription": "Specifies whether ARP probes should be sent to any or all targets.", + "x-intellij-html-description": "\u003cp\u003eSpecifies whether ARP probes should be sent to any or all targets.\u003c/p\u003e\n" + }, + "lacpRate": { + "enum": [ + "slow", + "fast" + ], + "title": "lacpRate", + "description": "LACPDU frames periodic transmission rate.\n", + "markdownDescription": "LACPDU frames periodic transmission rate.", + "x-intellij-html-description": "\u003cp\u003eLACPDU frames periodic transmission rate.\u003c/p\u003e\n" + }, + "failOverMac": { + "enum": [ + "none", + "active", + "follow" + ], + "title": "failOverMac", + "description": "Specifies whether active-backup mode should set all slaves to the same MAC address\nat enslavement, when enabled, or perform special handling.\n", + "markdownDescription": "Specifies whether active-backup mode should set all slaves to the same MAC address\nat enslavement, when enabled, or perform special handling.", + "x-intellij-html-description": "\u003cp\u003eSpecifies whether active-backup mode should set all slaves to the same MAC address\nat enslavement, when enabled, or perform special handling.\u003c/p\u003e\n" + }, + "adSelect": { + "enum": [ + "stable", + "bandwidth", + "count" + ], + "title": "adSelect", + "description": "Aggregate selection policy for 802.3ad.\n", + "markdownDescription": "Aggregate selection policy for 802.3ad.", + "x-intellij-html-description": "\u003cp\u003eAggregate selection policy for 802.3ad.\u003c/p\u003e\n" + }, + "adActorSysPrio": { + "type": "integer", + "title": "adActorSysPrio", + "description": "Actor system priority for 802.3ad.\n", + "markdownDescription": "Actor system priority for 802.3ad.", + "x-intellij-html-description": "\u003cp\u003eActor system priority for 802.3ad.\u003c/p\u003e\n" + }, + "adUserPortKey": { + "type": "integer", + "title": "adUserPortKey", + "description": "User port key (upper 10 bits) for 802.3ad.\n", + "markdownDescription": "User port key (upper 10 bits) for 802.3ad.", + "x-intellij-html-description": "\u003cp\u003eUser port key (upper 10 bits) for 802.3ad.\u003c/p\u003e\n" + }, + "adLACPActive": { + "enum": [ + "on", + "off" + ], + "title": "adLACPActive", + "description": "Whether to send LACPDU frames periodically.\n", + "markdownDescription": "Whether to send LACPDU frames periodically.", + "x-intellij-html-description": "\u003cp\u003eWhether to send LACPDU frames periodically.\u003c/p\u003e\n" + }, + "primaryReselect": { + "enum": [ + "always", + "better", + "failure" + ], + "title": "primaryReselect", + "description": "Policy under which the primary slave should be reselected.\n", + "markdownDescription": "Policy under which the primary slave should be reselected.", + "x-intellij-html-description": "\u003cp\u003ePolicy under which the primary slave should be reselected.\u003c/p\u003e\n" + }, + "resendIGMP": { + "type": "integer", + "title": "resendIGMP", + "description": "The number of times IGMP packets should be resent.\n", + "markdownDescription": "The number of times IGMP packets should be resent.", + "x-intellij-html-description": "\u003cp\u003eThe number of times IGMP packets should be resent.\u003c/p\u003e\n" + }, + "minLinks": { + "type": "integer", + "title": "minLinks", + "description": "The minimum number of active links required for the bond to be considered active.\n", + "markdownDescription": "The minimum number of active links required for the bond to be considered active.", + "x-intellij-html-description": "\u003cp\u003eThe minimum number of active links required for the bond to be considered active.\u003c/p\u003e\n" + }, + "lpInterval": { + "type": "integer", + "title": "lpInterval", + "description": "The number of seconds between instances where the bonding driver sends learning packets to each slave’s peer switch.\n", + "markdownDescription": "The number of seconds between instances where the bonding driver sends learning packets to each slave's peer switch.", + "x-intellij-html-description": "\u003cp\u003eThe number of seconds between instances where the bonding driver sends learning packets to each slave\u0026rsquo;s peer switch.\u003c/p\u003e\n" + }, + "packetsPerSlave": { + "type": "integer", + "title": "packetsPerSlave", + "description": "The number of packets to transmit through a slave before moving to the next one.\n", + "markdownDescription": "The number of packets to transmit through a slave before moving to the next one.", + "x-intellij-html-description": "\u003cp\u003eThe number of packets to transmit through a slave before moving to the next one.\u003c/p\u003e\n" + }, + "numPeerNotif": { + "type": "integer", + "title": "numPeerNotif", + "description": "The number of peer notifications (gratuitous ARPs and unsolicited IPv6 Neighbor Advertisements)\nto be issued after a failover event.\n", + "markdownDescription": "The number of peer notifications (gratuitous ARPs and unsolicited IPv6 Neighbor Advertisements)\nto be issued after a failover event.", + "x-intellij-html-description": "\u003cp\u003eThe number of peer notifications (gratuitous ARPs and unsolicited IPv6 Neighbor Advertisements)\nto be issued after a failover event.\u003c/p\u003e\n" + }, + "tlbLogicalLb": { + "type": "integer", + "title": "tlbLogicalLb", + "description": "Whether dynamic shuffling of flows is enabled in tlb or alb mode.\n", + "markdownDescription": "Whether dynamic shuffling of flows is enabled in tlb or alb mode.", + "x-intellij-html-description": "\u003cp\u003eWhether dynamic shuffling of flows is enabled in tlb or alb mode.\u003c/p\u003e\n" + }, + "allSlavesActive": { + "type": "integer", + "title": "allSlavesActive", + "description": "Whether duplicate frames (received on inactive ports) should be dropped (0) or delivered (1).\n", + "markdownDescription": "Whether duplicate frames (received on inactive ports) should be dropped (0) or delivered (1).", + "x-intellij-html-description": "\u003cp\u003eWhether duplicate frames (received on inactive ports) should be dropped (0) or delivered (1).\u003c/p\u003e\n" + }, + "peerNotifDelay": { + "type": "integer", + "title": "peerNotifDelay", + "description": "The delay, in milliseconds, between each peer notification.\n", + "markdownDescription": "The delay, in milliseconds, between each peer notification.", + "x-intellij-html-description": "\u003cp\u003eThe delay, in milliseconds, between each peer notification.\u003c/p\u003e\n" + }, + "missedMax": { + "type": "integer", + "title": "missedMax", + "description": "The number of arpInterval monitor checks that must fail in order for an interface to be marked down by the ARP monitor.\n", + "markdownDescription": "The number of arpInterval monitor checks that must fail in order for an interface to be marked down by the ARP monitor.", + "x-intellij-html-description": "\u003cp\u003eThe number of arpInterval monitor checks that must fail in order for an interface to be marked down by the ARP monitor.\u003c/p\u003e\n" + }, + "up": { + "type": "boolean", + "title": "up", + "description": "Bring the link up or down.\n\nIf not specified, the link will be brought up.\n", + "markdownDescription": "Bring the link up or down.\n\nIf not specified, the link will be brought up.", + "x-intellij-html-description": "\u003cp\u003eBring the link up or down.\u003c/p\u003e\n\n\u003cp\u003eIf not specified, the link will be brought up.\u003c/p\u003e\n" + }, + "mtu": { + "type": "integer", + "title": "mtu", + "description": "Configure LinkMTU (Maximum Transmission Unit) for the link.\n\nIf not specified, the system default LinkMTU will be used (usually 1500).\n", + "markdownDescription": "Configure LinkMTU (Maximum Transmission Unit) for the link.\n\nIf not specified, the system default LinkMTU will be used (usually 1500).", + "x-intellij-html-description": "\u003cp\u003eConfigure LinkMTU (Maximum Transmission Unit) for the link.\u003c/p\u003e\n\n\u003cp\u003eIf not specified, the system default LinkMTU will be used (usually 1500).\u003c/p\u003e\n" + }, + "addresses": { + "items": { + "$ref": "#/$defs/network.AddressConfig" + }, + "type": "array", + "title": "addresses", + "description": "Configure addresses to be statically assigned to the link.\n", + "markdownDescription": "Configure addresses to be statically assigned to the link.", + "x-intellij-html-description": "\u003cp\u003eConfigure addresses to be statically assigned to the link.\u003c/p\u003e\n" + }, + "routes": { + "items": { + "$ref": "#/$defs/network.RouteConfig" + }, + "type": "array", + "title": "routes", + "description": "Configure routes to be statically created via the link.\n", + "markdownDescription": "Configure routes to be statically created via the link.", + "x-intellij-html-description": "\u003cp\u003eConfigure routes to be statically created via the link.\u003c/p\u003e\n" + }, + "multicast": { + "type": "boolean", + "title": "multicast", + "description": "Set the multicast capability of the link.\n", + "markdownDescription": "Set the multicast capability of the link.", + "x-intellij-html-description": "\u003cp\u003eSet the multicast capability of the link.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "bondMode", + "kind", + "links", + "name" + ], + "description": "BondConfig is a config document to create a bond (link aggregation) over a set of links." + }, + "network.BridgeConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "BridgeConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Name of the bridge link (interface) to be created.\n", + "markdownDescription": "Name of the bridge link (interface) to be created.", + "x-intellij-html-description": "\u003cp\u003eName of the bridge link (interface) to be created.\u003c/p\u003e\n" + }, + "hardwareAddr": { + "type": "string", + "pattern": "^[0-9a-f:]+$", + "title": "hardwareAddr", + "description": "Override the hardware (MAC) address of the link.\n", + "markdownDescription": "Override the hardware (MAC) address of the link.", + "x-intellij-html-description": "\u003cp\u003eOverride the hardware (MAC) address of the link.\u003c/p\u003e\n" + }, + "links": { + "items": { + "type": "string" + }, + "type": "array", + "title": "links", + "description": "Names of the links (interfaces) to be aggregated.\nLink aliases can be used here as well.\n", + "markdownDescription": "Names of the links (interfaces) to be aggregated.\nLink aliases can be used here as well.", + "x-intellij-html-description": "\u003cp\u003eNames of the links (interfaces) to be aggregated.\nLink aliases can be used here as well.\u003c/p\u003e\n" + }, + "stp": { + "$ref": "#/$defs/network.BridgeSTPConfig", + "title": "stp", + "description": "Bridge STP (Spanning Tree Protocol) configuration.\n", + "markdownDescription": "Bridge STP (Spanning Tree Protocol) configuration.", + "x-intellij-html-description": "\u003cp\u003eBridge STP (Spanning Tree Protocol) configuration.\u003c/p\u003e\n" + }, + "vlan": { + "$ref": "#/$defs/network.BridgeVLANConfig", + "title": "vlan", + "description": "Bridge VLAN configuration.\n", + "markdownDescription": "Bridge VLAN configuration.", + "x-intellij-html-description": "\u003cp\u003eBridge VLAN configuration.\u003c/p\u003e\n" + }, + "up": { + "type": "boolean", + "title": "up", + "description": "Bring the link up or down.\n\nIf not specified, the link will be brought up.\n", + "markdownDescription": "Bring the link up or down.\n\nIf not specified, the link will be brought up.", + "x-intellij-html-description": "\u003cp\u003eBring the link up or down.\u003c/p\u003e\n\n\u003cp\u003eIf not specified, the link will be brought up.\u003c/p\u003e\n" + }, + "mtu": { + "type": "integer", + "title": "mtu", + "description": "Configure LinkMTU (Maximum Transmission Unit) for the link.\n\nIf not specified, the system default LinkMTU will be used (usually 1500).\n", + "markdownDescription": "Configure LinkMTU (Maximum Transmission Unit) for the link.\n\nIf not specified, the system default LinkMTU will be used (usually 1500).", + "x-intellij-html-description": "\u003cp\u003eConfigure LinkMTU (Maximum Transmission Unit) for the link.\u003c/p\u003e\n\n\u003cp\u003eIf not specified, the system default LinkMTU will be used (usually 1500).\u003c/p\u003e\n" + }, + "addresses": { + "items": { + "$ref": "#/$defs/network.AddressConfig" + }, + "type": "array", + "title": "addresses", + "description": "Configure addresses to be statically assigned to the link.\n", + "markdownDescription": "Configure addresses to be statically assigned to the link.", + "x-intellij-html-description": "\u003cp\u003eConfigure addresses to be statically assigned to the link.\u003c/p\u003e\n" + }, + "routes": { + "items": { + "$ref": "#/$defs/network.RouteConfig" + }, + "type": "array", + "title": "routes", + "description": "Configure routes to be statically created via the link.\n", + "markdownDescription": "Configure routes to be statically created via the link.", + "x-intellij-html-description": "\u003cp\u003eConfigure routes to be statically created via the link.\u003c/p\u003e\n" + }, + "multicast": { + "type": "boolean", + "title": "multicast", + "description": "Set the multicast capability of the link.\n", + "markdownDescription": "Set the multicast capability of the link.", + "x-intellij-html-description": "\u003cp\u003eSet the multicast capability of the link.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "links", + "name" + ], + "description": "BridgeConfig is a config document to create a Bridge (link aggregation) over a set of links." + }, + "network.BridgeSTPConfig": { + "properties": { + "enabled": { + "type": "boolean", + "title": "enabled", + "description": "Enable or disable STP on the bridge.\n", + "markdownDescription": "Enable or disable STP on the bridge.", + "x-intellij-html-description": "\u003cp\u003eEnable or disable STP on the bridge.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "BridgeSTPConfig is a bridge STP (Spanning Tree Protocol) configuration." + }, + "network.BridgeVLANConfig": { + "properties": { + "filtering": { + "type": "boolean", + "title": "filtering", + "description": "Enable or disable VLAN filtering on the bridge.\n", + "markdownDescription": "Enable or disable VLAN filtering on the bridge.", + "x-intellij-html-description": "\u003cp\u003eEnable or disable VLAN filtering on the bridge.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "BridgeVLANConfig is a bridge VLAN configuration." + }, + "network.CommonLinkConfig": { + "properties": { + "up": { + "type": "boolean", + "title": "up", + "description": "Bring the link up or down.\n\nIf not specified, the link will be brought up.\n", + "markdownDescription": "Bring the link up or down.\n\nIf not specified, the link will be brought up.", + "x-intellij-html-description": "\u003cp\u003eBring the link up or down.\u003c/p\u003e\n\n\u003cp\u003eIf not specified, the link will be brought up.\u003c/p\u003e\n" + }, + "mtu": { + "type": "integer", + "title": "mtu", + "description": "Configure LinkMTU (Maximum Transmission Unit) for the link.\n\nIf not specified, the system default LinkMTU will be used (usually 1500).\n", + "markdownDescription": "Configure LinkMTU (Maximum Transmission Unit) for the link.\n\nIf not specified, the system default LinkMTU will be used (usually 1500).", + "x-intellij-html-description": "\u003cp\u003eConfigure LinkMTU (Maximum Transmission Unit) for the link.\u003c/p\u003e\n\n\u003cp\u003eIf not specified, the system default LinkMTU will be used (usually 1500).\u003c/p\u003e\n" + }, + "addresses": { + "items": { + "$ref": "#/$defs/network.AddressConfig" + }, + "type": "array", + "title": "addresses", + "description": "Configure addresses to be statically assigned to the link.\n", + "markdownDescription": "Configure addresses to be statically assigned to the link.", + "x-intellij-html-description": "\u003cp\u003eConfigure addresses to be statically assigned to the link.\u003c/p\u003e\n" + }, + "routes": { + "items": { + "$ref": "#/$defs/network.RouteConfig" + }, + "type": "array", + "title": "routes", + "description": "Configure routes to be statically created via the link.\n", + "markdownDescription": "Configure routes to be statically created via the link.", + "x-intellij-html-description": "\u003cp\u003eConfigure routes to be statically created via the link.\u003c/p\u003e\n" + }, + "multicast": { + "type": "boolean", + "title": "multicast", + "description": "Set the multicast capability of the link.\n", + "markdownDescription": "Set the multicast capability of the link.", + "x-intellij-html-description": "\u003cp\u003eSet the multicast capability of the link.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "CommonLinkConfig is common configuration for network links, and logical links." + }, + "network.CommonProbeConfig": { + "properties": { + "interval": { + "type": "string", + "pattern": "^[-+]?(((\\d+(\\.\\d*)?|\\d*(\\.\\d+)+)([nuµm]?s|m|h))|0)+$", + "title": "interval", + "description": "Interval between probe attempts.\nDefaults to 1s.\n", + "markdownDescription": "Interval between probe attempts.\nDefaults to 1s.", + "x-intellij-html-description": "\u003cp\u003eInterval between probe attempts.\nDefaults to 1s.\u003c/p\u003e\n" + }, + "failureThreshold": { + "type": "integer", + "title": "failureThreshold", + "description": "Number of consecutive failures for the probe to be considered failed after having succeeded.\nDefaults to 0 (immediately fail on first failure).\n", + "markdownDescription": "Number of consecutive failures for the probe to be considered failed after having succeeded.\nDefaults to 0 (immediately fail on first failure).", + "x-intellij-html-description": "\u003cp\u003eNumber of consecutive failures for the probe to be considered failed after having succeeded.\nDefaults to 0 (immediately fail on first failure).\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "CommonProbeConfig holds fields common to all probe types." + }, + "network.DHCPv4ConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "DHCPv4Config" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Name of the link (interface).\n", + "markdownDescription": "Name of the link (interface).", + "x-intellij-html-description": "\u003cp\u003eName of the link (interface).\u003c/p\u003e\n" + }, + "routeMetric": { + "type": "integer", + "title": "routeMetric", + "description": "An optional metric for the routes received from the DHCP server.\n\nLower values indicate higher priority.\nDefault value is 1024.\n", + "markdownDescription": "An optional metric for the routes received from the DHCP server.\n\nLower values indicate higher priority.\nDefault value is 1024.", + "x-intellij-html-description": "\u003cp\u003eAn optional metric for the routes received from the DHCP server.\u003c/p\u003e\n\n\u003cp\u003eLower values indicate higher priority.\nDefault value is 1024.\u003c/p\u003e\n" + }, + "ignoreHostname": { + "type": "boolean", + "title": "ignoreHostname", + "description": "Ignore hostname received from the DHCP server.\n", + "markdownDescription": "Ignore hostname received from the DHCP server.", + "x-intellij-html-description": "\u003cp\u003eIgnore hostname received from the DHCP server.\u003c/p\u003e\n" + }, + "clientIdentifier": { + "enum": [ + "none", + "mac", + "duid" + ], + "title": "clientIdentifier", + "description": "Client identifier to use when communicating with DHCP servers.\n\nDefaults to ‘mac’ if not set.\n", + "markdownDescription": "Client identifier to use when communicating with DHCP servers.\n\nDefaults to 'mac' if not set.", + "x-intellij-html-description": "\u003cp\u003eClient identifier to use when communicating with DHCP servers.\u003c/p\u003e\n\n\u003cp\u003eDefaults to \u0026lsquo;mac\u0026rsquo; if not set.\u003c/p\u003e\n" + }, + "duidRaw": { + "type": "string", + "pattern": "^([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})+)$", + "title": "duidRaw", + "description": "Raw value of the DUID to use as client identifier.\n\nThis field is only used if ‘clientIdentifier’ is set to ‘duid’.\n", + "markdownDescription": "Raw value of the DUID to use as client identifier.\n\nThis field is only used if 'clientIdentifier' is set to 'duid'.", + "x-intellij-html-description": "\u003cp\u003eRaw value of the DUID to use as client identifier.\u003c/p\u003e\n\n\u003cp\u003eThis field is only used if \u0026lsquo;clientIdentifier\u0026rsquo; is set to \u0026lsquo;duid\u0026rsquo;.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "name" + ], + "description": "DHCPv4Config is a config document to configure DHCPv4 on a network link." + }, + "network.DHCPv6ConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "DHCPv6Config" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Name of the link (interface).\n", + "markdownDescription": "Name of the link (interface).", + "x-intellij-html-description": "\u003cp\u003eName of the link (interface).\u003c/p\u003e\n" + }, + "routeMetric": { + "type": "integer", + "title": "routeMetric", + "description": "An optional metric for the routes received from the DHCP server.\n\nLower values indicate higher priority.\nDefault value is 1024.\n", + "markdownDescription": "An optional metric for the routes received from the DHCP server.\n\nLower values indicate higher priority.\nDefault value is 1024.", + "x-intellij-html-description": "\u003cp\u003eAn optional metric for the routes received from the DHCP server.\u003c/p\u003e\n\n\u003cp\u003eLower values indicate higher priority.\nDefault value is 1024.\u003c/p\u003e\n" + }, + "ignoreHostname": { + "type": "boolean", + "title": "ignoreHostname", + "description": "Ignore hostname received from the DHCP server.\n", + "markdownDescription": "Ignore hostname received from the DHCP server.", + "x-intellij-html-description": "\u003cp\u003eIgnore hostname received from the DHCP server.\u003c/p\u003e\n" + }, + "clientIdentifier": { + "enum": [ + "none", + "mac", + "duid" + ], + "title": "clientIdentifier", + "description": "Client identifier to use when communicating with DHCP servers.\n\nDefaults to ‘mac’ if not set.\n", + "markdownDescription": "Client identifier to use when communicating with DHCP servers.\n\nDefaults to 'mac' if not set.", + "x-intellij-html-description": "\u003cp\u003eClient identifier to use when communicating with DHCP servers.\u003c/p\u003e\n\n\u003cp\u003eDefaults to \u0026lsquo;mac\u0026rsquo; if not set.\u003c/p\u003e\n" + }, + "duidRaw": { + "type": "string", + "pattern": "^([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})+)$", + "title": "duidRaw", + "description": "Raw value of the DUID to use as client identifier.\n\nThis field is only used if ‘clientIdentifier’ is set to ‘duid’.\n", + "markdownDescription": "Raw value of the DUID to use as client identifier.\n\nThis field is only used if 'clientIdentifier' is set to 'duid'.", + "x-intellij-html-description": "\u003cp\u003eRaw value of the DUID to use as client identifier.\u003c/p\u003e\n\n\u003cp\u003eThis field is only used if \u0026lsquo;clientIdentifier\u0026rsquo; is set to \u0026lsquo;duid\u0026rsquo;.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "name" + ], + "description": "DHCPv6Config is a config document to configure DHCPv6 on a network link." + }, + "network.DefaultActionConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "NetworkDefaultActionConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "ingress": { + "enum": [ + "accept", + "block" + ], + "title": "ingress", + "description": "Default action for all not explicitly configured ingress traffic: accept or block.\n", + "markdownDescription": "Default action for all not explicitly configured ingress traffic: accept or block.", + "x-intellij-html-description": "\u003cp\u003eDefault action for all not explicitly configured ingress traffic: accept or block.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind" + ], + "description": "NetworkDefaultActionConfig is a ingress firewall default action configuration document." + }, + "network.DummyLinkConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "DummyLinkConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Name of the dummy link (interface).\n", + "markdownDescription": "Name of the dummy link (interface).", + "x-intellij-html-description": "\u003cp\u003eName of the dummy link (interface).\u003c/p\u003e\n" + }, + "hardwareAddr": { + "type": "string", + "pattern": "^[0-9a-f:]+$", + "title": "hardwareAddr", + "description": "Override the hardware (MAC) address of the link.\n", + "markdownDescription": "Override the hardware (MAC) address of the link.", + "x-intellij-html-description": "\u003cp\u003eOverride the hardware (MAC) address of the link.\u003c/p\u003e\n" + }, + "up": { + "type": "boolean", + "title": "up", + "description": "Bring the link up or down.\n\nIf not specified, the link will be brought up.\n", + "markdownDescription": "Bring the link up or down.\n\nIf not specified, the link will be brought up.", + "x-intellij-html-description": "\u003cp\u003eBring the link up or down.\u003c/p\u003e\n\n\u003cp\u003eIf not specified, the link will be brought up.\u003c/p\u003e\n" + }, + "mtu": { + "type": "integer", + "title": "mtu", + "description": "Configure LinkMTU (Maximum Transmission Unit) for the link.\n\nIf not specified, the system default LinkMTU will be used (usually 1500).\n", + "markdownDescription": "Configure LinkMTU (Maximum Transmission Unit) for the link.\n\nIf not specified, the system default LinkMTU will be used (usually 1500).", + "x-intellij-html-description": "\u003cp\u003eConfigure LinkMTU (Maximum Transmission Unit) for the link.\u003c/p\u003e\n\n\u003cp\u003eIf not specified, the system default LinkMTU will be used (usually 1500).\u003c/p\u003e\n" + }, + "addresses": { + "items": { + "$ref": "#/$defs/network.AddressConfig" + }, + "type": "array", + "title": "addresses", + "description": "Configure addresses to be statically assigned to the link.\n", + "markdownDescription": "Configure addresses to be statically assigned to the link.", + "x-intellij-html-description": "\u003cp\u003eConfigure addresses to be statically assigned to the link.\u003c/p\u003e\n" + }, + "routes": { + "items": { + "$ref": "#/$defs/network.RouteConfig" + }, + "type": "array", + "title": "routes", + "description": "Configure routes to be statically created via the link.\n", + "markdownDescription": "Configure routes to be statically created via the link.", + "x-intellij-html-description": "\u003cp\u003eConfigure routes to be statically created via the link.\u003c/p\u003e\n" + }, + "multicast": { + "type": "boolean", + "title": "multicast", + "description": "Set the multicast capability of the link.\n", + "markdownDescription": "Set the multicast capability of the link.", + "x-intellij-html-description": "\u003cp\u003eSet the multicast capability of the link.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "name" + ], + "description": "DummyLinkConfig is a config document to create a dummy (virtual) network link." + }, + "network.EthernetChannelsConfig": { + "properties": { + "rx": { + "type": "integer", + "title": "rx", + "description": "Number of RX channels.\n", + "markdownDescription": "Number of RX channels.", + "x-intellij-html-description": "\u003cp\u003eNumber of RX channels.\u003c/p\u003e\n" + }, + "tx": { + "type": "integer", + "title": "tx", + "description": "Number of TX channels.\n", + "markdownDescription": "Number of TX channels.", + "x-intellij-html-description": "\u003cp\u003eNumber of TX channels.\u003c/p\u003e\n" + }, + "other": { + "type": "integer", + "title": "other", + "description": "Number of other channels.\n", + "markdownDescription": "Number of other channels.", + "x-intellij-html-description": "\u003cp\u003eNumber of other channels.\u003c/p\u003e\n" + }, + "combined": { + "type": "integer", + "title": "combined", + "description": "Number of combined channels.\n", + "markdownDescription": "Number of combined channels.", + "x-intellij-html-description": "\u003cp\u003eNumber of combined channels.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "EthernetChannelsConfig is a configuration for Ethernet link channels." + }, + "network.EthernetConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "EthernetConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Name of the link (interface).\n", + "markdownDescription": "Name of the link (interface).", + "x-intellij-html-description": "\u003cp\u003eName of the link (interface).\u003c/p\u003e\n" + }, + "features": { + "patternProperties": { + ".*": { + "type": "boolean" + } + }, + "type": "object", + "title": "features", + "description": "Configuration for Ethernet features.\n\nSet of features available and whether they can be enabled or disabled is driver specific.\nUse talosctl get ethernetstatus \u0026lt;link\u0026gt; -o yaml to get the list of available features and\ntheir current status.\n", + "markdownDescription": "Configuration for Ethernet features.\n\nSet of features available and whether they can be enabled or disabled is driver specific.\nUse `talosctl get ethernetstatus \u003clink\u003e -o yaml` to get the list of available features and\ntheir current status.", + "x-intellij-html-description": "\u003cp\u003eConfiguration for Ethernet features.\u003c/p\u003e\n\n\u003cp\u003eSet of features available and whether they can be enabled or disabled is driver specific.\nUse \u003ccode\u003etalosctl get ethernetstatus \u0026lt;link\u0026gt; -o yaml\u003c/code\u003e to get the list of available features and\ntheir current status.\u003c/p\u003e\n" + }, + "rings": { + "$ref": "#/$defs/network.EthernetRingsConfig", + "title": "rings", + "description": "Configuration for Ethernet link rings.\n\nThis is similar to ethtool -G command.\n", + "markdownDescription": "Configuration for Ethernet link rings.\n\nThis is similar to `ethtool -G` command.", + "x-intellij-html-description": "\u003cp\u003eConfiguration for Ethernet link rings.\u003c/p\u003e\n\n\u003cp\u003eThis is similar to \u003ccode\u003eethtool -G\u003c/code\u003e command.\u003c/p\u003e\n" + }, + "channels": { + "$ref": "#/$defs/network.EthernetChannelsConfig", + "title": "channels", + "description": "Configuration for Ethernet link channels.\n\nThis is similar to ethtool -L command.\n", + "markdownDescription": "Configuration for Ethernet link channels.\n\nThis is similar to `ethtool -L` command.", + "x-intellij-html-description": "\u003cp\u003eConfiguration for Ethernet link channels.\u003c/p\u003e\n\n\u003cp\u003eThis is similar to \u003ccode\u003eethtool -L\u003c/code\u003e command.\u003c/p\u003e\n" + }, + "wakeOnLan": { + "items": { + "type": "string" + }, + "type": "array", + "title": "wakeOnLan", + "description": "Wake-on-LAN modes to enable.\n\nIf this field is omitted, Wake-on-LAN configuration is not changed.\nAn empty list disables Wake-on-LAN.\n\nThis is similar to ethtool -s \u0026lt;link\u0026gt; wol \u0026lt;options\u0026gt; command.\n", + "markdownDescription": "Wake-on-LAN modes to enable.\n\nIf this field is omitted, Wake-on-LAN configuration is not changed.\nAn empty list disables Wake-on-LAN.\n\nThis is similar to `ethtool -s \u003clink\u003e wol \u003coptions\u003e` command.", + "x-intellij-html-description": "\u003cp\u003eWake-on-LAN modes to enable.\u003c/p\u003e\n\n\u003cp\u003eIf this field is omitted, Wake-on-LAN configuration is not changed.\nAn empty list disables Wake-on-LAN.\u003c/p\u003e\n\n\u003cp\u003eThis is similar to \u003ccode\u003eethtool -s \u0026lt;link\u0026gt; wol \u0026lt;options\u0026gt;\u003c/code\u003e command.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "name" + ], + "description": "EthernetConfig is a config document to configure Ethernet interfaces." + }, + "network.EthernetRingsConfig": { + "properties": { + "rx": { + "type": "integer", + "title": "rx", + "description": "Number of RX rings.\n", + "markdownDescription": "Number of RX rings.", + "x-intellij-html-description": "\u003cp\u003eNumber of RX rings.\u003c/p\u003e\n" + }, + "tx": { + "type": "integer", + "title": "tx", + "description": "Number of TX rings.\n", + "markdownDescription": "Number of TX rings.", + "x-intellij-html-description": "\u003cp\u003eNumber of TX rings.\u003c/p\u003e\n" + }, + "rx-mini": { + "type": "integer", + "title": "rx-mini", + "description": "Number of RX mini rings.\n", + "markdownDescription": "Number of RX mini rings.", + "x-intellij-html-description": "\u003cp\u003eNumber of RX mini rings.\u003c/p\u003e\n" + }, + "rx-jumbo": { + "type": "integer", + "title": "rx-jumbo", + "description": "Number of RX jumbo rings.\n", + "markdownDescription": "Number of RX jumbo rings.", + "x-intellij-html-description": "\u003cp\u003eNumber of RX jumbo rings.\u003c/p\u003e\n" + }, + "rx-buf-len": { + "type": "integer", + "title": "rx-buf-len", + "description": "RX buffer length.\n", + "markdownDescription": "RX buffer length.", + "x-intellij-html-description": "\u003cp\u003eRX buffer length.\u003c/p\u003e\n" + }, + "cqe-size": { + "type": "integer", + "title": "cqe-size", + "description": "CQE size.\n", + "markdownDescription": "CQE size.", + "x-intellij-html-description": "\u003cp\u003eCQE size.\u003c/p\u003e\n" + }, + "tx-push": { + "type": "boolean", + "title": "tx-push", + "description": "TX push enabled.\n", + "markdownDescription": "TX push enabled.", + "x-intellij-html-description": "\u003cp\u003eTX push enabled.\u003c/p\u003e\n" + }, + "rx-push": { + "type": "boolean", + "title": "rx-push", + "description": "RX push enabled.\n", + "markdownDescription": "RX push enabled.", + "x-intellij-html-description": "\u003cp\u003eRX push enabled.\u003c/p\u003e\n" + }, + "tx-push-buf-len": { + "type": "integer", + "title": "tx-push-buf-len", + "description": "TX push buffer length.\n", + "markdownDescription": "TX push buffer length.", + "x-intellij-html-description": "\u003cp\u003eTX push buffer length.\u003c/p\u003e\n" + }, + "tcp-data-split": { + "type": "boolean", + "title": "tcp-data-split", + "description": "TCP data split enabled.\n", + "markdownDescription": "TCP data split enabled.", + "x-intellij-html-description": "\u003cp\u003eTCP data split enabled.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "EthernetRingsConfig is a configuration for Ethernet link rings." + }, + "network.HCloudVIPConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "HCloudVIPConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "IP address to be advertised as a Layer 2 VIP.\n", + "markdownDescription": "IP address to be advertised as a Layer 2 VIP.", + "x-intellij-html-description": "\u003cp\u003eIP address to be advertised as a Layer 2 VIP.\u003c/p\u003e\n" + }, + "link": { + "type": "string", + "title": "link", + "description": "Name of the link to assign the VIP to.\n\nSelector must match exactly one link, otherwise an error is returned.\nIf multiple selectors match the same link, the first one is used.\n", + "markdownDescription": "Name of the link to assign the VIP to.\n\nSelector must match exactly one link, otherwise an error is returned.\nIf multiple selectors match the same link, the first one is used.", + "x-intellij-html-description": "\u003cp\u003eName of the link to assign the VIP to.\u003c/p\u003e\n\n\u003cp\u003eSelector must match exactly one link, otherwise an error is returned.\nIf multiple selectors match the same link, the first one is used.\u003c/p\u003e\n" + }, + "apiToken": { + "type": "string", + "title": "apiToken", + "description": "Specifies the Hetzner Cloud API Token.\n", + "markdownDescription": "Specifies the Hetzner Cloud API Token.", + "x-intellij-html-description": "\u003cp\u003eSpecifies the Hetzner Cloud API Token.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "name" + ], + "description": "HCloudVIPConfig is a config document to configure virtual IP using Hetzner Cloud APIs for announcement.\\nVirtual IP configuration should be used only on controlplane nodes to provide virtual IP for Kubernetes API server.\\nAny other use cases are not supported and may lead to unexpected behavior.\\nVirtual IP will be announced from only one node at a time using Hetzner Cloud APIs.\\n" + }, + "network.HostnameConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "HostnameConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "auto": { + "enum": [ + "stable", + "off" + ], + "title": "auto", + "description": "A method to automatically generate a hostname for the machine.\n\nThere are two methods available:\n - stable - generates a stable hostname based on machine identity\n - off - disables automatic hostname generation, Talos will wait for an external source to provide a hostname (DHCP, cloud-init, etc).\n\nAutomatic hostnames have the lowest priority over any other hostname sources: DHCP, cloud-init, etc.\nConflicts with hostname field.\n", + "markdownDescription": "A method to automatically generate a hostname for the machine.\n\nThere are two methods available:\n - `stable` - generates a stable hostname based on machine identity\n - `off` - disables automatic hostname generation, Talos will wait for an external source to provide a hostname (DHCP, cloud-init, etc).\n\nAutomatic hostnames have the lowest priority over any other hostname sources: DHCP, cloud-init, etc.\nConflicts with `hostname` field.", + "x-intellij-html-description": "\u003cp\u003eA method to automatically generate a hostname for the machine.\u003c/p\u003e\n\n\u003cp\u003eThere are two methods available:\n - \u003ccode\u003estable\u003c/code\u003e - generates a stable hostname based on machine identity\n - \u003ccode\u003eoff\u003c/code\u003e - disables automatic hostname generation, Talos will wait for an external source to provide a hostname (DHCP, cloud-init, etc).\u003c/p\u003e\n\n\u003cp\u003eAutomatic hostnames have the lowest priority over any other hostname sources: DHCP, cloud-init, etc.\nConflicts with \u003ccode\u003ehostname\u003c/code\u003e field.\u003c/p\u003e\n" + }, + "hostname": { + "type": "string", + "title": "hostname", + "description": "A static hostname to set for the machine.\n\nThis hostname has the highest priority over any other hostname sources: DHCP, cloud-init, etc.\nConflicts with auto field.\n", + "markdownDescription": "A static hostname to set for the machine.\n\nThis hostname has the highest priority over any other hostname sources: DHCP, cloud-init, etc.\nConflicts with `auto` field.", + "x-intellij-html-description": "\u003cp\u003eA static hostname to set for the machine.\u003c/p\u003e\n\n\u003cp\u003eThis hostname has the highest priority over any other hostname sources: DHCP, cloud-init, etc.\nConflicts with \u003ccode\u003eauto\u003c/code\u003e field.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind" + ], + "description": "HostnameConfig is a config document to configure the hostname: either a static hostname or an automatically generated hostname." + }, + "network.IngressRule": { + "properties": { + "subnet": { + "type": "string", + "pattern": "^[0-9a-f.:]+/\\d{1,3}$", + "title": "subnet", + "description": "Subnet defines a source subnet.\n", + "markdownDescription": "Subnet defines a source subnet.", + "x-intellij-html-description": "\u003cp\u003eSubnet defines a source subnet.\u003c/p\u003e\n" + }, + "except": { + "type": "string", + "pattern": "^[0-9a-f.:]+/\\d{1,3}$", + "title": "except", + "description": "Except defines a source subnet to exclude from the rule, it gets excluded from the subnet.\n", + "markdownDescription": "Except defines a source subnet to exclude from the rule, it gets excluded from the `subnet`.", + "x-intellij-html-description": "\u003cp\u003eExcept defines a source subnet to exclude from the rule, it gets excluded from the \u003ccode\u003esubnet\u003c/code\u003e.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "IngressRule is a ingress rule." + }, + "network.KubeSpanConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "KubeSpanConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "enabled": { + "type": "boolean", + "title": "enabled", + "description": "Enable the KubeSpan feature.\nCluster discovery should be enabled with cluster.discovery.enabled for KubeSpan to be enabled.\n", + "markdownDescription": "Enable the KubeSpan feature.\nCluster discovery should be enabled with cluster.discovery.enabled for KubeSpan to be enabled.", + "x-intellij-html-description": "\u003cp\u003eEnable the KubeSpan feature.\nCluster discovery should be enabled with cluster.discovery.enabled for KubeSpan to be enabled.\u003c/p\u003e\n" + }, + "advertiseKubernetesNetworks": { + "type": "boolean", + "title": "advertiseKubernetesNetworks", + "description": "Control whether Kubernetes pod CIDRs are announced over KubeSpan from the node.\nIf disabled, CNI handles pod-to-pod traffic encapsulation.\nIf enabled, KubeSpan takes over pod-to-pod traffic directly.\n", + "markdownDescription": "Control whether Kubernetes pod CIDRs are announced over KubeSpan from the node.\nIf disabled, CNI handles pod-to-pod traffic encapsulation.\nIf enabled, KubeSpan takes over pod-to-pod traffic directly.", + "x-intellij-html-description": "\u003cp\u003eControl whether Kubernetes pod CIDRs are announced over KubeSpan from the node.\nIf disabled, CNI handles pod-to-pod traffic encapsulation.\nIf enabled, KubeSpan takes over pod-to-pod traffic directly.\u003c/p\u003e\n" + }, + "allowDownPeerBypass": { + "type": "boolean", + "title": "allowDownPeerBypass", + "description": "Skip sending traffic via KubeSpan if the peer connection state is not up.\nThis provides configurable choice between connectivity and security.\n", + "markdownDescription": "Skip sending traffic via KubeSpan if the peer connection state is not up.\nThis provides configurable choice between connectivity and security.", + "x-intellij-html-description": "\u003cp\u003eSkip sending traffic via KubeSpan if the peer connection state is not up.\nThis provides configurable choice between connectivity and security.\u003c/p\u003e\n" + }, + "harvestExtraEndpoints": { + "type": "boolean", + "title": "harvestExtraEndpoints", + "description": "KubeSpan can collect and publish extra endpoints for each member of the cluster\nbased on Wireguard endpoint information for each peer.\nDisabled by default. Do not enable with high peer counts (\u0026gt;50).\n", + "markdownDescription": "KubeSpan can collect and publish extra endpoints for each member of the cluster\nbased on Wireguard endpoint information for each peer.\nDisabled by default. Do not enable with high peer counts (\u003e50).", + "x-intellij-html-description": "\u003cp\u003eKubeSpan can collect and publish extra endpoints for each member of the cluster\nbased on Wireguard endpoint information for each peer.\nDisabled by default. Do not enable with high peer counts (\u0026gt;50).\u003c/p\u003e\n" + }, + "mtu": { + "type": "integer", + "title": "mtu", + "description": "KubeSpan link MTU size.\nDefault value is 1420.\n", + "markdownDescription": "KubeSpan link MTU size.\nDefault value is 1420.", + "x-intellij-html-description": "\u003cp\u003eKubeSpan link MTU size.\nDefault value is 1420.\u003c/p\u003e\n" + }, + "filters": { + "$ref": "#/$defs/network.KubeSpanFiltersConfig", + "title": "filters", + "description": "KubeSpan advanced filtering of network addresses.\nSettings are optional and apply only to this node.\n", + "markdownDescription": "KubeSpan advanced filtering of network addresses.\nSettings are optional and apply only to this node.", + "x-intellij-html-description": "\u003cp\u003eKubeSpan advanced filtering of network addresses.\nSettings are optional and apply only to this node.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind" + ], + "description": "KubeSpanConfig is a config document to configure KubeSpan." + }, + "network.KubeSpanFiltersConfig": { + "properties": { + "endpoints": { + "items": { + "type": "string" + }, + "type": "array", + "title": "endpoints", + "description": "Filter node addresses which will be advertised as KubeSpan endpoints for peer-to-peer Wireguard connections.\n\nBy default, all addresses are advertised, and KubeSpan cycles through all endpoints until it finds one that works.\n\nDefault value: no filtering.\n", + "markdownDescription": "Filter node addresses which will be advertised as KubeSpan endpoints for peer-to-peer Wireguard connections.\n\nBy default, all addresses are advertised, and KubeSpan cycles through all endpoints until it finds one that works.\n\nDefault value: no filtering.", + "x-intellij-html-description": "\u003cp\u003eFilter node addresses which will be advertised as KubeSpan endpoints for peer-to-peer Wireguard connections.\u003c/p\u003e\n\n\u003cp\u003eBy default, all addresses are advertised, and KubeSpan cycles through all endpoints until it finds one that works.\u003c/p\u003e\n\n\u003cp\u003eDefault value: no filtering.\u003c/p\u003e\n" + }, + "excludeAdvertisedNetworks": { + "items": { + "type": "string", + "pattern": "^[0-9a-f.:]+/\\d{1,3}$" + }, + "type": "array", + "title": "excludeAdvertisedNetworks", + "description": "Filter networks (e.g., host addresses, pod CIDRs if enabled) which will be advertised over KubeSpan.\n\nBy default, all networks are advertised.\nUse this filter to exclude some networks from being advertised.\n\nNote: excluded networks will not be reachable over KubeSpan, so make sure\nthese networks are still reachable via some other route (e.g., direct connection).\n\nDefault value: no filtering.\n", + "markdownDescription": "Filter networks (e.g., host addresses, pod CIDRs if enabled) which will be advertised over KubeSpan.\n\nBy default, all networks are advertised.\nUse this filter to exclude some networks from being advertised.\n\nNote: excluded networks will not be reachable over KubeSpan, so make sure\nthese networks are still reachable via some other route (e.g., direct connection).\n\nDefault value: no filtering.", + "x-intellij-html-description": "\u003cp\u003eFilter networks (e.g., host addresses, pod CIDRs if enabled) which will be advertised over KubeSpan.\u003c/p\u003e\n\n\u003cp\u003eBy default, all networks are advertised.\nUse this filter to exclude some networks from being advertised.\u003c/p\u003e\n\n\u003cp\u003eNote: excluded networks will not be reachable over KubeSpan, so make sure\nthese networks are still reachable via some other route (e.g., direct connection).\u003c/p\u003e\n\n\u003cp\u003eDefault value: no filtering.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "KubeSpanFiltersConfig configures KubeSpan endpoint filters." + }, + "network.KubespanEndpointsConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "KubeSpanEndpoints" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "extraAnnouncedEndpoints": { + "items": { + "type": "string" + }, + "type": "array", + "title": "extraAnnouncedEndpoints", + "description": "A list of extra Wireguard endpoints to announce from this machine.\n\nTalos automatically adds endpoints based on machine addresses, public IP, etc.\nThis field allows to add extra endpoints which are managed outside of Talos, e.g. NAT mapping.\n", + "markdownDescription": "A list of extra Wireguard endpoints to announce from this machine.\n\nTalos automatically adds endpoints based on machine addresses, public IP, etc.\nThis field allows to add extra endpoints which are managed outside of Talos, e.g. NAT mapping.", + "x-intellij-html-description": "\u003cp\u003eA list of extra Wireguard endpoints to announce from this machine.\u003c/p\u003e\n\n\u003cp\u003eTalos automatically adds endpoints based on machine addresses, public IP, etc.\nThis field allows to add extra endpoints which are managed outside of Talos, e.g. NAT mapping.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind" + ], + "description": "KubeSpanEndpointsConfig is a config document to configure KubeSpan endpoints." + }, + "network.Layer2VIPConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "Layer2VIPConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "IP address to be advertised as a Layer 2 VIP.\n", + "markdownDescription": "IP address to be advertised as a Layer 2 VIP.", + "x-intellij-html-description": "\u003cp\u003eIP address to be advertised as a Layer 2 VIP.\u003c/p\u003e\n" + }, + "link": { + "type": "string", + "title": "link", + "description": "Name of the link to assign the VIP to.\n\nSelector must match exactly one link, otherwise an error is returned.\nIf multiple selectors match the same link, the first one is used.\n", + "markdownDescription": "Name of the link to assign the VIP to.\n\nSelector must match exactly one link, otherwise an error is returned.\nIf multiple selectors match the same link, the first one is used.", + "x-intellij-html-description": "\u003cp\u003eName of the link to assign the VIP to.\u003c/p\u003e\n\n\u003cp\u003eSelector must match exactly one link, otherwise an error is returned.\nIf multiple selectors match the same link, the first one is used.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "name" + ], + "description": "Layer2VIPConfig is a config document to configure virtual IP using Layer 2 (Ethernet) advertisement.\\nVirtual IP configuration should be used only on controlplane nodes to provide virtual IP for Kubernetes API server.\\nAny other use cases are not supported and may lead to unexpected behavior.\\nVirtual IP will be announced from only one node at a time using gratuitous ARP announcements for IPv4.\\n" + }, + "network.LinkAliasConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "LinkAliasConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Alias for the link.\n\nDon’t use system interface names like “eth0”, “ens3”, “enp0s2”, etc. as those may conflict\nwith existing physical interfaces.\n\nThe name can contain a single integer format verb (%d) to create multiple aliases\nfrom a single config document. When a format verb is detected, each matched link receives a sequential\nalias (e.g. net0, net1, …) based on hardware address order of the links.\nLinks already aliased by a previous config are automatically skipped.\n", + "markdownDescription": "Alias for the link.\n\nDon't use system interface names like \"eth0\", \"ens3\", \"enp0s2\", etc. as those may conflict\nwith existing physical interfaces.\n\nThe name can contain a single integer format verb (`%d`) to create multiple aliases\nfrom a single config document. When a format verb is detected, each matched link receives a sequential\nalias (e.g. `net0`, `net1`, ...) based on hardware address order of the links.\nLinks already aliased by a previous config are automatically skipped.", + "x-intellij-html-description": "\u003cp\u003eAlias for the link.\u003c/p\u003e\n\n\u003cp\u003eDon\u0026rsquo;t use system interface names like \u0026ldquo;eth0\u0026rdquo;, \u0026ldquo;ens3\u0026rdquo;, \u0026ldquo;enp0s2\u0026rdquo;, etc. as those may conflict\nwith existing physical interfaces.\u003c/p\u003e\n\n\u003cp\u003eThe name can contain a single integer format verb (\u003ccode\u003e%d\u003c/code\u003e) to create multiple aliases\nfrom a single config document. When a format verb is detected, each matched link receives a sequential\nalias (e.g. \u003ccode\u003enet0\u003c/code\u003e, \u003ccode\u003enet1\u003c/code\u003e, \u0026hellip;) based on hardware address order of the links.\nLinks already aliased by a previous config are automatically skipped.\u003c/p\u003e\n" + }, + "selector": { + "$ref": "#/$defs/network.LinkSelector", + "title": "selector", + "description": "Selector to match the link to alias.\n\nWhen the alias name is a fixed string, the selector must match exactly one link.\nWhen the alias name contains a format verb (e.g. net%d), the selector may match multiple links\nand each match receives a sequential alias.\nIf multiple selectors match the same link, the first one is used.\n", + "markdownDescription": "Selector to match the link to alias.\n\nWhen the alias name is a fixed string, the selector must match exactly one link.\nWhen the alias name contains a format verb (e.g. `net%d`), the selector may match multiple links\nand each match receives a sequential alias.\nIf multiple selectors match the same link, the first one is used.", + "x-intellij-html-description": "\u003cp\u003eSelector to match the link to alias.\u003c/p\u003e\n\n\u003cp\u003eWhen the alias name is a fixed string, the selector must match exactly one link.\nWhen the alias name contains a format verb (e.g. \u003ccode\u003enet%d\u003c/code\u003e), the selector may match multiple links\nand each match receives a sequential alias.\nIf multiple selectors match the same link, the first one is used.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "name" + ], + "description": "LinkAliasConfig is a config document to alias (give a different name) to a physical link." + }, + "network.LinkConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "LinkConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Name of the link (interface).\n", + "markdownDescription": "Name of the link (interface).", + "x-intellij-html-description": "\u003cp\u003eName of the link (interface).\u003c/p\u003e\n" + }, + "up": { + "type": "boolean", + "title": "up", + "description": "Bring the link up or down.\n\nIf not specified, the link will be brought up.\n", + "markdownDescription": "Bring the link up or down.\n\nIf not specified, the link will be brought up.", + "x-intellij-html-description": "\u003cp\u003eBring the link up or down.\u003c/p\u003e\n\n\u003cp\u003eIf not specified, the link will be brought up.\u003c/p\u003e\n" + }, + "mtu": { + "type": "integer", + "title": "mtu", + "description": "Configure LinkMTU (Maximum Transmission Unit) for the link.\n\nIf not specified, the system default LinkMTU will be used (usually 1500).\n", + "markdownDescription": "Configure LinkMTU (Maximum Transmission Unit) for the link.\n\nIf not specified, the system default LinkMTU will be used (usually 1500).", + "x-intellij-html-description": "\u003cp\u003eConfigure LinkMTU (Maximum Transmission Unit) for the link.\u003c/p\u003e\n\n\u003cp\u003eIf not specified, the system default LinkMTU will be used (usually 1500).\u003c/p\u003e\n" + }, + "addresses": { + "items": { + "$ref": "#/$defs/network.AddressConfig" + }, + "type": "array", + "title": "addresses", + "description": "Configure addresses to be statically assigned to the link.\n", + "markdownDescription": "Configure addresses to be statically assigned to the link.", + "x-intellij-html-description": "\u003cp\u003eConfigure addresses to be statically assigned to the link.\u003c/p\u003e\n" + }, + "routes": { + "items": { + "$ref": "#/$defs/network.RouteConfig" + }, + "type": "array", + "title": "routes", + "description": "Configure routes to be statically created via the link.\n", + "markdownDescription": "Configure routes to be statically created via the link.", + "x-intellij-html-description": "\u003cp\u003eConfigure routes to be statically created via the link.\u003c/p\u003e\n" + }, + "multicast": { + "type": "boolean", + "title": "multicast", + "description": "Set the multicast capability of the link.\n", + "markdownDescription": "Set the multicast capability of the link.", + "x-intellij-html-description": "\u003cp\u003eSet the multicast capability of the link.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "name" + ], + "description": "LinkConfig is a config document to configure physical interfaces (network links)." + }, + "network.LinkSelector": { + "properties": { + "match": { + "type": "string", + "title": "match", + "description": "The Common Expression Language (CEL) expression to match the link.\n", + "markdownDescription": "The Common Expression Language (CEL) expression to match the link.", + "x-intellij-html-description": "\u003cp\u003eThe Common Expression Language (CEL) expression to match the link.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "LinkSelector selects a link to alias." + }, + "network.NTPConfig": { + "properties": { + "servers": { + "items": { + "type": "string" + }, + "type": "array", + "title": "servers", + "description": "Specifies time (NTP) servers to use for setting the system time.\nDefaults to time.cloudflare.com.\n", + "markdownDescription": "Specifies time (NTP) servers to use for setting the system time.\nDefaults to `time.cloudflare.com`.", + "x-intellij-html-description": "\u003cp\u003eSpecifies time (NTP) servers to use for setting the system time.\nDefaults to \u003ccode\u003etime.cloudflare.com\u003c/code\u003e.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "NTPConfig represents a NTP server configuration." + }, + "network.NameserverConfig": { + "properties": { + "address": { + "type": "string", + "pattern": "^[0-9a-f.:]+$", + "title": "address", + "description": "The IP address of the nameserver.\n", + "markdownDescription": "The IP address of the nameserver.", + "x-intellij-html-description": "\u003cp\u003eThe IP address of the nameserver.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "NameserverConfig represents a single nameserver configuration." + }, + "network.PTPConfig": { + "properties": { + "devices": { + "items": { + "type": "string" + }, + "type": "array", + "title": "devices", + "description": "description: |\n A list of PTP devices to sync with (e.g. provided by the hypervisor).\n\nA PTP device is typically represented as a character device file in the /dev directory,\n\n\nsuch as /dev/ptp0 or /dev/ptp_kvm. These devices are used to synchronize the system time\n with an external time source that supports the Precision Time Protocol.\n", + "markdownDescription": "description: |\n A list of PTP devices to sync with (e.g. provided by the hypervisor).\n\n A PTP device is typically represented as a character device file in the /dev directory,\n such as /dev/ptp0 or /dev/ptp_kvm. These devices are used to synchronize the system time\n with an external time source that supports the Precision Time Protocol.", + "x-intellij-html-description": "\u003cp\u003edescription: |\n A list of PTP devices to sync with (e.g. provided by the hypervisor).\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003eA PTP device is typically represented as a character device file in the /dev directory,\n\u003c/code\u003e\u003c/pre\u003e\n\n\u003cp\u003esuch as /dev/ptp0 or /dev/ptp_kvm. These devices are used to synchronize the system time\n with an external time source that supports the Precision Time Protocol.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "PTPConfig represents a PTP (Precision Time Protocol) configuration." + }, + "network.ResolverConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "ResolverConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "nameservers": { + "items": { + "$ref": "#/$defs/network.NameserverConfig" + }, + "type": "array", + "title": "nameservers", + "description": "A list of nameservers (DNS servers) to use for resolving domain names.\n\nNameservers are used to resolve domain names on the host, and they are also\npropagated to Kubernetes DNS (CoreDNS) for use by pods running on the cluster.\n\nThis overrides any nameservers obtained via DHCP or platform configuration.\nDefault configuration is to use 1.1.1.1 and 8.8.8.8 as nameservers.\n", + "markdownDescription": "A list of nameservers (DNS servers) to use for resolving domain names.\n\nNameservers are used to resolve domain names on the host, and they are also\npropagated to Kubernetes DNS (CoreDNS) for use by pods running on the cluster.\n\nThis overrides any nameservers obtained via DHCP or platform configuration.\nDefault configuration is to use 1.1.1.1 and 8.8.8.8 as nameservers.", + "x-intellij-html-description": "\u003cp\u003eA list of nameservers (DNS servers) to use for resolving domain names.\u003c/p\u003e\n\n\u003cp\u003eNameservers are used to resolve domain names on the host, and they are also\npropagated to Kubernetes DNS (CoreDNS) for use by pods running on the cluster.\u003c/p\u003e\n\n\u003cp\u003eThis overrides any nameservers obtained via DHCP or platform configuration.\nDefault configuration is to use 1.1.1.1 and 8.8.8.8 as nameservers.\u003c/p\u003e\n" + }, + "searchDomains": { + "$ref": "#/$defs/network.SearchDomainsConfig", + "title": "searchDomains", + "description": "Configuration for search domains (in /etc/resolv.conf).\n\nThe default is to derive search domains from the hostname FQDN.\n", + "markdownDescription": "Configuration for search domains (in /etc/resolv.conf).\n\nThe default is to derive search domains from the hostname FQDN.", + "x-intellij-html-description": "\u003cp\u003eConfiguration for search domains (in /etc/resolv.conf).\u003c/p\u003e\n\n\u003cp\u003eThe default is to derive search domains from the hostname FQDN.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind" + ], + "description": "ResolverConfig is a config document to configure DNS resolving." + }, + "network.RouteConfig": { + "properties": { + "destination": { + "type": "string", + "pattern": "^[0-9a-f.:]+/\\d{1,3}$", + "title": "destination", + "description": "The route’s destination as an address prefix.\n\nIf not specified, a default route will be created for the address family of the gateway.\n", + "markdownDescription": "The route's destination as an address prefix.\n\nIf not specified, a default route will be created for the address family of the gateway.", + "x-intellij-html-description": "\u003cp\u003eThe route\u0026rsquo;s destination as an address prefix.\u003c/p\u003e\n\n\u003cp\u003eIf not specified, a default route will be created for the address family of the gateway.\u003c/p\u003e\n" + }, + "gateway": { + "type": "string", + "pattern": "^[0-9a-f.:]+$", + "title": "gateway", + "description": "The route’s gateway (if empty, creates link scope route).\n", + "markdownDescription": "The route's gateway (if empty, creates link scope route).", + "x-intellij-html-description": "\u003cp\u003eThe route\u0026rsquo;s gateway (if empty, creates link scope route).\u003c/p\u003e\n" + }, + "source": { + "type": "string", + "pattern": "^[0-9a-f.:]+$", + "title": "source", + "description": "The route’s source address (optional).\n", + "markdownDescription": "The route's source address (optional).", + "x-intellij-html-description": "\u003cp\u003eThe route\u0026rsquo;s source address (optional).\u003c/p\u003e\n" + }, + "metric": { + "type": "integer", + "title": "metric", + "description": "The optional metric for the route.\n", + "markdownDescription": "The optional metric for the route.", + "x-intellij-html-description": "\u003cp\u003eThe optional metric for the route.\u003c/p\u003e\n" + }, + "mtu": { + "type": "integer", + "title": "mtu", + "description": "The optional MTU for the route.\n", + "markdownDescription": "The optional MTU for the route.", + "x-intellij-html-description": "\u003cp\u003eThe optional MTU for the route.\u003c/p\u003e\n" + }, + "table": { + "type": "string", + "title": "table", + "description": "The routing table to use for the route.\n\nIf not specified, the main routing table will be used.\n", + "markdownDescription": "The routing table to use for the route.\n\nIf not specified, the main routing table will be used.", + "x-intellij-html-description": "\u003cp\u003eThe routing table to use for the route.\u003c/p\u003e\n\n\u003cp\u003eIf not specified, the main routing table will be used.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "RouteConfig represents a network route configuration." + }, + "network.RoutingRuleConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "RoutingRuleConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Priority of the routing rule.\nLower values are matched first.\nMust be between 1 and 32765 (excluding reserved priorities [0 32500 32501 32766 32767]).\nMust be unique across all routing rules in the configuration.\n", + "markdownDescription": "Priority of the routing rule.\nLower values are matched first.\nMust be between 1 and 32765 (excluding reserved priorities [0 32500 32501 32766 32767]).\nMust be unique across all routing rules in the configuration.", + "x-intellij-html-description": "\u003cp\u003ePriority of the routing rule.\nLower values are matched first.\nMust be between 1 and 32765 (excluding reserved priorities [0 32500 32501 32766 32767]).\nMust be unique across all routing rules in the configuration.\u003c/p\u003e\n" + }, + "src": { + "type": "string", + "title": "src", + "description": "Source address prefix to match.\nIf empty, matches all sources.\n", + "markdownDescription": "Source address prefix to match.\nIf empty, matches all sources.", + "x-intellij-html-description": "\u003cp\u003eSource address prefix to match.\nIf empty, matches all sources.\u003c/p\u003e\n" + }, + "dst": { + "type": "string", + "title": "dst", + "description": "Destination address prefix to match.\nIf empty, matches all destinations.\n", + "markdownDescription": "Destination address prefix to match.\nIf empty, matches all destinations.", + "x-intellij-html-description": "\u003cp\u003eDestination address prefix to match.\nIf empty, matches all destinations.\u003c/p\u003e\n" + }, + "table": { + "type": "string", + "title": "table", + "description": "The routing table to look up if the rule matches.\n", + "markdownDescription": "The routing table to look up if the rule matches.", + "x-intellij-html-description": "\u003cp\u003eThe routing table to look up if the rule matches.\u003c/p\u003e\n" + }, + "action": { + "type": "integer", + "title": "action", + "description": "The action to perform when the rule matches.\nDefaults to “unicast” (table lookup).\n", + "markdownDescription": "The action to perform when the rule matches.\nDefaults to \"unicast\" (table lookup).", + "x-intellij-html-description": "\u003cp\u003eThe action to perform when the rule matches.\nDefaults to \u0026ldquo;unicast\u0026rdquo; (table lookup).\u003c/p\u003e\n" + }, + "iifName": { + "type": "string", + "title": "iifName", + "description": "Match packets arriving on this interface.\n", + "markdownDescription": "Match packets arriving on this interface.", + "x-intellij-html-description": "\u003cp\u003eMatch packets arriving on this interface.\u003c/p\u003e\n" + }, + "oifName": { + "type": "string", + "title": "oifName", + "description": "Match packets going out on this interface.\n", + "markdownDescription": "Match packets going out on this interface.", + "x-intellij-html-description": "\u003cp\u003eMatch packets going out on this interface.\u003c/p\u003e\n" + }, + "fwMark": { + "type": "integer", + "title": "fwMark", + "description": "Match packets with this firewall mark value.\n", + "markdownDescription": "Match packets with this firewall mark value.", + "x-intellij-html-description": "\u003cp\u003eMatch packets with this firewall mark value.\u003c/p\u003e\n" + }, + "fwMask": { + "type": "integer", + "title": "fwMask", + "description": "Mask for the firewall mark comparison.\n", + "markdownDescription": "Mask for the firewall mark comparison.", + "x-intellij-html-description": "\u003cp\u003eMask for the firewall mark comparison.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "name", + "table" + ], + "description": "RoutingRuleConfig is a config document to configure Linux policy routing rules." + }, + "network.RuleConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "NetworkRuleConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Name of the config document.\n", + "markdownDescription": "Name of the config document.", + "x-intellij-html-description": "\u003cp\u003eName of the config document.\u003c/p\u003e\n" + }, + "portSelector": { + "$ref": "#/$defs/network.RulePortSelector", + "title": "portSelector", + "description": "Port selector defines which ports and protocols on the host are affected by the rule.\n", + "markdownDescription": "Port selector defines which ports and protocols on the host are affected by the rule.", + "x-intellij-html-description": "\u003cp\u003ePort selector defines which ports and protocols on the host are affected by the rule.\u003c/p\u003e\n" + }, + "ingress": { + "items": { + "$ref": "#/$defs/network.IngressRule" + }, + "type": "array", + "title": "ingress", + "description": "Ingress defines which source subnets are allowed to access the host ports/protocols defined by the portSelector.\n", + "markdownDescription": "Ingress defines which source subnets are allowed to access the host ports/protocols defined by the `portSelector`.", + "x-intellij-html-description": "\u003cp\u003eIngress defines which source subnets are allowed to access the host ports/protocols defined by the \u003ccode\u003eportSelector\u003c/code\u003e.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "name" + ], + "description": "NetworkRuleConfig is a network firewall rule config document." + }, + "network.RulePortSelector": { + "properties": { + "ports": { + "items": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ] + }, + "type": "array", + "title": "ports", + "description": "Ports defines a list of port ranges or single ports.\nThe port ranges are inclusive, and should not overlap.\n", + "markdownDescription": "Ports defines a list of port ranges or single ports.\nThe port ranges are inclusive, and should not overlap.", + "x-intellij-html-description": "\u003cp\u003ePorts defines a list of port ranges or single ports.\nThe port ranges are inclusive, and should not overlap.\u003c/p\u003e\n" + }, + "protocol": { + "enum": [ + "tcp", + "udp", + "icmp", + "icmpv6" + ], + "title": "protocol", + "description": "Protocol defines traffic protocol (e.g. TCP or UDP).\n", + "markdownDescription": "Protocol defines traffic protocol (e.g. TCP or UDP).", + "x-intellij-html-description": "\u003cp\u003eProtocol defines traffic protocol (e.g. TCP or UDP).\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "RulePortSelector is a port selector for the network rule." + }, + "network.SearchDomainsConfig": { + "properties": { + "domains": { + "items": { + "type": "string" + }, + "type": "array", + "title": "domains", + "description": "A list of search domains to be used for DNS resolution.\n\nSearch domains are appended to unqualified domain names during DNS resolution.\nFor example, if “example.com” is a search domain and a user tries to resolve\n“host”, the system will attempt to resolve “host.example.com”.\n\nThis overrides any search domains obtained via DHCP or platform configuration.\nThe default configuration derives the search domain from the hostname FQDN.\n", + "markdownDescription": "A list of search domains to be used for DNS resolution.\n\nSearch domains are appended to unqualified domain names during DNS resolution.\nFor example, if \"example.com\" is a search domain and a user tries to resolve\n\"host\", the system will attempt to resolve \"host.example.com\".\n\nThis overrides any search domains obtained via DHCP or platform configuration.\nThe default configuration derives the search domain from the hostname FQDN.", + "x-intellij-html-description": "\u003cp\u003eA list of search domains to be used for DNS resolution.\u003c/p\u003e\n\n\u003cp\u003eSearch domains are appended to unqualified domain names during DNS resolution.\nFor example, if \u0026ldquo;example.com\u0026rdquo; is a search domain and a user tries to resolve\n\u0026ldquo;host\u0026rdquo;, the system will attempt to resolve \u0026ldquo;host.example.com\u0026rdquo;.\u003c/p\u003e\n\n\u003cp\u003eThis overrides any search domains obtained via DHCP or platform configuration.\nThe default configuration derives the search domain from the hostname FQDN.\u003c/p\u003e\n" + }, + "disableDefault": { + "type": "boolean", + "title": "disableDefault", + "description": "Disable default search domain configuration from hostname FQDN.\n\nWhen set to true, the system will not derive search domains from the hostname FQDN.\nThis allows for a custom configuration of search domains without any defaults.\n", + "markdownDescription": "Disable default search domain configuration from hostname FQDN.\n\nWhen set to true, the system will not derive search domains from the hostname FQDN.\nThis allows for a custom configuration of search domains without any defaults.", + "x-intellij-html-description": "\u003cp\u003eDisable default search domain configuration from hostname FQDN.\u003c/p\u003e\n\n\u003cp\u003eWhen set to true, the system will not derive search domains from the hostname FQDN.\nThis allows for a custom configuration of search domains without any defaults.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "SearchDomainsConfig represents search domains configuration." + }, + "network.StaticHostConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "StaticHostConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "IP address (IPv4 or IPv6) to map the hostnames to.\n", + "markdownDescription": "IP address (IPv4 or IPv6) to map the hostnames to.", + "x-intellij-html-description": "\u003cp\u003eIP address (IPv4 or IPv6) to map the hostnames to.\u003c/p\u003e\n" + }, + "hostnames": { + "items": { + "type": "string" + }, + "type": "array", + "title": "hostnames", + "description": "List of hostnames to map to the IP address.\n", + "markdownDescription": "List of hostnames to map to the IP address.", + "x-intellij-html-description": "\u003cp\u003eList of hostnames to map to the IP address.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "name" + ], + "description": "StaticHostConfig is a config document to set /etc/hosts entries." + }, + "network.TCPProbeConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "TCPProbeConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Name of the probe.\n", + "markdownDescription": "Name of the probe.", + "x-intellij-html-description": "\u003cp\u003eName of the probe.\u003c/p\u003e\n" + }, + "interval": { + "type": "string", + "pattern": "^[-+]?(((\\d+(\\.\\d*)?|\\d*(\\.\\d+)+)([nuµm]?s|m|h))|0)+$", + "title": "interval", + "description": "Interval between probe attempts.\nDefaults to 1s.\n", + "markdownDescription": "Interval between probe attempts.\nDefaults to 1s.", + "x-intellij-html-description": "\u003cp\u003eInterval between probe attempts.\nDefaults to 1s.\u003c/p\u003e\n" + }, + "failureThreshold": { + "type": "integer", + "title": "failureThreshold", + "description": "Number of consecutive failures for the probe to be considered failed after having succeeded.\nDefaults to 0 (immediately fail on first failure).\n", + "markdownDescription": "Number of consecutive failures for the probe to be considered failed after having succeeded.\nDefaults to 0 (immediately fail on first failure).", + "x-intellij-html-description": "\u003cp\u003eNumber of consecutive failures for the probe to be considered failed after having succeeded.\nDefaults to 0 (immediately fail on first failure).\u003c/p\u003e\n" + }, + "endpoint": { + "type": "string", + "title": "endpoint", + "description": "Endpoint to probe in the format host:port.\n", + "markdownDescription": "Endpoint to probe in the format host:port.", + "x-intellij-html-description": "\u003cp\u003eEndpoint to probe in the format host:port.\u003c/p\u003e\n" + }, + "timeout": { + "type": "string", + "pattern": "^[-+]?(((\\d+(\\.\\d*)?|\\d*(\\.\\d+)+)([nuµm]?s|m|h))|0)+$", + "title": "timeout", + "description": "Timeout for the probe.\nDefaults to 10s.\n", + "markdownDescription": "Timeout for the probe.\nDefaults to 10s.", + "x-intellij-html-description": "\u003cp\u003eTimeout for the probe.\nDefaults to 10s.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "endpoint", + "kind", + "name" + ], + "description": "TCPProbeConfig is a config document to configure network TCP connectivity probes." + }, + "network.TimeSyncConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "TimeSyncConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "enabled": { + "type": "boolean", + "title": "enabled", + "description": "Indicates if the time synchronization is enabled for the machine.\nDefaults to true.\n", + "markdownDescription": "Indicates if the time synchronization is enabled for the machine.\nDefaults to `true`.", + "x-intellij-html-description": "\u003cp\u003eIndicates if the time synchronization is enabled for the machine.\nDefaults to \u003ccode\u003etrue\u003c/code\u003e.\u003c/p\u003e\n" + }, + "bootTimeout": { + "type": "string", + "pattern": "^[-+]?(((\\d+(\\.\\d*)?|\\d*(\\.\\d+)+)([nuµm]?s|m|h))|0)+$", + "title": "bootTimeout", + "description": "Specifies the timeout when the node time is considered to be in sync unlocking the boot sequence.\nNTP sync will be still running in the background.\nDefaults to “infinity” (waiting forever for time sync)\n", + "markdownDescription": "Specifies the timeout when the node time is considered to be in sync unlocking the boot sequence.\nNTP sync will be still running in the background.\nDefaults to \"infinity\" (waiting forever for time sync)", + "x-intellij-html-description": "\u003cp\u003eSpecifies the timeout when the node time is considered to be in sync unlocking the boot sequence.\nNTP sync will be still running in the background.\nDefaults to \u0026ldquo;infinity\u0026rdquo; (waiting forever for time sync)\u003c/p\u003e\n" + }, + "ntp": { + "$ref": "#/$defs/network.NTPConfig", + "title": "ntp", + "description": "Specifies NTP configuration to sync the time over network.\nMutually exclusive with PTP configuration.\n", + "markdownDescription": "Specifies NTP configuration to sync the time over network.\nMutually exclusive with PTP configuration.", + "x-intellij-html-description": "\u003cp\u003eSpecifies NTP configuration to sync the time over network.\nMutually exclusive with PTP configuration.\u003c/p\u003e\n" + }, + "ptp": { + "$ref": "#/$defs/network.PTPConfig", + "title": "ptp", + "description": "Specific PTP (Precision Time Protocol) configuration to sync the time over PTP devices.\nMutually exclusive with NTP configuration.\n", + "markdownDescription": "Specific PTP (Precision Time Protocol) configuration to sync the time over PTP devices.\nMutually exclusive with NTP configuration.", + "x-intellij-html-description": "\u003cp\u003eSpecific PTP (Precision Time Protocol) configuration to sync the time over PTP devices.\nMutually exclusive with NTP configuration.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind" + ], + "description": "TimeSyncConfig is a config document to configure time synchronization (NTP)." + }, + "network.VLANConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "VLANConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Name of the VLAN link (interface) to be created.\n", + "markdownDescription": "Name of the VLAN link (interface) to be created.", + "x-intellij-html-description": "\u003cp\u003eName of the VLAN link (interface) to be created.\u003c/p\u003e\n" + }, + "vlanID": { + "type": "integer", + "title": "vlanID", + "description": "VLAN ID to be used for the VLAN link.\n", + "markdownDescription": "VLAN ID to be used for the VLAN link.", + "x-intellij-html-description": "\u003cp\u003eVLAN ID to be used for the VLAN link.\u003c/p\u003e\n" + }, + "vlanMode": { + "enum": [ + "802.1q", + "802.1ad" + ], + "title": "vlanMode", + "description": "Set the VLAN mode to use.\nIf not set, defaults to ‘802.1q’.\n", + "markdownDescription": "Set the VLAN mode to use.\nIf not set, defaults to '802.1q'.", + "x-intellij-html-description": "\u003cp\u003eSet the VLAN mode to use.\nIf not set, defaults to \u0026lsquo;802.1q\u0026rsquo;.\u003c/p\u003e\n" + }, + "parent": { + "type": "string", + "title": "parent", + "description": "Name of the parent link (interface) on which the VLAN link will be created.\nLink aliases can be used here as well.\n", + "markdownDescription": "Name of the parent link (interface) on which the VLAN link will be created.\nLink aliases can be used here as well.", + "x-intellij-html-description": "\u003cp\u003eName of the parent link (interface) on which the VLAN link will be created.\nLink aliases can be used here as well.\u003c/p\u003e\n" + }, + "up": { + "type": "boolean", + "title": "up", + "description": "Bring the link up or down.\n\nIf not specified, the link will be brought up.\n", + "markdownDescription": "Bring the link up or down.\n\nIf not specified, the link will be brought up.", + "x-intellij-html-description": "\u003cp\u003eBring the link up or down.\u003c/p\u003e\n\n\u003cp\u003eIf not specified, the link will be brought up.\u003c/p\u003e\n" + }, + "mtu": { + "type": "integer", + "title": "mtu", + "description": "Configure LinkMTU (Maximum Transmission Unit) for the link.\n\nIf not specified, the system default LinkMTU will be used (usually 1500).\n", + "markdownDescription": "Configure LinkMTU (Maximum Transmission Unit) for the link.\n\nIf not specified, the system default LinkMTU will be used (usually 1500).", + "x-intellij-html-description": "\u003cp\u003eConfigure LinkMTU (Maximum Transmission Unit) for the link.\u003c/p\u003e\n\n\u003cp\u003eIf not specified, the system default LinkMTU will be used (usually 1500).\u003c/p\u003e\n" + }, + "addresses": { + "items": { + "$ref": "#/$defs/network.AddressConfig" + }, + "type": "array", + "title": "addresses", + "description": "Configure addresses to be statically assigned to the link.\n", + "markdownDescription": "Configure addresses to be statically assigned to the link.", + "x-intellij-html-description": "\u003cp\u003eConfigure addresses to be statically assigned to the link.\u003c/p\u003e\n" + }, + "routes": { + "items": { + "$ref": "#/$defs/network.RouteConfig" + }, + "type": "array", + "title": "routes", + "description": "Configure routes to be statically created via the link.\n", + "markdownDescription": "Configure routes to be statically created via the link.", + "x-intellij-html-description": "\u003cp\u003eConfigure routes to be statically created via the link.\u003c/p\u003e\n" + }, + "multicast": { + "type": "boolean", + "title": "multicast", + "description": "Set the multicast capability of the link.\n", + "markdownDescription": "Set the multicast capability of the link.", + "x-intellij-html-description": "\u003cp\u003eSet the multicast capability of the link.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "name", + "parent", + "vlanID" + ], + "description": "VLANConfig is a config document to create a VLAN (virtual LAN) over a parent link." + }, + "network.VRFConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "VRFConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Name of the vrf link (interface) to be created.\n", + "markdownDescription": "Name of the vrf link (interface) to be created.", + "x-intellij-html-description": "\u003cp\u003eName of the vrf link (interface) to be created.\u003c/p\u003e\n" + }, + "hardwareAddr": { + "type": "string", + "pattern": "^[0-9a-f:]+$", + "title": "hardwareAddr", + "description": "Override the hardware (MAC) address of the link.\n", + "markdownDescription": "Override the hardware (MAC) address of the link.", + "x-intellij-html-description": "\u003cp\u003eOverride the hardware (MAC) address of the link.\u003c/p\u003e\n" + }, + "links": { + "items": { + "type": "string" + }, + "type": "array", + "title": "links", + "description": "Names of the links (interfaces) to be assigned to this vrf.\nLink aliases can be used here as well.\n", + "markdownDescription": "Names of the links (interfaces) to be assigned to this vrf.\nLink aliases can be used here as well.", + "x-intellij-html-description": "\u003cp\u003eNames of the links (interfaces) to be assigned to this vrf.\nLink aliases can be used here as well.\u003c/p\u003e\n" + }, + "table": { + "type": "string", + "title": "table", + "description": "Routing table number to use for this vrf.\n", + "markdownDescription": "Routing table number to use for this vrf.", + "x-intellij-html-description": "\u003cp\u003eRouting table number to use for this vrf.\u003c/p\u003e\n" + }, + "up": { + "type": "boolean", + "title": "up", + "description": "Bring the link up or down.\n\nIf not specified, the link will be brought up.\n", + "markdownDescription": "Bring the link up or down.\n\nIf not specified, the link will be brought up.", + "x-intellij-html-description": "\u003cp\u003eBring the link up or down.\u003c/p\u003e\n\n\u003cp\u003eIf not specified, the link will be brought up.\u003c/p\u003e\n" + }, + "mtu": { + "type": "integer", + "title": "mtu", + "description": "Configure LinkMTU (Maximum Transmission Unit) for the link.\n\nIf not specified, the system default LinkMTU will be used (usually 1500).\n", + "markdownDescription": "Configure LinkMTU (Maximum Transmission Unit) for the link.\n\nIf not specified, the system default LinkMTU will be used (usually 1500).", + "x-intellij-html-description": "\u003cp\u003eConfigure LinkMTU (Maximum Transmission Unit) for the link.\u003c/p\u003e\n\n\u003cp\u003eIf not specified, the system default LinkMTU will be used (usually 1500).\u003c/p\u003e\n" + }, + "addresses": { + "items": { + "$ref": "#/$defs/network.AddressConfig" + }, + "type": "array", + "title": "addresses", + "description": "Configure addresses to be statically assigned to the link.\n", + "markdownDescription": "Configure addresses to be statically assigned to the link.", + "x-intellij-html-description": "\u003cp\u003eConfigure addresses to be statically assigned to the link.\u003c/p\u003e\n" + }, + "routes": { + "items": { + "$ref": "#/$defs/network.RouteConfig" + }, + "type": "array", + "title": "routes", + "description": "Configure routes to be statically created via the link.\n", + "markdownDescription": "Configure routes to be statically created via the link.", + "x-intellij-html-description": "\u003cp\u003eConfigure routes to be statically created via the link.\u003c/p\u003e\n" + }, + "multicast": { + "type": "boolean", + "title": "multicast", + "description": "Set the multicast capability of the link.\n", + "markdownDescription": "Set the multicast capability of the link.", + "x-intellij-html-description": "\u003cp\u003eSet the multicast capability of the link.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "links", + "name", + "table" + ], + "description": "VRFConfig is a config document to create a vrf and assign links to it." + }, + "network.WireguardConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "WireguardConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Name of the Wireguard link (interface).\n", + "markdownDescription": "Name of the Wireguard link (interface).", + "x-intellij-html-description": "\u003cp\u003eName of the Wireguard link (interface).\u003c/p\u003e\n" + }, + "privateKey": { + "type": "string", + "title": "privateKey", + "description": "Specifies a private key configuration (base64 encoded).\nCan be generated by wg genkey.\n", + "markdownDescription": "Specifies a private key configuration (base64 encoded).\nCan be generated by `wg genkey`.", + "x-intellij-html-description": "\u003cp\u003eSpecifies a private key configuration (base64 encoded).\nCan be generated by \u003ccode\u003ewg genkey\u003c/code\u003e.\u003c/p\u003e\n" + }, + "listenPort": { + "type": "integer", + "title": "listenPort", + "description": "Specifies a device’s listening port (UDP).\nIf not specified, a random port will be chosen.\n", + "markdownDescription": "Specifies a device's listening port (UDP).\nIf not specified, a random port will be chosen.", + "x-intellij-html-description": "\u003cp\u003eSpecifies a device\u0026rsquo;s listening port (UDP).\nIf not specified, a random port will be chosen.\u003c/p\u003e\n" + }, + "firewallMark": { + "type": "integer", + "title": "firewallMark", + "description": "Specifies a device’s firewall mark.\nUseful for advanced routing setups, marking packets originating from this device.\n", + "markdownDescription": "Specifies a device's firewall mark.\nUseful for advanced routing setups, marking packets originating from this device.", + "x-intellij-html-description": "\u003cp\u003eSpecifies a device\u0026rsquo;s firewall mark.\nUseful for advanced routing setups, marking packets originating from this device.\u003c/p\u003e\n" + }, + "peers": { + "items": { + "$ref": "#/$defs/network.WireguardPeer" + }, + "type": "array", + "title": "peers", + "description": "Specifies a list of peer configurations to apply to a device.\n", + "markdownDescription": "Specifies a list of peer configurations to apply to a device.", + "x-intellij-html-description": "\u003cp\u003eSpecifies a list of peer configurations to apply to a device.\u003c/p\u003e\n" + }, + "up": { + "type": "boolean", + "title": "up", + "description": "Bring the link up or down.\n\nIf not specified, the link will be brought up.\n", + "markdownDescription": "Bring the link up or down.\n\nIf not specified, the link will be brought up.", + "x-intellij-html-description": "\u003cp\u003eBring the link up or down.\u003c/p\u003e\n\n\u003cp\u003eIf not specified, the link will be brought up.\u003c/p\u003e\n" + }, + "mtu": { + "type": "integer", + "title": "mtu", + "description": "Configure LinkMTU (Maximum Transmission Unit) for the link.\n\nIf not specified, the system default LinkMTU will be used (usually 1500).\n", + "markdownDescription": "Configure LinkMTU (Maximum Transmission Unit) for the link.\n\nIf not specified, the system default LinkMTU will be used (usually 1500).", + "x-intellij-html-description": "\u003cp\u003eConfigure LinkMTU (Maximum Transmission Unit) for the link.\u003c/p\u003e\n\n\u003cp\u003eIf not specified, the system default LinkMTU will be used (usually 1500).\u003c/p\u003e\n" + }, + "addresses": { + "items": { + "$ref": "#/$defs/network.AddressConfig" + }, + "type": "array", + "title": "addresses", + "description": "Configure addresses to be statically assigned to the link.\n", + "markdownDescription": "Configure addresses to be statically assigned to the link.", + "x-intellij-html-description": "\u003cp\u003eConfigure addresses to be statically assigned to the link.\u003c/p\u003e\n" + }, + "routes": { + "items": { + "$ref": "#/$defs/network.RouteConfig" + }, + "type": "array", + "title": "routes", + "description": "Configure routes to be statically created via the link.\n", + "markdownDescription": "Configure routes to be statically created via the link.", + "x-intellij-html-description": "\u003cp\u003eConfigure routes to be statically created via the link.\u003c/p\u003e\n" + }, + "multicast": { + "type": "boolean", + "title": "multicast", + "description": "Set the multicast capability of the link.\n", + "markdownDescription": "Set the multicast capability of the link.", + "x-intellij-html-description": "\u003cp\u003eSet the multicast capability of the link.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "name", + "privateKey" + ], + "description": "WireguardConfig is a config document to create and configure a Wireguard network link." + }, + "network.WireguardPeer": { + "properties": { + "publicKey": { + "type": "string", + "title": "publicKey", + "description": "Specifies the public key of this peer.\nCan be extracted from private key by running wg pubkey \u0026lt; private.key.\n", + "markdownDescription": "Specifies the public key of this peer.\nCan be extracted from private key by running `wg pubkey \u003c private.key`.", + "x-intellij-html-description": "\u003cp\u003eSpecifies the public key of this peer.\nCan be extracted from private key by running \u003ccode\u003ewg pubkey \u0026lt; private.key\u003c/code\u003e.\u003c/p\u003e\n" + }, + "presharedKey": { + "type": "string", + "title": "presharedKey", + "description": "Specifies the preshared key for this peer (base64 encoded).\nCan be generated by wg genpsk.\nOptional, this key provides an additional layer of symmetric-key cryptography\nto the peer connection.\n", + "markdownDescription": "Specifies the preshared key for this peer (base64 encoded).\nCan be generated by `wg genpsk`.\nOptional, this key provides an additional layer of symmetric-key cryptography\nto the peer connection.", + "x-intellij-html-description": "\u003cp\u003eSpecifies the preshared key for this peer (base64 encoded).\nCan be generated by \u003ccode\u003ewg genpsk\u003c/code\u003e.\nOptional, this key provides an additional layer of symmetric-key cryptography\nto the peer connection.\u003c/p\u003e\n" + }, + "endpoint": { + "type": "string", + "pattern": "^([0-9a-f.:]+|\\[[0-9a-f:.]+\\]):\\d{1,5}$", + "title": "endpoint", + "description": "Specifies the endpoint of this peer entry.\nFormat: :.\nIf not set, the peer should connect to us without us connecting to it first.\n", + "markdownDescription": "Specifies the endpoint of this peer entry.\nFormat: \u003cIP address\u003e:\u003cport\u003e.\nIf not set, the peer should connect to us without us connecting to it first.", + "x-intellij-html-description": "\u003cp\u003eSpecifies the endpoint of this peer entry.\nFormat: \u003cIP address\u003e:\u003cport\u003e.\nIf not set, the peer should connect to us without us connecting to it first.\u003c/p\u003e\n" + }, + "persistentKeepaliveInterval": { + "type": "string", + "pattern": "^[-+]?(((\\d+(\\.\\d*)?|\\d*(\\.\\d+)+)([nuµm]?s|m|h))|0)+$", + "title": "persistentKeepaliveInterval", + "description": "Specifies the persistent keepalive interval for this peer.\nField format accepts any Go time.Duration format (‘1h’ for one hour, ‘10m’ for ten minutes).\n", + "markdownDescription": "Specifies the persistent keepalive interval for this peer.\nField format accepts any Go time.Duration format ('1h' for one hour, '10m' for ten minutes).", + "x-intellij-html-description": "\u003cp\u003eSpecifies the persistent keepalive interval for this peer.\nField format accepts any Go time.Duration format (\u0026lsquo;1h\u0026rsquo; for one hour, \u0026lsquo;10m\u0026rsquo; for ten minutes).\u003c/p\u003e\n" + }, + "allowedIPs": { + "items": { + "type": "string", + "pattern": "^[0-9a-f.:]+/\\d{1,3}$" + }, + "type": "array", + "title": "allowedIPs", + "description": "AllowedIPs specifies a list of allowed IP addresses in CIDR notation for this peer.\nThese IPs will be routed to this peer, and defines which IPs this peer is allowed to use.\n", + "markdownDescription": "AllowedIPs specifies a list of allowed IP addresses in CIDR notation for this peer.\nThese IPs will be routed to this peer, and defines which IPs this peer is allowed to use.", + "x-intellij-html-description": "\u003cp\u003eAllowedIPs specifies a list of allowed IP addresses in CIDR notation for this peer.\nThese IPs will be routed to this peer, and defines which IPs this peer is allowed to use.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "publicKey" + ], + "description": "WireguardPeer describes a Wireguard peer configuration." + }, + "runtime.EnvironmentV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "EnvironmentConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "variables": { + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object", + "title": "variables", + "description": "This field allows for the addition of environment variables.\nAll environment variables are set on PID 1 in addition to every service.\nPropagation of environment variables to services is done only at initial service start time.\nTo modify environment variables for services, the node must be restarted.\nMultiple values for the same environment variable (in multiple documents) will replace previous values, with the last one taking precedence.\nFully removing an environment variable can only be achieved by removing it from the document and restarting the machine.\nEnvironment variable names are validated, and should:\n - start with an uppercase letter, lowercase letter, or an underscore () character, and\n - contain only uppercase and lowercase letters, underscore () characters, and numbers.\n", + "markdownDescription": "This field allows for the addition of environment variables.\nAll environment variables are set on PID 1 in addition to every service.\nPropagation of environment variables to services is done only at initial service start time.\nTo modify environment variables for services, the node must be restarted.\nMultiple values for the same environment variable (in multiple documents) will replace previous values, with the last one taking precedence.\nFully removing an environment variable can only be achieved by removing it from the document and restarting the machine.\nEnvironment variable names are validated, and should:\n - start with an uppercase letter, lowercase letter, or an underscore (_) character, and\n - contain only uppercase and lowercase letters, underscore (_) characters, and numbers.", + "x-intellij-html-description": "\u003cp\u003eThis field allows for the addition of environment variables.\nAll environment variables are set on PID 1 in addition to every service.\nPropagation of environment variables to services is done only at initial service start time.\nTo modify environment variables for services, the node must be restarted.\nMultiple values for the same environment variable (in multiple documents) will replace previous values, with the last one taking precedence.\nFully removing an environment variable can only be achieved by removing it from the document and restarting the machine.\nEnvironment variable names are validated, and should:\n - start with an uppercase letter, lowercase letter, or an underscore (\u003cem\u003e) character, and\n - contain only uppercase and lowercase letters, underscore (\u003c/em\u003e) characters, and numbers.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind" + ], + "description": "EnvironmentConfig is an environment config document." + }, + "runtime.EventSinkV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "EventSinkConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "endpoint": { + "type": "string", + "title": "endpoint", + "description": "The endpoint for the event sink as ‘host:port’.\n", + "markdownDescription": "The endpoint for the event sink as 'host:port'.", + "x-intellij-html-description": "\u003cp\u003eThe endpoint for the event sink as \u0026lsquo;host:port\u0026rsquo;.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind" + ], + "description": "EventSinkConfig is a event sink config document." + }, + "runtime.KmsgLogV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "KmsgLogConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Name of the config document.\n", + "markdownDescription": "Name of the config document.", + "x-intellij-html-description": "\u003cp\u003eName of the config document.\u003c/p\u003e\n" + }, + "url": { + "type": "string", + "pattern": "^(tcp|udp)://", + "title": "url", + "description": "The URL encodes the log destination.\nThe scheme must be tcp:// or udp://.\nThe path must be empty.\nThe port is required.\n", + "markdownDescription": "The URL encodes the log destination.\nThe scheme must be tcp:// or udp://.\nThe path must be empty.\nThe port is required.", + "x-intellij-html-description": "\u003cp\u003eThe URL encodes the log destination.\nThe scheme must be tcp:// or udp://.\nThe path must be empty.\nThe port is required.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind" + ], + "description": "KmsgLogConfig is a event sink config document." + }, + "runtime.OOMV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "OOMConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "triggerExpression": { + "type": "string", + "title": "triggerExpression", + "description": "This expression defines when to trigger OOM action.\n\nThe expression must evaluate to a boolean value.\nIf the expression returns true, then OOM ranking and killing will be handled.\n\nThis expression receives the following parameters:\n- memory{some,full}{avg10,avg60,avg300,total} - double, representing PSI values\n- time_since_trigger - duration since the last OOM handler trigger event\n", + "markdownDescription": "This expression defines when to trigger OOM action.\n\nThe expression must evaluate to a boolean value.\nIf the expression returns true, then OOM ranking and killing will be handled.\n\nThis expression receives the following parameters:\n- memory_{some,full}_{avg10,avg60,avg300,total} - double, representing PSI values\n- time_since_trigger - duration since the last OOM handler trigger event", + "x-intellij-html-description": "\u003cp\u003eThis expression defines when to trigger OOM action.\u003c/p\u003e\n\n\u003cp\u003eThe expression must evaluate to a boolean value.\nIf the expression returns true, then OOM ranking and killing will be handled.\u003c/p\u003e\n\n\u003cp\u003eThis expression receives the following parameters:\n- memory\u003cem\u003e{some,full}\u003c/em\u003e{avg10,avg60,avg300,total} - double, representing PSI values\n- time_since_trigger - duration since the last OOM handler trigger event\u003c/p\u003e\n" + }, + "cgroupRankingExpression": { + "type": "string", + "title": "cgroupRankingExpression", + "description": "This expression defines how to rank cgroups for OOM handler.\n\nThe cgroup with the highest rank (score) will be evicted first.\nThe expression must evaluate to a double value.\n\nThis expression receives the following parameters:\n- memory_max - Optional - in bytes\n- memory_current - Optional - in bytes\n- memory_peak - Optional - in bytes\n- path - string, path to the cgroup\n- class - int. This represents cgroup QoS class, and matches one of the constants, which are also provided: Besteffort, Burstable, Guaranteed, Podruntime, System\n", + "markdownDescription": "This expression defines how to rank cgroups for OOM handler.\n\nThe cgroup with the highest rank (score) will be evicted first.\nThe expression must evaluate to a double value.\n\nThis expression receives the following parameters:\n- memory_max - Optional\u003cuint\u003e - in bytes\n- memory_current - Optional\u003cuint\u003e - in bytes\n- memory_peak - Optional\u003cuint\u003e - in bytes\n- path - string, path to the cgroup\n- class - int. This represents cgroup QoS class, and matches one of the constants, which are also provided: Besteffort, Burstable, Guaranteed, Podruntime, System", + "x-intellij-html-description": "\u003cp\u003eThis expression defines how to rank cgroups for OOM handler.\u003c/p\u003e\n\n\u003cp\u003eThe cgroup with the highest rank (score) will be evicted first.\nThe expression must evaluate to a double value.\u003c/p\u003e\n\n\u003cp\u003eThis expression receives the following parameters:\n- memory_max - Optional\u003cuint\u003e - in bytes\n- memory_current - Optional\u003cuint\u003e - in bytes\n- memory_peak - Optional\u003cuint\u003e - in bytes\n- path - string, path to the cgroup\n- class - int. This represents cgroup QoS class, and matches one of the constants, which are also provided: Besteffort, Burstable, Guaranteed, Podruntime, System\u003c/p\u003e\n" + }, + "sampleInterval": { + "type": "string", + "pattern": "^[-+]?(((\\d+(\\.\\d*)?|\\d*(\\.\\d+)+)([nuµm]?s|m|h))|0)+$", + "title": "sampleInterval", + "description": "How often should the trigger expression be evaluated.\n\nThis interval determines how often should the OOM controller\ncheck for the OOM condition using the provided expression.\nAdjusting it can help tune the reactivity of the OOM handler.\n", + "markdownDescription": "How often should the trigger expression be evaluated.\n\nThis interval determines how often should the OOM controller\ncheck for the OOM condition using the provided expression.\nAdjusting it can help tune the reactivity of the OOM handler.", + "x-intellij-html-description": "\u003cp\u003eHow often should the trigger expression be evaluated.\u003c/p\u003e\n\n\u003cp\u003eThis interval determines how often should the OOM controller\ncheck for the OOM condition using the provided expression.\nAdjusting it can help tune the reactivity of the OOM handler.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind" + ], + "description": "OOMConfig is a Out of Memory handler config document." + }, + "runtime.WatchdogTimerV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "WatchdogTimerConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "device": { + "type": "string", + "title": "device", + "description": "Path to the watchdog device.\n", + "markdownDescription": "Path to the watchdog device.", + "x-intellij-html-description": "\u003cp\u003ePath to the watchdog device.\u003c/p\u003e\n" + }, + "timeout": { + "type": "string", + "pattern": "^[-+]?(((\\d+(\\.\\d*)?|\\d*(\\.\\d+)+)([nuµm]?s|m|h))|0)+$", + "title": "timeout", + "description": "Timeout for the watchdog.\n\nIf Talos is unresponsive for this duration, the watchdog will reset the system.\n\nDefault value is 1 minute, minimum value is 10 seconds.\n", + "markdownDescription": "Timeout for the watchdog.\n\nIf Talos is unresponsive for this duration, the watchdog will reset the system.\n\nDefault value is 1 minute, minimum value is 10 seconds.", + "x-intellij-html-description": "\u003cp\u003eTimeout for the watchdog.\u003c/p\u003e\n\n\u003cp\u003eIf Talos is unresponsive for this duration, the watchdog will reset the system.\u003c/p\u003e\n\n\u003cp\u003eDefault value is 1 minute, minimum value is 10 seconds.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind" + ], + "description": "WatchdogTimerConfig is a watchdog timer config document." + }, + "security.TrustedRootsConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "TrustedRootsConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Name of the config document.\n", + "markdownDescription": "Name of the config document.", + "x-intellij-html-description": "\u003cp\u003eName of the config document.\u003c/p\u003e\n" + }, + "certificates": { + "type": "string", + "title": "certificates", + "description": "List of additional trusted certificate authorities (as PEM-encoded certificates).\n\nMultiple certificates can be provided in a single config document, separated by newline characters.\n", + "markdownDescription": "List of additional trusted certificate authorities (as PEM-encoded certificates).\n\nMultiple certificates can be provided in a single config document, separated by newline characters.", + "x-intellij-html-description": "\u003cp\u003eList of additional trusted certificate authorities (as PEM-encoded certificates).\u003c/p\u003e\n\n\u003cp\u003eMultiple certificates can be provided in a single config document, separated by newline characters.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "name" + ], + "description": "TrustedRootsConfig allows to configure additional trusted CA roots." + }, + "siderolink.ConfigV1Alpha1": { + "properties": { + "apiVersion": { + "enum": [ + "v1alpha1" + ], + "title": "apiVersion", + "description": "apiVersion is the API version of the resource.\n", + "markdownDescription": "apiVersion is the API version of the resource.", + "x-intellij-html-description": "\u003cp\u003eapiVersion is the API version of the resource.\u003c/p\u003e\n" + }, + "kind": { + "enum": [ + "SideroLinkConfig" + ], + "title": "kind", + "description": "kind is the kind of the resource.\n", + "markdownDescription": "kind is the kind of the resource.", + "x-intellij-html-description": "\u003cp\u003ekind is the kind of the resource.\u003c/p\u003e\n" + }, + "apiUrl": { + "type": "string", + "pattern": "^(https|grpc)://", + "title": "apiUrl", + "description": "SideroLink API URL to connect to.\n", + "markdownDescription": "SideroLink API URL to connect to.", + "x-intellij-html-description": "\u003cp\u003eSideroLink API URL to connect to.\u003c/p\u003e\n" + }, + "uniqueToken": { + "type": "string", + "title": "uniqueToken", + "description": "SideroLink unique token to use for the connection (optional).\n\nThis value is overridden with META key UniqueMachineToken.\n", + "markdownDescription": "SideroLink unique token to use for the connection (optional).\n\nThis value is overridden with META key UniqueMachineToken.", + "x-intellij-html-description": "\u003cp\u003eSideroLink unique token to use for the connection (optional).\u003c/p\u003e\n\n\u003cp\u003eThis value is overridden with META key UniqueMachineToken.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind" + ], + "description": "SideroLinkConfig is a SideroLink connection machine configuration document." + }, + "v1alpha1.APIServerConfig": { + "properties": { + "image": { + "type": "string", + "title": "image", + "description": "The container image used in the API server manifest.\n", + "markdownDescription": "The container image used in the API server manifest.", + "x-intellij-html-description": "\u003cp\u003eThe container image used in the API server manifest.\u003c/p\u003e\n" + }, + "extraArgs": { + "additionalProperties": { + "oneOf": [ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } + ] + }, + "type": "object", + "title": "extraArgs", + "description": "Extra arguments to supply to the API server.\n", + "markdownDescription": "Extra arguments to supply to the API server.", + "x-intellij-html-description": "\u003cp\u003eExtra arguments to supply to the API server.\u003c/p\u003e\n" + }, + "extraVolumes": { + "items": { + "$ref": "#/$defs/v1alpha1.VolumeMountConfig" + }, + "type": "array", + "title": "extraVolumes", + "description": "Extra volumes to mount to the API server static pod.\n", + "markdownDescription": "Extra volumes to mount to the API server static pod.", + "x-intellij-html-description": "\u003cp\u003eExtra volumes to mount to the API server static pod.\u003c/p\u003e\n" + }, + "env": { + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object", + "title": "env", + "description": "The env field allows for the addition of environment variables for the control plane component.\n", + "markdownDescription": "The `env` field allows for the addition of environment variables for the control plane component.", + "x-intellij-html-description": "\u003cp\u003eThe \u003ccode\u003eenv\u003c/code\u003e field allows for the addition of environment variables for the control plane component.\u003c/p\u003e\n" + }, + "certSANs": { + "items": { + "type": "string" + }, + "type": "array", + "title": "certSANs", + "description": "Extra certificate subject alternative names for the API server’s certificate.\n", + "markdownDescription": "Extra certificate subject alternative names for the API server's certificate.", + "x-intellij-html-description": "\u003cp\u003eExtra certificate subject alternative names for the API server\u0026rsquo;s certificate.\u003c/p\u003e\n" + }, + "admissionControl": { + "items": { + "$ref": "#/$defs/v1alpha1.AdmissionPluginConfig" + }, + "type": "array", + "title": "admissionControl", + "description": "Configure the API server admission plugins.\n", + "markdownDescription": "Configure the API server admission plugins.", + "x-intellij-html-description": "\u003cp\u003eConfigure the API server admission plugins.\u003c/p\u003e\n" + }, + "auditPolicy": { + "type": "object", + "title": "auditPolicy", + "description": "Configure the API server audit policy.\n", + "markdownDescription": "Configure the API server audit policy.", + "x-intellij-html-description": "\u003cp\u003eConfigure the API server audit policy.\u003c/p\u003e\n" + }, + "resources": { + "type": "object", + "title": "resources", + "description": "Configure the API server resources.\n", + "markdownDescription": "Configure the API server resources.", + "x-intellij-html-description": "\u003cp\u003eConfigure the API server resources.\u003c/p\u003e\n" + }, + "authorizationConfig": { + "items": { + "$ref": "#/$defs/v1alpha1.AuthorizationConfigAuthorizerConfig" + }, + "type": "array", + "title": "authorizationConfig", + "description": "Configure the API server authorization config. Node and RBAC authorizers are always added irrespective of the configuration.\n", + "markdownDescription": "Configure the API server authorization config. Node and RBAC authorizers are always added irrespective of the configuration.", + "x-intellij-html-description": "\u003cp\u003eConfigure the API server authorization config. Node and RBAC authorizers are always added irrespective of the configuration.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "APIServerConfig represents the kube apiserver configuration options." + }, + "v1alpha1.AdminKubeconfigConfig": { + "properties": { + "certLifetime": { + "type": "string", + "pattern": "^[-+]?(((\\d+(\\.\\d*)?|\\d*(\\.\\d+)+)([nuµm]?s|m|h))|0)+$", + "title": "certLifetime", + "description": "Admin kubeconfig certificate lifetime (default is 1 year).\nField format accepts any Go time.Duration format (‘1h’ for one hour, ‘10m’ for ten minutes).\n", + "markdownDescription": "Admin kubeconfig certificate lifetime (default is 1 year).\nField format accepts any Go time.Duration format ('1h' for one hour, '10m' for ten minutes).", + "x-intellij-html-description": "\u003cp\u003eAdmin kubeconfig certificate lifetime (default is 1 year).\nField format accepts any Go time.Duration format (\u0026lsquo;1h\u0026rsquo; for one hour, \u0026lsquo;10m\u0026rsquo; for ten minutes).\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "AdminKubeconfigConfig contains admin kubeconfig settings." + }, + "v1alpha1.AdmissionPluginConfig": { + "properties": { + "name": { + "type": "string", + "title": "name", + "description": "Name is the name of the admission controller.\nIt must match the registered admission plugin name.\n", + "markdownDescription": "Name is the name of the admission controller.\nIt must match the registered admission plugin name.", + "x-intellij-html-description": "\u003cp\u003eName is the name of the admission controller.\nIt must match the registered admission plugin name.\u003c/p\u003e\n" + }, + "configuration": { + "type": "object", + "title": "configuration", + "description": "Configuration is an embedded configuration object to be used as the plugin’s\nconfiguration.\n", + "markdownDescription": "Configuration is an embedded configuration object to be used as the plugin's\nconfiguration.", + "x-intellij-html-description": "\u003cp\u003eConfiguration is an embedded configuration object to be used as the plugin\u0026rsquo;s\nconfiguration.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "AdmissionPluginConfig represents the API server admission plugin configuration." + }, + "v1alpha1.AuthorizationConfigAuthorizerConfig": { + "properties": { + "type": { + "type": "string", + "title": "type", + "description": "Type is the name of the authorizer. Allowed values are Node, RBAC, and Webhook.\n", + "markdownDescription": "Type is the name of the authorizer. Allowed values are `Node`, `RBAC`, and `Webhook`.", + "x-intellij-html-description": "\u003cp\u003eType is the name of the authorizer. Allowed values are \u003ccode\u003eNode\u003c/code\u003e, \u003ccode\u003eRBAC\u003c/code\u003e, and \u003ccode\u003eWebhook\u003c/code\u003e.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Name is used to describe the authorizer.\n", + "markdownDescription": "Name is used to describe the authorizer.", + "x-intellij-html-description": "\u003cp\u003eName is used to describe the authorizer.\u003c/p\u003e\n" + }, + "webhook": { + "type": "object", + "title": "webhook", + "description": "webhook is the configuration for the webhook authorizer.\n", + "markdownDescription": "webhook is the configuration for the webhook authorizer.", + "x-intellij-html-description": "\u003cp\u003ewebhook is the configuration for the webhook authorizer.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "AuthorizationConfigAuthorizerConfig represents the API server authorization config authorizer configuration." + }, + "v1alpha1.CNIConfig": { + "properties": { + "name": { + "enum": [ + "flannel", + "custom", + "none" + ], + "title": "name", + "description": "Name of CNI to use.\n", + "markdownDescription": "Name of CNI to use.", + "x-intellij-html-description": "\u003cp\u003eName of CNI to use.\u003c/p\u003e\n" + }, + "urls": { + "items": { + "type": "string" + }, + "type": "array", + "title": "urls", + "description": "URLs containing manifests to apply for the CNI.\nShould be present for “custom”, must be empty for “flannel” and “none”.\n", + "markdownDescription": "URLs containing manifests to apply for the CNI.\nShould be present for \"custom\", must be empty for \"flannel\" and \"none\".", + "x-intellij-html-description": "\u003cp\u003eURLs containing manifests to apply for the CNI.\nShould be present for \u0026ldquo;custom\u0026rdquo;, must be empty for \u0026ldquo;flannel\u0026rdquo; and \u0026ldquo;none\u0026rdquo;.\u003c/p\u003e\n" + }, + "flannel": { + "$ref": "#/$defs/v1alpha1.FlannelCNIConfig", + "title": "flannel", + "description": "description: |\nFlannel configuration options.\n", + "markdownDescription": "description: |\nFlannel configuration options.", + "x-intellij-html-description": "\u003cp\u003edescription: |\nFlannel configuration options.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "CNIConfig represents the CNI configuration options." + }, + "v1alpha1.ClusterConfig": { + "properties": { + "id": { + "type": "string", + "title": "id", + "description": "Globally unique identifier for this cluster (base64 encoded random 32 bytes).\n", + "markdownDescription": "Globally unique identifier for this cluster (base64 encoded random 32 bytes).", + "x-intellij-html-description": "\u003cp\u003eGlobally unique identifier for this cluster (base64 encoded random 32 bytes).\u003c/p\u003e\n" + }, + "secret": { + "type": "string", + "title": "secret", + "description": "Shared secret of cluster (base64 encoded random 32 bytes).\nThis secret is shared among cluster members but should never be sent over the network.\n", + "markdownDescription": "Shared secret of cluster (base64 encoded random 32 bytes).\nThis secret is shared among cluster members but should never be sent over the network.", + "x-intellij-html-description": "\u003cp\u003eShared secret of cluster (base64 encoded random 32 bytes).\nThis secret is shared among cluster members but should never be sent over the network.\u003c/p\u003e\n" + }, + "controlPlane": { + "$ref": "#/$defs/v1alpha1.ControlPlaneConfig", + "title": "controlPlane", + "description": "Provides control plane specific configuration options.\n", + "markdownDescription": "Provides control plane specific configuration options.", + "x-intellij-html-description": "\u003cp\u003eProvides control plane specific configuration options.\u003c/p\u003e\n" + }, + "clusterName": { + "type": "string", + "title": "clusterName", + "description": "Configures the cluster’s name.\n", + "markdownDescription": "Configures the cluster's name.", + "x-intellij-html-description": "\u003cp\u003eConfigures the cluster\u0026rsquo;s name.\u003c/p\u003e\n" + }, + "network": { + "$ref": "#/$defs/v1alpha1.ClusterNetworkConfig", + "title": "network", + "description": "Provides cluster specific network configuration options.\n", + "markdownDescription": "Provides cluster specific network configuration options.", + "x-intellij-html-description": "\u003cp\u003eProvides cluster specific network configuration options.\u003c/p\u003e\n" + }, + "token": { + "type": "string", + "title": "token", + "description": "The bootstrap token used to join the cluster.\n", + "markdownDescription": "The [bootstrap token](https://kubernetes.io/docs/reference/access-authn-authz/bootstrap-tokens/) used to join the cluster.", + "x-intellij-html-description": "\u003cp\u003eThe \u003ca href=\"https://kubernetes.io/docs/reference/access-authn-authz/bootstrap-tokens/\" target=\"_blank\"\u003ebootstrap token\u003c/a\u003e used to join the cluster.\u003c/p\u003e\n" + }, + "aescbcEncryptionSecret": { + "type": "string", + "title": "aescbcEncryptionSecret", + "description": "A key used for the encryption of secret data at rest.\nEnables encryption with AESCBC.\n", + "markdownDescription": "A key used for the [encryption of secret data at rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/).\nEnables encryption with AESCBC.", + "x-intellij-html-description": "\u003cp\u003eA key used for the \u003ca href=\"https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/\" target=\"_blank\"\u003eencryption of secret data at rest\u003c/a\u003e.\nEnables encryption with AESCBC.\u003c/p\u003e\n" + }, + "secretboxEncryptionSecret": { + "type": "string", + "title": "secretboxEncryptionSecret", + "description": "A key used for the encryption of secret data at rest.\nEnables encryption with secretbox.\nSecretbox has precedence over AESCBC.\n", + "markdownDescription": "A key used for the [encryption of secret data at rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/).\nEnables encryption with secretbox.\nSecretbox has precedence over AESCBC.", + "x-intellij-html-description": "\u003cp\u003eA key used for the \u003ca href=\"https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/\" target=\"_blank\"\u003eencryption of secret data at rest\u003c/a\u003e.\nEnables encryption with secretbox.\nSecretbox has precedence over AESCBC.\u003c/p\u003e\n" + }, + "ca": { + "properties": { + "crt": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "title": "ca", + "description": "The base64 encoded root certificate authority used by Kubernetes.\n", + "markdownDescription": "The base64 encoded root certificate authority used by Kubernetes.", + "x-intellij-html-description": "\u003cp\u003eThe base64 encoded root certificate authority used by Kubernetes.\u003c/p\u003e\n" + }, + "acceptedCAs": { + "properties": { + "crt": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "title": "acceptedCAs", + "description": "The list of base64 encoded accepted certificate authorities used by Kubernetes.\n", + "markdownDescription": "The list of base64 encoded accepted certificate authorities used by Kubernetes.", + "x-intellij-html-description": "\u003cp\u003eThe list of base64 encoded accepted certificate authorities used by Kubernetes.\u003c/p\u003e\n" + }, + "aggregatorCA": { + "properties": { + "crt": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "title": "aggregatorCA", + "description": "The base64 encoded aggregator certificate authority used by Kubernetes for front-proxy certificate generation.\n\nThis CA can be self-signed.\n", + "markdownDescription": "The base64 encoded aggregator certificate authority used by Kubernetes for front-proxy certificate generation.\n\nThis CA can be self-signed.", + "x-intellij-html-description": "\u003cp\u003eThe base64 encoded aggregator certificate authority used by Kubernetes for front-proxy certificate generation.\u003c/p\u003e\n\n\u003cp\u003eThis CA can be self-signed.\u003c/p\u003e\n" + }, + "serviceAccount": { + "properties": { + "key": { + "additionalProperties": false, + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "title": "serviceAccount", + "description": "The base64 encoded private key for service account token generation.\n", + "markdownDescription": "The base64 encoded private key for service account token generation.", + "x-intellij-html-description": "\u003cp\u003eThe base64 encoded private key for service account token generation.\u003c/p\u003e\n" + }, + "apiServer": { + "$ref": "#/$defs/v1alpha1.APIServerConfig", + "title": "apiServer", + "description": "API server specific configuration options.\n", + "markdownDescription": "API server specific configuration options.", + "x-intellij-html-description": "\u003cp\u003eAPI server specific configuration options.\u003c/p\u003e\n" + }, + "controllerManager": { + "$ref": "#/$defs/v1alpha1.ControllerManagerConfig", + "title": "controllerManager", + "description": "Controller manager server specific configuration options.\n", + "markdownDescription": "Controller manager server specific configuration options.", + "x-intellij-html-description": "\u003cp\u003eController manager server specific configuration options.\u003c/p\u003e\n" + }, + "proxy": { + "$ref": "#/$defs/v1alpha1.ProxyConfig", + "title": "proxy", + "description": "Kube-proxy server-specific configuration options\n", + "markdownDescription": "Kube-proxy server-specific configuration options", + "x-intellij-html-description": "\u003cp\u003eKube-proxy server-specific configuration options\u003c/p\u003e\n" + }, + "scheduler": { + "$ref": "#/$defs/v1alpha1.SchedulerConfig", + "title": "scheduler", + "description": "Scheduler server specific configuration options.\n", + "markdownDescription": "Scheduler server specific configuration options.", + "x-intellij-html-description": "\u003cp\u003eScheduler server specific configuration options.\u003c/p\u003e\n" + }, + "discovery": { + "$ref": "#/$defs/v1alpha1.ClusterDiscoveryConfig", + "title": "discovery", + "description": "Configures cluster member discovery.\n", + "markdownDescription": "Configures cluster member discovery.", + "x-intellij-html-description": "\u003cp\u003eConfigures cluster member discovery.\u003c/p\u003e\n" + }, + "etcd": { + "$ref": "#/$defs/v1alpha1.EtcdConfig", + "title": "etcd", + "description": "Etcd specific configuration options.\n", + "markdownDescription": "Etcd specific configuration options.", + "x-intellij-html-description": "\u003cp\u003eEtcd specific configuration options.\u003c/p\u003e\n" + }, + "coreDNS": { + "$ref": "#/$defs/v1alpha1.CoreDNS", + "title": "coreDNS", + "description": "Core DNS specific configuration options.\n", + "markdownDescription": "Core DNS specific configuration options.", + "x-intellij-html-description": "\u003cp\u003eCore DNS specific configuration options.\u003c/p\u003e\n" + }, + "externalCloudProvider": { + "$ref": "#/$defs/v1alpha1.ExternalCloudProviderConfig", + "title": "externalCloudProvider", + "description": "External cloud provider configuration.\n", + "markdownDescription": "External cloud provider configuration.", + "x-intellij-html-description": "\u003cp\u003eExternal cloud provider configuration.\u003c/p\u003e\n" + }, + "extraManifests": { + "items": { + "type": "string" + }, + "type": "array", + "title": "extraManifests", + "description": "A list of urls that point to additional manifests.\nThese will get automatically deployed as part of the bootstrap.\n", + "markdownDescription": "A list of urls that point to additional manifests.\nThese will get automatically deployed as part of the bootstrap.", + "x-intellij-html-description": "\u003cp\u003eA list of urls that point to additional manifests.\nThese will get automatically deployed as part of the bootstrap.\u003c/p\u003e\n" + }, + "extraManifestHeaders": { + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object", + "title": "extraManifestHeaders", + "description": "A map of key value pairs that will be added while fetching the extraManifests.\n", + "markdownDescription": "A map of key value pairs that will be added while fetching the extraManifests.", + "x-intellij-html-description": "\u003cp\u003eA map of key value pairs that will be added while fetching the extraManifests.\u003c/p\u003e\n" + }, + "inlineManifests": { + "items": { + "$ref": "#/$defs/v1alpha1.ClusterInlineManifest" + }, + "type": "array", + "title": "inlineManifests", + "description": "A list of inline Kubernetes manifests.\nThese will get automatically deployed as part of the bootstrap.\n", + "markdownDescription": "A list of inline Kubernetes manifests.\nThese will get automatically deployed as part of the bootstrap.", + "x-intellij-html-description": "\u003cp\u003eA list of inline Kubernetes manifests.\nThese will get automatically deployed as part of the bootstrap.\u003c/p\u003e\n" + }, + "adminKubeconfig": { + "$ref": "#/$defs/v1alpha1.AdminKubeconfigConfig", + "title": "adminKubeconfig", + "description": "Settings for admin kubeconfig generation.\nCertificate lifetime can be configured.\n", + "markdownDescription": "Settings for admin kubeconfig generation.\nCertificate lifetime can be configured.", + "x-intellij-html-description": "\u003cp\u003eSettings for admin kubeconfig generation.\nCertificate lifetime can be configured.\u003c/p\u003e\n" + }, + "allowSchedulingOnControlPlanes": { + "type": "boolean", + "title": "allowSchedulingOnControlPlanes", + "description": "Allows running workload on control-plane nodes.\n", + "markdownDescription": "Allows running workload on control-plane nodes.", + "x-intellij-html-description": "\u003cp\u003eAllows running workload on control-plane nodes.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "ClusterConfig represents the cluster-wide config values." + }, + "v1alpha1.ClusterDiscoveryConfig": { + "properties": { + "enabled": { + "type": "boolean", + "title": "enabled", + "description": "Enable the cluster membership discovery feature.\nCluster discovery is based on individual registries which are configured under the registries field.\n", + "markdownDescription": "Enable the cluster membership discovery feature.\nCluster discovery is based on individual registries which are configured under the registries field.", + "x-intellij-html-description": "\u003cp\u003eEnable the cluster membership discovery feature.\nCluster discovery is based on individual registries which are configured under the registries field.\u003c/p\u003e\n" + }, + "registries": { + "$ref": "#/$defs/v1alpha1.DiscoveryRegistriesConfig", + "title": "registries", + "description": "Configure registries used for cluster member discovery.\n", + "markdownDescription": "Configure registries used for cluster member discovery.", + "x-intellij-html-description": "\u003cp\u003eConfigure registries used for cluster member discovery.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "ClusterDiscoveryConfig struct configures cluster membership discovery." + }, + "v1alpha1.ClusterInlineManifest": { + "properties": { + "name": { + "type": "string", + "title": "name", + "description": "Name of the manifest.\nName should be unique.\n", + "markdownDescription": "Name of the manifest.\nName should be unique.", + "x-intellij-html-description": "\u003cp\u003eName of the manifest.\nName should be unique.\u003c/p\u003e\n" + }, + "contents": { + "type": "string", + "title": "contents", + "description": "Manifest contents as a string.\n", + "markdownDescription": "Manifest contents as a string.", + "x-intellij-html-description": "\u003cp\u003eManifest contents as a string.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "ClusterInlineManifest struct describes inline bootstrap manifests for the user." + }, + "v1alpha1.ClusterNetworkConfig": { + "properties": { + "cni": { + "$ref": "#/$defs/v1alpha1.CNIConfig", + "title": "cni", + "description": "The CNI used.\nComposed of “name” and “urls”.\nThe “name” key supports the following options: “flannel”, “custom”, and “none”.\n“flannel” uses Talos-managed Flannel CNI, and that’s the default option.\n“custom” uses custom manifests that should be provided in “urls”.\n“none” indicates that Talos will not manage any CNI installation.\n", + "markdownDescription": "The CNI used.\nComposed of \"name\" and \"urls\".\nThe \"name\" key supports the following options: \"flannel\", \"custom\", and \"none\".\n\"flannel\" uses Talos-managed Flannel CNI, and that's the default option.\n\"custom\" uses custom manifests that should be provided in \"urls\".\n\"none\" indicates that Talos will not manage any CNI installation.", + "x-intellij-html-description": "\u003cp\u003eThe CNI used.\nComposed of \u0026ldquo;name\u0026rdquo; and \u0026ldquo;urls\u0026rdquo;.\nThe \u0026ldquo;name\u0026rdquo; key supports the following options: \u0026ldquo;flannel\u0026rdquo;, \u0026ldquo;custom\u0026rdquo;, and \u0026ldquo;none\u0026rdquo;.\n\u0026ldquo;flannel\u0026rdquo; uses Talos-managed Flannel CNI, and that\u0026rsquo;s the default option.\n\u0026ldquo;custom\u0026rdquo; uses custom manifests that should be provided in \u0026ldquo;urls\u0026rdquo;.\n\u0026ldquo;none\u0026rdquo; indicates that Talos will not manage any CNI installation.\u003c/p\u003e\n" + }, + "dnsDomain": { + "type": "string", + "title": "dnsDomain", + "description": "The domain used by Kubernetes DNS.\nThe default is cluster.local\n", + "markdownDescription": "The domain used by Kubernetes DNS.\nThe default is `cluster.local`", + "x-intellij-html-description": "\u003cp\u003eThe domain used by Kubernetes DNS.\nThe default is \u003ccode\u003ecluster.local\u003c/code\u003e\u003c/p\u003e\n" + }, + "podSubnets": { + "items": { + "type": "string" + }, + "type": "array", + "title": "podSubnets", + "description": "The pod subnet CIDR.\n", + "markdownDescription": "The pod subnet CIDR.", + "x-intellij-html-description": "\u003cp\u003eThe pod subnet CIDR.\u003c/p\u003e\n" + }, + "serviceSubnets": { + "items": { + "type": "string" + }, + "type": "array", + "title": "serviceSubnets", + "description": "The service subnet CIDR.\n", + "markdownDescription": "The service subnet CIDR.", + "x-intellij-html-description": "\u003cp\u003eThe service subnet CIDR.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "ClusterNetworkConfig represents kube networking configuration options." + }, + "v1alpha1.Config": { + "properties": { + "version": { + "enum": [ + "v1alpha1" + ], + "title": "version", + "description": "Indicates the schema used to decode the contents.\n", + "markdownDescription": "Indicates the schema used to decode the contents.", + "x-intellij-html-description": "\u003cp\u003eIndicates the schema used to decode the contents.\u003c/p\u003e\n" + }, + "debug": { + "type": "boolean", + "title": "debug", + "description": "Enable verbose logging to the console.\nAll system containers logs will flow into serial console.\n\nNote: To avoid breaking Talos bootstrap flow enable this option only if serial console can handle high message throughput.\n", + "markdownDescription": "Enable verbose logging to the console.\nAll system containers logs will flow into serial console.\n\n**Note:** To avoid breaking Talos bootstrap flow enable this option only if serial console can handle high message throughput.", + "x-intellij-html-description": "\u003cp\u003eEnable verbose logging to the console.\nAll system containers logs will flow into serial console.\u003c/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e To avoid breaking Talos bootstrap flow enable this option only if serial console can handle high message throughput.\u003c/p\u003e\n" + }, + "machine": { + "$ref": "#/$defs/v1alpha1.MachineConfig", + "title": "machine", + "description": "Provides machine specific configuration options.\n", + "markdownDescription": "Provides machine specific configuration options.", + "x-intellij-html-description": "\u003cp\u003eProvides machine specific configuration options.\u003c/p\u003e\n" + }, + "cluster": { + "$ref": "#/$defs/v1alpha1.ClusterConfig", + "title": "cluster", + "description": "Provides cluster specific configuration options.\n", + "markdownDescription": "Provides cluster specific configuration options.", + "x-intellij-html-description": "\u003cp\u003eProvides cluster specific configuration options.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "Config defines the v1alpha1.Config Talos machine configuration document." + }, + "v1alpha1.ControlPlaneConfig": { + "properties": { + "endpoint": { + "type": "string", + "pattern": "^https://", + "format": "uri", + "title": "endpoint", + "description": "Endpoint is the canonical controlplane endpoint, which can be an IP address or a DNS hostname.\nIt is single-valued, and may optionally include a port number.\n", + "markdownDescription": "Endpoint is the canonical controlplane endpoint, which can be an IP address or a DNS hostname.\nIt is single-valued, and may optionally include a port number.", + "x-intellij-html-description": "\u003cp\u003eEndpoint is the canonical controlplane endpoint, which can be an IP address or a DNS hostname.\nIt is single-valued, and may optionally include a port number.\u003c/p\u003e\n" + }, + "localAPIServerPort": { + "type": "integer", + "title": "localAPIServerPort", + "description": "The port that the API server listens on internally.\nThis may be different than the port portion listed in the endpoint field above.\nThe default is 6443.\n", + "markdownDescription": "The port that the API server listens on internally.\nThis may be different than the port portion listed in the endpoint field above.\nThe default is `6443`.", + "x-intellij-html-description": "\u003cp\u003eThe port that the API server listens on internally.\nThis may be different than the port portion listed in the endpoint field above.\nThe default is \u003ccode\u003e6443\u003c/code\u003e.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "ControlPlaneConfig represents the control plane configuration options." + }, + "v1alpha1.ControllerManagerConfig": { + "properties": { + "image": { + "type": "string", + "title": "image", + "description": "The container image used in the controller manager manifest.\n", + "markdownDescription": "The container image used in the controller manager manifest.", + "x-intellij-html-description": "\u003cp\u003eThe container image used in the controller manager manifest.\u003c/p\u003e\n" + }, + "extraArgs": { + "additionalProperties": { + "oneOf": [ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } + ] + }, + "type": "object", + "title": "extraArgs", + "description": "Extra arguments to supply to the controller manager.\n", + "markdownDescription": "Extra arguments to supply to the controller manager.", + "x-intellij-html-description": "\u003cp\u003eExtra arguments to supply to the controller manager.\u003c/p\u003e\n" + }, + "extraVolumes": { + "items": { + "$ref": "#/$defs/v1alpha1.VolumeMountConfig" + }, + "type": "array", + "title": "extraVolumes", + "description": "Extra volumes to mount to the controller manager static pod.\n", + "markdownDescription": "Extra volumes to mount to the controller manager static pod.", + "x-intellij-html-description": "\u003cp\u003eExtra volumes to mount to the controller manager static pod.\u003c/p\u003e\n" + }, + "env": { + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object", + "title": "env", + "description": "The env field allows for the addition of environment variables for the control plane component.\n", + "markdownDescription": "The `env` field allows for the addition of environment variables for the control plane component.", + "x-intellij-html-description": "\u003cp\u003eThe \u003ccode\u003eenv\u003c/code\u003e field allows for the addition of environment variables for the control plane component.\u003c/p\u003e\n" + }, + "resources": { + "type": "object", + "title": "resources", + "description": "Configure the controller manager resources.\n", + "markdownDescription": "Configure the controller manager resources.", + "x-intellij-html-description": "\u003cp\u003eConfigure the controller manager resources.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "ControllerManagerConfig represents the kube controller manager configuration options." + }, + "v1alpha1.CoreDNS": { + "properties": { + "disabled": { + "type": "boolean", + "title": "disabled", + "description": "Disable coredns deployment on cluster bootstrap.\n", + "markdownDescription": "Disable coredns deployment on cluster bootstrap.", + "x-intellij-html-description": "\u003cp\u003eDisable coredns deployment on cluster bootstrap.\u003c/p\u003e\n" + }, + "image": { + "type": "string", + "title": "image", + "description": "The image field is an override to the default coredns image.\n", + "markdownDescription": "The `image` field is an override to the default coredns image.", + "x-intellij-html-description": "\u003cp\u003eThe \u003ccode\u003eimage\u003c/code\u003e field is an override to the default coredns image.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "CoreDNS represents the CoreDNS config values." + }, + "v1alpha1.DiscoveryRegistriesConfig": { + "properties": { + "kubernetes": { + "$ref": "#/$defs/v1alpha1.RegistryKubernetesConfig", + "title": "kubernetes", + "description": "Kubernetes registry uses Kubernetes API server to discover cluster members and stores additional information\nas annotations on the Node resources.\n\nThis feature is deprecated as it is not compatible with Kubernetes 1.32+.\nSee https://github.com/siderolabs/talos/issues/9980 for more information.\n", + "markdownDescription": "Kubernetes registry uses Kubernetes API server to discover cluster members and stores additional information\nas annotations on the Node resources.\n\nThis feature is deprecated as it is not compatible with Kubernetes 1.32+.\nSee https://github.com/siderolabs/talos/issues/9980 for more information.", + "x-intellij-html-description": "\u003cp\u003eKubernetes registry uses Kubernetes API server to discover cluster members and stores additional information\nas annotations on the Node resources.\u003c/p\u003e\n\n\u003cp\u003eThis feature is deprecated as it is not compatible with Kubernetes 1.32+.\nSee \u003ca href=\"https://github.com/siderolabs/talos/issues/9980\" target=\"_blank\"\u003ehttps://github.com/siderolabs/talos/issues/9980\u003c/a\u003e for more information.\u003c/p\u003e\n" + }, + "service": { + "$ref": "#/$defs/v1alpha1.RegistryServiceConfig", + "title": "service", + "description": "Service registry is using an external service to push and pull information about cluster members.\n", + "markdownDescription": "Service registry is using an external service to push and pull information about cluster members.", + "x-intellij-html-description": "\u003cp\u003eService registry is using an external service to push and pull information about cluster members.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "DiscoveryRegistriesConfig struct configures cluster membership discovery." + }, + "v1alpha1.Endpoint": { + "properties": {}, + "additionalProperties": false, + "type": "object", + "description": "Endpoint represents the endpoint URL parsed out of the machine config." + }, + "v1alpha1.EtcdConfig": { + "properties": { + "image": { + "type": "string", + "title": "image", + "description": "The container image used to create the etcd service.\n", + "markdownDescription": "The container image used to create the etcd service.", + "x-intellij-html-description": "\u003cp\u003eThe container image used to create the etcd service.\u003c/p\u003e\n" + }, + "ca": { + "properties": { + "crt": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "title": "ca", + "description": "The ca is the root certificate authority of the PKI.\nIt is composed of a base64 encoded crt and key.\n", + "markdownDescription": "The `ca` is the root certificate authority of the PKI.\nIt is composed of a base64 encoded `crt` and `key`.", + "x-intellij-html-description": "\u003cp\u003eThe \u003ccode\u003eca\u003c/code\u003e is the root certificate authority of the PKI.\nIt is composed of a base64 encoded \u003ccode\u003ecrt\u003c/code\u003e and \u003ccode\u003ekey\u003c/code\u003e.\u003c/p\u003e\n" + }, + "extraArgs": { + "additionalProperties": { + "oneOf": [ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } + ] + }, + "type": "object", + "title": "extraArgs", + "description": "Extra arguments to supply to etcd.\nNote that the following args are not allowed:\n\n\nname\ndata-dir\ninitial-cluster-state\nlisten-peer-urls\nlisten-client-urls\ncert-file\nkey-file\ntrusted-ca-file\npeer-client-cert-auth\npeer-cert-file\npeer-trusted-ca-file\npeer-key-file\n\n", + "markdownDescription": "Extra arguments to supply to etcd.\nNote that the following args are not allowed:\n\n- `name`\n- `data-dir`\n- `initial-cluster-state`\n- `listen-peer-urls`\n- `listen-client-urls`\n- `cert-file`\n- `key-file`\n- `trusted-ca-file`\n- `peer-client-cert-auth`\n- `peer-cert-file`\n- `peer-trusted-ca-file`\n- `peer-key-file`", + "x-intellij-html-description": "\u003cp\u003eExtra arguments to supply to etcd.\nNote that the following args are not allowed:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edata-dir\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003einitial-cluster-state\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elisten-peer-urls\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elisten-client-urls\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecert-file\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ekey-file\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003etrusted-ca-file\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epeer-client-cert-auth\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epeer-cert-file\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epeer-trusted-ca-file\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epeer-key-file\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n" + }, + "advertisedSubnets": { + "items": { + "type": "string" + }, + "type": "array", + "title": "advertisedSubnets", + "description": "The advertisedSubnets field configures the networks to pick etcd advertised IP from.\n\nIPs can be excluded from the list by using negative match with !, e.g !10.0.0.0/8.\nNegative subnet matches should be specified last to filter out IPs picked by positive matches.\nIf not specified, advertised IP is selected as the first routable address of the node.\n", + "markdownDescription": "The `advertisedSubnets` field configures the networks to pick etcd advertised IP from.\n\nIPs can be excluded from the list by using negative match with `!`, e.g `!10.0.0.0/8`.\nNegative subnet matches should be specified last to filter out IPs picked by positive matches.\nIf not specified, advertised IP is selected as the first routable address of the node.", + "x-intellij-html-description": "\u003cp\u003eThe \u003ccode\u003eadvertisedSubnets\u003c/code\u003e field configures the networks to pick etcd advertised IP from.\u003c/p\u003e\n\n\u003cp\u003eIPs can be excluded from the list by using negative match with \u003ccode\u003e!\u003c/code\u003e, e.g \u003ccode\u003e!10.0.0.0/8\u003c/code\u003e.\nNegative subnet matches should be specified last to filter out IPs picked by positive matches.\nIf not specified, advertised IP is selected as the first routable address of the node.\u003c/p\u003e\n" + }, + "listenSubnets": { + "items": { + "type": "string" + }, + "type": "array", + "title": "listenSubnets", + "description": "The listenSubnets field configures the networks for the etcd to listen for peer and client connections.\n\nIf listenSubnets is not set, but advertisedSubnets is set, listenSubnets defaults to\nadvertisedSubnets.\n\nIf neither advertisedSubnets nor listenSubnets is set, listenSubnets defaults to listen on all addresses.\n\nIPs can be excluded from the list by using negative match with !, e.g !10.0.0.0/8.\nNegative subnet matches should be specified last to filter out IPs picked by positive matches.\nIf not specified, advertised IP is selected as the first routable address of the node.\n", + "markdownDescription": "The `listenSubnets` field configures the networks for the etcd to listen for peer and client connections.\n\nIf `listenSubnets` is not set, but `advertisedSubnets` is set, `listenSubnets` defaults to\n`advertisedSubnets`.\n\nIf neither `advertisedSubnets` nor `listenSubnets` is set, `listenSubnets` defaults to listen on all addresses.\n\nIPs can be excluded from the list by using negative match with `!`, e.g `!10.0.0.0/8`.\nNegative subnet matches should be specified last to filter out IPs picked by positive matches.\nIf not specified, advertised IP is selected as the first routable address of the node.", + "x-intellij-html-description": "\u003cp\u003eThe \u003ccode\u003elistenSubnets\u003c/code\u003e field configures the networks for the etcd to listen for peer and client connections.\u003c/p\u003e\n\n\u003cp\u003eIf \u003ccode\u003elistenSubnets\u003c/code\u003e is not set, but \u003ccode\u003eadvertisedSubnets\u003c/code\u003e is set, \u003ccode\u003elistenSubnets\u003c/code\u003e defaults to\n\u003ccode\u003eadvertisedSubnets\u003c/code\u003e.\u003c/p\u003e\n\n\u003cp\u003eIf neither \u003ccode\u003eadvertisedSubnets\u003c/code\u003e nor \u003ccode\u003elistenSubnets\u003c/code\u003e is set, \u003ccode\u003elistenSubnets\u003c/code\u003e defaults to listen on all addresses.\u003c/p\u003e\n\n\u003cp\u003eIPs can be excluded from the list by using negative match with \u003ccode\u003e!\u003c/code\u003e, e.g \u003ccode\u003e!10.0.0.0/8\u003c/code\u003e.\nNegative subnet matches should be specified last to filter out IPs picked by positive matches.\nIf not specified, advertised IP is selected as the first routable address of the node.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "EtcdConfig represents the etcd configuration options." + }, + "v1alpha1.ExternalCloudProviderConfig": { + "properties": { + "enabled": { + "type": "boolean", + "title": "enabled", + "description": "Enable external cloud provider.\n", + "markdownDescription": "Enable external cloud provider.", + "x-intellij-html-description": "\u003cp\u003eEnable external cloud provider.\u003c/p\u003e\n" + }, + "manifests": { + "items": { + "type": "string" + }, + "type": "array", + "title": "manifests", + "description": "A list of urls that point to additional manifests for an external cloud provider.\nThese will get automatically deployed as part of the bootstrap.\n", + "markdownDescription": "A list of urls that point to additional manifests for an external cloud provider.\nThese will get automatically deployed as part of the bootstrap.", + "x-intellij-html-description": "\u003cp\u003eA list of urls that point to additional manifests for an external cloud provider.\nThese will get automatically deployed as part of the bootstrap.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "ExternalCloudProviderConfig contains external cloud provider configuration." + }, + "v1alpha1.ExtraMount": { + "properties": { + "destination": { + "type": "string", + "title": "destination", + "description": "Destination is the absolute path where the mount will be placed in the container.\n", + "markdownDescription": "Destination is the absolute path where the mount will be placed in the container.", + "x-intellij-html-description": "\u003cp\u003eDestination is the absolute path where the mount will be placed in the container.\u003c/p\u003e\n" + }, + "type": { + "type": "string", + "title": "type", + "description": "Type specifies the mount kind.\n", + "markdownDescription": "Type specifies the mount kind.", + "x-intellij-html-description": "\u003cp\u003eType specifies the mount kind.\u003c/p\u003e\n" + }, + "source": { + "type": "string", + "title": "source", + "description": "Source specifies the source path of the mount.\n", + "markdownDescription": "Source specifies the source path of the mount.", + "x-intellij-html-description": "\u003cp\u003eSource specifies the source path of the mount.\u003c/p\u003e\n" + }, + "options": { + "items": { + "type": "string" + }, + "type": "array", + "title": "options", + "description": "Options are fstab style mount options.\n", + "markdownDescription": "Options are fstab style mount options.", + "x-intellij-html-description": "\u003cp\u003eOptions are fstab style mount options.\u003c/p\u003e\n" + }, + "uidMappings": { + "items": { + "$ref": "#/$defs/v1alpha1.LinuxIDMapping" + }, + "type": "array", + "title": "uidMappings", + "description": "UID/GID mappings used for changing file owners w/o calling chown, fs should support it.\n\nEvery mount point could have its own mapping.\n", + "markdownDescription": "UID/GID mappings used for changing file owners w/o calling chown, fs should support it.\n\nEvery mount point could have its own mapping.", + "x-intellij-html-description": "\u003cp\u003eUID/GID mappings used for changing file owners w/o calling chown, fs should support it.\u003c/p\u003e\n\n\u003cp\u003eEvery mount point could have its own mapping.\u003c/p\u003e\n" + }, + "gidMappings": { + "items": { + "$ref": "#/$defs/v1alpha1.LinuxIDMapping" + }, + "type": "array", + "title": "gidMappings", + "description": "UID/GID mappings used for changing file owners w/o calling chown, fs should support it.\n\nEvery mount point could have its own mapping.\n", + "markdownDescription": "UID/GID mappings used for changing file owners w/o calling chown, fs should support it.\n\nEvery mount point could have its own mapping.", + "x-intellij-html-description": "\u003cp\u003eUID/GID mappings used for changing file owners w/o calling chown, fs should support it.\u003c/p\u003e\n\n\u003cp\u003eEvery mount point could have its own mapping.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "ExtraMount wraps OCI Mount specification." + }, + "v1alpha1.FeaturesConfig": { + "properties": { + "kubernetesTalosAPIAccess": { + "$ref": "#/$defs/v1alpha1.KubernetesTalosAPIAccessConfig", + "title": "kubernetesTalosAPIAccess", + "description": "Configure Talos API access from Kubernetes pods.\n\nThis feature is disabled if the feature config is not specified.\n", + "markdownDescription": "Configure Talos API access from Kubernetes pods.\n\nThis feature is disabled if the feature config is not specified.", + "x-intellij-html-description": "\u003cp\u003eConfigure Talos API access from Kubernetes pods.\u003c/p\u003e\n\n\u003cp\u003eThis feature is disabled if the feature config is not specified.\u003c/p\u003e\n" + }, + "diskQuotaSupport": { + "type": "boolean", + "title": "diskQuotaSupport", + "description": "Enable XFS project quota support for EPHEMERAL partition and user disks.\nAlso enables kubelet tracking of ephemeral disk usage in the kubelet via quota.\n", + "markdownDescription": "Enable XFS project quota support for EPHEMERAL partition and user disks.\nAlso enables kubelet tracking of ephemeral disk usage in the kubelet via quota.", + "x-intellij-html-description": "\u003cp\u003eEnable XFS project quota support for EPHEMERAL partition and user disks.\nAlso enables kubelet tracking of ephemeral disk usage in the kubelet via quota.\u003c/p\u003e\n" + }, + "kubePrism": { + "$ref": "#/$defs/v1alpha1.KubePrism", + "title": "kubePrism", + "description": "KubePrism - local proxy/load balancer on defined port that will distribute\nrequests to all API servers in the cluster.\n", + "markdownDescription": "KubePrism - local proxy/load balancer on defined port that will distribute\nrequests to all API servers in the cluster.", + "x-intellij-html-description": "\u003cp\u003eKubePrism - local proxy/load balancer on defined port that will distribute\nrequests to all API servers in the cluster.\u003c/p\u003e\n" + }, + "hostDNS": { + "$ref": "#/$defs/v1alpha1.HostDNSConfig", + "title": "hostDNS", + "description": "Configures host DNS caching resolver.\n", + "markdownDescription": "Configures host DNS caching resolver.", + "x-intellij-html-description": "\u003cp\u003eConfigures host DNS caching resolver.\u003c/p\u003e\n" + }, + "imageCache": { + "$ref": "#/$defs/v1alpha1.ImageCacheConfig", + "title": "imageCache", + "description": "Enable Image Cache feature.\n", + "markdownDescription": "Enable Image Cache feature.", + "x-intellij-html-description": "\u003cp\u003eEnable Image Cache feature.\u003c/p\u003e\n" + }, + "nodeAddressSortAlgorithm": { + "type": "string", + "title": "nodeAddressSortAlgorithm", + "description": "Select the node address sort algorithm.\nThe ‘v1’ algorithm sorts addresses by the address itself.\nThe ‘v2’ algorithm prefers more specific prefixes.\nIf unset, defaults to ‘v1’.\n", + "markdownDescription": "Select the node address sort algorithm.\nThe 'v1' algorithm sorts addresses by the address itself.\nThe 'v2' algorithm prefers more specific prefixes.\nIf unset, defaults to 'v1'.", + "x-intellij-html-description": "\u003cp\u003eSelect the node address sort algorithm.\nThe \u0026lsquo;v1\u0026rsquo; algorithm sorts addresses by the address itself.\nThe \u0026lsquo;v2\u0026rsquo; algorithm prefers more specific prefixes.\nIf unset, defaults to \u0026lsquo;v1\u0026rsquo;.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "FeaturesConfig describes individual Talos features that can be switched on or off." + }, + "v1alpha1.FlannelCNIConfig": { + "properties": { + "extraArgs": { + "items": { + "type": "string" + }, + "type": "array", + "title": "extraArgs", + "description": "Extra arguments for ‘flanneld’.\n", + "markdownDescription": "Extra arguments for 'flanneld'.", + "x-intellij-html-description": "\u003cp\u003eExtra arguments for \u0026lsquo;flanneld\u0026rsquo;.\u003c/p\u003e\n" + }, + "kubeNetworkPoliciesEnabled": { + "type": "boolean", + "title": "kubeNetworkPoliciesEnabled", + "description": "Deploys kube-network-policies along with Flannel.\n\nThis enables Kubernetes Network Policies support in the cluster.\n", + "markdownDescription": "Deploys kube-network-policies along with Flannel.\n\nThis enables Kubernetes Network Policies support in the cluster.", + "x-intellij-html-description": "\u003cp\u003eDeploys kube-network-policies along with Flannel.\u003c/p\u003e\n\n\u003cp\u003eThis enables Kubernetes Network Policies support in the cluster.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "FlannelCNIConfig represents the Flannel CNI configuration options." + }, + "v1alpha1.HostDNSConfig": { + "properties": { + "enabled": { + "type": "boolean", + "title": "enabled", + "description": "Enable host DNS caching resolver.\n", + "markdownDescription": "Enable host DNS caching resolver.", + "x-intellij-html-description": "\u003cp\u003eEnable host DNS caching resolver.\u003c/p\u003e\n" + }, + "forwardKubeDNSToHost": { + "type": "boolean", + "title": "forwardKubeDNSToHost", + "description": "Use the host DNS resolver as upstream for Kubernetes CoreDNS pods.\n\nWhen enabled, CoreDNS pods use host DNS server as the upstream DNS (instead of\nusing configured upstream DNS resolvers directly).\n", + "markdownDescription": "Use the host DNS resolver as upstream for Kubernetes CoreDNS pods.\n\nWhen enabled, CoreDNS pods use host DNS server as the upstream DNS (instead of\nusing configured upstream DNS resolvers directly).", + "x-intellij-html-description": "\u003cp\u003eUse the host DNS resolver as upstream for Kubernetes CoreDNS pods.\u003c/p\u003e\n\n\u003cp\u003eWhen enabled, CoreDNS pods use host DNS server as the upstream DNS (instead of\nusing configured upstream DNS resolvers directly).\u003c/p\u003e\n" + }, + "resolveMemberNames": { + "type": "boolean", + "title": "resolveMemberNames", + "description": "Resolve member hostnames using the host DNS resolver.\n\nWhen enabled, cluster member hostnames and node names are resolved using the host DNS resolver.\nThis requires service discovery to be enabled.\n", + "markdownDescription": "Resolve member hostnames using the host DNS resolver.\n\nWhen enabled, cluster member hostnames and node names are resolved using the host DNS resolver.\nThis requires service discovery to be enabled.", + "x-intellij-html-description": "\u003cp\u003eResolve member hostnames using the host DNS resolver.\u003c/p\u003e\n\n\u003cp\u003eWhen enabled, cluster member hostnames and node names are resolved using the host DNS resolver.\nThis requires service discovery to be enabled.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "HostDNSConfig describes the configuration for the host DNS resolver." + }, + "v1alpha1.ImageCacheConfig": { + "properties": { + "localEnabled": { + "type": "boolean", + "title": "localEnabled", + "description": "Enable local image cache.\n", + "markdownDescription": "Enable local image cache.", + "x-intellij-html-description": "\u003cp\u003eEnable local image cache.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "ImageCacheConfig describes the configuration for the Image Cache feature." + }, + "v1alpha1.InstallConfig": { + "properties": { + "disk": { + "type": "string", + "title": "disk", + "description": "The disk used for installations.\n", + "markdownDescription": "The disk used for installations.", + "x-intellij-html-description": "\u003cp\u003eThe disk used for installations.\u003c/p\u003e\n" + }, + "diskSelector": { + "$ref": "#/$defs/v1alpha1.InstallDiskSelector", + "title": "diskSelector", + "description": "Look up disk using disk attributes like model, size, serial and others.\nAlways has priority over disk.\n", + "markdownDescription": "Look up disk using disk attributes like model, size, serial and others.\nAlways has priority over `disk`.", + "x-intellij-html-description": "\u003cp\u003eLook up disk using disk attributes like model, size, serial and others.\nAlways has priority over \u003ccode\u003edisk\u003c/code\u003e.\u003c/p\u003e\n" + }, + "image": { + "type": "string", + "title": "image", + "description": "Allows for supplying the image used to perform the installation.\nImage reference for each Talos release can be found on\nGitHub releases page.\n", + "markdownDescription": "Allows for supplying the image used to perform the installation.\nImage reference for each Talos release can be found on\n[GitHub releases page](https://github.com/siderolabs/talos/releases).", + "x-intellij-html-description": "\u003cp\u003eAllows for supplying the image used to perform the installation.\nImage reference for each Talos release can be found on\n\u003ca href=\"https://github.com/siderolabs/talos/releases\" target=\"_blank\"\u003eGitHub releases page\u003c/a\u003e.\u003c/p\u003e\n" + }, + "wipe": { + "type": "boolean", + "title": "wipe", + "description": "Indicates if the installation disk should be wiped at installation time.\nDefaults to true.\n", + "markdownDescription": "Indicates if the installation disk should be wiped at installation time.\nDefaults to `true`.", + "x-intellij-html-description": "\u003cp\u003eIndicates if the installation disk should be wiped at installation time.\nDefaults to \u003ccode\u003etrue\u003c/code\u003e.\u003c/p\u003e\n" + }, + "legacyBIOSSupport": { + "type": "boolean", + "title": "legacyBIOSSupport", + "description": "Indicates if MBR partition should be marked as bootable (active).\nShould be enabled only for the systems with legacy BIOS that doesn’t support GPT partitioning scheme.\n", + "markdownDescription": "Indicates if MBR partition should be marked as bootable (active).\nShould be enabled only for the systems with legacy BIOS that doesn't support GPT partitioning scheme.", + "x-intellij-html-description": "\u003cp\u003eIndicates if MBR partition should be marked as bootable (active).\nShould be enabled only for the systems with legacy BIOS that doesn\u0026rsquo;t support GPT partitioning scheme.\u003c/p\u003e\n" + }, + "grubUseUKICmdline": { + "type": "boolean", + "title": "grubUseUKICmdline", + "description": "Indicates if legacy GRUB bootloader should use kernel cmdline from the UKI instead of building it on the host.\nThis changes the way cmdline is managed with GRUB bootloader to be more consistent with UKI/systemd-boot.\n", + "markdownDescription": "Indicates if legacy GRUB bootloader should use kernel cmdline from the UKI instead of building it on the host.\nThis changes the way cmdline is managed with GRUB bootloader to be more consistent with UKI/systemd-boot.", + "x-intellij-html-description": "\u003cp\u003eIndicates if legacy GRUB bootloader should use kernel cmdline from the UKI instead of building it on the host.\nThis changes the way cmdline is managed with GRUB bootloader to be more consistent with UKI/systemd-boot.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "InstallConfig represents the installation options for preparing a node." + }, + "v1alpha1.InstallDiskSelector": { + "properties": { + "size": { + "type": "string", + "title": "size", + "description": "Disk size.\n", + "markdownDescription": "Disk size.", + "x-intellij-html-description": "\u003cp\u003eDisk size.\u003c/p\u003e\n" + }, + "name": { + "type": "string", + "title": "name", + "description": "Disk name /sys/block/\u0026lt;dev\u0026gt;/device/name.\n", + "markdownDescription": "Disk name `/sys/block/\u003cdev\u003e/device/name`.", + "x-intellij-html-description": "\u003cp\u003eDisk name \u003ccode\u003e/sys/block/\u0026lt;dev\u0026gt;/device/name\u003c/code\u003e.\u003c/p\u003e\n" + }, + "model": { + "type": "string", + "title": "model", + "description": "Disk model /sys/block/\u0026lt;dev\u0026gt;/device/model.\n", + "markdownDescription": "Disk model `/sys/block/\u003cdev\u003e/device/model`.", + "x-intellij-html-description": "\u003cp\u003eDisk model \u003ccode\u003e/sys/block/\u0026lt;dev\u0026gt;/device/model\u003c/code\u003e.\u003c/p\u003e\n" + }, + "serial": { + "type": "string", + "title": "serial", + "description": "Disk serial number /sys/block/\u0026lt;dev\u0026gt;/serial.\n", + "markdownDescription": "Disk serial number `/sys/block/\u003cdev\u003e/serial`.", + "x-intellij-html-description": "\u003cp\u003eDisk serial number \u003ccode\u003e/sys/block/\u0026lt;dev\u0026gt;/serial\u003c/code\u003e.\u003c/p\u003e\n" + }, + "modalias": { + "type": "string", + "title": "modalias", + "description": "Disk modalias /sys/block/\u0026lt;dev\u0026gt;/device/modalias.\n", + "markdownDescription": "Disk modalias `/sys/block/\u003cdev\u003e/device/modalias`.", + "x-intellij-html-description": "\u003cp\u003eDisk modalias \u003ccode\u003e/sys/block/\u0026lt;dev\u0026gt;/device/modalias\u003c/code\u003e.\u003c/p\u003e\n" + }, + "uuid": { + "type": "string", + "title": "uuid", + "description": "Disk UUID /sys/block/\u0026lt;dev\u0026gt;/uuid.\n", + "markdownDescription": "Disk UUID `/sys/block/\u003cdev\u003e/uuid`.", + "x-intellij-html-description": "\u003cp\u003eDisk UUID \u003ccode\u003e/sys/block/\u0026lt;dev\u0026gt;/uuid\u003c/code\u003e.\u003c/p\u003e\n" + }, + "wwid": { + "type": "string", + "title": "wwid", + "description": "Disk WWID /sys/block/\u0026lt;dev\u0026gt;/wwid.\n", + "markdownDescription": "Disk WWID `/sys/block/\u003cdev\u003e/wwid`.", + "x-intellij-html-description": "\u003cp\u003eDisk WWID \u003ccode\u003e/sys/block/\u0026lt;dev\u0026gt;/wwid\u003c/code\u003e.\u003c/p\u003e\n" + }, + "type": { + "enum": [ + "ssd", + "hdd", + "nvme", + "sd" + ], + "title": "type", + "description": "Disk Type.\n", + "markdownDescription": "Disk Type.", + "x-intellij-html-description": "\u003cp\u003eDisk Type.\u003c/p\u003e\n" + }, + "busPath": { + "type": "string", + "title": "busPath", + "description": "Disk bus path.\n", + "markdownDescription": "Disk bus path.", + "x-intellij-html-description": "\u003cp\u003eDisk bus path.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "InstallDiskSelector represents a disk query parameters for the install disk lookup." + }, + "v1alpha1.KernelConfig": { + "properties": { + "modules": { + "items": { + "$ref": "#/$defs/v1alpha1.KernelModuleConfig" + }, + "type": "array", + "title": "modules", + "description": "Kernel modules to load.\n", + "markdownDescription": "Kernel modules to load.", + "x-intellij-html-description": "\u003cp\u003eKernel modules to load.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "KernelConfig struct configures Talos Linux kernel." + }, + "v1alpha1.KernelModuleConfig": { + "properties": { + "name": { + "type": "string", + "title": "name", + "description": "Module name.\n", + "markdownDescription": "Module name.", + "x-intellij-html-description": "\u003cp\u003eModule name.\u003c/p\u003e\n" + }, + "parameters": { + "items": { + "type": "string" + }, + "type": "array", + "title": "parameters", + "description": "Module parameters, changes applied after reboot.\n", + "markdownDescription": "Module parameters, changes applied after reboot.", + "x-intellij-html-description": "\u003cp\u003eModule parameters, changes applied after reboot.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "KernelModuleConfig struct configures Linux kernel modules to load." + }, + "v1alpha1.KubePrism": { + "properties": { + "enabled": { + "type": "boolean", + "title": "enabled", + "description": "Enable KubePrism support - will start local load balancing proxy.\n", + "markdownDescription": "Enable KubePrism support - will start local load balancing proxy.", + "x-intellij-html-description": "\u003cp\u003eEnable KubePrism support - will start local load balancing proxy.\u003c/p\u003e\n" + }, + "port": { + "type": "integer", + "title": "port", + "description": "KubePrism port.\n", + "markdownDescription": "KubePrism port.", + "x-intellij-html-description": "\u003cp\u003eKubePrism port.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "KubePrism describes the configuration for the KubePrism load balancer." + }, + "v1alpha1.KubeletConfig": { + "properties": { + "image": { + "type": "string", + "title": "image", + "description": "The image field is an optional reference to an alternative kubelet image.\n", + "markdownDescription": "The `image` field is an optional reference to an alternative kubelet image.", + "x-intellij-html-description": "\u003cp\u003eThe \u003ccode\u003eimage\u003c/code\u003e field is an optional reference to an alternative kubelet image.\u003c/p\u003e\n" + }, + "clusterDNS": { + "items": { + "type": "string" + }, + "type": "array", + "title": "clusterDNS", + "description": "The ClusterDNS field is an optional reference to an alternative kubelet clusterDNS ip list.\n", + "markdownDescription": "The `ClusterDNS` field is an optional reference to an alternative kubelet clusterDNS ip list.", + "x-intellij-html-description": "\u003cp\u003eThe \u003ccode\u003eClusterDNS\u003c/code\u003e field is an optional reference to an alternative kubelet clusterDNS ip list.\u003c/p\u003e\n" + }, + "extraArgs": { + "additionalProperties": { + "oneOf": [ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } + ] + }, + "type": "object", + "title": "extraArgs", + "description": "The extraArgs field is used to provide additional flags to the kubelet.\n", + "markdownDescription": "The `extraArgs` field is used to provide additional flags to the kubelet.", + "x-intellij-html-description": "\u003cp\u003eThe \u003ccode\u003eextraArgs\u003c/code\u003e field is used to provide additional flags to the kubelet.\u003c/p\u003e\n" + }, + "extraMounts": { + "items": { + "$ref": "#/$defs/v1alpha1.ExtraMount" + }, + "type": "array", + "title": "extraMounts", + "description": "The extraMounts field is used to add additional mounts to the kubelet container.\nNote that either bind or rbind are required in the options.\n", + "markdownDescription": "The `extraMounts` field is used to add additional mounts to the kubelet container.\nNote that either `bind` or `rbind` are required in the `options`.", + "x-intellij-html-description": "\u003cp\u003eThe \u003ccode\u003eextraMounts\u003c/code\u003e field is used to add additional mounts to the kubelet container.\nNote that either \u003ccode\u003ebind\u003c/code\u003e or \u003ccode\u003erbind\u003c/code\u003e are required in the \u003ccode\u003eoptions\u003c/code\u003e.\u003c/p\u003e\n" + }, + "extraConfig": { + "type": "object", + "title": "extraConfig", + "description": "The extraConfig field is used to provide kubelet configuration overrides.\n\nSome fields are not allowed to be overridden: authentication and authorization, cgroups\nconfiguration, ports, etc.\n", + "markdownDescription": "The `extraConfig` field is used to provide kubelet configuration overrides.\n\nSome fields are not allowed to be overridden: authentication and authorization, cgroups\nconfiguration, ports, etc.", + "x-intellij-html-description": "\u003cp\u003eThe \u003ccode\u003eextraConfig\u003c/code\u003e field is used to provide kubelet configuration overrides.\u003c/p\u003e\n\n\u003cp\u003eSome fields are not allowed to be overridden: authentication and authorization, cgroups\nconfiguration, ports, etc.\u003c/p\u003e\n" + }, + "credentialProviderConfig": { + "type": "object", + "title": "credentialProviderConfig", + "description": "The KubeletCredentialProviderConfig field is used to provide kubelet credential configuration.\n", + "markdownDescription": "The `KubeletCredentialProviderConfig` field is used to provide kubelet credential configuration.", + "x-intellij-html-description": "\u003cp\u003eThe \u003ccode\u003eKubeletCredentialProviderConfig\u003c/code\u003e field is used to provide kubelet credential configuration.\u003c/p\u003e\n" + }, + "defaultRuntimeSeccompProfileEnabled": { + "type": "boolean", + "title": "defaultRuntimeSeccompProfileEnabled", + "description": "Enable container runtime default Seccomp profile.\n", + "markdownDescription": "Enable container runtime default Seccomp profile.", + "x-intellij-html-description": "\u003cp\u003eEnable container runtime default Seccomp profile.\u003c/p\u003e\n" + }, + "registerWithFQDN": { + "type": "boolean", + "title": "registerWithFQDN", + "description": "The registerWithFQDN field is used to force kubelet to use the node FQDN for registration.\nThis is required in clouds like AWS.\n", + "markdownDescription": "The `registerWithFQDN` field is used to force kubelet to use the node FQDN for registration.\nThis is required in clouds like AWS.", + "x-intellij-html-description": "\u003cp\u003eThe \u003ccode\u003eregisterWithFQDN\u003c/code\u003e field is used to force kubelet to use the node FQDN for registration.\nThis is required in clouds like AWS.\u003c/p\u003e\n" + }, + "nodeIP": { + "$ref": "#/$defs/v1alpha1.KubeletNodeIPConfig", + "title": "nodeIP", + "description": "The nodeIP field is used to configure --node-ip flag for the kubelet.\nThis is used when a node has multiple addresses to choose from.\n", + "markdownDescription": "The `nodeIP` field is used to configure `--node-ip` flag for the kubelet.\nThis is used when a node has multiple addresses to choose from.", + "x-intellij-html-description": "\u003cp\u003eThe \u003ccode\u003enodeIP\u003c/code\u003e field is used to configure \u003ccode\u003e--node-ip\u003c/code\u003e flag for the kubelet.\nThis is used when a node has multiple addresses to choose from.\u003c/p\u003e\n" + }, + "skipNodeRegistration": { + "type": "boolean", + "title": "skipNodeRegistration", + "description": "The skipNodeRegistration is used to run the kubelet without registering with the apiserver.\nThis runs kubelet as standalone and only runs static pods.\n", + "markdownDescription": "The `skipNodeRegistration` is used to run the kubelet without registering with the apiserver.\nThis runs kubelet as standalone and only runs static pods.", + "x-intellij-html-description": "\u003cp\u003eThe \u003ccode\u003eskipNodeRegistration\u003c/code\u003e is used to run the kubelet without registering with the apiserver.\nThis runs kubelet as standalone and only runs static pods.\u003c/p\u003e\n" + }, + "disableManifestsDirectory": { + "type": "boolean", + "title": "disableManifestsDirectory", + "description": "The disableManifestsDirectory field configures the kubelet to get static pod manifests from the /etc/kubernetes/manifests directory.\nIt’s recommended to configure static pods with the “pods” key instead.\n", + "markdownDescription": "The `disableManifestsDirectory` field configures the kubelet to get static pod manifests from the /etc/kubernetes/manifests directory.\nIt's recommended to configure static pods with the \"pods\" key instead.", + "x-intellij-html-description": "\u003cp\u003eThe \u003ccode\u003edisableManifestsDirectory\u003c/code\u003e field configures the kubelet to get static pod manifests from the /etc/kubernetes/manifests directory.\nIt\u0026rsquo;s recommended to configure static pods with the \u0026ldquo;pods\u0026rdquo; key instead.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "KubeletConfig represents the kubelet config values." + }, + "v1alpha1.KubeletNodeIPConfig": { + "properties": { + "validSubnets": { + "items": { + "type": "string" + }, + "type": "array", + "title": "validSubnets", + "description": "The validSubnets field configures the networks to pick kubelet node IP from.\nFor dual stack configuration, there should be two subnets: one for IPv4, another for IPv6.\nIPs can be excluded from the list by using negative match with !, e.g !10.0.0.0/8.\nNegative subnet matches should be specified last to filter out IPs picked by positive matches.\nIf not specified, node IP is picked based on cluster podCIDRs: IPv4/IPv6 address or both.\n", + "markdownDescription": "The `validSubnets` field configures the networks to pick kubelet node IP from.\nFor dual stack configuration, there should be two subnets: one for IPv4, another for IPv6.\nIPs can be excluded from the list by using negative match with `!`, e.g `!10.0.0.0/8`.\nNegative subnet matches should be specified last to filter out IPs picked by positive matches.\nIf not specified, node IP is picked based on cluster podCIDRs: IPv4/IPv6 address or both.", + "x-intellij-html-description": "\u003cp\u003eThe \u003ccode\u003evalidSubnets\u003c/code\u003e field configures the networks to pick kubelet node IP from.\nFor dual stack configuration, there should be two subnets: one for IPv4, another for IPv6.\nIPs can be excluded from the list by using negative match with \u003ccode\u003e!\u003c/code\u003e, e.g \u003ccode\u003e!10.0.0.0/8\u003c/code\u003e.\nNegative subnet matches should be specified last to filter out IPs picked by positive matches.\nIf not specified, node IP is picked based on cluster podCIDRs: IPv4/IPv6 address or both.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "KubeletNodeIPConfig represents the kubelet node IP configuration." + }, + "v1alpha1.KubernetesTalosAPIAccessConfig": { + "properties": { + "enabled": { + "type": "boolean", + "title": "enabled", + "description": "Enable Talos API access from Kubernetes pods.\n", + "markdownDescription": "Enable Talos API access from Kubernetes pods.", + "x-intellij-html-description": "\u003cp\u003eEnable Talos API access from Kubernetes pods.\u003c/p\u003e\n" + }, + "allowedRoles": { + "items": { + "type": "string" + }, + "type": "array", + "title": "allowedRoles", + "description": "The list of Talos API roles which can be granted for access from Kubernetes pods.\n\nEmpty list means that no roles can be granted, so access is blocked.\n", + "markdownDescription": "The list of Talos API roles which can be granted for access from Kubernetes pods.\n\nEmpty list means that no roles can be granted, so access is blocked.", + "x-intellij-html-description": "\u003cp\u003eThe list of Talos API roles which can be granted for access from Kubernetes pods.\u003c/p\u003e\n\n\u003cp\u003eEmpty list means that no roles can be granted, so access is blocked.\u003c/p\u003e\n" + }, + "allowedKubernetesNamespaces": { + "items": { + "type": "string" + }, + "type": "array", + "title": "allowedKubernetesNamespaces", + "description": "The list of Kubernetes namespaces Talos API access is available from.\n", + "markdownDescription": "The list of Kubernetes namespaces Talos API access is available from.", + "x-intellij-html-description": "\u003cp\u003eThe list of Kubernetes namespaces Talos API access is available from.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "KubernetesTalosAPIAccessConfig describes the configuration for the Talos API access from Kubernetes pods." + }, + "v1alpha1.LinuxIDMapping": { + "properties": { + "containerID": { + "type": "integer", + "title": "containerID", + "description": "ContainerID is the starting UID/GID in the container.\n", + "markdownDescription": "ContainerID is the starting UID/GID in the container.", + "x-intellij-html-description": "\u003cp\u003eContainerID is the starting UID/GID in the container.\u003c/p\u003e\n" + }, + "hostID": { + "type": "integer", + "title": "hostID", + "description": "HostID is the starting UID/GID on the host to be mapped to ‘ContainerID’.\n", + "markdownDescription": "HostID is the starting UID/GID on the host to be mapped to 'ContainerID'.", + "x-intellij-html-description": "\u003cp\u003eHostID is the starting UID/GID on the host to be mapped to \u0026lsquo;ContainerID\u0026rsquo;.\u003c/p\u003e\n" + }, + "size": { + "type": "integer", + "title": "size", + "description": "Size is the number of IDs to be mapped.\n", + "markdownDescription": "Size is the number of IDs to be mapped.", + "x-intellij-html-description": "\u003cp\u003eSize is the number of IDs to be mapped.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "LinuxIDMapping represents the Linux ID mapping." + }, + "v1alpha1.LoggingConfig": { + "properties": { + "destinations": { + "items": { + "$ref": "#/$defs/v1alpha1.LoggingDestination" + }, + "type": "array", + "title": "destinations", + "description": "Logging destination.\n", + "markdownDescription": "Logging destination.", + "x-intellij-html-description": "\u003cp\u003eLogging destination.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "LoggingConfig struct configures Talos logging." + }, + "v1alpha1.LoggingDestination": { + "properties": { + "endpoint": { + "$ref": "#/$defs/v1alpha1.Endpoint", + "title": "endpoint", + "description": "Where to send logs. Supported protocols are “tcp” and “udp”.\n", + "markdownDescription": "Where to send logs. Supported protocols are \"tcp\" and \"udp\".", + "x-intellij-html-description": "\u003cp\u003eWhere to send logs. Supported protocols are \u0026ldquo;tcp\u0026rdquo; and \u0026ldquo;udp\u0026rdquo;.\u003c/p\u003e\n" + }, + "format": { + "enum": [ + "json_lines" + ], + "title": "format", + "description": "Logs format.\n", + "markdownDescription": "Logs format.", + "x-intellij-html-description": "\u003cp\u003eLogs format.\u003c/p\u003e\n" + }, + "extraTags": { + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object", + "title": "extraTags", + "description": "Extra tags (key-value) pairs to attach to every log message sent.\n", + "markdownDescription": "Extra tags (key-value) pairs to attach to every log message sent.", + "x-intellij-html-description": "\u003cp\u003eExtra tags (key-value) pairs to attach to every log message sent.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "LoggingDestination struct configures Talos logging destination." + }, + "v1alpha1.MachineConfig": { + "properties": { + "type": { + "enum": [ + "controlplane", + "worker" + ], + "title": "type", + "description": "Defines the role of the machine within the cluster.\n\nControl Plane\n\nControl Plane node type designates the node as a control plane member.\nThis means it will host etcd along with the Kubernetes controlplane components such as API Server, Controller Manager, Scheduler.\n\nWorker\n\nWorker node type designates the node as a worker node.\nThis means it will be an available compute node for scheduling workloads.\n\nThis node type was previously known as “join”; that value is still supported but deprecated.\n", + "markdownDescription": "Defines the role of the machine within the cluster.\n\n**Control Plane**\n\nControl Plane node type designates the node as a control plane member.\nThis means it will host etcd along with the Kubernetes controlplane components such as API Server, Controller Manager, Scheduler.\n\n**Worker**\n\nWorker node type designates the node as a worker node.\nThis means it will be an available compute node for scheduling workloads.\n\nThis node type was previously known as \"join\"; that value is still supported but deprecated.", + "x-intellij-html-description": "\u003cp\u003eDefines the role of the machine within the cluster.\u003c/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eControl Plane\u003c/strong\u003e\u003c/p\u003e\n\n\u003cp\u003eControl Plane node type designates the node as a control plane member.\nThis means it will host etcd along with the Kubernetes controlplane components such as API Server, Controller Manager, Scheduler.\u003c/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eWorker\u003c/strong\u003e\u003c/p\u003e\n\n\u003cp\u003eWorker node type designates the node as a worker node.\nThis means it will be an available compute node for scheduling workloads.\u003c/p\u003e\n\n\u003cp\u003eThis node type was previously known as \u0026ldquo;join\u0026rdquo;; that value is still supported but deprecated.\u003c/p\u003e\n" + }, + "token": { + "type": "string", + "title": "token", + "description": "The token is used by a machine to join the PKI of the cluster.\nUsing this token, a machine will create a certificate signing request (CSR), and request a certificate that will be used as its’ identity.\n", + "markdownDescription": "The `token` is used by a machine to join the PKI of the cluster.\nUsing this token, a machine will create a certificate signing request (CSR), and request a certificate that will be used as its' identity.", + "x-intellij-html-description": "\u003cp\u003eThe \u003ccode\u003etoken\u003c/code\u003e is used by a machine to join the PKI of the cluster.\nUsing this token, a machine will create a certificate signing request (CSR), and request a certificate that will be used as its\u0026rsquo; identity.\u003c/p\u003e\n" + }, + "ca": { + "properties": { + "crt": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "title": "ca", + "description": "The root certificate authority of the PKI.\nIt is composed of a base64 encoded crt and key.\n", + "markdownDescription": "The root certificate authority of the PKI.\nIt is composed of a base64 encoded `crt` and `key`.", + "x-intellij-html-description": "\u003cp\u003eThe root certificate authority of the PKI.\nIt is composed of a base64 encoded \u003ccode\u003ecrt\u003c/code\u003e and \u003ccode\u003ekey\u003c/code\u003e.\u003c/p\u003e\n" + }, + "acceptedCAs": { + "properties": { + "crt": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "title": "acceptedCAs", + "description": "The certificates issued by certificate authorities are accepted in addition to issuing ‘ca’.\nIt is composed of a base64 encoded crt`.\n", + "markdownDescription": "The certificates issued by certificate authorities are accepted in addition to issuing 'ca'.\nIt is composed of a base64 encoded `crt``.", + "x-intellij-html-description": "\u003cp\u003eThe certificates issued by certificate authorities are accepted in addition to issuing \u0026lsquo;ca\u0026rsquo;.\nIt is composed of a base64 encoded \u003ccode\u003ecrt\u003c/code\u003e`.\u003c/p\u003e\n" + }, + "certSANs": { + "items": { + "type": "string" + }, + "type": "array", + "title": "certSANs", + "description": "Extra certificate subject alternative names for the machine’s certificate.\nBy default, all non-loopback interface IPs are automatically added to the certificate’s SANs.\n", + "markdownDescription": "Extra certificate subject alternative names for the machine's certificate.\nBy default, all non-loopback interface IPs are automatically added to the certificate's SANs.", + "x-intellij-html-description": "\u003cp\u003eExtra certificate subject alternative names for the machine\u0026rsquo;s certificate.\nBy default, all non-loopback interface IPs are automatically added to the certificate\u0026rsquo;s SANs.\u003c/p\u003e\n" + }, + "controlPlane": { + "$ref": "#/$defs/v1alpha1.MachineControlPlaneConfig", + "title": "controlPlane", + "description": "Provides machine specific control plane configuration options.\n", + "markdownDescription": "Provides machine specific control plane configuration options.", + "x-intellij-html-description": "\u003cp\u003eProvides machine specific control plane configuration options.\u003c/p\u003e\n" + }, + "kubelet": { + "$ref": "#/$defs/v1alpha1.KubeletConfig", + "title": "kubelet", + "description": "Used to provide additional options to the kubelet.\n", + "markdownDescription": "Used to provide additional options to the kubelet.", + "x-intellij-html-description": "\u003cp\u003eUsed to provide additional options to the kubelet.\u003c/p\u003e\n" + }, + "pods": { + "items": { + "type": "object" + }, + "type": "array", + "title": "pods", + "description": "Used to provide static pod definitions to be run by the kubelet directly bypassing the kube-apiserver.\n\nStatic pods can be used to run components which should be started before the Kubernetes control plane is up.\nTalos doesn’t validate the pod definition.\nUpdates to this field can be applied without a reboot.\n\nSee https://kubernetes.io/docs/tasks/configure-pod-container/static-pod/.\n", + "markdownDescription": "Used to provide static pod definitions to be run by the kubelet directly bypassing the kube-apiserver.\n\nStatic pods can be used to run components which should be started before the Kubernetes control plane is up.\nTalos doesn't validate the pod definition.\nUpdates to this field can be applied without a reboot.\n\nSee https://kubernetes.io/docs/tasks/configure-pod-container/static-pod/.", + "x-intellij-html-description": "\u003cp\u003eUsed to provide static pod definitions to be run by the kubelet directly bypassing the kube-apiserver.\u003c/p\u003e\n\n\u003cp\u003eStatic pods can be used to run components which should be started before the Kubernetes control plane is up.\nTalos doesn\u0026rsquo;t validate the pod definition.\nUpdates to this field can be applied without a reboot.\u003c/p\u003e\n\n\u003cp\u003eSee \u003ca href=\"https://kubernetes.io/docs/tasks/configure-pod-container/static-pod/\" target=\"_blank\"\u003ehttps://kubernetes.io/docs/tasks/configure-pod-container/static-pod/\u003c/a\u003e.\u003c/p\u003e\n" + }, + "install": { + "$ref": "#/$defs/v1alpha1.InstallConfig", + "title": "install", + "description": "Used to provide instructions for installations.\n\nNote that this configuration section gets silently ignored by Talos images that are considered pre-installed.\nTo make sure Talos installs according to the provided configuration, Talos should be booted with ISO or PXE-booted.\n", + "markdownDescription": "Used to provide instructions for installations.\n\nNote that this configuration section gets silently ignored by Talos images that are considered pre-installed.\nTo make sure Talos installs according to the provided configuration, Talos should be booted with ISO or PXE-booted.", + "x-intellij-html-description": "\u003cp\u003eUsed to provide instructions for installations.\u003c/p\u003e\n\n\u003cp\u003eNote that this configuration section gets silently ignored by Talos images that are considered pre-installed.\nTo make sure Talos installs according to the provided configuration, Talos should be booted with ISO or PXE-booted.\u003c/p\u003e\n" + }, + "files": { + "items": { + "$ref": "#/$defs/v1alpha1.MachineFile" + }, + "type": "array", + "title": "files", + "description": "Allows the addition of user specified files.\nThe value of op can be create, overwrite, or append.\nIn the case of create, path must not exist.\nIn the case of overwrite, and append, path must be a valid file.\nIf an op value of append is used, the existing file will be appended.\nNote that the file contents are not required to be base64 encoded.\n", + "markdownDescription": "Allows the addition of user specified files.\nThe value of `op` can be `create`, `overwrite`, or `append`.\nIn the case of `create`, `path` must not exist.\nIn the case of `overwrite`, and `append`, `path` must be a valid file.\nIf an `op` value of `append` is used, the existing file will be appended.\nNote that the file contents are not required to be base64 encoded.", + "x-intellij-html-description": "\u003cp\u003eAllows the addition of user specified files.\nThe value of \u003ccode\u003eop\u003c/code\u003e can be \u003ccode\u003ecreate\u003c/code\u003e, \u003ccode\u003eoverwrite\u003c/code\u003e, or \u003ccode\u003eappend\u003c/code\u003e.\nIn the case of \u003ccode\u003ecreate\u003c/code\u003e, \u003ccode\u003epath\u003c/code\u003e must not exist.\nIn the case of \u003ccode\u003eoverwrite\u003c/code\u003e, and \u003ccode\u003eappend\u003c/code\u003e, \u003ccode\u003epath\u003c/code\u003e must be a valid file.\nIf an \u003ccode\u003eop\u003c/code\u003e value of \u003ccode\u003eappend\u003c/code\u003e is used, the existing file will be appended.\nNote that the file contents are not required to be base64 encoded.\u003c/p\u003e\n" + }, + "sysctls": { + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object", + "title": "sysctls", + "description": "Used to configure the machine’s sysctls.\n", + "markdownDescription": "Used to configure the machine's sysctls.", + "x-intellij-html-description": "\u003cp\u003eUsed to configure the machine\u0026rsquo;s sysctls.\u003c/p\u003e\n" + }, + "sysfs": { + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object", + "title": "sysfs", + "description": "Used to configure the machine’s sysfs.\n", + "markdownDescription": "Used to configure the machine's sysfs.", + "x-intellij-html-description": "\u003cp\u003eUsed to configure the machine\u0026rsquo;s sysfs.\u003c/p\u003e\n" + }, + "features": { + "$ref": "#/$defs/v1alpha1.FeaturesConfig", + "title": "features", + "description": "Features describe individual Talos features that can be switched on or off.\n", + "markdownDescription": "Features describe individual Talos features that can be switched on or off.", + "x-intellij-html-description": "\u003cp\u003eFeatures describe individual Talos features that can be switched on or off.\u003c/p\u003e\n" + }, + "udev": { + "$ref": "#/$defs/v1alpha1.UdevConfig", + "title": "udev", + "description": "Configures the udev system.\n", + "markdownDescription": "Configures the udev system.", + "x-intellij-html-description": "\u003cp\u003eConfigures the udev system.\u003c/p\u003e\n" + }, + "logging": { + "$ref": "#/$defs/v1alpha1.LoggingConfig", + "title": "logging", + "description": "Configures the logging system.\n", + "markdownDescription": "Configures the logging system.", + "x-intellij-html-description": "\u003cp\u003eConfigures the logging system.\u003c/p\u003e\n" + }, + "kernel": { + "$ref": "#/$defs/v1alpha1.KernelConfig", + "title": "kernel", + "description": "Configures the kernel.\n", + "markdownDescription": "Configures the kernel.", + "x-intellij-html-description": "\u003cp\u003eConfigures the kernel.\u003c/p\u003e\n" + }, + "seccompProfiles": { + "items": { + "$ref": "#/$defs/v1alpha1.MachineSeccompProfile" + }, + "type": "array", + "title": "seccompProfiles", + "description": "Configures the seccomp profiles for the machine.\n", + "markdownDescription": "Configures the seccomp profiles for the machine.", + "x-intellij-html-description": "\u003cp\u003eConfigures the seccomp profiles for the machine.\u003c/p\u003e\n" + }, + "baseRuntimeSpecOverrides": { + "type": "object", + "title": "baseRuntimeSpecOverrides", + "description": "Override (patch) settings in the default OCI runtime spec for CRI containers.\n\nIt can be used to set some default container settings which are not configurable in Kubernetes,\nfor example default ulimits.\nNote: this change applies to all newly created containers, and it requires a reboot to take effect.\n", + "markdownDescription": "Override (patch) settings in the default OCI runtime spec for CRI containers.\n\nIt can be used to set some default container settings which are not configurable in Kubernetes,\nfor example default ulimits.\nNote: this change applies to all newly created containers, and it requires a reboot to take effect.", + "x-intellij-html-description": "\u003cp\u003eOverride (patch) settings in the default OCI runtime spec for CRI containers.\u003c/p\u003e\n\n\u003cp\u003eIt can be used to set some default container settings which are not configurable in Kubernetes,\nfor example default ulimits.\nNote: this change applies to all newly created containers, and it requires a reboot to take effect.\u003c/p\u003e\n" + }, + "nodeLabels": { + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object", + "title": "nodeLabels", + "description": "Configures the node labels for the machine.\n\nNote: In the default Kubernetes configuration, worker nodes are restricted to set\nlabels with some prefixes (see NodeRestriction admission plugin).\n", + "markdownDescription": "Configures the node labels for the machine.\n\nNote: In the default Kubernetes configuration, worker nodes are restricted to set\nlabels with some prefixes (see [NodeRestriction](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#noderestriction) admission plugin).", + "x-intellij-html-description": "\u003cp\u003eConfigures the node labels for the machine.\u003c/p\u003e\n\n\u003cp\u003eNote: In the default Kubernetes configuration, worker nodes are restricted to set\nlabels with some prefixes (see \u003ca href=\"https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#noderestriction\" target=\"_blank\"\u003eNodeRestriction\u003c/a\u003e admission plugin).\u003c/p\u003e\n" + }, + "nodeAnnotations": { + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object", + "title": "nodeAnnotations", + "description": "Configures the node annotations for the machine.\n", + "markdownDescription": "Configures the node annotations for the machine.", + "x-intellij-html-description": "\u003cp\u003eConfigures the node annotations for the machine.\u003c/p\u003e\n" + }, + "nodeTaints": { + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object", + "title": "nodeTaints", + "description": "Configures the node taints for the machine. Effect is optional.\n\nNote: In the default Kubernetes configuration, worker nodes are not allowed to\nmodify the taints (see NodeRestriction admission plugin).\n", + "markdownDescription": "Configures the node taints for the machine. Effect is optional.\n\nNote: In the default Kubernetes configuration, worker nodes are not allowed to\nmodify the taints (see [NodeRestriction](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#noderestriction) admission plugin).", + "x-intellij-html-description": "\u003cp\u003eConfigures the node taints for the machine. Effect is optional.\u003c/p\u003e\n\n\u003cp\u003eNote: In the default Kubernetes configuration, worker nodes are not allowed to\nmodify the taints (see \u003ca href=\"https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#noderestriction\" target=\"_blank\"\u003eNodeRestriction\u003c/a\u003e admission plugin).\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "MachineConfig represents the machine-specific config values." + }, + "v1alpha1.MachineControlPlaneConfig": { + "properties": { + "controllerManager": { + "$ref": "#/$defs/v1alpha1.MachineControllerManagerConfig", + "title": "controllerManager", + "description": "Controller manager machine specific configuration options.\n", + "markdownDescription": "Controller manager machine specific configuration options.", + "x-intellij-html-description": "\u003cp\u003eController manager machine specific configuration options.\u003c/p\u003e\n" + }, + "scheduler": { + "$ref": "#/$defs/v1alpha1.MachineSchedulerConfig", + "title": "scheduler", + "description": "Scheduler machine specific configuration options.\n", + "markdownDescription": "Scheduler machine specific configuration options.", + "x-intellij-html-description": "\u003cp\u003eScheduler machine specific configuration options.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "MachineControlPlaneConfig machine specific configuration options." + }, + "v1alpha1.MachineControllerManagerConfig": { + "properties": { + "disabled": { + "type": "boolean", + "title": "disabled", + "description": "Disable kube-controller-manager on the node.\n", + "markdownDescription": "Disable kube-controller-manager on the node.", + "x-intellij-html-description": "\u003cp\u003eDisable kube-controller-manager on the node.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "MachineControllerManagerConfig represents the machine specific ControllerManager config values." + }, + "v1alpha1.MachineFile": { + "properties": { + "content": { + "type": "string", + "title": "content", + "description": "The contents of the file.\n", + "markdownDescription": "The contents of the file.", + "x-intellij-html-description": "\u003cp\u003eThe contents of the file.\u003c/p\u003e\n" + }, + "permissions": { + "type": "integer", + "title": "permissions", + "description": "The file’s permissions in octal.\n", + "markdownDescription": "The file's permissions in octal.", + "x-intellij-html-description": "\u003cp\u003eThe file\u0026rsquo;s permissions in octal.\u003c/p\u003e\n" + }, + "path": { + "type": "string", + "title": "path", + "description": "The path of the file.\n", + "markdownDescription": "The path of the file.", + "x-intellij-html-description": "\u003cp\u003eThe path of the file.\u003c/p\u003e\n" + }, + "op": { + "enum": [ + "create", + "append", + "overwrite" + ], + "title": "op", + "description": "The operation to use\n", + "markdownDescription": "The operation to use", + "x-intellij-html-description": "\u003cp\u003eThe operation to use\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "MachineFile represents a file to write to disk." + }, + "v1alpha1.MachineSchedulerConfig": { + "properties": { + "disabled": { + "type": "boolean", + "title": "disabled", + "description": "Disable kube-scheduler on the node.\n", + "markdownDescription": "Disable kube-scheduler on the node.", + "x-intellij-html-description": "\u003cp\u003eDisable kube-scheduler on the node.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "MachineSchedulerConfig represents the machine specific Scheduler config values." + }, + "v1alpha1.MachineSeccompProfile": { + "properties": { + "name": { + "type": "string", + "title": "name", + "description": "The name field is used to provide the file name of the seccomp profile.\n", + "markdownDescription": "The `name` field is used to provide the file name of the seccomp profile.", + "x-intellij-html-description": "\u003cp\u003eThe \u003ccode\u003ename\u003c/code\u003e field is used to provide the file name of the seccomp profile.\u003c/p\u003e\n" + }, + "value": { + "type": "object", + "title": "value", + "description": "The value field is used to provide the seccomp profile.\n", + "markdownDescription": "The `value` field is used to provide the seccomp profile.", + "x-intellij-html-description": "\u003cp\u003eThe \u003ccode\u003evalue\u003c/code\u003e field is used to provide the seccomp profile.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "MachineSeccompProfile defines seccomp profiles for the machine." + }, + "v1alpha1.ProxyConfig": { + "properties": { + "disabled": { + "type": "boolean", + "title": "disabled", + "description": "Disable kube-proxy deployment on cluster bootstrap.\n", + "markdownDescription": "Disable kube-proxy deployment on cluster bootstrap.", + "x-intellij-html-description": "\u003cp\u003eDisable kube-proxy deployment on cluster bootstrap.\u003c/p\u003e\n" + }, + "image": { + "type": "string", + "title": "image", + "description": "The container image used in the kube-proxy manifest.\n", + "markdownDescription": "The container image used in the kube-proxy manifest.", + "x-intellij-html-description": "\u003cp\u003eThe container image used in the kube-proxy manifest.\u003c/p\u003e\n" + }, + "mode": { + "type": "string", + "title": "mode", + "description": "proxy mode of kube-proxy.\nThe default is ‘iptables’.\n", + "markdownDescription": "proxy mode of kube-proxy.\nThe default is 'iptables'.", + "x-intellij-html-description": "\u003cp\u003eproxy mode of kube-proxy.\nThe default is \u0026lsquo;iptables\u0026rsquo;.\u003c/p\u003e\n" + }, + "extraArgs": { + "additionalProperties": { + "oneOf": [ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } + ] + }, + "type": "object", + "title": "extraArgs", + "description": "Extra arguments to supply to kube-proxy.\n", + "markdownDescription": "Extra arguments to supply to kube-proxy.", + "x-intellij-html-description": "\u003cp\u003eExtra arguments to supply to kube-proxy.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "ProxyConfig represents the kube proxy configuration options." + }, + "v1alpha1.RegistryKubernetesConfig": { + "properties": { + "disabled": { + "type": "boolean", + "title": "disabled", + "description": "Disable Kubernetes discovery registry.\n", + "markdownDescription": "Disable Kubernetes discovery registry.", + "x-intellij-html-description": "\u003cp\u003eDisable Kubernetes discovery registry.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "RegistryKubernetesConfig struct configures Kubernetes discovery registry." + }, + "v1alpha1.RegistryServiceConfig": { + "properties": { + "disabled": { + "type": "boolean", + "title": "disabled", + "description": "Disable external service discovery registry.\n", + "markdownDescription": "Disable external service discovery registry.", + "x-intellij-html-description": "\u003cp\u003eDisable external service discovery registry.\u003c/p\u003e\n" + }, + "endpoint": { + "type": "string", + "title": "endpoint", + "description": "External service endpoint.\n", + "markdownDescription": "External service endpoint.", + "x-intellij-html-description": "\u003cp\u003eExternal service endpoint.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "RegistryServiceConfig struct configures Kubernetes discovery registry." + }, + "v1alpha1.ResourcesConfig": { + "properties": { + "requests": { + "type": "object", + "title": "requests", + "description": "Requests configures the reserved cpu/memory resources.\n", + "markdownDescription": "Requests configures the reserved cpu/memory resources.", + "x-intellij-html-description": "\u003cp\u003eRequests configures the reserved cpu/memory resources.\u003c/p\u003e\n" + }, + "limits": { + "type": "object", + "title": "limits", + "description": "Limits configures the maximum cpu/memory resources a container can use.\n", + "markdownDescription": "Limits configures the maximum cpu/memory resources a container can use.", + "x-intellij-html-description": "\u003cp\u003eLimits configures the maximum cpu/memory resources a container can use.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "ResourcesConfig represents the pod resources." + }, + "v1alpha1.SchedulerConfig": { + "properties": { + "image": { + "type": "string", + "title": "image", + "description": "The container image used in the scheduler manifest.\n", + "markdownDescription": "The container image used in the scheduler manifest.", + "x-intellij-html-description": "\u003cp\u003eThe container image used in the scheduler manifest.\u003c/p\u003e\n" + }, + "extraArgs": { + "additionalProperties": { + "oneOf": [ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } + ] + }, + "type": "object", + "title": "extraArgs", + "description": "Extra arguments to supply to the scheduler.\n", + "markdownDescription": "Extra arguments to supply to the scheduler.", + "x-intellij-html-description": "\u003cp\u003eExtra arguments to supply to the scheduler.\u003c/p\u003e\n" + }, + "extraVolumes": { + "items": { + "$ref": "#/$defs/v1alpha1.VolumeMountConfig" + }, + "type": "array", + "title": "extraVolumes", + "description": "Extra volumes to mount to the scheduler static pod.\n", + "markdownDescription": "Extra volumes to mount to the scheduler static pod.", + "x-intellij-html-description": "\u003cp\u003eExtra volumes to mount to the scheduler static pod.\u003c/p\u003e\n" + }, + "env": { + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object", + "title": "env", + "description": "The env field allows for the addition of environment variables for the control plane component.\n", + "markdownDescription": "The `env` field allows for the addition of environment variables for the control plane component.", + "x-intellij-html-description": "\u003cp\u003eThe \u003ccode\u003eenv\u003c/code\u003e field allows for the addition of environment variables for the control plane component.\u003c/p\u003e\n" + }, + "resources": { + "type": "object", + "title": "resources", + "description": "Configure the scheduler resources.\n", + "markdownDescription": "Configure the scheduler resources.", + "x-intellij-html-description": "\u003cp\u003eConfigure the scheduler resources.\u003c/p\u003e\n" + }, + "config": { + "type": "object", + "title": "config", + "description": "Specify custom kube-scheduler configuration.\n", + "markdownDescription": "Specify custom kube-scheduler configuration.", + "x-intellij-html-description": "\u003cp\u003eSpecify custom kube-scheduler configuration.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "SchedulerConfig represents the kube scheduler configuration options." + }, + "v1alpha1.UdevConfig": { + "properties": { + "rules": { + "items": { + "type": "string" + }, + "type": "array", + "title": "rules", + "description": "List of udev rules to apply to the udev system\n", + "markdownDescription": "List of udev rules to apply to the udev system", + "x-intellij-html-description": "\u003cp\u003eList of udev rules to apply to the udev system\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "UdevConfig describes how the udev system should be configured." + }, + "v1alpha1.VolumeMountConfig": { + "properties": { + "hostPath": { + "type": "string", + "title": "hostPath", + "description": "Path on the host.\n", + "markdownDescription": "Path on the host.", + "x-intellij-html-description": "\u003cp\u003ePath on the host.\u003c/p\u003e\n" + }, + "mountPath": { + "type": "string", + "title": "mountPath", + "description": "Path in the container.\n", + "markdownDescription": "Path in the container.", + "x-intellij-html-description": "\u003cp\u003ePath in the container.\u003c/p\u003e\n" + }, + "readonly": { + "type": "boolean", + "title": "readonly", + "description": "Mount the volume read only.\n", + "markdownDescription": "Mount the volume read only.", + "x-intellij-html-description": "\u003cp\u003eMount the volume read only.\u003c/p\u003e\n" + } + }, + "additionalProperties": false, + "type": "object", + "description": "VolumeMountConfig struct describes extra volume mount for the static pods." + } + }, + "oneOf": [ + { + "$ref": "#/$defs/block.ExistingVolumeConfigV1Alpha1" + }, + { + "$ref": "#/$defs/block.ExternalVolumeConfigV1Alpha1" + }, + { + "$ref": "#/$defs/block.RawVolumeConfigV1Alpha1" + }, + { + "$ref": "#/$defs/block.SwapVolumeConfigV1Alpha1" + }, + { + "$ref": "#/$defs/block.UserVolumeConfigV1Alpha1" + }, + { + "$ref": "#/$defs/block.VolumeConfigV1Alpha1" + }, + { + "$ref": "#/$defs/block.ZswapConfigV1Alpha1" + }, + { + "$ref": "#/$defs/cri.RegistryAuthConfigV1Alpha1" + }, + { + "$ref": "#/$defs/cri.RegistryMirrorConfigV1Alpha1" + }, + { + "$ref": "#/$defs/cri.RegistryTLSConfigV1Alpha1" + }, + { + "$ref": "#/$defs/extensions.ServiceConfigV1Alpha1" + }, + { + "$ref": "#/$defs/hardware.PCIDriverRebindConfigV1Alpha1" + }, + { + "$ref": "#/$defs/network.BlackholeRouteConfigV1Alpha1" + }, + { + "$ref": "#/$defs/network.BondConfigV1Alpha1" + }, + { + "$ref": "#/$defs/network.BridgeConfigV1Alpha1" + }, + { + "$ref": "#/$defs/network.DefaultActionConfigV1Alpha1" + }, + { + "$ref": "#/$defs/network.DHCPv4ConfigV1Alpha1" + }, + { + "$ref": "#/$defs/network.DHCPv6ConfigV1Alpha1" + }, + { + "$ref": "#/$defs/network.DummyLinkConfigV1Alpha1" + }, + { + "$ref": "#/$defs/network.EthernetConfigV1Alpha1" + }, + { + "$ref": "#/$defs/network.HCloudVIPConfigV1Alpha1" + }, + { + "$ref": "#/$defs/network.HostnameConfigV1Alpha1" + }, + { + "$ref": "#/$defs/network.KubeSpanConfigV1Alpha1" + }, + { + "$ref": "#/$defs/network.KubespanEndpointsConfigV1Alpha1" + }, + { + "$ref": "#/$defs/network.Layer2VIPConfigV1Alpha1" + }, + { + "$ref": "#/$defs/network.LinkConfigV1Alpha1" + }, + { + "$ref": "#/$defs/network.LinkAliasConfigV1Alpha1" + }, + { + "$ref": "#/$defs/network.ResolverConfigV1Alpha1" + }, + { + "$ref": "#/$defs/network.RoutingRuleConfigV1Alpha1" + }, + { + "$ref": "#/$defs/network.RuleConfigV1Alpha1" + }, + { + "$ref": "#/$defs/network.StaticHostConfigV1Alpha1" + }, + { + "$ref": "#/$defs/network.TCPProbeConfigV1Alpha1" + }, + { + "$ref": "#/$defs/network.TimeSyncConfigV1Alpha1" + }, + { + "$ref": "#/$defs/network.VLANConfigV1Alpha1" + }, + { + "$ref": "#/$defs/network.VRFConfigV1Alpha1" + }, + { + "$ref": "#/$defs/network.WireguardConfigV1Alpha1" + }, + { + "$ref": "#/$defs/runtime.EnvironmentV1Alpha1" + }, + { + "$ref": "#/$defs/runtime.EventSinkV1Alpha1" + }, + { + "$ref": "#/$defs/runtime.KmsgLogV1Alpha1" + }, + { + "$ref": "#/$defs/runtime.OOMV1Alpha1" + }, + { + "$ref": "#/$defs/runtime.WatchdogTimerV1Alpha1" + }, + { + "$ref": "#/$defs/security.TrustedRootsConfigV1Alpha1" + }, + { + "$ref": "#/$defs/siderolink.ConfigV1Alpha1" + }, + { + "$ref": "#/$defs/v1alpha1.Config" + } + ] +} \ No newline at end of file diff --git a/hack/compose/docker-compose.yml b/hack/compose/docker-compose.yml index acf2466e0..cbdceae82 100644 --- a/hack/compose/docker-compose.yml +++ b/hack/compose/docker-compose.yml @@ -47,6 +47,7 @@ services: - GRPC_GATEWAY_VERSION=${GRPC_GATEWAY_VERSION:?error} - VTPROTOBUF_VERSION=${VTPROTOBUF_VERSION:?error} - DEEPCOPY_VERSION=${DEEPCOPY_VERSION:?error} + - DIS_VULNCHECK_VERSION=${DIS_VULNCHECK_VERSION:?error} - TESTPKGS=${TESTPKGS:?error} - GO_LDFLAGS=${GO_LDFLAGS} - GOEXPERIMENT=${GOEXPERIMENT} diff --git a/hack/test/e2e-qemu.sh b/hack/test/e2e-qemu.sh index 33d130d93..3061050cd 100755 --- a/hack/test/e2e-qemu.sh +++ b/hack/test/e2e-qemu.sh @@ -83,6 +83,7 @@ docker run --rm \ -e BASE_URL="$BASE_URL" \ -e PROJECT="qemu" \ -v "${TEST_OUTPUTS_DIR}/e2e/playwright-report:/tmp/test/playwright-report" \ + -v "${TEST_OUTPUTS_DIR}/e2e/support-bundles:/tmp/test/test-results/support-bundles/" \ --network=host \ e2etest diff --git a/hack/test/helm/templates/omni-values.yaml b/hack/test/helm/templates/omni-values.yaml index 82fd3f1cf..06fcab4a4 100644 --- a/hack/test/helm/templates/omni-values.yaml +++ b/hack/test/helm/templates/omni-values.yaml @@ -60,6 +60,8 @@ config: siderolink: wireGuard: advertisedEndpoint: ${NODE_IP}:30180 + features: + enableTalosPreReleaseVersions: true env: - name: SIDEROLINK_DEV_JOIN_TOKEN diff --git a/internal/backend/runtime/omni/controllers/omni/machineconfig/reconciliation_context.go b/internal/backend/runtime/omni/controllers/omni/machineconfig/reconciliation_context.go index 366054498..e6fee16cf 100644 --- a/internal/backend/runtime/omni/controllers/omni/machineconfig/reconciliation_context.go +++ b/internal/backend/runtime/omni/controllers/omni/machineconfig/reconciliation_context.go @@ -242,7 +242,7 @@ func BuildReconciliationContext(ctx context.Context, r controller.Reader, return nil, err } - rc.shouldUpgrade = schematicMismatch || talosVersionMismatch + rc.shouldUpgrade = omni.GetMachineStatusSystemDisk(rc.machineStatus) != "" && (schematicMismatch || talosVersionMismatch) return rc, nil } diff --git a/internal/backend/runtime/omni/controllers/omni/machineconfig/status.go b/internal/backend/runtime/omni/controllers/omni/machineconfig/status.go index 108cb3b34..4dde5a02f 100644 --- a/internal/backend/runtime/omni/controllers/omni/machineconfig/status.go +++ b/internal/backend/runtime/omni/controllers/omni/machineconfig/status.go @@ -429,11 +429,6 @@ func (ctrl *ClusterMachineConfigStatusController) upgrade( client.WithUpgradeForce(false), ) - // Failed Precondition means that the node is not in a state when the system can be upgraded. - if status.Code(err) == codes.FailedPrecondition { - return true, nil - } - // If upgrade is not implemented, it means that we run older Talos that doesn't support upgrades in maintenance mode. if status.Code(err) == codes.Unimplemented { return true, nil diff --git a/internal/backend/runtime/omni/controllers/testutils/rmock/rmock.go b/internal/backend/runtime/omni/controllers/testutils/rmock/rmock.go index c9ca48c56..3a1db25be 100644 --- a/internal/backend/runtime/omni/controllers/testutils/rmock/rmock.go +++ b/internal/backend/runtime/omni/controllers/testutils/rmock/rmock.go @@ -177,6 +177,14 @@ func init() { Platform: talosconstants.PlatformMetal, } res.TypedSpec().Value.Connected = true + res.TypedSpec().Value.Hardware = &specs.MachineStatusSpec_HardwareStatus{ + Blockdevices: []*specs.MachineStatusSpec_HardwareStatus_BlockDevice{ + { + LinuxName: "sda", + SystemDisk: true, + }, + }, + } return nil }) diff --git a/internal/integration/image_test.go b/internal/integration/image_test.go deleted file mode 100644 index b3a99daba..000000000 --- a/internal/integration/image_test.go +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright (c) 2026 Sidero Labs, Inc. -// -// Use of this software is governed by the Business Source License -// included in the LICENSE file. - -//go:build integration - -package integration_test - -import ( - "context" - "io" - "net/http" - "net/url" - "testing" - "time" - - "github.com/cosi-project/runtime/pkg/safe" - "github.com/siderolabs/go-api-signature/pkg/message" - "github.com/siderolabs/go-api-signature/pkg/serviceaccount" - "github.com/stretchr/testify/require" - - "github.com/siderolabs/omni/client/api/omni/management" - "github.com/siderolabs/omni/client/pkg/access" - clientconsts "github.com/siderolabs/omni/client/pkg/constants" - "github.com/siderolabs/omni/client/pkg/omni/resources/omni" -) - -// AssertSomeImagesAreDownloadable verifies generated image download. -func AssertSomeImagesAreDownloadable(testCtx context.Context, options *TestOptions) TestFunc { - st := options.omniClient.Omni().State() - - return func(t *testing.T) { - t.Parallel() - - sa, err := serviceaccount.Decode(options.serviceAccountKey) - require.NoError(t, err) - - media, err := safe.StateListAll[*omni.InstallationMedia](testCtx, st) - require.NoError(t, err) - - var images []*omni.InstallationMedia - - for val := range media.All() { - spec := val.TypedSpec().Value - - switch spec.Profile { - case "aws": - fallthrough - case "iso": - images = append(images, val) - } - - if spec.Overlay == "rpi_generic" { - images = append(images, val) - } - } - - require.Greater(t, len(images), 2) - - for _, image := range images { - t.Run(image.Metadata().ID(), func(t *testing.T) { - t.Parallel() - - ctx, cancel := context.WithTimeout(testCtx, time.Minute*5) - defer cancel() - - u, err := url.Parse(options.HTTPEndpoint) - require.NoError(t, err) - - schematic, err := options.omniClient.Management().CreateSchematic(ctx, &management.CreateSchematicRequest{ - MediaId: image.Metadata().ID(), - TalosVersion: clientconsts.DefaultTalosVersion, - }) - require.NoError(t, err) - - u.Path, err = url.JoinPath(u.Path, "image", schematic.SchematicId, clientconsts.DefaultTalosVersion, image.Metadata().ID()) - require.NoError(t, err) - - req, err := http.NewRequestWithContext(ctx, http.MethodGet, u.String(), nil) - require.NoError(t, err) - - msg, err := message.NewHTTP(req) - require.NoError(t, err) - - require.NoError(t, msg.Sign(sa.Name+access.ServiceAccountNameSuffix, sa.Key)) - - resp, err := http.DefaultClient.Do(req) - require.NoError(t, err) - - require.Equal(t, http.StatusOK, resp.StatusCode) - - n, err := io.Copy(io.Discard, resp.Body) - require.NoError(t, err) - - require.Greater(t, n, int64(1024*1024)) - - require.NoError(t, resp.Body.Close()) - }) - } - } -} diff --git a/internal/integration/suites_test.go b/internal/integration/suites_test.go index ee3ff5043..acca30079 100644 --- a/internal/integration/suites_test.go +++ b/internal/integration/suites_test.go @@ -124,11 +124,6 @@ Generate various Talos images with Omni and try to download them.`) "TalosImagesShouldBeDownloadableUsingCLI", AssertDownloadUsingCLI(t.Context(), options.omniClient, options.OmnictlPath, options.HTTPEndpoint), ) - - t.Run( - "TalosImagesShouldBeDownloadable", - AssertSomeImagesAreDownloadable(t.Context(), options), - ) } }