@@ -5,6 +5,8 @@ export IRONIC_SSL_PROTOCOL=${IRONIC_SSL_PROTOCOL:-"-ALL +TLSv1.2 +TLSv1.3"}
55export IPXE_SSL_PROTOCOL=${IPXE_SSL_PROTOCOL:- " -ALL +TLSv1.2 +TLSv1.3" }
66export IRONIC_VMEDIA_SSL_PROTOCOL=${IRONIC_VMEDIA_SSL_PROTOCOL:- " ALL" }
77
8+ export DEFAULT_CACERT_BUNDLE=${DEFAULT_CACERT_BUNDLE:- " /etc/ssl/cert.pem" }
9+
810# Node image storage is using the same cert and port as the API
911export IRONIC_CERT_FILE=/certs/ironic/tls.crt
1012export IRONIC_KEY_FILE=/certs/ironic/tls.key
@@ -23,6 +25,8 @@ export MARIADB_CACERT_FILE=/certs/ca/mariadb/tls.crt
2325export BMC_CACERTS_PATH=/certs/ca/bmc
2426export BMC_CACERT_FILE=/conf/bmc-tls.pem
2527export IRONIC_CACERT_FILE=/certs/ca/ironic/tls.crt
28+ export IPA_CACERT_FILE=/conf/ipa-tls.pem
29+ export IPA_CACERTS_PATH=/certs/ca/ipa
2630
2731export IPXE_TLS_PORT=" ${IPXE_TLS_PORT:- 8084} "
2832
@@ -129,3 +133,37 @@ if ls "${BMC_CACERTS_PATH}"/* > /dev/null 2>&1; then
129133else
130134 export BMC_TLS_ENABLED=" false"
131135fi
136+
137+ if ls " ${IPA_CACERTS_PATH} " /* > /dev/null 2>&1 ; then
138+ cat " ${IPA_CACERTS_PATH} " /* > " ${IPA_CACERT_FILE} "
139+ else
140+ if [ -f " ${DEFAULT_CACERT_BUNDLE} " ]; then
141+ copy_atomic " ${DEFAULT_CACERT_BUNDLE} " " ${IPA_CACERT_FILE} "
142+ fi
143+ fi
144+
145+ if [ -f " ${IRONIC_CACERT_FILE} " ]; then
146+ cat " ${IRONIC_CACERT_FILE} " >> " ${IPA_CACERT_FILE} "
147+ fi
148+
149+ generate_cacert_bundle_initrd ()
150+ (
151+ local output_path=" $1 "
152+ local temp_dir
153+
154+ temp_dir=" $( mktemp -d) "
155+
156+ cd " ${temp_dir} " || return
157+
158+ mkdir -p etc/ironic-python-agent.d etc/ironic-python-agent
159+ cp " ${IPA_CACERT_FILE} " etc/ironic-python-agent/ironic.crt
160+ cat > etc/ironic-python-agent.d/ironic-tls.conf << EOF
161+ [DEFAULT]
162+ cafile = /etc/ironic-python-agent/ironic.crt
163+ EOF
164+
165+ find . | cpio -o -H newc --reproducible >> " ${output_path} "
166+
167+ # Remove temp directory
168+ cd && rm -rf " ${temp_dir} "
169+ )
0 commit comments