f-l: Refresh after upstream reverted cobbler rm 75/31775/1
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Sat, 25 Mar 2017 19:01:48 +0000 (20:01 +0100)
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Sat, 25 Mar 2017 19:06:29 +0000 (20:06 +0100)
Remove our revert patches since upstream applied the same changes.
Update patch context where needed.

JIRA: ARMBAND-237

Change-Id: I6007484ad23f0fceabd8f8ec7625e598aee280c7
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
patches/fuel-library/0000-Revert-Fix-building-ironic-bootstrap.patch [deleted file]
patches/fuel-library/0000-Revert-Fix-task-dependencies-for-provision-and-delet.patch [deleted file]
patches/fuel-library/0002-Revert-Fix-deletion-graph-no-cobbler-mode.patch [deleted file]
patches/fuel-library/0003-Revert-Remove-cobbler-and-use-dhcpd-named-and-tftp.patch [deleted file]
patches/fuel-library/multiarch-fuel/0003-build_image.pp-Extract-cluster_arch-from-URI.patch

diff --git a/patches/fuel-library/0000-Revert-Fix-building-ironic-bootstrap.patch b/patches/fuel-library/0000-Revert-Fix-building-ironic-bootstrap.patch
deleted file mode 100644 (file)
index 652bb27..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Enea AB and others.
-:
-: All rights reserved. This program and the accompanying materials
-: are made available under the terms of the Apache License, Version 2.0
-: which accompanies this distribution, and is available at
-: http://www.apache.org/licenses/LICENSE-2.0
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Date: Thu, 23 Mar 2017 15:57:02 +0100
-Subject: [PATCH] Revert "Fix building ironic bootstrap"
-
-This reverts commit c90b8a2fab0b8deab06d75b93394f32c60963be7.
----
- .../manifests/provision/build_image.pp             | 34 +++++++++++-----------
- 1 file changed, 17 insertions(+), 17 deletions(-)
-
-diff --git a/deployment/puppet/osnailyfacter/manifests/provision/build_image.pp b/deployment/puppet/osnailyfacter/manifests/provision/build_image.pp
-index b40f3e2..02fa0f0 100644
---- a/deployment/puppet/osnailyfacter/manifests/provision/build_image.pp
-+++ b/deployment/puppet/osnailyfacter/manifests/provision/build_image.pp
-@@ -3,9 +3,7 @@ class osnailyfacter::provision::build_image {
-   $data_file = "/var/lib/fuel/configs/${::cluster_id}/provision.yaml"
-   $data = loadyaml($data_file)
-
--  if $data['ironic']['enabled'] == true {
--    # TODO(vsaienko): Use the same system packages for fuel image and ironic bootstrap, but exclude
--    # not needed for ironic like nailgun-agent, etc...
-+  if $data['ironic']['enabled'] == 'true' {
-     $ironic_packages = [
-       'openssh-server',
-       'ntp',
-@@ -17,7 +15,9 @@ class osnailyfacter::provision::build_image {
-       'squashfs-tools',
-       'linux-firmware',
-       'msmtp-mta',
-+      'hpsa-dkms',
-       'i40e-dkms',
-+      'linux-firmware-nonfree',
-       'xz-utils',
-       'linux-headers-generic',
-     ]
-@@ -29,25 +29,25 @@ class osnailyfacter::provision::build_image {
-     $out_dir = "/var/www/nailgun/bootstrap/ironic/${::cluster_id}/"
-     $out_params = "--output-dir ${out_dir}"
-
--    $ironic_extra_params = "--extra-dir /usr/share/ironic-fa-bootstrap-configs/ --no-compress --no-default-extra-dirs --no-default-packages"
--    $ironic_log_params = '--log-file /var/log/fuel-ironic-bootstrap-image-build.log'
-+    $extra_params = "--extra-dir /usr/share/ironic-fa-bootstrap-configs/ --no-compress --no-default-extra-dirs --no-default-packages"
-+    $log_params = '--log-file /var/log/fuel-ironic-bootstrap-image-build.log'
-
-     exec { 'generate_image_with_ironic':
--      command => "fuel-bootstrap build ${package_list} ${ssh_params} ${out_params} ${ironic_extra_params} ${ironic_log_params}",
-+      command => "fuel-bootstrap build ${package_list} ${ssh_params} ${out_params} ${extra_params} ${log_params}",
-       path    => ['/bin', '/usr/bin'],
--      timeout => 1800,
--      unless  => "test -e /var/www/nailgun/bootstrap/ironic/${cluster_id}/vmlinuz",
-+      unless  => "test -e /var/www/nailgun/bootstrap/ironic/${::cluster_id}/vmlinuz",
-     }
-
--  }
--
--  $build_dir = '--image_build_dir /var/lib/fuel/ibp'
--  $log_params = "--log-file /var/log/fuel-agent-env-${cluster_id}.log"
--  $extra_params = '--data_driver nailgun_build_image'
-+  } else {
-+    $build_dir = '--image_build_dir /var/lib/fuel/ibp'
-+    $log_params = "--log-file /var/log/fuel-agent-env-${::cluster_id}.log"
-+    $extra_params = '--data_driver nailgun_build_image'
-
--  exec { 'generate_image_with_fuel':
--    command => "fa_build_image ${build_dir} ${log_params} ${extra_params} --input_data_file ${data_file}",
--    path    => ['/bin', '/usr/bin'],
--    timeout => 1800,
-+    exec { 'generate_image_with_fuel':
-+      command => "fa_build_image ${build_dir} ${log_params} ${extra_params} --input_data_file ${data_file}",
-+      path    => ['/bin', '/usr/bin'],
-+      timeout => 1800,
-+      unless  => "test -e /var/www/nailgun/bootstrap/ironic/${::cluster_id}/vmlinuz",
-+    }
-   }
- }
diff --git a/patches/fuel-library/0000-Revert-Fix-task-dependencies-for-provision-and-delet.patch b/patches/fuel-library/0000-Revert-Fix-task-dependencies-for-provision-and-delet.patch
deleted file mode 100644 (file)
index d692a73..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Enea AB and others.
-:
-: All rights reserved. This program and the accompanying materials
-: are made available under the terms of the Apache License, Version 2.0
-: which accompanies this distribution, and is available at
-: http://www.apache.org/licenses/LICENSE-2.0
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Date: Thu, 23 Mar 2017 15:54:11 +0100
-Subject: [PATCH] Revert "Fix task dependencies for provision and deletion
- graphs"
-
-This reverts commit 399611521195d75225a4cbf5613739bec5798fd0.
----
- graphs/deletion/tasks.yaml  | 4 +---
- graphs/provision/tasks.yaml | 6 ++----
- 2 files changed, 3 insertions(+), 7 deletions(-)
-
-diff --git a/graphs/deletion/tasks.yaml b/graphs/deletion/tasks.yaml
-index a725dda..2fd0188 100644
---- a/graphs/deletion/tasks.yaml
-+++ b/graphs/deletion/tasks.yaml
-@@ -35,10 +35,8 @@
-   type: reboot
-   version: 2.1.0
-   role: ['/.*/']
-+  requires: [reconfigure_dhcpd]
-   required_for: [node_erase]
--  cross-depends:
--    - name: reconfigure_dhcpd
--      role: master
-   parameters:
-     timeout: 300
-
-diff --git a/graphs/provision/tasks.yaml b/graphs/provision/tasks.yaml
-index 8a5c45e..1494176 100644
---- a/graphs/provision/tasks.yaml
-+++ b/graphs/provision/tasks.yaml
-@@ -60,10 +60,8 @@
-   type: upload_file
-   version: 2.1.0
-   role: ['/.*/']
-+  requires: [provision_master]
-   required_for: [system_provision]
--  cross-depends:
--    - name: provision_master
--      role: master
-   parameters:
-     path: /tmp/provision.json
-     timeout: 180
-@@ -74,7 +72,7 @@
-   type: shell
-   version: 2.1.0
-   role: ['/.*/']
--  requires: [upload_provision_info]
-+  requires: [provision_master, upload_provision_info]
-   required_for: [node_reboot]
-   cross-depends:
-     - name: build_deploy_image
diff --git a/patches/fuel-library/0002-Revert-Fix-deletion-graph-no-cobbler-mode.patch b/patches/fuel-library/0002-Revert-Fix-deletion-graph-no-cobbler-mode.patch
deleted file mode 100644 (file)
index 1980448..0000000
+++ /dev/null
@@ -1,509 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Enea AB and others.
-:
-: All rights reserved. This program and the accompanying materials
-: are made available under the terms of the Apache License, Version 2.0
-: which accompanies this distribution, and is available at
-: http://www.apache.org/licenses/LICENSE-2.0
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Date: Tue, 21 Mar 2017 18:01:23 +0100
-Subject: [PATCH 1/2] Revert "Fix deletion graph (no cobbler mode)"
-
-This reverts commit 83ae1d3d617e5043309d72802cd186c22405738a.
----
- deployment/puppet/fuel/examples/hiera.pp           |  1 +
- deployment/puppet/fuel/examples/provision.pp       | 97 +++++++++++-----------
- deployment/puppet/provision/manifests/dhcpd.pp     | 18 ++--
- deployment/puppet/provision/manifests/named.pp     | 22 ++---
- deployment/puppet/provision/manifests/params.pp    | 34 ++++----
- deployment/puppet/provision/manifests/tftp.pp      | 29 ++++---
- .../puppet/provision/templates/xinetd.conf.erb     |  4 +-
- graphs/deletion/tasks.yaml                         | 39 ++++-----
- graphs/provision/tasks.yaml                        |  2 +-
- 9 files changed, 119 insertions(+), 127 deletions(-)
-
-diff --git a/deployment/puppet/fuel/examples/hiera.pp b/deployment/puppet/fuel/examples/hiera.pp
-index 916cd6f..58bae50 100644
---- a/deployment/puppet/fuel/examples/hiera.pp
-+++ b/deployment/puppet/fuel/examples/hiera.pp
-@@ -6,6 +6,7 @@ $data                = [
-   'nodes',
-   'networks',
-   'astute',
-+  'known_hosts',
-   'provision',
-   'common',
- ]
-diff --git a/deployment/puppet/fuel/examples/provision.pp b/deployment/puppet/fuel/examples/provision.pp
-index f07f700..9b2aa26 100644
---- a/deployment/puppet/fuel/examples/provision.pp
-+++ b/deployment/puppet/fuel/examples/provision.pp
-@@ -2,20 +2,19 @@ notice('MODULAR: provision.pp')
-
- Exec {path => '/usr/bin:/bin:/usr/sbin:/sbin'}
-
--$fuel_settings   = parseyaml($astute_settings_yaml)
--
--$mco_user        = $::fuel_settings['mcollective']['user']
--$mco_pass        = $::fuel_settings['mcollective']['password']
--$dns_address     = $::fuel_settings['ADMIN_NETWORK']['ipaddress']
--$domain_name     = $::fuel_settings['DNS_DOMAIN']
--$dns_search      = $::fuel_settings['DNS_SEARCH']
--$forwarders      = split($::fuel_settings['DNS_UPSTREAM'], ',')
--$start_address   = $::fuel_settings['ADMIN_NETWORK']['dhcp_pool_start']
--$end_address     = $::fuel_settings['ADMIN_NETWORK']['dhcp_pool_end']
--$network_mask    = $::fuel_settings['ADMIN_NETWORK']['netmask']
--$network_address = ipcalc_network_by_address_netmask($start_address, $network_mask)
--$dhcp_gateway    = $::fuel_settings['ADMIN_NETWORK']['dhcp_gateway']
--
-+$fuel_settings               = parseyaml($astute_settings_yaml)
-+
-+$mco_user                    = $::fuel_settings['mcollective']['user']
-+$mco_pass                    = $::fuel_settings['mcollective']['password']
-+$dns_address                 = $::fuel_settings['ADMIN_NETWORK']['ipaddress']
-+$domain_name                 = $::fuel_settings['DNS_DOMAIN']
-+$dns_search                  = $::fuel_settings['DNS_SEARCH']
-+$forwarders                  = split($::fuel_settings['DNS_UPSTREAM'], ',')
-+$start_address               = $::fuel_settings['ADMIN_NETWORK']['dhcp_pool_start']
-+$end_address                 = $::fuel_settings['ADMIN_NETWORK']['dhcp_pool_end']
-+$network_mask                = $::fuel_settings['ADMIN_NETWORK']['netmask']
-+$network_address             = ipcalc_network_by_address_netmask($start_address, $network_mask)
-+$dhcp_gateway                = $::fuel_settings['ADMIN_NETWORK']['dhcp_gateway']
- if $dhcp_gateway {
-   $router = $dhcp_gateway
- }
-@@ -23,20 +22,22 @@ else {
-   $router = $::fuel_settings['ADMIN_NETWORK']['ipaddress']
- }
-
--$next_server           = $::fuel_settings['ADMIN_NETWORK']['ipaddress']
--$nailgun_api_url       = "http://${::fuel_settings['ADMIN_NETWORK']['ipaddress']}:8000/api"
--$ethdevice_timeout     = hiera('ethdevice_timeout', '120')
--$ddns_key              = hiera('ddns_key', 'VyCWe0kutrawqQ2WEFKkAw=')
--$ddns_key_algorithm    = hiera('ddns_key_algorithm', 'HMAC-MD5')
--$ddns_key_name         = hiera('ddns_key_name', 'DHCP_UPDATE')
--$bootstrap_menu_label  = hiera('bootstrap_menu_label', 'bootstrap')
-+$next_server                 = $::fuel_settings['ADMIN_NETWORK']['ipaddress']
-+
-+$nailgun_api_url             = "http://${::fuel_settings['ADMIN_NETWORK']['ipaddress']}:8000/api"
-+$ethdevice_timeout           = hiera('ethdevice_timeout', '120')
-+
-+$ddns_key = hiera('ddns_key', 'VyCWe0kutrawqQ2WEFKkAw=')
-+$ddns_key_algorithm = hiera('ddns_key_algorithm', 'HMAC-MD5')
-+$ddns_key_name = hiera('ddns_key_name', 'DHCP_UPDATE')
-+
-+$bootstrap_menu_label = hiera('bootstrap_menu_label', 'bootstrap')
- $bootstrap_kernel_path = hiera('bootstrap_kernel_path', '/images/vmlinuz')
- $bootstrap_initrd_path = hiera('bootstrap_initrd_path', '/images/initrd.img')
-
--$bootstrap_settings    = pick($::fuel_settings['BOOTSTRAP'], {})
--$bootstrap_path        = pick($bootstrap_settings['path'], '/var/www/nailgun/bootstraps/active_bootstrap')
--$metadata_yaml         = file("${bootstrap_path}/metadata.yaml", '/dev/null')
--
-+$bootstrap_settings = pick($::fuel_settings['BOOTSTRAP'], {})
-+$bootstrap_path = pick($bootstrap_settings['path'], '/var/www/nailgun/bootstraps/active_bootstrap')
-+$metadata_yaml = file("${bootstrap_path}/metadata.yaml", '/dev/null')
- if empty($metadata_yaml) {
-   $bootstrap_meta = {}
- } else {
-@@ -50,44 +51,44 @@ $known_hosts = get_merged_network_metadata_from_yamls()
- $chain32_files = tftp_files("/var/lib/tftpboot/pxelinux.cfg", $known_hosts)
-
- class { "::provision::dhcpd" :
--  network_address    => ipcalc_network_by_address_netmask($start_address, $network_mask),
--  network_mask       => $network_mask,
--  broadcast_address  => $broadcast_address,
--  start_address      => $start_address,
--  end_address        => $end_address,
--  router             => $router,
--  next_server        => $next_server,
--  dns_address        => $dns_address,
--  domain_name        => $domain_name,
--  ddns_key           => $ddns_key,
-+  network_address => ipcalc_network_by_address_netmask($start_address, $network_mask),
-+  network_mask => $network_mask,
-+  broadcast_address => $broadcast_address,
-+  start_address => $start_address,
-+  end_address => $end_address,
-+  router => $router,
-+  next_server => $next_server,
-+  dns_address => $dns_address,
-+  domain_name => $domain_name,
-+  ddns_key => $ddns_key,
-   ddns_key_algorithm => $ddns_key_algorithm,
--  ddns_key_name      => $ddns_key_name,
--  known_hosts        => $known_hosts,
-+  ddns_key_name => $ddns_key_name,
-+  known_hosts => $known_hosts,
- }
-
- class { "::provision::tftp" :
--  bootstrap_menu_label    => $bootstrap_menu_label,
--  bootstrap_kernel_path   => $bootstrap_kernel_path,
--  bootstrap_initrd_path   => $bootstrap_initrd_path,
-+  bootstrap_menu_label => $bootstrap_menu_label,
-+  bootstrap_kernel_path => $bootstrap_kernel_path,
-+  bootstrap_initrd_path => $bootstrap_initrd_path,
-   bootstrap_kernel_params => $bootstrap_kernel_params,
--  chain32_files           => $chain32_files,
-+  chain32_files => $chain32_files,
- } ->
-
--file { "/var/lib/tftpboot/${bootstrap_kernel_path}" :
-+file { "/var/lib/tftpboot${bootstrap_kernel_path}" :
-   source => "${bootstrap_path}/vmlinuz",
- } ->
-
--file { "/var/lib/tftpboot/${bootstrap_initrd_path}" :
-+file { "/var/lib/tftpboot${bootstrap_initrd_path}" :
-   source => "${bootstrap_path}/initrd.img"
- }
-
- class { "::provision::named" :
--  domain_name        => $domain_name,
--  dns_address        => $dns_address,
--  forwarders         => $forwarders,
--  ddns_key           => $ddns_key,
-+  domain_name => $domain_name,
-+  dns_address => $dns_address,
-+  forwarders => $forwarders,
-+  ddns_key => $ddns_key,
-   ddns_key_algorithm => $ddns_key_algorithm,
--  ddns_key_name      => $ddns_key_name,
-+  ddns_key_name => $ddns_key_name,
- } ->
-
- file { '/etc/resolv.conf':
-diff --git a/deployment/puppet/provision/manifests/dhcpd.pp b/deployment/puppet/provision/manifests/dhcpd.pp
-index f0e970a..6837532 100644
---- a/deployment/puppet/provision/manifests/dhcpd.pp
-+++ b/deployment/puppet/provision/manifests/dhcpd.pp
-@@ -14,10 +14,9 @@ class provision::dhcpd (
-   $known_hosts        = [],
- ) inherits provision::params {
-
--  $package_name = $::provision::params::dhcpd_package
--  $service_name = $::provision::params::dhcpd_service
--
--  package { $package_name : }
-+  package { "dhcpd" :
-+    name => $::provision::params::dhcpd_package,
-+  }
-
-   file { $::provision::params::dhcpd_conf :
-     ensure  => present,
-@@ -25,8 +24,8 @@ class provision::dhcpd (
-     owner   => 'dhcpd',
-     group   => 'dhcpd',
-     mode    => '0640',
--    require => Package[$package_name],
--    notify  => Service[$service_name],
-+    require => Package["dhcpd"],
-+    notify  => Service["dhcpd"],
-   }
-
-   file { $::provision::params::dhcpd_conf_d :
-@@ -34,7 +33,7 @@ class provision::dhcpd (
-     owner  => 'root',
-     group  => 'root',
-     mode   => '0755',
--    require => Package[$package_name],
-+    require => Package["dhcpd"],
-   }
-
-   # It is just a file that could be modified by other modules
-@@ -43,12 +42,13 @@ class provision::dhcpd (
-     require => File[$::provision::params::dhcpd_conf_d],
-   }
-
--  service { $service_name :
-+  service { "dhcpd" :
-+    name => $::provision::params::dhcpd_service,
-     ensure  => running,
-     enable  => true,
-     hasrestart => false,
-     hasstatus => false,
--    require => Package[$package_name],
-+    require => Package["dhcpd"],
-   }
-
- }
-diff --git a/deployment/puppet/provision/manifests/named.pp b/deployment/puppet/provision/manifests/named.pp
-index 6609fee..ee940c9 100644
---- a/deployment/puppet/provision/manifests/named.pp
-+++ b/deployment/puppet/provision/manifests/named.pp
-@@ -7,17 +7,16 @@ class provision::named (
-   $ddns_key_name      = $::provision::params::ddns_key_name,
- ) inherits provision::params {
-
--  $package_name = $::provision::params::named_package
--  $service_name = $::provision::params::named_service
--
--  package { $package_name : }
-+  package { "named" :
-+    name => $::provision::params::named_package,
-+  }
-
-   file { "/var/named" :
-     ensure => directory,
-     owner => 'named',
-     group => 'named',
-     mode => '0750',
--    require => Package[$package_name],
-+    require => Package["named"],
-   }
-
-   file { $::provision::params::named_conf :
-@@ -26,8 +25,8 @@ class provision::named (
-     owner   => 'named',
-     group   => 'named',
-     mode    => '0640',
--    require => Package[$package_name],
--    notify  => Service[$service_name],
-+    require => Package["named"],
-+    notify  => Service["named"],
-   }
-
-   file { "/var/named/${domain_name}" :
-@@ -36,16 +35,17 @@ class provision::named (
-     owner   => 'named',
-     group   => 'named',
-     mode    => '0644',
--    require => Package[$package_name],
--    notify  => Service[$service_name],
-+    require => Package["named"],
-+    notify  => Service["named"],
-   }
-
--  service { $service_name :
-+  service { "named" :
-+    name    => $::provision::params::named_service,
-     ensure  => running,
-     enable  => true,
-     hasrestart => false,
-     hasstatus => false,
--    require => Package[$package_name],
-+    require => Package["named"],
-   }
-
- }
-diff --git a/deployment/puppet/provision/manifests/params.pp b/deployment/puppet/provision/manifests/params.pp
-index 1508edd..2bcae12 100644
---- a/deployment/puppet/provision/manifests/params.pp
-+++ b/deployment/puppet/provision/manifests/params.pp
-@@ -14,23 +14,23 @@ class provision::params {
-       fail("Unsupported osfamily ${::osfamily}")
-     }
-   }
--  $network_address         = "10.20.0.0"
--  $network_mask            = "255.255.255.0"
--  $broadcast_address       = "10.20.0.255"
--  $start_address           = "10.20.0.3"
--  $end_address             = "10.20.0.254"
--  $router                  = "10.20.0.1"
--  $next_server             = "10.20.0.2"
--  $dns_address             = "10.20.0.2"
--  $forwarders              = ["8.8.8.8", "8.8.4.4"]
--  $domain_name             = "domain.tld"
--  $ddns_key                = "VyCWe0kutrawqQ2WEFKkAw=="
--  $ddns_key_algorithm      = "HMAC-MD5"
--  $ddns_key_name           = "DHCP_UPDATE"
--  $bootstrap_kernel_path   = "/images/ubuntu_bootstrap/vmlinuz"
--  $bootstrap_initrd_path   = "/images/ubuntu_bootstrap/initrd.img"
-+  $network_address = "10.20.0.0"
-+  $network_mask = "255.255.255.0"
-+  $broadcast_address = "10.20.0.255"
-+  $start_address = "10.20.0.3"
-+  $end_address = "10.20.0.254"
-+  $router = "10.20.0.1"
-+  $next_server = "10.20.0.2"
-+  $dns_address = "10.20.0.2"
-+  $forwarders = ["8.8.8.8", "8.8.4.4"]
-+  $domain_name = "domain.tld"
-+  $ddns_key = "VyCWe0kutrawqQ2WEFKkAw=="
-+  $ddns_key_algorithm = "HMAC-MD5"
-+  $ddns_key_name = "DHCP_UPDATE"
-+
-+  $bootstrap_kernel_path = "/images/ubuntu_bootstrap/vmlinuz"
-+  $bootstrap_initrd_path = "/images/ubuntu_bootstrap/initrd.img"
-   $bootstrap_kernel_params = "ksdevice=bootif lang= console=ttyS0,9600 console=tty0 toram locale=en_US text boot=live biosdevname=0 components ip=frommedia ethdevice-timeout=120 net.ifnames=1 panic=60"
--  $bootstrap_menu_label    = "ubuntu_bootstrap"
--  $tftp_root               = "/var/lib/tftpboot"
-+  $bootstrap_menu_label = "ubuntu_bootstrap"
-
- }
-diff --git a/deployment/puppet/provision/manifests/tftp.pp b/deployment/puppet/provision/manifests/tftp.pp
-index 39c7633..f05bd16 100644
---- a/deployment/puppet/provision/manifests/tftp.pp
-+++ b/deployment/puppet/provision/manifests/tftp.pp
-@@ -1,10 +1,9 @@
- class provision::tftp (
-   $bootstrap_kernel_params = $::provision::params::bootstrap_kernel_params,
--  $bootstrap_kernel_path   = $::provision::params::bootstrap_kernel_path,
--  $bootstrap_initrd_path   = $::provision::params::bootstrap_initrd_path,
--  $bootstrap_menu_label    = $::provision::params::bootstrap_menu_label,
--  $tftp_root               = $::provision::params::tftp_root,
--  $chain32_files           = [],
-+  $bootstrap_kernel_path = $::provision::params::bootstrap_kernel_path,
-+  $bootstrap_initrd_path = $::provision::params::bootstrap_initrd_path,
-+  $bootstrap_menu_label = $::provision::params::bootstrap_menu_label,
-+  $chain32_files = [],
- ) inherits provision::params {
-
-   Exec {path => '/usr/bin:/bin:/usr/sbin:/sbin'}
-@@ -46,7 +45,7 @@ class provision::tftp (
-
-   ensure_packages($tftp_packages)
-
--  file { ["${tftp_root}/images", "${tftp_root}/pxelinux.cfg"] :
-+  file { ["/var/lib/tftpboot/images", "/var/lib/tftpboot/pxelinux.cfg"] :
-     ensure => directory,
-     owner => 'root',
-     group => 'root',
-@@ -54,35 +53,35 @@ class provision::tftp (
-     require => Package[$tftp_packages],
-   }
-
--  file { "${tftp_root}/pxelinux.cfg/default" :
-+  file { "/var/lib/tftpboot/pxelinux.cfg/default" :
-     ensure => present,
-     content => template("provision/tftp.default.erb"),
-     owner => 'root',
-     group => 'root',
-     mode => '0644',
--    require => File["${tftp_root}/pxelinux.cfg"],
-+    require => File["/var/lib/tftpboot/pxelinux.cfg"],
-   }
-
--  file { "${tftp_root}/chain.c32":
-+  file { '/var/lib/tftpboot/chain.c32':
-     source => '/usr/share/syslinux/chain.c32',
-     require => Package[$tftp_packages],
-   }
-
--  file { "${tftp_root}/pxelinux.0":
-+  file { '/var/lib/tftpboot/pxelinux.0':
-     source => '/usr/share/syslinux/pxelinux.0',
-     require => Package[$tftp_packages],
-   }
-
--  file { "${tftp_root}/menu.c32":
-+  file { '/var/lib/tftpboot/menu.c32':
-     source => '/usr/share/syslinux/menu.c32',
-     require => Package[$tftp_packages],
-   }
-
-   # TODO Create custom type that will remove all 01-* files that
-   # are not in the $chain32_files list
--  exec { "remove ${tftp_root}/pxelinux.cfg/01-* files" :
--    command => "find ${tftp_root}/pxelinux.cfg -type f -name '01-*' -delete",
--    require => File["${tftp_root}/pxelinux.cfg"],
-+  exec { 'remove /var/lib/tftpboot/pxelinux.cfg/01-* files' :
-+    command => "find /var/lib/tftpboot/pxelinux.cfg -type f -name '01-*' -delete",
-+    require => File["/var/lib/tftpboot/pxelinux.cfg"],
-   } ->
-
-   file { $chain32_files :
-@@ -91,6 +90,6 @@ class provision::tftp (
-     owner => 'root',
-     group => 'root',
-     mode => '0644',
--    require => File["${tftp_root}/pxelinux.cfg"],
-+    require => File["/var/lib/tftpboot/pxelinux.cfg"],
-   }
- }
-diff --git a/deployment/puppet/provision/templates/xinetd.conf.erb b/deployment/puppet/provision/templates/xinetd.conf.erb
-index 1ff50ba..0a90f33 100644
---- a/deployment/puppet/provision/templates/xinetd.conf.erb
-+++ b/deployment/puppet/provision/templates/xinetd.conf.erb
-@@ -1,10 +1,10 @@
- defaults
- {
--    log_type = SYSLOG daemon info
-+    log_type = SYSLOG daemon info
-     log_on_failure = HOST
-     log_on_success = PID HOST DURATION EXIT
-
--    cps = 50 10
-+    cps       = 50 10
-     instances = 50
-     per_source = 10
-
-diff --git a/graphs/deletion/tasks.yaml b/graphs/deletion/tasks.yaml
-index 2fd0188..a2c678c 100644
---- a/graphs/deletion/tasks.yaml
-+++ b/graphs/deletion/tasks.yaml
-@@ -7,44 +7,35 @@
-   type: stage
-   requires: [deletion_start]
-
--- id: upload_provision_info_master
--  type: upload_file
-+- id: cobbler_enable_netboot
-+  type: master_shell
-   version: 2.1.0
--  role: ['master']
-+  role: ['/.*/']
-   requires: [deletion_start]
--  required_for: [reconfigure_dhcpd]
-+  required_for: [move_to_bootstrap]
-   parameters:
--    path: /var/lib/fuel/configs/{CLUSTER_ID}/provision.yaml
-+    cmd:
-+      yaql_exp: 'concat("sh /etc/puppet/modules/osnailyfacter/modular/provision/netboot enable ", $.provision.name)'
-     timeout: 180
--    data:
--      #TODO: Replace dict($.items) to $ when LP1666913 is fixed
--      yaql_exp: "($.provision.set('packages', $.provision.packages) + $.repo_setup + dict('output' => '/var/www/nailgun/targetimages') + dict($.items())).toYaml()"
-
--- id: reconfigure_dhcpd
--  type: puppet
--  version: 2.1.0
--  role: ['master']
--  requires: [upload_provision_info_master]
--  required_for: [node_reboot]
--  parameters:
--    puppet_manifest: /etc/puppet/modules/fuel/examples/provision.pp
--    puppet_modules: /etc/puppet/modules
--    timeout: 3600
--
--- id: node_reboot
--  type: reboot
-+- id: move_to_bootstrap
-+  type: move_to_bootstrap
-   version: 2.1.0
-   role: ['/.*/']
--  requires: [reconfigure_dhcpd]
-+  requires: [cobbler_enable_netboot]
-   required_for: [node_erase]
-   parameters:
--    timeout: 300
-+    slave_name:
-+      yaql_exp: '$.provision.name'
-+    provisioning_info:
-+      yaql_exp: '$.provision'
-+    timeout: 180
-
- - id: node_erase
-   type: erase_node
-   version: 2.1.0
-   role: ['/.*/']
--  requires: [node_reboot]
-+  requires: [move_to_bootstrap]
-   required_for: [deletion_end]
-   parameters:
-     timeout: 180
-diff --git a/graphs/provision/tasks.yaml b/graphs/provision/tasks.yaml
-index 1494176..3a21c87 100644
---- a/graphs/provision/tasks.yaml
-+++ b/graphs/provision/tasks.yaml
-@@ -85,7 +85,7 @@
-   type: reboot
-   version: 2.1.0
-   role: ['/.*/']
--  requires: [system_provision]
-+  requires: [cobbler_disable_netboot]
-   required_for: [set_status_provisioned]
-   parameters:
-     timeout: 900
diff --git a/patches/fuel-library/0003-Revert-Remove-cobbler-and-use-dhcpd-named-and-tftp.patch b/patches/fuel-library/0003-Revert-Remove-cobbler-and-use-dhcpd-named-and-tftp.patch
deleted file mode 100644 (file)
index d5ed03a..0000000
+++ /dev/null
@@ -1,1629 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Enea AB and others.
-:
-: All rights reserved. This program and the accompanying materials
-: are made available under the terms of the Apache License, Version 2.0
-: which accompanies this distribution, and is available at
-: http://www.apache.org/licenses/LICENSE-2.0
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Date: Tue, 21 Mar 2017 18:01:31 +0100
-Subject: [PATCH 2/2] Revert "Remove cobbler and use dhcpd named and tftp"
-
-This reverts commit 0b5ab4ff80414adad996012b9152de0719888274.
----
- deployment/puppet/fuel/examples/cobbler.pp         |  79 ++++++++++++-
- deployment/puppet/fuel/examples/deploy.sh          |   2 +-
- deployment/puppet/fuel/examples/dhcp-ranges.pp     |  26 +++--
- deployment/puppet/fuel/examples/hiera.pp           |   9 --
- deployment/puppet/fuel/examples/host.pp            |   2 +-
- deployment/puppet/fuel/examples/provision.pp       |  99 ----------------
- .../parser/functions/create_dnsmasq_dhcp_ranges.rb |  47 ++++++++
- .../lib/puppet/parser/functions/get_dhcp_ranges.rb |  46 --------
- .../get_merged_network_metadata_from_yamls.rb      |  20 ----
- deployment/puppet/fuel/manifests/cobbler.pp        | 130 +++++++++++++++++++++
- .../puppet/fuel/manifests/dnsmasq/dhcp_range.pp    |  29 +++++
- deployment/puppet/fuel/manifests/iptables.pp       |   3 +-
- .../functions/create_dnsmasq_dhcp_ranges_spec.rb   |  70 +++++++++++
- deployment/puppet/fuel/templates/dhclient.conf.erb |   2 +-
- deployment/puppet/fuel/templates/dhcpd_ranges.erb  |  21 ----
- .../puppet/fuel/templates/dnsmasq.dhcp-range.erb   |   7 ++
- deployment/puppet/fuel/templates/provision.yaml    |   8 --
- deployment/puppet/fuel/templates/resolv.conf.erb   |   4 +-
- .../manifests/provision/build_image.pp             |  22 ++--
- .../lib/puppet/parser/functions/tftp_files.rb      |  22 ----
- deployment/puppet/provision/manifests/dhcpd.pp     |  54 ---------
- deployment/puppet/provision/manifests/iptables.pp  |  28 -----
- deployment/puppet/provision/manifests/named.pp     |  51 --------
- deployment/puppet/provision/manifests/params.pp    |  36 ------
- deployment/puppet/provision/manifests/tftp.pp      |  95 ---------------
- .../puppet/provision/templates/dhcpd.conf.erb      |  69 -----------
- .../puppet/provision/templates/named.conf.erb      |  32 -----
- .../puppet/provision/templates/tftp.chain32.erb    |   8 --
- .../puppet/provision/templates/tftp.default.erb    |  19 ---
- .../puppet/provision/templates/tftp.xinetd.erb     |  13 ---
- .../puppet/provision/templates/xinetd.conf.erb     |  17 ---
- deployment/puppet/provision/templates/zone.erb     |  11 --
- graphs/provision/tasks.yaml                        |  43 ++++---
- tests/noop/spec/hosts/master/cobbler_spec.rb       |  79 +++++++++++++
- tests/noop/spec/hosts/master/dhcp-ranges_spec.rb   |  17 +++
- tests/noop/spec/hosts/master/host_spec.rb          |   2 +
- 36 files changed, 527 insertions(+), 695 deletions(-)
- mode change 120000 => 100644 deployment/puppet/fuel/examples/cobbler.pp
- delete mode 100644 deployment/puppet/fuel/examples/provision.pp
- create mode 100644 deployment/puppet/fuel/lib/puppet/parser/functions/create_dnsmasq_dhcp_ranges.rb
- delete mode 100644 deployment/puppet/fuel/lib/puppet/parser/functions/get_dhcp_ranges.rb
- delete mode 100644 deployment/puppet/fuel/lib/puppet/parser/functions/get_merged_network_metadata_from_yamls.rb
- create mode 100644 deployment/puppet/fuel/manifests/cobbler.pp
- create mode 100644 deployment/puppet/fuel/manifests/dnsmasq/dhcp_range.pp
- create mode 100644 deployment/puppet/fuel/spec/functions/create_dnsmasq_dhcp_ranges_spec.rb
- delete mode 100644 deployment/puppet/fuel/templates/dhcpd_ranges.erb
- create mode 100644 deployment/puppet/fuel/templates/dnsmasq.dhcp-range.erb
- delete mode 100644 deployment/puppet/fuel/templates/provision.yaml
- delete mode 100644 deployment/puppet/provision/lib/puppet/parser/functions/tftp_files.rb
- delete mode 100644 deployment/puppet/provision/manifests/dhcpd.pp
- delete mode 100644 deployment/puppet/provision/manifests/iptables.pp
- delete mode 100644 deployment/puppet/provision/manifests/named.pp
- delete mode 100644 deployment/puppet/provision/manifests/params.pp
- delete mode 100644 deployment/puppet/provision/manifests/tftp.pp
- delete mode 100644 deployment/puppet/provision/templates/dhcpd.conf.erb
- delete mode 100644 deployment/puppet/provision/templates/named.conf.erb
- delete mode 100644 deployment/puppet/provision/templates/tftp.chain32.erb
- delete mode 100644 deployment/puppet/provision/templates/tftp.default.erb
- delete mode 100644 deployment/puppet/provision/templates/tftp.xinetd.erb
- delete mode 100644 deployment/puppet/provision/templates/xinetd.conf.erb
- delete mode 100644 deployment/puppet/provision/templates/zone.erb
- create mode 100644 tests/noop/spec/hosts/master/cobbler_spec.rb
- create mode 100644 tests/noop/spec/hosts/master/dhcp-ranges_spec.rb
-
-diff --git a/deployment/puppet/fuel/examples/cobbler.pp b/deployment/puppet/fuel/examples/cobbler.pp
-deleted file mode 120000
-index c48bab0..0000000
---- a/deployment/puppet/fuel/examples/cobbler.pp
-+++ /dev/null
-@@ -1 +0,0 @@
--provision.pp
-\ No newline at end of file
-diff --git a/deployment/puppet/fuel/examples/cobbler.pp b/deployment/puppet/fuel/examples/cobbler.pp
-new file mode 100644
-index 0000000..d409689
---- /dev/null
-+++ b/deployment/puppet/fuel/examples/cobbler.pp
-@@ -0,0 +1,78 @@
-+notice('MODULAR: cobbler.pp')
-+
-+Exec {path => '/usr/bin:/bin:/usr/sbin:/sbin'}
-+
-+$fuel_settings               = parseyaml($astute_settings_yaml)
-+$admin_network               = $::fuel_settings['ADMIN_NETWORK']
-+$nailgun_api_url             = "http://${::fuel_settings['ADMIN_NETWORK']['ipaddress']}:8000/api"
-+$bootstrap_settings          = pick($::fuel_settings['BOOTSTRAP'], {})
-+$bootstrap_path              = pick($bootstrap_settings['path'], '/var/www/nailgun/bootstraps/active_bootstrap')
-+$bootstrap_ethdevice_timeout = pick($bootstrap_settings['ethdevice_timeout'], '120')
-+$dhcp_gw                     = $::fuel_settings['ADMIN_NETWORK']['dhcp_gateway']
-+$dns_domain                  = $::fuel_settings['DNS_DOMAIN']
-+$dns_search                  = $::fuel_settings['DNS_SEARCH']
-+$dns_upstream                = split($::fuel_settings['DNS_UPSTREAM'], ',')
-+$cobbler_host                = $::fuel_settings['ADMIN_NETWORK']['ipaddress']
-+
-+# TODO(mmalchuk): the right way with updated loadyaml function
-+# $bootstrap_meta = loadyaml("${bootstrap_path}/metadata.yaml", {})
-+# and remove if else block
-+$metadata_yaml = file("${bootstrap_path}/metadata.yaml", '/dev/null')
-+if empty($metadata_yaml) {
-+  $bootstrap_meta = {}
-+} else {
-+  $bootstrap_meta = parseyaml($metadata_yaml)
-+}
-+
-+if $dhcp_gw {
-+  $dhcp_gateway = $dhcp_gw
-+}
-+else {
-+  $dhcp_gateway = $cobbler_host
-+}
-+
-+class { '::fuel::cobbler':
-+  cobbler_user                => $::fuel_settings['cobbler']['user'],
-+  cobbler_password            => $::fuel_settings['cobbler']['password'],
-+  bootstrap_path              => $bootstrap_path,
-+  bootstrap_meta              => $bootstrap_meta,
-+  server                      => $::fuel_settings['ADMIN_NETWORK']['ipaddress'],
-+  name_server                 => $::fuel_settings['ADMIN_NETWORK']['ipaddress'],
-+  next_server                 => $::fuel_settings['ADMIN_NETWORK']['ipaddress'],
-+  mco_user                    => $::fuel_settings['mcollective']['user'],
-+  mco_pass                    => $::fuel_settings['mcollective']['password'],
-+  dns_upstream                => $dns_upstream,
-+  dns_domain                  => $dns_domain,
-+  dns_search                  => $dns_search,
-+  dhcp_ipaddress              => $::fuel_settings['ADMIN_NETWORK']['ipaddress'],
-+  nailgun_api_url             => $nailgun_api_url,
-+  bootstrap_ethdevice_timeout => $bootstrap_ethdevice_timeout,
-+} ->
-+
-+file { '/etc/resolv.conf':
-+  content => template('fuel/resolv.conf.erb'),
-+  owner   => 'root',
-+  group   => 'root',
-+  mode    => '0644',
-+}
-+
-+Fuel::Systemd {
-+  start          => true,
-+  template_path  => 'fuel/systemd/restart_template.erb',
-+  config_name    => 'restart.conf',
-+  service_manage => false,
-+}
-+
-+fuel::systemd { ['httpd', 'cobblerd', 'xinetd'] :}
-+
-+fuel::systemd { 'dnsmasq': template_path => 'fuel/systemd/dnsmasq_template.erb' }
-+
-+fuel::dnsmasq::dhcp_range {'default':
-+  dhcp_start_address => $admin_network['dhcp_pool_start'],
-+  dhcp_end_address   => $admin_network['dhcp_pool_end'],
-+  dhcp_netmask       => $admin_network['netmask'],
-+  dhcp_gateway       => $admin_network['dhcp_gateway'],
-+  next_server        => $admin_network['ipaddress'],
-+  listen_address     => $admin_network['ipaddress'],
-+  notify             => Service['dnsmasq'],
-+}
-diff --git a/deployment/puppet/fuel/examples/deploy.sh b/deployment/puppet/fuel/examples/deploy.sh
-index c1b7494..afff4af 100755
---- a/deployment/puppet/fuel/examples/deploy.sh
-+++ b/deployment/puppet/fuel/examples/deploy.sh
-@@ -17,7 +17,7 @@
- TASKS="
- hiera
- host
--provision
-+cobbler
- postgresql
- rabbitmq
- mcollective
-diff --git a/deployment/puppet/fuel/examples/dhcp-ranges.pp b/deployment/puppet/fuel/examples/dhcp-ranges.pp
-index 1209207..7420e1b 100644
---- a/deployment/puppet/fuel/examples/dhcp-ranges.pp
-+++ b/deployment/puppet/fuel/examples/dhcp-ranges.pp
-@@ -1,12 +1,20 @@
- notice('MODULAR: dhcp-ranges.pp')
-
--$admin_network = hiera('ADMIN_NETWORK')
--$next_server = $admin_network['ipaddress']
--$domain_name = hiera('DNS_DOMAIN')
--$dns_address = $admin_network['ipaddress']
--$dhcp_ranges = get_dhcp_ranges(hiera('admin_networks', [{}]))
--
--file { $::provision::params::dhcpd_conf_extra :
--  ensure => present,
--  content => template('fuel/dhcpd_ranges.erb'),
-+$admin_networks = hiera('admin_networks', [{}])
-+$admin_network  = hiera('ADMIN_NETWORK')
-+
-+Fuel::Dnsmasq::Dhcp_range <||> {
-+  next_server => $admin_network['ipaddress'],
-+}
-+
-+# Ensure dir with purge and recurse to remove configs for
-+# non-existing (removed) nodegroups and ip ranges
-+file { '/etc/dnsmasq.d':
-+  ensure  => 'directory',
-+  recurse => true,
-+  purge   => true,
- }
-+
-+# Create admin networks dhcp-range files except for 'default' nodegroup
-+# by creating Fuel::Dnsmasq::Dhcp_range puppet resources
-+create_dnsmasq_dhcp_ranges($admin_networks)
-diff --git a/deployment/puppet/fuel/examples/hiera.pp b/deployment/puppet/fuel/examples/hiera.pp
-index 58bae50..ca228ae 100644
---- a/deployment/puppet/fuel/examples/hiera.pp
-+++ b/deployment/puppet/fuel/examples/hiera.pp
-@@ -6,15 +6,12 @@ $data                = [
-   'nodes',
-   'networks',
-   'astute',
--  'known_hosts',
--  'provision',
-   'common',
- ]
- $astute_data_file    = '/etc/fuel/astute.yaml'
- $hiera_main_config   = '/etc/hiera.yaml'
- $hiera_puppet_config = '/etc/puppet/hiera.yaml'
- $hiera_data_file     = "${data_dir}/astute.yaml"
--$hiera_data_provision = "${data_dir}/provision.yaml"
-
- File {
-   owner => 'root',
-@@ -43,12 +40,6 @@ file { 'hiera_data_astute' :
-   target => $astute_data_file,
- }
-
--file { 'hiera_data_provision' :
--  ensure  => present,
--  path    => $hiera_data_provision,
--  content => template('fuel/provision.yaml'),
--}
--
- file { 'hiera_puppet_config' :
-   ensure => 'symlink',
-   path   => $hiera_puppet_config,
-diff --git a/deployment/puppet/fuel/examples/host.pp b/deployment/puppet/fuel/examples/host.pp
-index f94d642..f5cfac4 100644
---- a/deployment/puppet/fuel/examples/host.pp
-+++ b/deployment/puppet/fuel/examples/host.pp
-@@ -9,7 +9,7 @@ $ntp_servers = delete(delete_undef_values([$::fuel_settings['NTP1'],
-   $::fuel_settings['NTP2'], $::fuel_settings['NTP3']]), '')
-
- # Vars for File['/etc/dhcp/dhclient.conf']
--$dns_address = $::fuel_settings['ADMIN_NETWORK']['ipaddress']
-+$cobbler_host = $::fuel_settings['ADMIN_NETWORK']['ipaddress']
-
- # Vars for File['/etc/fuel-utils/config']
- $admin_ip = $::fuel_settings['ADMIN_NETWORK']['ipaddress']
-diff --git a/deployment/puppet/fuel/examples/provision.pp b/deployment/puppet/fuel/examples/provision.pp
-deleted file mode 100644
-index 9b2aa26..0000000
---- a/deployment/puppet/fuel/examples/provision.pp
-+++ /dev/null
-@@ -1,99 +0,0 @@
--notice('MODULAR: provision.pp')
--
--Exec {path => '/usr/bin:/bin:/usr/sbin:/sbin'}
--
--$fuel_settings               = parseyaml($astute_settings_yaml)
--
--$mco_user                    = $::fuel_settings['mcollective']['user']
--$mco_pass                    = $::fuel_settings['mcollective']['password']
--$dns_address                 = $::fuel_settings['ADMIN_NETWORK']['ipaddress']
--$domain_name                 = $::fuel_settings['DNS_DOMAIN']
--$dns_search                  = $::fuel_settings['DNS_SEARCH']
--$forwarders                  = split($::fuel_settings['DNS_UPSTREAM'], ',')
--$start_address               = $::fuel_settings['ADMIN_NETWORK']['dhcp_pool_start']
--$end_address                 = $::fuel_settings['ADMIN_NETWORK']['dhcp_pool_end']
--$network_mask                = $::fuel_settings['ADMIN_NETWORK']['netmask']
--$network_address             = ipcalc_network_by_address_netmask($start_address, $network_mask)
--$dhcp_gateway                = $::fuel_settings['ADMIN_NETWORK']['dhcp_gateway']
--if $dhcp_gateway {
--  $router = $dhcp_gateway
--}
--else {
--  $router = $::fuel_settings['ADMIN_NETWORK']['ipaddress']
--}
--
--$next_server                 = $::fuel_settings['ADMIN_NETWORK']['ipaddress']
--
--$nailgun_api_url             = "http://${::fuel_settings['ADMIN_NETWORK']['ipaddress']}:8000/api"
--$ethdevice_timeout           = hiera('ethdevice_timeout', '120')
--
--$ddns_key = hiera('ddns_key', 'VyCWe0kutrawqQ2WEFKkAw=')
--$ddns_key_algorithm = hiera('ddns_key_algorithm', 'HMAC-MD5')
--$ddns_key_name = hiera('ddns_key_name', 'DHCP_UPDATE')
--
--$bootstrap_menu_label = hiera('bootstrap_menu_label', 'bootstrap')
--$bootstrap_kernel_path = hiera('bootstrap_kernel_path', '/images/vmlinuz')
--$bootstrap_initrd_path = hiera('bootstrap_initrd_path', '/images/initrd.img')
--
--$bootstrap_settings = pick($::fuel_settings['BOOTSTRAP'], {})
--$bootstrap_path = pick($bootstrap_settings['path'], '/var/www/nailgun/bootstraps/active_bootstrap')
--$metadata_yaml = file("${bootstrap_path}/metadata.yaml", '/dev/null')
--if empty($metadata_yaml) {
--  $bootstrap_meta = {}
--} else {
--  $bootstrap_meta = parseyaml($metadata_yaml)
--}
--
--$bootstrap_kernel_params = extend_kopts($bootstrap_meta['extend_kopts'], "console=ttyS0,9600 console=tty0 panic=60 ethdevice-timeout=${ethdevice_timeout} boot=live toram components fetch=http://${next_server}:8080/bootstraps/active_bootstrap/root.squashfs biosdevname=0 url=${nailgun_api_url} mco_user=${mco_user} mco_pass=${mco_pass} ip=frommedia")
--
--
--$known_hosts = get_merged_network_metadata_from_yamls()
--$chain32_files = tftp_files("/var/lib/tftpboot/pxelinux.cfg", $known_hosts)
--
--class { "::provision::dhcpd" :
--  network_address => ipcalc_network_by_address_netmask($start_address, $network_mask),
--  network_mask => $network_mask,
--  broadcast_address => $broadcast_address,
--  start_address => $start_address,
--  end_address => $end_address,
--  router => $router,
--  next_server => $next_server,
--  dns_address => $dns_address,
--  domain_name => $domain_name,
--  ddns_key => $ddns_key,
--  ddns_key_algorithm => $ddns_key_algorithm,
--  ddns_key_name => $ddns_key_name,
--  known_hosts => $known_hosts,
--}
--
--class { "::provision::tftp" :
--  bootstrap_menu_label => $bootstrap_menu_label,
--  bootstrap_kernel_path => $bootstrap_kernel_path,
--  bootstrap_initrd_path => $bootstrap_initrd_path,
--  bootstrap_kernel_params => $bootstrap_kernel_params,
--  chain32_files => $chain32_files,
--} ->
--
--file { "/var/lib/tftpboot${bootstrap_kernel_path}" :
--  source => "${bootstrap_path}/vmlinuz",
--} ->
--
--file { "/var/lib/tftpboot${bootstrap_initrd_path}" :
--  source => "${bootstrap_path}/initrd.img"
--}
--
--class { "::provision::named" :
--  domain_name => $domain_name,
--  dns_address => $dns_address,
--  forwarders => $forwarders,
--  ddns_key => $ddns_key,
--  ddns_key_algorithm => $ddns_key_algorithm,
--  ddns_key_name => $ddns_key_name,
--} ->
--
--file { '/etc/resolv.conf':
--  content => template('fuel/resolv.conf.erb'),
--  owner   => 'root',
--  group   => 'root',
--  mode    => '0644',
--}
-diff --git a/deployment/puppet/fuel/lib/puppet/parser/functions/create_dnsmasq_dhcp_ranges.rb b/deployment/puppet/fuel/lib/puppet/parser/functions/create_dnsmasq_dhcp_ranges.rb
-new file mode 100644
-index 0000000..a43ba51
---- /dev/null
-+++ b/deployment/puppet/fuel/lib/puppet/parser/functions/create_dnsmasq_dhcp_ranges.rb
-@@ -0,0 +1,47 @@
-+require 'ipaddr'
-+require 'zlib'
-+
-+module Puppet::Parser::Functions
-+  newfunction(:create_dnsmasq_dhcp_ranges, :doc => <<-EOS
-+Creates fuel::dnsmasq::dhcp_range puppet resources from list of admin networks.
-+  EOS
-+) do |args|
-+    admin_nets = args[0]
-+    unless admin_nets.is_a?(Array) and admin_nets[0].is_a?(Hash)
-+      raise(Puppet::ParseError, 'Should pass list of hashes as a parameter')
-+    end
-+    admin_nets.each do |net|
-+      next unless net['ip_ranges'].is_a? Array
-+      net['ip_ranges'].each do |ip_range|
-+        # loop through local facts to pull which interface has an IP in the
-+        # dhcp range so we can properly listen on the interface for dhcp
-+        # messages
-+        cidr = IPAddr.new(net['cidr'])
-+        listen_address = []
-+        interfaces = lookupvar('interfaces')
-+        if ! interfaces.nil?
-+          interfaces.split(',').each do |interface|
-+            local_address = lookupvar("ipaddress_#{interface}")
-+            listen_address.push(local_address) if cidr.include?(local_address)
-+          end
-+        end
-+        netmask = IPAddr.new('255.255.255.255').mask(net['cidr'].split('/')[1]).to_s
-+        print_range = ip_range.join('_')
-+        resource_name = sprintf("range_%08x", Zlib::crc32("#{print_range}_#{net['cidr']}").to_i)
-+        range_comment = "# Environment: #{net['cluster_name']}\n# Nodegroup: #{net['node_group_name']}\n# IP range: #{ip_range}"
-+        dhcp_range_resource = {
-+          resource_name => {
-+            'file_header'        => "# Generated automatically by puppet\n#{range_comment}",
-+            'listen_address'     => listen_address.join(','),
-+            'dhcp_start_address' => ip_range[0],
-+            'dhcp_end_address'   => ip_range[1],
-+            'dhcp_netmask'       => netmask,
-+            'dhcp_gateway'       => net['gateway'],
-+          }
-+        }
-+        debug("Trying to create fuel::dnsmasq::dhcp_range resource: #{dhcp_range_resource.inspect}")
-+        function_create_resources(['fuel::dnsmasq::dhcp_range', dhcp_range_resource])
-+      end
-+    end
-+  end
-+end
-diff --git a/deployment/puppet/fuel/lib/puppet/parser/functions/get_dhcp_ranges.rb b/deployment/puppet/fuel/lib/puppet/parser/functions/get_dhcp_ranges.rb
-deleted file mode 100644
-index 574ae78..0000000
---- a/deployment/puppet/fuel/lib/puppet/parser/functions/get_dhcp_ranges.rb
-+++ /dev/null
-@@ -1,46 +0,0 @@
--require 'ipaddr'
--
--module Puppet::Parser::Functions
--  newfunction(:get_dhcp_ranges, :doc => <<-EOS
--Returns a list of dhcp ranges from a list of admin networks.
--  EOS
--) do |args|
--    admin_nets = args[0]
--    unless admin_nets.is_a?(Array) and admin_nets[0].is_a?(Hash)
--      raise(Puppet::ParseError, 'Should pass list of hashes as a parameter')
--    end
--    dhcp_ranges = []
--    admin_nets.each do |net|
--      next unless net['ip_ranges'].is_a? Array
--      net['ip_ranges'].each do |ip_range|
--        # loop through local facts to pull which interface has an IP in the
--        # dhcp range so we can properly listen on the interface for dhcp
--        # messages
--        cidr = IPAddr.new(net['cidr'])
--        listen_address = []
--        interfaces = lookupvar('interfaces')
--        if ! interfaces.nil?
--          interfaces.split(',').each do |interface|
--            local_address = lookupvar("ipaddress_#{interface}")
--            listen_address.push(local_address) if cidr.include?(local_address)
--          end
--        end
--        netmask = IPAddr.new('255.255.255.255').mask(net['cidr'].split('/')[1]).to_s
--        range_comment = "# Environment: #{net['cluster_name']}\n# Nodegroup: #{net['node_group_name']}\n# IP range: #{ip_range}"
--        dhcp_range = {
--          'comment'        => range_comment,
--          'listen_address' => listen_address.join(','),
--          'start_address'  => ip_range[0],
--          'end_address'    => ip_range[1],
--          'netaddr'        => cidr.to_s,
--          'netmask'        => netmask,
--          'broadcast'      => cidr.to_range.to_a[-1].to_s,
--          'gateway'        => net['gateway'],
--        }
--        debug("Appending dhcp range to the list of ranges: #{dhcp_range.inspect}")
--        dhcp_ranges << dhcp_range
--      end
--    end
--    dhcp_ranges
--  end
--end
-diff --git a/deployment/puppet/fuel/lib/puppet/parser/functions/get_merged_network_metadata_from_yamls.rb b/deployment/puppet/fuel/lib/puppet/parser/functions/get_merged_network_metadata_from_yamls.rb
-deleted file mode 100644
-index 91028c6..0000000
---- a/deployment/puppet/fuel/lib/puppet/parser/functions/get_merged_network_metadata_from_yamls.rb
-+++ /dev/null
-@@ -1,20 +0,0 @@
--module Puppet::Parser::Functions
--  newfunction(:get_merged_network_metadata_from_yamls, :type => :rvalue, :doc => <<-'ENDHEREDOC') do |args|
--Load a provision data from a set of YAML files for a set of cluster
--located in /var/lib/fuel/configs/{CLUSTER_ID}/provision.yaml
--
--  ENDHEREDOC
--    require 'yaml'
--    merged_data = {}
--    Dir["/var/lib/fuel/configs/*/provision.yaml"].each do |f|
--      begin
--        data = YAML::load_file(f) || {}
--      rescue Exception => e
--        warning("Found file #{f} but could not parse it")
--        data = {}
--      end
--      merged_data.merge!(data['network_metadata']['nodes'])
--    end
--    merged_data
--  end
--end
-diff --git a/deployment/puppet/fuel/manifests/cobbler.pp b/deployment/puppet/fuel/manifests/cobbler.pp
-new file mode 100644
-index 0000000..ea312da
---- /dev/null
-+++ b/deployment/puppet/fuel/manifests/cobbler.pp
-@@ -0,0 +1,130 @@
-+class fuel::cobbler(
-+  $repo_root                     = $::fuel::params::repo_root,
-+  $cobbler_user                  = $::fuel::params::cobbler_user,
-+  $cobbler_password              = $::fuel::params::cobbler_password,
-+  $bootstrap_path,
-+  $bootstrap_meta,
-+  # network interface configuration timeout (in seconds)
-+  $bootstrap_ethdevice_timeout   = $::fuel::params::bootstrap_ethdevice_timeout,
-+  $bootstrap_profile             = $::fuel::params::bootstrap_profile,
-+  $centos_repos                  = $::fuel::params::centos_repos,
-+  $ks_system_timezone            = $::fuel::params::ks_system_timezone,
-+  $server                        = $::fuel::params::cobbler_host,
-+  $name_server                   = $::fuel::params::cobbler_host,
-+  $next_server                   = $::fuel::params::cobbler_host,
-+  $dns_upstream                  = $::fuel::params::dns_upstream,
-+  $dns_domain                    = $::fuel::params::dns_domain,
-+  $dns_search                    = $::fuel::params::dns_search,
-+  $mco_user                      = $::fuel::params::mco_user,
-+  $mco_pass                      = $::fuel::params::mco_password,
-+  $dhcp_ipaddress                = $::fuel::params::dhcp_ipaddress,
-+  $nailgun_api_url               = "http://${::fuel::params::nailgun_host}:${::fuel::params::nailgun_port}/api",
-+  # default password is 'r00tme'
-+  $ks_encrypted_root_password    = $::fuel::params::ks_encrypted_root_password,
-+  ) inherits fuel::params {
-+
-+  anchor { 'nailgun-cobbler-begin': }
-+  anchor { 'nailgun-cobbler-end': }
-+
-+  Anchor<| title == 'nailgun-cobbler-begin' |> ->
-+  Class['::cobbler'] ->
-+  Anchor<| title == 'nailgun-cobbler-end' |>
-+
-+  $real_server = $next_server
-+
-+  $fence_ssh_source = 'puppet:///modules/fuel/cobbler/fence_ssh.centos7.py'
-+
-+  class { '::cobbler':
-+    server           => $server,
-+    domain_name      => $domain_name,
-+    dns_upstream     => $dns_upstream,
-+    dns_domain       => $dns_domain,
-+    dns_search       => $dns_search,
-+    name_server      => $name_server,
-+    next_server      => $next_server,
-+    dhcp_ipaddress   => $dhcp_ipaddress,
-+    cobbler_user     => $cobbler_user,
-+    cobbler_password => $cobbler_password,
-+    pxetimeout       => '50'
-+  }
-+
-+  file { '/etc/cobbler/power/fence_ssh.template':
-+    content => template('fuel/cobbler/fence_ssh.template.erb'),
-+    owner   => 'root',
-+    group   => 'root',
-+    mode    => '0644',
-+    require => Class['::cobbler::server'],
-+  }
-+
-+  file { '/usr/sbin/fence_ssh':
-+    source  => $fence_ssh_source,
-+    owner   => 'root',
-+    group   => 'root',
-+    mode    => '0755',
-+    require => Class['::cobbler::server'],
-+  }
-+
-+  cobbler_distro { 'ubuntu_bootstrap':
-+    kernel    => "${bootstrap_path}/vmlinuz",
-+    initrd    => "${bootstrap_path}/initrd.img",
-+    arch      => 'x86_64',
-+    breed     => 'ubuntu',
-+    osversion => 'xenial',
-+    ksmeta    => '',
-+    require   => Class['::cobbler::server'],
-+  }
-+
-+  cobbler_profile { 'ubuntu_bootstrap':
-+    distro    => 'ubuntu_bootstrap',
-+    menu      => true,
-+    kickstart => '',
-+    kopts     => extend_kopts($bootstrap_meta['extend_kopts'], "console=ttyS0,9600 console=tty0 panic=60 ethdevice-timeout=${bootstrap_ethdevice_timeout} boot=live toram components fetch=http://${server}:8080/bootstraps/active_bootstrap/root.squashfs biosdevname=0 url=${nailgun_api_url} mco_user=${mco_user} mco_pass=${mco_pass} ip=frommedia"),
-+    ksmeta    => '',
-+    server    => $real_server,
-+    require   => Cobbler_distro['ubuntu_bootstrap'],
-+  }
-+
-+  exec { 'cobbler_system_add_default':
-+    command => "cobbler system add --name=default \
-+    --profile=${bootstrap_profile} --netboot-enabled=True",
-+    onlyif  => 'test -z `cobbler system find --name=default`',
-+    require => Cobbler_profile[$bootstrap_profile],
-+  }
-+
-+  exec { 'cobbler_system_edit_default':
-+    command => "cobbler system edit --name=default \
-+    --profile=${bootstrap_profile} --netboot-enabled=True",
-+    unless  => "cobbler system report --name default 2>/dev/null | grep -q -E '^Profile\\s*:\\s*${bootstrap_profile}'",
-+    require => Cobbler_profile[$bootstrap_profile],
-+  }
-+
-+  exec { 'nailgun_cobbler_sync':
-+    command     => 'cobbler sync',
-+    refreshonly => true,
-+  }
-+
-+  Exec['cobbler_system_add_default'] ~> Exec['nailgun_cobbler_sync']
-+  Exec['cobbler_system_edit_default'] ~> Exec['nailgun_cobbler_sync']
-+  Cobbler_profile<| |> ~> Exec['nailgun_cobbler_sync']
-+
-+  #FIXME(mattymo): move pubkey to astute fact or download it
-+  exec { 'cp /root/.ssh/id_rsa.pub /etc/cobbler/authorized_keys':
-+    command => 'cp /root/.ssh/id_rsa.pub /etc/cobbler/authorized_keys',
-+    creates => '/etc/cobbler/authorized_keys',
-+    require => Class['::cobbler::server'],
-+  }
-+
-+  file { '/etc/dnsmasq.conf':
-+    ensure => link,
-+    target => '/etc/cobbler.dnsmasq.conf',
-+  }
-+
-+  file { ['/var/log/cobbler/anamon',
-+          '/var/log/cobbler/kicklog',
-+          '/var/log/cobbler/syslog',
-+          '/var/log/cobbler/tasks'] :
-+    ensure  => directory,
-+    require => Class['::cobbler::server'],
-+  }
-+
-+}
-diff --git a/deployment/puppet/fuel/manifests/dnsmasq/dhcp_range.pp b/deployment/puppet/fuel/manifests/dnsmasq/dhcp_range.pp
-new file mode 100644
-index 0000000..a60bac5
---- /dev/null
-+++ b/deployment/puppet/fuel/manifests/dnsmasq/dhcp_range.pp
-@@ -0,0 +1,29 @@
-+#
-+# fuel::dnsmasq::dhcp_range creates config files in /etc/dnsmasq.d/
-+#
-+# [next_server] IP address that will be used as PXE tftp server
-+# [dhcp_start_address] First address of dhcp range
-+# [dhcp_end_address] Last address of dhcp range
-+# [dhcp_netmask] Netmask of the network
-+# [dhcp_gateway] Gateway address for installed nodes
-+# [lease_time] DHCP lease time
-+# [file_header] File header for comments
-+
-+define fuel::dnsmasq::dhcp_range(
-+  $dhcp_start_address = '10.0.0.201',
-+  $dhcp_end_address   = '10.0.0.254',
-+  $dhcp_netmask       = '255.255.255.0',
-+  $dhcp_gateway       = $::ipaddress,
-+  $listen_address     = $::ipaddress,
-+  $file_header        = undef,
-+  $lease_time         = '120m',
-+  $next_server        = $::ipaddress,
-+){
-+  $range_name = $name
-+  file { "/etc/dnsmasq.d/${name}.conf":
-+    content => template('fuel/dnsmasq.dhcp-range.erb'),
-+    owner   => 'root',
-+    group   => 'root',
-+    mode    => '0644',
-+  }
-+}
-diff --git a/deployment/puppet/fuel/manifests/iptables.pp b/deployment/puppet/fuel/manifests/iptables.pp
-index b3ac965..fc0afb7 100644
---- a/deployment/puppet/fuel/manifests/iptables.pp
-+++ b/deployment/puppet/fuel/manifests/iptables.pp
-@@ -23,7 +23,8 @@ class fuel::iptables (
-   $chain                 = 'INPUT',
-   ) inherits fuel::params {
-
--  include ::provision::iptables
-+  #Enable cobbler's iptables rules even if Cobbler not called
-+  include ::cobbler::iptables
-
-   firewallchain { 'INPUT:filter:IPv4':
-     ensure => present,
-diff --git a/deployment/puppet/fuel/spec/functions/create_dnsmasq_dhcp_ranges_spec.rb b/deployment/puppet/fuel/spec/functions/create_dnsmasq_dhcp_ranges_spec.rb
-new file mode 100644
-index 0000000..7158984
---- /dev/null
-+++ b/deployment/puppet/fuel/spec/functions/create_dnsmasq_dhcp_ranges_spec.rb
-@@ -0,0 +1,70 @@
-+require 'spec_helper'
-+
-+describe 'create_dnsmasq_dhcp_ranges' do
-+
-+  let(:admin_networks) do
-+    [
-+        {"id" => 1,
-+         "node_group_name" => nil,
-+         "node_group_id" => nil,
-+         "cluster_name" => nil,
-+         "cluster_id" => nil,
-+         "cidr" => "10.145.0.0/24",
-+         "gateway" => "10.145.0.2",
-+         "ip_ranges" => [["10.145.0.3", "10.145.0.250"]],
-+        },
-+        {"id" => 2,
-+         "node_group_name" => "default2",
-+         "node_group_id" => 22,
-+         "cluster_name" => "default2",
-+         "cluster_id" => 2,
-+         "cidr" => "10.144.0.0/24",
-+         "gateway" => "10.144.0.5",
-+         "ip_ranges" => [["10.144.0.10", "10.144.0.254"]],
-+        },
-+    ]
-+  end
-+
-+  let(:facts) do
-+    {
-+      :interfaces => 'docker0,enp0s3,enp0s4,enp0s5,lo',
-+      :ipaddress_docker0 => '172.17.0.1',
-+      :ipaddress_enp0s3  => '10.145.0.2',
-+      :ipaddress_enp0s4  => '10.144.0.2',
-+    }
-+  end
-+  let(:catalog) do
-+    lambda { catalogue }
-+  end
-+
-+  it 'refuses String' do
-+    is_expected.to run.with_params('foo').and_raise_error(Puppet::ParseError, /Should pass list of hashes as a parameter/)
-+  end
-+
-+  it 'accepts empty data' do
-+    is_expected.to run.with_params([{}])
-+  end
-+
-+  it 'can create dnsmasq dhcp ranges' do
-+    is_expected.to run.with_params(admin_networks)
-+    parameters = {
-+        :file_header=>"# Generated automatically by puppet\n# Environment: \n# Nodegroup: \n# IP range: [\"10.145.0.3\", \"10.145.0.250\"]",
-+        :listen_address=>'10.145.0.2',
-+        :dhcp_start_address=>"10.145.0.3",
-+        :dhcp_end_address=>"10.145.0.250",
-+        :dhcp_netmask=>"255.255.255.0",
-+        :dhcp_gateway=>"10.145.0.2",
-+    }
-+    expect(catalog).to contain_fuel__dnsmasq__dhcp_range('range_6be3c888').with parameters
-+    parameters = {
-+        :file_header=>"# Generated automatically by puppet\n# Environment: default2\n# Nodegroup: default2\n# IP range: [\"10.144.0.10\", \"10.144.0.254\"]",
-+        :listen_address=>'10.144.0.2',
-+        :dhcp_start_address=>"10.144.0.10",
-+        :dhcp_end_address=>"10.144.0.254",
-+        :dhcp_netmask=>"255.255.255.0",
-+        :dhcp_gateway=>"10.144.0.5",
-+    }
-+    expect(catalog).to contain_fuel__dnsmasq__dhcp_range('range_ff724fd0').with parameters
-+  end
-+
-+end
-diff --git a/deployment/puppet/fuel/templates/dhclient.conf.erb b/deployment/puppet/fuel/templates/dhclient.conf.erb
-index 9b54550..d17616c 100644
---- a/deployment/puppet/fuel/templates/dhclient.conf.erb
-+++ b/deployment/puppet/fuel/templates/dhclient.conf.erb
-@@ -1 +1 @@
--prepend domain-name-servers <%= @dns_address %>;
-+prepend domain-name-servers <%= @cobbler_host %>;
-diff --git a/deployment/puppet/fuel/templates/dhcpd_ranges.erb b/deployment/puppet/fuel/templates/dhcpd_ranges.erb
-deleted file mode 100644
-index d455a95..0000000
---- a/deployment/puppet/fuel/templates/dhcpd_ranges.erb
-+++ /dev/null
-@@ -1,21 +0,0 @@
--<% @dhcp_ranges.each do |range| -%>
--
--# <%= range['comment'] %>
--subnet <%= range['netaddr'] %> netmask <%= range['netmask'] %> {
--  range <%= range['start_address'] %> <%= range['end_address'] %>;
--  option routers <%= range['gateway'] %>;
--  option subnet-mask <%= range['netmask'] %>;
--  option broadcast-address <%= range['broadcast'] %>;
--  option domain-name-servers <%= @dns_address %>;
--  option domain-name "<%= @domain_name %>";
--  next-server <%= @next_server %>;
--  default-lease-time 7200;
--  max-lease-time 7200;
--  ddns-hostname = concat("dhcp-",binary-to-ascii(10,8,"-", leased-address));
--  class "pxeclients" {
--    match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
--      filename "pxelinux.0";
--  }
--}
--
--<% end -%>
-\ No newline at end of file
-diff --git a/deployment/puppet/fuel/templates/dnsmasq.dhcp-range.erb b/deployment/puppet/fuel/templates/dnsmasq.dhcp-range.erb
-new file mode 100644
-index 0000000..aa41d20
---- /dev/null
-+++ b/deployment/puppet/fuel/templates/dnsmasq.dhcp-range.erb
-@@ -0,0 +1,7 @@
-+<% if @file_header %><%= @file_header %><% end %>
-+<% if @listen_address && !@listen_address.empty? %>listen-address=<%= @listen_address %><% end %>
-+dhcp-range=<%= @range_name %>,<%= @dhcp_start_address %>,<%= @dhcp_end_address %>,<%= @dhcp_netmask %>,<%= @lease_time %>
-+dhcp-option=net:<%= @range_name %>,option:router,<%= @dhcp_gateway %>
-+dhcp-boot=net:<%= @range_name %>,pxelinux.0,boothost,<%= @next_server %>
-+dhcp-match=set:ipxe,175
-+dhcp-option-force=tag:ipxe,210,http://<%= @next_server %>/cobbler/boot/
-diff --git a/deployment/puppet/fuel/templates/provision.yaml b/deployment/puppet/fuel/templates/provision.yaml
-deleted file mode 100644
-index 3d5d3c7..0000000
---- a/deployment/puppet/fuel/templates/provision.yaml
-+++ /dev/null
-@@ -1,8 +0,0 @@
-----
--ddns_key: VyCWe0kutrawqQ2WEFKkAw==
--ddns_key_algorithm: HMAC-MD5
--ddns_key_name: DHCP_UPDATE
--bootstrap_menu_label: bootstrap
--bootstrap_kernel_path: /images/vmlinuz
--bootstrap_initrd_path: /images/initrd.img
--ethdevice_timeout: 120
-diff --git a/deployment/puppet/fuel/templates/resolv.conf.erb b/deployment/puppet/fuel/templates/resolv.conf.erb
-index ceb69d8..4e9541f 100644
---- a/deployment/puppet/fuel/templates/resolv.conf.erb
-+++ b/deployment/puppet/fuel/templates/resolv.conf.erb
-@@ -1,3 +1,3 @@
- search <%= @dns_search %>
--domain <%= @domain_name %>
--nameserver <%= @dns_address %>
-+domain <%= @dns_domain %>
-+nameserver <%= @cobbler_host %>
-diff --git a/deployment/puppet/osnailyfacter/manifests/provision/build_image.pp b/deployment/puppet/osnailyfacter/manifests/provision/build_image.pp
-index 02fa0f0..3f90aec 100644
---- a/deployment/puppet/osnailyfacter/manifests/provision/build_image.pp
-+++ b/deployment/puppet/osnailyfacter/manifests/provision/build_image.pp
-@@ -1,7 +1,13 @@
--class osnailyfacter::provision::build_image {
-+class osnailyfacter::provision::build_image(
-+  $data_file = '/tmp/provision.yaml',
-+){
-
--  $data_file = "/var/lib/fuel/configs/${::cluster_id}/provision.yaml"
--  $data = loadyaml($data_file)
-+  if $data_file == undef {
-+    $data = loadyaml('/tmp/provision.yaml')
-+  } else {
-+    $data = loadyaml($data_file)
-+  }
-+  $cluster_id = $data['cluster']['id']
-
-   if $data['ironic']['enabled'] == 'true' {
-     $ironic_packages = [
-@@ -23,10 +29,10 @@ class osnailyfacter::provision::build_image {
-     ]
-
-     $package_list = join(prefix($ironic_packages, '--package '), ' ')
--    $ssh_auth_file = "/var/lib/fuel/keys/${::cluster_id}/ironic/ironic.pub"
-+    $ssh_auth_file = "/var/lib/fuel/keys/${cluster_id}/ironic/ironic.pub"
-     $ssh_params = "--root-ssh-authorized-file ${ssh_auth_file}"
-
--    $out_dir = "/var/www/nailgun/bootstrap/ironic/${::cluster_id}/"
-+    $out_dir = "/var/www/nailgun/bootstrap/ironic/${cluster_id}/"
-     $out_params = "--output-dir ${out_dir}"
-
-     $extra_params = "--extra-dir /usr/share/ironic-fa-bootstrap-configs/ --no-compress --no-default-extra-dirs --no-default-packages"
-@@ -35,19 +41,19 @@ class osnailyfacter::provision::build_image {
-     exec { 'generate_image_with_ironic':
-       command => "fuel-bootstrap build ${package_list} ${ssh_params} ${out_params} ${extra_params} ${log_params}",
-       path    => ['/bin', '/usr/bin'],
--      unless  => "test -e /var/www/nailgun/bootstrap/ironic/${::cluster_id}/vmlinuz",
-+      unless  => "test -e /var/www/nailgun/bootstrap/ironic/${cluster_id}/vmlinuz",
-     }
-
-   } else {
-     $build_dir = '--image_build_dir /var/lib/fuel/ibp'
--    $log_params = "--log-file /var/log/fuel-agent-env-${::cluster_id}.log"
-+    $log_params = "--log-file /var/log/fuel-agent-env-${cluster_id}.log"
-     $extra_params = '--data_driver nailgun_build_image'
-
-     exec { 'generate_image_with_fuel':
-       command => "fa_build_image ${build_dir} ${log_params} ${extra_params} --input_data_file ${data_file}",
-       path    => ['/bin', '/usr/bin'],
-       timeout => 1800,
--      unless  => "test -e /var/www/nailgun/bootstrap/ironic/${::cluster_id}/vmlinuz",
-+      unless  => "test -e /var/www/nailgun/bootstrap/ironic/${cluster_id}/vmlinuz",
-     }
-   }
- }
-diff --git a/deployment/puppet/provision/lib/puppet/parser/functions/tftp_files.rb b/deployment/puppet/provision/lib/puppet/parser/functions/tftp_files.rb
-deleted file mode 100644
-index e05a48b..0000000
---- a/deployment/puppet/provision/lib/puppet/parser/functions/tftp_files.rb
-+++ /dev/null
-@@ -1,22 +0,0 @@
--module Puppet::Parser::Functions
--  newfunction(:tftp_files, :type => :rvalue) do |args|
--    # args[0] is a path prefix, e.g. /var/lib/tftpboot/pxelinux.cfg
--    # args[1] is a dict of hosts
--    # node-1:
--    #   dhcp_binding_params:
--    #     name: node-1
--    #     mac:
--    #       - aa:bb:cc:dd:ee:ff
--    #       - 00:11:22:33:44:55
--    #     ip_address: 10.20.0.10
--    # result is a list of file names
--    # - /var/lib/tftpboot/pxelinux.cfg/01-aa-bb-cc-dd-ee-ff
--    # - /var/lib/tftpboot/pxelinux.cfg/01-00-11-22-33-44-55
--    files = []
--    args[1].each {|host_name, host_data|
--      mac = host_data["dhcp_binding_params"]["mac"]
--      files << (args[0] + "/01-" + mac.gsub(":", "-"))
--    }
--    files
--  end
--end
-diff --git a/deployment/puppet/provision/manifests/dhcpd.pp b/deployment/puppet/provision/manifests/dhcpd.pp
-deleted file mode 100644
-index 6837532..0000000
---- a/deployment/puppet/provision/manifests/dhcpd.pp
-+++ /dev/null
-@@ -1,54 +0,0 @@
--class provision::dhcpd (
--  $network_address    = $::provision::params::network_address,
--  $network_mask       = $::provision::params::network_mask,
--  $broadcast_address  = $::provision::params::broadcast_address,
--  $start_address      = $::provision::params::start_address,
--  $end_address        = $::provision::params::end_address,
--  $router             = $::provision::params::router,
--  $next_server        = $::provision::params::next_server,
--  $dns_address        = $::provision::params::dns_address,
--  $domain_name        = $::provision::params::domain_name,
--  $ddns_key           = $::provision::params::ddns_key,
--  $ddns_key_algorithm = $::provision::params::ddns_key_algorithm,
--  $ddns_key_name      = $::provision::params::ddns_key_name,
--  $known_hosts        = [],
--) inherits provision::params {
--
--  package { "dhcpd" :
--    name => $::provision::params::dhcpd_package,
--  }
--
--  file { $::provision::params::dhcpd_conf :
--    ensure  => present,
--    content => template('provision/dhcpd.conf.erb'),
--    owner   => 'dhcpd',
--    group   => 'dhcpd',
--    mode    => '0640',
--    require => Package["dhcpd"],
--    notify  => Service["dhcpd"],
--  }
--
--  file { $::provision::params::dhcpd_conf_d :
--    ensure => directory,
--    owner  => 'root',
--    group  => 'root',
--    mode   => '0755',
--    require => Package["dhcpd"],
--  }
--
--  # It is just a file that could be modified by other modules
--  file { $::provision::params::dhcpd_conf_extra :
--    ensure => present,
--    require => File[$::provision::params::dhcpd_conf_d],
--  }
--
--  service { "dhcpd" :
--    name => $::provision::params::dhcpd_service,
--    ensure  => running,
--    enable  => true,
--    hasrestart => false,
--    hasstatus => false,
--    require => Package["dhcpd"],
--  }
--
--}
-diff --git a/deployment/puppet/provision/manifests/iptables.pp b/deployment/puppet/provision/manifests/iptables.pp
-deleted file mode 100644
-index f5aec5b..0000000
---- a/deployment/puppet/provision/manifests/iptables.pp
-+++ /dev/null
-@@ -1,28 +0,0 @@
--class provision::iptables {
--
--  firewall { '101 dns_tcp':
--    chain  => INPUT,
--    dport  => '53',
--    proto  => 'tcp',
--    action => 'accept',
--  }
--  firewall { '102 dns_udp':
--    chain  => INPUT,
--    dport  => '53',
--    proto  => 'udp',
--    action => 'accept',
--  }
--  firewall { '103 dhcp':
--    chain  => INPUT,
--    dport  => ['67','68'],
--    proto  => 'udp',
--    action => 'accept',
--  }
--  firewall { '104 tftp':
--    chain  => INPUT,
--    dport  => '69',
--    proto  => 'udp',
--    action => 'accept',
--  }
--
--}
-diff --git a/deployment/puppet/provision/manifests/named.pp b/deployment/puppet/provision/manifests/named.pp
-deleted file mode 100644
-index ee940c9..0000000
---- a/deployment/puppet/provision/manifests/named.pp
-+++ /dev/null
-@@ -1,51 +0,0 @@
--class provision::named (
--  $domain_name        = $::provision::params::domain_name,
--  $dns_address        = $::provision::params::dns_address,
--  $forwarders         = $::provision::params::forwarders,
--  $ddns_key           = $::provision::params::ddns_key,
--  $ddns_key_algorithm = $::provision::params::ddns_key_algorithm,
--  $ddns_key_name      = $::provision::params::ddns_key_name,
--) inherits provision::params {
--
--  package { "named" :
--    name => $::provision::params::named_package,
--  }
--
--  file { "/var/named" :
--    ensure => directory,
--    owner => 'named',
--    group => 'named',
--    mode => '0750',
--    require => Package["named"],
--  }
--
--  file { $::provision::params::named_conf :
--    ensure  => present,
--    content => template('provision/named.conf.erb'),
--    owner   => 'named',
--    group   => 'named',
--    mode    => '0640',
--    require => Package["named"],
--    notify  => Service["named"],
--  }
--
--  file { "/var/named/${domain_name}" :
--    ensure  => present,
--    content => template('provision/zone.erb'),
--    owner   => 'named',
--    group   => 'named',
--    mode    => '0644',
--    require => Package["named"],
--    notify  => Service["named"],
--  }
--
--  service { "named" :
--    name    => $::provision::params::named_service,
--    ensure  => running,
--    enable  => true,
--    hasrestart => false,
--    hasstatus => false,
--    require => Package["named"],
--  }
--
--}
-diff --git a/deployment/puppet/provision/manifests/params.pp b/deployment/puppet/provision/manifests/params.pp
-deleted file mode 100644
-index 2bcae12..0000000
---- a/deployment/puppet/provision/manifests/params.pp
-+++ /dev/null
-@@ -1,36 +0,0 @@
--class provision::params {
--  case $::osfamily {
--    'RedHat': {
--      $dhcpd_package    = "dhcp"
--      $dhcpd_service    = "dhcpd"
--      $dhcpd_conf       = "/etc/dhcp/dhcpd.conf"
--      $dhcpd_conf_d     = "/etc/dhcp/dhcpd.d"
--      $dhcpd_conf_extra = "/etc/dhcp/dhcpd.d/extra.conf"
--      $named_package    = "bind"
--      $named_service    = "named"
--      $named_conf       = "/etc/named.conf"
--    }
--    default: {
--      fail("Unsupported osfamily ${::osfamily}")
--    }
--  }
--  $network_address = "10.20.0.0"
--  $network_mask = "255.255.255.0"
--  $broadcast_address = "10.20.0.255"
--  $start_address = "10.20.0.3"
--  $end_address = "10.20.0.254"
--  $router = "10.20.0.1"
--  $next_server = "10.20.0.2"
--  $dns_address = "10.20.0.2"
--  $forwarders = ["8.8.8.8", "8.8.4.4"]
--  $domain_name = "domain.tld"
--  $ddns_key = "VyCWe0kutrawqQ2WEFKkAw=="
--  $ddns_key_algorithm = "HMAC-MD5"
--  $ddns_key_name = "DHCP_UPDATE"
--
--  $bootstrap_kernel_path = "/images/ubuntu_bootstrap/vmlinuz"
--  $bootstrap_initrd_path = "/images/ubuntu_bootstrap/initrd.img"
--  $bootstrap_kernel_params = "ksdevice=bootif lang= console=ttyS0,9600 console=tty0 toram locale=en_US text boot=live biosdevname=0 components ip=frommedia ethdevice-timeout=120 net.ifnames=1 panic=60"
--  $bootstrap_menu_label = "ubuntu_bootstrap"
--
--}
-diff --git a/deployment/puppet/provision/manifests/tftp.pp b/deployment/puppet/provision/manifests/tftp.pp
-deleted file mode 100644
-index f05bd16..0000000
---- a/deployment/puppet/provision/manifests/tftp.pp
-+++ /dev/null
-@@ -1,95 +0,0 @@
--class provision::tftp (
--  $bootstrap_kernel_params = $::provision::params::bootstrap_kernel_params,
--  $bootstrap_kernel_path = $::provision::params::bootstrap_kernel_path,
--  $bootstrap_initrd_path = $::provision::params::bootstrap_initrd_path,
--  $bootstrap_menu_label = $::provision::params::bootstrap_menu_label,
--  $chain32_files = [],
--) inherits provision::params {
--
--  Exec {path => '/usr/bin:/bin:/usr/sbin:/sbin'}
--
--  case $::osfamily {
--    'RedHat': {
--      $tftp_packages = ['xinetd', 'tftp-server', 'syslinux']
--
--      service { 'xinetd':
--        ensure     => running,
--        enable     => true,
--        hasrestart => true,
--        require    => Package[$tftp_packages],
--      }
--
--      file { '/etc/xinetd.conf':
--        content => template('provision/xinetd.conf.erb'),
--        owner   => 'root',
--        group   => 'root',
--        mode    => '0600',
--        require => Package[$tftp_packages],
--        notify  => Service['xinetd'],
--      }
--
--      file { '/etc/xinetd.d/tftp' :
--        content => template('provision/tftp.xinetd.erb'),
--        owner   => 'root',
--        group   => 'root',
--        mode    => '0644',
--        require => Package[$tftp_packages],
--        notify  => Service['xinetd'],
--      }
--
--    }
--    default : {
--      fail("Unsupported osfamily ${::osfamily}")
--    }
--  }
--
--  ensure_packages($tftp_packages)
--
--  file { ["/var/lib/tftpboot/images", "/var/lib/tftpboot/pxelinux.cfg"] :
--    ensure => directory,
--    owner => 'root',
--    group => 'root',
--    mode => '0755',
--    require => Package[$tftp_packages],
--  }
--
--  file { "/var/lib/tftpboot/pxelinux.cfg/default" :
--    ensure => present,
--    content => template("provision/tftp.default.erb"),
--    owner => 'root',
--    group => 'root',
--    mode => '0644',
--    require => File["/var/lib/tftpboot/pxelinux.cfg"],
--  }
--
--  file { '/var/lib/tftpboot/chain.c32':
--    source => '/usr/share/syslinux/chain.c32',
--    require => Package[$tftp_packages],
--  }
--
--  file { '/var/lib/tftpboot/pxelinux.0':
--    source => '/usr/share/syslinux/pxelinux.0',
--    require => Package[$tftp_packages],
--  }
--
--  file { '/var/lib/tftpboot/menu.c32':
--    source => '/usr/share/syslinux/menu.c32',
--    require => Package[$tftp_packages],
--  }
--
--  # TODO Create custom type that will remove all 01-* files that
--  # are not in the $chain32_files list
--  exec { 'remove /var/lib/tftpboot/pxelinux.cfg/01-* files' :
--    command => "find /var/lib/tftpboot/pxelinux.cfg -type f -name '01-*' -delete",
--    require => File["/var/lib/tftpboot/pxelinux.cfg"],
--  } ->
--
--  file { $chain32_files :
--    ensure => present,
--    content => template("provision/tftp.chain32.erb"),
--    owner => 'root',
--    group => 'root',
--    mode => '0644',
--    require => File["/var/lib/tftpboot/pxelinux.cfg"],
--  }
--}
-diff --git a/deployment/puppet/provision/templates/dhcpd.conf.erb b/deployment/puppet/provision/templates/dhcpd.conf.erb
-deleted file mode 100644
-index 8120dc1..0000000
---- a/deployment/puppet/provision/templates/dhcpd.conf.erb
-+++ /dev/null
-@@ -1,69 +0,0 @@
--ddns-updates on;
--update-static-leases on;
--ddns-domainname "<%= @domain_name %>";
--ddns-update-style interim;
--ignore client-updates;
--update-static-leases true;
--
--key <%= @ddns_key_name %> {
--  algorithm <%= @ddns_key_algorithm %>;
--  secret <%= @ddns_key %>;
--}
--
--local-address <%= @dns_address %>;
--zone <%= @domain_name %>. {
--  primary <%= @dns_address %>;
--  key <%= @ddns_key_name %>;
--}
--
--allow booting;
--allow bootp;
--set vendorclass = option vendor-class-identifier;
--option pxe-system-type code 93 = unsigned integer 16;
--default-lease-time 3600;
--max-lease-time 3600;
--log-facility local7;
--
--subnet <%= @network_address %> netmask <%= @network_mask %> {
--  range <%= @start_address %> <%= @end_address %>;
--  option domain-name-servers <%= @dns_address %>;
--  option domain-name "<%= @domain_name %>";
--  option subnet-mask <%= @network_mask %>;
--  option routers <%= @router %>;
--  option broadcast-address <%= @broadcast_address %>;
--  next-server <%= @next_server %>;
--  ddns-hostname = pick(option fqdn.hostname,option host-name, concat("dhcp-",binary-to-ascii(10,8,"-", leased-address)));
--  class "pxeclients" {
--    match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
--      filename "pxelinux.0";
--  }
--}
--
--<% if @known_hosts -%>
--group {
--
--  option domain-name-servers <%= @dns_address %>;
--  option domain-name "<%= @domain_name %>";
--  option subnet-mask <%= @network_mask %>;
--  option routers <%= @router %>;
--  option broadcast-address <%= @broadcast_address %>;
--  next-server <%= @next_server %>;
--  class "pxeclients" {
--    match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
--      filename "pxelinux.0";
--  }
--
--  <% @known_hosts.each do |host_name, host_data| -%>
--  host <%= host_data['dhcp_binding_params']['name'] %> {
--    hardware ethernet <%= host_data['dhcp_binding_params']['mac'] %>;
--    fixed-address <%= host_data['dhcp_binding_params']['ip_address'] %>;
--    ddns-hostname "<%= host_data['dhcp_binding_params']['name'].split('.')[0] %>";
--    ddns-domainname "<%= @domain_name%>";
--    option host-name "<%= host_data['dhcp_binding_params']['name'].split('.')[0] %>";
--    option domain-name "<%= @domain_name %>";
--  }
--  <% end -%>
--}
--<% end -%>
--
--include "<%= scope.lookupvar('::provision::params::dhcpd_conf_extra') %>";
-diff --git a/deployment/puppet/provision/templates/named.conf.erb b/deployment/puppet/provision/templates/named.conf.erb
-deleted file mode 100644
-index f612204..0000000
---- a/deployment/puppet/provision/templates/named.conf.erb
-+++ /dev/null
-@@ -1,32 +0,0 @@
--options {
--  listen-on port 53 { <%= @dns_address %>; };
--  directory       "/var/named";
--  dump-file       "/var/named/data/cache_dump.db";
--  statistics-file "/var/named/data/named_stats.txt";
--  memstatistics-file "/var/named/data/named_mem_stats.txt";
--  recursion yes;
--  forward only;
--  forwarders {
--    <% @forwarders.each do |forwarder| -%>
--    <%= forwarder %>;
--    <% end -%>
--  };
--};
--
--key <%= @ddns_key_name %> {
--  algorithm <%= @ddns_key_algorithm %>;
--  secret <%= @ddns_key %>;
--};
--
--logging {
--  channel default_debug {
--    file "data/named.run";
--    severity dynamic;
--  };
--};
--
--zone "<%= @domain_name %>." {
--  type master;
--  file "<%= @domain_name %>";
--  allow-update { key <%= @ddns_key_name %>; };
--};
-diff --git a/deployment/puppet/provision/templates/tftp.chain32.erb b/deployment/puppet/provision/templates/tftp.chain32.erb
-deleted file mode 100644
-index fae5e43..0000000
---- a/deployment/puppet/provision/templates/tftp.chain32.erb
-+++ /dev/null
-@@ -1,8 +0,0 @@
--DEFAULT local
--PROMPT 0
--TIMEOUT 0
--TOTALTIMEOUT 0
--ONTIMEOUT local
--
--LABEL local
--    COM32 chain.c32
-diff --git a/deployment/puppet/provision/templates/tftp.default.erb b/deployment/puppet/provision/templates/tftp.default.erb
-deleted file mode 100644
-index e1cee87..0000000
---- a/deployment/puppet/provision/templates/tftp.default.erb
-+++ /dev/null
-@@ -1,19 +0,0 @@
--DEFAULT menu
--PROMPT 0
--MENU TITLE Boot menu
--TIMEOUT 50
--TOTALTIMEOUT 0
--ONTIMEOUT <%= @bootstrap_menu_label %>
--
--LABEL local
--        MENU LABEL (local)
--        MENU DEFAULT
--        LOCALBOOT -1
--
--LABEL <%= @bootstrap_menu_label %>
--        kernel <%= @bootstrap_kernel_path %>
--        MENU LABEL <%= @bootstrap_menu_label %>
--        append initrd=<%= @bootstrap_initrd_path %> <%= @bootstrap_kernel_params %>
--        ipappend 2
--
--MENU end
-diff --git a/deployment/puppet/provision/templates/tftp.xinetd.erb b/deployment/puppet/provision/templates/tftp.xinetd.erb
-deleted file mode 100644
-index bde8373..0000000
---- a/deployment/puppet/provision/templates/tftp.xinetd.erb
-+++ /dev/null
-@@ -1,13 +0,0 @@
--service tftp
--{
--        disable                 = no
--        socket_type             = dgram
--        protocol                = udp
--        wait                    = yes
--        user                    = root
--        server                  = /usr/sbin/in.tftpd
--        server_args             = -B 1380 -v -s /var/lib/tftpboot
--        per_source              = 11
--        cps                     = 100 2
--        flags                   = IPv4
--}
-diff --git a/deployment/puppet/provision/templates/xinetd.conf.erb b/deployment/puppet/provision/templates/xinetd.conf.erb
-deleted file mode 100644
-index 0a90f33..0000000
---- a/deployment/puppet/provision/templates/xinetd.conf.erb
-+++ /dev/null
-@@ -1,17 +0,0 @@
--defaults
--{
--    log_type = SYSLOG daemon info
--    log_on_failure = HOST
--    log_on_success = PID HOST DURATION EXIT
--
--    cps       = 50 10
--    instances = 50
--    per_source = 10
--
--    v6only = no
--
--    groups = yes
--    umask  = 002
--}
--
--includedir /etc/xinetd.d
-diff --git a/deployment/puppet/provision/templates/zone.erb b/deployment/puppet/provision/templates/zone.erb
-deleted file mode 100644
-index ea1b87a..0000000
---- a/deployment/puppet/provision/templates/zone.erb
-+++ /dev/null
-@@ -1,11 +0,0 @@
--$TTL 300
--@                       IN      SOA     ns.<%= @domain_name %>. nobody.<%= @domain_name %>. (
--                                        2017021302   ; Serial
--                                        600         ; Refresh
--                                        1800         ; Retry
--                                        604800       ; Expire
--                                        300          ; TTL
--                                        )
--
--                        IN      NS      ns.<%= @domain_name %>.
--ns                      IN      A       <%= @dns_address %>
-diff --git a/graphs/provision/tasks.yaml b/graphs/provision/tasks.yaml
-index 3a21c87..68716ce 100644
---- a/graphs/provision/tasks.yaml
-+++ b/graphs/provision/tasks.yaml
-@@ -14,7 +14,7 @@
-   requires: [provision_start]
-   required_for: [build_deploy_image]
-   parameters:
--    path: /var/lib/fuel/configs/{CLUSTER_ID}/provision.yaml
-+    path: /tmp/provision.yaml
-     timeout: 180
-     data:
-       #TODO: Replace dict($.items) to $ when LP1666913 is fixed
-@@ -40,27 +40,31 @@
-   requires: [upload_provision_info_master, generate_ironic_bootstrap_keys]
-   required_for: [provision_end]
-   parameters:
--    command_prefix: FACTER_cluster_id={CLUSTER_ID}
-     puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/provision/build_image.pp
-     puppet_modules: /etc/puppet/modules
-     timeout: 3600
-
--- id: provision_master
--  type: puppet
-+- id: move_to_bootstrap
-+  type: move_to_bootstrap
-   version: 2.1.0
--  role: ['master']
--  requires: [upload_provision_info_master]
--  required_for: [build_deploy_image]
-+  role: ['/.*/']
-+  requires: [provision_start, build_deploy_image]
-+  required_for: [upload_provision_info]
-+  cross-depends:
-+    - name: build_deploy_image
-+      role: master
-   parameters:
--    puppet_manifest: /etc/puppet/modules/fuel/examples/provision.pp
--    puppet_modules: /etc/puppet/modules
--    timeout: 3600
-+    slave_name:
-+      yaql_exp: '$.network_metadata.nodes.values().where($.uid = new($.uid)).name.first()'
-+    provisioning_info:
-+      yaql_exp: '$.provision'
-+    timeout: 180
-
- - id: upload_provision_info
-   type: upload_file
-   version: 2.1.0
-   role: ['/.*/']
--  requires: [provision_master]
-+  requires: [move_to_bootstrap]
-   required_for: [system_provision]
-   parameters:
-     path: /tmp/provision.json
-@@ -72,8 +76,8 @@
-   type: shell
-   version: 2.1.0
-   role: ['/.*/']
--  requires: [provision_master, upload_provision_info]
--  required_for: [node_reboot]
-+  requires: [move_to_bootstrap, upload_provision_info]
-+  required_for: [cobbler_disable_netboot]
-   cross-depends:
-     - name: build_deploy_image
-       role: master
-@@ -81,6 +85,19 @@
-     cmd: /usr/bin/provision
-     timeout: 3600
-
-+- id: cobbler_disable_netboot
-+  type: master_shell
-+  version: 2.1.0
-+  role: ['/.*/']
-+  requires: [system_provision]
-+  required_for: [node_reboot]
-+  parameters:
-+    strategy:
-+      type: one_by_one
-+    cmd:
-+      yaql_exp: 'concat("sh /etc/puppet/modules/osnailyfacter/modular/provision/netboot disable ", $.provision.name)'
-+    timeout: 180
-+
- - id: node_reboot
-   type: reboot
-   version: 2.1.0
-diff --git a/tests/noop/spec/hosts/master/cobbler_spec.rb b/tests/noop/spec/hosts/master/cobbler_spec.rb
-new file mode 100644
-index 0000000..f7c36fb
---- /dev/null
-+++ b/tests/noop/spec/hosts/master/cobbler_spec.rb
-@@ -0,0 +1,79 @@
-+require 'spec_helper'
-+require 'shared-examples'
-+require 'yaml'
-+manifest = 'master/cobbler.pp'
-+
-+# HIERA: master
-+# FACTS: master_centos7
-+
-+describe manifest do
-+  shared_examples 'catalog' do
-+    let(:fuel_settings) do
-+      YAML.load facts[:astute_settings_yaml]
-+    end
-+
-+    let(:bootstrap_settings) do
-+      fuel_settings.fetch 'BOOTSTRAP', {}
-+    end
-+
-+    it 'should contain class "fuel::cobbler" with correct parameters' do
-+      parameters = {
-+          :cobbler_user                => fuel_settings['cobbler']['user'],
-+          :cobbler_password            => fuel_settings['cobbler']['password'],
-+          :bootstrap_path              => bootstrap_settings.fetch('path', '/var/www/nailgun/bootstraps/active_bootstrap'),
-+          # :bootstrap_meta              => nil,
-+          :server                      => fuel_settings['ADMIN_NETWORK']['ipaddress'],
-+          :name_server                 => fuel_settings['ADMIN_NETWORK']['ipaddress'],
-+          :next_server                 => fuel_settings['ADMIN_NETWORK']['ipaddress'],
-+          :mco_user                    => fuel_settings['mcollective']['user'],
-+          :mco_pass                    => fuel_settings['mcollective']['password'],
-+          :dns_upstream                => [fuel_settings['DNS_UPSTREAM']],
-+          :dns_domain                  => fuel_settings['DNS_DOMAIN'],
-+          :dns_search                  => fuel_settings['DNS_SEARCH'],
-+          :dhcp_ipaddress              => fuel_settings['ADMIN_NETWORK']['ipaddress'],
-+          :nailgun_api_url             => "http://#{fuel_settings['ADMIN_NETWORK']['ipaddress']}:8000/api",
-+          :bootstrap_ethdevice_timeout => bootstrap_settings.fetch('ethdevice_timeout', '120'),
-+      }
-+      is_expected.to contain_class('fuel::cobbler').with parameters
-+    end
-+
-+    it { is_expected.to contain_file '/etc/resolv.conf' }
-+
-+    %w(httpd cobblerd xinetd).each do |service|
-+      it "should containt '#{service}' fuel::systemd service with correct parameters" do
-+        parameters = {
-+            :start => true,
-+            :template_path => 'fuel/systemd/restart_template.erb',
-+            :config_name => 'restart.conf',
-+        }
-+        is_expected.to contain_fuel__systemd(service).with parameters
-+      end
-+    end
-+
-+    it "should containt dnsmasq fuel::systemd service with correct parameters" do
-+        parameters = {
-+            :start => true,
-+            :template_path => 'fuel/systemd/dnsmasq_template.erb',
-+            :config_name => 'restart.conf',
-+        }
-+        is_expected.to contain_fuel__systemd('dnsmasq').with parameters
-+    end
-+
-+    it 'should declare the "fuel::dnsmasq::dhcp_range" with "default" title and correct parameters' do
-+      parameters = {
-+       :dhcp_start_address => fuel_settings['ADMIN_NETWORK']['dhcp_pool_start'],
-+       :dhcp_end_address   => fuel_settings['ADMIN_NETWORK']['dhcp_pool_end'],
-+       :dhcp_netmask       => fuel_settings['ADMIN_NETWORK']['netmask'],
-+       :dhcp_gateway       => fuel_settings['ADMIN_NETWORK']['dhcp_gateway'],
-+       :next_server        => fuel_settings['ADMIN_NETWORK']['ipaddress'],
-+       :listen_address     => fuel_settings['ADMIN_NETWORK']['ipaddress'],
-+      }
-+      is_expected.to contain_fuel__dnsmasq__dhcp_range('default').with parameters
-+      is_expected.to contain_fuel__dnsmasq__dhcp_range('default').that_notifies 'Service[dnsmasq]'
-+    end
-+
-+    it { is_expected.to contain_cobbler_profile('ubuntu_bootstrap').with_kopts(/\bip=frommedia\b/) }
-+
-+  end
-+  run_test manifest
-+end
-diff --git a/tests/noop/spec/hosts/master/dhcp-ranges_spec.rb b/tests/noop/spec/hosts/master/dhcp-ranges_spec.rb
-new file mode 100644
-index 0000000..b34675b
---- /dev/null
-+++ b/tests/noop/spec/hosts/master/dhcp-ranges_spec.rb
-@@ -0,0 +1,17 @@
-+require 'spec_helper'
-+require 'shared-examples'
-+manifest = 'master/dhcp-ranges.pp'
-+
-+# HIERA: master
-+# FACTS: master_centos7
-+
-+describe manifest do
-+  shared_examples 'catalog' do
-+    context 'with empty admin_networks' do
-+      it 'should not create any dhcp ranges' do
-+        is_expected.to have_nailgun__dnsmasq__dhcp_range_resource_count 0
-+      end
-+    end
-+  end
-+  run_test manifest
-+end
-diff --git a/tests/noop/spec/hosts/master/host_spec.rb b/tests/noop/spec/hosts/master/host_spec.rb
-index 9937ff3..66c3b4b 100644
---- a/tests/noop/spec/hosts/master/host_spec.rb
-+++ b/tests/noop/spec/hosts/master/host_spec.rb
-@@ -263,6 +263,8 @@ describe manifest do
-       should contain_firewall('102 dns_udp')
-       should contain_firewall('103 dhcp')
-       should contain_firewall('104 tftp')
-+      should contain_firewall('105 squidproxy')
-+      should contain_firewall('106 cobbler_web')
-     end
-
-     it 'should declare "openstack::clocksync" class with parameters' do
index b2291ee..2311442 100644 (file)
@@ -35,7 +35,7 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
  1 file changed, 5 insertions(+), 2 deletions(-)
 
 diff --git a/deployment/puppet/osnailyfacter/manifests/provision/build_image.pp b/deployment/puppet/osnailyfacter/manifests/provision/build_image.pp
  1 file changed, 5 insertions(+), 2 deletions(-)
 
 diff --git a/deployment/puppet/osnailyfacter/manifests/provision/build_image.pp b/deployment/puppet/osnailyfacter/manifests/provision/build_image.pp
-index 3f90aec..c1b8fbe 100644
+index dbfc785..8525e33 100644
 --- a/deployment/puppet/osnailyfacter/manifests/provision/build_image.pp
 +++ b/deployment/puppet/osnailyfacter/manifests/provision/build_image.pp
 @@ -8,6 +8,9 @@ class osnailyfacter::provision::build_image(
 --- a/deployment/puppet/osnailyfacter/manifests/provision/build_image.pp
 +++ b/deployment/puppet/osnailyfacter/manifests/provision/build_image.pp
 @@ -8,6 +8,9 @@ class osnailyfacter::provision::build_image(
@@ -46,17 +46,16 @@ index 3f90aec..c1b8fbe 100644
 +  $root_img_suffix_split = split($root_img_uri_split[-1], '[.]')
 +  $cluster_arch = $root_img_suffix_split[0]
 
 +  $root_img_suffix_split = split($root_img_uri_split[-1], '[.]')
 +  $cluster_arch = $root_img_suffix_split[0]
 
-   if $data['ironic']['enabled'] == 'true' {
-     $ironic_packages = [
-@@ -50,9 +53,9 @@ class osnailyfacter::provision::build_image(
-     $extra_params = '--data_driver nailgun_build_image'
-
-     exec { 'generate_image_with_fuel':
--      command => "fa_build_image ${build_dir} ${log_params} ${extra_params} --input_data_file ${data_file}",
-+      command => "fa_build_image ${build_dir} ${log_params} ${extra_params} --target_arch=${cluster_arch} --input_data_file ${data_file}",
-       path    => ['/bin', '/usr/bin'],
--      timeout => 1800,
-+      timeout => 3600,
-       unless  => "test -e /var/www/nailgun/bootstrap/ironic/${cluster_id}/vmlinuz",
-     }
+   if $data['ironic']['enabled'] == true {
+     # TODO(vsaienko): Use the same system packages for fuel image and ironic bootstrap, but exclude
+@@ -52,8 +55,8 @@ class osnailyfacter::provision::build_image(
+   $extra_params = '--data_driver nailgun_build_image'
+
+   exec { 'generate_image_with_fuel':
+-    command => "fa_build_image ${build_dir} ${log_params} ${extra_params} --input_data_file ${data_file}",
++    command => "fa_build_image ${build_dir} ${log_params} ${extra_params} --target_arch=${cluster_arch} --input_data_file ${data_file}",
+     path    => ['/bin', '/usr/bin'],
+-    timeout => 1800,
++    timeout => 3600,
    }
    }
+ }