Modify Ubuntu 18.04 'defaultPersistDirs'# In a previous lesson  we deployed a Ubuntu Cluster with default storage and found that the directories /home and /etc were persisted.
In this section, we are going to modify the persisted directories (defaultPersistDirs).  
Open the file deploy/example_catalog/cr-app-ubuntu18.04.json.
Currently, defaultPersistDirs is set to:
Copy {   
    ... 
     "defaultPersistDirs"   :   [ "/home" ] , 
    ... 
} 
Change it to:
Copy {   
    ... 
     "defaultPersistDirs"   :   [ "/home" ,   "/var" ] , 
    ... 
} 
The full json should now look like this:
Copy { 
     "apiVersion" :   "kubedirector.hpe.com/v1beta1" , 
     "kind" :   "KubeDirectorApp" , 
     "metadata" :   { 
         "name"   :   "ubuntu18x" 
     } , 
 
     "spec"   :   { 
         "systemdRequired" :   true , 
         "defaultPersistDirs"   :   [ "/home" ,   "/var" ] , 
         "config" :   { 
             "roleServices" :   [ 
                 { 
                     "serviceIDs" :   [ 
                         "ssh" 
                     ] , 
                     "roleID" :   "vanilla_ubuntu" 
                 } 
             ] , 
             "selectedRoles" :   [ 
                 "vanilla_ubuntu" 
             ] 
         } , 
         "label" :   { 
             "name" :   "Ubuntu 18.04" , 
             "description" :   "Ubuntu 18.04 with no preinstalled apps" 
         } , 
         "distroID" :   "bluedata/ubuntu18x" , 
         "version" :   "1.1" , 
         "configSchemaVersion" :   8 , 
         "services" :   [ 
             { 
                 "endpoint" :   { 
                     "port" :   22 , 
                     "isDashboard" :   false 
                 } , 
                 "id" :   "ssh" , 
                 "label" :   { 
                     "name" :   "SSH" 
                 } 
             } 
         ] , 
         "defaultImageRepoTag" :   "bluedata/ubuntu18.04:1.1" , 
         "defaultConfigPackage" :   null , 
         "roles" :   [ 
             { 
                 "cardinality" :   "1+" , 
                 "id" :   "vanilla_ubuntu" 
             } 
         ] 
     } 
} 
We need to delete the old cr-app-ubuntu18.04.json application definition from our Kubernetes environment:
Copy $ kubectl delete -f deploy/example_catalog/cr-app-ubuntu18.04.json  
kubedirectorapp.kubedirector.hpe.com  "ubuntu18x"  deleted 
We can now deploy our updated application definition:
Copy $ kubectl create -f deploy/example_catalog/cr-app-ubuntu18.04.json  
kubedirectorapp.kubedirector.hpe.com/ubuntu18x created 
Next, deploy a cluster:
Copy $ kubectl create -f deploy/example_clusters/cr-cluster-ubuntu18.04-stor.yaml  
kubedirectorcluster.kubedirector.hpe.com/ubuntu18.04-persistent created 
We want to check that /vars is now persisted, let's find the PersistentVolume for our ubuntu virtual cluster:
Copy $ kubectl get  pv 
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS     CLAIM                    STORAGECLASS   REASON   AGE 
pvc-df7da24a-e609-4e32-b574-db579fbb0cda   40Gi       RWO            Delete           Bound      default/p-kdss-qtl4d-0   standard                20s 
We can use describe pv to find the storage location:
Copy $ kubectl describe  pv  pvc-df7da24a-e609-4e32-b574-db579fbb0cda 
.. . 
Source: 
    Type:          HostPath  ( bare  host  directory volume ) 
    Path:          /tmp/hostpath-provisioner/p-kdss-qtl4d-0 
    HostPathType:   
.. . 
Finally, we can use ls to check what folders are persisted:
Copy $  ls  /tmp/hostpath-provisioner/p-kdss-qtl4d-0 
etc  home  var 
 Why was /etc persisted?# KubeDirector will persist /etc if you don't have an app config package in your app definition. 
It will persist /etc, /opt and /usr only if app config is defined.
See here  for more info. 
We will explore app config in this lesson .
 Reference information# In this lesson we saw how defaultPersistDirs works. 
You can find the:
KubeDirectorApp definition here KubeDirectorApp.spec definition here