@@ -40,18 +40,18 @@ func TestUserVolumeConfigSuite(t *testing.T) {
4040}
4141
4242func (suite * UserVolumeConfigSuite ) TestReconcileUserVolumesSwapVolumes () {
43- uv1 := blockcfg .NewUserVolumeConfigV1Alpha1 ()
44- uv1 .MetaName = "data1 "
45- suite .Require ().NoError (uv1 .ProvisioningSpec .DiskSelectorSpec .Match .UnmarshalText ([]byte (`system_disk` )))
46- uv1 .ProvisioningSpec .ProvisioningMinSize = blockcfg .MustByteSize ("10GiB" )
47- uv1 .ProvisioningSpec .ProvisioningMaxSize = blockcfg .MustByteSize ("100GiB" )
48- uv1 .FilesystemSpec .FilesystemType = block .FilesystemTypeXFS
49-
50- uv2 := blockcfg .NewUserVolumeConfigV1Alpha1 ()
51- uv2 .MetaName = "data2 "
52- suite .Require ().NoError (uv2 .ProvisioningSpec .DiskSelectorSpec .Match .UnmarshalText ([]byte (`!system_disk` )))
53- uv2 .ProvisioningSpec .ProvisioningMaxSize = blockcfg .MustByteSize ("1TiB" )
54- uv2 .EncryptionSpec = blockcfg.EncryptionSpec {
43+ uvPart1 := blockcfg .NewUserVolumeConfigV1Alpha1 ()
44+ uvPart1 .MetaName = "data-part1 "
45+ suite .Require ().NoError (uvPart1 .ProvisioningSpec .DiskSelectorSpec .Match .UnmarshalText ([]byte (`system_disk` )))
46+ uvPart1 .ProvisioningSpec .ProvisioningMinSize = blockcfg .MustByteSize ("10GiB" )
47+ uvPart1 .ProvisioningSpec .ProvisioningMaxSize = blockcfg .MustByteSize ("100GiB" )
48+ uvPart1 .FilesystemSpec .FilesystemType = block .FilesystemTypeXFS
49+
50+ uvPart2 := blockcfg .NewUserVolumeConfigV1Alpha1 ()
51+ uvPart2 .MetaName = "data-part2 "
52+ suite .Require ().NoError (uvPart2 .ProvisioningSpec .DiskSelectorSpec .Match .UnmarshalText ([]byte (`!system_disk` )))
53+ uvPart2 .ProvisioningSpec .ProvisioningMaxSize = blockcfg .MustByteSize ("1TiB" )
54+ uvPart2 .EncryptionSpec = blockcfg.EncryptionSpec {
5555 EncryptionProvider : block .EncryptionProviderLUKS2 ,
5656 EncryptionKeys : []blockcfg.EncryptionKey {
5757 {
@@ -65,25 +65,43 @@ func (suite *UserVolumeConfigSuite) TestReconcileUserVolumesSwapVolumes() {
6565 },
6666 }
6767
68- uv3 := blockcfg .NewUserVolumeConfigV1Alpha1 ()
69- uv3 .MetaName = "data3"
70- uv3 .VolumeType = pointer .To (block .VolumeTypeDirectory )
68+ uvDir1 := blockcfg .NewUserVolumeConfigV1Alpha1 ()
69+ uvDir1 .MetaName = "data-dir1"
70+ uvDir1 .VolumeType = pointer .To (block .VolumeTypeDirectory )
71+
72+ uvDisk1 := blockcfg .NewUserVolumeConfigV1Alpha1 ()
73+ uvDisk1 .MetaName = "data-disk1"
74+ suite .Require ().NoError (uvDisk1 .ProvisioningSpec .DiskSelectorSpec .Match .UnmarshalText ([]byte (`!system_disk` )))
75+ uvDisk1 .EncryptionSpec = blockcfg.EncryptionSpec {
76+ EncryptionProvider : block .EncryptionProviderLUKS2 ,
77+ EncryptionKeys : []blockcfg.EncryptionKey {
78+ {
79+ KeySlot : 0 ,
80+ KeyTPM : & blockcfg.EncryptionKeyTPM {},
81+ },
82+ {
83+ KeySlot : 1 ,
84+ KeyStatic : & blockcfg.EncryptionKeyStatic {KeyData : "secret" },
85+ },
86+ },
87+ }
7188
7289 sv1 := blockcfg .NewSwapVolumeConfigV1Alpha1 ()
7390 sv1 .MetaName = "swap"
7491 suite .Require ().NoError (sv1 .ProvisioningSpec .DiskSelectorSpec .Match .UnmarshalText ([]byte (`disk.transport == "nvme"` )))
7592 sv1 .ProvisioningSpec .ProvisioningMaxSize = blockcfg .MustByteSize ("2GiB" )
7693
77- ctr , err := container .New (uv1 , uv2 , uv3 , sv1 )
94+ ctr , err := container .New (uvPart1 , uvPart2 , uvDir1 , uvDisk1 , sv1 )
7895 suite .Require ().NoError (err )
7996
8097 cfg := config .NewMachineConfig (ctr )
8198 suite .Create (cfg )
8299
83100 userVolumes := []string {
84- constants .UserVolumePrefix + "data1" ,
85- constants .UserVolumePrefix + "data2" ,
86- constants .UserVolumePrefix + "data3" ,
101+ constants .UserVolumePrefix + "data-part1" ,
102+ constants .UserVolumePrefix + "data-part2" ,
103+ constants .UserVolumePrefix + "data-dir1" ,
104+ constants .UserVolumePrefix + "data-disk1" ,
87105 }
88106
89107 ctest .AssertResources (suite , userVolumes , func (vc * block.VolumeConfig , asrt * assert.Assertions ) {
@@ -104,7 +122,7 @@ func (suite *UserVolumeConfigSuite) TestReconcileUserVolumesSwapVolumes() {
104122 asrt .Equal (block .VolumeTypeDirectory , vc .TypedSpec ().Type )
105123 }
106124
107- asrt .Contains ([] string { "data1" , "data2" , "data3" } , vc .TypedSpec ().Mount .TargetPath )
125+ asrt .Contains (userVolumes , vc .TypedSpec ().Mount .TargetPath )
108126 asrt .Equal (constants .UserVolumeMountPoint , vc .TypedSpec ().Mount .ParentID )
109127
110128 switch vc .Metadata ().ID () {
@@ -143,8 +161,8 @@ func (suite *UserVolumeConfigSuite) TestReconcileUserVolumesSwapVolumes() {
143161 suite .AddFinalizer (block .NewVolumeMountRequest (block .NamespaceName , volumeID ).Metadata (), "test" )
144162 }
145163
146- // drop the first volume
147- ctr , err = container .New (uv2 )
164+ // keep only the first volume
165+ ctr , err = container .New (uvPart1 )
148166 suite .Require ().NoError (err )
149167
150168 newCfg := config .NewMachineConfig (ctr )
@@ -153,32 +171,32 @@ func (suite *UserVolumeConfigSuite) TestReconcileUserVolumesSwapVolumes() {
153171
154172 // controller should tear down removed resources
155173 ctest .AssertResources (suite , userVolumes , func (vc * block.VolumeConfig , asrt * assert.Assertions ) {
156- if vc .Metadata ().ID () == userVolumes [1 ] {
174+ if vc .Metadata ().ID () == userVolumes [0 ] {
157175 asrt .Equal (resource .PhaseRunning , vc .Metadata ().Phase ())
158176 } else {
159177 asrt .Equal (resource .PhaseTearingDown , vc .Metadata ().Phase ())
160178 }
161179 })
162180
163181 ctest .AssertResources (suite , userVolumes , func (vmr * block.VolumeMountRequest , asrt * assert.Assertions ) {
164- if vmr .Metadata ().ID () == userVolumes [1 ] {
182+ if vmr .Metadata ().ID () == userVolumes [0 ] {
165183 asrt .Equal (resource .PhaseRunning , vmr .Metadata ().Phase ())
166184 } else {
167185 asrt .Equal (resource .PhaseTearingDown , vmr .Metadata ().Phase ())
168186 }
169187 })
170188
171189 // remove finalizers
172- suite . RemoveFinalizer ( block . NewVolumeConfig ( block . NamespaceName , userVolumes [0 ]). Metadata (), "test" )
173- suite .RemoveFinalizer (block .NewVolumeMountRequest (block .NamespaceName , userVolumes [ 0 ] ).Metadata (), "test" )
174- suite .RemoveFinalizer (block .NewVolumeConfig (block .NamespaceName , userVolumes [ 2 ] ).Metadata (), "test" )
175- suite . RemoveFinalizer ( block . NewVolumeMountRequest ( block . NamespaceName , userVolumes [ 2 ]). Metadata (), "test" )
190+ for _ , userVolume := range userVolumes [1 :] {
191+ suite .RemoveFinalizer (block .NewVolumeConfig (block .NamespaceName , userVolume ).Metadata (), "test" )
192+ suite .RemoveFinalizer (block .NewVolumeMountRequest (block .NamespaceName , userVolume ).Metadata (), "test" )
193+ }
176194
177195 // now the resources should be removed
178- ctest . AssertNoResource [ * block. VolumeConfig ]( suite , userVolumes [0 ])
179- ctest .AssertNoResource [* block.VolumeMountRequest ](suite , userVolumes [ 0 ] )
180- ctest .AssertNoResource [* block.VolumeConfig ](suite , userVolumes [ 2 ] )
181- ctest . AssertNoResource [ * block. VolumeMountRequest ]( suite , userVolumes [ 2 ])
196+ for _ , userVolume := range userVolumes [1 :] {
197+ ctest .AssertNoResource [* block.VolumeConfig ](suite , userVolume )
198+ ctest .AssertNoResource [* block.VolumeMountRequest ](suite , userVolume )
199+ }
182200}
183201
184202func (suite * UserVolumeConfigSuite ) TestReconcileRawVolumes () {
0 commit comments