diff --git a/chef/data_bags/crowbar/migrate/cinder/048_nfs_backend.rb b/chef/data_bags/crowbar/migrate/cinder/048_nfs_backend.rb new file mode 100644 index 0000000000..f67961508f --- /dev/null +++ b/chef/data_bags/crowbar/migrate/cinder/048_nfs_backend.rb @@ -0,0 +1,9 @@ +def upgrade(ta, td, a, d) + a["volume_defaults"]["nfs"] = ta["volume_defaults"]["nfs"] + return a, d +end + +def downgrade(ta, td, a, d) + a["volume_defaults"].delete("nfs") + return a, d +end diff --git a/chef/data_bags/crowbar/migrate/cinder/049_use_multipath.rb b/chef/data_bags/crowbar/migrate/cinder/049_use_multipath.rb new file mode 100644 index 0000000000..89236d5296 --- /dev/null +++ b/chef/data_bags/crowbar/migrate/cinder/049_use_multipath.rb @@ -0,0 +1,13 @@ +def upgrade(ta, td, a, d) + unless a.key? "use_multipath" + a["use_multipath"] = ta["use_multipath"] + end + return a, d +end + +def downgrade(ta, td, a, d) + unless ta.key? "use_multipath" + del a["use_multipath"] + end + return a, d +end diff --git a/chef/data_bags/crowbar/migrate/cinder/050_add_hitachi_options.rb b/chef/data_bags/crowbar/migrate/cinder/050_add_hitachi_options.rb new file mode 100644 index 0000000000..81969d9325 --- /dev/null +++ b/chef/data_bags/crowbar/migrate/cinder/050_add_hitachi_options.rb @@ -0,0 +1,11 @@ +def upgrade(ta, td, a, d) + unless a["volume_defaults"].key?("hitachi") + a["volume_defaults"]["hitachi"] = ta["volume_defaults"]["hitachi"] + end + return a, d +end + +def downgrade(ta, td, a, d) + a["volume_defaults"].delete("hitachi") unless ta["volume_defaults"].key?("hitachi") + return a, d +end diff --git a/chef/data_bags/crowbar/migrate/neutron/056_add_rpc_workers.rb b/chef/data_bags/crowbar/migrate/neutron/056_add_rpc_workers.rb new file mode 100644 index 0000000000..d6c213a0c0 --- /dev/null +++ b/chef/data_bags/crowbar/migrate/neutron/056_add_rpc_workers.rb @@ -0,0 +1,21 @@ +def upgrade(ta, td, a, d) + a["rpc_workers"] = ta["rpc_workers"] unless a.key?("rpc_workers") + + # From 055_add_tunnel_csum.rb + a["ovs"] ||= {} + a["ovs"]["tunnel_csum"] = ta["ovs"]["tunnel_csum"] + + + return a, d +end + +def downgrade(ta, td, a, d) + a.delete("rpc_workers") + + # From 055_add_tunnel_csum + if a.key?("ovs") + a["ovs"].delete("tunnel_csum") + end + + return a, d +end diff --git a/chef/data_bags/crowbar/migrate/neutron/057_add_cisco_apic_attributes.rb b/chef/data_bags/crowbar/migrate/neutron/057_add_cisco_apic_attributes.rb new file mode 100644 index 0000000000..c28913841d --- /dev/null +++ b/chef/data_bags/crowbar/migrate/neutron/057_add_cisco_apic_attributes.rb @@ -0,0 +1,9 @@ +def upgrade(ta, td, a, d) + a["apic"] = ta["apic"] unless a.key? "apic" + return a, d +end + +def downgrade(ta, td, a, d) + a.delete("apic") unless ta.key? "apic" + return a, d +end diff --git a/chef/data_bags/crowbar/migrate/nova/044_add_zvm_extra.rb b/chef/data_bags/crowbar/migrate/nova/044_add_zvm_extra.rb new file mode 100644 index 0000000000..e2bccf8d48 --- /dev/null +++ b/chef/data_bags/crowbar/migrate/nova/044_add_zvm_extra.rb @@ -0,0 +1,31 @@ +def upgrade(ta, td, a, d) + z = a["zvm"] + + unless z.key? "zvm_user_default_password" + z["zvm_user_default_password"] = ta["zvm"]["zvm_user_default_password"] + end + unless z.key? "zvm_user_default_privilege" + z["zvm_user_default_privilege"] = ta["zvm"]["zvm_user_default_privilege"] + end + unless z.key? "zvm_reachable_timeout" + z["zvm_reachable_timeout"] = ta["zvm"]["zvm_reachable_timeout"] + end + + return a, d +end + +def downgrade(ta, td, a, d) + z = a["zvm"] + + unless ta["zvm"].key? "zvm_user_default_password" + z.delete("zvm_user_default_password") + end + unless ta["zvm"].key? "zvm_user_default_privilege" + z.delete("zvm_user_default_privilege") + end + unless ta["zvm"].key? "zvm_reachable_timeout" + z.delete("zvm_reachable_timeout") + end + + return a, d +end diff --git a/chef/data_bags/crowbar/migrate/nova/045_add_zvm_xcat_network.rb b/chef/data_bags/crowbar/migrate/nova/045_add_zvm_xcat_network.rb new file mode 100644 index 0000000000..af93aa1450 --- /dev/null +++ b/chef/data_bags/crowbar/migrate/nova/045_add_zvm_xcat_network.rb @@ -0,0 +1,15 @@ +def upgrade(ta, td, a, d) + unless a["zvm"].key? "zvm_xcat_network" + a["zvm"]["zvm_xcat_network"] = "admin" + end + + return a, d +end + +def downgrade(ta, td, a, d) + unless ta["zvm"].key? "zvm_xcat_network" + a["zvm"].delete("zvm_xcat_network") + end + + return a, d +end diff --git a/chef/data_bags/crowbar/migrate/nova/046_add_cross_az_attach.rb b/chef/data_bags/crowbar/migrate/nova/046_add_cross_az_attach.rb new file mode 100644 index 0000000000..af5551d5ae --- /dev/null +++ b/chef/data_bags/crowbar/migrate/nova/046_add_cross_az_attach.rb @@ -0,0 +1,13 @@ +def upgrade(ta, td, a, d) + unless a.key? "cross_az_attach" + a["cross_az_attach"] = ta["cross_az_attach"] + end + return a, d +end + +def downgrade(ta, td, a, d) + unless ta.key? "cross_az_attach" + a.delete("cross_az_attach") + end + return a, d +end diff --git a/chef/data_bags/crowbar/migrate/nova/047_add_migration_network.rb b/chef/data_bags/crowbar/migrate/nova/047_add_migration_network.rb new file mode 100644 index 0000000000..92bbefa18b --- /dev/null +++ b/chef/data_bags/crowbar/migrate/nova/047_add_migration_network.rb @@ -0,0 +1,13 @@ +def upgrade(ta, td, a, d) + unless a.key? "migration" + a["migration"] = ta["migration"] + end + return a, d +end + +def downgrade(ta, td, a, d) + unless ta.key? "migration" + a.delete("migration") + end + return a, d +end diff --git a/chef/data_bags/crowbar/migrate/nova/048_add_cache_manager_interval.rb b/chef/data_bags/crowbar/migrate/nova/048_add_cache_manager_interval.rb new file mode 100644 index 0000000000..87d234dc4c --- /dev/null +++ b/chef/data_bags/crowbar/migrate/nova/048_add_cache_manager_interval.rb @@ -0,0 +1,13 @@ +def upgrade(ta, td, a, d) + unless a.key? "image_cache_manager_interval" + a["image_cache_manager_interval"] = ta["image_cache_manager_interval"] + end + return a, d +end + +def downgrade(ta, td, a, d) + unless ta.key? "image_cache_manager_interval" + a.delete("image_cache_manager_interval") + end + return a, d +end diff --git a/chef/data_bags/crowbar/template-cinder.json b/chef/data_bags/crowbar/template-cinder.json index c2c05b377b..a6dc6abfbf 100644 --- a/chef/data_bags/crowbar/template-cinder.json +++ b/chef/data_bags/crowbar/template-cinder.json @@ -18,6 +18,7 @@ "pool_timeout": 30, "rpc_response_timeout": 60, "use_multi_backend": true, + "use_multipath": false, "volume_defaults": { "raw": { "volume_name": "cinder-volumes", @@ -72,6 +73,10 @@ "pool": "", "iscsi_ip": "" }, + "nfs": { + "nfs_shares": "", + "nfs_mount_options": "" + }, "rbd": { "use_crowbar": true, "config_file": "/etc/ceph/ceph.conf", @@ -89,6 +94,31 @@ "ca_file": "", "insecure": false }, + "hitachi": { + "storage_protocol": "fc", + "hitachi_add_chap_user": false, + "hitachi_async_copy_check_interval": 10, + "hitachi_auth_method": "None", + "hitachi_auth_password": "HBSD-CHAP-password", + "hitachi_auth_user": "HBSD-CHAP-user", + "hitachi_copy_check_interval": 3, + "hitachi_copy_speed": 3, + "hitachi_default_copy_method": "FULL", + "hitachi_group_range": "None", + "hitachi_group_request": false, + "hitachi_horcm_add_conf": true, + "hitachi_horcm_numbers": "200,201", + "hitachi_horcm_password": "None", + "hitachi_horcm_resource_lock_timeout": 600, + "hitachi_horcm_user": "None", + "hitachi_ldev_range": "None", + "hitachi_pool_id": "None", + "hitachi_serial_number": "None", + "hitachi_target_ports": "None", + "hitachi_thin_pool_id": "None", + "hitachi_unit_name": "None", + "hitachi_zoning_request": false + }, "manual": { "driver": "", "config": "" @@ -131,7 +161,7 @@ "cinder": { "crowbar-revision": 0, "crowbar-applied": false, - "schema-revision": 47, + "schema-revision": 50, "element_states": { "cinder-controller": [ "readying", "ready", "applying" ], "cinder-volume": [ "readying", "ready", "applying" ] diff --git a/chef/data_bags/crowbar/template-cinder.schema b/chef/data_bags/crowbar/template-cinder.schema index a2ef07d260..63e0b9f91f 100644 --- a/chef/data_bags/crowbar/template-cinder.schema +++ b/chef/data_bags/crowbar/template-cinder.schema @@ -27,6 +27,7 @@ "pool_timeout": { "type": "int", "required": true }, "rpc_response_timeout": { "type": "int", "required": true }, "use_multi_backend": { "type": "bool", "required": true }, + "use_multipath": { "type": "bool", "required": true }, "volume_defaults": { "type": "map", "required": true, @@ -96,6 +97,12 @@ "iscsi_ip": { "type": "str", "required": true } } }, + "nfs": { + "type": "map", "mapping": { + "nfs_shares": { "type": "str", "required": true }, + "nfs_mount_options": { "type": "str", "required": true } + } + }, "rbd": { "type": "map", "mapping": { "use_crowbar": { "type": "bool", "required": true }, @@ -117,6 +124,33 @@ "insecure": { "type" : "bool", "required" : true } } }, + "hitachi": { + "type": "map", "mapping": { + "storage_protocol": { "type" : "str", "required" : true }, + "hitachi_add_chap_user": { "type" : "bool", "required" : true }, + "hitachi_async_copy_check_interval": { "type": "int", "required": true }, + "hitachi_auth_method": { "type": "str", "required": true }, + "hitachi_auth_password": { "type": "str", "required": true }, + "hitachi_auth_user": { "type": "str", "required": true }, + "hitachi_copy_check_interval": { "type": "int", "required": true }, + "hitachi_copy_speed": { "type": "int", "required": true }, + "hitachi_default_copy_method": { "type": "str", "required": true }, + "hitachi_group_range": { "type": "str", "required": true }, + "hitachi_group_request": { "type" : "bool", "required" : true }, + "hitachi_horcm_add_conf": { "type" : "bool", "required" : true }, + "hitachi_horcm_numbers": { "type": "str", "required": true }, + "hitachi_horcm_password": { "type": "str", "required": true }, + "hitachi_horcm_resource_lock_timeout": { "type": "int", "required": true }, + "hitachi_horcm_user": { "type": "str", "required": true }, + "hitachi_ldev_range": { "type": "str", "required": true }, + "hitachi_pool_id": { "type": "str", "required": true }, + "hitachi_serial_number": { "type": "str", "required": true }, + "hitachi_target_ports": { "type": "str", "required": true }, + "hitachi_thin_pool_id": { "type": "str", "required": true }, + "hitachi_unit_name": { "type": "str", "required": true }, + "hitachi_zoning_request": { "type" : "bool", "required" : true } + } + }, "manual": { "type": "map", "mapping": { "driver": { "type": "str", "required": true }, @@ -199,6 +233,12 @@ "iscsi_ip": { "type": "str", "required": true } } }, + "nfs": { + "type": "map", "mapping": { + "nfs_shares": { "type": "str", "required": true }, + "nfs_mount_options": { "type": "str", "required": true } + } + }, "rbd": { "type": "map", "mapping": { "use_crowbar": { "type": "bool", "required": true }, @@ -220,6 +260,33 @@ "insecure": { "type" : "bool", "required" : true } } }, + "hitachi": { + "type": "map", "mapping": { + "storage_protocol": { "type" : "str", "required" : true }, + "hitachi_add_chap_user": { "type" : "bool", "required" : true }, + "hitachi_async_copy_check_interval": { "type": "int", "required": true }, + "hitachi_auth_method": { "type": "str", "required": true }, + "hitachi_auth_password": { "type": "str", "required": true }, + "hitachi_auth_user": { "type": "str", "required": true }, + "hitachi_copy_check_interval": { "type": "int", "required": true }, + "hitachi_copy_speed": { "type": "int", "required": true }, + "hitachi_default_copy_method": { "type": "str", "required": true }, + "hitachi_group_range": { "type": "str", "required": true }, + "hitachi_group_request": { "type" : "bool", "required" : true }, + "hitachi_horcm_add_conf": { "type" : "bool", "required" : true }, + "hitachi_horcm_numbers": { "type": "str", "required": true }, + "hitachi_horcm_password": { "type": "str", "required": true }, + "hitachi_horcm_resource_lock_timeout": { "type": "int", "required": true }, + "hitachi_horcm_user": { "type": "str", "required": true }, + "hitachi_ldev_range": { "type": "str", "required": true }, + "hitachi_pool_id": { "type": "str", "required": true }, + "hitachi_serial_number": { "type": "str", "required": true }, + "hitachi_target_ports": { "type": "str", "required": true }, + "hitachi_thin_pool_id": { "type": "str", "required": true }, + "hitachi_unit_name": { "type": "str", "required": true }, + "hitachi_zoning_request": { "type" : "bool", "required" : true } + } + }, "manual": { "type": "map", "mapping": { "driver": { "type": "str", "required": true }, diff --git a/chef/data_bags/crowbar/template-neutron.json b/chef/data_bags/crowbar/template-neutron.json index aee7374a0d..b947f750f6 100644 --- a/chef/data_bags/crowbar/template-neutron.json +++ b/chef/data_bags/crowbar/template-neutron.json @@ -11,6 +11,7 @@ "verbose": true, "create_default_networks": true, "dhcp_domain": "openstack.local", + "rpc_workers": 1, "use_lbaas": true, "use_lbaasv2": false, "lbaasv2_driver": "haproxy", @@ -32,6 +33,52 @@ "vni_end": 99999, "multicast_group": "239.1.1.1" }, + "ovs": { + "tunnel_csum": false + }, + "apic": { + "hosts": "", + "system_id": "soc", + "username": "admin", + "password": "", + "opflex": { + "peer_ip": "", + "peer_port": 8009, + "encap": "vxlan", + "vxlan": { + "encap_iface": "br-int_vxlan0", + "uplink_iface": "vlan.4093", + "uplink_vlan": 4093, + "remote_ip": "", + "remote_port": 8472 + }, + "vlan": { + "encap_iface": "" + } + }, + "apic_switches": { + "101": { + "switch_ports": { + "58-00-00-00-00-00" : { + "switch_port": "1/2" + }, + "58-00-00-00-00-01" : { + "switch_port": "1/33" + } + } + }, + "102": { + "switch_ports": { + "58-00-00-00-00-02" : { + "switch_port": "1/3" + }, + "58-00-00-00-00-03" : { + "switch_port": "1/34" + } + } + } + } + }, "allow_overlapping_ips": true, "use_syslog": false, "database_instance": "none", @@ -116,7 +163,7 @@ "neutron": { "crowbar-revision": 0, "crowbar-applied": false, - "schema-revision": 55, + "schema-revision": 57, "element_states": { "neutron-server": [ "readying", "ready", "applying" ], "neutron-network": [ "readying", "ready", "applying" ] diff --git a/chef/data_bags/crowbar/template-neutron.schema b/chef/data_bags/crowbar/template-neutron.schema index e1305baf7b..35ae12b07f 100644 --- a/chef/data_bags/crowbar/template-neutron.schema +++ b/chef/data_bags/crowbar/template-neutron.schema @@ -16,6 +16,7 @@ "keystone_instance": { "type": "str", "required": true }, "create_default_networks": { "type": "bool", "required": true }, "dhcp_domain": { "type": "str", "required": true }, + "rpc_workers": { "type": "int", "required": true }, "use_lbaas": { "type": "bool", "required": true }, "use_lbaasv2": { "type": "bool", "required": true }, "lbaasv2_driver": { "type": "str", "required": true }, @@ -37,6 +38,39 @@ "vni_end": { "type" : "int", "required" : true }, "multicast_group": { "type" : "str", "required": true } }}, + "ovs": { "type": "map", "required": true, "mapping": { + "tunnel_csum": { "type": "bool", "required": true } + }}, + "apic": { "type": "map", "required": true, "mapping": { + "hosts": { "type" : "str", "required" : true }, + "system_id": { "type" : "str", "required" : true }, + "username": { "type" : "str", "required": true }, + "password": { "type" : "str", "required": true }, + "opflex": { "type": "map", "required": true, "mapping": { + "peer_ip": { "type": "str", "required" : true }, + "peer_port": { "type": "int", "required" : true }, + "encap": { "type": "str", "required": true }, + "vxlan": { "type": "map", "required": true, "mapping" : { + "encap_iface": {"type": "str", "required": true }, + "uplink_iface": { "type": "str", "required": true }, + "uplink_vlan": { "type": "int", "required": true }, + "remote_ip": { "type": "str", "required": true }, + "remote_port": { "type": "int", "required": true } + }}, + "vlan": { "type": "map", "required": true, "mapping": { + "encap_iface": { "type": "str", "required": true } + }} + }}, + "apic_switches": { "type" : "map", "required" : true, "mapping" : { + = : { "type" : "map", "required" : true, "mapping" : { + "switch_ports": { "type" : "map", "required" : true, "mapping" : { + = : { "type" : "map", "required" : true, "mapping" : { + "switch_port": { "type": "str", "required": true }} + }} + }} + }} + } + }}, "allow_overlapping_ips": { "type": "bool", "required": true }, "cisco_switches": { "type" : "map", diff --git a/chef/data_bags/crowbar/template-nova.json b/chef/data_bags/crowbar/template-nova.json index 99735893e1..dc87478263 100644 --- a/chef/data_bags/crowbar/template-nova.json +++ b/chef/data_bags/crowbar/template-nova.json @@ -20,6 +20,10 @@ "setup_shared_instance_storage": false, "use_shared_instance_storage": false, "use_migration": false, + "image_cache_manager_interval": -1, + "migration": { + "network": "admin" + }, "cross_az_attach": true, "use_syslog": false, "neutron_url_timeout": 30, @@ -57,6 +61,7 @@ "zvm_xcat_server": "", "zvm_xcat_username": "", "zvm_xcat_password": "", + "zvm_xcat_network": "admin", "zvm_diskpool": "", "zvm_diskpool_type": "", "zvm_host": "", @@ -65,6 +70,9 @@ "zvm_xcat_master": "", "zvm_image_default_password": "rootpass", "zvm_config_drive_inject_password": true, + "zvm_reachable_timeout": 600, + "zvm_user_default_password": "dfltpass", + "zvm_user_default_privilege": "g", "zvm_xcat_ssh_key": "" }, "ssl": { @@ -93,7 +101,7 @@ "nova": { "crowbar-revision": 0, "crowbar-applied": false, - "schema-revision": 43, + "schema-revision": 48, "element_states": { "nova-controller": [ "readying", "ready", "applying" ], "nova-compute-docker": [ "readying", "ready", "applying" ], diff --git a/chef/data_bags/crowbar/template-nova.schema b/chef/data_bags/crowbar/template-nova.schema index bd746b40da..8ac3a6e98f 100644 --- a/chef/data_bags/crowbar/template-nova.schema +++ b/chef/data_bags/crowbar/template-nova.schema @@ -27,6 +27,14 @@ "max_header_line": { "type": "int", "required": true }, "trusted_flavors": { "type": "bool", "required": true }, "use_migration": { "type": "bool", "required": true }, + "image_cache_manager_interval": { "type": "int", "required": true }, + "migration": { + "type": "map", + "required": true, + "mapping": { + "network": { "type": "str", "required": true } + } + }, "cross_az_attach": { "type": "bool", "required": true }, "setup_shared_instance_storage": { "type": "bool", "required": true }, "use_shared_instance_storage": { "type": "bool", "required": true }, @@ -86,6 +94,7 @@ "zvm_xcat_server": { "type": "str", "required": true }, "zvm_xcat_username": { "type": "str", "required": true }, "zvm_xcat_password": { "type": "str", "required": true }, + "zvm_xcat_network": { "type": "str", "required": true }, "zvm_diskpool": { "type": "str", "required": true }, "zvm_diskpool_type": { "type": "str", "required": true }, "zvm_host": { "type": "str", "required": true }, @@ -93,6 +102,9 @@ "zvm_user_profile": { "type": "str", "required": true }, "zvm_xcat_master": { "type": "str", "required": true }, "zvm_image_default_password": { "type": "str", "required": true }, + "zvm_user_default_password": { "type": "str", "required": true }, + "zvm_user_default_privilege": { "type": "str", "required": true }, + "zvm_reachable_timeout": { "type": "int", "required": true }, "zvm_config_drive_inject_password": { "type": "bool", "required": true }, "zvm_xcat_ssh_key": { "type": "str", "required": true } }