artifacts

package
v1.3.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 1, 2026 License: MPL-2.0 Imports: 34 Imported by: 0

Documentation

Overview

Package artifacts handles acquiring and caching source Talos artifacts.

Index

Constants

View Source
const FetchTimeout = 20 * time.Minute

FetchTimeout controls overall timeout for fetching artifacts for a release.

View Source
const (
	// SPDXFileSuffix is the file suffix for SPDX files.
	SPDXFileSuffix = ".spdx.json"
)

Variables

This section is empty.

Functions

func ValidArch added in v1.1.0

func ValidArch(s string) bool

ValidArch returns true if the given string is a supported architecture.

Types

type Arch

type Arch string

Arch is the artifacts architecture.

const (
	ArchAmd64 Arch = "amd64"
	ArchArm64 Arch = "arm64"
)

Supported architectures.

type ErrNotFoundTag added in v0.2.1

type ErrNotFoundTag struct{}

ErrNotFoundTag tags the errors when the artifact is not found.

type ExtensionRef

type ExtensionRef struct {
	TaggedReference name.Tag
	Digest          string
	Description     string
	Author          string
	// contains filtered or unexported fields
}

ExtensionRef is a ref to the extension for some Talos version.

type ImageVerifyOptions added in v0.9.0

type ImageVerifyOptions = verify.VerifyOptions

ImageVerifyOptions are the options for verifying the image signature.

type Kind

type Kind string

Kind is the artifact kind.

const (
	KindKernel      Kind = "vmlinuz"
	KindInitramfs   Kind = "initramfs.xz"
	KindSystemdBoot Kind = "systemd-boot.efi"
	KindSystemdStub Kind = "systemd-stub.efi"
)

Supported artifact kinds.

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager supports loading, caching and serving Talos release artifacts.

func NewManager

func NewManager(logger *zap.Logger, options Options) (*Manager, error)

NewManager creates a new artifacts manager.

func (*Manager) Close

func (m *Manager) Close() error

Close the manager.

func (*Manager) ExtractExtensionSPDX added in v1.1.0

func (m *Manager) ExtractExtensionSPDX(ctx context.Context, arch Arch, ref ExtensionRef) ([]SPDXFile, error)

ExtractExtensionSPDX extracts SPDX files from an extension image.

func (*Manager) Get

func (m *Manager) Get(ctx context.Context, versionString string, arch Arch, kind Kind) (string, error)

Get returns the artifact path for the given version, arch and kind.

func (*Manager) GetBrokenTalosVersions added in v1.3.3

func (m *Manager) GetBrokenTalosVersions() []semver.Version

GetBrokenTalosVersions returns the list of Talos versions marked as broken in the configuration.

func (*Manager) GetExtensionImage

func (m *Manager) GetExtensionImage(ctx context.Context, arch Arch, ref ExtensionRef) (string, error)

GetExtensionImage pulls and stores in OCI layout an extension image.

func (*Manager) GetInstallerImage

func (m *Manager) GetInstallerImage(ctx context.Context, arch Arch, versionString string) (string, error)

GetInstallerImage pulls and stores in OCI layout installer-base image.

func (*Manager) GetOfficialExtensions

func (m *Manager) GetOfficialExtensions(ctx context.Context, versionString string) ([]ExtensionRef, error)

GetOfficialExtensions returns a list of Talos extensions per Talos version available.

func (*Manager) GetOfficialOverlays added in v0.3.0

func (m *Manager) GetOfficialOverlays(ctx context.Context, versionString string) ([]OverlayRef, error)

GetOfficialOverlays returns a list of overlays per Talos version available.

func (*Manager) GetOverlayArtifact added in v0.7.1

func (m *Manager) GetOverlayArtifact(ctx context.Context, arch Arch, ref OverlayRef, kind OverlayKind) (string, error)

GetOverlayArtifact returns the artifact path for the given version, arch and kind.

func (*Manager) GetOverlayImage added in v0.3.0

func (m *Manager) GetOverlayImage(ctx context.Context, arch Arch, ref OverlayRef) (string, error)

GetOverlayImage pulls and stores in OCI layout an overlay image.

func (*Manager) GetSchematicExtension

func (m *Manager) GetSchematicExtension(ctx context.Context, versionTag string, schematic *schematic.Schematic) (string, error)

GetSchematicExtension returns a path to the tarball with "virtual" extension matching a specified schematic.

func (*Manager) GetTalosVersions

func (m *Manager) GetTalosVersions(ctx context.Context) ([]semver.Version, error)

GetTalosVersions returns a list of Talos versions available.

func (*Manager) GetTalosctlImage added in v0.7.5

func (m *Manager) GetTalosctlImage(ctx context.Context, versionString string) (string, error)

GetTalosctlImage pulls and stores in OCI layout talosctl-all image.

func (*Manager) GetTalosctlTuples added in v0.7.5

func (m *Manager) GetTalosctlTuples(ctx context.Context, versionString string) ([]TalosctlTuple, error)

GetTalosctlTuples returns a list of Talosctl tuples for the given version.

func (*Manager) InstallerImageName added in v0.9.0

func (m *Manager) InstallerImageName(versionTag string) string

InstallerImageName returns an installer image name based on Talos version.

type Options

type Options struct {
	// ImageRegistry is the registry which stores imager, extensions, etc..
	//
	// For official images, this is "ghcr.io".
	ImageRegistry string
	// Option to allow using an image registry without TLS.
	InsecureImageRegistry bool
	// MinVersion is the minimum version of Talos to use.
	MinVersion semver.Version
	// BrokenVersions are Talos versions that should be rejected when listing available versions.
	BrokenVersions []semver.Version
	// ImageVerifyOptions are the options for verifying the image signature.
	ImageVerifyOptions ImageVerifyOptions
	// TalosVersionRecheckInterval is the interval for rechecking Talos versions.
	TalosVersionRecheckInterval time.Duration
	// RemoteOptions is the list of remote options for the puller.
	RemoteOptions []remote.Option
	// RegistryRefreshInterval is the interval for refreshing the image registry connections.
	RegistryRefreshInterval time.Duration

	// Images used by the artifacts manager.
	InstallerBaseImage     string
	InstallerImage         string
	ImagerImage            string
	ExtensionManifestImage string
	OverlayManifestImage   string
	TalosctlImage          string

	// External identification.
	ExternalURL string
}

Options are the options for the artifacts manager.

type OverlayKind added in v0.7.1

type OverlayKind string

OverlayKind if the kind of overlay artifacts.

const (
	OverlayKindProfiles OverlayKind = "profiles"
)

Supported overlay kinds.

type OverlayRef added in v0.3.0

type OverlayRef struct {
	Name            string
	TaggedReference name.Tag
	Digest          string
}

OverlayRef is a ref to the overlay for some Talos version.

type SPDXFile added in v1.1.0

type SPDXFile struct {
	// Filename is the original filename (e.g., "extension-name.spdx.json").
	Filename string

	// Source is the source identifier (extension name or "talos").
	Source string

	// Content is the raw JSON content.
	Content []byte
}

SPDXFile represents an extracted SPDX file.

type TalosctlTuple added in v0.7.5

type TalosctlTuple struct {
	OS   string
	Arch string
	Ext  string
}

TalosctlTuple represents a OS/Arch/Ext tuple for talosctl binaries.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL