Persistent storage keeps data available between restarts of odo.

Adding storage to the application components

Use the odo storage command to add persistent data to your application. Examples of data that must persist include database files, dependencies, and build artifacts, such as a .m2 Maven directory.

Procedure
  1. Add the storage to your component:

    $ odo storage create <storage_name> --path=<path_to_the_directory> --size=<size>
  2. Push the storage to the cluster:

    $ odo push
  3. Verify that the storage is now attached to your component by listing all storage in the component:

    $ odo storage list
    Example output
    The component 'nodejs' has the following storage attached:
    NAME           SIZE     PATH      STATE
    mystorage      1Gi      /data     Pushed
  4. Delete the storage from your component:

    $ odo storage delete <storage_name>
  5. List all storage to verify that the storage state is Locally Deleted:

    $ odo storage list
    Example output
    The component 'nodejs' has the following storage attached:
    NAME           SIZE     PATH      STATE
    mystorage      1Gi      /data     Locally Deleted
  6. Push the changes to the cluster:

    $ odo push

Switching between ephemeral and persistent storage

You can switch between ephemeral and persistent storage in your project by using the odo preference command. odo preference modifies the global preference in your cluster.

When persistent storage is enabled, the cluster stores the information between the restarts.

When ephemeral storage is enabled, the cluster does not store the information between the restarts.

Ephemeral storage is enabled by default.

Procedure
  1. See the preference currently set in your project:

    $ odo preference view
    Example output
    PARAMETER             CURRENT_VALUE
    UpdateNotification
    NamePrefix
    Timeout
    BuildTimeout
    PushTimeout
    Experimental
    PushTarget
    Ephemeral             true
  2. To unset the ephemeral storage and set the persistent storage:

    $ odo preference set Ephemeral false
  3. To set the ephemeral storage again:

    $ odo preference set Ephemeral true

    The odo preference command changes the global settings of all your currently deployed components as well as ones you will deploy in future.

  4. Run odo push to make odo create a specified storage for your component:

    $ odo push