.. _artifactimage:
Information Models
==================
In the context of the NEPHELE Project all software applications involved in the delivery of an HDA
will be released as an OCI complaint artifact. Figure depicts the final collection of artifacts proposed
to describe an HDA in NEPHELE in the form of a service chain. Each one shows its data model, structure,
and a target system to execute them.
Given the distributed nature of HDAs and the cloud-native characteristic of the infrastructure, it was
clear that Docker images and Helm charts would be part of the required artifacts. Then, there is the need
to package the intent-based orchestration of the HDAs and all the required information for the
NEPHELE Platform to work, which is realized as an HDA Graph (HDAG).
.. figure:: ../images/artifacts.png
:align: center
**Full example of artifacts in HDA**
From left to right, a custom HDAG describes the instantiation of a HDA as a collection of services.
Then, a service might be one of three types; a standard Helm chart for vertical applications (e.g., Apps
consuming (c)VOs), a pre-defined Helm chart which represents a (c)VO, or a Network Function
Virtualization (NFV) artifact. Lastly, the actual logic is contained in a Docker image which again, could
be either a fully custom one or the pre-defined (c)VO Docker image.
#. The HDAG has been designed to feed the intents and configurations to the NEPHELE Platform
per services linked. The descriptor is provided in the form of a YAML8 document.
#. Helm's data models are based the K8s manifest but include many advanced
features for managing the K8s application by using additional manifests (chart.yaml,
values.yaml...) and support Go's template syntax. Helm dynamically creates K8s
resource manifests by leveraging a series of templates and instantiation data.
* Resulting from WP3 and WP4 discussions, it has been seen appropriate to adopt a common technology for all
(c)VO implementations and, for the most part, for all UC applications. These implementations will always be
expressed as K8s workloads using Helm, where the executed VO container image is configured using a series
of descriptors and configuration files as defined by the VO implementation specification, which is prepared
as part of WP3.
#. A Network Function Virtualization (NFV) artifact can be used as a wrapper to deploy any of the
previous two components within an NFV operator's infrastructure. These artifacts are mostly described
as YAML descriptors whose data models are maintained by ETSI.
#. Docker defines its own data model for the Dockerfile which is the file that enables the creation
of the filesystem bundle based on the local source code.
For those artifacts that are managed by a thirdparty, please refer to their own documentation:
* Docker: `Dockerfile reference `_
* Vertical App Helm Chart: `Helm Charts `_
* OSM: `NS and VNF reference `_
For those artifacts that are part of the NEPHELE project, please refer to the corresponding documentation:
.. toctree::
hdag
vo-description