Skip to content
Snippets Groups Projects
Commit 974e5f74 authored by Carlos Manso's avatar Carlos Manso
Browse files

Bufixes

parent 6dc71a9a
No related branches found
No related tags found
2 merge requests!294Release TeraFlowSDN 4.0,!225Resolve "Integrate Support for IP-E2E-Optical SDN controllers to manage hierarchical virtual topologies"
Showing
with 238 additions and 72 deletions
...@@ -224,10 +224,6 @@ export GRAF_EXT_PORT_HTTP=${GRAF_EXT_PORT_HTTP:-"3000"} ...@@ -224,10 +224,6 @@ export GRAF_EXT_PORT_HTTP=${GRAF_EXT_PORT_HTTP:-"3000"}
# Deploy TeraFlowSDN # Deploy TeraFlowSDN
./deploy/tfs.sh ./deploy/tfs.sh
#Configure Subscription WS
./deploy/subscription_ws_ip.sh
./deploy/subscription_ws_e2e.sh
# Show deploy summary # Show deploy summary
./deploy/show.sh ./deploy/show.sh
......
...@@ -43,6 +43,14 @@ spec: ...@@ -43,6 +43,14 @@ spec:
env: env:
- name: LOG_LEVEL - name: LOG_LEVEL
value: "INFO" value: "INFO"
- name: WS_IP_HOST
value: "nbiservice.tfs-ip.svc.cluster.local"
- name: WS_IP_PORT
value: 8761
- name: WS_E2E_HOST
value: "e2e-orchestratorservice.tfs-e2e.svc.cluster.local"
- name: WS_E2E_PORT
value: 8762
readinessProbe: readinessProbe:
exec: exec:
command: ["/bin/grpc_health_probe", "-addr=:10050"] command: ["/bin/grpc_health_probe", "-addr=:10050"]
......
...@@ -44,6 +44,8 @@ spec: ...@@ -44,6 +44,8 @@ spec:
value: "INFO" value: "INFO"
- name: IETF_NETWORK_RENDERER - name: IETF_NETWORK_RENDERER
value: "LIBYANG" value: "LIBYANG"
- name: WS_E2E_PORT
value: 8762
readinessProbe: readinessProbe:
exec: exec:
command: ["/bin/grpc_health_probe", "-addr=:9090"] command: ["/bin/grpc_health_probe", "-addr=:9090"]
......
...@@ -35,17 +35,21 @@ spec: ...@@ -35,17 +35,21 @@ spec:
image: labs.etsi.org:5050/tfs/controller/vnt_manager:latest image: labs.etsi.org:5050/tfs/controller/vnt_manager:latest
imagePullPolicy: Always imagePullPolicy: Always
ports: ports:
- containerPort: 10070 - containerPort: 10080
- containerPort: 9192 - containerPort: 9192
env: env:
- name: LOG_LEVEL - name: LOG_LEVEL
value: "INFO" value: "INFO"
- name: WS_IP_PORT
value: 8761
- name: WS_E2E_PORT
value: 8762
readinessProbe: readinessProbe:
exec: exec:
command: ["/bin/grpc_health_probe", "-addr=:10070"] command: ["/bin/grpc_health_probe", "-addr=:10080"]
livenessProbe: livenessProbe:
exec: exec:
command: ["/bin/grpc_health_probe", "-addr=:10070"] command: ["/bin/grpc_health_probe", "-addr=:10080"]
resources: resources:
requests: requests:
cpu: 200m cpu: 200m
...@@ -66,8 +70,8 @@ spec: ...@@ -66,8 +70,8 @@ spec:
app: vnt-managerservice app: vnt-managerservice
ports: ports:
- name: grpc - name: grpc
port: 10070 port: 10080
targetPort: 10070 targetPort: 10080
- name: metrics - name: metrics
port: 9192 port: 9192
targetPort: 9192 targetPort: 9192
...@@ -63,10 +63,10 @@ export TFS_COMPONENTS="context device pathcomp service slice nbi webui load_gene ...@@ -63,10 +63,10 @@ export TFS_COMPONENTS="context device pathcomp service slice nbi webui load_gene
#export TFS_COMPONENTS="${TFS_COMPONENTS} forecaster" #export TFS_COMPONENTS="${TFS_COMPONENTS} forecaster"
# Uncomment to activate E2E Orchestrator # Uncomment to activate E2E Orchestrator
export TFS_COMPONENTS="${TFS_COMPONENTS} e2e_orchestrator" # export TFS_COMPONENTS="${TFS_COMPONENTS} e2e_orchestrator"
# Uncomment to activate VNT Manager # Uncomment to activate VNT Manager
export TFS_COMPONENTS="${TFS_COMPONENTS} vnt_manager" # export TFS_COMPONENTS="${TFS_COMPONENTS} vnt_manager"
# Uncomment to activate DLT and Interdomain # Uncomment to activate DLT and Interdomain
#export TFS_COMPONENTS="${TFS_COMPONENTS} interdomain dlt" #export TFS_COMPONENTS="${TFS_COMPONENTS} interdomain dlt"
......
...@@ -260,7 +260,7 @@ message Link { ...@@ -260,7 +260,7 @@ message Link {
string name = 2; string name = 2;
repeated EndPointId link_endpoint_ids = 3; repeated EndPointId link_endpoint_ids = 3;
LinkAttributes attributes = 4; LinkAttributes attributes = 4;
bool virtual = 5; LinkTypeEnum link_type = 5;
} }
message LinkIdList { message LinkIdList {
...@@ -276,6 +276,13 @@ message LinkEvent { ...@@ -276,6 +276,13 @@ message LinkEvent {
LinkId link_id = 2; LinkId link_id = 2;
} }
enum LinkTypeEnum {
LINKTYPE_UNKNOWN = 0;
LINKTYPE_COPPER = 1;
LINKTYPE_VIRTUAL_COPPER = 2;
LINKTYPE_OPTICAL = 3;
LINKTYPE_VIRTUAL_OPTICAL = 4;
}
// ----- Service ------------------------------------------------------------------------------------------------------- // ----- Service -------------------------------------------------------------------------------------------------------
message ServiceId { message ServiceId {
......
...@@ -20,11 +20,11 @@ import "context.proto"; ...@@ -20,11 +20,11 @@ import "context.proto";
service VNTManagerService { service VNTManagerService {
rpc VNTSubscript (VNTSubscriptionRequest) returns (VNTSubscriptionReply) {} rpc VNTSubscript (VNTSubscriptionRequest) returns (VNTSubscriptionReply) {}
rpc ListVirtualLinkIds (context.Empty) returns (context.LinkIdList) {} rpc ListVirtualLinkIds (context.Empty) returns (context.LinkIdList) {}
rpc ListVirtualLinks (context.Empty) returns (context.LinkList) {} rpc ListVirtualLinks (context.Empty) returns (context.LinkList) {}
rpc GetVirtualLink (context.LinkId) returns (context.Link) {} rpc GetVirtualLink (context.LinkId) returns (context.Link) {}
rpc SetVirtualLink (context.Link) returns (context.LinkId) {} rpc SetVirtualLink (context.Link) returns (context.LinkId) {}
rpc RemoveVirtualLink (context.LinkId) returns (context.Empty) {} rpc RemoveVirtualLink (context.LinkId) returns (context.Empty) {}
} }
message VNTSubscriptionRequest { message VNTSubscriptionRequest {
......
...@@ -77,9 +77,11 @@ RUN pip-compile --quiet --output-file=e2e_orchestrator/requirements.txt e2e_orch ...@@ -77,9 +77,11 @@ RUN pip-compile --quiet --output-file=e2e_orchestrator/requirements.txt e2e_orch
RUN python3 -m pip install -r e2e_orchestrator/requirements.txt RUN python3 -m pip install -r e2e_orchestrator/requirements.txt
# Add component files into working directory # Add component files into working directory
COPY --chown=teraflow:teraflow ./src/context/. context COPY src/context/__init__.py context/__init__.py
COPY --chown=teraflow:teraflow ./src/e2e_orchestrator/. e2e_orchestrator COPY src/context/client/. context/client/
COPY --chown=teraflow:teraflow ./src/service/. service COPY src/service/__init__.py service/__init__.py
COPY src/service/client/. service/client/
COPY src/e2e_orchestrator/. e2e_orchestrator/
# Start the service # Start the service
ENTRYPOINT ["python", "-m", "e2e_orchestrator.service"] ENTRYPOINT ["python", "-m", "e2e_orchestrator.service"]
...@@ -13,4 +13,4 @@ ...@@ -13,4 +13,4 @@
# limitations under the License. # limitations under the License.
networkx networkx
websockets==12.0 websockets==12.0
\ No newline at end of file
...@@ -19,6 +19,7 @@ from common.proto.context_pb2 import ( ...@@ -19,6 +19,7 @@ from common.proto.context_pb2 import (
Empty, Connection, EndPointId, Link, LinkId, TopologyDetails, Topology, Context, Service, ServiceId, Empty, Connection, EndPointId, Link, LinkId, TopologyDetails, Topology, Context, Service, ServiceId,
ServiceTypeEnum, ServiceStatusEnum) ServiceTypeEnum, ServiceStatusEnum)
from common.proto.e2eorchestrator_pb2_grpc import E2EOrchestratorServiceServicer from common.proto.e2eorchestrator_pb2_grpc import E2EOrchestratorServiceServicer
from common.Settings import get_setting
from context.client.ContextClient import ContextClient from context.client.ContextClient import ContextClient
from service.client.ServiceClient import ServiceClient from service.client.ServiceClient import ServiceClient
from context.service.database.uuids.EndPoint import endpoint_get_uuid from context.service.database.uuids.EndPoint import endpoint_get_uuid
...@@ -44,11 +45,12 @@ METRICS_POOL = MetricsPool("E2EOrchestrator", "RPC") ...@@ -44,11 +45,12 @@ METRICS_POOL = MetricsPool("E2EOrchestrator", "RPC")
context_client: ContextClient = ContextClient() context_client: ContextClient = ContextClient()
service_client: ServiceClient = ServiceClient() service_client: ServiceClient = ServiceClient()
EXT_HOST = "nbiservice.tfs-ip.svc.cluster.local" EXT_HOST = str(get_setting('WS_IP_HOST'))
EXT_PORT = "8762" EXT_PORT = str(get_setting('WS_IP_PORT'))
OWN_HOST = str(get_setting('WS_E2E_HOST'))
OWN_PORT = str(get_setting('WS_E2E_PORT'))
OWN_HOST = "e2e-orchestratorservice.tfs-e2e.svc.cluster.local"
OWN_PORT = "8761"
ALL_HOSTS = "0.0.0.0" ALL_HOSTS = "0.0.0.0"
...@@ -76,7 +78,7 @@ class SubscriptionServer(Thread): ...@@ -76,7 +78,7 @@ class SubscriptionServer(Thread):
message = websocket.recv() message = websocket.recv()
LOGGER.debug("Received message from WebSocket: {}".format(message)) LOGGER.debug("Received message from WebSocket: {}".format(message))
except Exception as ex: except Exception as ex:
LOGGER.info('Exception receiving from WebSocket: {}'.format(ex)) LOGGER.error('Exception receiving from WebSocket: {}'.format(ex))
self._events_server() self._events_server()
......
...@@ -81,9 +81,7 @@ def main(): ...@@ -81,9 +81,7 @@ def main():
register_tfs_api(rest_server) register_tfs_api(rest_server)
rest_server.start() rest_server.start()
<<<<<<< HEAD
register_context_subscription() register_context_subscription()
=======
LOGGER.debug('Configured Resources:') LOGGER.debug('Configured Resources:')
for resource in rest_server.api.resources: for resource in rest_server.api.resources:
LOGGER.debug(' - {:s}'.format(str(resource))) LOGGER.debug(' - {:s}'.format(str(resource)))
...@@ -91,7 +89,6 @@ def main(): ...@@ -91,7 +89,6 @@ def main():
LOGGER.debug('Configured Rules:') LOGGER.debug('Configured Rules:')
for rule in rest_server.app.url_map.iter_rules(): for rule in rest_server.app.url_map.iter_rules():
LOGGER.debug(' - {:s}'.format(str(rule))) LOGGER.debug(' - {:s}'.format(str(rule)))
>>>>>>> 07b8adea97ad03b872754bc695f5b1251ca68187
LOGGER.debug('Configured Resources:') LOGGER.debug('Configured Resources:')
for resource in rest_server.api.resources: for resource in rest_server.api.resources:
......
...@@ -16,8 +16,7 @@ import logging ...@@ -16,8 +16,7 @@ import logging
from websockets.sync.server import serve from websockets.sync.server import serve
from common.proto.vnt_manager_pb2 import VNTSubscriptionRequest from common.proto.vnt_manager_pb2 import VNTSubscriptionRequest
from common.proto.context_pb2 import Empty from common.Settings import get_setting
from context.client.ContextClient import ContextClient from context.client.ContextClient import ContextClient
from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME
from common.tools.object_factory.Topology import json_topology_id from common.tools.object_factory.Topology import json_topology_id
...@@ -34,15 +33,15 @@ ADMIN_TOPOLOGY_ID = TopologyId(**json_topology_id(DEFAULT_TOPOLOGY_NAME, context ...@@ -34,15 +33,15 @@ ADMIN_TOPOLOGY_ID = TopologyId(**json_topology_id(DEFAULT_TOPOLOGY_NAME, context
vnt_manager_client: VNTManagerClient = VNTManagerClient() vnt_manager_client: VNTManagerClient = VNTManagerClient()
context_client: ContextClient = ContextClient() context_client: ContextClient = ContextClient()
HOST = "0.0.0.0" ALL_HOSTS = "0.0.0.0"
PORT = 8762 WS_E2E_PORT = str(get_setting('WS_E2E_PORT'))
LOGGER = logging.getLogger(__name__) LOGGER = logging.getLogger(__name__)
def register_context_subscription(): def register_context_subscription():
with serve(subcript_to_vnt_manager, HOST, PORT, logger=LOGGER) as server: with serve(subcript_to_vnt_manager, ALL_HOSTS, WS_E2E_PORT, logger=LOGGER) as server:
LOGGER.info("Running subscription server...: {}:{}".format(HOST, str(PORT))) LOGGER.info("Running subscription server...: {}:{}".format(ALL_HOSTS, str(WS_E2E_PORT)))
server.serve_forever() server.serve_forever()
LOGGER.info("Exiting subscription server...") LOGGER.info("Exiting subscription server...")
......
...@@ -22,9 +22,9 @@ from context.client.ContextClient import ContextClient ...@@ -22,9 +22,9 @@ from context.client.ContextClient import ContextClient
from device.client.DeviceClient import DeviceClient from device.client.DeviceClient import DeviceClient
from service.client.ServiceClient import ServiceClient from service.client.ServiceClient import ServiceClient
from slice.client.SliceClient import SliceClient from slice.client.SliceClient import SliceClient
<<<<<<< HEAD
from vnt_manager.client.VNTManagerClient import VNTManagerClient from vnt_manager.client.VNTManagerClient import VNTManagerClient
import logging import logging
from common.proto.context_pb2 import LinkTypeEnum
from .Tools import ( from .Tools import (
format_grpc_to_json, grpc_connection_id, grpc_context, grpc_context_id, grpc_device, format_grpc_to_json, grpc_connection_id, grpc_context, grpc_context_id, grpc_device,
...@@ -300,35 +300,19 @@ class Link(_Resource): ...@@ -300,35 +300,19 @@ class Link(_Resource):
return format_grpc_to_json(self.context_client.GetLink(grpc_link_id(link_uuid))) return format_grpc_to_json(self.context_client.GetLink(grpc_link_id(link_uuid)))
def put(self, link_uuid : str): def put(self, link_uuid : str):
link = request.get_json() link_json = request.get_json()
if link_uuid != link['link_id']['link_uuid']['uuid']: link = grpc_link(link_json)
virtual_types = {LinkTypeEnum.LINKTYPE_VIRTUAL_COPPER, LinkTypeEnum.LINKTYPE_VIRTUAL_OPTICAL}
if link_uuid != link.link_id.link_uuid.uuid:
raise BadRequest('Mismatching link_uuid') raise BadRequest('Mismatching link_uuid')
elif link.link_type in virtual_types:
link = grpc_link(link_json)
return format_grpc_to_json(self.vntmanager_client.SetVirtualLink(link))
return format_grpc_to_json(self.context_client.SetLink(grpc_link(link))) return format_grpc_to_json(self.context_client.SetLink(grpc_link(link)))
def delete(self, link_uuid : str): def delete(self, link_uuid : str):
return format_grpc_to_json(self.context_client.RemoveLink(grpc_link_id(link_uuid))) return format_grpc_to_json(self.context_client.RemoveLink(grpc_link_id(link_uuid)))
class VirtualLinkIds(_Resource):
def get(self):
return format_grpc_to_json(self.vntmanager_client.ListVirtualLinkIds(Empty()))
class VirtualLinks(_Resource):
def get(self):
return format_grpc_to_json(self.vntmanager_client.ListVirtualLinks(Empty()))
class VirtualLink(_Resource):
def get(self, virtual_link_uuid : str):
return format_grpc_to_json(self.vntmanager_client.GetVirtualLink(grpc_link_id(virtual_link_uuid)))
def post(self, virtual_link_uuid : str): # pylint: disable=unused-argument
link_json = request.get_json()
link = grpc_link(link_json)
return format_grpc_to_json(self.vntmanager_client.SetVirtualLink(link))
def put(self, virtual_link_uuid : str): # pylint: disable=unused-argument
link = request.get_json()
return format_grpc_to_json(self.vntmanager_client.SetVirtualLink(grpc_link(link)))
def delete(self, virtual_link_uuid : str):
return format_grpc_to_json(self.vntmanager_client.RemoveVirtualLink(grpc_link_id(virtual_link_uuid)))
class ConnectionIds(_Resource): class ConnectionIds(_Resource):
def get(self, context_uuid : str, service_uuid : str): def get(self, context_uuid : str, service_uuid : str):
return format_grpc_to_json(self.context_client.ListConnectionIds(grpc_service_id(context_uuid, service_uuid))) return format_grpc_to_json(self.context_client.ListConnectionIds(grpc_service_id(context_uuid, service_uuid)))
......
...@@ -56,10 +56,6 @@ RESOURCES = [ ...@@ -56,10 +56,6 @@ RESOURCES = [
('api.links', Links, '/links'), ('api.links', Links, '/links'),
('api.link', Link, '/link/<path:link_uuid>'), ('api.link', Link, '/link/<path:link_uuid>'),
('api.virtual_link_ids', VirtualLinkIds, '/virtual_link_ids'),
('api.virtual_links', VirtualLinks, '/virtual_links'),
('api.virtual_link', VirtualLink, '/virtual_link/<path:virtual_link_uuid>'),
('api.connection_ids', ConnectionIds, '/context/<path:context_uuid>/service/<path:service_uuid>/connection_ids'), ('api.connection_ids', ConnectionIds, '/context/<path:context_uuid>/service/<path:service_uuid>/connection_ids'),
('api.connections', Connections, '/context/<path:context_uuid>/service/<path:service_uuid>/connections'), ('api.connections', Connections, '/context/<path:context_uuid>/service/<path:service_uuid>/connections'),
('api.connection', Connection, '/connection/<path:connection_uuid>'), ('api.connection', Connection, '/connection/<path:connection_uuid>'),
......
...@@ -20,3 +20,5 @@ include: ...@@ -20,3 +20,5 @@ include:
#- local: '/src/tests/nfvsdn22/.gitlab-ci.yml' #- local: '/src/tests/nfvsdn22/.gitlab-ci.yml'
#- local: '/src/tests/ofc23/.gitlab-ci.yml' #- local: '/src/tests/ofc23/.gitlab-ci.yml'
- local: '/src/tests/ofc24/.gitlab-ci.yml' - local: '/src/tests/ofc24/.gitlab-ci.yml'
- local: '/src/tests/ofc24/.gitlab-ci.yml'
\ No newline at end of file
...@@ -26,4 +26,8 @@ kubectl apply -f src/tests/ecoc24/nginx-ingress-controller-e2e.yaml ...@@ -26,4 +26,8 @@ kubectl apply -f src/tests/ecoc24/nginx-ingress-controller-e2e.yaml
# Deploy TFS for E2E # Deploy TFS for E2E
source src/tests/ecoc24/deploy_specs_e2e.sh source src/tests/ecoc24/deploy_specs_e2e.sh
./deploy/all.sh ./deploy/all.sh
#Configure Subscription WS
./deploy/subscription_ws_e2e.sh
mv tfs_runtime_env_vars.sh tfs_runtime_env_vars_e2e.sh mv tfs_runtime_env_vars.sh tfs_runtime_env_vars_e2e.sh
...@@ -26,4 +26,8 @@ kubectl apply -f src/tests/ecoc24/nginx-ingress-controller-ip.yaml ...@@ -26,4 +26,8 @@ kubectl apply -f src/tests/ecoc24/nginx-ingress-controller-ip.yaml
# Deploy TFS for IP # Deploy TFS for IP
source src/tests/ecoc24/deploy_specs_ip.sh source src/tests/ecoc24/deploy_specs_ip.sh
./deploy/all.sh ./deploy/all.sh
#Configure Subscription WS
./deploy/subscription_ws_ip.sh
mv tfs_runtime_env_vars.sh tfs_runtime_env_vars_ip.sh mv tfs_runtime_env_vars.sh tfs_runtime_env_vars_ip.sh
#!/bin/bash
# Copyright 2022-2024 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Delete old namespaces
kubectl delete namespace tfs-opt
# Delete secondary ingress controllers
kubectl delete -f src/tests/ecoc24/nginx-ingress-controller-opt.yaml
# Create secondary ingress controllers
kubectl apply -f src/tests/ecoc24/nginx-ingress-controller-opt.yaml
# Deploy TFS for OPT
source src/tests/ecoc24/deploy_specs_opt.sh
./deploy/all.sh
mv tfs_runtime_env_vars.sh tfs_runtime_env_vars_opt.sh
#!/bin/bash #!/bin/bash
# Copyright 2022-2024 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) # Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
...@@ -20,14 +20,35 @@ ...@@ -20,14 +20,35 @@
export TFS_REGISTRY_IMAGES="http://localhost:32000/tfs/" export TFS_REGISTRY_IMAGES="http://localhost:32000/tfs/"
# Set the list of components, separated by spaces, you want to build images for, and deploy. # Set the list of components, separated by spaces, you want to build images for, and deploy.
# export TFS_COMPONENTS="context device pathcomp service slice nbi webui load_generator"
export TFS_COMPONENTS="context device pathcomp service slice nbi webui" export TFS_COMPONENTS="context device pathcomp service slice nbi webui"
# Uncomment to activate Monitoring # Uncomment to activate Monitoring (old)
#export TFS_COMPONENTS="${TFS_COMPONENTS} monitoring" #export TFS_COMPONENTS="${TFS_COMPONENTS} monitoring"
# Uncomment to activate ZTP and Policy Manager # Uncomment to activate Monitoring Framework (new)
#export TFS_COMPONENTS="${TFS_COMPONENTS} ztp policy" #export TFS_COMPONENTS="${TFS_COMPONENTS} kpi_manager kpi_value_writer kpi_value_api telemetry analytics automation"
# Uncomment to activate QoS Profiles
#export TFS_COMPONENTS="${TFS_COMPONENTS} qos_profile"
# Uncomment to activate BGP-LS Speaker
#export TFS_COMPONENTS="${TFS_COMPONENTS} bgpls_speaker"
# Uncomment to activate Optical Controller
# To manage optical connections, "service" requires "opticalcontroller" to be deployed
# before "service", thus we "hack" the TFS_COMPONENTS environment variable prepending the
# "opticalcontroller" only if "service" is already in TFS_COMPONENTS, and re-export it.
#if [[ "$TFS_COMPONENTS" == *"service"* ]]; then
# BEFORE="${TFS_COMPONENTS% service*}"
# AFTER="${TFS_COMPONENTS#* service}"
# export TFS_COMPONENTS="${BEFORE} opticalcontroller service ${AFTER}"
#fi
# Uncomment to activate ZTP
#export TFS_COMPONENTS="${TFS_COMPONENTS} ztp"
# Uncomment to activate Policy Manager
#export TFS_COMPONENTS="${TFS_COMPONENTS} policy"
# Uncomment to activate Optical CyberSecurity # Uncomment to activate Optical CyberSecurity
#export TFS_COMPONENTS="${TFS_COMPONENTS} dbscanserving opticalattackmitigator opticalattackdetector opticalattackmanager" #export TFS_COMPONENTS="${TFS_COMPONENTS} dbscanserving opticalattackmitigator opticalattackdetector opticalattackmanager"
...@@ -38,9 +59,37 @@ export TFS_COMPONENTS="context device pathcomp service slice nbi webui" ...@@ -38,9 +59,37 @@ export TFS_COMPONENTS="context device pathcomp service slice nbi webui"
# Uncomment to activate TE # Uncomment to activate TE
#export TFS_COMPONENTS="${TFS_COMPONENTS} te" #export TFS_COMPONENTS="${TFS_COMPONENTS} te"
# Uncomment to activate Forecaster
#export TFS_COMPONENTS="${TFS_COMPONENTS} forecaster"
# Uncomment to activate E2E Orchestrator # Uncomment to activate E2E Orchestrator
export TFS_COMPONENTS="${TFS_COMPONENTS} e2e_orchestrator" export TFS_COMPONENTS="${TFS_COMPONENTS} e2e_orchestrator"
# Uncomment to activate VNT Manager
# export TFS_COMPONENTS="${TFS_COMPONENTS} vnt_manager"
# Uncomment to activate DLT and Interdomain
#export TFS_COMPONENTS="${TFS_COMPONENTS} interdomain dlt"
#if [[ "$TFS_COMPONENTS" == *"dlt"* ]]; then
# export KEY_DIRECTORY_PATH="src/dlt/gateway/keys/priv_sk"
# export CERT_DIRECTORY_PATH="src/dlt/gateway/keys/cert.pem"
# export TLS_CERT_PATH="src/dlt/gateway/keys/ca.crt"
#fi
# Uncomment to activate QKD App
# To manage QKD Apps, "service" requires "qkd_app" to be deployed
# before "service", thus we "hack" the TFS_COMPONENTS environment variable prepending the
# "qkd_app" only if "service" is already in TFS_COMPONENTS, and re-export it.
#if [[ "$TFS_COMPONENTS" == *"service"* ]]; then
# BEFORE="${TFS_COMPONENTS% service*}"
# AFTER="${TFS_COMPONENTS#* service}"
# export TFS_COMPONENTS="${BEFORE} qkd_app service ${AFTER}"
#fi
# Uncomment to activate Load Generator
#export TFS_COMPONENTS="${TFS_COMPONENTS} load_generator"
# Set the tag you want to use for your images. # Set the tag you want to use for your images.
export TFS_IMAGE_TAG="dev" export TFS_IMAGE_TAG="dev"
...@@ -105,6 +154,10 @@ export NATS_EXT_PORT_CLIENT="4223" ...@@ -105,6 +154,10 @@ export NATS_EXT_PORT_CLIENT="4223"
# Set the external port NATS HTTP Mgmt GUI interface will be exposed to. # Set the external port NATS HTTP Mgmt GUI interface will be exposed to.
export NATS_EXT_PORT_HTTP="8223" export NATS_EXT_PORT_HTTP="8223"
# Set NATS installation mode to 'single'. This option is convenient for development and testing.
# See ./deploy/all.sh or ./deploy/nats.sh for additional details
export NATS_DEPLOY_MODE="single"
# Disable flag for re-deploying NATS from scratch. # Disable flag for re-deploying NATS from scratch.
export NATS_REDEPLOY="" export NATS_REDEPLOY=""
...@@ -149,3 +202,15 @@ export PROM_EXT_PORT_HTTP="9090" ...@@ -149,3 +202,15 @@ export PROM_EXT_PORT_HTTP="9090"
# Set the external port Grafana HTTP Dashboards will be exposed to. # Set the external port Grafana HTTP Dashboards will be exposed to.
export GRAF_EXT_PORT_HTTP="3000" export GRAF_EXT_PORT_HTTP="3000"
# ----- Apache Kafka -----------------------------------------------------------
# Set the namespace where Apache Kafka will be deployed.
export KFK_NAMESPACE="kafka"
# Set the port Apache Kafka server will be exposed to.
export KFK_SERVER_PORT="9092"
# Set the flag to YES for redeploying of Apache Kafka
export KFK_REDEPLOY=""
#!/bin/bash #!/bin/bash
# Copyright 2022-2024 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) # Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
...@@ -20,14 +20,35 @@ ...@@ -20,14 +20,35 @@
export TFS_REGISTRY_IMAGES="http://localhost:32000/tfs/" export TFS_REGISTRY_IMAGES="http://localhost:32000/tfs/"
# Set the list of components, separated by spaces, you want to build images for, and deploy. # Set the list of components, separated by spaces, you want to build images for, and deploy.
# export TFS_COMPONENTS="context device pathcomp service slice nbi webui load_generator"
export TFS_COMPONENTS="context device pathcomp service slice nbi webui" export TFS_COMPONENTS="context device pathcomp service slice nbi webui"
# Uncomment to activate Monitoring # Uncomment to activate Monitoring (old)
#export TFS_COMPONENTS="${TFS_COMPONENTS} monitoring" #export TFS_COMPONENTS="${TFS_COMPONENTS} monitoring"
# Uncomment to activate ZTP and Policy Manager # Uncomment to activate Monitoring Framework (new)
#export TFS_COMPONENTS="${TFS_COMPONENTS} ztp policy" #export TFS_COMPONENTS="${TFS_COMPONENTS} kpi_manager kpi_value_writer kpi_value_api telemetry analytics automation"
# Uncomment to activate QoS Profiles
#export TFS_COMPONENTS="${TFS_COMPONENTS} qos_profile"
# Uncomment to activate BGP-LS Speaker
#export TFS_COMPONENTS="${TFS_COMPONENTS} bgpls_speaker"
# Uncomment to activate Optical Controller
# To manage optical connections, "service" requires "opticalcontroller" to be deployed
# before "service", thus we "hack" the TFS_COMPONENTS environment variable prepending the
# "opticalcontroller" only if "service" is already in TFS_COMPONENTS, and re-export it.
#if [[ "$TFS_COMPONENTS" == *"service"* ]]; then
# BEFORE="${TFS_COMPONENTS% service*}"
# AFTER="${TFS_COMPONENTS#* service}"
# export TFS_COMPONENTS="${BEFORE} opticalcontroller service ${AFTER}"
#fi
# Uncomment to activate ZTP
#export TFS_COMPONENTS="${TFS_COMPONENTS} ztp"
# Uncomment to activate Policy Manager
#export TFS_COMPONENTS="${TFS_COMPONENTS} policy"
# Uncomment to activate Optical CyberSecurity # Uncomment to activate Optical CyberSecurity
#export TFS_COMPONENTS="${TFS_COMPONENTS} dbscanserving opticalattackmitigator opticalattackdetector opticalattackmanager" #export TFS_COMPONENTS="${TFS_COMPONENTS} dbscanserving opticalattackmitigator opticalattackdetector opticalattackmanager"
...@@ -38,9 +59,37 @@ export TFS_COMPONENTS="context device pathcomp service slice nbi webui" ...@@ -38,9 +59,37 @@ export TFS_COMPONENTS="context device pathcomp service slice nbi webui"
# Uncomment to activate TE # Uncomment to activate TE
#export TFS_COMPONENTS="${TFS_COMPONENTS} te" #export TFS_COMPONENTS="${TFS_COMPONENTS} te"
# Uncomment to activate Forecaster
#export TFS_COMPONENTS="${TFS_COMPONENTS} forecaster"
# Uncomment to activate E2E Orchestrator
# export TFS_COMPONENTS="${TFS_COMPONENTS} e2e_orchestrator"
# Uncomment to activate VNT Manager # Uncomment to activate VNT Manager
export TFS_COMPONENTS="${TFS_COMPONENTS} vnt_manager" export TFS_COMPONENTS="${TFS_COMPONENTS} vnt_manager"
# Uncomment to activate DLT and Interdomain
#export TFS_COMPONENTS="${TFS_COMPONENTS} interdomain dlt"
#if [[ "$TFS_COMPONENTS" == *"dlt"* ]]; then
# export KEY_DIRECTORY_PATH="src/dlt/gateway/keys/priv_sk"
# export CERT_DIRECTORY_PATH="src/dlt/gateway/keys/cert.pem"
# export TLS_CERT_PATH="src/dlt/gateway/keys/ca.crt"
#fi
# Uncomment to activate QKD App
# To manage QKD Apps, "service" requires "qkd_app" to be deployed
# before "service", thus we "hack" the TFS_COMPONENTS environment variable prepending the
# "qkd_app" only if "service" is already in TFS_COMPONENTS, and re-export it.
#if [[ "$TFS_COMPONENTS" == *"service"* ]]; then
# BEFORE="${TFS_COMPONENTS% service*}"
# AFTER="${TFS_COMPONENTS#* service}"
# export TFS_COMPONENTS="${BEFORE} qkd_app service ${AFTER}"
#fi
# Uncomment to activate Load Generator
#export TFS_COMPONENTS="${TFS_COMPONENTS} load_generator"
# Set the tag you want to use for your images. # Set the tag you want to use for your images.
export TFS_IMAGE_TAG="dev" export TFS_IMAGE_TAG="dev"
...@@ -105,6 +154,10 @@ export NATS_EXT_PORT_CLIENT="4224" ...@@ -105,6 +154,10 @@ export NATS_EXT_PORT_CLIENT="4224"
# Set the external port NATS HTTP Mgmt GUI interface will be exposed to. # Set the external port NATS HTTP Mgmt GUI interface will be exposed to.
export NATS_EXT_PORT_HTTP="8224" export NATS_EXT_PORT_HTTP="8224"
# Set NATS installation mode to 'single'. This option is convenient for development and testing.
# See ./deploy/all.sh or ./deploy/nats.sh for additional details
export NATS_DEPLOY_MODE="single"
# Disable flag for re-deploying NATS from scratch. # Disable flag for re-deploying NATS from scratch.
export NATS_REDEPLOY="" export NATS_REDEPLOY=""
...@@ -149,3 +202,15 @@ export PROM_EXT_PORT_HTTP="9090" ...@@ -149,3 +202,15 @@ export PROM_EXT_PORT_HTTP="9090"
# Set the external port Grafana HTTP Dashboards will be exposed to. # Set the external port Grafana HTTP Dashboards will be exposed to.
export GRAF_EXT_PORT_HTTP="3000" export GRAF_EXT_PORT_HTTP="3000"
# ----- Apache Kafka -----------------------------------------------------------
# Set the namespace where Apache Kafka will be deployed.
export KFK_NAMESPACE="kafka"
# Set the port Apache Kafka server will be exposed to.
export KFK_SERVER_PORT="9092"
# Set the flag to YES for redeploying of Apache Kafka
export KFK_REDEPLOY=""
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment