About Orchestrations v2

What Is an Orchestration?

An orchestration defines the attributes and interdependencies of a collection of compute, networking, and storage resources in Compute Classic. You can use orchestrations to automate the provisioning and lifecycle operations of an entire virtual compute topology.

For example, you can use an orchestration to create and manage a collection of instances hosting a multitiered application stack with all the necessary networking, storage, and security resources.

At any time, you can delete and re-create all the objects in an orchestration by terminating and activating the orchestration. Storage attachments, security lists, and so on are re-created and re-associated automatically. If you want to delete and re-create specific objects, you can suspend and activate the orchestration. When orchestrations v2 are suspended, only non-persistent objects are deleted. See Object Persistence in Orchestrations v2.

In orchestrations v2, you can add, remove, or update objects without terminating the entire orchestration.

For an overview of the benefits of using orchestrations v2 and to understand how orchestrations v2 differ from orchestrations v1, see Comparing Orchestrations v1 and Orchestrations v2.

To create instances using orchestrations v2, you build an orchestration in a JSON-formatted file and upload it to Compute Classic. If the orchestration has the desired state specified as active, it starts automatically. For an example of a simple orchestration file that you can use to learn how to build your first orchestration, see Building Your First Orchestration v2. But before that, do read the remainder of this topic and become familiar with the features, terminology, and concepts of orchestrations v2.

Orchestrations v2 Terminology

Term Description

An object is the primary building block of an orchestration.

Each object contains all the attributes for the compute, networking, or storage resource that you want to create.

An orchestration can contain up to 100 objects.


The type attribute defines the type of the object that you want to create.

For example, if you want to create a storage volume, the type would be StorageVolume. If you want to create an instance, the type would be Instance.

See Attributes in Orchestrations v2.


The template attribute defines the properties or characteristics of the Compute Classic resource that you want to create, as specified by the type attribute.

The fields in the template section vary depending on the specified type.

For example, if you want to create a storage volume, the type would be StorageVolume, and the template would include size and bootable. If you want to create an instance, the type would be Instance, and the template would include instance-specific attributes, such as imagelist and shape.

Object Types in Orchestrations v2

An orchestration can contain up to 100 objects. You can define the type of an object by setting the type parameter. You can define any of the following object types:

Type Description


Creates an access control list (ACL) that can be applied to interfaces that are part of your IP networks.


Creates a back up of a storage volume using a specified backup configuration.


Specifies the storage volume to back up, along with the backup schedule, retention count, and the name of the snapshot to be created.


Creates an instance.


Associates a public IP address reservation with an interface on an instance that is attached to an IP network.


Creates an IP address prefix set. This can be used as a source or destination in security rules that determine access to or from the virtual interfaces of instances that are attached to IP networks.


Reserves a public IP address from a specified IP pool. This IP address can be associated with the virtual interface of an instance that is attached to an IP network.


Creates an IP network. You can specify an IP network in the networking attributes while creating an instance.


Creates an IP network exchange. You can add IP networks to an IP network exchange either while creating the IP network, or later, by updating the IP network.


Reserves a public IP address that can be used in the shared network.


Creates a container in the specified Oracle Cloud Infrastructure Object Storage Classic account.


Restores a storage volume from the specified backup.


Creates a route to a specified destination using the specified vNICset.


Creates a security application that can be used in a security rule created for the shared network.


Creates a security IP list.


Creates a security list.


Creates a security rule.


Creates a security protocol that can be used in a security rule created for IP networks.


Creates a security rule which can be added to an access control list (ACL). ACLs are used to control the flow of traffic across your IP networks.


Adds an SSH key.


Attaches a storage volume to an instance.


Creates a snapshot of a storage volume.


Creates a storage volume.


Creates a vNICset, which contains one or more virtual network interfaces (vNICs). While creating an instance, you can specify the vNICsets that you want to add each vNIC to.

Recovering Failed Objects in Orchestrations v2

All the objects defined in orchestrations v2 recover automatically from failure. Orchestrations v2 use object references to recover interdependent objects to a healthy state. See Object References and Relationships.

For example, consider an orchestration for an instance. The instance object may reference several other objects, such as storage volumes and IP reservations. For each storage volume to be attached to the instance, a storage attachment object in the orchestration references the instance and the appropriate storage volume. If the instance fails, these storage attachments are re-created automatically.

During the recovery of an object, all the other objects that reference the failed object are considered.

Note that when recovering from a failure, orchestrations don’t consider object relationships, which define the sequence in which the objects in an orchestration must be created.

For information on the life cycle of orchestrations v2, see Orchestration v2 Life Cycle.


You should always use your orchestrations to manage resources that you’ve created using orchestrations. Don’t, for example, use the web console or the CLI or REST API to update, delete, or change the attributes of an object that you created using an orchestration. This could cause your orchestration to either attempt to re-create the object and associated resources, or to go into an error state.