c0f7b1b4609e48a9f77151f8c6a4eb51e01abf82
[demo.git] / heat / vFW_CNF_CDS / automation / config.py
1 # ============LICENSE_START=======================================================
2 # Copyright (C) 2021 Orange
3 # ================================================================================
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 #      http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15 #
16 # ============LICENSE_END=========================================================
17 from uuid import uuid4
18
19
20 class Config:
21     SCENARIO = 1
22     # 1 - default configuration values like set below
23     # 2 - extra ssh service that comes from the profile
24     # 3 - extra ssh service that comes from config + verification of the CNF status
25     # change requires new onboarding
26
27     K8S_NAMESPACE = "vfirewall"
28     K8S_VERSION = "1.18.9"
29     K8S_REGION = "kud"
30
31     #### SERVICE DETAILS ####
32     NATIVE = True # False for old dummy-heat based orchestration path
33     SKIP_POST_INSTANTIATION = True
34     MACRO_INSTANTIATION = True  # A-la-carte instantiation if False
35     GLOBAL_CUSTOMER_ID = "customer_cnf"
36     VSPFILE = "vsp/vfw_k8s_demo.zip"
37     if NATIVE:
38         VSPFILE = "vsp/native_vfw_k8s_demo.zip"
39
40     PROFILE_NAME = "vfw-cnf-cds-base-profile"
41     PROFILE_SOURCE = PROFILE_NAME
42     RELEASE_NAME = "vfw-1"
43
44     VENDOR = "vendor_cnf"
45     SERVICENAME = "vfw_k8s_demo_CNF" + "_" + str(SCENARIO)
46     VSPNAME = "VSP_" + SERVICENAME
47     VFNAME = "VF_" + SERVICENAME
48     SERVICE_INSTANCE_NAME = "INSTANCE_" + SERVICENAME
49     SDNC_ARTIFACT_NAME = "vnf"
50
51     # INSERT PARAMS FOR VNF HERE AS "name" : "value" PAIR
52     VNF_PARAM_LIST = {
53         "k8s-rb-profile-namespace": K8S_NAMESPACE,
54         "k8s-rb-profile-k8s-version": K8S_VERSION
55     }
56
57     VF_MODULE_PREFIX = ""
58     if NATIVE:
59         VF_MODULE_PREFIX = "helm_"
60
61     VF_MODULE_PARAM_LIST = {
62         VF_MODULE_PREFIX + "base_template": {
63             "instantiation_parameters": {
64                 "k8s-rb-profile-name": PROFILE_NAME,
65                 "k8s-rb-profile-source": PROFILE_SOURCE,
66                 "k8s-rb-instance-release-name": RELEASE_NAME + "-base",
67                 "k8s-rb-profile-namespace": K8S_NAMESPACE
68             },
69             "cloud_configuration": K8S_REGION
70         },
71         VF_MODULE_PREFIX + "vfw": {
72             "instantiation_parameters": {
73                 "k8s-rb-profile-name": PROFILE_NAME,
74                 "k8s-rb-profile-source": PROFILE_SOURCE,
75                 "k8s-rb-instance-release-name": RELEASE_NAME + "-vfw",
76                 "k8s-rb-profile-namespace": K8S_NAMESPACE
77             },
78             "cloud_configuration": K8S_REGION
79         },
80         VF_MODULE_PREFIX + "vpkg": {
81             "instantiation_parameters": {
82                 "k8s-rb-profile-name": PROFILE_NAME,
83                 "k8s-rb-profile-source": PROFILE_SOURCE,
84                 "k8s-rb-instance-release-name": RELEASE_NAME + "-vpkg",
85                 "k8s-rb-profile-namespace": K8S_NAMESPACE
86             },
87             "cloud_configuration": K8S_REGION
88         },
89         VF_MODULE_PREFIX + "vsn": {
90             "instantiation_parameters": {
91                 "k8s-rb-profile-name": PROFILE_NAME,
92                 "k8s-rb-profile-source": PROFILE_SOURCE,
93                 "k8s-rb-instance-release-name": RELEASE_NAME + "-vsn",
94                 "k8s-rb-profile-namespace": K8S_NAMESPACE
95             },
96             "cloud_configuration": K8S_REGION
97         }
98     }
99     ######## PNF DETAILS ########
100     ADD_PNF = False
101     if ADD_PNF:
102         PNF_VSP_FILE = "vsp/pnf_package.csar"
103         PNF_NAME = "PNF_example"
104         PNF_VSP_NAME = "VSP_" + PNF_NAME
105
106     ######## DEFAULT VALUES ########
107     OWNING_ENTITY = "OE-Demonstration"
108     PROJECT = "Project-Demonstration"
109     PLATFORM = "test"
110     LINE_OF_BUSINESS = "LOB-Demonstration"
111
112     #### REGION DETAILS ####
113     CLOUD_REGIONS = {
114         K8S_REGION: {
115             "complex_id": "k8s-complex1",
116             "cloud_owner": "K8sCloudOwner",
117             "cloud_type": "k8s",
118             "availability_zone": "k8s-availability-zone",
119             "tenant": {
120                 "id": str(uuid4()),
121                 "name": K8S_REGION + "-tenant"
122             },
123             "customer_resource_definitions": [
124                 # Uncomment lines below, if you want to run on non KUD k8s cluster
125                 # "crds/crd1",
126                 # "crds/crd2"
127             ],
128             "cluster_kubeconfig_file": "artifacts/kud_kubeconfig"
129         # },
130         # "openstack-region-test-1": {
131         #     "complex_id": "complex1",
132         #     "cloud_owner": "CloudOwner",
133         #     "cloud_type": "openstack",
134         #     "availability_zone": "Main",
135         #     "identity_url": "http://test:5000/v4",
136         #     "mso_id": "test_use",
137         #     "mso_pass": "test_password",
138         #     "identity_server_type": "KEYSTONE_V3",
139         #     "tenant": {
140         #         "id": "5117085204e84027a8d1a0cf34abb0ba",
141         #         "name": "onap-dev"
142         #     }
143         }
144     }
145     ######## SCENARIOS #############
146
147     ########     1    #############
148     if SCENARIO == 1:
149         SKIP_POST_INSTANTIATION = True
150         VF_MODULE_PARAM_LIST[VF_MODULE_PREFIX + "vpkg"]["instantiation_parameters"]["k8s-rb-profile-name"] = PROFILE_NAME
151         VF_MODULE_PARAM_LIST[VF_MODULE_PREFIX + "vpkg"]["instantiation_parameters"]["k8s-rb-profile-source"] = PROFILE_SOURCE
152     ########     2    #############
153     elif SCENARIO == 2:
154         SKIP_POST_INSTANTIATION = True
155         VF_MODULE_PARAM_LIST[VF_MODULE_PREFIX + "vpkg"]["instantiation_parameters"]["k8s-rb-profile-name"] = "vfw-cnf-cds-vpkg-profile"
156         VF_MODULE_PARAM_LIST[VF_MODULE_PREFIX + "vpkg"]["instantiation_parameters"]["k8s-rb-profile-source"] = "vfw-cnf-cds-vpkg-profile"
157         VF_MODULE_PARAM_LIST[VF_MODULE_PREFIX + "vpkg"]["instantiation_parameters"]["vpg-management-port"] = "31922"
158     ########     3    #############
159     elif SCENARIO == 3:
160         SKIP_POST_INSTANTIATION = False
161         VF_MODULE_PARAM_LIST[VF_MODULE_PREFIX + "vpkg"]["instantiation_parameters"]["k8s-rb-profile-name"] = PROFILE_NAME
162         VF_MODULE_PARAM_LIST[VF_MODULE_PREFIX + "vpkg"]["instantiation_parameters"]["k8s-rb-profile-source"] = PROFILE_SOURCE
163         VF_MODULE_PARAM_LIST[VF_MODULE_PREFIX + "vpkg"]["instantiation_parameters"]["k8s-rb-config-template-name"] = "ssh-service-config"
164         VF_MODULE_PARAM_LIST[VF_MODULE_PREFIX + "vpkg"]["instantiation_parameters"]["k8s-rb-config-template-source"] = "ssh-service-config"
165         VF_MODULE_PARAM_LIST[VF_MODULE_PREFIX + "vpkg"]["instantiation_parameters"]["k8s-rb-config-name"] = "ssh-service-config"
166         VF_MODULE_PARAM_LIST[VF_MODULE_PREFIX + "vpkg"]["instantiation_parameters"]["k8s-rb-config-value-source"] = "ssh-service-config"
167     else:
168         raise Exception("Not Implemented Scenario")