summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoragardner <agardner@linuxfoundation.org>2017-11-23 15:59:03 -0500
committeragardner <agardner@linuxfoundation.org>2017-11-23 16:16:25 -0500
commit1c1f9c04db34c86b39ba91d8fb2a6fe58f1185d4 (patch)
tree079254c882cda9f87124c98c1425a70b19f0077b
parent25ae0806012f9cec6a1c10a4ac888e54c760c9bd (diff)
Moving check-jinja2 to pharos.
Securedlab will be going away now that we can encrypt strings (eyaml) we need to check jinja2 PDF templates that will be moving into pharos This adds one pod yaml files and fixes paths in check-jinja2.sh After this is merged I can create a jenkins job for pharos. Then I can start moving pdf files into the pharos repo Change-Id: I2f2f2925275de49035d7d0160249d75b25ca0d20 Signed-off-by: agardner <agardner@linuxfoundation.org>
-rwxr-xr-xconfig/utils/check-jinja2.sh66
-rw-r--r--labs/lf/pod2.yaml244
2 files changed, 310 insertions, 0 deletions
diff --git a/config/utils/check-jinja2.sh b/config/utils/check-jinja2.sh
new file mode 100755
index 0000000..075dc9c
--- /dev/null
+++ b/config/utils/check-jinja2.sh
@@ -0,0 +1,66 @@
+#!/bin/bash
+# SPDX-license-identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2016 Linux Foundation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+set +x
+set +o errexit
+
+GEN_CFG='./config/utils/generate_config.py'
+INSTALLER_ADAPTERS='./config/installers/*'
+TMPF='/tmp/out.yml' # should be outside Jenkins WS to prevent data leakage
+RC=0
+
+# Build a table header, using ';' as column sep
+SUMMARY='PDF Verify Matrix;YAML Lint;'
+for adapter in ${INSTALLER_ADAPTERS}; do
+ SUMMARY+="$(basename "${adapter}");"
+done
+
+# Iterate all PDFs, check with each installer adapter, log results
+while IFS= read -r lab_config; do
+ valid_yaml='OK'
+ echo -e "\n\nyamllint -s ${lab_config}"
+ if ! yamllint -s "${lab_config}"; then valid_yaml='FAIL'; fi
+ SUMMARY+="\n${lab_config#labs/};${valid_yaml};"
+ for adapter in ${INSTALLER_ADAPTERS}; do
+ pdf_inst=0
+ pdf_inst_pass=0
+ pdf_yaml_pass=0
+ while IFS= read -r jinja_template; do
+ echo -e "\n${GEN_CFG} -y ${lab_config} -j ${jinja_template}"
+ if "${GEN_CFG}" -y "${lab_config}" \
+ -j "${jinja_template}" > "${TMPF}"; then
+ echo 'Result: PASS'
+ ((pdf_inst_pass+=1))
+ echo -e "\nyamllint -s ${jinja_template%.j2}"
+ if yamllint -s "${TMPF}"; then ((pdf_yaml_pass+=1)); fi
+ else
+ echo 'Result: FAIL'
+ RC=1
+ fi
+ ((pdf_inst+=1))
+ done < <(find "${adapter}" -name '*.j2')
+ SUMMARY+="${pdf_yaml_pass}/${pdf_inst_pass}/${pdf_inst};"
+ done
+done < <(find 'config' 'labs' -name 'pod*.yaml')
+
+rm -f "${TMPF}"
+echo -e '\n\nNOTE: tuple fmt: (valid YAML output/sucessful parse/templates).\n'
+echo -e "${SUMMARY}" | sed -e 's/^/;/g' -e 's/;/;| /g' | column -t -s ';'
+
+cat <<EOF
+
+To troubleshoot PDF parsing against a specific installer adapter,
+execute the following commands locally (e.g. for zte-pod2/joid):
+$ ./config/utils/generate_config.py \\
+ -y labs/zte/pod2.yaml \\
+ -j ./pharos/config/installers/joid/pod_config.yaml.j2
+
+EOF
+exit "${RC}"
diff --git a/labs/lf/pod2.yaml b/labs/lf/pod2.yaml
new file mode 100644
index 0000000..e9ede11
--- /dev/null
+++ b/labs/lf/pod2.yaml
@@ -0,0 +1,244 @@
+---
+### LF POD 2 descriptor file ###
+
+details:
+ pod_owner: Trevor Bramwell
+ contact: tbramwell@linuxfoundation.org
+ lab: LF Pharos Lab
+ location: Portland
+ type: production
+ link: https://wiki.opnfv.org/display/pharos/LF+POD+2
+##############################################################################
+net_config:
+ # NOTE: Network names are likely to change after the PDF spec is updated
+ oob:
+ interface: 0
+ ip-range: 172.30.8.65-172.30.8.75
+ vlan: 410
+ admin:
+ interface: 0
+ vlan: native
+ network: 192.168.11.0 # Untagged, 'PXE/Admin' on wiki, different IP
+ mask: 24
+ mgmt:
+ interface: 0
+ vlan: 300
+ network: 10.167.4.0 # Tagged, 'vlan 300' on wiki
+ mask: 24
+ storage:
+ interface: 3
+ vlan: 301
+ network: 10.2.0.0 # Tagged, not the same with 'storage' on wiki
+ mask: 24
+ private:
+ interface: 1
+ vlan: 1000
+ network: 10.1.0.0 # Tagged, not the same with 'private' on wiki
+ mask: 24
+ public:
+ interface: 2
+ vlan: native
+ network: 172.30.10.0 # Untagged, 'public' on wiki
+ mask: 24
+ gateway: 172.30.10.1
+ dns:
+ - 8.8.8.8
+ - 8.8.4.4
+##############################################################################
+jumphost:
+ name: pod2-jump
+ node:
+ type: baremetal
+ vendor: Cisco Systems Inc
+ model: UCSB-B200-M4
+ arch: x86_64
+ cpus: 2
+ cpu_cflags: haswell
+ cores: 8
+ memory: 128G
+ disks: &disks
+ - name: 'disk1'
+ disk_capacity: 2400G
+ disk_type: hdd
+ disk_interface: sas
+ disk_rotation:
+ os: centos-7
+ remote_params: &remote_params
+ type: ipmi
+ versions:
+ - 2.0
+ user: >
+ ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
+ DQYJKoZIhvcNAQEBBQAEggEAKn4rdxFJum3vgvpjT4c64gkXzbMog4LyrBb0
+ pHeASLqwiuJqCdELWl4e7d4SMp3QBzHqd6aGHJqywDt09L7axFaW9PmdUEVx
+ KxIZ8NUdDjl7HtuG8D9irU2n5VMHXVyDosMEZe9pRYhQTkuAggR7EDoDjdDj
+ 0myGFy/UVH3/fxpdySWhyg9kqAYb1ReMgYBudVfm2gw4bjtjJviwASXi8hj6
+ 8isdJPf25U6wrvbqQi5J5WVD4Q3PaGy8GACTZ8n+LFyPSwBl3QJ5jfMmzHmq
+ Po0cqa4MoKi3xQ8Y8z6DxhUrV0yoYWoHvIcpQBu3YCZVzpOqVPZwsapBl963
+ 0d0kWzA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBAoo59BSqp1DBCu05h+
+ /1BZgBDdOvlZ5JlDtpkh73ujYZXR]
+ pass: >
+ ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
+ DQYJKoZIhvcNAQEBBQAEggEA4pnLYg4U/39mKdytYH1CJYJuJ/qjNrS+KoON
+ oPU6G9lMJ5U5J7NUuGyBD7O1NTt8VBE+LaBEqmXK5/SQ6mAdns9qs5QLOVSm
+ r3WKroZdqH3hmW26LuPsXNUfTaCVNOqWPAf6U6Q1fHr1vi09n3mIV/Ph03Kv
+ /aNeeRsJbBPAtHgCL6aRs+4WoxxYS0eUAVCo4yPDiSN5UFmSg6O304NM2qzi
+ av2b/gmNFN8AxE5CVi+C/fVGBhdpwmmdC0KmtkY38pYa/hf8Pks4jsFtKNDw
+ 3KW+pP+BTsgKs/o/WrwCFm4LIJj/E6Pf9qZ/mZ8bAxKlVf+gQj2bgxzT3aa1
+ hHhD0TA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBAx3f5XDjWzYJA4Jn5H
+ KJOBgBDq/YBNdEeyT+dCuH59ZE6L]
+ remote_management:
+ <<: *remote_params
+ address: 172.30.8.83
+ mac_address: "a8:9d:21:c9:c4:9e"
+ interfaces:
+ - mac_address: "00:25:b5:a0:00:1a"
+ speed: 40gb
+ features: 'dpdk|sriov'
+ - mac_address: "00:25:b5:a0:00:1b"
+ speed: 40gb
+ features: 'dpdk|sriov'
+ - mac_address: "00:25:b5:a0:00:1c"
+ speed: 40gb
+ features: 'dpdk|sriov'
+ - mac_address: "00:25:b5:a0:00:1d"
+ speed: 40gb
+ features: 'dpdk|sriov'
+ fixed_ips:
+ admin: 192.168.11.1
+ mgmt: 10.167.4.1
+ public: 172.30.10.72
+##############################################################################
+nodes:
+ - name: pod2-node1
+ node: &nodeparams
+ type: baremetal
+ vendor: Cisco Systems Inc
+ model: UCSB-B200-M4
+ arch: x86_64
+ cpus: 2
+ cpu_cflags: haswell
+ cores: 8
+ memory: 32G
+ disks: *disks
+ remote_management:
+ <<: *remote_params
+ address: 172.30.8.75
+ mac_address: "a8:9d:21:c9:8b:56"
+ interfaces:
+ - mac_address: "00:25:b5:a0:00:2a"
+ speed: 40gb
+ features: 'dpdk|sriov'
+ - mac_address: "00:25:b5:a0:00:2b"
+ speed: 40gb
+ features: 'dpdk|sriov'
+ - mac_address: "00:25:b5:a0:00:2c"
+ speed: 40gb
+ features: 'dpdk|sriov'
+ - mac_address: "00:25:b5:a0:00:2d"
+ speed: 40gb
+ features: 'dpdk|sriov'
+ fixed_ips:
+ admin: 192.168.11.2
+ mgmt: 10.167.4.2
+ public: 172.30.10.2
+ ############################################################################
+ - name: pod2-node2
+ node: *nodeparams
+ disks: *disks
+ remote_management:
+ <<: *remote_params
+ address: 172.30.8.65
+ mac_address: "a8:9d:21:c9:4d:26"
+ interfaces:
+ - mac_address: "00:25:b5:a0:00:3a"
+ speed: 40gb
+ features: 'dpdk|sriov'
+ - mac_address: "00:25:b5:a0:00:3b"
+ speed: 40gb
+ features: 'dpdk|sriov'
+ - mac_address: "00:25:b5:a0:00:3c"
+ speed: 40gb
+ features: 'dpdk|sriov'
+ - mac_address: "00:25:b5:a0:00:3d"
+ speed: 40gb
+ features: 'dpdk|sriov'
+ fixed_ips:
+ admin: 192.168.11.3
+ mgmt: 10.167.4.3
+ public: 172.30.10.3
+ ############################################################################
+ - name: pod2-node3
+ node: *nodeparams
+ disks: *disks
+ remote_management:
+ <<: *remote_params
+ address: 172.30.8.74
+ mac_address: "a8:9d:21:c9:3a:92"
+ interfaces:
+ - mac_address: "00:25:b5:a0:00:4a"
+ speed: 40gb
+ features: 'dpdk|sriov'
+ - mac_address: "00:25:b5:a0:00:4b"
+ speed: 40gb
+ features: 'dpdk|sriov'
+ - mac_address: "00:25:b5:a0:00:4c"
+ speed: 40gb
+ features: 'dpdk|sriov'
+ - mac_address: "00:25:b5:a0:00:4d"
+ speed: 40gb
+ features: 'dpdk|sriov'
+ fixed_ips:
+ admin: 192.168.11.4
+ mgmt: 10.167.4.4
+ public: 172.30.10.4
+ ############################################################################
+ - name: pod2-node4
+ node: *nodeparams
+ disks: *disks
+ remote_management:
+ <<: *remote_params
+ address: 172.30.8.73
+ mac_address: "74:a2:e6:a4:14:9c"
+ interfaces:
+ - mac_address: "00:25:b5:a0:00:5a"
+ speed: 40gb
+ features: 'dpdk|sriov'
+ - mac_address: "00:25:b5:a0:00:5b"
+ speed: 40gb
+ features: 'dpdk|sriov'
+ - mac_address: "00:25:b5:a0:00:5c"
+ speed: 40gb
+ features: 'dpdk|sriov'
+ - mac_address: "00:25:b5:a0:00:5d"
+ speed: 40gb
+ features: 'dpdk|sriov'
+ fixed_ips:
+ admin: 192.168.11.5
+ mgmt: 10.167.4.5
+ public: 172.30.10.5
+ ############################################################################
+ - name: pod2-node5
+ node: *nodeparams
+ disks: *disks
+ remote_management:
+ <<: *remote_params
+ address: 172.30.8.72
+ mac_address: "a8:9d:21:a0:15:9c"
+ interfaces:
+ - mac_address: "00:25:b5:a0:00:6a"
+ speed: 40gb
+ features: 'dpdk|sriov'
+ - mac_address: "00:25:b5:a0:00:6b"
+ speed: 40gb
+ features: 'dpdk|sriov'
+ - mac_address: "00:25:b5:a0:00:6c"
+ speed: 40gb
+ features: 'dpdk|sriov'
+ - mac_address: "00:25:b5:a0:00:6d"
+ speed: 40gb
+ features: 'dpdk|sriov'
+ fixed_ips:
+ admin: 192.168.11.6
+ mgmt: 10.167.4.6
+ public: 172.30.10.6