Working with storage
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
Add the storage to your component:
$ odo storage create <storage_name> --path=<path_to_the_directory> --size=<size>
Push the storage to the cluster:
$ odo push
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
Delete the storage from your component:
$ odo storage delete <storage_name>
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
Push the changes to the cluster:
$ odo push
Adding storage to a specific container
If your devfile has multiple containers, you can use the --container
flag to specify the container you want to attach storage to.
Procedure
Create a devfile with multiple containers:
components:
- name: runtime (1)
container:
image: registry.access.redhat.com/ubi8/nodejs-12:1-36
memoryLimit: 1024Mi
endpoints:
- name: "3000-tcp"
targetPort: 3000
mountSources: true
- name: funtime (2)
container:
image: registry.access.redhat.com/ubi8/nodejs-12:1-36
memoryLimit: 1024Mi
1 The runtime
container.2 The funtime
container.To create storage for the
runtime
container:$ odo storage create store --path /data --size 1Gi --container runtime
Output of the command:
✓ Added storage store to nodejs-testing-xnfg
Please use `odo push` command to make the storage accessible to the component
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-testing-xnfg' has the following storage attached:
NAME SIZE PATH CONTAINER STATE
store 1Gi /data runtime Not Pushed
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
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
To unset the ephemeral storage and set the persistent storage:
$ odo preference set Ephemeral false
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.Run
odo push
to makeodo
create a specified storage for your component:$ odo push
Additional resources