Skip to content

Commit

Permalink
Merge pull request #9 from NetApp/dev-eSDS-20.12.0
Browse files Browse the repository at this point in the history
Enhancements and bug fixes for eSDS-20.12.0 release
  • Loading branch information
rickcran authored Dec 9, 2020
2 parents a1e15bd + 760847a commit e03c750
Show file tree
Hide file tree
Showing 13 changed files with 127 additions and 155 deletions.
1 change: 0 additions & 1 deletion nar_solidfire_sds_compliance/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ nar_solidfire_sds_compliance
=========

This role automates validating NetApp compliance for SolidFire eSDS.
Version 1.1

Requirements
------------
Expand Down
46 changes: 31 additions & 15 deletions nar_solidfire_sds_compliance/files/sf_sds_compliance_rules.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,15 @@
# Processor: ‘2x Intel(R) Xeon(R) Gold 5218’
# Available Memory: ‘768 GB’
# Storage Drives: ‘9x 3.84 TB NVMe Drives’
# Storage Drive FW: ‘HPK1’
# Storage Drive FW: ‘HPK1’ or 'MPK70H5Q'
# Cache Device: ‘1x 384 GB Intel Optane SSD’
# Cache Device FW: ‘4ICSHPK2’
# Host OS: ‘RHEL Server 7.6 64-bit’
# Element OS: ‘Element 12.2’
# Cluster Management NIC: ‘2x Intel 10G X550T’
# Storage NIC: ‘2x Mellanox 25G ConnectX-4 Lx’

esds-hpe-dl360-gen10-p0:
esds-hpe-dl360-gen10-p1:
rules:
"Server Instance":
displayName:
Expand All @@ -60,22 +60,22 @@ esds-hpe-dl360-gen10-p0:
"management_nic_firmware":
expected: "10.51.3"
count: 2
query: "ansible_local.sf_nic_details[?driver == `ixgbe`].firmware_version | [?contains(@, `{expected}`)] | length(@) == `{count}`"
query: "ansible_local.sf_nic_details[?driver == `ixgbe`].firmware_version | [?contains(`{expected}`, @)] | length(@) == `{count}`"
actual: "ansible_local.sf_nic_details[?driver == `ixgbe`].firmware_version"
"storage_nic_firmware":
expected: "14.26.1040"
count: 2
query: "ansible_local.sf_nic_details[?driver == `mlx5_core`].firmware_version | [?contains(@, `{expected}`)] | length(@) == `{count}`"
actual: "ansible_local.sf_nic_details[?driver == `mlx5_core`].firmware_version"
"storage_drive_firmware":
expected: HPK1
expected: ["HPK1 ", "MPK70H5Q", "4ICRHPK0"]
count: 9
query: "ansible_local.sf_drive_fw[] | [?contains(@, `{expected}`)] | length(@) == `{count}`"
query: "ansible_local.sf_drive_fw[] | [?contains({expected}, @)] | length(@) == `{count}`"
actual: "ansible_local.sf_drive_fw[]"
"cache_drive_firmware":
expected: "4ICSHPK2"
count: 1
query: "ansible_local.sf_drive_fw[] | [?contains(@, `{expected}`)] | length(@) == `{count}`"
query: "ansible_local.sf_drive_fw[] | [?contains(`{expected}`, @)] | length(@) == `{count}`"
actual: "ansible_local.sf_drive_fw[]"

"Processor":
Expand All @@ -92,7 +92,7 @@ esds-hpe-dl360-gen10-p0:
actual: "processor_count"
"processor":
expected: "Intel(R) Xeon(R) Gold 5218 CPU @ 2.30GHz"
count: 64
count: 64
query: "processor | [?contains(@, `{expected}`)] | length(@) == `{count}`"
actual: "processor"

Expand All @@ -110,9 +110,9 @@ esds-hpe-dl360-gen10-p0:
- "9x 3.84 TB NVMe Drives"
components:
"storage_drives":
expected: "VK003840KWWFP"
expected: ["VK003840KWWFP", "MZXL53T8HBLS-000H3", "VO004000KWVUR"]
count: 9
query: "devices.*.model[] | [?contains(@, `{expected}`)] | length(@) == `{count}`"
query: "devices.*.model[] | [?contains({expected}, @)] | length(@) == `{count}`"
actual: "devices.*.model[]"

"Cache Device":
Expand All @@ -122,20 +122,20 @@ esds-hpe-dl360-gen10-p0:
"cache_drive":
expected: "EO000375KWJUC"
count: 1
query: "devices.*.model[] | [?contains(@, `{expected}`)] | length(@) == `{count}`"
query: "devices.*.model[] | [?contains(`{expected}`, @)] | length(@) == `{count}`"
actual: "devices.*.model[]"

"Host OS":
displayName:
- "RHEL Server 7.6 64-bit"
- "RHEL Server 64-bit"
components:
"distribution":
expected: "RedHat"
query: "distribution == `{expected}`"
actual: "distribution"
"distribution_version":
expected: "7.6"
query: "distribution_version == `\"{expected}\"`"
expected: ["7.6", "7.7", "8.2"]
query: "contains(`{expected}`, distribution_version)"
actual: "distribution_version"
"architecture":
expected: "x86_64"
Expand All @@ -153,7 +153,7 @@ esds-hpe-dl360-gen10-p0:
"management_nic":
expected: "ixgbe"
count: 2
query: "ansible_local.sf_nic_details[].driver | [?contains(@, `{expected}`)] | length(@) == `{count}`"
query: "ansible_local.sf_nic_details[].driver | [?contains(`{expected}`, @)] | length(@) == `{count}`"
actual: "ansible_local.sf_nic_details[].driver"

"Storage NIC":
Expand All @@ -163,5 +163,21 @@ esds-hpe-dl360-gen10-p0:
"storage nic":
expected: "mlx5_core"
count: 2
query: "ansible_local.sf_nic_details[].driver | [?contains(@, `{expected}`)] | length(@) == `{count}`"
query: "ansible_local.sf_nic_details[].driver | [?contains(`{expected}`, @)] | length(@) == `{count}`"
actual: "ansible_local.sf_nic_details[].driver"

"Network Interface Name Length":
displayName:
- "Network interface intended to be used as Management interface should have name length <= 13."
- "Similarly, network interface intended to be used as Storage interface should have name length <= 8"
- "IGNORE, if the interfaces that failed the checks are not intended to be used as Management/Storage interfaces"
components:
"Interfaces that are not compliant to be used as Management interface":
expected: 0
query: "interfaces[?length(@)>=`13`] | length(@) == `{expected}`"
actual: "interfaces[?length(@)>=`13`]"

"Interfaces that are not compliant to be used as Storage interface":
expected: 0
query: "interfaces[?length(@)>=`8`] | length(@) == `{expected}`"
actual: "interfaces[?length(@)>=`8`]"
56 changes: 30 additions & 26 deletions nar_solidfire_sds_install/README.md
Original file line number Diff line number Diff line change
@@ -1,46 +1,50 @@
Installs the SolidFire Enterprise SDS
=====================================
Role Name
=========
nar_solidfire_sds_install


Description
-----------
This role automates the deployment and configuration of the SolidFire eSDS solution.
Version 1.2


Requirements
------------

This role requires the target systems use RHEL 7.6+ Additionally, the SolidFire eSDS RPM should either be published
to an http file server addressable by the inventory, or added to the files/ directory of the role.


Role Variables
--------------

For details about recommended values for the `*_iface` and `*_devices` variables, see the product documentation and/or
the sf_sds_config.yaml file man page (`man 5 sf_sds_config`)

NOTE: The Minimum Specification checks are documented in a separate [README](tasks/min-specification/README.md) file,
including more information about specific variables that can be configured for this capability.

| Variable | Required | Description | Comments |
|---------------------------------|----------|----------------------------|-----------------------------------------------|
| solidfire_element_rpm | yes* | URL or local path for RPM | See the example below [1] |
| na_sf_filename | no | basename of above variable | Do not change |
| mgmt_iface | yes | Valid NIC iface name | Redundant NIC (team/bond) |
| storage_iface | yes | Valid NIC iface name | Redundant NIC (team/bond) |
| storage_devices | yes | List of storage devices | /dev/sdb |
| | | | /dev/disk/by-uuid/nvme-ZZZZZZZ-YYYY_XXXXXXXX |
| | | | /dev/disk/by-id/nvme-ZZZZZZZ-YYYY_XXXXXXXX |
| cache_devices | yes | List of cache devices | /dev/disk/by-id/nvme-ZZZZZZZ-YYYY_XXXXXXXX |
| na_sf_validate_certs | no | Check SSL/TLS certs | Can be overridden for RPM sources w/o certs |
| na_sf_use_proxy | no | Use proxy conf | Uses proxy ENV vars on target host |
| na_sf_sds_service_state | no | State of solidfire service | Value is "started" by default |
| na_sf_deactivate_checks | no | Deactivate Min Spec checks | Not defined by default, Set to "True" to |
| | | | deactivate the minimum specification checks |
| na_sf_allow_derivatives | no | Install on RHEL derivatives| Do we allow installation more than RHEL? |
| | | | As of now, that means CentOS |
| na_sf_language | no | Default: en-us | See tasks/min-specification/README.md |
| sf_ignore_teamdctl_abrt_cores | No | True | Ignore teamdctl cores in ABRT |
=======
| Variable | Required | Default | Description | Comments |
|---------------------------------|----------|-----------------------------------------------|----------------------------|-----------------------------------------------|
| solidfire_element_rpm | yes* | N/A | URL or local path for RPM | See the example below \[1\] |
| mgmt_iface | yes | N/A | Valid NIC iface name | Redundant NIC (team/bond) |
| storage_iface | yes | N/A | Valid NIC iface name | Redundant NIC (team/bond) |
| storage_devices | yes | N/A | List of storage devices | /dev/sdb |
| | | | | /dev/disk/by-uuid/nvme-ZZZZZZZ-YYYY_XXXXXXXX |
| | | | | /dev/disk/by-id/nvme-ZZZZZZZ-YYYY_XXXXXXXX |
| cache_devices | yes | N/A | List of cache devices | /dev/disk/by-uuid/nvme-ZZZZZZZ-YYYY_XXXXXXXX |
| | | | | /dev/disk/by-id/nvme-ZZZZZZZ-YYYY_XXXXXXXX |
| na_sf_filename | no | \"\{\{ solidfire_element_rpm\|basename \}\}\" | Basename of RPM file | Do not change |
| na_sf_validate_certs | no | True | Check SSL/TLS certificates | Can be overridden for RPM sources w/o certs |
| na_sf_use_proxy | no | False | Use proxy config | Uses proxy ENV vars on target host |
| na_sf_sds_service_state | no | "started" | State of solidfire service | |
| na_sf_deactivate_checks | no | False | Deactivate Min Spec checks | |
| na_sf_allow_derivatives | no | True | Allow other OS than RHEL | As of now, that means CentOS |
| na_sf_extra_checks | no | \[\] | Extra Min Spec Checks | See tasks/min-specification/README.md |
| na_sf_language | no | "en-us" | Language specific msg files| See tasks/min-specification/README.md |
| sf_ignore_teamdctl_abrt_cores | No | True | Ignore teamdctl cores | In ABRT |


\[1\] = `http://<server><:port>/<path>/solidfire-element-W.X.Y.Z-N.el{7,8}.x86_64.rpm`

[1] = `http://<server><:port>/<path>/solidfire-element-W.X.Y.Z-N.el{7,8}.x86_64.rpm`

Example Playbook
----------------
Expand Down
7 changes: 7 additions & 0 deletions nar_solidfire_sds_install/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ na_sf_use_proxy: False
#
# The target state for the `solidfire` systemd service
na_sf_sds_service_state: "started"

##############################################
# Platform specific variables (see README.md)
##############################################
Expand Down Expand Up @@ -49,6 +50,12 @@ na_sf_sds_service_state: "started"
# cache_devices:
# - /dev/nvme0n1

# Deactivate Min Spec checks
na_sf_deactivate_checks: False

# Do we allow intallation of other OS than RHEL? As of now that means CentOS.
na_sf_allow_derivatives: True

# List of extra Minimum Specification Checks to perform
#
na_sf_extra_checks: []
Expand Down
1 change: 1 addition & 0 deletions nar_solidfire_sds_install/tasks/install-rpm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@
yum:
name: "{{ solidfire_element_rpm_path }}"
validate_certs: "{{ na_sf_validate_certs }}"
disable_gpg_check: True
state: present
skip_broken: False
register: rpm_output
Expand Down
2 changes: 1 addition & 1 deletion nar_solidfire_sds_install/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
- name: Ensure teamdctl cores are ignored in ABRT
- name: Ensure teamdctl cores are ignored in ABRT
include_tasks: ignore-teamdctl-cores-in-abrt.yml
when: sf_ignore_teamdctl_abrt_cores

Expand Down
13 changes: 0 additions & 13 deletions nar_solidfire_sds_install/templates/solidfire-eSDS.conf.j2

This file was deleted.

Loading

0 comments on commit e03c750

Please sign in to comment.