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:
Property | Type | Required | Description |
---|---|---|---|
id | string | yes | Deployment unit identifier |
environment | string | yes | Environment in which this deployment unit can be deployed |
kind | string | yes | Depoloyment unit type (e.g., dataproduct ) |
name | string | yes | Deployment unit name used for display purposes |
version | string | yes | Descriptor version |
infrastructureTemplateId | string | no | Identifier of the tech adapter responsible to deploy this deployment unit (more on this in the sections below) |
components | list[ComponentDescriptor] | yes | Descriptors of the deployment unit components |
Component descriptor
Property | Type | Required | Description |
---|---|---|---|
id | string | yes | Component identifier |
name | string | yes | Component name used for display purposes |
infrastructureTemplateId | string | yes | Identifier of the tech adapter responsible to deploy this component (more on this in the sections below) |
dependsOn | list[string] | yes | Identifieres 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.
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 infrastructureTemplateId
s 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.
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