-#!/bin/bash
+#!/usr/bin/env bash
+set -eu -o pipefail
eval "$(go env)"
MANAGE_INT_BRIDGE=${MANAGE_INT_BRIDGE:-y}
# Internal interface, to bridge virbr0
INT_IF=${INT_IF:-}
-#Root disk to deploy coreOS - use /dev/sda on BM
-ROOT_DISK_NAME=${ROOT_DISK_NAME-"/dev/sda"}
#Container runtime
CONTAINER_RUNTIME=${CONTAINER_RUNTIME:-"docker"}
export EXTERNAL_SUBNET="192.168.111.0/24"
-
+#Ironic data directory
+IRONIC_DATA_DIR=${IRONIC_DATA_DIR:-"/opt/ironic"}
export SSH_PUB_KEY=~/.ssh/id_rsa.pub
FILESYSTEM=${FILESYSTEM:="/"}
export VM_EXTRADISKS=${VM_EXTRADISKS:-"false"}
# Ironic vars
-export IRONIC_IMAGE=${IRONIC_IMAGE:-"quay.io/metal3-io/ironic:master"}
-export IRONIC_INSPECTOR_IMAGE=${IRONIC_INSPECTOR_IMAGE:-"quay.io/metal3-io/ironic-inspector"}
-export IRONIC_DATA_DIR="$WORKING_DIR/ironic"
+export IRONIC_IMAGE=${IRONIC_IMAGE:-"integratedcloudnative/ironic:v1.0-icn"}
+export IRONIC_INSPECTOR_IMAGE=${IRONIC_INSPECTOR_IMAGE:-"integratedcloudnative/ironic-inspector:v1.0-icn"}
+export IRONIC_BAREMETAL_IMAGE=${IRONIC_BAREMETAL_IMAGE:-"integratedcloudnative/baremetal-operator:v2.0-icn"}
+export IPA_DOWNLOADER_IMAGE=${IPA_DOWNLOADER_IMAGE:-"integratedcloudnative/ironic-ipa-downloader:v1.0-icn"}
# Verify requisites/permissions
# Connect to system libvirt
function list_nodes {
# Includes -machine and -machine-namespace
cat $NODES_FILE | \
- jq '.nodes[] | {
- name,
- driver,
- address:.driver_info.ipmi_address,
- port:.driver_info.ipmi_port,
- user:.driver_info.ipmi_username,
- password:.driver_info.ipmi_password,
- mac: .ports[0].address
- } |
- .name + " " +
- .driver + "://" + .address + (if .port then ":" + .port else "" end) + " " +
- .user + " " + .password + " " + .mac' \
- | sed 's/"//g'
+ jq -r '.nodes[] | [
+ .name,
+ .driver + "://" + .driver_info.ipmi_address + (if .driver_info.ipmi_port then ":" + .driver_info.ipmi_port else "" end),
+ .driver_info.ipmi_username,
+ .driver_info.ipmi_password,
+ .ports[0].address
+ ] | @csv' | \
+ sed 's/"//g'
+}
+
+function node_networkdata {
+ name=$1
+ cat $NODES_FILE | jq -r --arg name "$name" '.nodes[] | select(.name==$name) | .net'
}