Application Package Distribution
Note: work in progress
Requirement
REQ-1043: Provide ASD-based CNF Onboarding, Distribution & Orchestration support Done
Epic
Epic | Description | JIRA Ticket | Priority |
---|---|---|---|
ASD Package Distribution Microservice shall support Application Package distribution | ASD Package Distribution Microservice shall support Application Package distribution
| 1 | |
User Stories
User Story | Description | JIRA Ticket | Priority |
---|---|---|---|
CNF Catalog Manager shall manage ASD package, Helm Artifacts and Image Artifacts | CNF Catalog Manager shall manage ASD package, Helm Artifacts and Image Artifacts Pre Condition:
Post Condition:
| 1 | |
Task: shall Extend ETSI Catalog Manager (Modeling Catalog) component to handle:
| 1.1 | ||
ASD Package Repository shall manage ASD Package distribution | ASD Package Repository manages ASD Package distribution Pre Condition:
Post Condition:
| 2 | |
Task: Support for ASD Package Repository Management APIs
| 2.1 | ||
Task:
| 2.2 | ||
Task:
| 2.3 | ||
Task: Create Image Artifact Repository Management
Note: it is allowed to use an open-source Artifact Repository | 2.4 | ||
Helm Artifact Repository manages Helm Chart distribution | Helm Artifact Repository manages Helm Artifacts distribution Pre Condition:
Post Condition:
| 3 | |
Task: Create Helm Artifact Repository Management
Note: it is allowed to use an open-source Artifact Repository | 3.1 | ||
Task:
| 3.2 | ||
Image Artifact Repository manages Image distribution | Image Artifact Repository manages Image Artifacts distribution Pre Condition:
Post Condition:
Post Condition:
| 4 | |
Task: Create Image Artifact Repository Management
Note: it is allowed to use an open-source Artifact Repository | 4.1 | ||
Task:
| 4.2 |
Distribution Sequence
ASD Artifact Distribution
Note:
The certificate chain must be added so that the worker nodes in the additional (operator) cluster(s) can pull Docker images from the Image Repository/Registry Service.
The Worker Nodes in the operator K8S cluster pull Images from the Image Artifact Repository from the ONAP K8S cluster.
The access can be done thru the Ingress in the ONAP K8S cluster.
Docker Commands
docker login
docker pull
docker tag
docker tag OPTIONS IMAGE TAG REGISTRYHOST/ USERNAME/NAME[:TAG]
docker push
docker push NAME [:TAG]
docker login <REGISTRY_HOST>:<REGISTRY_PORT>
docker tag <IMAGE_ID> <REGISTRY_HOST>:<REGISTRY_PORT>/<APPNAME>:<APPVERSION>
docker push <REGISTRY_HOST>:<REGISTRY_PORT>/<APPNAME>:<APPVERSION>
Image Registry
The image registry path is parameterized to support deployments using a private registry.
<TBD>
Image Pull Secret
A Docker registry secret is needed for each namespace to access the container registry. The secret is included in the POD definition.
ASD Package Distribution Service
The distribution service distributes ASD application packages to the registries deployed in the ONAP K8S cluster. The process of distribution pushes ASD application-specific Helm charts and Docker images to their respective registries and pushes the ASD to the Catalog Manager Database (ASD repository).
The followings are the steps in the process of onboarding a ASD App CSAR file:
receive an uploaded ASD-based CNF / application as a CSAR file
Unpack the uploaded CSAR file
Retag Docker images with the target Docker registry details
Push the retagged images to the target Docker registry
Upload the Helm chart of the ASD-based CNF / application to the Helm chart registry that the Distribution service specifies
Upload the ASD to the Catalog Manager Database (ASD Repository)
ASD Package/Artifact APIs
The Catalog Manager provides the following APIs for its clients:
List onboarded ASD App Packages
Query a specified ASD App Package
Retrieve ASD from the Onboarded ASD App Package
Delete an ASD App Package. (for a given asPkgId)
When an ASD App Package is deleted, 1) the Helm chart or charts are removed from the Helm chart Repository, 2) the ASD App package entry is removed from the ASD App Repository and 3) the Docker image or images are removed from the Image repository if no other onboarded package references them.
The Helm Repository provides APIs for Helm chart query for a given Helm chart id, which is from the ASD DeploymentItems.
The Image Repository (e.g., Docker repo) provides APIs for Image query for a given Image name (and Tag)
Fetch Artifact from CSAR package