@@ -45,7 +45,7 @@ func TestVersionDefaulting(t *testing.T) {
4545}
4646
4747func TestAirgapDefaults (t * testing.T ) {
48- k0s := & K0s {Airgap : & Airgap {Enabled : true }}
48+ k0s := & K0s {Version : version . MustParse ( "v1.34.1+k0s.0" ), Airgap : & Airgap {Enabled : true }}
4949
5050 require .NoError (t , defaults .Set (k0s ))
5151 require .NoError (t , k0s .Validate ())
@@ -63,29 +63,39 @@ func TestAirgapValidateSetsDefaults(t *testing.T) {
6363
6464func TestAirgapValidation (t * testing.T ) {
6565 t .Run ("local requires path" , func (t * testing.T ) {
66- k0s := & K0s {Airgap : & Airgap {Enabled : true , Source : AirgapSourceLocal }}
66+ k0s := & K0s {Version : version . MustParse ( "v1.34.1+k0s.0" ), Airgap : & Airgap {Enabled : true , Source : AirgapSourceLocal }}
6767 require .ErrorContains (t , k0s .Validate (), "Path: cannot be blank" )
6868 })
6969
7070 t .Run ("url requires url" , func (t * testing.T ) {
71- k0s := & K0s {Airgap : & Airgap {Enabled : true , Source : AirgapSourceURL }}
71+ k0s := & K0s {Version : version . MustParse ( "v1.34.1+k0s.0" ), Airgap : & Airgap {Enabled : true , Source : AirgapSourceURL }}
7272 require .ErrorContains (t , k0s .Validate (), "URL: cannot be blank" )
7373 })
7474
7575 t .Run ("invalid source" , func (t * testing.T ) {
76- k0s := & K0s {Airgap : & Airgap {Enabled : true , Source : "other" }}
76+ k0s := & K0s {Version : version . MustParse ( "v1.34.1+k0s.0" ), Airgap : & Airgap {Enabled : true , Source : "other" }}
7777 require .ErrorContains (t , k0s .Validate (), "Source: must be a valid value" )
7878 })
7979
8080 t .Run ("remote download deferred" , func (t * testing.T ) {
81- k0s := & K0s {Airgap : & Airgap {Enabled : true , Mode : AirgapModeRemoteDownload }}
81+ k0s := & K0s {Version : version . MustParse ( "v1.34.1+k0s.0" ), Airgap : & Airgap {Enabled : true , Mode : AirgapModeRemoteDownload }}
8282 require .ErrorContains (t , k0s .Validate (), `mode "remoteDownload" is not supported yet` )
8383 })
8484
8585 t .Run ("invalid sha256" , func (t * testing.T ) {
86- k0s := & K0s {Airgap : & Airgap {Enabled : true , SHA256 : "abc123" }}
86+ k0s := & K0s {Version : version . MustParse ( "v1.34.1+k0s.0" ), Airgap : & Airgap {Enabled : true , Source : AirgapSourceURL , URL : "https://example.invalid/bundle" , SHA256 : "abc123" }}
8787 require .ErrorContains (t , k0s .Validate (), "SHA256: must be 64 hex characters" )
8888 })
89+
90+ t .Run ("auto source rejects sha256" , func (t * testing.T ) {
91+ k0s := & K0s {Version : version .MustParse ("v1.34.1+k0s.0" ), Airgap : & Airgap {Enabled : true , SHA256 : "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef" }}
92+ require .ErrorContains (t , k0s .Validate (), `SHA256: must be empty when source is "auto"` )
93+ })
94+
95+ t .Run ("airgap requires version" , func (t * testing.T ) {
96+ k0s := & K0s {Airgap : & Airgap {Enabled : true }}
97+ require .ErrorContains (t , k0s .Validate (), "version is required when airgap is enabled" )
98+ })
8999}
90100
91101func TestNodeConfigUsesLowercaseMetadataKey (t * testing.T ) {
0 commit comments