Loading .gitignore +2 −0 Original line number Diff line number Diff line Loading @@ -178,6 +178,8 @@ cython_debug/ # Sqlite *.db #temp files to test telemetry src/telemetry/backend/tempFiles/ # TeraFlowSDN-generated files tfs_runtime_env_vars.sh tfs_runtime_env_vars*.sh Loading .gitlab-ci.yml +67 −61 Original line number Diff line number Diff line # # Copyright 2022-2025 ETSI SDG TeraFlowSDN (TFS) (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. # Copyright 2022-2025 ETSI SDG TeraFlowSDN (TFS) (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. # # stages of the cicd pipeline # stages: # #- dependencies # - build # - unit_test # - end2end_test # stages of the cicd pipeline stages: #- dependencies - build - unit_test - end2end_test # # include the individual .gitlab-ci.yml of each micro-service and tests # include: # #- local: '/manifests/.gitlab-ci.yml' # - local: '/src/monitoring/.gitlab-ci.yml' # - local: '/src/nbi/.gitlab-ci.yml' # - local: '/src/context/.gitlab-ci.yml' # - local: '/src/device/.gitlab-ci.yml' # - local: '/src/service/.gitlab-ci.yml' # - local: '/src/qkd_app/.gitlab-ci.yml' # - local: '/src/dbscanserving/.gitlab-ci.yml' # - local: '/src/opticalattackmitigator/.gitlab-ci.yml' # - local: '/src/opticalattackdetector/.gitlab-ci.yml' # - local: '/src/opticalattackmanager/.gitlab-ci.yml' # - local: '/src/opticalcontroller/.gitlab-ci.yml' # - local: '/src/ztp/.gitlab-ci.yml' # - local: '/src/policy/.gitlab-ci.yml' # - local: '/src/automation/.gitlab-ci.yml' # - local: '/src/forecaster/.gitlab-ci.yml' # #- local: '/src/webui/.gitlab-ci.yml' # #- local: '/src/l3_distributedattackdetector/.gitlab-ci.yml' # #- local: '/src/l3_centralizedattackdetector/.gitlab-ci.yml' # #- local: '/src/l3_attackmitigator/.gitlab-ci.yml' # - local: '/src/slice/.gitlab-ci.yml' # #- local: '/src/interdomain/.gitlab-ci.yml' # - local: '/src/pathcomp/.gitlab-ci.yml' # #- local: '/src/dlt/.gitlab-ci.yml' # - local: '/src/load_generator/.gitlab-ci.yml' # - local: '/src/bgpls_speaker/.gitlab-ci.yml' # - local: '/src/kpi_manager/.gitlab-ci.yml' # - local: '/src/kpi_value_api/.gitlab-ci.yml' # #- local: '/src/kpi_value_writer/.gitlab-ci.yml' # #- local: '/src/telemetry/.gitlab-ci.yml' # - local: '/src/analytics/.gitlab-ci.yml' # - local: '/src/qos_profile/.gitlab-ci.yml' # - local: '/src/vnt_manager/.gitlab-ci.yml' # - local: '/src/e2e_orchestrator/.gitlab-ci.yml' # - local: '/src/ztp_server/.gitlab-ci.yml' # - local: '/src/osm_client/.gitlab-ci.yml' # - local: '/src/simap_connector/.gitlab-ci.yml' # - local: '/src/pluggables/.gitlab-ci.yml' workflow: rules: - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' when: always - when: never # # This should be last one: end-to-end integration tests # - local: '/src/tests/.gitlab-ci.yml' # include the individual .gitlab-ci.yml of each micro-service and tests include: #- local: '/manifests/.gitlab-ci.yml' - local: '/src/monitoring/.gitlab-ci.yml' - local: '/src/nbi/.gitlab-ci.yml' - local: '/src/context/.gitlab-ci.yml' - local: '/src/device/.gitlab-ci.yml' - local: '/src/service/.gitlab-ci.yml' - local: '/src/qkd_app/.gitlab-ci.yml' - local: '/src/dbscanserving/.gitlab-ci.yml' - local: '/src/opticalattackmitigator/.gitlab-ci.yml' - local: '/src/opticalattackdetector/.gitlab-ci.yml' - local: '/src/opticalattackmanager/.gitlab-ci.yml' - local: '/src/opticalcontroller/.gitlab-ci.yml' - local: '/src/ztp/.gitlab-ci.yml' - local: '/src/policy/.gitlab-ci.yml' - local: '/src/automation/.gitlab-ci.yml' - local: '/src/forecaster/.gitlab-ci.yml' #- local: '/src/webui/.gitlab-ci.yml' #- local: '/src/l3_distributedattackdetector/.gitlab-ci.yml' #- local: '/src/l3_centralizedattackdetector/.gitlab-ci.yml' #- local: '/src/l3_attackmitigator/.gitlab-ci.yml' - local: '/src/slice/.gitlab-ci.yml' #- local: '/src/interdomain/.gitlab-ci.yml' - local: '/src/pathcomp/.gitlab-ci.yml' #- local: '/src/dlt/.gitlab-ci.yml' - local: '/src/load_generator/.gitlab-ci.yml' - local: '/src/bgpls_speaker/.gitlab-ci.yml' - local: '/src/kpi_manager/.gitlab-ci.yml' - local: '/src/kpi_value_api/.gitlab-ci.yml' #- local: '/src/kpi_value_writer/.gitlab-ci.yml' #- local: '/src/telemetry/.gitlab-ci.yml' - local: '/src/analytics/.gitlab-ci.yml' - local: '/src/qos_profile/.gitlab-ci.yml' - local: '/src/vnt_manager/.gitlab-ci.yml' - local: '/src/e2e_orchestrator/.gitlab-ci.yml' - local: '/src/ztp_server/.gitlab-ci.yml' - local: '/src/osm_client/.gitlab-ci.yml' - local: '/src/simap_connector/.gitlab-ci.yml' - local: '/src/pluggables/.gitlab-ci.yml' # This should be last one: end-to-end integration tests - local: '/src/tests/.gitlab-ci.yml' deploy/tfs.sh +1 −1 Original line number Diff line number Diff line Loading @@ -133,7 +133,7 @@ kubectl create secret generic crdb-data --namespace ${TFS_K8S_NAMESPACE} --type= printf "\n" echo ">>> Create Secret with Apache Kafka..." KFK_SERVER_PORT=$(kubectl --namespace ${KFK_NAMESPACE} get service kafka-public -o 'jsonpath={.spec.ports[0].port}') KFK_SERVER_PORT=$(kubectl --namespace ${KFK_NAMESPACE} get service kafka-service -o 'jsonpath={.spec.ports[0].port}') kubectl create secret generic kfk-kpi-data --namespace ${TFS_K8S_NAMESPACE} --type='Opaque' \ --from-literal=KFK_NAMESPACE=${KFK_NAMESPACE} \ --from-literal=KFK_SERVER_PORT=${KFK_SERVER_PORT} Loading hackfest/mock_osm/WimconnectorIETFL2VPN.py +3 −3 Original line number Diff line number Diff line Loading @@ -167,7 +167,7 @@ class WimconnectorIETFL2VPN(SdnConnectorBase): """ SETTINGS = { # min_endpoints, max_endpoints, vpn_service_type 'ELINE': (2, 2, 'vpws'), # Virtual Private Wire Service 'ELAN' : (2, None, 'vpls'), # Virtual Private LAN Service 'ELAN' : (2, None, 'bgp-vpls'), # Virtual Private LAN Service } settings = SETTINGS.get(service_type) if settings is None: raise NotImplementedError('Unsupported service_type({:s})'.format(str(service_type))) Loading Loading @@ -291,12 +291,12 @@ class WimconnectorIETFL2VPN(SdnConnectorBase): if access_priority is not None: availability = {} availability["access-priority"] = access_priority availability["single-active"] = [None] availability["single-active"] = None site_network_access["availability"] = availability constraint = {} constraint['constraint-type'] = 'end-to-end-diverse' constraint['target'] = {'all-other-accesses': [None]} constraint['target'] = {'all-other-accesses': None} access_diversity = {} access_diversity['constraints'] = {'constraint': []} Loading manifests/kafka/single-node.yaml +3 −3 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ apiVersion: v1 kind: Service metadata: name: kafka-public name: kafka-service labels: app.kubernetes.io/component: message-broker app.kubernetes.io/instance: kafka Loading Loading @@ -50,7 +50,7 @@ spec: app.kubernetes.io/component: message-broker app.kubernetes.io/instance: kafka app.kubernetes.io/name: kafka serviceName: "kafka-public" serviceName: "kafka-service" replicas: 1 minReadySeconds: 5 template: Loading Loading @@ -83,7 +83,7 @@ spec: - name: KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP value: "PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT" - name: KAFKA_CFG_ADVERTISED_LISTENERS value: "PLAINTEXT://kafka-public.kafka.svc.cluster.local:9092,EXTERNAL://localhost:9094" value: "PLAINTEXT://kafka-service.kafka.svc.cluster.local:9092,EXTERNAL://localhost:9094" - name: KAFKA_CFG_CONTROLLER_LISTENER_NAMES value: "CONTROLLER" - name: KAFKA_CFG_CONTROLLER_QUORUM_VOTERS Loading Loading
.gitignore +2 −0 Original line number Diff line number Diff line Loading @@ -178,6 +178,8 @@ cython_debug/ # Sqlite *.db #temp files to test telemetry src/telemetry/backend/tempFiles/ # TeraFlowSDN-generated files tfs_runtime_env_vars.sh tfs_runtime_env_vars*.sh Loading
.gitlab-ci.yml +67 −61 Original line number Diff line number Diff line # # Copyright 2022-2025 ETSI SDG TeraFlowSDN (TFS) (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. # Copyright 2022-2025 ETSI SDG TeraFlowSDN (TFS) (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. # # stages of the cicd pipeline # stages: # #- dependencies # - build # - unit_test # - end2end_test # stages of the cicd pipeline stages: #- dependencies - build - unit_test - end2end_test # # include the individual .gitlab-ci.yml of each micro-service and tests # include: # #- local: '/manifests/.gitlab-ci.yml' # - local: '/src/monitoring/.gitlab-ci.yml' # - local: '/src/nbi/.gitlab-ci.yml' # - local: '/src/context/.gitlab-ci.yml' # - local: '/src/device/.gitlab-ci.yml' # - local: '/src/service/.gitlab-ci.yml' # - local: '/src/qkd_app/.gitlab-ci.yml' # - local: '/src/dbscanserving/.gitlab-ci.yml' # - local: '/src/opticalattackmitigator/.gitlab-ci.yml' # - local: '/src/opticalattackdetector/.gitlab-ci.yml' # - local: '/src/opticalattackmanager/.gitlab-ci.yml' # - local: '/src/opticalcontroller/.gitlab-ci.yml' # - local: '/src/ztp/.gitlab-ci.yml' # - local: '/src/policy/.gitlab-ci.yml' # - local: '/src/automation/.gitlab-ci.yml' # - local: '/src/forecaster/.gitlab-ci.yml' # #- local: '/src/webui/.gitlab-ci.yml' # #- local: '/src/l3_distributedattackdetector/.gitlab-ci.yml' # #- local: '/src/l3_centralizedattackdetector/.gitlab-ci.yml' # #- local: '/src/l3_attackmitigator/.gitlab-ci.yml' # - local: '/src/slice/.gitlab-ci.yml' # #- local: '/src/interdomain/.gitlab-ci.yml' # - local: '/src/pathcomp/.gitlab-ci.yml' # #- local: '/src/dlt/.gitlab-ci.yml' # - local: '/src/load_generator/.gitlab-ci.yml' # - local: '/src/bgpls_speaker/.gitlab-ci.yml' # - local: '/src/kpi_manager/.gitlab-ci.yml' # - local: '/src/kpi_value_api/.gitlab-ci.yml' # #- local: '/src/kpi_value_writer/.gitlab-ci.yml' # #- local: '/src/telemetry/.gitlab-ci.yml' # - local: '/src/analytics/.gitlab-ci.yml' # - local: '/src/qos_profile/.gitlab-ci.yml' # - local: '/src/vnt_manager/.gitlab-ci.yml' # - local: '/src/e2e_orchestrator/.gitlab-ci.yml' # - local: '/src/ztp_server/.gitlab-ci.yml' # - local: '/src/osm_client/.gitlab-ci.yml' # - local: '/src/simap_connector/.gitlab-ci.yml' # - local: '/src/pluggables/.gitlab-ci.yml' workflow: rules: - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' when: always - when: never # # This should be last one: end-to-end integration tests # - local: '/src/tests/.gitlab-ci.yml' # include the individual .gitlab-ci.yml of each micro-service and tests include: #- local: '/manifests/.gitlab-ci.yml' - local: '/src/monitoring/.gitlab-ci.yml' - local: '/src/nbi/.gitlab-ci.yml' - local: '/src/context/.gitlab-ci.yml' - local: '/src/device/.gitlab-ci.yml' - local: '/src/service/.gitlab-ci.yml' - local: '/src/qkd_app/.gitlab-ci.yml' - local: '/src/dbscanserving/.gitlab-ci.yml' - local: '/src/opticalattackmitigator/.gitlab-ci.yml' - local: '/src/opticalattackdetector/.gitlab-ci.yml' - local: '/src/opticalattackmanager/.gitlab-ci.yml' - local: '/src/opticalcontroller/.gitlab-ci.yml' - local: '/src/ztp/.gitlab-ci.yml' - local: '/src/policy/.gitlab-ci.yml' - local: '/src/automation/.gitlab-ci.yml' - local: '/src/forecaster/.gitlab-ci.yml' #- local: '/src/webui/.gitlab-ci.yml' #- local: '/src/l3_distributedattackdetector/.gitlab-ci.yml' #- local: '/src/l3_centralizedattackdetector/.gitlab-ci.yml' #- local: '/src/l3_attackmitigator/.gitlab-ci.yml' - local: '/src/slice/.gitlab-ci.yml' #- local: '/src/interdomain/.gitlab-ci.yml' - local: '/src/pathcomp/.gitlab-ci.yml' #- local: '/src/dlt/.gitlab-ci.yml' - local: '/src/load_generator/.gitlab-ci.yml' - local: '/src/bgpls_speaker/.gitlab-ci.yml' - local: '/src/kpi_manager/.gitlab-ci.yml' - local: '/src/kpi_value_api/.gitlab-ci.yml' #- local: '/src/kpi_value_writer/.gitlab-ci.yml' #- local: '/src/telemetry/.gitlab-ci.yml' - local: '/src/analytics/.gitlab-ci.yml' - local: '/src/qos_profile/.gitlab-ci.yml' - local: '/src/vnt_manager/.gitlab-ci.yml' - local: '/src/e2e_orchestrator/.gitlab-ci.yml' - local: '/src/ztp_server/.gitlab-ci.yml' - local: '/src/osm_client/.gitlab-ci.yml' - local: '/src/simap_connector/.gitlab-ci.yml' - local: '/src/pluggables/.gitlab-ci.yml' # This should be last one: end-to-end integration tests - local: '/src/tests/.gitlab-ci.yml'
deploy/tfs.sh +1 −1 Original line number Diff line number Diff line Loading @@ -133,7 +133,7 @@ kubectl create secret generic crdb-data --namespace ${TFS_K8S_NAMESPACE} --type= printf "\n" echo ">>> Create Secret with Apache Kafka..." KFK_SERVER_PORT=$(kubectl --namespace ${KFK_NAMESPACE} get service kafka-public -o 'jsonpath={.spec.ports[0].port}') KFK_SERVER_PORT=$(kubectl --namespace ${KFK_NAMESPACE} get service kafka-service -o 'jsonpath={.spec.ports[0].port}') kubectl create secret generic kfk-kpi-data --namespace ${TFS_K8S_NAMESPACE} --type='Opaque' \ --from-literal=KFK_NAMESPACE=${KFK_NAMESPACE} \ --from-literal=KFK_SERVER_PORT=${KFK_SERVER_PORT} Loading
hackfest/mock_osm/WimconnectorIETFL2VPN.py +3 −3 Original line number Diff line number Diff line Loading @@ -167,7 +167,7 @@ class WimconnectorIETFL2VPN(SdnConnectorBase): """ SETTINGS = { # min_endpoints, max_endpoints, vpn_service_type 'ELINE': (2, 2, 'vpws'), # Virtual Private Wire Service 'ELAN' : (2, None, 'vpls'), # Virtual Private LAN Service 'ELAN' : (2, None, 'bgp-vpls'), # Virtual Private LAN Service } settings = SETTINGS.get(service_type) if settings is None: raise NotImplementedError('Unsupported service_type({:s})'.format(str(service_type))) Loading Loading @@ -291,12 +291,12 @@ class WimconnectorIETFL2VPN(SdnConnectorBase): if access_priority is not None: availability = {} availability["access-priority"] = access_priority availability["single-active"] = [None] availability["single-active"] = None site_network_access["availability"] = availability constraint = {} constraint['constraint-type'] = 'end-to-end-diverse' constraint['target'] = {'all-other-accesses': [None]} constraint['target'] = {'all-other-accesses': None} access_diversity = {} access_diversity['constraints'] = {'constraint': []} Loading
manifests/kafka/single-node.yaml +3 −3 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ apiVersion: v1 kind: Service metadata: name: kafka-public name: kafka-service labels: app.kubernetes.io/component: message-broker app.kubernetes.io/instance: kafka Loading Loading @@ -50,7 +50,7 @@ spec: app.kubernetes.io/component: message-broker app.kubernetes.io/instance: kafka app.kubernetes.io/name: kafka serviceName: "kafka-public" serviceName: "kafka-service" replicas: 1 minReadySeconds: 5 template: Loading Loading @@ -83,7 +83,7 @@ spec: - name: KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP value: "PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT" - name: KAFKA_CFG_ADVERTISED_LISTENERS value: "PLAINTEXT://kafka-public.kafka.svc.cluster.local:9092,EXTERNAL://localhost:9094" value: "PLAINTEXT://kafka-service.kafka.svc.cluster.local:9092,EXTERNAL://localhost:9094" - name: KAFKA_CFG_CONTROLLER_LISTENER_NAMES value: "CONTROLLER" - name: KAFKA_CFG_CONTROLLER_QUORUM_VOTERS Loading