From f221993becc58bcba6516e3ca759fa427aaa15e8 Mon Sep 17 00:00:00 2001 From: Alexandru Avadanii Date: Tue, 21 Mar 2017 18:21:10 +0100 Subject: fuel-library: Revert cobbler removal While at it, remove unrelated patch that was merged upstream. JIRA: ARMBAND-237 Change-Id: I01889d100e2f8adab34a60389e602d7d48f5b973 Signed-off-by: Alexandru Avadanii (cherry picked from commit 1718b5cd796576a1d7d10cd4b2c4b7488d5a20b0) --- ...Revert-Fix-deletion-graph-no-cobbler-mode.patch | 501 +++++++++++++++++++++ 1 file changed, 501 insertions(+) create mode 100644 patches/fuel-library/0002-Revert-Fix-deletion-graph-no-cobbler-mode.patch (limited to 'patches/fuel-library/0002-Revert-Fix-deletion-graph-no-cobbler-mode.patch') 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 new file mode 100644 index 00000000..bf180cdb --- /dev/null +++ b/patches/fuel-library/0002-Revert-Fix-deletion-graph-no-cobbler-mode.patch @@ -0,0 +1,501 @@ +From: Alexandru Avadanii +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 -- cgit 1.2.3-korg