Otter Documentation


  • Last Modified: 2020-02-26

Rafts are an advanced feature. If you are just getting started with Otter, you should revisit this topic once you've familiarized yourself with the other components.

Plans and Assets are essentially just files, and to make sharing, versioning, branching, etc. possible, Otter uses a raft to store these files. A raft is sort of an abstracted file system, specifically designed for Otter plans and assets.

The Default Raft

Because you likely won't need multiple rafts right away, a raft named "Default" is automatically created when you install Otter. This is a Database raft and is backed up when you do a regular Back-up of Otter.

If you only have a single raft configured, and that raft is named "Default", then the ability to filter or select rafts will not be exposed on plan, job, asset, server, etc. pages.

Creating, Managing, and Downloading Rafts

You can create, manage, and download a raft as a zip file by going to Admin > Global Components > Rafts.

Rafts and Environments

When a raft is associated with an Environment, access to contents within the raft will be restricted in two ways:

  • Users without appropriate privileges for the environment will be unable to access the contents (depending on Privilege Configuration)
  • Servers not associated with that environment will raise an error when attempting to access any aspect of the raft

Rafts and Servers/Roles

Both Servers and Server Roles may be associated with a raft. When a raft is specified, the corresponding configuration plan will be persisted within that raft. If no raft is specified, then the "Default" raft (if one is named that) is used.

Because rafts can be modified external to Otter, it's possible to create "orphaned" Configuration Plans that are not associated with a server or server role in Otter. Those are simply ignored, but are still displayed on the configuration plans page.

Raft Repository Types

Rafts rely on an Extensible Raft Provider to retrieve and store raft data. There are three built-in raft types:

  • Database - this is the default raft provider, and persists all information in Otter's database; the contents are versioned, and it's the simplest to use and back-up as part of the Otter database
  • Disk - the raft is persisted as a simple file structure on disk; this may be appropriate for quick testing purposes
  • Git - this raft is synchronized with a branch of a remote Git repository. See Git-Based Rafts to learn how to use this type of raft.

Disk Layout Conventions

When stored on disk, in source control, or exported as a zip file, rafts are laid-out as follows.

Orchestration PlansFiles (.otter) within the /plans subdirectory
Server PlansFiles (.otter) within the /servers subdirectory
Server Role PlansFiles (.otter) within the /roles subdirectory
VariablesAn OtterScript stored in the /variables file, consisting entirely of assign variable statements
ScriptsFiles (.ps1, .js, .sh) within the /scripts subdirectory
ModulesFiles (.otter) within the /modules subdirectory
AssetsFiles within the /files subdirectory

Raft Variables

Variables persisted within a raft are not currently displayed anywhere in the UI, and are intended to be used for storing default or fallback values for plans stored in portable/reusable rafts. They are the lowest scope, and are only used if a Configuration Variable of the same name does not exist

More on this topic:

Is this documentation incorrect or incomplete? Help us by contributing!

This documentation is licensed under CC-BY-SA-4.0 and stored in GitHub.

Generated from commit 7dc9c9e6 on master