Skip to content

Commit 4def5ac

Browse files
Merge pull request #1069 from gibizer/conditional-additional-devs
[edpm_compute]Make the addition NVME and IGB optional
2 parents 6cb4879 + 0e3b309 commit 4def5ac

File tree

3 files changed

+63
-28
lines changed

3 files changed

+63
-28
lines changed

devsetup/README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,13 @@ Deploy a compute node VM:
116116
make edpm_compute
117117
```
118118

119+
You can deploy a compute node VM with additional devices:
120+
```
121+
EDPM_EMULATED_NVME_ENABLED=true \
122+
EDPM_EMULATED_SRIOV_NIC_ENABLED=true \
123+
make edpm_compute
124+
```
125+
119126
Execute the edpm_deploy step:
120127
```
121128
pushd ..

devsetup/scripts/edpm-node-cleanup.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ STANDALONE=${STANDALONE:-false}
3333
virsh destroy ${EDPM_COMPUTE_NAME} || :
3434
virsh undefine --snapshots-metadata --remove-all-storage ${EDPM_COMPUTE_NAME} || :
3535
${CLEANUP_DIR_CMD} "${CRC_POOL}/${EDPM_COMPUTE_NAME}.qcow2"
36+
${CLEANUP_DIR_CMD} "${CRC_POOL}/${EDPM_COMPUTE_NAME}-nvme1.qcow2"
37+
${CLEANUP_DIR_CMD} "${CRC_POOL}/${EDPM_COMPUTE_NAME}-nvme2.qcow2"
3638

3739
chassis_uuid=$(run_ovn_ctl_command SB --format=csv --data=bare --columns=name,hostname list chassis | awk -F "," "/,${EDPM_COMPUTE_NAME}/{ print \$1 }")
3840

devsetup/scripts/gen-edpm-node-common.sh

Lines changed: 54 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -52,17 +52,61 @@ BASE_DISK_FILENAME=${BASE_DISK_FILENAME:-"$(basename ${EDPM_IMAGE_URL})"}
5252
DISK_FILENAME=${DISK_FILENAME:-"edpm-${EDPM_SERVER_ROLE}-${EDPM_COMPUTE_SUFFIX}.qcow2"}
5353
DISK_FILEPATH=${DISK_FILEPATH:-"${CRC_POOL}/${DISK_FILENAME}"}
5454

55-
NVME1_FILENAME=${NVME1_FILENAME:-"edpm-${EDPM_SERVER_ROLE}-${EDPM_COMPUTE_SUFFIX}-nvme1.qcow2"}
56-
NVME1_FILEPATH=${NVME1_FILEPATH:-"${CRC_POOL}/${NVME1_FILENAME}"}
55+
EDPM_EMULATED_NVME_ENABLED=${EDPM_EMULATED_NVME_ENABLED:-"false"}
56+
NVME_XML=""
57+
58+
if [ $EDPM_EMULATED_NVME_ENABLED == "true" ] ; then
59+
NVME1_FILENAME=${NVME1_FILENAME:-"edpm-${EDPM_SERVER_ROLE}-${EDPM_COMPUTE_SUFFIX}-nvme1.qcow2"}
60+
NVME1_FILEPATH=${NVME1_FILEPATH:-"${CRC_POOL}/${NVME1_FILENAME}"}
61+
62+
qemu-img create -f qcow2 ${NVME1_FILEPATH} 1G
63+
chmod og+w ${NVME1_FILEPATH}
64+
# intentionally ignore errors on non selinux enabled systems
65+
chcon -t svirt_image_t ${NVME1_FILEPATH} | true
66+
67+
NVME2_FILENAME=${NVME2_FILENAME:-"edpm-${EDPM_SERVER_ROLE}-${EDPM_COMPUTE_SUFFIX}-nvme2.qcow2"}
68+
NVME2_FILEPATH=${NVME2_FILEPATH:-"${CRC_POOL}/${NVME2_FILENAME}"}
69+
70+
qemu-img create -f qcow2 ${NVME2_FILEPATH} 1G
71+
chmod og+w ${NVME2_FILEPATH}
72+
# intentionally ignore errors on non selinux enabled systems
73+
chcon -t svirt_image_t ${NVME2_FILEPATH} | true
74+
75+
NVME_XML=$(cat <<EOF
76+
<qemu:commandline>
77+
<qemu:arg value='-drive'/>
78+
<qemu:arg value='file=${NVME1_FILEPATH},format=qcow2,if=none,id=NVME1'/>
79+
<qemu:arg value='-device'/>
80+
<qemu:arg value='nvme,drive=NVME1,serial=nvme-1,bus=pcie.0,addr=0x8'/>
81+
</qemu:commandline>
82+
<qemu:commandline>
83+
<qemu:arg value='-drive'/>
84+
<qemu:arg value='file=${NVME2_FILEPATH},format=qcow2,if=none,id=NVME2'/>
85+
<qemu:arg value='-device'/>
86+
<qemu:arg value='nvme,drive=NVME2,serial=nvme-2,bus=pcie.0,addr=0x9'/>
87+
</qemu:commandline>
88+
EOF
89+
)
90+
fi
91+
92+
EDPM_EMULATED_SRIOV_NIC_ENABLED=${EDPM_EMULATED_SRIOV_NIC_ENABLED:-"false"}
93+
IGB_XML=""
94+
if [ $EDPM_EMULATED_SRIOV_NIC_ENABLED == "true" ] ; then
95+
IGB_XML=$(cat <<EOF
96+
<interface type='network'>
97+
<source ${EDPM_COMPUTE_NETWORK_TYPE}='${EDPM_COMPUTE_NETWORK}'/>
98+
<model type='igb'/>
99+
</interface>
100+
<interface type='network'>
101+
<source ${EDPM_COMPUTE_NETWORK_TYPE}='${EDPM_COMPUTE_NETWORK}'/>
102+
<model type='igb'/>
103+
</interface>
104+
EOF
105+
)
106+
fi
57107

58-
qemu-img create -f qcow2 ${NVME1_FILEPATH} 1G
59-
chmod og+w ${NVME1_FILEPATH}
60108

61-
NVME2_FILENAME=${NVME2_FILENAME:-"edpm-${EDPM_SERVER_ROLE}-${EDPM_COMPUTE_SUFFIX}-nvme2.qcow2"}
62-
NVME2_FILEPATH=${NVME2_FILEPATH:-"${CRC_POOL}/${NVME2_FILENAME}"}
63109

64-
qemu-img create -f qcow2 ${NVME2_FILEPATH} 1G
65-
chmod og+w ${NVME2_FILEPATH}
66110

67111
SSH_PUBLIC_KEY=${SSH_PUBLIC_KEY:-"${OUTPUT_DIR}/ansibleee-ssh-key-id_rsa.pub"}
68112
MAC_ADDRESS=${MAC_ADDRESS:-"$(echo -n 52:54:00; dd bs=1 count=3 if=/dev/random 2>/dev/null | hexdump -v -e '/1 "-%02X"' | tr '-' ':')"}
@@ -167,14 +211,7 @@ cat <<EOF >${OUTPUT_DIR}/${EDPM_COMPUTE_NAME}.xml
167211
<model type='virtio'/>
168212
<address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
169213
</interface>
170-
<interface type='network'>
171-
<source ${EDPM_COMPUTE_NETWORK_TYPE}='${EDPM_COMPUTE_NETWORK}'/>
172-
<model type='igb'/>
173-
</interface>
174-
<interface type='network'>
175-
<source ${EDPM_COMPUTE_NETWORK_TYPE}='${EDPM_COMPUTE_NETWORK}'/>
176-
<model type='igb'/>
177-
</interface>
214+
${IGB_XML}
178215
<serial type='pty'>
179216
<target port='0'/>
180217
</serial>
@@ -200,18 +237,7 @@ cat <<EOF >${OUTPUT_DIR}/${EDPM_COMPUTE_NAME}.xml
200237
<driver intremap='on' iotlb='on'/>
201238
</iommu>
202239
</devices>
203-
<qemu:commandline>
204-
<qemu:arg value='-drive'/>
205-
<qemu:arg value='file=${NVME1_FILEPATH},format=qcow2,if=none,id=NVME1'/>
206-
<qemu:arg value='-device'/>
207-
<qemu:arg value='nvme,drive=NVME1,serial=nvme-1,bus=pcie.0,addr=0x8'/>
208-
</qemu:commandline>
209-
<qemu:commandline>
210-
<qemu:arg value='-drive'/>
211-
<qemu:arg value='file=${NVME2_FILEPATH},format=qcow2,if=none,id=NVME2'/>
212-
<qemu:arg value='-device'/>
213-
<qemu:arg value='nvme,drive=NVME2,serial=nvme-2,bus=pcie.0,addr=0x9'/>
214-
</qemu:commandline>
240+
${NVME_XML}
215241
</domain>
216242
EOF
217243

0 commit comments

Comments
 (0)