tosin2013.nfs_provisioner_role
NFS Provisioner Role
The nfs-provisioner role will configure a Qubinode device to use NFS for OpenShift persistant storage. It configures the Kubernetes NFS-Client Provisioner and setup up the OpenShift internal registry to use a NFS backed PVC.
The nfs-provisioner configure the Qubinode as NFS server.
Requirements
This role is intended to be executed on a Qubinode.
Understanding OpenShift Persistent Storage Types
| Access Mode | CLI Abbreviation | Description |
|---|---|---|
| ReadWriteOnce | RWO | The volume can be mounted as read-write by a single node. |
| ReadOnlyMany | ROX | The volume can be mounted as read-only by many nodes. |
| ReadWriteMany | RWX | The volume can be mounted as read-write by many nodes. |
Supported Access modes For PVs
| Volume Plug-in | ReadWriteOnce | ReadOnlyMany | ReadWriteMany targetserver |
|---|---|---|---|
| AWS EBS | :heavy_check_mark: | :x: | :x: |
| Azure File | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| Azure Disk | :heavy_check_mark: | :x: | :x: |
| Cinder | :heavy_check_mark: | :x: | :x: |
| Fibre Channel | :heavy_check_mark: | :heavy_check_mark: | :x: |
| GCE Persistent Disk | :heavy_check_mark: | :x: | :x: |
| HostPath | :heavy_check_mark: | :x: | :x: |
| iSCSI | :heavy_check_mark: | :heavy_check_mark: | :x: |
| Local volume | :heavy_check_mark: | :x: | :x: |
| NFS | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| VMware vSphere | :heavy_check_mark: | :x: | :x: |
Role Variables
| Type | Description | Default Value |
|---|---|---|
| use_token | Using login token to connect to OpenShift Cluster. | true |
| provision_nfs_server | Install and configure nfs server packages | true |
| nfs_server_directory_path | Set Directory path of nfs storage | /exports |
| provision_nfs_client_provisoner | Configure the nfs-provisioner container on OpenShift | true |
| configure_registry | Configure Registry with nfs-provisioner storage | false |
| nfs_server_ip | Set the ip address of the nfs server | 192.168.1.2 |
| registry_pvc_size | Configure the default size of regisitry | 100Gi |
| kubeconfig_dir location of auth/kubeconfig | "/home/qubi/qubinode-installer/ocp4" | |
| nfs_project_namespace | OpenShift Project name for the nfs-provisioner | nfs-provisioner |
| nfs_provisioner_rbac_object_file | default path of yaml file | "/usr/local/src/nfs-provisioner-rbac.yaml" |
| nfs_provisioner_deploy_loc | default path of yaml file | "/usr/local/src/nfs-provisioner-deployment.yaml" |
| nfs_provisioner_sc_object_file | default path of yaml file | "/usr/local/src/nfs-provisioner-sc.yaml" |
| storage_class_name | default storage class name | nfs-storage-provisioner |
| nfs_registry_pvc_object_file | default path of yaml file | "/usr/local/src/registry-pvc.yaml" |
| delete_deployment | delete the deployment and project for nfs-provisioner | false |
| insecure_skip_tls_verify | Skip insecure tls verify | true |
Dependencies
- Ansible
- OpenShift cli
Example Playbook
Example using token to deploy to nfs-provisioner OpenShift
- hosts: localhost
become: yes
vars:
use_token: true
provision_nfs_server: true
nfs_server_directory_path: /export
provision_nfs_provisoner: true
configure_registry: true
nfs_server_ip: changeme
registry_pvc_size: 100Gi
storage_class_result: true
openshift_token: 1234567890
openshift_url: https://master.example.com:6443 #https://master.example.com for openshift 3
openshift_version: ocp4
project_namespace: nfs-provisioner
set_as_default: true
delete_deployment: false
insecure_skip_tls_verify: true
roles:
- nfs-provisioner-role
Example using kubeconfig to deploy to nfs-provisioner OpenShift
- hosts: targetserver
become: yes
vars:
provision_nfs_server: true
nfs_server_directory_path: /export
provision_nfs_client_provisoner: true
configure_registry: false
nfs_server_ip: changeme
registry_pvc_size: 100Gi
storage_class_result: true
kubeconfig_dir: "/home/qubi/qubinode-installer/ocp4"
openshift_version: ocp4
nfs_project_namespace: nfs-provisioner
delete_deployment: false
insecure_skip_tls_verify: true
roles:
- nfs-provisioner-role
License
GPLv3
Author Information
This role was created in 2019 by Tosin Akinosho
About
This role will configure an NFS Server and a nfs-provisioner container in OpenShift.
Install
ansible-galaxy install tosin2013.nfs_provisioner_roleLicense
Unknown
Downloads
53
Owner
Principal Solution Architect RedHat. Enthusiast in Cloud, DevOps, and AI. Specializing in AWS, GCP, Azure, Docker, Kubernetes, and Terraform.
