Skip to content

Commit

Permalink
[provisioner] Add autoyast self update option
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolasbock committed Nov 28, 2016
1 parent c8f5af2 commit df35e12
Show file tree
Hide file tree
Showing 7 changed files with 34 additions and 1 deletion.
4 changes: 4 additions & 0 deletions chef/cookbooks/provisioner/recipes/update_nodes.rb
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,7 @@ def find_node_boot_mac_addresses(node, admin_data_net)
append << "ifcfg=dhcp4 netwait=60"
append << "squash=0" # workaround bsc#962397
append << "autoupgrade=1" if mnode[:state] == "os-upgrading"
append << "self_update"

target_platform_distro = os.gsub(/-.*$/, "")
target_platform_version = os.gsub(/^.*-/, "")
Expand Down Expand Up @@ -333,6 +334,9 @@ def find_node_boot_mac_addresses(node, admin_data_net)
web_port: web_port,
packages: packages,
repos: repos,
self_update_url: node[:provisioner][:self_update_url].gsub(
/<ADMINWEB>/, "#{admin_ip}:#{web_port}"
),
rootpw_hash: node[:provisioner][:root_password_hash] || "",
timezone: timezone,
boot_device: (mnode[:crowbar_wall][:boot_device] rescue nil),
Expand Down
15 changes: 15 additions & 0 deletions chef/cookbooks/provisioner/templates/default/autoyast.xml.erb
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,22 @@
<import_gpg_key config:type="boolean">true</import_gpg_key>
</signature-handling>
<storage/>
<% unless @self_update_url.nil? || @self_update_url.empty? -%>
<self_update_url><%= @self_update_url %></self_update_url>
<% end -%>
</general>
<report>
<errors>
<log config:type="boolean">true</log>
<show config:type="boolean">true</show>
<timeout config:type="integer">10</timeout>
</errors>
<warnings>
<log config:type="boolean">true</log>
<show config:type="boolean">true</show>
<timeout config:type="integer">10</timeout>
</warnings>
</report>
<add-on>
<add_on_products config:type="list">
<% @repos.keys.sort.each do |name| %>
Expand Down
9 changes: 9 additions & 0 deletions chef/data_bags/crowbar/migrate/provisioner/102_self_update.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
def upgrade(ta, td, a, d)
a["self_update_url"] = ta["self_update_url"]
return a, d
end

def downgrade(ta, td, a, d)
delete a["self_update_url"]
return a, d
end
3 changes: 2 additions & 1 deletion chef/data_bags/crowbar/template-provisioner.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
"access_keys": "",
"shell_prompt": "USER@HOST:CWD SUFFIX",
"enable_pxe": true,
"self_update_url": "",
"discovery": {
"append": ""
},
Expand Down Expand Up @@ -199,7 +200,7 @@
"provisioner": {
"crowbar-revision": 0,
"crowbar-applied": false,
"schema-revision": 101,
"schema-revision": 102,
"element_states": {
"provisioner-server": [ "readying", "ready", "applying" ],
"provisioner-base": [ "hardware-installing", "readying", "ready", "applying" ]
Expand Down
1 change: 1 addition & 0 deletions chef/data_bags/crowbar/template-provisioner.schema
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
"access_keys": { "type": "str", "required": true },
"shell_prompt": { "type": "str", "required": true },
"enable_pxe": { "type": "bool", "required": true },
"self_update_url": { "type": "str", "required": true },
"web_port": { "type": "int", "required": true },
"keep_existing_hostname": { "type": "bool", "required": true },
"timezone": { "type": "str", "required": true },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
%span.help-block
= t(".access_keys_hint")

= string_field :self_update_url

= string_field :shell_prompt
%span.help-block
= t(".shell_prompt_hint")
Expand Down
1 change: 1 addition & 0 deletions crowbar_framework/config/locales/provisioner/en.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ en:
edit_attributes:
access_keys: 'Additional SSH keys'
access_keys_hint: 'Each SSH key must be on its own line'
self_update_url: 'AutoYaST Self-update URL (The alias <ADMINWEB> can be used to specify the admin node)'
shell_prompt: 'Custom Shell Prompt'
shell_prompt_hint: 'You can use the placeholders USER, ALIAS, HOST, FQDN, CWD and SUFFIX to customize the shell prompt on all nodes. Add a \n for a new line within the prompt.'
serial_console: 'Serial Console'
Expand Down

0 comments on commit df35e12

Please sign in to comment.