@@ -14,22 +14,79 @@ early_deploy_validation
1414set_api_and_ingress_vip
1515
1616if [ ! -f " ${OCP_DIR} /install-config.yaml" ]; then
17- # Validate there are enough nodes to avoid confusing errors later..
1817 NODES_LEN=$( jq ' .nodes | length' " ${NODES_FILE} " )
1918 if (( NODES_LEN < NUM_MASTERS + NUM_WORKERS )) ; then
2019 echo " ERROR: ${NODES_FILE} contains ${NODES_LEN} nodes, but ${NUM_MASTERS} masters and ${NUM_WORKERS} workers requested"
2120 exit 1
2221 fi
2322
24- # Create a nodes.json file
25- mkdir -p " ${OCP_DIR} "
26- jq ' {nodes: .} ' " ${NODES_FILE} " | tee " ${BAREMETALHOSTS_FILE} "
23+ # Generate base config vars from the resolved bash environment
24+ SCRIPTDIR= " $( cd " $( dirname " ${BASH_SOURCE[0]} " ) " && pwd ) "
25+ " ${SCRIPTDIR} /ansible/vars_bridge.sh "
2726
28- # Create install config for openshift-installer
29- generate_ocp_install_config " ${OCP_DIR} "
27+ EXTRA_VARS_FILE=" ${SCRIPTDIR} /ansible/.runtime_vars.yml"
28+
29+ # Append runtime-computed values that vars_bridge.sh does not cover
30+ cat > " ${EXTRA_VARS_FILE} " << RUNTIME_EOF
31+ # Runtime vars generated by 05_create_install_config.sh
32+ devscripts_machine_os_bootstrap_image_name: "${MACHINE_OS_BOOTSTRAP_IMAGE_NAME} "
33+ devscripts_machine_os_bootstrap_image_sha256: "${MACHINE_OS_BOOTSTRAP_IMAGE_UNCOMPRESSED_SHA256} "
34+ devscripts_nodes_file: "${NODES_FILE} "
35+ devscripts_ocp_dir: "${OCP_DIR} "
36+ devscripts_scriptdir: "${SCRIPTDIR} "
37+ RUNTIME_EOF
38+
39+ # BMC verify CA certificate (OCP >= 4.22)
40+ BMC_CA_FILE=" ${WORKING_DIR} /virtualbmc/sushy-tools/cert.pem"
41+ if [[ -f " ${BMC_CA_FILE} " ]] && ! is_lower_version " $( openshift_version " ${OCP_DIR} " ) " " 4.22" ; then
42+ {
43+ echo ' devscripts_bmc_verify_ca: |'
44+ sed ' s/^/ /' " ${BMC_CA_FILE} "
45+ } >> " ${EXTRA_VARS_FILE} "
46+ fi
47+
48+ # Image mirror content sources and trust bundle
49+ MIRROR_CONTENT=$( image_mirror_config || true)
50+ if [[ -n " ${MIRROR_CONTENT} " ]]; then
51+ # Extract imageContentSources as JSON array for the template
52+ ICS_YAML=$( echo " ${MIRROR_CONTENT} " | sed -n ' /^imageContentSources:/,/^[a-zA-Z]/p' | sed ' $d' )
53+ if [[ -n " ${ICS_YAML} " ]]; then
54+ echo " ${ICS_YAML} " >> " ${EXTRA_VARS_FILE} "
55+ fi
56+
57+ # Extract additionalTrustBundle content
58+ TRUST_BUNDLE=$( echo " ${MIRROR_CONTENT} " | sed -n ' /^additionalTrustBundle:/,$ p' )
59+ if [[ -n " ${TRUST_BUNDLE} " ]]; then
60+ {
61+ echo " devscripts_additional_trust_bundle_content: |"
62+ echo " ${TRUST_BUNDLE} " | tail -n +2
63+ } >> " ${EXTRA_VARS_FILE} "
64+ fi
65+ elif [[ -n " ${ADDITIONAL_TRUST_BUNDLE:- } " ]]; then
66+ {
67+ echo " devscripts_additional_trust_bundle_content: |"
68+ awk ' { print " ", $0 }' " ${ADDITIONAL_TRUST_BUNDLE} "
69+ } >> " ${EXTRA_VARS_FILE} "
70+ fi
71+
72+ # Proxy variables (when INSTALLER_PROXY is set)
73+ if [[ -n " ${INSTALLER_PROXY:- } " ]]; then
74+ cat >> " ${EXTRA_VARS_FILE} " << PROXY_EOF
75+ devscripts_http_proxy: "${HTTP_PROXY} "
76+ devscripts_https_proxy: "${HTTPS_PROXY} "
77+ devscripts_no_proxy: "${NO_PROXY} "
78+ PROXY_EOF
79+ fi
80+
81+ ANSIBLE_FORCE_COLOR=true ansible-playbook \
82+ -i " ${SCRIPTDIR} /ansible/inventory/hosts" \
83+ --extra-vars " @${SCRIPTDIR} /ansible/.config_vars.yml" \
84+ --extra-vars " @${EXTRA_VARS_FILE} " \
85+ -v \
86+ " ${SCRIPTDIR} /ansible/playbooks/install_config.yml"
3087fi
3188
32- # Generate the assets for extra worker VMs
89+ # Generate the assets for extra worker VMs (not yet migrated to Ansible)
3390if [ -f " ${EXTRA_NODES_FILE} " ]; then
3491 jq ' .nodes' " ${EXTRA_NODES_FILE} " | tee " ${EXTRA_BAREMETALHOSTS_FILE} "
3592 generate_ocp_host_manifest " ${OCP_DIR} " " ${EXTRA_BAREMETALHOSTS_FILE} " extra_host_manifests.yaml " ${EXTRA_WORKERS_NAMESPACE} "
0 commit comments