Skip to main content

Subcomponents

Overview

A subcomponent is a component whose lifecycle is tied to the parent component's lifecycle e.g. an output port, a workload, or a storage component. That is, a subcomponent is always deployed when also its parent component is being deployed.

The minimum set of properties to describe a subcomponent is the following one:

  • name: name of the subcomponent that is unique within the parent component's scope
  • kind: kind of subcomponent e.g. outputport/workload/storage
  • infrastructureTemplateId: tech adapter URN which will take in charge this descriptor to deploy this subcomponent into the a target infrastructure
  • consumable: refer to the Practice Shaper section
  • shoppable: refer to the Practice Shaper section
tip

The platform team can enable/disable the property mesh.builder.editAndTest.subcomponents.inheritFromParent from the configuration file, in order to enrich subcomponent's properties with the parent's properties. This option is enabled as default. The following properties will not be inherited from the parent: id, components, consumable, shoppable, name, infrastructureTemplateId, kind, dependsOn, __dataContractEnabled, __dataContractGuardianSpec, readsFrom,

From the data consumer and data producer points of view:

  • In the Builder, subcomponents are not visible in the catalog. However, they are visible in the generated descriptor of the data product where it belongs, in the Edit and test window and in the catalog-info of the parent component when inspecting the entity.
  • In the Marketplace, subcomponents are visible only if they are marked as consumable