diff --git a/ci/common/vbmc_setup.yaml b/ci/common/vbmc_setup.yaml new file mode 100644 index 0000000000..444e7c6be7 --- /dev/null +++ b/ci/common/vbmc_setup.yaml @@ -0,0 +1,34 @@ +heat_template_version: rocky + +parameters: + servers: + type: json + +resources: + + ExtraConfig: + type: OS::Heat::SoftwareConfig + properties: + group: script + config: | + #!/bin/bash + cd /etc/yum.repos.d + echo 'nameserver 8.8.8.8' > /etc/resolv.conf + curl https://git.openstack.org/cgit/openstack/tripleo-repos/plain/tripleo_repos/main.py | python - current-tripleo + yum install -y python2-virtualbmc epel-release libvirt-client libvirt-daemon libvirt qemu-kvm-ev + yum install -y qemu-system-x86 # <-- needs epel + yum remove -y epel-release + systemctl start libvirtd + git clone https://git.openstack.org/openstack/ironic /tmp/ironic + mkdir -p /var/log/bmlogs + chmod 777 /var/log/bmlogs + # nohup needed as vbmc seems to keep stdin open + nohup /tmp/ironic/devstack/tools/ironic/scripts/create-node.sh -n node1 -c 1 -m 3072 -d 10 -b br-ex -p 1161 -M 1350 -f qcow2 -a x86_64 -E qemu -e /usr/bin/qemu-system-x86_64 -l /var/log/bmlogs -A 66:0d:1d:d8:0b:a3 > ~zuul/create-node.log 2>&1 < /dev/null & + disown -a + ExtraDeployments: + type: OS::Heat::SoftwareDeploymentGroup + properties: + servers: {get_param: servers} + config: {get_resource: ExtraConfig} + actions: ['CREATE'] # Only do this on CREATE + name: VirtNodeExtraConfig diff --git a/ci/environments/scenario011-multinode-containers.yaml b/ci/environments/scenario011-multinode-containers.yaml new file mode 100644 index 0000000000..ffd5abab01 --- /dev/null +++ b/ci/environments/scenario011-multinode-containers.yaml @@ -0,0 +1,74 @@ +resource_registry: + OS::TripleO::Controller::Net::SoftwareConfig: ../common/net-config-multinode.yaml + OS::TripleO::Compute::Net::SoftwareConfig: ../common/net-config-multinode.yaml + OS::TripleO::Services::NovaIronic: ../../docker/services/nova-ironic.yaml + OS::TripleO::Services::IronicApi: ../../docker/services/ironic-api.yaml + OS::TripleO::Services::IronicConductor: ../../docker/services/ironic-conductor.yaml + OS::TripleO::Services::IronicPxe: ../../docker/services/ironic-pxe.yaml + # These enable Pacemaker + OS::TripleO::Tasks::ControllerPreConfig: OS::Heat::None + OS::TripleO::Tasks::ControllerPostConfig: OS::Heat::None + OS::TripleO::Tasks::ControllerPostPuppetRestart: ../../extraconfig/tasks/post_puppet_pacemaker_restart.yaml + OS::TripleO::Services::OsloMessagingRpc: ../../docker/services/pacemaker/rpc-rabbitmq.yaml + OS::TripleO::Services::OsloMessagingNotify: ../../docker/services/messaging/notify-rabbitmq-shared.yaml + OS::TripleO::Services::HAproxy: ../../docker/services/pacemaker/haproxy.yaml + OS::TripleO::Services::Pacemaker: ../../puppet/services/pacemaker.yaml + OS::TripleO::Services::PacemakerRemote: ../../puppet/services/pacemaker_remote.yaml + OS::TripleO::Services::Clustercheck: ../../docker/services/pacemaker/clustercheck.yaml + OS::TripleO::Services::MySQL: ../../docker/services/pacemaker/database/mysql.yaml + # Some infra instances don't pass the ping test but are otherwise working. + # Since the OVB jobs also test this functionality we can shut it off here. + OS::TripleO::AllNodes::Validation: ../common/all-nodes-validation-disabled.yaml + OS::TripleO::NodeExtraConfigPost: ../common/vbmc_setup.yaml + OS::TripleO::Services::CinderVolume: ../../docker/services/pacemaker/cinder-volume.yaml + +parameter_defaults: + ControllerServices: + - OS::TripleO::Services::Clustercheck + - OS::TripleO::Services::Docker + - OS::TripleO::Services::Keystone + - OS::TripleO::Services::GlanceApi + - OS::TripleO::Services::IronicApi + - OS::TripleO::Services::IronicConductor + - OS::TripleO::Services::IronicPxe + - OS::TripleO::Services::MySQL + - OS::TripleO::Services::MySQLClient + - OS::TripleO::Services::NeutronDhcpAgent + - OS::TripleO::Services::NeutronL3Agent + - OS::TripleO::Services::NeutronMetadataAgent + - OS::TripleO::Services::NeutronServer + - OS::TripleO::Services::NeutronCorePlugin + - OS::TripleO::Services::NeutronOvsAgent + - OS::TripleO::Services::OsloMessagingRpc + - OS::TripleO::Services::OsloMessagingNotify + - OS::TripleO::Services::HAproxy + - OS::TripleO::Services::Memcached + - OS::TripleO::Services::Pacemaker + - OS::TripleO::Services::NovaConductor + - OS::TripleO::Services::NovaApi + - OS::TripleO::Services::NovaIronic + - OS::TripleO::Services::NovaPlacement + - OS::TripleO::Services::NovaMetadata + - OS::TripleO::Services::NovaScheduler + - OS::TripleO::Services::Ntp + - OS::TripleO::Services::Snmp + - OS::TripleO::Services::SwiftProxy + - OS::TripleO::Services::SwiftStorage + - OS::TripleO::Services::SwiftRingBuilder + - OS::TripleO::Services::Timezone + - OS::TripleO::Services::TripleoPackages + - OS::TripleO::Services::TripleoFirewall + - OS::TripleO::Services::Sshd + - OS::TripleO::Services::CinderApi + - OS::TripleO::Services::CinderScheduler + - OS::TripleO::Services::CinderVolume + + ControllerExtraConfig: + nova::compute::libvirt::services::libvirt_virt_type: qemu + nova::compute::libvirt::libvirt_virt_type: qemu + Debug: true + DockerPuppetDebug: True + NotificationDriver: 'noop' + SwiftCeilometerPipelineEnabled: false + IronicCleaningDiskErase: 'metadata' + NovaSchedulerDiscoverHostsInCellsInterval: 15 diff --git a/zuul.d/layout.yaml b/zuul.d/layout.yaml index 598a9c4cec..539d6b2a7f 100644 --- a/zuul.d/layout.yaml +++ b/zuul.d/layout.yaml @@ -176,3 +176,8 @@ - ci/environments/scenario009-multinode.yaml - ci/pingtests/scenario009-multinode.yaml - ^deployed-server/.*$ + - tripleo-ci-centos-7-scenario011-multinode-oooq-container: + files: + - ci/environments/scenario011-multinode-containers.yaml + - ^(docker|puppet)/services/.*ironic.*$ + - ^environments\/.*ironic.*$