File tree Expand file tree Collapse file tree 8 files changed +104
-0
lines changed
custom_elements/undercloud-ipa/install.d Expand file tree Collapse file tree 8 files changed +104
-0
lines changed Original file line number Diff line number Diff line change 1+ ---
2+ name : build-ironic-images
3+
4+ on :
5+ workflow_dispatch :
6+ pull_request :
7+ paths :
8+ - ' ironic-images/**'
9+ push :
10+ branches :
11+ - main
12+ paths :
13+ - ' ironic-images/**'
14+
15+ jobs :
16+ build-ironic-images :
17+ runs-on : ubuntu-latest
18+ defaults :
19+ run :
20+ working-directory : ironic-images/ipa-debian-bookworm
21+ steps :
22+ - uses : actions/checkout@v4
23+ - uses : actions/setup-python@v5
24+ id : setup-python
25+ with :
26+ python-version : ' 3.11'
27+ cache : ' pip'
28+ - run : sudo apt update && sudo apt install -y debootstrap qemu-utils
29+ - run : pip install -r requirements.txt
30+ working-directory : ironic-images
31+ - name : Build the IPA image
32+ run : bash ipa-debian-bookworm.sh
33+ env :
34+ ELEMENTS_PATH : ${{ env.pythonLocation }}/share/ironic-python-agent-builder/dib:${{ github.workspace }}/ironic-images/custom_elements
35+ - name : Dynamically set timestamp environment variable
36+ run : echo "TIMESTAMP=$(date +"%Y%m%d%H%M%S")" >> $GITHUB_ENV
37+ - name : Publish IPA Release
38+ uses : softprops/action-gh-release@v2
39+ with :
40+ name : undercloud-ironic-ipa
41+ tag_name : undercloud-ironic-ipa-${{ env.TIMESTAMP }}
42+ make_latest : true
43+ fail_on_unmatched_files : true
44+ files : |
45+ ironic-images/ipa-debian-bookworm/ipa-debian-bookworm.initramfs
46+ ironic-images/ipa-debian-bookworm/ipa-debian-bookworm.kernel
47+ if : ${{ github.ref == 'refs/heads/main' }}
Original file line number Diff line number Diff line change 1+ # Undercloud Ironic Image Build
2+
3+ The image build process is in github actions: ` .github/workflows/build-ironic-images.yaml `
Original file line number Diff line number Diff line change 1+ #! /bin/bash
2+
3+ # dib-lint: disable=set setu setpipefail indent
4+ if [ ${DIB_DEBUG_TRACE:- 0} -gt 0 ]; then
5+ set -x
6+ fi
7+ set -e
8+
9+ cat > /etc/sysctl.d/99-undercloud-ipa-sysctl-arp-ignore.conf << EOF
10+ # arp_ignore - INTEGER
11+ # Define different modes for sending replies in response to
12+ # received ARP requests that resolve local target IP addresses:
13+ # 0 - (default): reply for any local target IP address, configured
14+ # on any interface
15+ # 1 - reply only if the target IP address is local address
16+ # configured on the incoming interface
17+ # 2 - reply only if the target IP address is local address
18+ # configured on the incoming interface and both with the
19+ # sender's IP address are part from same subnet on this interface
20+ # 3 - do not reply for local addresses configured with scope host,
21+ # only resolutions for global and link addresses are replied
22+ net.ipv4.conf.all.arp_ignore=2
23+ EOF
Original file line number Diff line number Diff line change 1+ - Need to install package: debootstrap
2+ - Create virtualenv
3+ - pip install diskimage-builder ironic-python-agent-builder
4+ - ./ipa-debian-bookworm.sh
Original file line number Diff line number Diff line change 1+ #! /bin/bash
2+
3+ # elements path - need to include both the ironic-python-agent-builder DIB packages
4+ # and our custom_elements packages
5+ # export ELEMENTS_PATH=/path/to/venv/share/ironic-python-agent-builder/dib:/path/to/custom_elements
6+
7+ # distro version
8+ export DIB_RELEASE=bookworm
9+
10+ diskimage-builder ipa-debian-bookworm.yaml
Original file line number Diff line number Diff line change 1+ - imagename : ipa-debian-bookworm
2+ elements :
3+ - ironic-python-agent-ramdisk
4+ - debian-minimal
5+ - dynamic-login
6+ - journal-to-console
7+ - undercloud-ipa
Original file line number Diff line number Diff line change 1+ inetutils-ping :
2+ inetutils-telnet :
3+ mtr-tiny :
4+ tcpdump :
5+ systemd-timesyncd :
6+ bind9-dnsutils :
Original file line number Diff line number Diff line change 1+ diskimage-builder == 3.33.0
2+ ironic-python-agent-builder == 5.3.0
3+ python-keystoneclient == 5.4.0
4+ python-swiftclient == 4.6.0
You can’t perform that action at this time.
0 commit comments