Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
188 commits
Select commit Hold shift + click to select a range
a1fe613
Enables sushy-tool image multiarch builds
e-minguez Feb 4, 2025
d72b284
Install shim-pkg explicitly and add support for CentOS Stream 10
elfosardo Jul 29, 2024
26c71bb
Allow override of `http_url`, etc for different network topologies. …
boldfield Feb 18, 2025
00ac47d
fix syntax error
boldfield Feb 19, 2025
3d81956
Addressing comment by @dtantsur
boldfield Feb 20, 2025
c3badd4
Addressing comments by @tuminoid
boldfield Feb 24, 2025
b3b3c22
Addressing comments by @dtantsur
boldfield Feb 24, 2025
078918c
Deprecate passing MARIADB_PASSWORD in favour of mounting a secret
dtantsur Mar 11, 2025
adf73df
Merge pull request #637 from dtantsur/db-password
metal3-io-bot Mar 12, 2025
4b223e5
Merge pull request #581 from elfosardo/use-centos10
metal3-io-bot Mar 12, 2025
2258e49
Add scripts to run database upgrades and online migrations
dtantsur Feb 11, 2025
3d0870a
Refactoring: add a helper for restarting a service on certificate update
dtantsur Mar 14, 2025
bc6ecb9
Set IRONIC_USE_MARIADB to false by default in all cases
dtantsur Mar 14, 2025
6d62b13
Allow skipping dbsync in runironic
dtantsur Mar 14, 2025
a66d9bd
Merge pull request #642 from dtantsur/use-mariadb
metal3-io-bot Mar 14, 2025
31f8ebb
Merge pull request #643 from dtantsur/inotify-helper
metal3-io-bot Mar 14, 2025
a52f197
Don't attempt to define IRONIC_BASE_URL until constituent parts are d…
boldfield Mar 14, 2025
b1e283c
Merge pull request #623 from dtantsur/online-data-migrations
metal3-io-bot Mar 17, 2025
4a80e46
Update sushy-tools to 2.0.0
iurygregory Mar 20, 2025
8b92a93
Merge pull request #647 from iurygregory/sushy-tools-2
metal3-io-bot Mar 21, 2025
8424709
Merge pull request #628 from boldfield/boldfield/ironic-config-tweaks
metal3-io-bot Mar 24, 2025
d534678
Add build ironic-image with CentOS Stream 10
elfosardo Mar 19, 2025
0de167e
add support for custom configuration directories
Rozzii Feb 4, 2025
77fa0cc
Update virtualbmc version to 3.2.0
elfosardo Mar 26, 2025
6787102
Merge pull request #649 from metal3-io/vbmc-320
metal3-io-bot Mar 26, 2025
7a0ccdf
Merge pull request #646 from elfosardo/build-cs10
metal3-io-bot Mar 26, 2025
4194222
Merge pull request #634 from Nordix/custom_config_path
metal3-io-bot Mar 26, 2025
6754fed
Revert "Add build ironic-image with CentOS Stream 10"
tuminoid Mar 27, 2025
0a082d2
Merge pull request #651 from Nordix/tuomo/revert-cs10-build
metal3-io-bot Mar 27, 2025
31413cd
Expand docs on ramdisk ssh key
lentzi90 Mar 27, 2025
1aa919d
fix minor nits related to custom config/data paths
Rozzii Mar 27, 2025
c053415
Merge pull request #653 from Nordix/custom_path_followup
metal3-io-bot Mar 27, 2025
10668b9
Add build ironic-image with CS10, take two
elfosardo Mar 27, 2025
fe59df7
Merge pull request #654 from elfosardo/build-cs10
metal3-io-bot Mar 27, 2025
e10f7f3
group all dependabot github action updates into one
tuminoid Apr 1, 2025
b5b22c6
Merge pull request #658 from Nordix/tuomo/dependabot-actions-update-g…
metal3-io-bot Apr 1, 2025
933aeae
:seedling: Bump the all-github-actions group with 2 updates
dependabot[bot] Apr 1, 2025
8324da1
do not bump major version of github actions
tuminoid Apr 2, 2025
8880e02
Stop doing mkdir on /certs subdirectories
dtantsur Apr 2, 2025
bc902c2
Merge pull request #659 from metal3-io/dependabot/github_actions/main…
metal3-io-bot Apr 2, 2025
94f2c82
Merge pull request #661 from dtantsur/no-mkdir
metal3-io-bot Apr 2, 2025
3fc06bc
Merge pull request #660 from Nordix/tuomo/no-major-bumps-for-actions
metal3-io-bot Apr 2, 2025
7a6ebdd
Synchronize the IrSO functional job with IrSO
dtantsur Apr 2, 2025
85576d3
Merge pull request #663 from dtantsur/minikube
metal3-io-bot Apr 3, 2025
8f8b12b
Do not use /tmp as a source directory for the image
dtantsur Apr 3, 2025
c4bccc7
Merge pull request #664 from dtantsur/no-tmp
metal3-io-bot Apr 4, 2025
19d5180
add labels to Dockerfile
tuminoid Apr 7, 2025
597c461
Merge pull request #666 from Nordix/tuomo/add-labels-to-dockerimage
metal3-io-bot Apr 7, 2025
f2316cb
add labels to Dockerfiles in resources
tuminoid Apr 9, 2025
764dd66
Merge pull request #667 from Nordix/tuomo/add-labels-to-dockerfiles
metal3-io-bot Apr 10, 2025
bbe5557
Use bootloader through a local file link
dtantsur Apr 11, 2025
bc40f2f
Merge pull request #616 from e-minguez/multiplatform-sushy-tools
metal3-io-bot Apr 14, 2025
4a6d740
Go back to using `minikube image load` with a tarball
dtantsur Apr 14, 2025
732584c
Switch the IrSO CI to multinode
dtantsur Apr 14, 2025
de53517
Revert "🌱 Enables sushy-tool image multiarch builds"
lentzi90 Apr 15, 2025
5524a25
Merge pull request #670 from dtantsur/multinode
metal3-io-bot Apr 16, 2025
be3e01d
Merge pull request #671 from Nordix/revert-616-multiplatform-sushy-tools
metal3-io-bot Apr 16, 2025
0360a7c
Merge pull request #669 from dtantsur/bootloader
metal3-io-bot Apr 17, 2025
99566e5
Merge pull request #652 from Nordix/lentzi90/doc-ramdisk-sshkey
metal3-io-bot Apr 23, 2025
6ac2cd1
Extract files one-by-one in logwatch
dtantsur Apr 25, 2025
fff341c
Merge pull request #673 from dtantsur/logwatch
metal3-io-bot Apr 28, 2025
f329a4c
Use local upper-constraints
elfosardo May 6, 2025
8f76cf2
Merge pull request #674 from elfosardo/use-local-uc
metal3-io-bot May 6, 2025
0686d14
Add a helper script to parse ramdisk logs
dtantsur Apr 25, 2025
04485ec
OSSA-2025-001: set file_url_allowed_paths to what Metal3 uses
dtantsur May 12, 2025
c5527f7
Merge pull request #677 from dtantsur/parse-ramdisk-logs
metal3-io-bot May 12, 2025
210d0b4
Merge pull request #681 from dtantsur/OSSA-2025-001
metal3-io-bot May 12, 2025
46a3cdb
Use Python 3.12 to build and run ironic
elfosardo May 7, 2025
a7b764b
Merge pull request #676 from elfosardo/use-python312
metal3-io-bot May 14, 2025
445a5e6
Install jinja2 and pyinotify constrained
elfosardo May 14, 2025
87776f7
Minor improvements for tools/parse-ramdisk-logs.py
dtantsur May 12, 2025
c58575d
Merge pull request #683 from dtantsur/parse-ramdisk-logs
metal3-io-bot May 14, 2025
aee6ad5
Merge pull request #684 from elfosardo/install-deps-constrained
metal3-io-bot May 15, 2025
97da7cd
Do not install separate sushy-oem-idrac
elfosardo May 19, 2025
22de03e
Merge pull request #686 from elfosardo/remove-sushy-oem-idrac
metal3-io-bot May 20, 2025
5770090
Use Python 3.12 for resources images
elfosardo May 19, 2025
de8acd7
Merge pull request #685 from elfosardo/resources-python312
metal3-io-bot May 27, 2025
2ad782f
:seedling: Bump the github-actions group with 2 updates
dependabot[bot] Jun 1, 2025
8f1036c
move functional test to larger github runner
tuminoid Jun 2, 2025
7bde7c1
Merge pull request #689 from metal3-io/dependabot/github_actions/main…
metal3-io-bot Jun 11, 2025
0d69de6
Merge pull request #691 from Nordix/tuomo/use-larger-runners
metal3-io-bot Jun 11, 2025
01ae794
add new release automation and documentation
tuminoid Jun 17, 2025
64fbe59
add link checker
tuminoid Jun 17, 2025
e24d458
Merge pull request #692 from Nordix/tuomo/add-new-release-workflow
metal3-io-bot Jun 17, 2025
941078b
:rocket: Release v30.0.0
tuminoid Jun 17, 2025
54a4738
Merge pull request #693 from Nordix/tuomo/add-link-checker
metal3-io-bot Jun 17, 2025
ea29cd6
Merge pull request #695 from Nordix/tuomo/release-notes-v30.0.0
metal3-io-bot Jun 17, 2025
3586482
fix release image building
tuminoid Jun 17, 2025
b8d4a66
Merge pull request #699 from Nordix/tuomo/fix-release-image-building
metal3-io-bot Jun 17, 2025
b810041
update config to allow Ironic to work with ironic-prometheus-exporter…
pixelsoccupied Jun 10, 2025
3fd83f5
Update DHCP_RANGE description
lentzi90 Jun 25, 2025
0d0c33b
Merge pull request #701 from Nordix/lentzi90/dhcp-range
metal3-io-bot Jun 25, 2025
64c393f
Add dependabot config for release branches
tuminoid Jun 30, 2025
a1fddea
update docs/releasing.md on dependabot configs
tuminoid Jun 30, 2025
291f1b7
Merge pull request #702 from Nordix/tuomo/add-dependabot-release-bran…
metal3-io-bot Jul 1, 2025
a572213
:seedling: Bump the github-actions group with 2 updates
dependabot[bot] Jul 1, 2025
a303f6b
Merge pull request #704 from metal3-io/dependabot/github_actions/main…
metal3-io-bot Jul 1, 2025
e4237d9
Fix dnsmasq config ipv6 issues
nuhakala Jul 2, 2025
315acda
Support DEPLOY_KERNEL_URL and DEPLOY_RAMDISK_URL
dtantsur Jul 2, 2025
1ab3d12
Merge pull request #709 from dtantsur/default-deploy
metal3-io-bot Jul 4, 2025
c90197f
Merge pull request #700 from pixelsoccupied/add-exporter-config
metal3-io-bot Jul 4, 2025
08b0f6e
Clarify supported branches
elfosardo Jul 8, 2025
7f6f124
Remove extra slash from deploy kernel/ramdisk paths
dtantsur Jul 9, 2025
062e2b8
Merge pull request #712 from dtantsur/slash
metal3-io-bot Jul 9, 2025
38bdd07
Merge pull request #708 from Nordix/nuhakala/dnsmasq_ipv6_fix
metal3-io-bot Jul 16, 2025
81ffd79
Install pyasyncore compatibility package to fix pyinotify
elfosardo Jul 25, 2025
e065e60
Merge pull request #714 from metal3-io/fix-pyinotify-py312
metal3-io-bot Jul 28, 2025
154f266
Detect arch specific IPA kernel/ramdisk
diconico07 Jul 16, 2025
6b91036
Generate UEFI ESP for both x86_64 and aarch64
diconico07 Jul 17, 2025
c2b2f19
Remove trailing comma from _BY_ARCH variables
diconico07 Jul 22, 2025
75408cd
Merge pull request #711 from elfosardo/clarify-supported-branches
metal3-io-bot Jul 29, 2025
34538a6
:seedling: Bump the github-actions group with 2 updates
dependabot[bot] Aug 1, 2025
37b8599
Merge pull request #718 from metal3-io/dependabot/github_actions/main…
metal3-io-bot Aug 5, 2025
597d985
Revert ":bug: Fix dnsmasq config ipv6 issues"
elfosardo Aug 8, 2025
a6408a9
Merge pull request #723 from metal3-io/revert-708-nuhakala/dnsmasq_ip…
metal3-io-bot Aug 8, 2025
97d929b
Release v31.0.0
elfosardo Aug 8, 2025
0738065
Centralize assignment of HTTP_PORT
elfosardo Aug 11, 2025
d1bc484
Merge pull request #726 from elfosardo/release-notes-31.0.0
metal3-io-bot Aug 11, 2025
e93b48d
Fix invalid and duplicate code in dnsmasq config
nuhakala Aug 11, 2025
f59faf0
Support for mounting an auth config for OCI registries
dtantsur Aug 13, 2025
26984d8
Merge pull request #703 from Nordix/tuomo/update-release-doc
metal3-io-bot Aug 15, 2025
8a63f41
Use watchdog to monitor logs and certificate changes
elfosardo Aug 18, 2025
e4b38cd
Disable unused httpd mod_proxy extensions
dtantsur Aug 20, 2025
88ab764
Merge pull request #727 from Nordix/nuhakala/dnsmasq_config_fix
metal3-io-bot Aug 20, 2025
5af7077
Approvers: remove Derek, add Adam
dtantsur Aug 20, 2025
0669ded
Merge pull request #733 from dtantsur/owners
dtantsur Aug 20, 2025
6e3a8c1
Merge pull request #713 from diconico07/multi-arch
metal3-io-bot Aug 20, 2025
078ab3d
Fix CentOS Stream 10 build
elfosardo Aug 20, 2025
fac9ef9
Merge pull request #732 from dtantsur/proxy-ajp
metal3-io-bot Aug 21, 2025
f859c1b
Synchronize the functional job with IrSO
dtantsur Aug 21, 2025
f36ad2a
Merge pull request #730 from elfosardo/pyinotify-to-watchmedo
metal3-io-bot Aug 21, 2025
1bb6051
Merge pull request #744 from dtantsur/irso-functional
metal3-io-bot Aug 21, 2025
7084759
Fix patch-image.sh script
elfosardo Aug 21, 2025
ace325b
Merge pull request #734 from elfosardo/fix-cs10-build
metal3-io-bot Aug 26, 2025
138223d
Merge pull request #729 from dtantsur/oci-auth-config
metal3-io-bot Aug 28, 2025
8e16ef8
Merge pull request #743 from elfosardo/fix-patch-images
metal3-io-bot Aug 28, 2025
f187dd4
Allow a custom Ironic/Sushy source in IrSO functional tests
dtantsur Aug 26, 2025
c9fbd64
switch to cncf's new oracle gh runners
tuminoid Aug 7, 2025
b74da3d
add edited as irso functional trigger
tuminoid Sep 1, 2025
b31cff5
:seedling: Bump actions/checkout in the github-actions group
dependabot[bot] Sep 1, 2025
a62a856
Merge pull request #749 from dtantsur/irso-functional
metal3-io-bot Sep 2, 2025
88bf914
feat: support default bmc verify ca
zouy414 May 18, 2023
0d135c2
Merge pull request #751 from Nordix/tuomo/add-edited-to-irso-function…
metal3-io-bot Sep 2, 2025
af3165e
Merge pull request #752 from metal3-io/dependabot/github_actions/main…
metal3-io-bot Sep 3, 2025
e7ce00c
Merge pull request #672 from zouy414/main
metal3-io-bot Sep 3, 2025
5ac3fb1
Merge pull request #728 from elfosardo/single_http_port_config
metal3-io-bot Sep 5, 2025
1c8ba33
Change default json-rpc port to avoid possible conflicts
elfosardo Aug 21, 2025
771f133
Merge pull request #741 from elfosardo/metal3-json-rpc-port
metal3-io-bot Sep 9, 2025
0ab4258
Merge pull request #719 from Nordix/tuomo/switch-to-new-cncf-runners
metal3-io-bot Sep 12, 2025
44d908d
Use the shared directory to store master iso images on ironic-conduct…
hroyrh Sep 18, 2025
4cee158
Merge pull request #756 from hroyrh/master-iso-path
metal3-io-bot Sep 22, 2025
9edd474
Revert ":bug: Use the shared directory to store master iso images on …
lentzi90 Sep 24, 2025
3d28a25
Merge pull request #757 from Nordix/revert-756-master-iso-path
metal3-io-bot Sep 24, 2025
222ba1f
:rocket: Release v32.0.0
elfosardo Sep 29, 2025
4a967f7
Merge pull request #761 from elfosardo/release-notes-32.0.0
metal3-io-bot Sep 29, 2025
68c8b4d
Expose cipher suite configuration for vmedia
diconico07 Sep 25, 2025
650d2a3
:seedling: Bump softprops/action-gh-release in the github-actions group
dependabot[bot] Oct 1, 2025
39cd537
Merge pull request #762 from metal3-io/dependabot/github_actions/main…
metal3-io-bot Oct 1, 2025
fce4727
Merge pull request #759 from diconico07/tls-ciphers
metal3-io-bot Oct 1, 2025
16c5142
improve httpd TLS configuration
Rozzii Mar 24, 2025
80dc4b1
Add build ironic-image workflow on PRs
elfosardo Oct 2, 2025
e107abf
Merge pull request #763 from elfosardo/build-ironic-image-pr
metal3-io-bot Oct 3, 2025
b7108ec
Update sushy-tools version to 2.1.0
lentzi90 Oct 7, 2025
0b44ff5
Merge pull request #764 from Nordix/lentzi90/update-sushy-tools-version
metal3-io-bot Oct 7, 2025
e0309aa
Merge pull request #690 from Nordix/tls_httpd_new_port
metal3-io-bot Oct 9, 2025
eb6091e
add Renovate config to update release branches
tuminoid Oct 27, 2025
6e1d8c3
Drop the non-Redfish iLO 4 and iLO 5 drivers
dtantsur Oct 27, 2025
535727c
Merge pull request #772 from dtantsur/no-ilo
metal3-io-bot Oct 28, 2025
5ea1152
Merge pull request #768 from Nordix/tuomo/add-renovate-config-to-upda…
metal3-io-bot Oct 28, 2025
95d3532
Do not install dnf config-manager
elfosardo Oct 29, 2025
7fb9e69
Merge pull request #775 from elfosardo/remove-dnf-config-manager
metal3-io-bot Oct 30, 2025
e094dc7
add Renovate documentation to releasing.md
tuminoid Oct 30, 2025
461f9b7
add Renovate bot for main branch
tuminoid Oct 30, 2025
e0d4d12
Merge pull request #776 from Nordix/tuomo/add-renovate-to-main
metal3-io-bot Oct 31, 2025
cabe62d
Stop defaulting WEBSERVER_VERIFY_CA to IRONIC_CACERT_FILE
dtantsur Oct 31, 2025
4931304
Merge pull request #778 from dtantsur/webserver_verify_ca
metal3-io-bot Oct 31, 2025
1f7894d
:seedling: Bump softprops/action-gh-release in the github-actions group
dependabot[bot] Nov 1, 2025
69f87a2
Update to Pull request template
Sunnatillo Nov 3, 2025
3457998
Merge pull request #779 from metal3-io/dependabot/github_actions/main…
metal3-io-bot Nov 3, 2025
6242d2e
Use the shared directory to store master iso images on ironic-conduct…
hroyrh Nov 4, 2025
6f157d9
bump upstream Ironic to a SHA from Nov 6
tuminoid Nov 6, 2025
3320cb7
Merge pull request #783 from Nordix/tuomo/bump-upstream-ironic
metal3-io-bot Nov 6, 2025
05bdaf2
Update the default temp directory to same filesystem as image
hroyrh Nov 6, 2025
281e9e8
Merge pull request #781 from hroyrh/master-iso
metal3-io-bot Nov 10, 2025
b2de510
Merge pull request #785 from Nordix/Sunnatillo/update-PR-template
metal3-io-bot Nov 10, 2025
c7c4061
Merge upstream
hroyrh Nov 11, 2025
ff30bf0
Update Dockerfiles and use the watchdog package instead of pyinotify
hroyrh Nov 18, 2025
9fecf05
Merge branch 'main' into iso-path
hroyrh Nov 21, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion Dockerfile.fcos
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ RUN prepare-image.sh && \
COPY scripts/* /bin/

# IRONIC #
COPY --from=builder /tmp/esp.img /tmp/uefi_esp.img
# Updated this in https://github.com/metal3-io/ironic-image/pull/713/files
COPY --from=builder /tmp/uefi_esp*.img /templates/

COPY ironic-config/ironic.conf.j2 /etc/ironic/
COPY ironic-config/inspector.ipxe.j2 ironic-config/httpd-ironic-api.conf.j2 ironic-config/ipxe_config.template /tmp/
Expand Down
3 changes: 2 additions & 1 deletion Dockerfile.ocp
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ RUN dnf config-manager --disable rhel-9-openstack-17-rpms || true && \
rm -f /tmp/prepare-ipxe.sh

# IRONIC #
COPY --from=builder /tmp/esp.img /tmp/uefi_esp.img
# Updated this in https://github.com/metal3-io/ironic-image/pull/713/files
COPY --from=builder /tmp/uefi_esp*.img /templates/

COPY ironic-config/ironic.conf.j2 /etc/ironic/

Expand Down
3 changes: 2 additions & 1 deletion Dockerfile.scos
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ RUN prepare-image.sh && \
COPY scripts/* /bin/

# IRONIC #
COPY --from=builder /tmp/esp.img /tmp/uefi_esp.img
# Updated this in https://github.com/metal3-io/ironic-image/pull/713/files
COPY --from=builder /tmp/uefi_esp*.img /templates/

COPY ironic-config/ironic.conf.j2 /etc/ironic/

Expand Down
30 changes: 30 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,36 @@ functionality:
- `DEPLOY_KERNEL_URL` and `DEPLOY_RAMDISK_URL` provide the default IPA kernel
and initramfs images. If they're not set, the images from IPA downloader are
used (if present).
- `IRONIC_JSON_RPC_PORT` - port used by the ironic json-rpc service (default to
6189).
- `WEBSERVER_CACERT_FILE` - Specifies the CA or CA bundle that will be used
by Ironic to verify disk and IPA images.

The following environment variables can be passed to customize the virtual
media HTTP server configuration:

- `IRONIC_VMEDIA_CURVES` - Setting this variable will set the allowed set of
groups allowed for TLS negotiation by order of preference, it needs to be set
in the openSSL format like e.g. `x448:x25519:secp256r1:secp384r1`. If let
unset it will use default from openSSL.
- `IRONIC_VMEDIA_TLS_12_CIPHERS` - Setting this variable will set the allowed
cipher suites for TLS up to version 1.2 in order, it needs to be set in the
openSSL format e.g. `ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305`.
If let unset it will use default from openSSL.
- `IRONIC_VMEDIA_TLS_13_CIPHERS` - Setting this variable will set the allowed
cipher suites for TLS up to version 1.3 in order, it needs to be set in the
openSSL format e.g. `TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256`. If
let unset it will use default from openSSL.
- `IRONIC_VMEDIA_TLS_ENFORCE_SERVER_CIPHER_ORDER` - Setting this variable to
`true` will make the server enforce its cipher list ordering for TLS version
up to 1.2, defaults to `false`

The following mountpoints can be passed in to customize run-time
functionality:

- `/certs/ca/bmc` - The storage path of BMC CA certificates. If the path exists
and verify_ca field in driver_info is True or None, the certificates in this
path will be used.

The following mountpoints can be passed in to customize run-time
functionality:
Expand Down
27 changes: 9 additions & 18 deletions ironic-config/apache2-ipxe.conf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -10,26 +10,17 @@ Listen {{ env.IPXE_TLS_PORT }}
SSLCertificateFile {{ env.IPXE_CERT_FILE }}
SSLCertificateKeyFile {{ env.IPXE_KEY_FILE }}

DocumentRoot "/shared/html"
<Directory "/shared/html">
Order Allow,Deny
Allow from all
Options Indexes FollowSymLinks
Require all granted
</Directory>
<Directory "/shared/html/(redfish|ilo|images)/">
Order Deny,Allow
Deny from all
<Directory ~ "/shared/html/(redfish|ilo|images)/">
Require all denied
</Directory>
</VirtualHost>

<Location ~ "^/grub.*/">
SSLRequireSSL
</Location>
<Location ~ "^/pxelinux.cfg/">
SSLRequireSSL
</Location>
<Location ~ "^/.*\.conf/">
SSLRequireSSL
</Location>
<Location ~ "^/(([0-9]|[a-z]).*-){4}([0-9]|[a-z]).*/">
SSLRequireSSL
</Location>
<Location ~ "^/.*">
SSLRequireSSL
</Location>

</VirtualHost>
27 changes: 20 additions & 7 deletions ironic-config/apache2-vmedia.conf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,29 @@ Listen {{ env.VMEDIA_TLS_PORT }}
SSLCertificateFile {{ env.IRONIC_VMEDIA_CERT_FILE }}
SSLCertificateKeyFile {{ env.IRONIC_VMEDIA_KEY_FILE }}

{% if "IRONIC_VMEDIA_TLS_12_CIPHERS" in env and env.IRONIC_VMEDIA_TLS_12_CIPHERS %}
SSLCipherSuite {{ env.IRONIC_VMEDIA_TLS_12_CIPHERS }}
{% endif %}
{% if "IRONIC_VMEDIA_TLS_13_CIPHERS" in env and env.IRONIC_VMEDIA_TLS_13_CIPHERS %}
SSLCipherSuite TLSv1.3 {{ env.IRONIC_VMEDIA_TLS_13_CIPHERS }}
{% endif %}
{% if "IRONIC_VMEDIA_CURVES" in env and env.IRONIC_VMEDIA_CURVES %}
SSLOpenSSLConfCmd Curves {{ env.IRONIC_VMEDIA_CURVES }}
{% endif %}
{% if env.IRONIC_VMEDIA_TLS_ENFORCE_SERVER_CIPHER_ORDER | lower == "true" %}
SSLHonorCipherOrder on
{% endif %}

<Directory ~ "/shared/html">
Order deny,allow
deny from all
Require all denied
</Directory>
<Directory ~ "/shared/html/(redfish|ilo)/">
Order allow,deny
allow from all
Require all granted
</Directory>

<Location ~ "^/.*">
SSLRequireSSL
</Location>

</VirtualHost>

<Location ~ "^/(redfish|ilo)/">
SSLRequireSSL
</Location>
64 changes: 22 additions & 42 deletions ironic-config/dnsmasq.conf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -11,50 +11,40 @@ port={{ env.DNS_PORT }}
{%- if env.DHCP_RANGE | length %}
log-dhcp
dhcp-range={{ env.DHCP_RANGE }}

# It can be used when setting DNS or GW variables.
{%- if env["GATEWAY_IP"] is undefined %}
# Disable default router(s)
dhcp-option=3
{% else %}
dhcp-option=option{% if ":" in env["GATEWAY_IP"] %}6{% endif %}:router,{{ env["GATEWAY_IP"] }}
{% endif %}

{%- if env["DNS_IP"] is undefined %}
# Disable DNS over provisioning network
dhcp-option=6
{% else %}
dhcp-option=option{% if ":" in env["DNS_IP"] %}6{% endif %}:dns-server,{{ env["DNS_IP"] }}
{% endif %}

{# Network boot options for IPv4 and IPv6 #}
{%- if env.IPV == "4" or env.IPV is undefined %}
# IPv4 Configuration:
dhcp-match=ipxe,175
# Client is already running iPXE; move to next stage of chainloading
{%- if env.IPXE_TLS_SETUP == "true" %}
# iPXE with (U)EFI
dhcp-boot=tag:efi,tag:ipxe,http://{{ env.IRONIC_URL_HOST }}:{{ env.HTTP_PORT }}/custom-ipxe/snponly.efi
# iPXE with BIOS
dhcp-boot=tag:ipxe,http://{{ env.IRONIC_URL_HOST }}:{{ env.HTTP_PORT }}/custom-ipxe/undionly.kpxe

{# Set the router or disable it. Setting router is IPv4 specific, in v6 there #}
{# are router advertisements that do the same thing. #}
{%- if env["GATEWAY_IP"] is undefined %}
# Disable default router(s)
dhcp-option=3
{% else %}
dhcp-boot=tag:ipxe,http://{{ env.IRONIC_URL_HOST }}:{{ env.HTTP_PORT }}/boot.ipxe
dhcp-option=option:router,{{ env["GATEWAY_IP"] }}
{% endif %}

# Note: Need to test EFI booting
dhcp-match=set:efi,option:client-arch,7
dhcp-match=set:efi,option:client-arch,9
dhcp-match=set:efi_arm,option:client-arch,11

# Client is PXE booting over EFI without iPXE ROM; send EFI version of iPXE chainloader do the same also if iPXE ROM boots but TLS is enabled
{%- if env.IPXE_TLS_SETUP == "true" %}
dhcp-boot=tag:efi,tag:ipxe,snponly.efi
dhcp-match=set:efi,option:client-arch,11
# Client is (i)PXE booting on EFI machine
dhcp-boot=tag:efi,/snponly.efi,{{ env.IRONIC_IP }}
# Client is running (i)PXE on BIOS machine
dhcp-boot=tag:!efi,/undionly.kpxe,{{ env.IRONIC_IP }}
{%- if env.IPXE_TLS_SETUP != "true" %}
dhcp-boot=tag:ipxe,http://{{ env.IRONIC_URL_HOST }}:{{ env.HTTP_PORT }}/boot.ipxe
{% endif %}
dhcp-boot=tag:efi,tag:!ipxe,snponly.efi

# Client is PXE booting over EFI without iPXE ROM; send EFI version of iPXE chainloader for aarch64
dhcp-boot=tag:efi_arm,tag:!ipxe,/arm64-efi/snponly.efi

# Client is running PXE over BIOS; send BIOS version of iPXE chainloader
dhcp-boot=/undionly.kpxe,{{ env.IRONIC_IP }}
{% endif %}

{% if env.IPV == "6" %}
Expand All @@ -64,22 +54,12 @@ ra-param={{ env.PROVISIONING_INTERFACE }},0,0

dhcp-vendorclass=set:pxe6,enterprise:343,PXEClient
dhcp-userclass=set:ipxe6,iPXE
dhcp-option=tag:pxe6,option6:bootfile-url,tftp://{{ env.IRONIC_URL_HOST }}/snponly.efi
dhcp-option=tag:ipxe6,option6:bootfile-url,http://{{ env.IRONIC_URL_HOST }}:{{ env.HTTP_PORT }}/boot.ipxe

# It can be used when setting DNS or GW variables.
{%- if env["GATEWAY_IP"] is undefined %}
# Disable default router(s)
dhcp-option=3
{% else %}
dhcp-option=option{% if ":" in env["GATEWAY_IP"] %}6{% endif %}:router,{{ env["GATEWAY_IP"] }}
{% endif %}
{%- if env["DNS_IP"] is undefined %}
# Disable DNS over provisioning network
dhcp-option=6
{% else %}
dhcp-option=option{% if ":" in env["DNS_IP"] %}6{% endif %}:dns-server,{{ env["DNS_IP"] }}
{% endif %}
# Client is (i)PXE booting on EFI machine
dhcp-option=tag:efi,option6:bootfile-url,{{ env.IRONIC_URL_HOST }}/snponly.efi
# Client is running (i)PXE on BIOS machine
dhcp-option=tag:!efi,option6:bootfile-url,{{ env.IRONIC_URL_HOST }}/undionly.kpxe
{%- if env.IPXE_TLS_SETUP != "true" %}
dhcp-option=tag:ipxe6,option6:bootfile-url,{{ env.IRONIC_HTTP_URL }}/boot.ipxe
{% endif %}
{% endif %}

Expand Down
20 changes: 20 additions & 0 deletions ironic-config/httpd-ironic-api.conf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,20 @@ Listen {{ env.IRONIC_URL_HOST }}:{{ env.IRONIC_LISTEN_PORT }}
<VirtualHost {{ env.IRONIC_URL_HOST }}:{{ env.IRONIC_LISTEN_PORT }}>
{% endif %}

DocumentRoot "/shared/html"

<Directory "/shared/html">
Require all denied
</Directory>

<Directory "/shared/html/images">
Require all granted
</Directory>

# Exclude /images from proxying
ProxyPass "/images" !
ProxyPassReverse "/images" !

{% if env.IRONIC_PRIVATE_PORT == "unix" %}
ProxyPass "/" "unix:/shared/ironic.sock|http://127.0.0.1/"
ProxyPassReverse "/" "unix:/shared/ironic.sock|http://127.0.0.1/"
Expand All @@ -41,6 +55,7 @@ Listen {{ env.IRONIC_URL_HOST }}:{{ env.IRONIC_LISTEN_PORT }}
SSLCertificateKeyFile {{ env.IRONIC_KEY_FILE }}
{% endif %}


<Location />
{% if "IRONIC_HTPASSWD" in env and env.IRONIC_HTPASSWD | length %}
AuthType Basic
Expand All @@ -57,4 +72,9 @@ Listen {{ env.IRONIC_URL_HOST }}:{{ env.IRONIC_LISTEN_PORT }}
<Location ~ "^/(v1/)?(lookup|heartbeat|continue_inspection)" >
Require all granted
</Location>

<Location ~ "^/images(/.*)?$">
Require all granted
</Location>

</VirtualHost>
2 changes: 0 additions & 2 deletions ironic-config/httpd-modules.conf
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ LoadModule mpm_event_module /etc/httpd/modules/mod_mpm_event.so
LoadModule ssl_module /etc/httpd/modules/mod_ssl.so
LoadModule env_module /etc/httpd/modules/mod_env.so
LoadModule proxy_module /etc/httpd/modules/mod_proxy.so
LoadModule proxy_ajp_module /etc/httpd/modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module /etc/httpd/modules/mod_proxy_balancer.so
LoadModule proxy_http_module /etc/httpd/modules/mod_proxy_http.so
LoadModule slotmem_shm_module /etc/httpd/modules/mod_slotmem_shm.so
LoadModule headers_module /etc/httpd/modules/mod_headers.so
Expand Down
31 changes: 28 additions & 3 deletions ironic-config/httpd.conf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,43 @@ Group apache
DocumentRoot "/shared/html"

<Directory "/shared/html">
{%- if env.IPXE_TLS_SETUP | lower == "true" %}
Options Indexes FollowSymLinks
AllowOverride None
Require all denied
{%- else %}
Options Indexes FollowSymLinks
Require all granted
{%- endif %}
</Directory>

<Directory ~ "/shared/html/(redfish|ilo)/">
{%- if env.IRONIC_VMEDIA_TLS_SETUP | lower == "true" %}
Require all denied
{%- else %}
Require all granted
{%- endif %}
</Directory>

{%- if env.HTTPD_SERVE_NODE_IMAGES | lower == "true" %}
{%- set serve_img = env.HTTPD_SERVE_NODE_IMAGES | lower %}
{%- set image_tls = env.IRONIC_TLS_SETUP | lower %}
<Directory "/shared/html/images">
Options Indexes FollowSymLinks
AllowOverride None
{%- if serve_img == "true" and image_tls != "true" %}
Require all granted
{%- else %}
Require all denied
{%- endif %}

<FilesMatch "^ironic.*">
{%- if env.IPXE_TLS_SETUP | lower == "true" %}
Require all denied
{%- else %}
Require all granted
{%- endif %}
</FilesMatch>
</Directory>
{% endif %}


<IfModule dir_module>
DirectoryIndex index.html
Expand Down
Loading