Skip to content

Volume managment

Kamil Koczurek edited this page Sep 3, 2024 · 10 revisions
{ deploy: {
   net: [{ id: "id", ip: "10.0.0.2", mask: "255.255.0.0" }],
   hosts: { master: "10.0.0.1" },
   nodes: { "10.0.0.1": "0xdeadbeef" },
   progress : { updateInterval: "300ms" },
   volumes: {
      "/": { storage: { size: "10g", errors: "panic" } } 
   }
}

Volumes

can be in 2 forms. array of string is list that overides image defined volumes. eg.

It is mapping keys are mount points and values are volume definitions.

for example:

{ 
  deploy: {
    volumes: {
        "/golem/input": { host: {} }, 
        "/golem/output": { host: {} }
        "/": { ram: { size: "1g" }
    }
  }
}

Alternatively, a simplified form can be supplied:

{ 
  deploy: {
    volumes: ["/golem/input", "/golem/output"]
  }
}

Whereas volumes: ["/foo", "/bar"] desugars into volumes: { "/foo": { host: {} }, "/bar": { host: {} } }

Definition for rootfs.

Variants:

ram

Name Type Description Notes
size String [required]

storage

Name Type Description Notes
size String format for storage 100m, 10g, etc. [required]
preallocate String same as size [optional] [default to 0]
errors String possible values continue, remount-ro, panic [optional] [default to continue]

host

This is used for creating a mount point for transfering files between requestor and provider. This variant is not permitted for the root directory.

Examples

  1. Root file system that can grow upto 1 gigabyte. no preallocation. container will panic if error occurs.
{ 
  deploy: {
    volumes: {
        "/": { storage: { size: "1g",  errors: "panic" }
    }
  }
}
  1. Root fs, with prealoocated 10GB storage.
{ 
  deploy: {
    volumes: {
        "/": { storage: { size: "10g",  preallocate: "10g" }
    }
  }
}
  1. Root fs with in memory overflow size 1g
{ 
  deploy: {
    volumes: {
        "/": { tmpfs: { size: "1g" }
    }
  }
}
  1. Disable image volume definition for /golem/input
{ 
  deploy: {
    volumes: {
        "/golem/input": null
    }
  }
}
Clone this wiki locally