@@ -142,6 +142,10 @@ Examples:
142142 Name : "snapshot-compression-enabled" ,
143143 Usage : "Enable snapshot memory compression for this instance policy" ,
144144 },
145+ & cli.StringFlag {
146+ Name : "snapshot-compression-delay" ,
147+ Usage : `Delay before standby snapshot compression begins (e.g., "30s", "5m")` ,
148+ },
145149 & cli.StringFlag {
146150 Name : "snapshot-compression-algorithm" ,
147151 Usage : `Snapshot compression algorithm: "zstd" or "lz4"` ,
@@ -347,26 +351,31 @@ func handleRun(ctx context.Context, cmd *cli.Command) error {
347351 }
348352
349353 // Snapshot policy compression
350- if cmd .IsSet ("snapshot-compression-enabled" ) || cmd .IsSet ("snapshot-compression-algorithm" ) || cmd .IsSet ("snapshot-compression-level" ) {
351- compression := shared.SnapshotCompressionConfigParam {
352- Enabled : cmd .Bool ("snapshot-compression-enabled" ),
353- }
354- if ! cmd .IsSet ("snapshot-compression-enabled" ) {
355- compression .Enabled = true
354+ if cmd .IsSet ("snapshot-compression-enabled" ) || cmd .IsSet ("snapshot-compression-delay" ) || cmd .IsSet ("snapshot-compression-algorithm" ) || cmd .IsSet ("snapshot-compression-level" ) {
355+ policy := hypeman.SnapshotPolicyParam {}
356+ if delay := cmd .String ("snapshot-compression-delay" ); delay != "" {
357+ policy .StandbyCompressionDelay = hypeman .Opt (delay )
356358 }
357- if cmd .IsSet ("snapshot-compression-level" ) {
358- compression .Level = hypeman .Opt (int64 (cmd .Int ("snapshot-compression-level" )))
359- }
360- if algorithm := cmd .String ("snapshot-compression-algorithm" ); algorithm != "" {
361- parsedAlgorithm , err := parseSnapshotCompressionAlgorithm (algorithm )
362- if err != nil {
363- return fmt .Errorf ("invalid snapshot compression algorithm: %w" , err )
359+ if cmd .IsSet ("snapshot-compression-enabled" ) || cmd .IsSet ("snapshot-compression-algorithm" ) || cmd .IsSet ("snapshot-compression-level" ) {
360+ compression := shared.SnapshotCompressionConfigParam {
361+ Enabled : cmd .Bool ("snapshot-compression-enabled" ),
364362 }
365- compression .Algorithm = parsedAlgorithm
366- }
367- params .SnapshotPolicy = hypeman.SnapshotPolicyParam {
368- Compression : compression ,
363+ if ! cmd .IsSet ("snapshot-compression-enabled" ) {
364+ compression .Enabled = true
365+ }
366+ if cmd .IsSet ("snapshot-compression-level" ) {
367+ compression .Level = hypeman .Opt (int64 (cmd .Int ("snapshot-compression-level" )))
368+ }
369+ if algorithm := cmd .String ("snapshot-compression-algorithm" ); algorithm != "" {
370+ parsedAlgorithm , err := parseSnapshotCompressionAlgorithm (algorithm )
371+ if err != nil {
372+ return fmt .Errorf ("invalid snapshot compression algorithm: %w" , err )
373+ }
374+ compression .Algorithm = parsedAlgorithm
375+ }
376+ policy .Compression = compression
369377 }
378+ params .SnapshotPolicy = policy
370379 }
371380
372381 // Volume mounts
0 commit comments