...
- K8S CISM Cluster: Container Infrastructure Service Manager Cluster performs the same function as VIM Zone but operates on containerized application level.
- CNF: Cloud Native Network Function. Containerized VNF is designed to be deployed in the cloud as a container. CNF is a better fit for microservice architecture due to the deployment size.
- Kubernetes: Kubernetes (K8s) is an open-source system for automating deployment, scaling and management of containerized applications
- POD: A Pod is a group of one or more containers (such as Docker containers), with shared storage/network, and a specification for how to run the containers.
Scope
In Scope
See the Epic and User Stories.
Out of Scope
TBD
Epic
Epic | Description | JIRA | priority | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
SO and its sub-components, CNFM, CNF Adapter, shall support ASD-based CNF lifecycle orchestration | SO and its sub-components, CNFM, CNF Adapter, shall support ASD-based CNF lifecycle orchestration (deployment and configuration) |
| 1 | ||||||||
...
Note: optionally, Delete an AS Identifier could clean up resources of an AS Instance, e.g., Persistent Volumes (PVs)
===========
Register K8S
...
To instantiate an AS on an non-ONAP K8S cluster, a cluster configuration file that is specific to the cluster must be uploaded.
...
Clusters
This adds an ability for CNFM to register container managers like Kubernetes. that will allow to instantiate and deploy containerized CNFs.
Note: Kubernetes is advanced and commonly used CISM as of now, but in the future, adding other CISM types could be considered. for now Kubernetes is a reference implementation.
In order to make CNFM to be able to operate K8S Clusters we need introduce K8S Cluster registration, deregistration and querying features.
- As a user I want to be able to register and list CISM Cluster, which is already deployed.
- As a user I want to name the CISM Cluster and select it’s type.
- As for main information source of k8s cluster type configuration I want to use a kubectl configuration file to feed authentication information and connectivity point information.
- As a user I want to modify and transform information upon uploading (upload certificates, change or select username and credentials).
- As a user I want to be able to query all stored information for clusters both individual cluster information and filtered list by criteria(ie name, type, status, etc).
Information needed for registration
- CISM Cluster Name
- CISM Cluster type (Kubernetes)
- CISM Cluster Server URL
- Username to access API
- Option to populate connectivity details by uploading kubeconfig file
Kubeconfig contains connectivity details for the K8s cluster(hostname, port, apiRoot), which includes authentication details, too
- Certificate Authority
========
To instantiate an AS on an non-ONAP K8S cluster, a cluster configuration file that is specific to the cluster must be uploaded.
To add a cluster configuration file of a cluster, create a POST request .../aslcm/v1/clusterconfigs will be performed.
...
- to verify the connectdion to the target cluster, run the following command from the ONAP K8S cluster
- kubectl --kubeconfig ${PATH_TO_TARGET_CLUSTER_CONFIGURATION_FILE} get namespaces
Deregister K8S Clusters
...
To remove a cluster configruation file, create a DELETE request. .../aslcm/v1/clusterconfig/{configName}
...