Skip to content

Commit

Permalink
convertor: option to disable sparse file
Browse files Browse the repository at this point in the history
Signed-off-by: zhuangbowei.zbw <[email protected]>
  • Loading branch information
WaberZhuang committed Jun 13, 2024
1 parent d41d4ce commit 83e5330
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 1 deletion.
4 changes: 4 additions & 0 deletions cmd/convertor/builder/builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@ type BuilderOptions struct {
// ConcurrencyLimit limits the number of manifests that can be built at once
// 0 means no limit
ConcurrencyLimit int

// disable sparse file when converting overlaybd
DisableSprase bool
}

type graphBuilder struct {
Expand Down Expand Up @@ -248,6 +251,7 @@ func (b *graphBuilder) buildOne(ctx context.Context, src v1.Descriptor, tag bool
switch b.Engine {
case Overlaybd:
engine = NewOverlayBDBuilderEngine(engineBase)
engine.(*overlaybdBuilderEngine).disableSprase = b.DisableSprase
case TurboOCI:
engine = NewTurboOCIBuilderEngine(engineBase)
}
Expand Down
6 changes: 5 additions & 1 deletion cmd/convertor/builder/overlaybd_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ type overlaybdConvertResult struct {

type overlaybdBuilderEngine struct {
*builderEngineBase
disableSprase bool
overlaybdConfig *sn.OverlayBDBSConfig
overlaybdLayers []overlaybdConvertResult
}
Expand Down Expand Up @@ -427,7 +428,10 @@ func (e *overlaybdBuilderEngine) getLayerDir(idx int) string {
}

func (e *overlaybdBuilderEngine) create(ctx context.Context, dir string, mkfs bool, vsizeGB int) error {
opts := []string{"-s", fmt.Sprintf("%d", vsizeGB)}
opts := []string{fmt.Sprintf("%d", vsizeGB)}
if !e.disableSprase {
opts = append(opts, "-s")
}
if mkfs {
opts = append(opts, "--mkfs")
logrus.Infof("mkfs for baselayer, vsize: %d GB", vsizeGB)
Expand Down
3 changes: 3 additions & 0 deletions cmd/convertor/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ var (
dbstr string
dbType string
concurrencyLimit int
disableSprase bool

// certification
certDirs []string
Expand Down Expand Up @@ -104,6 +105,7 @@ Version: ` + commitID,
NoUpload: noUpload,
DumpManifest: dumpManifest,
ConcurrencyLimit: concurrencyLimit,
DisableSprase: disableSprase,
}
if overlaybd != "" {
logrus.Info("building [Overlaybd - Native] image...")
Expand Down Expand Up @@ -165,6 +167,7 @@ func init() {
rootCmd.Flags().StringVar(&dbstr, "db-str", "", "db str for overlaybd conversion")
rootCmd.Flags().StringVar(&dbType, "db-type", "", "type of db to use for conversion deduplication. Available: mysql. Default none")
rootCmd.Flags().IntVar(&concurrencyLimit, "concurrency-limit", 4, "the number of manifests that can be built at the same time, used for multi-arch images, 0 means no limit")
rootCmd.Flags().BoolVar(&disableSprase, "disable-sparse", false, "disable sparse file for overlaybd")

// certification
rootCmd.Flags().StringArrayVar(&certDirs, "cert-dir", nil, "In these directories, root CA should be named as *.crt and client cert should be named as *.cert, *.key")
Expand Down

0 comments on commit 83e5330

Please sign in to comment.