Support and Validation of NetApp Trident with Fibre Channel(FC) and
Internet SCSI(iSCSI) Protocols Change-Id: I07c4034e1313cb12c9d89c835b0d5c17e7dd9af0 Signed-off-by: Suzana Fernandes <Suzana.Fernandes@windriver.com>
This commit is contained in:
committed by
Juanita-Balaraj
parent
b0bd45904b
commit
b461cdb598
@@ -81,6 +81,7 @@
|
||||
.. |ECDSA| replace:: :abbr:`ECDSA (Elliptic Curve Digital Signature Algorithm)`
|
||||
.. |ePRTC| replace:: :abbr:`ePRTC (Enhanced Primary Reference Time Clock)`
|
||||
.. |FEC| replace:: :abbr:`FEC (Forward Error Correction)`
|
||||
.. |FC| replace:: :abbr:`FC (Fibre Channel)`
|
||||
.. |FM| replace:: :abbr:`FM (Fault Manager)`
|
||||
.. |FPGA| replace:: :abbr:`FPGA (Field Programmable Gate Array)`
|
||||
.. |FQDN| replace:: :abbr:`FQDN (Fully Qualified Domain Name)`
|
||||
@@ -151,6 +152,7 @@
|
||||
.. |OID| replace:: :abbr:`OID (Object Identifier)`
|
||||
.. |OIDC| replace:: :abbr:`OIDC (OpenID Connect)`
|
||||
.. |ONAP| replace:: :abbr:`ONAP (Open Network Automation Program)`
|
||||
.. |ONTAP SAN| replace:: :abbr:`ONTAP SAN (Storage Area Network)`
|
||||
.. |OPA| replace:: :abbr:`OPA (Open Policy Agent)`
|
||||
.. |OPAs| replace:: :abbr:`OPAs (Open Policy Agents)`
|
||||
.. |OVS| replace:: :abbr:`OVS (Open Virtual Switch)`
|
||||
@@ -240,6 +242,7 @@
|
||||
.. |SWACT| replace:: :abbr:`SWACT (SWitch ACTivity)`
|
||||
.. |SWQ| replace:: :abbr:`SWQ (Shared Work Queue)`
|
||||
.. |TAI| replace:: :abbr:`TAI (International Atomic Time)`
|
||||
.. |TBCs| replace:: :abbr:`TBCs (Trident Block Controllers)`
|
||||
.. |T-BC| replace:: :abbr:`T-BC (Telecom Boundary Clock)`
|
||||
.. |TBF| replace:: :abbr:`TBF (Token Bucket Filter)`
|
||||
.. |TCP| replace:: :abbr:`TCP (Transition Control Protocol)`
|
||||
|
||||
@@ -102,115 +102,133 @@ procedure.
|
||||
:command:`ansible-vault create $HOME/localhost.yml` or :command:`ansible-vault edit $HOME/localhost.yml`
|
||||
commands.
|
||||
|
||||
The following parameters are mandatory:
|
||||
NetApp backend supports NetApp ONTAP |NAS| (|NFS|) and NetApp |ONTAP SAN|
|
||||
(iSCSI and Fibre Channel) configurations.
|
||||
|
||||
``ansible_become_pass``
|
||||
Provide the admin password.
|
||||
The following examples show minimal configuration options for ONTAP NAS
|
||||
and SAN in localhost.yaml:
|
||||
|
||||
``netapp_backends``
|
||||
**name**
|
||||
A name for the storage class.
|
||||
.. note::
|
||||
This file is sectioned into ``netapp_k8s_storageclasses``,
|
||||
``netapp_k8s_snapshotstorageclasses``, ``netapp_backends``, and
|
||||
``tbc_secret``. You can add multiple backends and/or storage classes.
|
||||
|
||||
``provisioner``
|
||||
This value must be ``netapp.io/trident``.
|
||||
#. NetApp ONTAP |NAS| Configuration (|NFS|):
|
||||
|
||||
``backendType``
|
||||
This value can be anything but must be the same as
|
||||
StorageDriverName below.
|
||||
.. code-block:: none
|
||||
|
||||
``version``
|
||||
This value must be 1.
|
||||
ansible_become_pass: <sysadmin password>
|
||||
netapp_k8s_storageclasses:
|
||||
- metadata:
|
||||
name: netapp-nas
|
||||
provisioner: csi.trident.netapp.io
|
||||
parameters:
|
||||
backendType: ontap-nas
|
||||
|
||||
``storageDriverName``
|
||||
This value can be anything but must be the same as
|
||||
backendType below.
|
||||
netapp_k8s_snapshotstorageclasses:
|
||||
- metadata:
|
||||
name: netapp-snapshot
|
||||
driver: csi.trident.netapp.io
|
||||
deletionPolicy: Delete
|
||||
|
||||
``managementLIF``
|
||||
The management IP address for the backend logical interface.
|
||||
netapp_backends:
|
||||
- metadata:
|
||||
name: nas-backend
|
||||
spec:
|
||||
version: 1
|
||||
storageDriverName: ontap-nas
|
||||
backendName: nas-backend
|
||||
managementLIF: "<management IP>"
|
||||
dataLIF: "<data IP>"
|
||||
svm: "<svm>"
|
||||
credentials:
|
||||
name: backend-tbc-secret
|
||||
|
||||
``dataLIF``
|
||||
The data IP address for the backend logical interface.
|
||||
tbc_secret:
|
||||
- metadata:
|
||||
name: backend-tbc-secret
|
||||
type: Opaque
|
||||
stringData:
|
||||
username: "<netapp/svm user>"
|
||||
password: "<netapp/svm password>"
|
||||
|
||||
``svm``
|
||||
The storage virtual machine type to use.
|
||||
For more details about the options, see the documentation:
|
||||
https://docs.netapp.com/us-en/trident/trident-use/ontap-nas-examples.html
|
||||
|
||||
``username``
|
||||
The username for authentication against the netapp backend.
|
||||
#. NetApp |ONTAP SAN| Configuration (iSCSI / |FC|):
|
||||
|
||||
.. note::
|
||||
If an iSCSI backend is configured, the ``find_multipaths`` setting
|
||||
in ``/etc/multipath.conf`` will be automatically changed to ``no``.
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
ansible_become_pass: <sysadmin password>
|
||||
netapp_k8s_storageclasses:
|
||||
- metadata:
|
||||
name: netapp-san
|
||||
provisioner: csi.trident.netapp.io
|
||||
parameters:
|
||||
backendType: ontap-san
|
||||
|
||||
netapp_k8s_snapshotstorageclasses:
|
||||
- metadata:
|
||||
name: netapp-snapshot
|
||||
driver: csi.trident.netapp.io
|
||||
deletionPolicy: Delete
|
||||
|
||||
netapp_backends:
|
||||
- metadata:
|
||||
name: san-backend
|
||||
spec:
|
||||
version: 1
|
||||
storageDriverName: ontap-san
|
||||
sanType: "<iscsi or fcp>"
|
||||
backendName: san-backend
|
||||
managementLIF: "<management IP>"
|
||||
dataLIF: "<data IP>"
|
||||
svm: "<svm>"
|
||||
credentials:
|
||||
name: backend-tbc-secret
|
||||
|
||||
tbc_secret:
|
||||
- metadata:
|
||||
name: backend-tbc-secret
|
||||
type: Opaque
|
||||
stringData:
|
||||
username: "<netapp/svm user>"
|
||||
password: "<netapp/svm password>"
|
||||
|
||||
If ``sanType`` is not provided, the iSCSI protocol will be used by default.
|
||||
|
||||
For more details about the options, see the documentation:
|
||||
https://docs.netapp.com/us-en/trident/trident-use/ontap-san-examples.html
|
||||
|
||||
``password``
|
||||
The password for authentication against the netapp backend.
|
||||
|
||||
The following parameters are optional:
|
||||
|
||||
``trident_force_reinstall``
|
||||
Force a new installation if Trident is already installed.
|
||||
The default is false.
|
||||
|
||||
``trident_setup_dir``
|
||||
Set a staging directory for generated configuration files. The
|
||||
default is /tmp/trident.
|
||||
Set a staging directory for generated configuration files.
|
||||
The default is /tmp/trident.
|
||||
|
||||
``trident_clean_folder``
|
||||
Clear the staging directory of the generated configuration files.
|
||||
The default is true.
|
||||
|
||||
``trident_namespace``
|
||||
Set this option to use an alternate Kubernetes namespace.
|
||||
|
||||
``trident_rest_api_port``
|
||||
Use an alternate port for the Trident REST API. The default is
|
||||
8000.
|
||||
The default is 'trident'.
|
||||
|
||||
``trident_install_extra_params``
|
||||
Add extra space-separated parameters when installing trident.
|
||||
|
||||
For complete listings of available parameters, see
|
||||
|
||||
`https://opendev.org/starlingx/ansible-playbooks/src/commit/d05785ffd9add6553662fcab43f30bf8d9f6d2e3/playbookconfig/src/playbooks/host_vars/netapp/default.yml
|
||||
<https://opendev.org/starlingx/ansible-playbooks/src/commit/d05785ffd9add6553662fcab43f30bf8d9f6d2e3/playbookconfig/src/playbooks/host_vars/netapp/default.yml>`__
|
||||
|
||||
and
|
||||
|
||||
`https://opendev.org/starlingx/ansible-playbooks/src/commit/d05785ffd9add6553662fcab43f30bf8d9f6d2e3/playbookconfig/src/playbooks/roles/k8s-storage-backends/netapp/vars/main.yml
|
||||
<https://opendev.org/starlingx/ansible-playbooks/src/commit/d05785ffd9add6553662fcab43f30bf8d9f6d2e3/playbookconfig/src/playbooks/roles/k8s-storage-backends/netapp/vars/main.yml>`__
|
||||
|
||||
The following example shows a minimal configuration in
|
||||
localhost.yaml:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
ansible_become_pass: <sysadmin_password>
|
||||
trident_clean_folder: true
|
||||
netapp_k8s_storageclasses:
|
||||
- metadata:
|
||||
name: netapp-nas-backend
|
||||
provisioner: netapp.io/trident
|
||||
parameters:
|
||||
backendType: "ontap-nas"
|
||||
mountOptions: ["rw", "hard", "intr", "bg", "vers=4", "proto=tcp", "timeo=600", "rsize=65536", "wsize=65536"]
|
||||
|
||||
netapp_k8s_snapshotstorageclasses:
|
||||
- metadata:
|
||||
name: csi-snapclass
|
||||
driver: csi.trident.netapp.io
|
||||
deletionPolicy: Delete
|
||||
|
||||
netapp_backends:
|
||||
- metadata:
|
||||
name: backend-tbc
|
||||
spec:
|
||||
version: 1
|
||||
storageDriverName: "ontap-nas"
|
||||
backendName: "nas-backend"
|
||||
managementLIF: "10.0.0.1"
|
||||
dataLIF: "10.0.0.2"
|
||||
svm: "svm_nfs"
|
||||
credentials:
|
||||
name: backend-tbc-secret
|
||||
|
||||
tbc_secret:
|
||||
- metadata:
|
||||
name: backend-tbc-secret
|
||||
type: Opaque
|
||||
stringData:
|
||||
username: "admin"
|
||||
password: "secret"
|
||||
|
||||
This file is sectioned into ``netapp_k8s_storageclass``,
|
||||
``netapp_k8s_snapshotstorageclasses``, ``netapp_backends``, and
|
||||
``tbc_secret``. You can add multiple backends and/or storage classes.
|
||||
If no option is provided, the default option defined in the file will be used:
|
||||
`https://opendev.org/starlingx/ansible-playbooks/src/branch/master/playbookconfig/src/playbooks/host_vars/netapp/default.yml
|
||||
<https://opendev.org/starlingx/ansible-playbooks/src/branch/master/playbookconfig/src/playbooks/host_vars/netapp/default.yml>`__
|
||||
|
||||
.. note::
|
||||
To use IPv6 addressing, you must add the following to your
|
||||
@@ -220,10 +238,6 @@ procedure.
|
||||
|
||||
trident_install_extra_params: "--use-ipv6"
|
||||
|
||||
For more information about configuration options, see
|
||||
`https://netapp-trident.readthedocs.io/en/stable-v20.04/kubernetes/operations/tasks/backends/ontap.html
|
||||
<https://netapp-trident.readthedocs.io/en/stable-v20.04/kubernetes/operations/tasks/backends/ontap.html>`__.
|
||||
|
||||
.. note::
|
||||
By default, NetApp is configured to have ``777`` as
|
||||
unixPermissions. |prod| recommends changing these settings to
|
||||
@@ -238,12 +252,12 @@ procedure.
|
||||
|
||||
#. Run the playbook.
|
||||
|
||||
The following example uses the ``-e`` option to specify a customized
|
||||
The following example uses the ``-e "override_files_dir=<directory>"`` option to specify a customized
|
||||
location for the localhost.yml file.
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
sudo ansible-playbook --ask-vault-pass /usr/share/ansible/stx-ansible/playbooks/install_netapp_backend.yml -e "override_files_dir=</home/sysadmin/mynetappconfig>"
|
||||
ansible-playbook --ask-vault-pass /usr/share/ansible/stx-ansible/playbooks/install_netapp_backend.yml -e "override_files_dir=</home/sysadmin/trident>"
|
||||
|
||||
Upon successful launch, there will be one Trident pod running on
|
||||
each node, plus an extra pod for the REST API running on one of the
|
||||
@@ -256,18 +270,28 @@ procedure.
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
(keystone_admin)$ kubectl -n <tridentNamespace> get pods
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
trident-csi-c4575c987-ww49n 5/5 Running 0 0h5m
|
||||
trident-csi-hv5l7 2/2 Running 0 0h5m
|
||||
(keystone_admin)$ kubectl -n trident get pods
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
trident-controller-7ffbfcfd8f-q76nz 5/5 Running 0 0h1m
|
||||
trident-node-linux-dp84f 2/2 Running 0 0h1m
|
||||
|
||||
#. Checking configured |TBCs|.
|
||||
|
||||
To view the configured |TBCs|, run the following command:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
(keystone_admin)$ kubectl -n trident get tbc
|
||||
|
||||
This will list the |TBCs| in the trident namespace, allowing you to check
|
||||
the status and configuration of storage volume provisioning.
|
||||
|
||||
.. rubric:: |postreq|
|
||||
|
||||
To configure a persistent volume claim for the NetApp backend, add the
|
||||
appropriate storage-class name you set up in step :ref:`2
|
||||
<configure-an-external-netapp-deployment-as-the-storage-backend>`
|
||||
\(``netapp-nas-backend`` in this example) to the persistent volume
|
||||
claim's yaml configuration file. For more information about this file, see
|
||||
appropriate netapp_backends name you set up (``netapp-nas-backend`` or
|
||||
``netapp-san-backend``) to the persistent volume claim's yaml configuration
|
||||
file. For more information about this file, see
|
||||
|usertasks-doc|: :ref:`Create ReadWriteOnce Persistent Volume Claims
|
||||
<kubernetes-user-tutorials-create-readwriteonce-persistent-volume-claims>`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user