From 97497a1d009d327c2977aa7b88ef844116198eea Mon Sep 17 00:00:00 2001 From: Jan Klare Date: Fri, 22 Apr 2016 09:57:37 -0500 Subject: [PATCH] update the README after refactoring and align it with other cookbooks * also removed the empty default recipe Change-Id: Id6e3750f9ae78178ecf4e4370ac6b6b3dbc599c6 --- README.md | 468 +++++++-------------------------------------- metadata.rb | 17 -- recipes/default.rb | 19 -- 3 files changed, 65 insertions(+), 439 deletions(-) delete mode 100644 recipes/default.rb diff --git a/README.md b/README.md index a34d704f..5bad0450 100644 --- a/README.md +++ b/README.md @@ -1,441 +1,101 @@ Description =========== -This cookbook installs the OpenStack Compute service **Nova** as part of the OpenStack reference deployment Chef for OpenStack. The https://github.com/mattray/openstack-chef-repo contains documentation for using this cookbook in the context of a full OpenStack deployment. Nova is currently installed from packages. +This cookbook installs the OpenStack Compute service **Nova** as part of the +OpenStack reference deployment Chef for OpenStack. The +https://github.com/openstack/openstack-chef-repo contains documentation for using +this cookbook in the context of a full OpenStack deployment. Nova is currently +installed from packages. -http://nova.openstack.org +http://docs.openstack.org/mitaka/config-reference/compute.html Requirements ============ -Chef 12 or higher required. +- Chef 12 or higher +- chefdk 0.9.0 for testing (also includes berkshelf for cookbook dependency + resolution) + +Platform +======== + +- ubuntu +- redhat +- centos Cookbooks ---------- +========= The following cookbooks are dependencies: -* openstack-common -* openstack-identity -* openstack-image -* openstack-network -* selinux (Fedora) -* python - -Usage -===== - -api-ec2 ----- -- This is obsoleted by https://github.com/cloudscaling/cookbook-openstack-ec2 - -api-metadata ----- -- Includes recipe `nova-common` -- Installs the nova metadata package - -api-os-compute ----- -- Includes recipe `nova-common` -- Installs OS API and configures the service and endpoints in keystone - -client ----- -- Install the nova client packages - -compute ----- -- Includes recipes `nova-common`, `api-metadata`, `network` -- Installs nova-compute service - -libvirt ----- -- Installs libvirt, used by nova compute for management of the virtual machine environment - -libvirt_rbd ----- -- Prepares the compute node for interaction with a Ceph cluster for block storage (RBD) -- Depends on `ceph::_common`, `ceph::install`, and `ceph::conf` for packages and cluster connectivity (i.e. a proper `/etc/ceph/ceph.conf`) - -network ----- -- Includes recipe `nova-common` -- Installs nova network service - -nova-cert ----- -- Installs nova-cert service - -nova-common ----- -- May include recipe `selinux` (Fedora) -- Builds the basic nova.conf config file with details of the rabbitmq, mysql, glance and keystone servers - -nova-setup ----- -- Includes recipes `nova-common` -- Sets up the nova networks with `nova-manage` - -scheduler ----- -- Includes recipe `nova-common` -- Installs nova scheduler service - -vncproxy ----- -- Includes recipe `nova-common` -- Installs and configures the vncproxy service for console access to VMs - -serialproxy ----- -- Includes recipe `nova-common` -- Installs and configures the serialproxy service for serial console access to VMs +- 'ceph', '>= 0.8.1' +- 'openstack-common', '>= 13.0.0' +- 'openstack-identity', '>= 13.0.0' +- 'openstack-image', '>= 13.0.0' +- 'openstack-network', '>= 13.0.0' +- 'python', '~> 1.4.6' Attributes ========== -Openstack Compute attributes are in the attribute namespace ["openstack"]["compute"]. +Please see the extensive inline documentation in `attributes/*.rb` for +descriptions of all the settable attributes for this cookbook. -* `openstack["compute"]["identity_service_chef_role"]` - The name of the Chef role that sets up the Keystone Service API -* `openstack["compute"]["user"]` - User nova services run as -* `openstack["compute"]["group"]` - Group nova services run as -* `openstack["compute"]["db"]["username"]` - Username for nova database access -* `openstack["compute"]["service_tenant_name"]` - Tenant name used by nova when interacting with keystone -* `openstack["compute"]["service_user"]` - User name used by nova when interacting with keystone -* `openstack["compute"]["service_role"]` - User role used by nova when interacting with keystone -* `openstack["compute"]["floating_cmd"]` - Path to the `nova-manage floating create` wrapper script. -* `openstack["compute"]["osapi_compute_workers"]` - Number of api workers -* `openstack["compute"]["metadata_workers"]` - Number of metadata workders -* `openstack["compute"]["config"]["volume_api_class"]` - API Class used for Volume support -* `openstack['compute']['driver'] = Driver to use for controlling virtualization -* `openstack['compute']['manager'] = Full class name for the Manager for compute -* `openstack['compute']['default_ephemeral_format'] = The default format an ephemeral_volume will be formatted with on creation -* `openstack['compute']['preallocate_images'] = VM image preallocation mode -* `openstack['compute']['use_cow_images'] = Whether to use cow images -* `openstack['compute']['vif_plugging_is_fatal'] = Fail instance boot if vif plugging fails -* `openstack['compute']['vif_plugging_timeout'] = Number of seconds to wait for neutron vif plugging events to arrive before continuing or failing -* `openstack['compute']['ssl_only'] = Disallow non-encrypted connections -* `openstack['compute']['cert'] = SSL certificate file -* `openstack['compute']['key'] = SSL key file (if separate from cert) -* `openstack['compute']['dbsync_timeout']` - Set dbsync command timeout value -* `openstack["compute"]["compute"]["api"]["protocol"]` - Protocol used for the OS API -* `openstack["compute"]["compute"]["api"]["port"]` - Port on which OS API runs -* `openstack["compute"]["compute"]["api"]["version"]` - Version of the OS API used -* `openstack["compute"]["compute"]["adminURL"]` - URL used to access the OS API for admin functions -* `openstack["compute"]["compute"]["internalURL"]` - URL used to access the OS API for user functions from an internal network -* `openstack["compute"]["compute"]["publicURL"]` - URL used to access the OS API for user functions from an external network -* `openstack["compute"]["compute"]["dnsmasq_config_file"]` - Override the default dnsmasq settings with this file -* `openstack["compute"]["config"]["availability_zone"]` - Nova availability zone. Usually set at the node level to place a compute node in another az -* `openstack["compute"]["config"]["default_schedule_zone"]` - The availability zone to schedule instances in when no az is specified in the request -* `openstack["compute"]["config"]["force_raw_images"]` - Convert all images used as backing files for instances to raw (we default to false) -* `openstack["compute"]["config"]["allow_same_net_traffic"]` - Disable security groups for internal networks (we default to true) -* `openstack["compute"]["config"]["osapi_max_limit"]` - The maximum number of items returned in a single response from a collection resource (default is 1000) -* `openstack["compute"]["config"]["osapi_compute_link_prefix"]` - Base URL that will be presented to users in links to the OpenStack Compute API (default is nil) -* `openstack["compute"]["config"]["osapi_glance_link_prefix"]` - Base URL that will be presented to users in links to glance resources(default is nil) -* `openstack["compute"]["config"]["cpu_allocation_ratio"]` - Virtual CPU to Physical CPU allocation ratio (default 16.0) -* `openstack["compute"]["config"]["ram_allocation_ratio"]` - Virtual RAM to Physical RAM allocation ratio (default 1.5) -* `openstack["compute"]["config"]["snapshot_image_format"]` - Snapshot image format (valid options are : raw, qcow2, vmdk, vdi [we default to qcow2]). -* `openstack["compute"]["config"]["start_guests_on_host_boot"]` - Whether to restart guests when the host reboots -* `openstack["compute"]["config"]["resume_guests_state_on_host_boot"]` - Whether to start guests that were running before the host rebooted -* `openstack["compute"]["config"]["disk_allocation_ratio"]` - Virtual disk to physical disk allocation ratio (default 1.0) -* `openstack["compute"]["config"]["allow_resize_to_same_host"]` - Allow destination machine to match source for resize. Useful when testing in single-host environments (default is false) -* `openstack["compute"]["config"]["resize_confirm_window"]` - Automatically confirm resizes after N seconds, Set to 0 to disable (default is 0) -* `openstack["compute"]["config"]["reserved_host_memory_mb"]` - Amount of disk in MB to reserve for the host (default is 512) -* `openstack["compute"]["config"]["disk_cachemodes"]` - Cachemodes to use for different disk types e.g: "file=directsync,block=none". Valid cache values are "default", "none", "writethrough", "writeback", "directsync" and "unsafe". -* `openstack["compute"]["config"]["live_migration_retry_count"]` - Number of 1 second retries needed in live_migration -* `openstack["compute"]["config"]["flat_injected"]` - Whether to attempt to inject network setup into guest. Used by config_drive support. -* `openstack["compute"]["config"]["config_drive_format"]` - Config drive format. -* `openstack["compute"]["api"]["signing_dir"]` - Keystone PKI needs a location to hold the signed tokens -* `openstack["compute"]["api"]["signing_dir"]` - Keystone PKI needs a location to hold the signed tokens -* `openstack["compute"]["rpc_thread_pool_size"]` - Size of RPC thread pool (default 64) -* `openstack["compute"]["rpc_conn_pool_size"]` - Size of RPC connection pool (default 30) -* `openstack["compute"]["rpc_response_timeout"]` - Seconds to wait for a response from call or multicall (default 60) -* `openstack['compute']['api']['auth']['version']` - Select v2.0 or v3.0. Default v2.0. The auth API version used to interact with identity service. -* `openstack['compute']['api']['auth']['memcached_servers']` - A list of memcached server(s) for caching -* `openstack['compute']['api']['auth']['memcache_security_strategy']` - Whether token data should be authenticated or authenticated and encrypted. Acceptable values are MAC or ENCRYPT. -* `openstack['compute']['api']['auth']['memcache_secret_key']` - This string is used for key derivation. -* `openstack['compute']['api']['auth']['hash_algorithms']` - Hash algorithms to use for hashing PKI tokens. -* `openstack['compute']['api']['auth']['cafile']` - A PEM encoded Certificate Authority to use when verifying HTTPs connections. -* `openstack['compute']['api']['auth']['insecure']` - Whether to allow the client to perform insecure SSL (https) requests. -* `openstack['compute']['conductor']['workers']` = Number of conductor workers +Note that all attributes are in the `default['openstack']` "namespace" +The usage of attributes to generate the node.conf is decribed in the +openstack-common cookbook. -MQ attributes -------------- -* `openstack["compute"]["mq"]["service_type"]` - Select qpid or rabbitmq. default rabbitmq -TODO: move rabbit parameters under openstack["compute"]["mq"] -* `openstack["compute"]["rabbit"]["username"]` - Username for nova rabbit access -* `openstack["compute"]["rabbit"]["vhost"]` - The rabbit vhost to use -* `openstack["compute"]["rabbit"]["port"]` - The rabbit port to use -* `openstack["compute"]["rabbit"]["host"]` - The rabbit host to use (must set when `openstack["compute"]["rabbit"]["ha"]` false). -* `openstack["compute"]["rabbit"]["ha"]` - Whether or not to use rabbit ha -* `openstack["compute"]["rabbit"]["heartbeat_timeout_threshold"]` - Number of seconds after which the Rabbit broker is considered down if heartbeat's keep-alive fails (0 disable the heartbeat) -* `openstack["compute"]["rabbit"]["heartbeat_rate"]` - How often times during the heartbeat_timeout_threshold we check the heartbeat +Recipes +======= -* `openstack["compute"]["mq"]["qpid"]["host"]` - The qpid host to use -* `openstack["compute"]["mq"]["qpid"]["port"]` - The qpid port to use -* `openstack["compute"]["mq"]["qpid"]["qpid_hosts"]` - Qpid hosts. TODO. use only when ha is specified. -* `openstack["compute"]["mq"]["qpid"]["username"]` - Username for qpid connection -* `openstack["compute"]["mq"]["qpid"]["password"]` - Password for qpid connection -* `openstack["compute"]["mq"]["qpid"]["sasl_mechanisms"]` - Space separated list of SASL mechanisms to use for auth -* `openstack["compute"]["mq"]["qpid"]["reconnect_timeout"]` - The number of seconds to wait before deciding that a reconnect attempt has failed. -* `openstack["compute"]["mq"]["qpid"]["reconnect_limit"]` - The limit for the number of times to reconnect before considering the connection to be failed. -* `openstack["compute"]["mq"]["qpid"]["reconnect_interval_min"]` - Minimum number of seconds between connection attempts. -* `openstack["compute"]["mq"]["qpid"]["reconnect_interval_max"]` - Maximum number of seconds between connection attempts. -* `openstack["compute"]["mq"]["qpid"]["reconnect_interval"]` - Equivalent to setting qpid_reconnect_interval_min and qpid_reconnect_interval_max to the same value. -* `openstack["compute"]["mq"]["qpid"]["heartbeat"]` - Seconds between heartbeat messages sent to ensure that the connection is still alive. -* `openstack["compute"]["mq"]["qpid"]["protocol"]` - Protocol to use. Default tcp. -* `openstack["compute"]["mq"]["qpid"]["tcp_nodelay"]` - Disable the Nagle algorithm. default disabled. +## openstack-compute::api-metadata +- Installs the nova metadata package -Glance Attributes ------------------ +## openstack-compute::api-os-compute +- Installs OS API and configures the service and endpoints in keystone -* `openstack["compute"]["image"]["glance_api_insecure"]` - If True, this indicates that glance-api allows the client to perform insecure SSL(https) requests, this should be the same as the setting in the glance-api service. -* `openstack["compute"]["image"]["ssl"]["ca_file"]` - CA certificate file to use to verify connecting clients. -* `openstack["compute"]["image"]["ssl"]["cert_file"]` - Certificate file to use when starting the server securely. -* `openstack["compute"]["image"]["ssl"]["key_file"]` - Private key file to use when starting the server securely. +## openstack-compute::client +- Install the nova client packages -Cinder Attributes ------------------ +## openstack-compute::compute +- Installs nova-compute service -* `openstack["compute"]["block-storage"]["cinder_ca_certificates_file"]` - Location of ca certificates file to use for cinder client requests. -* `openstack["compute"]["block-storage"]["cinder_api_insecure"]` - Allow to perform insecure SSL requests to cinder. -* `openstack["compute"]["block-storage"]["cinder_catalog_info"]` - Info to match when looking for cinder in the service catalog. +## openstack-compute::compute +- Installs nova-conductor service -Networking Attributes ---------------------- +## openstack-compute::identity_registration +- Registers the nova endpoints with keystone -Basic networking configuration is controlled with the following attributes: +## openstack-compute::libvirt +- Installs libvirt, used by nova compute for management of the virtual machine + environment -* `openstack["compute"]["network"]["network_manager"]` - Defaults to "nova.network.manager.FlatDHCPManager". Set to "nova.network.manager.VlanManager" to configure VLAN Networking. -* `openstack["compute"]["network"]["dmz_cidr"]` - A CIDR for the range of IP addresses that will NOT be SNAT'ed by the nova network controller -* `openstack["compute"]["network"]["public_interface"]` - Defaults to eth0. Refers to the network interface used for VM addresses`. -* `openstack["compute"]["network"]["vlan_interface"]` - Defaults to eth0. Refers to the network interface used for VM addresses when VMs are assigned in a VLAN subnet. -* `openstack["compute"]["network"]["auto_assign_floating_ip"]` - Defaults to false. Autoassigning floating ip to VM, this should be only for nova network. -* `openstack["compute"]["network"]["force_dhcp_release"]` - If True, send a dhcp release on instance termination. (Default is false on "fedora", "redhat", "centos") -* `openstack["compute"]["network"]["use_ipv6"]` - If True, use ipv6 support. -* `openstack["compute"]["network"]["neutron"]["api_insecure"]` - If True, this indicates that neutron-api allows the client to perform insecure SSL (https) requests. This should be the same as the setting in the neutron api service. +## openstack-compute::libvirt_rbd +- Prepares the compute node for interaction with a Ceph cluster for block + storage (RBD) +- Depends on `ceph::_common`, `ceph::install`, and `ceph::conf` for packages and + cluster connectivity (i.e. a proper `/etc/ceph/ceph.conf`) -You can have the cookbook automatically create networks in Nova for you by adding a Hash to the `openstack["compute"]["networks"]` Array. -**Note**: The `openstack-compute::nova-setup` recipe contains the code that creates these pre-defined networks. +## openstack-compute::nova-cert +- Installs nova-cert service -Each Hash must contain the following keys: +## openstack-compute::nova-common +- Builds the basic nova.conf config file with details of the rabbitmq, mysql, + glance and keystone servers -* `ipv4_cidr` - The CIDR representation of the subnet. Supplied to the nova-manage network create command as `--fixed_ipv4_range` -* `label` - A name for the network +## openstack-compute::nova-setup +- Sets up the nova networks with `nova-manage` -In addition to the above required keys in the Hash, the below keys are optional: +## openstack-compute::scheduler +- Installs nova scheduler service -* `num_networks` - Passed as-is to `nova-manage network create` as the `--num_networks` option. This overrides the default `num_networks` nova.conf value. -* `network_size` - Passed as-is to `nova-manage network create` as the `--network_size` option. This overrides the default `network_size` nova.conf value. -* `bridge` - Passed as-is to `nova-manage network create` as the `--bridge` option. -* `bridge_interface` -- Passed as-is to `nova-manage network create` as the `--bridge_interface` option. This overrides the default `vlan_interface` nova.conf value. -* `dns1` - Passed as-is to `nova-manage network create` as the `--dns1` option. -* `dns2` - Passed as-is to `nova-manage network create` as the `--dns2` option. -* `multi_host` - Passed as-is to `nova-manage network create` as the `--multi_host` option. Values should be either 'T' or 'F' -* `vlan` - Passed as-is to `nova-manage network create` as the `--vlan` option. Should be the VLAN tag ID. +## openstack-compute::vncproxy +- Installs and configures the vncproxy service for console access to VMs -By default, the `openstack["compute"]["networks"]` array has two networks: +## openstack-compute::serialproxy +- Installs and configures the serialproxy service for serial console access to VMs -* `openstack["compute"]["networks"]["public"]["label"]` - Network label to be assigned to the public network on creation -* `openstack["compute"]["networks"]["public"]["ipv4_cidr"]` - Network to be created (in CIDR notation, e.g., 192.168.100.0/24) -* `openstack["compute"]["networks"]["public"]["num_networks"]` - Number of networks to be created -* `openstack["compute"]["networks"]["public"]["network_size"]` - Number of IP addresses to be used in this network -* `openstack["compute"]["networks"]["public"]["bridge"]` - Bridge to be created for accessing the VM network (e.g., br100) -* `openstack["compute"]["networks"]["public"]["bridge_dev"]` - Physical device on which the bridge device should be attached (e.g., eth2) -* `openstack["compute"]["networks"]["public"]["dns1"]` - DNS server 1 -* `openstack["compute"]["networks"]["public"]["dns2"]` - DNS server 2 - -* `openstack["compute"]["networks"]["private"]["label"]` - Network label to be assigned to the private network on creation -* `openstack["compute"]["networks"]["private"]["ipv4_cidr"]` - Network to be created (in CIDR notation e.g., 192.168.200.0/24) -* `openstack["compute"]["networks"]["private"]["num_networks"]` - Number of networks to be created -* `openstack["compute"]["networks"]["private"]["network_size"]` - Number of IP addresses to be used in this network -* `openstack["compute"]["networks"]["private"]["bridge"]` - Bridge to be created for accessing the VM network (e.g., br200) -* `openstack["compute"]["networks"]["private"]["bridge_dev"]` - Physical device on which the bridge device should be attached (e.g., eth3) - -Libvirt Configuration Attributes ---------------------------------- - -* `openstack["compute"]["libvirt"]["virt_type"]` - What hypervisor software layer to use with libvirt (e.g., kvm, qemu) -* `openstack["compute"]["libvirt"]["volume_backend"]` - What block storage backend to use with libvirt (e.g. rbd) -* `openstack["compute"]["libvirt"]["auth_tcp"]` - Type of authentication your libvirt layer requires -* `openstack["compute"]["libvirt"]["ssh"]["private_key"]` - Private key to use if using SSH authentication to your libvirt layer -* `openstack["compute"]["libvirt"]["ssh"]["public_key"]` - Public key to use if using SSH authentication to your libvirt layer -* `openstack["compute"]["libvirt"]["max_clients"]` - Maximum number of concurrent client connections to allow over all sockets combined. (default: 20) -* `openstack["compute"]["libvirt"]["max_workers"]` - Maximum number of workers spawned, typically equal to max_clients. (default: 20) -* `openstack["compute"]["libvirt"]["max_requests"]` - Total global limit on concurrent RPC calls. Should be at least as large as max_workers. (default: 20) -* `openstack["compute"]["libvirt"]["max_client_requests"]` - Limit on concurrent requests from a single client connection. (default: 5) -* `openstack["compute"]["libvirt"]["libvirt_inject_key"]` - Inject the ssh public key at boot time, without an agent. (default: true) -* `openstack["compute"]["libvirt"]["libvirt_inject_password"]` - Inject the admin password at boot time, without an agent. (default: false) -* `openstack["compute"]["libvirt"]["libvirt_inject_partition"]` - The partition to inject to : -2 => disable, -1 => inspect (libguestfs only), 0 => not partitioned, >0 => partition number. (default: -2) -* `openstack["compute"]["libvirt"]["images_type"]` - How to store local images (ephemeral disks): raw, qcow2, lvm, rbd, or default -* `openstack["compute"]["libvirt"]["volume_group"]` - When images_type is lvm: volume group to use -* `openstack["compute"]["libvirt"]["sparse_logical_volumes"]` - When images_type is lvm: use sparse logical volumes -* `openstack["compute"]["libvirt"]["unix_sock_rw_perms"]` - Set the UNIX socket permissions for the R/W socket. This is used for full management of VMs. -* `openstack["compute"]["libvirt"]["live_migration_bandwidth"]` - Maximum bandwidth to be used during migration, in Mbps. -* `openstack["compute"]["libvirt"]["live_migration_flag"]` - Migration flags to be set for live migration. -* `openstack["compute"]["libvirt"]["block_migration_flag"]` - Migration flags to be set for block migration. -* `openstack["compute"]["libvirt"]["live_migration_uri"]` - Migration target URI (any included "%s" is replaced with the migration target hostname). -* `openstack["compute"]["libvirt"]["rbd"]["glance"]["pool"]` - When images_type is rbd: use this RBD pool for images -* `openstack["compute"]["libvirt"]["rbd"]["cinder"]["pool"]` - When images_type is rbd: use this RBD pool for volumes -* `openstack["compute"]["libvirt"]["rbd"]["nova"]["pool"]` - When images_type is rbd: use this RBD pool for instances -* `openstack["compute"]["libvirt"]["rbd"]["ceph_conf"]` - When images_type is rbd: use this ceph.conf -* `openstack["compute"]["libvirt"]["rbd"]["cinder"]["user"]` - The cephx user used for accessing the RBD pool used for block storage. (Which pool to use is passed by cinder when nova-compute is instructed to mount a volume.) -* `openstack["compute"]["libvirt"]["rbd"]["cinder"]["secret_uuid"]` - A shared secret between cinder and libvirt. It should be the same as the secret_uuid that is defined in block-storage. -* `openstack["compute"]["libvirt"]["rng_dev_path"]` - A path to a device that will be used as source of entropy on the host. Permitted options are: /dev/random or /dev/hwrng (string value) - -Bare Metal Configuration Attributes ------------------------------------ - -* `openstack['compute']['scheduler']['use_baremetal_filters']` Boolean that decides whether to use baremetal_scheduler_default_filters or not. - If this attribute is set to true, the following attributes will be overwritten: - `openstack['compute']['driver']` - `openstack['compute']['manager']` - `openstack['compute']['scheduler']['scheduler_host_manager']` - `openstack['compute']['config']['ram_allocation_ratio']` - `openstack['compute']['config']['reserved_host_memory_mb']` -* `openstack['compute']['scheduler']['baremetal_default_filters']` A list of filters enabled for baremetal schedulers that support them. - -Keymgr Configuration Attributes -------------------------------- - -* `openstack["compute"]["keymgr"]["api_class"] - the full class name of the key manager API class. -* `openstack["compute"]["keymgr"]["fixed_key"] - the fixed key returned by key manager, specified in hex (string value). - -Scheduler Configuration Attributes ----------------------------------- - -* `openstack["compute"]["scheduler"]["scheduler_manager"]` - the scheduler manager to use -* `openstack["compute"]["scheduler"]["scheduler_driver"]` - the scheduler driver to use -NOTE: The filter scheduler currently does not work with ec2. -* `openstack["compute"]["scheduler"]["available_filters"]` - Filter classes available to the scheduler which may be specified more than once. -* `openstack["compute"]["scheduler"]["default_filters"]` - a list of filters enabled for schedulers that support them. - -Syslog Configuration Attributes -------------------------------- - -* `openstack["compute"]["syslog"]["use"]` - Should nova log to syslog? -* `openstack["compute"]["syslog"]["facility"]` - Which facility nova should use when logging in python style (for example, `LOG_LOCAL1`) -* `openstack["compute"]["syslog"]["config_facility"]` - Which facility nova should use when logging in rsyslog style (for example, local1) - -OSAPI Compute Extentions ------------------------- - -* `openstack["compute"]["plugins"]` - Array of osapi compute exntesions to add to nova - -Miscellaneous Options ---------------------- - -Arrays whose elements will be copied exactly into the respective config files (contents e.g. ['option1=value1', 'option2=value2']). - -* `openstack["compute"]["misc_nova"]` - Array of bare options for `nova.conf`. -* `openstack["compute"]["misc_paste"]` - Array of bare options for `api-paste.ini` - -API Configuration Attributes ----------------------------- - -* `openstack["compute"]["enabled_apis"]` - Which apis have been enabled in nova compute, only for osapi_compute. For metadata, include the api-metadata recipe. - -Notification Attributes ------------------------ - -* `openstack["compute"]["metering"]`- Boolean that indicates whether to enable the metering attributes with sensible defaults. Default is false. -* `openstack["compute"]["config"]["notification_drivers"]`- An array of drivers to handle sending notifications. -* `openstack["compute"]["config"]["instance_usage_audit"]`- Boolean that indicates whether to generate intance usage audits. -* `openstack["compute"]["config"]["instance_usage_audit_period"]`- Time period to generate instance usages for. Time period must be "hour", "day", "month" or "year". -* `openstack["compute"]["config"]["notify_on_state_change"]`- If set, send compute.instance.update notifications on instance state changes. Valid values are None, "vm_state" or "vm_and_task_state". -* `openstack["compute"]["config"]["notification_topics"]`- AMQP topic used for OpenStack notifications. - -When enabling nova metering with ceilometer, the notification configuration -properties need to be set to values that are different from the default values -used when metering is off. In order to facilitate setting all those -notification properties, the cookbook includes the `openstack["compute"]["metering"]` -attribute which when set to `true` will automatically set all notification -properties to the suggested defaults. - -One of the notification_drivers that is set when metering is on comes from -ceilometer. In order for the notification driver to be available, make sure -the `os-telemetry-agent-compute` role (or the openstack-telemetry::agent-compute recipe) -are set on this node. - -Monitor Attributes ------------------------ - -* `openstack["compute"]["config"]["compute_available_monitors"]`- Monitor classes available to the compute. -* `openstack["compute"]["config"]["compute_monitors"]`- An array of monitors that can be used for getting compute metrics. - -VMware Configuration Attributes -------------------------------- - -* `openstack['compute']['vmware']['secret_name']` - VMware databag secret name -* `openstack['compute']['vmware']['host_ip']` - URL for connection to VMware ESX/VC host. (string value) -* `openstack['compute']['vmware']['host_username']` - Username for connection to VMware ESX/VC host. (string value) -* `openstack['compute']['vmware']['cluster_name']` - Name of a VMware Cluster ComputeResource. Used only if compute_driver is vmwareapi.VMwareVCDriver. (multi valued) -* `openstack['compute']['vmware']['datastore_regex']` - Regex to match the name of a datastore. (string value) -* `openstack['compute']['vmware']['task_poll_interval']` - The interval used for polling of remote tasks. (floating point value, default 0.5) -* `openstack['compute']['vmware']['api_retry_count']` - The number of times we retry on failures, e.g., socket error, etc. (integer value, default 10) -* `openstack['compute']['vmware']['vnc_port']` - VNC starting port (integer value, default 5900) -* `openstack['compute']['vmware']['vnc_port_total']` - Total number of VNC ports (integer value, default 10000) -* `openstack['compute']['vmware']['use_linked_clone']` - Whether to use linked clone (boolean value, default true) -* `openstack['compute']['vmware']['vlan_interface']` - Physical ethernet adapter name for vlan networking (string value, default vmnic0) -* `openstack['compute']['vmware']['wsdl_location']` - Optional VIM Service WSDL Location, you must specify this location of the WSDL files when you try to connect vSphere vCenter versions 5.0 and earlier. -* `openstack['compute']['vmware']['maximum_objects']` - The maximum number of ObjectContent data objects that should be returned in a single result. (integer value, default 100) -* `openstack['compute']['vmware']['integration_bridge']` - Name of Integration Bridge (string value, default br-int) - -Upgrade levels Attribute ------------------------- -* `openstack['openstack']['compute']['upgrade_levels']` - The RPC version numbers or release name alias - -Docker configuration Attributes -------------------------------- - -* `['openstack']['compute']['docker']['enable']` - Mark this as true to make compute docker type and use nova docker driver as compute driver. Docker computes are supported only in Ubuntu and Rhel -* `['openstack']['compute']['docker']['driver']` - The nova docker driver that will be configured in a docker type compute -* `['openstack']['compute']['platform']['docker_build_pkgs']` - Additoinal packages required for nova docker driver build and installation from git source -* `['openstack']['compute']['docker']['pip_build_pkgs']` - Additional python packages required for nova docker driver build and installation from git source -* `['openstack']['compute']['docker']['github']['repository']` - github repository from which nova-docker source will be downloaded -* `['openstack']['compute']['docker']['github']['branch']` - github branch from which nova-docker source will be downloaded. Default is master -* `['openstack']['compute']['docker']['filter_source_path']` - Relative path to docker filter files in nova-docker source which will be cloned from git repo -* `['openstack']['compute']['docker']['service_sock']` - Path to docker service sock file -* `['openstack']['compute']['docker']['service_sock_mode']` - Permission level to be assigned to docker sock file -* `['openstack']['compute']['docker']['group']` - Docker group which will be created and added with openstack compute user - -The following attributes are defined in attributes/default.rb of the common cookbook, but are documented here due to their relevance: - -* `openstack['endpoints']['compute-compute api-bind']['host']` - The IP address to bind the compute api service to -* `openstack['endpoints']['compute-compute api-bind']['port']` - The port to bind the compute api service to -* `openstack['endpoints']['compute-compute api-bind']['bind_interface']` - The interface name to bind the compute api service to - -* `openstack['endpoints']['compute-xvpvnc-bind']['host']` - The IP address to bind the xvpvnc service to -* `openstack['endpoints']['compute-xvpvnc-bind']['port']` - The port to bind the xvpvnc service to -* `openstack['endpoints']['compute-xvpvnc-bind']['bind_interface']` - The interface name to bind the xvpvnc service to - -* `openstack['endpoints']['compute-novnc-bind']['host']` - The IP address to bind the novnc service to -* `openstack['endpoints']['compute-novnc-bind']['port']` - The port to bind the novnc service to -* `openstack['endpoints']['compute-novnc-bind']['bind_interface']` - The interface name to bind the novnc service to - -* `openstack['endpoints']['compute-vnc-bind']['host']` - The IP address to bind the vnc service to -* `openstack['endpoints']['compute-vnc-bind']['bind_interface']` - The interface name to bind the vnc service to - -* `openstack['endpoints']['compute-vnc-proxy-bind']['host']` - The IP address to bind the vnc proxy service to -* `openstack['endpoints']['compute-vnc-proxy-bind']['bind_interface']` - The interface name to bind the vnc proxy service to - -If the value of the 'bind_interface' attribute is non-nil, then the service will be bound to the first IP address on that interface. If the value of the 'bind_interface' attribute is nil, then the service will be bound to the IP address specified in the host attribute. - -Testing -===== - -Please refer to the [TESTING.md](TESTING.md) for instructions for testing the cookbook. - -Berkshelf -===== - -Berks will resolve version requirements and dependencies on first run and -store these in Berksfile.lock. If new cookbooks become available you can run -`berks update` to update the references in Berksfile.lock. Berksfile.lock will -be included in stable branches to provide a known good set of dependencies. -Berksfile.lock will not be included in development branches to encourage -development against the latest cookbooks. License and Author ================== @@ -463,6 +123,8 @@ License and Author | **Author** | Mark Vanderwiel () | | **Author** | Eric Zhou () | | **Author** | Mathew Odden () | +| **Author** | Jan Klare () | +| **Author** | Christoph Albers () | | | | | **Copyright** | Copyright (c) 2012-2013, Rackspace US, Inc. | | **Copyright** | Copyright (c) 2012-2013, Opscode, Inc. | diff --git a/metadata.rb b/metadata.rb index cb698c83..6862efc1 100644 --- a/metadata.rb +++ b/metadata.rb @@ -6,22 +6,6 @@ description 'The OpenStack Compute service Nova.' long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) version '13.0.0' -recipe 'openstack-compute::api-metadata', 'Installs the nova metadata package' -recipe 'openstack-compute::api-os-compute', 'Installs OS API' -recipe 'openstack-compute::client', 'Install nova client packages' -recipe 'openstack-compute::compute', 'nova-compute service' -recipe 'openstack-compute::conductor', 'Installs nova conductor service' -recipe 'openstack-compute::libvirt', 'Installs libvirt, used by nova compute for management of the virtual machine environment' -recipe 'openstack-compute::libvirt_rbd', 'Manages the RBD portions of libvirt. Included by openstack-compute::libvirt' -recipe 'openstack-compute::identity_registration', 'Registers the API endpoints with Keystone' -recipe 'openstack-compute::network', 'Installs nova network service' -recipe 'openstack-compute::nova-cert', 'Installs nova-cert service' -recipe 'openstack-compute::nova-common', 'Builds the basic nova.conf config file with details of the rabbitmq, mysql, glance and keystone servers' -recipe 'openstack-compute::nova-setup', 'Sets up the nova database on the mysql server, including the initial schema and subsequent creation of the appropriate networks' -recipe 'openstack-compute::scheduler', 'Installs nova scheduler service' -recipe 'openstack-compute::vncproxy', 'Installs and configures the vncproxy service for console access to VMs' -recipe 'openstack-compute::serialproxy', 'Installs and configures the serialproxy service for serial console access to VMs' - %w(ubuntu redhat centos).each do |os| supports os end @@ -31,5 +15,4 @@ depends 'openstack-common', '>= 13.0.0' depends 'openstack-identity', '>= 13.0.0' depends 'openstack-image', '>= 13.0.0' depends 'openstack-network', '>= 13.0.0' -depends 'selinux', '~> 0.9.0' depends 'python', '~> 1.4.6' diff --git a/recipes/default.rb b/recipes/default.rb deleted file mode 100644 index 6e8d406a..00000000 --- a/recipes/default.rb +++ /dev/null @@ -1,19 +0,0 @@ -# encoding: UTF-8 -# -# Cookbook Name:: openstack-compute -# Recipe:: default -# -# Copyright 2012, Opscode, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#