Merge "Add support to ironic "direct" deploy interface"

This commit is contained in:
Zuul 2018-04-30 15:18:26 +00:00 committed by Gerrit Code Review
commit 7952d2e53a
2 changed files with 69 additions and 24 deletions

View File

@ -36,11 +36,19 @@ parameters:
default: {} default: {}
description: Parameters specific to the role description: Parameters specific to the role
type: json type: json
IronicConfigureSwiftTempUrlKey:
default: true
description: Whether to configure Swift temporary URLs for use with
the "direct" and "ansible" deploy interfaces.
type: boolean
UndercloudUpgrade: UndercloudUpgrade:
type: boolean type: boolean
description: Flag to indicate undercloud upgrade process is being run. description: Flag to indicate undercloud upgrade process is being run.
default: false default: false
conditions:
configure_swift_temp_url: {equals: [{get_param: IronicConfigureSwiftTempUrlKey}, true]}
resources: resources:
ContainersCommon: ContainersCommon:
@ -103,30 +111,68 @@ outputs:
- path: /var/log/ironic - path: /var/log/ironic
owner: ironic:ironic owner: ironic:ironic
recurse: true recurse: true
docker_config_scripts:
create_swift_temp_url_key.sh:
mode: "0700"
content: |
#!/bin/bash
export OS_PROJECT_DOMAIN_NAME=$(crudini --get /etc/ironic/ironic.conf swift project_domain_name)
export OS_USER_DOMAIN_NAME=$(crudini --get /etc/ironic/ironic.conf swift user_domain_name)
export OS_PROJECT_NAME=$(crudini --get /etc/ironic/ironic.conf swift project_name)
export OS_USERNAME=$(crudini --get /etc/ironic/ironic.conf swift username)
export OS_PASSWORD=$(crudini --get /etc/ironic/ironic.conf swift password)
export OS_AUTH_URL=$(crudini --get /etc/ironic/ironic.conf swift auth_url)
export OS_AUTH_TYPE=password
export OS_IDENTITY_API_VERSION=3
echo "Check if a temporary URL key already exists"
KEY_SET=$(openstack object store account show -c properties -f value 2>/dev/null | tr ',' '\n' | grep Temp-Url-Key || true)
if [ -z $KEY_SET ]; then
echo "Creating a new temporary URL for project $OS_PROJECT_NAME"
SWIFT_TEMP_URL_KEY=$(uuidgen | sha1sum | awk '{print $1}')
openstack object store account set --property "Temp-URL-Key=$SWIFT_TEMP_URL_KEY" || exit 1
fi
docker_config: docker_config:
step_4: step_4:
ironic_conductor: map_merge:
start_order: 80 - if:
image: {get_param: DockerIronicConductorImage} - configure_swift_temp_url
net: host - create_swift_temp_url_key:
privileged: true start_order: 70
restart: always image: &ironic_conductor_image {get_param: DockerIronicConductorImage}
healthcheck: net: host
test: /openstack/healthcheck detach: false
volumes: volumes:
list_concat: list_concat:
- {get_attr: [ContainersCommon, volumes]} - {get_attr: [ContainersCommon, volumes]}
- -
- /var/lib/kolla/config_files/ironic_conductor.json:/var/lib/kolla/config_files/config.json:ro - /var/lib/config-data/puppet-generated/ironic/etc/ironic:/etc/ironic:ro
- /var/lib/config-data/puppet-generated/ironic/:/var/lib/kolla/config_files/src:ro - /var/lib/docker-config-scripts/create_swift_temp_url_key.sh:/create_swift_temp_url_key.sh:ro
- /lib/modules:/lib/modules:ro user: root
- /sys:/sys command: "/usr/bin/bootstrap_host_exec ironic_conductor /create_swift_temp_url_key.sh"
- /dev:/dev - {}
- /run:/run #shared? - ironic_conductor:
- /var/lib/ironic:/var/lib/ironic start_order: 80
- /var/log/containers/ironic:/var/log/ironic image: *ironic_conductor_image
environment: net: host
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS privileged: true
restart: always
healthcheck:
test: /openstack/healthcheck
volumes:
list_concat:
- {get_attr: [ContainersCommon, volumes]}
-
- /var/lib/kolla/config_files/ironic_conductor.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/ironic/:/var/lib/kolla/config_files/src:ro
- /lib/modules:/lib/modules:ro
- /sys:/sys
- /dev:/dev
- /run:/run #shared?
- /var/lib/ironic:/var/lib/ironic
- /var/log/containers/ironic:/var/log/ironic
environment:
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
host_prep_tasks: host_prep_tasks:
- name: create persistent directories - name: create persistent directories
file: file:

View File

@ -45,8 +45,7 @@ parameter_defaults:
IronicEnabledHardwareTypes: ['ipmi', 'redfish', 'idrac', 'ilo'] IronicEnabledHardwareTypes: ['ipmi', 'redfish', 'idrac', 'ilo']
IronicEnabledBootInterfaces: ['pxe', 'ilo-pxe'] IronicEnabledBootInterfaces: ['pxe', 'ilo-pxe']
IronicEnabledConsoleInterfaces: ['ipmitool-socat', 'ilo', 'no-console'] IronicEnabledConsoleInterfaces: ['ipmitool-socat', 'ilo', 'no-console']
# TODO(dtantsur): one day we may want to support the direct deploy too IronicEnabledDeployInterfaces: ['iscsi', 'direct', 'ansible']
IronicEnabledDeployInterfaces: ['iscsi', 'ansible']
IronicEnabledInspectInterfaces: ['inspector', 'no-inspect'] IronicEnabledInspectInterfaces: ['inspector', 'no-inspect']
IronicEnabledManagementInterfaces: ['ipmitool', 'redfish', 'idrac', 'ilo'] IronicEnabledManagementInterfaces: ['ipmitool', 'redfish', 'idrac', 'ilo']
# NOTE(dtantsur): disabling advanced networking as it's not used (or # NOTE(dtantsur): disabling advanced networking as it's not used (or