...
The overall objective is to keep the items in the descriptor to the bare minimum information, and not duplicate any attributes that might be instead extracted from the Helm Charts. This helps maintain the principle that Helm Charts are the primary deployment artifact for a containerized application and avoids any possible source of error or confusion that such duplication would cause.
Application Service Descriptor (ASD): top level
Attribute | Qualifier | # | Type | Description | ||
asdId | M | 1 | Identifier | Identifier of this ASD information element. This attribute shall be globally unique. The format will be defined in the data model specification phase. | ||
asdSchemaVersion | M | 1 | Version | Specifies the version of the ASD’s schema (if we modify an ASD field definition, add/remove field definitions, etc.). | ||
asdProvider | M | 1 | String | Provider of the AS and of the ASD. | ||
asdApplicationName | M | 1 | String | Name to identify the Application Service. Invariant for the AS lifetime. | ||
asdApplicationVersion | M | 1 | Version | Specifies the version of the Application (so, if software, DeploymentArtifacts , ASD values, ... change, this changes). | ||
asdApplicationInfoName | OM | 0..1 | String | Human readable name for the Application service. Can change during the AS lifetime. | ||
asdInfoDescription | OM | 0..1 | String | Human readable description of the AS. Can change during the AS lifetime. | ||
asdExtCpd | OM | 0..N | Tbddatatype.ExtCpd | Describes external interface(s) exposed by this AS enabling connection with a VL. (Similar to VnfExtCpd on VNF-D, but only describing L3 and above interfaces, since K8S can’t do <L3 | enhancedClusterCapabilities | Othe externally exposed connection points of the application. |
enhancedClusterCapabilities | M | 0..N1 | Tbd | Describes datatype. enhancedClusterCapabilities | A list of expected capabilities of the target Kubernetes cluster to aid placement of the application service on a suitable cluster. Examples of capabilities are required networking characteristics, Kubernetes API extensions or quantifiable node specific resources. This attribute can contain information complementing information provided in the referenced DeploymentArtifacts.Note: Modeling of enhancedClusterCapabilities is subject to standardization but is ffs. Alignment between O2-IMS and O2-DMS of these values is required. | |
deploymentItems | M | 1..N | DeploymentItem | Deployment artifacts (see next table) |
The initial attributes essentially describe the application – a unique identifier, a schema version (that enables versioning the data model of the descriptor itself), and basic metadata, like application name and version and human-readable descriptive fields.
...
Finally, “deploymentItems” is a list of deployment items, i.e. Helm Charts, that together can deploy an application. The table below shows the information element of these deployment item descriptors.
Deployment Item
Attribute | Qualifier | # | Content | Description | ||
deploymentItemId | M | 1 | Identifier | The identifier of this deployment item | ||
artifactType | M | 1 | String/enum | Specify artifact type. e.g. Helm chart, helmfile, CRD etc. | ||
artifactId | M | 1 | Identifier (reference to) | Reference to a DeploymentArtifact | ||
deploymentOrder | OM | 0..1 | Integer | Specifies the deployment stage that the DeploymentArtifact belongs to. A lower value specifies that the DeploymentArtifact belongs to an earlier deployment stage, i.e. , needs to be installed prior to DeploymentArtifact with higher deploymentOrder values. | ||
lifecycleParameters | Tbd | tbd | tbd M | 0..N | List of strings | list of parameters that can be overridden at deployment time (e.g., values for values.yaml in the chart this item references) |
...