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...
Keywords:
Status: VERIFIED
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: documentation
Version: 15.0 (Stein)
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: ---
Assignee: Dan Macpherson
QA Contact: RHOS Documentation Team
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-07-25 14:56 UTC by mlammon
Modified: 2019-09-18 16:54 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
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
https://bugzilla.redhat.com/show_bug.cgi?id=1607779
https://bugzilla.redhat.com/show_bug.cgi?id=1630964

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
[DEFAULT]
# Network interface on the Undercloud that will be handling the PXE
# boots and DHCP for Overcloud instances. (string value)
local_interface = eth0
local_ip = 192.168.24.1/24
undercloud_public_host = 192.168.24.2
undercloud_admin_host = 192.168.24.3
#TODO: use release >= 10 when RHBZ#1633193 is resolved
undercloud_ntp_servers=clock1.rdu2.redhat.com
container_images_file=/home/stack/containers-prepare-parameter.yaml
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
[ctlplane-subnet]
local_subnet = ctlplane-subnet
cidr = 192.168.24.0/24
dhcp_start = 192.168.24.5
dhcp_end = 192.168.24.24
gateway = 192.168.24.1
inspection_iprange = 192.168.24.100,192.168.24.120
masquerade = true
#TODO(skatlapa): add param to override masq



(undercloud) [stack@undercloud-0 ~]$ cat /home/stack/undercloud_custom_env.yaml
parameter_defaults:
   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
#!/bin/bash

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
parameter_defaults:
  NeutronBridgeMappings: datacentre:br-ex,baremetal:br-baremetal
  NeutronFlatNetworks: datacentre,baremetal
  IronicCleaningNetwork: baremetal
  IronicCleaningDiskErase: metadata
  IronicIPXEEnabled: true
  IronicEnabledHardwareTypes:
      - 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]
  NovaSchedulerDefaultFilters:
      - RetryFilter
      - AggregateInstanceExtraSpecsFilter
      - AvailabilityZoneFilter
      - ComputeFilter
      - ComputeCapabilitiesFilter
      - ImagePropertiesFilter
  IronicImageDownloadSource: http

In both cases, verification can be completed in the ramdisk deploy logs
/var/log/container/ironic/deploy

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


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