Bug 1733273 - DOC BUG: Direct Deploy without using Swift Object Storage (Swift) - Image streamed onto device
Summary: DOC BUG: Direct Deploy without using Swift Object Storage (Swift) - Image str...
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: documentation
Version: 15.0 (Stein)
Hardware: Unspecified
OS: Unspecified
Target Milestone: ---
: ---
Assignee: Dan Macpherson
QA Contact: RHOS Documentation Team
Depends On:
TreeView+ depends on / blocked
Reported: 2019-07-25 14:56 UTC by mlammon
Modified: 2020-04-17 20:44 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Last Closed: 2020-04-17 20:44:15 UTC
Target Upstream Version:

Attachments (Terms of Use)

Description mlammon 2019-07-25 14:56:46 UTC
Description of problem:
DOC BUG: Direct Deploy without using Swift Object Storage (Swift) - Image streamed onto device

Swift has been used by default to serve images when using the direct deploy method. There is now an alternative way of serving them via the existing ironic-conductor HTTP server to the agent. This will avoid dependency on Swift alone. This new feature will be able to convert images to RAW format on the conductor, then stream them to IPA, avoiding in-memory conversion. "Image streamed onto device" - This should work for both whole disk images and also partitioned images.

There needs to be documentation describing the feature and configurations
to enablement.

Reference RFE/Bugs/upstream links

Comment 1 mlammon 2019-08-07 20:47:38 UTC
Basically we need to include documentation which give examples on how to configure this feature to work with Ironic in UC as well as Ironic in OC

1) Ironic in UC

The openstack baremetal node direct_interface must be set to 'direct' and not iscsi

Note: using undercloud_custom_env.yaml 

(undercloud) [stack@undercloud-0 ~]$ cat undercloud.conf
# Network interface on the Undercloud that will be handling the PXE
# boots and DHCP for Overcloud instances. (string value)
local_interface = eth0
local_ip =
undercloud_public_host =
undercloud_admin_host =
#TODO: use release >= 10 when RHBZ#1633193 is resolved
container_insecure_registries = brew-pulp-docker01.web.prod.ext.phx2.redhat.com:8888
undercloud_timezone = UTC
undercloud_service_certificate = /etc/pki/instack-certs/undercloud.pem
hieradata_override = /home/stack/hiera_override.yaml
custom_env_files = /home/stack/undercloud_custom_env.yaml
local_subnet = ctlplane-subnet
cidr =
dhcp_start =
dhcp_end =
gateway =
inspection_iprange =,
masquerade = true
#TODO(skatlapa): add param to override masq

(undercloud) [stack@undercloud-0 ~]$ cat /home/stack/undercloud_custom_env.yaml
   IronicDefaultDeployInterface: direct
   IronicImageDownloadSource: http

2) Ironic in OC

In this case we configure the same variable but in overcloud deployment.

IronicImageDownloadSource: http

See /home/stack/virt/ironic-custom.yaml

(undercloud) [stack@undercloud-0 ~]$ cat overcloud_deploy.sh

openstack overcloud deploy \
--timeout 100 \
--templates /usr/share/openstack-tripleo-heat-templates \
--stack overcloud \
--libvirt-type kvm \
--ntp-server clock1.rdu2.redhat.com \
-e /home/stack/virt/config_lvm.yaml \
-e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \
-e /home/stack/virt/network/network-environment.yaml \
-e /home/stack/virt/network/dvr-override.yaml \
-e /home/stack/virt/inject-trust-anchor.yaml \
-e /home/stack/virt/hostnames.yml \
-e /home/stack/virt/debug.yaml \
-e /home/stack/virt/nodes_data.yaml \
--environment-file /usr/share/openstack-tripleo-heat-templates/environments/services/ironic-overcloud.yaml \
-e ~/containers-prepare-parameter.yaml \
-e /home/stack/virt/ironic-custom.yaml \
--log-file overcloud_deployment_3.log

(undercloud) [stack@undercloud-0 ~]$ cat /home/stack/virt/ironic-custom.yaml
  NeutronBridgeMappings: datacentre:br-ex,baremetal:br-baremetal
  NeutronFlatNetworks: datacentre,baremetal
  IronicCleaningNetwork: baremetal
  IronicCleaningDiskErase: metadata
  IronicIPXEEnabled: true
      - ipmi
      - fake-hardware
  IronicEnabledBootInterfaces: [pxe, fake]
  IronicEnabledConsoleInterfaces: [ipmitool-socat, no-console, fake]
  IronicEnabledDeployInterfaces: [iscsi, direct, fake]
  IronicEnabledManagementInterfaces: [ipmitool, fake]
  IronicEnabledPowerInterfaces: [ipmitool, fake]
  IronicEnabledRaidInterfaces: [no-raid, fake]
  IronicEnabledVendorInterfaces: [ipmitool, fake, no-vendor]
  IronicEnabledInspectInterfaces: [no-inspect, inspector, fake]
      - RetryFilter
      - AggregateInstanceExtraSpecsFilter
      - AvailabilityZoneFilter
      - ComputeFilter
      - ComputeCapabilitiesFilter
      - ImagePropertiesFilter
  IronicImageDownloadSource: http

In both cases, verification can be completed in the ramdisk deploy logs

Comment 3 Dan Macpherson 2019-09-18 16:53:46 UTC
Merged into master for OSP15.

Comment 4 Chuck Copello 2020-04-17 20:43:40 UTC
Content is updated and published on the Customer Portal.

Note You need to log in before you can comment on or make changes to this bug.