Skip to content

Commit fd5843f

Browse files
feat: allow a user to skip the Talos version filter
This commit introduces a new flag '-skip-version-filter' which skips the filtering of available versions in the artifactManager. Signed-off-by: Mattias Cockburn <mattias.cockburn@posteo.net>
1 parent 8b4e0d9 commit fd5843f

5 files changed

Lines changed: 14 additions & 2 deletions

File tree

cmd/image-factory/cmd/options.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ type Options struct { //nolint:govet
1313

1414
// Asset builder options: minimum supported Talos version.
1515
MinTalosVersion string
16+
// Whether to skip beta/alpha versions and such when obtaining valid Talos versions
17+
SkipVersionFilter bool
1618
// Image registry for source images: imager, extensions, etc..
1719
ImageRegistry string
1820
// Allow insecure connection to the image registry
@@ -89,8 +91,9 @@ type SecureBootOptions struct { //nolint:govet
8991
var DefaultOptions = Options{
9092
HTTPListenAddr: ":8080",
9193

92-
MinTalosVersion: "1.2.0",
93-
ImageRegistry: "ghcr.io",
94+
MinTalosVersion: "1.2.0",
95+
SkipVersionFilter: false,
96+
ImageRegistry: "ghcr.io",
9497

9598
ContainerSignatureSubjectRegExp: `@siderolabs\.com$`,
9699
ContainerSignatureIssuerRegExp: "",

cmd/image-factory/cmd/service.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,7 @@ func buildArtifactsManager(ctx context.Context, logger *zap.Logger, opts Options
245245

246246
artifactsManager, err := artifacts.NewManager(logger, artifacts.Options{
247247
MinVersion: minVersion,
248+
SkipVersionFilter: opts.SkipVersionFilter,
248249
ImageRegistry: opts.ImageRegistry,
249250
InsecureImageRegistry: opts.InsecureImageRegistry,
250251
ImageVerifyOptions: checkOpts,

cmd/image-factory/flags.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ func initFlags() cmd.Options {
1717
flag.StringVar(&opts.HTTPListenAddr, "http-port", cmd.DefaultOptions.HTTPListenAddr, "HTTP listen address")
1818

1919
flag.StringVar(&opts.MinTalosVersion, "min-talos-version", cmd.DefaultOptions.MinTalosVersion, "minimum Talos version")
20+
flag.BoolVar(&opts.SkipVersionFilter, "skip-version-filter", cmd.DefaultOptions.SkipVersionFilter, "whether to skip the version filter when obtaining valid Talos versions")
2021
flag.StringVar(&opts.ImageRegistry, "image-registry", cmd.DefaultOptions.ImageRegistry, "image registry for imager, extensions, etc.")
2122
flag.BoolVar(&opts.InsecureImageRegistry, "insecure-image-registry", cmd.DefaultOptions.InsecureImageRegistry, "allow an insecure connection to the image registry")
2223

internal/artifacts/artifacts.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ type Options struct { //nolint:govet
2323
InsecureImageRegistry bool
2424
// MinVersion is the minimum version of Talos to use.
2525
MinVersion semver.Version
26+
// SkipVersionFilter indicated whether obtained Talos versions should be filtered
27+
SkipVersionFilter bool
2628
// ImageVerifyOptions are the options for verifying the image signature.
2729
ImageVerifyOptions []cosign.CheckOpts
2830
// TalosVersionRecheckInterval is the interval for rechecking Talos versions.

internal/artifacts/versions.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,12 @@ func (m *Manager) fetchTalosVersions() (any, error) {
5050
maxVersion := slices.MaxFunc(versions, semver.Version.Compare)
5151

5252
// allow non-prerelease versions, and allow pre-release for the "latest" release (maxVersion)
53+
// skip this filter completely if the respective flag is set
5354
versions = xslices.Filter(versions, func(version semver.Version) bool {
55+
if m.options.SkipVersionFilter {
56+
return true
57+
}
58+
5459
if version.LT(m.options.MinVersion) {
5560
return false // ignore versions below minimum
5661
}

0 commit comments

Comments
 (0)