Mitaka Series Release Notes

1.0.0

New Features

  • We no longer support soft-delete in senlin database. Marking an entity as soft-deleted is causing more problems than bringing any convenience.
  • Action list now can be filtered by its ‘status’ property.
  • Added support of multi-tenancy for actions.
  • Added senlin.policy.affinity-v1.0 which can be used to control how VM servers are placed based on nova servergroup settings.
  • New actions for checking and recovering nodes/clusters are added.
  • Added new APIs for cluster/node check and recover.
  • Added support to limit number of clusters per project.
  • Clusters now have a new ‘RESIZING’ status when its scale is being changed.
  • The built-in deletion policy can handle cross-region and cross-zone nodes selection.
  • Supporting engine status check, with senlin-manage command.
  • Event list can now be filtered by its ‘level’ property.
  • Added support to multi-tenancy for event resources.
  • Profile types and policy types are explicitly versioned now. We have the version string appended to the type names for easier detection.
  • New health check daemon is introduced to do periodical cluster status checking. It collaborates with health policy on cluster monitoring.
  • Improved action scheduler so that it can pick an action that is READY to be executed from DB.
  • Added LBaaS health monitor support to load-balancing policy v1.0.
  • Added support to steal a lock from dead engine.
  • Added support to multi-tenancy (aka. project_safe checking) when finding resources.
  • Use ‘sort’ instead of ‘sort_keys’ and ‘sort_dir’ for object sorting.
  • Nova server profile now supports block device mapping v2 (BDMv2).
  • Enabled update to the ‘flavor’ of a nova server profile.
  • Enabled update to the ‘name’ of a nova server profile.
  • Added profile property checking regarding whether they are updatable.
  • Support to ‘senlin-manage purge_deleted <age> [<unit>]’ is added.
  • New abstraction ‘receiver’ has been added as a generic way to notify the senlin engine that something interesting has happened.
  • An experimental policy for placing nodes across multiple regions.
  • Removed support to ‘trigger’ abstraction.
  • Make sure ‘spec’ of a profile is immutable after a profile object is created. The only way to “update” a profile is to create a new one.
  • Added command ‘senlin-manage service list’ to show the status of engine.
  • Added command ‘senlin-manage service clean’ to clean the dead engine records.
  • Add support to update image property of a Nova server.
  • Added support to updating network properties of a nova server.
  • Both image ID and image name are supported when creating os.nova.server profile.

Upgrade Notes

  • Database tables have to be recreated as we have removed soft-delete support from both the DB layer and the engine layer.
  • Senlin API has removed ‘tenant_id’ from its endpoint. This means users have to recreate their keystone endpoints if they have an old installation.
  • Webhook abstraction is removed. New usage model of webhooks is through the ‘receiver’ abstraction.
  • Node actions NODE_JOIN and NODE_LEAVE are removed from API surface.
  • Removed cluster policy enable/disable support. We will use more generic interface cluster policy update for these use cases.
  • Removed permission property from profiles. We will devise an RBAC mechanism as an alternative.
  • Status DELETED is removed from clusters and nodes.
  • Timestamp fields like ‘created_time’ and ‘udpated_time’ are renamed to ‘created_at’ and ‘updated_at’ respectively.
  • As a side-effect of the rework of action dependency, a new table has been added to the database.
  • Senlin binaries are all made as console script entries.

Bug Fixes

  • When referenced objects are not found in an API request, 400 is returned now.
  • Reworked action status check so that a cluster action will always return from WAITING status.
  • Fixed profile type checking error when attaching affinity policy.
  • Fixed parsing of default values for ‘max_size’ and ‘min_size’ properties of a cluster.
  • Fixed race condition in service deletion.
  • Fixed APIs that spawn asynchronous operations to return 202 as status code.
  • Fixed a bug related to setting the next_index property of a cluster after new nodes have joined or existing nodes have left.
  • Fixed cluster-list function so that ‘global-project’ can be specified.
  • Removed useless parameters (‘user’, ‘project’, etc.) from filtering when listing clusters.
  • Added parameter sanitization for cluster-policy-attach.
  • Fixed RC/role checking in the setup-service script.
  • Enforce multi-tenancy checking when a non-admin user attempting to list resources from projects other than that of the requesting user.
  • Fixed a bug related to using the ‘name’ property of a nova server profile.
  • Fixed parameter checking when listing resources, such as sort and filters.
  • Added parameter checking for policy-create API calls.
  • Added parameter checking for cluster-policy-detach API invocation.
  • Added parameter checking for cluster-policy-update API invocation.
  • Reworked action dependency to avoid indefinite waiting problem.
  • Fixed trust usage when interacting with keystone. This enables senlin to be deployed on a Juno version OpenStack.

Other Notes

  • DB isolation level defaults to READ_COMMITTED in order to solve concurrency problems encountered in action dependency checking.
  • Added documentation for senlin.policy.deletion-v1.0.
  • Added configuration option for enforcing name uniqueness.
  • Added documentation for lb policy, affinity policy, scaling policy, zone placement policy and region placement policy.
  • Senlin API documentation merged into api-site and published.
  • Added user documentation for ‘receiver’.
  • Added developer documentation for ‘receiver’.
  • Removed documentation for ‘webhook’.
  • The property ‘priority’ and ‘level’ are removed from policy create/update.
  • Command senlin-manage purge_deleted is removed.
  • Ensure there are no underscores (‘_’) in resource names exposed through RESTful API
  • User documentation for events and actions have been added.
  • User documentation (including developer docs) are published on official site.