Skip to main content

Introduction

The Provisioning Coordinator (also known as Coordinator, Provisioner, or PC) is a core witboost module, deployed as a microservice, responsible for coordinating provisioning, validation, and ACL management activities.

Deployment Unit

The concept of Deployment Unit (DU) is the main one driving the Coordinator's business logic. It refers to an entity, optionally composed of one or more child components, that can be deployed / provisioned within a target infrastructure.

The specification of a deployment unit is called deployment unit descriptor. It can be be a YAML or JSON object describing shape and properties of a deployment unit and its components.

A Data Product is a type of deployment unit with a standardized descriptor, where its components can include output ports, workloads, storage areas, etc.

Descriptor

A minimal deployment unit descriptor includes at least the following properties:

PropertyTypeRequiredDescription
idstringyesDeployment unit identifier
environmentstringyesEnvironment in which this deployment unit can be deployed
kindstringyesDepoloyment unit type (e.g., dataproduct)
namestringyesDeployment unit name used for display purposes
versionstringyesDescriptor version
infrastructureTemplateIdstringnoIdentifier of the tech adapter responsible to deploy this deployment unit (more on this in the sections below)
componentslist[ComponentDescriptor]yesDescriptors of the deployment unit components

Component descriptor

PropertyTypeRequiredDescription
idstringyesComponent identifier
namestringyesComponent name used for display purposes
infrastructureTemplateIdstringyesIdentifier of the tech adapter responsible to deploy this component (more on this in the sections below)
dependsOnlist[string]yesIdentifieres of other components in the same deployment unit, this component depends on (more on this in the provisioning section)

Tech Adapters

The infrastructureTemplateId field in the descriptor of a deployment unit component identifies a microservice, referred to as a Tech Adapter (or informally Specific Provisioner), reponsible for managing the provisioning of the component. It receives instructions from the Coordinator and updates the component's infrastructure accordingly.

The Provisioning Coordinator never directly operates on or queries the infrastructure of components. Instead, it communicates with the tech adapters to update or monitor the provisioning state of the deployment unit components.

note

A REST endpoint enables the registration of tech adapters in the Coordinator by associating an infrastructure template id with an HTTP server. It also provides a configuration to register a list of tech adapters at service startup

Root Component

When the infrastructureTemplateId is also defined at the root-level of the deployment unit descriptor, in addition to the infrastructureTemplateIds in the components' descriptors, it indicates the presence of an implicit additional component called root component. Depending on the Coordinator's configuration, the tech adapter of the root component might be involved in provisioning operations along with the tech adapters of the explicitly defined components.

Marketplace and Data Catalog

Specific Provisioners are tech adapters that serve as bridges between the Coordinator and the components' infrastructure. Additionally, the Provisioning Coordinator interacts with other types of tech adapters, which act as proxies toward services such as marketplaces or data catalogs, to send updates about the provisioning status of a deployment unit.

note

This last kind of tech adapters is not associated with an infrastructure template id and is managed entirely thorugh configuration

Responsibilities

The following sections delve into the specifics of the primary responsibilities of the Provisioning Coordinator:

  • Provisioning: processes and operations to deploy or undeploy a deployment unit on a target infrastructure ensuring consistency and integrity through the process
  • Validation: compliance checks aimed at verifying that a deployment unit adheres to predifined standards and computational policies
  • ACL Management: set of utilities designed to manage access control for deployment units and their components