Upgrade Notes for Otter 2.0

KB#1154: Last Updated February 12, 2019

Otter 2.0 is major release with the following changes:

  • Automatic Agent Updates (new feature)
  • Installed Universal Packages shown in Packages Tab (new feature)
  • Plan & Asset Versioning (new feature)
  • Updated UI
  • Custom Extensions should use Inedo.SDK instead of Inedo.Otter.SDK

Breaking Changes

The changes from Otter v1 to Otter v2 are minimal; however there are breaking changes in some cases:

Custom Extensions – Inedo SDK

Any custom extensions must be rebuilt against the InedoSDK. This can be accomplished simply by removing the Inedo.Otter.SDK NuGet package from your project and then installing the Inedo.SDK NuGet package. Visit the creating an extension documentation for more information on formatting the output and installing the extension.

The required code changes are:

  • Namespaces – rename namespaces such that any reference to Inedo.Otter.XXXXX is changed to Inedo.XXXXX. The list of namespaces is found in the SDK Reference
  • RemoteCollectAsync(IRemoteOperationExecutionContext) – this method override should be updated to accept IRemoteOperationCollectionContext instead

Additionally, the DB class was removed. There is no current workaround for this besides querying the database directly. Common infrastructure and components (e.g. servers, roles, configuration values) should be accessed via the SDK class.

New Features & Non-Functional Changes

Automated Agent Update

Prior to Otter v2, the Inedo Agent needed to be manually installed on servers. Now, the upgrade can be performed within the software from the Servers page.

Plan & Asset Versioning

Otter v2 now includes versioning for its Database Raft, and exposes versions for rafts that already supported versioning in the past e.g. the Git raft.

New UI

Otter v2 has a new style, but should feel very familiar to users of v1. The UX should be mostly the same, and only the links on the Administration Overview page have been modified.

Git Raft

The Git Raft has been moved to the Git extension, which must be downloaded either within Otter from the Extensions page or from the Inedo Den and installed manually.

Risk Mitigation

Because configuration plan logic has been updated, there is a potential for unintentional changes/bugs to be introduced. To mitigate these risks:

  • There are minor database schema changes, so make sure to back up your Otter instance in order to do a rollback.
  • Make sure that the installation’s \Extensions directory (Extensions.ExtensionsPath in Advanced Settings) is backed up prior to upgrade
  • Test configuration and orchestration plans in earlier environments prior to working against production servers

Upgrade Process

Otter may be upgraded by simply running the latest installer. The agents do not need to be updated.


Because there are database changes, a rollback will require uninstalling Otter, and then restoring your Otter instance.