Feature request: Distributed Proxy Charms
[osm/Features.git] / Release9 / distributed_proxy_charms.md
1 # Distributed Proxy Charms #
2
3 ## Proposer ##
4 - David GarcĂ­a
5
6 ## Type ##
7 **Feature**
8
9 ## Target MDG/TF ##
10 N2VC
11 NBI
12 LCM
13
14 ## Description ##
15
16 Be able to select the (k8s) cloud for (k8s) Proxy charms that should be used in a vim account.
17
18 ### Implementation
19
20 #### Currently:
21
22 LCM has these ENV variables provided at OSM deployment time to specify the clouds it needs to use for
23 Proxy charms and K8s Proxy charms respectively:
24 - OSMLCM_VCA_CLOUD
25 - OSMLCM_VCA_K8S_CLOUD
26
27 With the current implementation, all proxy charms will go to the cloud set in OSMLCM_VCA_CLOUD, and all
28 k8s proxy charms will go to the cloud set in OSMLCM_VCA_K8S_CLOUD. These clouds must previously exist
29 in the VCA, OSM doesn't configure them or add them to the VCA.
30
31 #### Proposal:
32
33 When adding a VIM account, add several options to select another existing clouds to override the default ones.
34
35 ```bash
36 $ osm vim-create --type openstack --name openstack --config '{
37     vca_cloud: "mycloud",
38     vca_cloud_credential: "mycloud_credential",  # If not provided, same name as the "cloud" will be used
39     vca_k8s_cloud: "myk8scloud"
40     vca_k8s_cloud_credential: "myk8scloud_credential"  # If not provided, same name as the "cloud" will be used
41   }'
42 ```
43
44
45 #### Changes in NBI
46
47 Add `cloud`, `cloud_credential`, `k8s_cloud`, and `k8s_cloud_credential` to the validation in NBI.
48
49 #### Changes in LCM
50
51 Before creating or registering an execution environment, check if `cloud` or `k8s_cloud` exist or not,
52 and pass that data to N2VC.
53
54 #### Changes in N2VC
55
56 Use the default clouds for (K8s) Proxy Charms if no `cloud` or `k8s_cloud` is provided for the target VIM.
57 If the `cloud` or `k8s_cloud` are provided, use those clouds instead.
58
59
60
61 #### Benefits:
62 - Add flexibility in terms of distributing Proxy Charms across different clouds
63 - Be able to allocate clouds in the same VIM in which the VNFs will be deployed
64 - Decrease the impact if a (k8s) cloud goes down.
65
66
67 ## Demo or definition of done ##
68
69 This feature is considered completed when an OSM user with permissions to create a vim account is able to
70 select a specific cloud/k8s cloud of the VCA to have all the proxy charms/k8s proxy charms deployed
71 to it, instead of using the default clouds.