summaryrefslogtreecommitdiffstats
path: root/roles/openshift_storage_nfs_lvm/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'roles/openshift_storage_nfs_lvm/README.md')
-rw-r--r--roles/openshift_storage_nfs_lvm/README.md108
1 files changed, 108 insertions, 0 deletions
diff --git a/roles/openshift_storage_nfs_lvm/README.md b/roles/openshift_storage_nfs_lvm/README.md
new file mode 100644
index 000000000..1ee02e18a
--- /dev/null
+++ b/roles/openshift_storage_nfs_lvm/README.md
@@ -0,0 +1,108 @@
+# openshift_storage_nfs_lvm
+
+This role is useful to create and export nfs disks for openshift persistent volumes.
+It does so by creating lvm partitions on an already setup pv/vg, creating xfs
+filesystem on each partition, mounting the partitions, exporting the mounts via NFS
+and creating a json file for each mount that an openshift master can use to
+create persistent volumes.
+
+## Requirements
+
+* NFS server with NFS, iptables, and everything setup.
+
+* A lvm volume group created on the nfs server (default: openshiftvg)
+
+* The lvm volume needs to have as much free space as you are allocating
+
+## Role Variables
+
+```
+# Options of NFS exports.
+osnl_nfs_export_options: "*(rw,sync,all_squash)"
+
+# Directory, where the created partitions should be mounted. They will be
+# mounted as <osnl_mount_dir>/<lvm volume name>
+osnl_mount_dir: /exports/openshift
+
+# Volume Group to use.
+# This role always assumes that there is enough free space on the volume
+# group for all the partitions you will be making
+osnl_volume_group: openshiftvg
+
+# volume names
+# volume names are {{osnl_volume_prefix}}{{osnl_volume_size}}g{{volume number}}
+# example: stg5g0004
+
+# osnl_volume_prefix
+# Useful if you are using the nfs server for more than one cluster
+osnl_volume_prefix: "stg"
+
+# osnl_volume_size
+# Size of the volumes/partitions in Gigabytes.
+osnl_volume_size: 5
+
+# osnl_volume_num_start
+# Where to start the volume number numbering.
+osnl_volume_num_start: 3
+
+# osnl_number_of_volumes
+# How many volumes/partitions to build, with the size we stated.
+osnl_number_of_volumes: 2
+
+```
+
+## Dependencies
+
+None
+
+## Example Playbook
+
+With this playbook, 2 5Gig lvm partitions are created, named stg5g0003 and stg5g0004
+Both of them are mounted into `/exports/openshift` directory. Both directories are
+exported via NFS. json files are created in /root.
+
+ - hosts: nfsservers
+ sudo: no
+ remote_user: root
+ gather_facts: no
+ roles:
+ - role: openshift_storage_nfs_lvm
+ osnl_mount_dir: /exports/openshift
+ osnl_volume_prefix: "stg"
+ osnl_volume_size: 5
+ osnl_volume_num_start: 3
+ osnl_number_of_volumes: 2
+
+
+## Full example
+
+
+* Create an `inventory` file:
+ ```
+ [nfsservers]
+ 10.0.0.1
+ 10.0.0.2
+ ```
+
+* Create an ansible playbook, say `setupnfs.yaml`:
+ ```
+ - hosts: nfsservers
+ sudo: no
+ remote_user: root
+ gather_facts: no
+ roles:
+ - role: openshift_storage_nfs_lvm
+ osnl_mount_dir: /exports/stg
+ osnl_volume_prefix: "stg"
+ osnl_volume_size: 5
+ osnl_volume_num_start: 3
+ osnl_number_of_volumes: 2
+
+* Run the playbook:
+ ```
+ ansible-playbook -i inventory setupnfs.yml
+ ```
+
+## License
+
+Apache 2.0