vcf-services

Runtime Defined Entities Framework

Introduction

The VMware Cloud Foundation Automation (VCFA) extensibility framework can be used in many different ways, for example:

Runtime Defined Entities can greatly simplify the development of extensions by providing a built-in state management mechanism and the definition of custom operation execution functionality within VMware Cloud Foundation Automation.

VMware Cloud Foundation Automation supports several pre-defined entity types – VMs, vApps, Networks, etc. The Runtime Defined Entities (RDE) functionality allows clients to define their own custom entity types with custom functionality.

Typical RDE Uses

Several typical ways RDEs can be used by extensions are the following:

RDEs also provide a powerful versioning mechanism, thus simplifying the management of the extensions’ lifecycle, especially when used in the context of VCF Services.

Runtime Defined Entities Concepts

A Runtime Defined Entity (RDE) is a package that contains a JSON payload.

Each RDE is an instance of an RDE Type that specifies the format of the JSON payload using a JSON Schema.

An RDE Type may implement a number of RDE Interfaces that categorize it conceptually, for example – “Container Cluster”. An RDE Interface may also define RDE Behaviors that can be executed on RDEs that implement it.

Example Defined Entity Interface, Type, and instances

RDE Behaviors are custom executable operations that can be performed on a Runtime Defined Entity. Behaviors can be defined by clients via several different mechanisms. RDE Types can be configured to automatically execute specific Behaviors on certain events during the RDE lifecycle.

RDE Types, their RDE instances, as well as RDE Interfaces are versioned. They ensure that the schema of an RDE does not change once it is created. They also offer a path to transfer to other versions.

Strict Tenancy

Runtime Defined Entities follow a strict tenancy model.

An RDE created in a specific tenant cannot be moved to another tenant. Access to the RDE cannot be shared with users outside the tenant.

Entity ID Format

VCloud entity IDs for defined entities use UUID5 format.