Creating volumes and folders for deployment on Kubernetes

The content services component containers require a certain number of persistent volumes, persistent volume claims, and folders to be created before you can deploy. The deployment process uses these volumes and folders during the deployment.

About this task

 New in 20.0.2  You can choose to have the operator dynamically provision storage for you at deployment time. In that case, you do not need to create volumes and folders manually for your container environment. You can leave all storage values for your Navigator deployment with the default value in the custom resource YAML.

For more information about dynamically provisioned storage, see Configuring storage for the content services environment.

Remember:  New in 20.0.2  Storage can be provisioned using a mixture of static and dynamic. The operator uses the persistent volume claim names, of the default values, to determine if a claim already exists.
  • If the claim does not exist, dynamic provisioning is used. The persistent volume claim names provided in the custom resource YAML are used when the claim is created.
  • If the claim does exist, that claim is used when deploying.
  • If static provisioning is used, the persistent volumes and persistent volume claims must be pre-created and the persistent volume claim name provided in the CR.

If you are deploying  For 20.0.1  or earlier, or you want to use manual configuration for your storage, use the steps in this topic.

Although the following describes the volumes that are generally required, you can decide to designate more or fewer persistent volumes and volume claims.

You can use a YAML file to capture details like the name and the specifications of the persistent volume that you want to create, and use the Kubectl command line tool with the file to create the persistent volume object. You use a similar approach to create the persistent volume claims. See the following example for more details: Configure a persistent volume for storage.

The persistent volume and persistent volume claim names that are provided in the following tables are examples.

Directory permissions and ownership

The permissions that are described in the following steps are examples that provide a secure environment. Your environment might have different permission requirements. Consider the following possibilities when you apply permissions to your folders:
  • The NFS export root_squash option is strongly recommended for security. If you use the root_squash option, then the file directories to be used for the PVs group ownership must be set to the one specified by the anongid option given in the NFS export definition. The default anongid value is 65534.
  • If the no_root_squash option is used, the PV group ownership must be set to the root group 0.
  • Assign read, write, execute permissions to both the user and group owners, for example, chmod 770
The following settings are required by FileNet® Content Manager when creating your NFS exports:
  • The rw,sync,no_wdelay settings are required.
  • The no_subtree_check setting is recommended for performance.
Tip: When you replace the value for the <NFS Server> in the samples, you might need to provide the private IP of the server, depending on your environment.
Remember: The storage volumes that you create must specify the appropriate reclaim policy and access modes:
  • accessModes: - ReadWriteMany
  • persistentVolumeReclaimPolicy: Retain
Note: For deployments with a preexisting FileNet P8 domain, ensure that all folders and files are updated with the permissions and group ownership settings that are described in this topic. For example, if you want to deploy a new environment against your existing data and configuration to upgrade the Cloud Pak version, check your settings and update permissions and ownership as needed.
On the NFS server, navigate to the root path that contains all related PV folders, and run
chmod -R g+rw 

Procedure

Create the persistent volumes and persistent volume claims for the IBM Business Automation Navigator container deployment:
Table 1. Volumes, volume claims, and folders for IBM Business Automation Navigator
Volume purpose Example Folder to Create Example Volume and Volume Claim to Create mountPath as seen by container
IBM Business Automation Navigator Liberty configuration /home/cfgstore/icn/configDropins/overrides icn-cfgstore-pv

icn-cfgstore-pvc

/opt/ibm/wlp/usr/servers/defaultServer/configDropins/overrides
IBM Business Automation Navigator and Liberty logs /home/cfgstore/icn/logs icn-logstore-pv

icn-logstore-pvc

/opt/ibm/wlp/usr/servers/defaultServer/logs
Custom plug-ins for IBM Business Automation Navigator /home/cfgstore/icn/plugins icn-pluginstore-pv

icn-pluginstore-pvc

/opt/ibm/plugins
IBM Business Automation Navigator viewer logs for Daeja® ViewONE /home/cfgstore/icn/icnvwlogstore icn-vw-logstore-pv

icn-vw-logstore-pvc

/opt/ibm/viewerconfig/logs
IBM Business Automation Navigator storage for the Daeja ViewONE cache /home/cfgstore/icn/icnvwcachestore icn-vw-cachestore-pv

icn-vw-cachestore-pvc

/opt/ibm/viewerconfig/cache
IBM Business Automation Navigator storage for Aspera® /home/cfgstore/icn/icnasperastore icn-asperastore-pv

icn-asperastore-pvc

/opt/ibm/aspera
For each of the folders, set the ownership as follows:
chgrp -R 65534 /icncfgstore
For each of the folders, set the permissions as follows:
chmod -Rf g=u /icncfgstore

The following examples illustrate the YAML file contents to create a persistent volume and persistent volume claim for the IBM Content Navigator configuration store volume.

Persistent volume:
apiVersion: v1
kind: PersistentVolume
metadata:
  name: icn-cfgstore-pv
spec:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 1Gi
  nfs:
    path: /home/cfgstore/icn/configDropin/overrides
    server: <NFS_SERVER>
  persistentVolumeReclaimPolicy: Retain
  storageClassName: icn-cfgstore-pv
Persistent volume claim:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: icn-cfgstore-pvc
  namespace: <NAMESPACE>
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 1Gi
  storageClassName: icn-cfgstore-pv
  volumeName: icn-cfgstore-pv
status:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 1Gi

The following examples illustrate the YAML file contents to create a persistent volume and persistent volume claim for the IBM Content Navigator and Liberty logs.

Persistent volume:
apiVersion: v1
kind: PersistentVolume
metadata:
  name: icn-logstore-pv
spec:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 1Gi
  nfs:
    path: /home/cfgstore/icn/logs
    server: <NFS_SERVER>
  persistentVolumeReclaimPolicy: Retain
  storageClassName: icn-logstore-pv
Persistent volume claim:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: icn-logstore-pvc
  namespace: <NAMESPACE>
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 1Gi
  storageClassName: icn-logstore-pv
  volumeName: icn-logstore-pv
status:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 1Gi

The following examples illustrate the YAML file contents to create a persistent volume and persistent volume claim for the IBM Content Navigator plugins.

Persistent volume:
apiVersion: v1
kind: PersistentVolume
metadata:
  name: icn-pluginstore-pv
spec:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 1Gi
  nfs:
    path: /home/cfgstore/icn/plugins
    server: <NFS_SERVER>
  persistentVolumeReclaimPolicy: Retain
  storageClassName: cn-pluginstore-pv
Persistent volume claim:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: icn-pluginstore-pvc
  namespace: <NAMESPACE>
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 1Gi
  storageClassName: icn-pluginstore-pv
  volumeName: icn-pluginstore-pv
status:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 1Gi

The following examples illustrate the YAML file contents to create a persistent volume and persistent volume claim for the IBM Content Navigator viewer logs.

Persistent volume:
apiVersion: v1
kind: PersistentVolume
metadata:
  name: icn-vw-logstore-pv
spec:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 1Gi
  nfs:
    path: /home/cfgstore/icn/viewerlog
    server: <NFS_SERVER>
  persistentVolumeReclaimPolicy: Retain
  storageClassName: icn-vw-logstore-pv
Persistent volume claim:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: icn-vw-logstore-pvc
  namespace: <NAMESPACE>
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 1Gi
  storageClassName: icn-vw-logstore-pv
  volumeName: icn-vw-logstore-pv
status:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 1Gi

The following examples illustrate the YAML file contents to create a persistent volume and persistent volume claim for the IBM Content Navigator viewer cache store.

Persistent volume:
apiVersion: v1
kind: PersistentVolume
metadata:
  name: icn-vw-cachestore-pv
spec:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 1Gi
  nfs:
    path: /home/cfgstore/icn/viewercache
    server: <NFS_SERVER>
  persistentVolumeReclaimPolicy: Retain
  storageClassName: icn-vw-cachestore-pv
Persistent volume claim:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: icn-vw-cachestore-pvc
  namespace: <NAMESPACE>
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 1Gi
  storageClassName: icn-vw-cachestore-pv
  volumeName: icn-vw-cachestore-pv
status:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 1Gi

The following examples illustrate the YAML file contents to create a persistent volume and persistent volume claim for Aspera.

Persistent volume:
apiVersion: v1
kind: PersistentVolume
metadata:
  name: icn-asperastore-pv
spec:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 1Gi
  nfs:
    path: /home/cfgstore/icn/aspera
    server: <NFS_SERVER>
  persistentVolumeReclaimPolicy: Retain
  storageClassName: icn-asperastore-pv
Persistent volume claim:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: icn-asperastore-pvc
  namespace: <NAMESPACE>
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 1Gi
  storageClassName: icn-asperastore-pv
  volumeName: icn-asperastore-pv
status:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 1Gi