OpenStackManager version 1.2 released

The OpenStackManager extension is a web interface for OpenStack, and a manager for a fully integrated test and development network being written primarily for Wikimedia Foundation use.

This is a features and bugfix release of the OpenStackManager extension. There have been extensive changes since the last release. I’ll try my best in the future to do releases more often to avoid having changelogs this long. The following has changed:

  • Added support for managing sudo policies. Currently supports adding, modifying and deleting sudo policies with sudouser, sudohost, sudocommand, and sudooptions attributes. Requies wiki admin privileges to use the special page.
  • Changed host addition behavior to add project to the host entry’s puppet variables by default; the variable added is:
    • instanceproject
  • Added support for adding/modifying/deleting instance information in Nova_Resource: wiki pages when creating/configuring/deleting instances. This can be disabled using the $wgOpenStackManagerCreateResourcePages configuration option.
  • Added support for creating/deleting/attaching/detaching volumes.
  • Changed the display of all tables to use the sortable CSS class.
  • Changed name of the VM namespace to instead be Nova Resources. All Nova resources will be placed in this namespace.
  • Various MediaWiki 1.17 compatibility changes.
  • Added a default shell config option ($wgOpenStackManagerLDAPDefaultShell) so that a shell can be added to user entries.
  • Changed behavior of host addition to add a location attribute on instance DNS entries.
  • Code cleanup for localization.
  • Fixed a number of spots the extension was throwing warnings.
  • Changed Special:NovaDomain to check for cloudadmins membership if roles are intersecting, as otherwise netadmins for specific projects could also manage DNS domains.
  • Fixed role check bug in Special:Domain, so that cloudadmins/netadmins can manage domains.
  • Fixed various bugs in project/role membership management that would cause addition removal to fail.
  • Fixed a bug in public host management when an associated domain was removed that was also named for the dc attribute.
  • Changed logic of which images will be shown for image creation: only show images that are public, are available, are of type machine, and have an image name.
  • Changed behavior of create action for Special:NovaInstance to show image names instead of image ids.
  • Added an upstart that can be used to enable consoles in instances.
  • Added support for the create action in Special:NovaInstance to list detailed information about instance types.
  • Added a global config option for the Nova EC2 admin API’s endpoint ($wgOpenStackManagerNovaAdminResourcePrefix)
  • Added support for project role members to add/remove other project role members.
  • Added a utility upstart that can be used to do some puppet configuration changes before it starts on initial boot. Should be removed from the instance during first puppet run.
  • Added support for getting console output from instances.
  • Made the display of actions on all special pages consistent.
  • Added script and localization messages for sending notification emails when instances are fully created. Can be used in conjunction with puppet variables.
  • Added default puppet variables for all instances created; adding the following variables, which represent the instance creator’s email address, (wiki) user name, and interface language:
    • instancecreator_email
    • instancecreator_username
    • instancecreator_lang
  • Changed scripts and upstarts in clouddata to use named values in the arrays, where the named values are the name of the file that will be created on the instance.
  • Changed behavior of instance termination to ensure any associated addresses are disassociated first.
  • Added validation checks for nova resource creation and modification.
  • Changed creation of host entries to use instanceid instead of hostname for the dn, and changed creation to only use associated domain, not cname, since cnamerecords don’t work when created that way.
  • Added a script to automatically sign puppet certificate requests for hosts that exist in LDAP.
  • Upgraded AWS SDK for PHP to 1.2.6 “Ifrit”.

Want to help out with the extension? I could use help testing it; if you find a bug, please report it. If you’d like me to add a feature, add a bug report. If you’d like to help by contributing code, squash a bug. If you’d like to work in a pre-configured environment, contact me, and I can give you access to my testing environment.