Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • tfs/controller
1 result
Show changes
Showing
with 857 additions and 615 deletions
...@@ -28,29 +28,29 @@ spec: ...@@ -28,29 +28,29 @@ spec:
spec: spec:
terminationGracePeriodSeconds: 5 terminationGracePeriodSeconds: 5
containers: containers:
- name: server - name: server
image: labs.etsi.org:5050/tfs/controller/nbi:latest image: labs.etsi.org:5050/tfs/controller/nbi:latest
imagePullPolicy: Always imagePullPolicy: Always
ports: ports:
- containerPort: 8080 - containerPort: 8080
- containerPort: 9090 - containerPort: 9090
- containerPort: 9192 - containerPort: 9192
env: env:
- name: LOG_LEVEL - name: LOG_LEVEL
value: "INFO" value: "INFO"
readinessProbe: readinessProbe:
exec: exec:
command: ["/bin/grpc_health_probe", "-addr=:9090"] command: ["/bin/grpc_health_probe", "-addr=:9090"]
livenessProbe: livenessProbe:
exec: exec:
command: ["/bin/grpc_health_probe", "-addr=:9090"] command: ["/bin/grpc_health_probe", "-addr=:9090"]
resources: resources:
requests: requests:
cpu: 50m cpu: 50m
memory: 64Mi memory: 64Mi
limits: limits:
cpu: 500m cpu: 500m
memory: 512Mi memory: 512Mi
--- ---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
...@@ -63,15 +63,15 @@ spec: ...@@ -63,15 +63,15 @@ spec:
selector: selector:
app: nbiservice app: nbiservice
ports: ports:
- name: http - name: http
protocol: TCP protocol: TCP
port: 8080 port: 8080
targetPort: 8080 targetPort: 8080
- name: grpc - name: grpc
protocol: TCP protocol: TCP
port: 9090 port: 9090
targetPort: 9090 targetPort: 9090
- name: metrics - name: metrics
protocol: TCP protocol: TCP
port: 9192 port: 9192
targetPort: 9192 targetPort: 9192
...@@ -20,40 +20,40 @@ metadata: ...@@ -20,40 +20,40 @@ metadata:
nginx.ingress.kubernetes.io/rewrite-target: /$2 nginx.ingress.kubernetes.io/rewrite-target: /$2
spec: spec:
rules: rules:
- http: - http:
paths: paths:
- path: /webui(/|$)(.*) - path: /webui(/|$)(.*)
pathType: Prefix pathType: Prefix
backend: backend:
service: service:
name: webuiservice name: webuiservice
port: port:
number: 8004 number: 8004
- path: /grafana(/|$)(.*) - path: /grafana(/|$)(.*)
pathType: Prefix pathType: Prefix
backend: backend:
service: service:
name: webuiservice name: webuiservice
port: port:
number: 3000 number: 3000
- path: /()(restconf/.*) - path: /()(restconf/.*)
pathType: Prefix pathType: Prefix
backend: backend:
service: service:
name: nbiservice name: nbiservice
port: port:
number: 8080 number: 8080
- path: /()(debug-api/.*) - path: /()(debug-api/.*)
pathType: Prefix pathType: Prefix
backend: backend:
service: service:
name: nbiservice name: nbiservice
port: port:
number: 8080 number: 8080
- path: /()(bmw/.*) - path: /()(bmw/.*)
pathType: Prefix pathType: Prefix
backend: backend:
service: service:
name: nbiservice name: nbiservice
port: port:
number: 8080 number: 8080
...@@ -27,33 +27,33 @@ spec: ...@@ -27,33 +27,33 @@ spec:
spec: spec:
terminationGracePeriodSeconds: 5 terminationGracePeriodSeconds: 5
containers: containers:
- name: server - name: server
image: labs.etsi.org:5050/tfs/controller/opticalattackdetector:latest image: labs.etsi.org:5050/tfs/controller/opticalattackdetector:latest
imagePullPolicy: Always imagePullPolicy: Always
ports: ports:
- containerPort: 10006 - containerPort: 10006
- containerPort: 9192 - containerPort: 9192
env: env:
- name: LOG_LEVEL - name: LOG_LEVEL
value: "INFO" value: "INFO"
- name: REDIS_PASSWORD - name: REDIS_PASSWORD
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: redis-secrets name: redis-secrets
key: REDIS_PASSWORD key: REDIS_PASSWORD
readinessProbe: readinessProbe:
exec: exec:
command: ["/bin/grpc_health_probe", "-addr=:10006"] command: ["/bin/grpc_health_probe", "-addr=:10006"]
livenessProbe: livenessProbe:
exec: exec:
command: ["/bin/grpc_health_probe", "-addr=:10006"] command: ["/bin/grpc_health_probe", "-addr=:10006"]
resources: resources:
requests: requests:
cpu: 250m cpu: 250m
memory: 128Mi memory: 128Mi
limits: limits:
cpu: 1000m cpu: 1000m
memory: 1024Mi memory: 1024Mi
--- ---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
...@@ -66,12 +66,12 @@ spec: ...@@ -66,12 +66,12 @@ spec:
selector: selector:
app: opticalattackdetectorservice app: opticalattackdetectorservice
ports: ports:
- name: grpc - name: grpc
port: 10006 port: 10006
targetPort: 10006 targetPort: 10006
- name: metrics - name: metrics
port: 9192 port: 9192
targetPort: 9192 targetPort: 9192
--- ---
apiVersion: autoscaling/v2 apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler kind: HorizontalPodAutoscaler
...@@ -85,12 +85,12 @@ spec: ...@@ -85,12 +85,12 @@ spec:
minReplicas: 1 minReplicas: 1
maxReplicas: 20 maxReplicas: 20
metrics: metrics:
- type: Resource - type: Resource
resource: resource:
name: cpu name: cpu
target: target:
type: Utilization type: Utilization
averageUtilization: 80 averageUtilization: 80
#behavior: #behavior:
# scaleDown: # scaleDown:
# stabilizationWindowSeconds: 30 # stabilizationWindowSeconds: 30
...@@ -28,33 +28,33 @@ spec: ...@@ -28,33 +28,33 @@ spec:
spec: spec:
terminationGracePeriodSeconds: 5 terminationGracePeriodSeconds: 5
containers: containers:
- name: server - name: server
image: labs.etsi.org:5050/tfs/controller/opticalattackmanager:latest image: labs.etsi.org:5050/tfs/controller/opticalattackmanager:latest
imagePullPolicy: Always imagePullPolicy: Always
ports: ports:
- containerPort: 10005 - containerPort: 10005
- containerPort: 9192 - containerPort: 9192
env: env:
- name: LOG_LEVEL - name: LOG_LEVEL
value: "INFO" value: "INFO"
- name: MONITORING_INTERVAL - name: MONITORING_INTERVAL
value: "30" value: "30"
- name: OPTICALATTACKMANAGERSERVICE_LOOP_MIN_WORKERS - name: OPTICALATTACKMANAGERSERVICE_LOOP_MIN_WORKERS
value: "2" # remember to align this with the resource limits value: "2" # remember to align this with the resource limits
- name: OPTICALATTACKMANAGERSERVICE_LOOP_MAX_WORKERS - name: OPTICALATTACKMANAGERSERVICE_LOOP_MAX_WORKERS
value: "10" # remember to align this with the resource limits value: "10" # remember to align this with the resource limits
- name: REDIS_PASSWORD - name: REDIS_PASSWORD
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: redis-secrets name: redis-secrets
key: REDIS_PASSWORD key: REDIS_PASSWORD
resources: resources:
requests: requests:
cpu: 250m cpu: 250m
memory: 128Mi memory: 128Mi
limits: limits:
cpu: 10000m cpu: 10000m
memory: 10240Mi memory: 10240Mi
--- ---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
...@@ -67,9 +67,9 @@ spec: ...@@ -67,9 +67,9 @@ spec:
selector: selector:
app: opticalattackmanagerservice app: opticalattackmanagerservice
ports: ports:
- name: grpc - name: grpc
port: 10005 port: 10005
targetPort: 10005 targetPort: 10005
- name: metrics - name: metrics
port: 9192 port: 9192
targetPort: 9192 targetPort: 9192
...@@ -27,28 +27,28 @@ spec: ...@@ -27,28 +27,28 @@ spec:
spec: spec:
terminationGracePeriodSeconds: 5 terminationGracePeriodSeconds: 5
containers: containers:
- name: server - name: server
image: labs.etsi.org:5050/tfs/controller/opticalattackmitigator:latest image: labs.etsi.org:5050/tfs/controller/opticalattackmitigator:latest
imagePullPolicy: Always imagePullPolicy: Always
ports: ports:
- containerPort: 10007 - containerPort: 10007
- containerPort: 9192 - containerPort: 9192
env: env:
- name: LOG_LEVEL - name: LOG_LEVEL
value: "INFO" value: "INFO"
readinessProbe: readinessProbe:
exec: exec:
command: ["/bin/grpc_health_probe", "-addr=:10007"] command: ["/bin/grpc_health_probe", "-addr=:10007"]
livenessProbe: livenessProbe:
exec: exec:
command: ["/bin/grpc_health_probe", "-addr=:10007"] command: ["/bin/grpc_health_probe", "-addr=:10007"]
resources: resources:
requests: requests:
cpu: 250m cpu: 250m
memory: 128Mi memory: 128Mi
limits: limits:
cpu: 1000m cpu: 1000m
memory: 1024Mi memory: 1024Mi
--- ---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
...@@ -61,12 +61,12 @@ spec: ...@@ -61,12 +61,12 @@ spec:
selector: selector:
app: opticalattackmitigatorservice app: opticalattackmitigatorservice
ports: ports:
- name: grpc - name: grpc
port: 10007 port: 10007
targetPort: 10007 targetPort: 10007
- name: metrics - name: metrics
port: 9192 port: 9192
targetPort: 9192 targetPort: 9192
--- ---
apiVersion: autoscaling/v2 apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler kind: HorizontalPodAutoscaler
...@@ -80,12 +80,12 @@ spec: ...@@ -80,12 +80,12 @@ spec:
minReplicas: 1 minReplicas: 1
maxReplicas: 20 maxReplicas: 20
metrics: metrics:
- type: Resource - type: Resource
resource: resource:
name: cpu name: cpu
target: target:
type: Utilization type: Utilization
averageUtilization: 80 averageUtilization: 80
#behavior: #behavior:
# scaleDown: # scaleDown:
# stabilizationWindowSeconds: 30 # stabilizationWindowSeconds: 30
# Copyright 2022-2023 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.
apiVersion: apps/v1
kind: Deployment
metadata:
name: opticalcontrollerservice
spec:
selector:
matchLabels:
app: opticalcontrollerservice
replicas: 1
template:
metadata:
labels:
app: opticalcontrollerservice
spec:
terminationGracePeriodSeconds: 5
containers:
- name: server
image: localhost:32000/tfs/opticalcontroller:dev
imagePullPolicy: Never
ports:
- containerPort: 10060
- containerPort: 9192
env:
- name: LOG_LEVEL
value: "INFO"
#readinessProbe:
# exec:
# command: ["/bin/grpc_health_probe", "-addr=:10060"]
#livenessProbe:
# exec:
# command: ["/bin/grpc_health_probe", "-addr=:10060"]
resources:
requests:
cpu: 500m
memory: 128Mi
limits:
cpu: 1000m
memory: 1024Mi
---
apiVersion: v1
kind: Service
metadata:
name: opticalcontrollerservice
labels:
app: opticalcontrollerservice
spec:
type: ClusterIP
selector:
app: opticalcontrollerservice
ports:
- name: grpc
protocol: TCP
port: 10060
targetPort: 10060
- name: metrics
protocol: TCP
port: 9192
targetPort: 9192
...@@ -28,54 +28,54 @@ spec: ...@@ -28,54 +28,54 @@ spec:
spec: spec:
terminationGracePeriodSeconds: 5 terminationGracePeriodSeconds: 5
containers: containers:
- name: frontend - name: frontend
image: labs.etsi.org:5050/tfs/controller/pathcomp-frontend:latest image: labs.etsi.org:5050/tfs/controller/pathcomp-frontend:latest
imagePullPolicy: Always imagePullPolicy: Always
ports: ports:
- containerPort: 10020 - containerPort: 10020
- containerPort: 9192 - containerPort: 9192
env: env:
- name: LOG_LEVEL - name: LOG_LEVEL
value: "INFO" value: "INFO"
- name: ENABLE_FORECASTER - name: ENABLE_FORECASTER
value: "YES" value: "NO"
readinessProbe: readinessProbe:
exec: exec:
command: ["/bin/grpc_health_probe", "-addr=:10020"] command: ["/bin/grpc_health_probe", "-addr=:10020"]
livenessProbe: livenessProbe:
exec: exec:
command: ["/bin/grpc_health_probe", "-addr=:10020"] command: ["/bin/grpc_health_probe", "-addr=:10020"]
resources: resources:
requests: requests:
cpu: 250m cpu: 250m
memory: 128Mi memory: 128Mi
limits: limits:
cpu: 1000m cpu: 1000m
memory: 1024Mi memory: 1024Mi
- name: backend - name: backend
image: labs.etsi.org:5050/tfs/controller/pathcomp-backend:latest image: labs.etsi.org:5050/tfs/controller/pathcomp-backend:latest
imagePullPolicy: Always imagePullPolicy: Always
ports: ports:
- containerPort: 8081 - containerPort: 8081
#readinessProbe: #readinessProbe:
# httpGet: # httpGet:
# path: /health # path: /health
# port: 8081 # port: 8081
# initialDelaySeconds: 5 # initialDelaySeconds: 5
# timeoutSeconds: 5 # timeoutSeconds: 5
#livenessProbe: #livenessProbe:
# httpGet: # httpGet:
# path: /health # path: /health
# port: 8081 # port: 8081
# initialDelaySeconds: 5 # initialDelaySeconds: 5
# timeoutSeconds: 5 # timeoutSeconds: 5
resources: resources:
requests: requests:
cpu: 250m cpu: 250m
memory: 256Mi memory: 256Mi
limits: limits:
cpu: 1000m cpu: 1000m
memory: 1024Mi memory: 1024Mi
--- ---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
...@@ -88,18 +88,18 @@ spec: ...@@ -88,18 +88,18 @@ spec:
selector: selector:
app: pathcompservice app: pathcompservice
ports: ports:
- name: grpc - name: grpc
protocol: TCP protocol: TCP
port: 10020 port: 10020
targetPort: 10020 targetPort: 10020
- name: http - name: http
protocol: TCP protocol: TCP
port: 8081 port: 8081
targetPort: 8081 targetPort: 8081
- name: metrics - name: metrics
protocol: TCP protocol: TCP
port: 9192 port: 9192
targetPort: 9192 targetPort: 9192
--- ---
apiVersion: autoscaling/v2 apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler kind: HorizontalPodAutoscaler
...@@ -113,12 +113,12 @@ spec: ...@@ -113,12 +113,12 @@ spec:
minReplicas: 1 minReplicas: 1
maxReplicas: 20 maxReplicas: 20
metrics: metrics:
- type: Resource - type: Resource
resource: resource:
name: cpu name: cpu
target: target:
type: Utilization type: Utilization
averageUtilization: 80 averageUtilization: 80
#behavior: #behavior:
# scaleDown: # scaleDown:
# stabilizationWindowSeconds: 30 # stabilizationWindowSeconds: 30
...@@ -108,22 +108,22 @@ spec: ...@@ -108,22 +108,22 @@ spec:
limits: limits:
cpu: 2000m cpu: 2000m
memory: 2048Mi memory: 2048Mi
--- #---
apiVersion: autoscaling/v2 #apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler #kind: HorizontalPodAutoscaler
metadata: #metadata:
name: policyservice-hpa # name: policyservice-hpa
spec: #spec:
scaleTargetRef: # scaleTargetRef:
apiVersion: apps/v1 # apiVersion: apps/v1
kind: Deployment # kind: Deployment
name: policyservice # name: policyservice
minReplicas: 1 # minReplicas: 1
maxReplicas: 10 # maxReplicas: 10
metrics: # metrics:
- type: Resource # - type: Resource
resource: # resource:
name: cpu # name: cpu
target: # target:
type: Utilization # type: Utilization
averageUtilization: 80 # averageUtilization: 80
...@@ -60,18 +60,18 @@ spec: ...@@ -60,18 +60,18 @@ spec:
spec: spec:
#serviceAccountName: prometheus #serviceAccountName: prometheus
containers: containers:
- name: prometheus - name: prometheus
image: prom/prometheus:v2.28.1 image: prom/prometheus:v2.28.1
ports: ports:
- containerPort: 9090 - containerPort: 9090
volumeMounts: volumeMounts:
- name: prometheus-config-volume - name: prometheus-config-volume
mountPath: /etc/prometheus/prometheus.yml mountPath: /etc/prometheus/prometheus.yml
subPath: prometheus.yml subPath: prometheus.yml
volumes: volumes:
- name: prometheus-config-volume - name: prometheus-config-volume
configMap: configMap:
name: prometheus-config name: prometheus-config
restartPolicy: Always restartPolicy: Always
--- ---
apiVersion: v1 apiVersion: v1
...@@ -85,8 +85,9 @@ spec: ...@@ -85,8 +85,9 @@ spec:
selector: selector:
app: prometheus app: prometheus
ports: ports:
- name: http - name: http
protocol: TCP protocol: TCP
port: 9090 port: 9090
targetPort: 9090 targetPort: 9090
--- ---
...@@ -20,9 +20,9 @@ metadata: ...@@ -20,9 +20,9 @@ metadata:
labels: labels:
app: contextservice app: contextservice
#release: prometheus #release: prometheus
#release: prom # name of the release #release: prom # name of the release
# ( VERY IMPORTANT: You need to know the correct release name by viewing # ( VERY IMPORTANT: You need to know the correct release name by viewing
# the servicemonitor of Prometheus itself: Without the correct name, # the servicemonitor of Prometheus itself: Without the correct name,
# Prometheus cannot identify the metrics of the Flask app as the target.) # Prometheus cannot identify the metrics of the Flask app as the target.)
spec: spec:
selector: selector:
...@@ -32,14 +32,14 @@ spec: ...@@ -32,14 +32,14 @@ spec:
app: contextservice # same as above app: contextservice # same as above
#release: prometheus # same as above #release: prometheus # same as above
endpoints: endpoints:
- port: metrics # named port in target app - port: metrics # named port in target app
scheme: http scheme: http
path: /metrics # path to scrape path: /metrics # path to scrape
interval: 5s # scrape interval interval: 5s # scrape interval
namespaceSelector: namespaceSelector:
any: false any: false
matchNames: matchNames:
- tfs # namespace where the app is running - tfs # namespace where the app is running
--- ---
apiVersion: monitoring.coreos.com/v1 apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor kind: ServiceMonitor
...@@ -49,9 +49,9 @@ metadata: ...@@ -49,9 +49,9 @@ metadata:
labels: labels:
app: deviceservice app: deviceservice
#release: prometheus #release: prometheus
#release: prom # name of the release #release: prom # name of the release
# ( VERY IMPORTANT: You need to know the correct release name by viewing # ( VERY IMPORTANT: You need to know the correct release name by viewing
# the servicemonitor of Prometheus itself: Without the correct name, # the servicemonitor of Prometheus itself: Without the correct name,
# Prometheus cannot identify the metrics of the Flask app as the target.) # Prometheus cannot identify the metrics of the Flask app as the target.)
spec: spec:
selector: selector:
...@@ -61,14 +61,14 @@ spec: ...@@ -61,14 +61,14 @@ spec:
app: deviceservice # same as above app: deviceservice # same as above
#release: prometheus # same as above #release: prometheus # same as above
endpoints: endpoints:
- port: metrics # named port in target app - port: metrics # named port in target app
scheme: http scheme: http
path: /metrics # path to scrape path: /metrics # path to scrape
interval: 5s # scrape interval interval: 5s # scrape interval
namespaceSelector: namespaceSelector:
any: false any: false
matchNames: matchNames:
- tfs # namespace where the app is running - tfs # namespace where the app is running
--- ---
apiVersion: monitoring.coreos.com/v1 apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor kind: ServiceMonitor
...@@ -78,9 +78,9 @@ metadata: ...@@ -78,9 +78,9 @@ metadata:
labels: labels:
app: serviceservice app: serviceservice
#release: prometheus #release: prometheus
#release: prom # name of the release #release: prom # name of the release
# ( VERY IMPORTANT: You need to know the correct release name by viewing # ( VERY IMPORTANT: You need to know the correct release name by viewing
# the servicemonitor of Prometheus itself: Without the correct name, # the servicemonitor of Prometheus itself: Without the correct name,
# Prometheus cannot identify the metrics of the Flask app as the target.) # Prometheus cannot identify the metrics of the Flask app as the target.)
spec: spec:
selector: selector:
...@@ -90,14 +90,14 @@ spec: ...@@ -90,14 +90,14 @@ spec:
app: serviceservice # same as above app: serviceservice # same as above
#release: prometheus # same as above #release: prometheus # same as above
endpoints: endpoints:
- port: metrics # named port in target app - port: metrics # named port in target app
scheme: http scheme: http
path: /metrics # path to scrape path: /metrics # path to scrape
interval: 5s # scrape interval interval: 5s # scrape interval
namespaceSelector: namespaceSelector:
any: false any: false
matchNames: matchNames:
- tfs # namespace where the app is running - tfs # namespace where the app is running
--- ---
apiVersion: monitoring.coreos.com/v1 apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor kind: ServiceMonitor
...@@ -107,9 +107,9 @@ metadata: ...@@ -107,9 +107,9 @@ metadata:
labels: labels:
app: sliceservice app: sliceservice
#release: prometheus #release: prometheus
#release: prom # name of the release #release: prom # name of the release
# ( VERY IMPORTANT: You need to know the correct release name by viewing # ( VERY IMPORTANT: You need to know the correct release name by viewing
# the servicemonitor of Prometheus itself: Without the correct name, # the servicemonitor of Prometheus itself: Without the correct name,
# Prometheus cannot identify the metrics of the Flask app as the target.) # Prometheus cannot identify the metrics of the Flask app as the target.)
spec: spec:
selector: selector:
...@@ -119,14 +119,14 @@ spec: ...@@ -119,14 +119,14 @@ spec:
app: sliceservice # same as above app: sliceservice # same as above
#release: prometheus # same as above #release: prometheus # same as above
endpoints: endpoints:
- port: metrics # named port in target app - port: metrics # named port in target app
scheme: http scheme: http
path: /metrics # path to scrape path: /metrics # path to scrape
interval: 5s # scrape interval interval: 5s # scrape interval
namespaceSelector: namespaceSelector:
any: false any: false
matchNames: matchNames:
- tfs # namespace where the app is running - tfs # namespace where the app is running
--- ---
apiVersion: monitoring.coreos.com/v1 apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor kind: ServiceMonitor
...@@ -136,9 +136,9 @@ metadata: ...@@ -136,9 +136,9 @@ metadata:
labels: labels:
app: pathcompservice app: pathcompservice
#release: prometheus #release: prometheus
#release: prom # name of the release #release: prom # name of the release
# ( VERY IMPORTANT: You need to know the correct release name by viewing # ( VERY IMPORTANT: You need to know the correct release name by viewing
# the servicemonitor of Prometheus itself: Without the correct name, # the servicemonitor of Prometheus itself: Without the correct name,
# Prometheus cannot identify the metrics of the Flask app as the target.) # Prometheus cannot identify the metrics of the Flask app as the target.)
spec: spec:
selector: selector:
...@@ -148,14 +148,14 @@ spec: ...@@ -148,14 +148,14 @@ spec:
app: pathcompservice # same as above app: pathcompservice # same as above
#release: prometheus # same as above #release: prometheus # same as above
endpoints: endpoints:
- port: metrics # named port in target app - port: metrics # named port in target app
scheme: http scheme: http
path: /metrics # path to scrape path: /metrics # path to scrape
interval: 5s # scrape interval interval: 5s # scrape interval
namespaceSelector: namespaceSelector:
any: false any: false
matchNames: matchNames:
- tfs # namespace where the app is running - tfs # namespace where the app is running
--- ---
apiVersion: monitoring.coreos.com/v1 apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor kind: ServiceMonitor
...@@ -165,9 +165,9 @@ metadata: ...@@ -165,9 +165,9 @@ metadata:
labels: labels:
app: monitoringservice app: monitoringservice
#release: prometheus #release: prometheus
#release: prom # name of the release #release: prom # name of the release
# ( VERY IMPORTANT: You need to know the correct release name by viewing # ( VERY IMPORTANT: You need to know the correct release name by viewing
# the servicemonitor of Prometheus itself: Without the correct name, # the servicemonitor of Prometheus itself: Without the correct name,
# Prometheus cannot identify the metrics of the Flask app as the target.) # Prometheus cannot identify the metrics of the Flask app as the target.)
spec: spec:
selector: selector:
...@@ -177,14 +177,14 @@ spec: ...@@ -177,14 +177,14 @@ spec:
app: monitoringservice # same as above app: monitoringservice # same as above
#release: prometheus # same as above #release: prometheus # same as above
endpoints: endpoints:
- port: metrics # named port in target app - port: metrics # named port in target app
scheme: http scheme: http
path: /metrics # path to scrape path: /metrics # path to scrape
interval: 5s # scrape interval interval: 5s # scrape interval
namespaceSelector: namespaceSelector:
any: false any: false
matchNames: matchNames:
- tfs # namespace where the app is running - tfs # namespace where the app is running
--- ---
apiVersion: monitoring.coreos.com/v1 apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor kind: ServiceMonitor
...@@ -194,9 +194,9 @@ metadata: ...@@ -194,9 +194,9 @@ metadata:
labels: labels:
app: dltservice app: dltservice
#release: prometheus #release: prometheus
#release: prom # name of the release #release: prom # name of the release
# ( VERY IMPORTANT: You need to know the correct release name by viewing # ( VERY IMPORTANT: You need to know the correct release name by viewing
# the servicemonitor of Prometheus itself: Without the correct name, # the servicemonitor of Prometheus itself: Without the correct name,
# Prometheus cannot identify the metrics of the Flask app as the target.) # Prometheus cannot identify the metrics of the Flask app as the target.)
spec: spec:
selector: selector:
...@@ -206,14 +206,14 @@ spec: ...@@ -206,14 +206,14 @@ spec:
app: dltservice # same as above app: dltservice # same as above
#release: prometheus # same as above #release: prometheus # same as above
endpoints: endpoints:
- port: metrics # named port in target app - port: metrics # named port in target app
scheme: http scheme: http
path: /metrics # path to scrape path: /metrics # path to scrape
interval: 5s # scrape interval interval: 5s # scrape interval
namespaceSelector: namespaceSelector:
any: false any: false
matchNames: matchNames:
- tfs # namespace where the app is running - tfs # namespace where the app is running
--- ---
apiVersion: monitoring.coreos.com/v1 apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor kind: ServiceMonitor
...@@ -223,9 +223,9 @@ metadata: ...@@ -223,9 +223,9 @@ metadata:
labels: labels:
app: interdomainservice app: interdomainservice
#release: prometheus #release: prometheus
#release: prom # name of the release #release: prom # name of the release
# ( VERY IMPORTANT: You need to know the correct release name by viewing # ( VERY IMPORTANT: You need to know the correct release name by viewing
# the servicemonitor of Prometheus itself: Without the correct name, # the servicemonitor of Prometheus itself: Without the correct name,
# Prometheus cannot identify the metrics of the Flask app as the target.) # Prometheus cannot identify the metrics of the Flask app as the target.)
spec: spec:
selector: selector:
...@@ -235,14 +235,14 @@ spec: ...@@ -235,14 +235,14 @@ spec:
app: interdomainservice # same as above app: interdomainservice # same as above
#release: prometheus # same as above #release: prometheus # same as above
endpoints: endpoints:
- port: metrics # named port in target app - port: metrics # named port in target app
scheme: http scheme: http
path: /metrics # path to scrape path: /metrics # path to scrape
interval: 5s # scrape interval interval: 5s # scrape interval
namespaceSelector: namespaceSelector:
any: false any: false
matchNames: matchNames:
- tfs # namespace where the app is running - tfs # namespace where the app is running
--- ---
apiVersion: monitoring.coreos.com/v1 apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor kind: ServiceMonitor
...@@ -252,9 +252,9 @@ metadata: ...@@ -252,9 +252,9 @@ metadata:
labels: labels:
app: policyservice app: policyservice
#release: prometheus #release: prometheus
#release: prom # name of the release #release: prom # name of the release
# ( VERY IMPORTANT: You need to know the correct release name by viewing # ( VERY IMPORTANT: You need to know the correct release name by viewing
# the servicemonitor of Prometheus itself: Without the correct name, # the servicemonitor of Prometheus itself: Without the correct name,
# Prometheus cannot identify the metrics of the Flask app as the target.) # Prometheus cannot identify the metrics of the Flask app as the target.)
spec: spec:
selector: selector:
...@@ -264,14 +264,14 @@ spec: ...@@ -264,14 +264,14 @@ spec:
app: policyservice # same as above app: policyservice # same as above
#release: prometheus # same as above #release: prometheus # same as above
endpoints: endpoints:
- port: metrics # named port in target app - port: metrics # named port in target app
scheme: http scheme: http
path: /q/metrics # path to scrape path: /q/metrics # path to scrape
interval: 5s # scrape interval interval: 5s # scrape interval
namespaceSelector: namespaceSelector:
any: false any: false
matchNames: matchNames:
- tfs # namespace where the app is running - tfs # namespace where the app is running
--- ---
apiVersion: monitoring.coreos.com/v1 apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor kind: ServiceMonitor
...@@ -281,9 +281,9 @@ metadata: ...@@ -281,9 +281,9 @@ metadata:
labels: labels:
app: ztpservice app: ztpservice
#release: prometheus #release: prometheus
#release: prom # name of the release #release: prom # name of the release
# ( VERY IMPORTANT: You need to know the correct release name by viewing # ( VERY IMPORTANT: You need to know the correct release name by viewing
# the servicemonitor of Prometheus itself: Without the correct name, # the servicemonitor of Prometheus itself: Without the correct name,
# Prometheus cannot identify the metrics of the Flask app as the target.) # Prometheus cannot identify the metrics of the Flask app as the target.)
spec: spec:
selector: selector:
...@@ -293,14 +293,14 @@ spec: ...@@ -293,14 +293,14 @@ spec:
app: ztpservice # same as above app: ztpservice # same as above
#release: prometheus # same as above #release: prometheus # same as above
endpoints: endpoints:
- port: metrics # named port in target app - port: metrics # named port in target app
scheme: http scheme: http
path: /q/metrics # path to scrape path: /q/metrics # path to scrape
interval: 5s # scrape interval interval: 5s # scrape interval
namespaceSelector: namespaceSelector:
any: false any: false
matchNames: matchNames:
- tfs # namespace where the app is running - tfs # namespace where the app is running
--- ---
apiVersion: monitoring.coreos.com/v1 apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor kind: ServiceMonitor
...@@ -310,9 +310,9 @@ metadata: ...@@ -310,9 +310,9 @@ metadata:
labels: labels:
app: nbiservice app: nbiservice
#release: prometheus #release: prometheus
#release: prom # name of the release #release: prom # name of the release
# ( VERY IMPORTANT: You need to know the correct release name by viewing # ( VERY IMPORTANT: You need to know the correct release name by viewing
# the servicemonitor of Prometheus itself: Without the correct name, # the servicemonitor of Prometheus itself: Without the correct name,
# Prometheus cannot identify the metrics of the Flask app as the target.) # Prometheus cannot identify the metrics of the Flask app as the target.)
spec: spec:
selector: selector:
...@@ -322,14 +322,14 @@ spec: ...@@ -322,14 +322,14 @@ spec:
app: nbiservice # same as above app: nbiservice # same as above
#release: prometheus # same as above #release: prometheus # same as above
endpoints: endpoints:
- port: metrics # named port in target app - port: metrics # named port in target app
scheme: http scheme: http
path: /metrics # path to scrape path: /metrics # path to scrape
interval: 5s # scrape interval interval: 5s # scrape interval
namespaceSelector: namespaceSelector:
any: false any: false
matchNames: matchNames:
- tfs # namespace where the app is running - tfs # namespace where the app is running
--- ---
apiVersion: monitoring.coreos.com/v1 apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor kind: ServiceMonitor
...@@ -339,9 +339,9 @@ metadata: ...@@ -339,9 +339,9 @@ metadata:
labels: labels:
app: load-generatorservice app: load-generatorservice
#release: prometheus #release: prometheus
#release: prom # name of the release #release: prom # name of the release
# ( VERY IMPORTANT: You need to know the correct release name by viewing # ( VERY IMPORTANT: You need to know the correct release name by viewing
# the servicemonitor of Prometheus itself: Without the correct name, # the servicemonitor of Prometheus itself: Without the correct name,
# Prometheus cannot identify the metrics of the Flask app as the target.) # Prometheus cannot identify the metrics of the Flask app as the target.)
spec: spec:
selector: selector:
...@@ -351,14 +351,14 @@ spec: ...@@ -351,14 +351,14 @@ spec:
app: load-generatorservice # same as above app: load-generatorservice # same as above
#release: prometheus # same as above #release: prometheus # same as above
endpoints: endpoints:
- port: metrics # named port in target app - port: metrics # named port in target app
scheme: http scheme: http
path: /metrics # path to scrape path: /metrics # path to scrape
interval: 5s # scrape interval interval: 5s # scrape interval
namespaceSelector: namespaceSelector:
any: false any: false
matchNames: matchNames:
- tfs # namespace where the app is running - tfs # namespace where the app is running
--- ---
apiVersion: monitoring.coreos.com/v1 apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor kind: ServiceMonitor
...@@ -368,9 +368,9 @@ metadata: ...@@ -368,9 +368,9 @@ metadata:
labels: labels:
app: dbscanservingservice app: dbscanservingservice
#release: prometheus #release: prometheus
#release: prom # name of the release #release: prom # name of the release
# ( VERY IMPORTANT: You need to know the correct release name by viewing # ( VERY IMPORTANT: You need to know the correct release name by viewing
# the servicemonitor of Prometheus itself: Without the correct name, # the servicemonitor of Prometheus itself: Without the correct name,
# Prometheus cannot identify the metrics of the Flask app as the target.) # Prometheus cannot identify the metrics of the Flask app as the target.)
spec: spec:
selector: selector:
...@@ -380,14 +380,14 @@ spec: ...@@ -380,14 +380,14 @@ spec:
app: dbscanservingservice # same as above app: dbscanservingservice # same as above
#release: prometheus # same as above #release: prometheus # same as above
endpoints: endpoints:
- port: metrics # named port in target app - port: metrics # named port in target app
scheme: http scheme: http
path: /metrics # path to scrape path: /metrics # path to scrape
interval: 5s # scrape interval interval: 5s # scrape interval
namespaceSelector: namespaceSelector:
any: false any: false
matchNames: matchNames:
- tfs # namespace where the app is running - tfs # namespace where the app is running
--- ---
apiVersion: monitoring.coreos.com/v1 apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor kind: ServiceMonitor
...@@ -397,9 +397,9 @@ metadata: ...@@ -397,9 +397,9 @@ metadata:
labels: labels:
app: opticalattackmitigatorservice app: opticalattackmitigatorservice
#release: prometheus #release: prometheus
#release: prom # name of the release #release: prom # name of the release
# ( VERY IMPORTANT: You need to know the correct release name by viewing # ( VERY IMPORTANT: You need to know the correct release name by viewing
# the servicemonitor of Prometheus itself: Without the correct name, # the servicemonitor of Prometheus itself: Without the correct name,
# Prometheus cannot identify the metrics of the Flask app as the target.) # Prometheus cannot identify the metrics of the Flask app as the target.)
spec: spec:
selector: selector:
...@@ -409,14 +409,14 @@ spec: ...@@ -409,14 +409,14 @@ spec:
app: opticalattackmitigatorservice # same as above app: opticalattackmitigatorservice # same as above
#release: prometheus # same as above #release: prometheus # same as above
endpoints: endpoints:
- port: metrics # named port in target app - port: metrics # named port in target app
scheme: http scheme: http
path: /metrics # path to scrape path: /metrics # path to scrape
interval: 5s # scrape interval interval: 5s # scrape interval
namespaceSelector: namespaceSelector:
any: false any: false
matchNames: matchNames:
- tfs # namespace where the app is running - tfs # namespace where the app is running
--- ---
apiVersion: monitoring.coreos.com/v1 apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor kind: ServiceMonitor
...@@ -426,9 +426,9 @@ metadata: ...@@ -426,9 +426,9 @@ metadata:
labels: labels:
app: opticalattackdetectorservice app: opticalattackdetectorservice
#release: prometheus #release: prometheus
#release: prom # name of the release #release: prom # name of the release
# ( VERY IMPORTANT: You need to know the correct release name by viewing # ( VERY IMPORTANT: You need to know the correct release name by viewing
# the servicemonitor of Prometheus itself: Without the correct name, # the servicemonitor of Prometheus itself: Without the correct name,
# Prometheus cannot identify the metrics of the Flask app as the target.) # Prometheus cannot identify the metrics of the Flask app as the target.)
spec: spec:
selector: selector:
...@@ -438,14 +438,14 @@ spec: ...@@ -438,14 +438,14 @@ spec:
app: opticalattackdetectorservice # same as above app: opticalattackdetectorservice # same as above
#release: prometheus # same as above #release: prometheus # same as above
endpoints: endpoints:
- port: metrics # named port in target app - port: metrics # named port in target app
scheme: http scheme: http
path: /metrics # path to scrape path: /metrics # path to scrape
interval: 5s # scrape interval interval: 5s # scrape interval
namespaceSelector: namespaceSelector:
any: false any: false
matchNames: matchNames:
- tfs # namespace where the app is running - tfs # namespace where the app is running
--- ---
apiVersion: monitoring.coreos.com/v1 apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor kind: ServiceMonitor
...@@ -455,9 +455,9 @@ metadata: ...@@ -455,9 +455,9 @@ metadata:
labels: labels:
app: opticalattackmanagerservice app: opticalattackmanagerservice
#release: prometheus #release: prometheus
#release: prom # name of the release #release: prom # name of the release
# ( VERY IMPORTANT: You need to know the correct release name by viewing # ( VERY IMPORTANT: You need to know the correct release name by viewing
# the servicemonitor of Prometheus itself: Without the correct name, # the servicemonitor of Prometheus itself: Without the correct name,
# Prometheus cannot identify the metrics of the Flask app as the target.) # Prometheus cannot identify the metrics of the Flask app as the target.)
spec: spec:
selector: selector:
...@@ -467,11 +467,11 @@ spec: ...@@ -467,11 +467,11 @@ spec:
app: opticalattackmanagerservice # same as above app: opticalattackmanagerservice # same as above
#release: prometheus # same as above #release: prometheus # same as above
endpoints: endpoints:
- port: metrics # named port in target app - port: metrics # named port in target app
scheme: http scheme: http
path: /metrics # path to scrape path: /metrics # path to scrape
interval: 5s # scrape interval interval: 5s # scrape interval
namespaceSelector: namespaceSelector:
any: false any: false
matchNames: matchNames:
- tfs # namespace where the app is running - tfs # namespace where the app is running
...@@ -28,28 +28,28 @@ spec: ...@@ -28,28 +28,28 @@ spec:
spec: spec:
terminationGracePeriodSeconds: 5 terminationGracePeriodSeconds: 5
containers: containers:
- name: server - name: server
image: labs.etsi.org:5050/tfs/controller/service:latest image: labs.etsi.org:5050/tfs/controller/service:latest
imagePullPolicy: Always imagePullPolicy: Always
ports: ports:
- containerPort: 3030 - containerPort: 3030
- containerPort: 9192 - containerPort: 9192
env: env:
- name: LOG_LEVEL - name: LOG_LEVEL
value: "INFO" value: "INFO"
readinessProbe: readinessProbe:
exec: exec:
command: ["/bin/grpc_health_probe", "-addr=:3030"] command: ["/bin/grpc_health_probe", "-addr=:3030"]
livenessProbe: livenessProbe:
exec: exec:
command: ["/bin/grpc_health_probe", "-addr=:3030"] command: ["/bin/grpc_health_probe", "-addr=:3030"]
resources: resources:
requests: requests:
cpu: 250m cpu: 250m
memory: 128Mi memory: 128Mi
limits: limits:
cpu: 1000m cpu: 1000m
memory: 1024Mi memory: 1024Mi
--- ---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
...@@ -62,14 +62,14 @@ spec: ...@@ -62,14 +62,14 @@ spec:
selector: selector:
app: serviceservice app: serviceservice
ports: ports:
- name: grpc - name: grpc
protocol: TCP protocol: TCP
port: 3030 port: 3030
targetPort: 3030 targetPort: 3030
- name: metrics - name: metrics
protocol: TCP protocol: TCP
port: 9192 port: 9192
targetPort: 9192 targetPort: 9192
--- ---
apiVersion: autoscaling/v2 apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler kind: HorizontalPodAutoscaler
...@@ -83,12 +83,12 @@ spec: ...@@ -83,12 +83,12 @@ spec:
minReplicas: 1 minReplicas: 1
maxReplicas: 20 maxReplicas: 20
metrics: metrics:
- type: Resource - type: Resource
resource: resource:
name: cpu name: cpu
target: target:
type: Utilization type: Utilization
averageUtilization: 80 averageUtilization: 80
#behavior: #behavior:
# scaleDown: # scaleDown:
# stabilizationWindowSeconds: 30 # stabilizationWindowSeconds: 30
...@@ -28,33 +28,33 @@ spec: ...@@ -28,33 +28,33 @@ spec:
spec: spec:
terminationGracePeriodSeconds: 5 terminationGracePeriodSeconds: 5
containers: containers:
- name: server - name: server
image: labs.etsi.org:5050/tfs/controller/slice:latest image: labs.etsi.org:5050/tfs/controller/slice:latest
imagePullPolicy: Always imagePullPolicy: Always
ports: ports:
- containerPort: 4040 - containerPort: 4040
- containerPort: 9192 - containerPort: 9192
env: env:
- name: LOG_LEVEL - name: LOG_LEVEL
value: "INFO" value: "INFO"
- name: SLICE_GROUPING - name: SLICE_GROUPING
value: "DISABLE" value: "DISABLE"
envFrom: envFrom:
- secretRef: - secretRef:
name: qdb-data name: qdb-data
readinessProbe: readinessProbe:
exec: exec:
command: ["/bin/grpc_health_probe", "-addr=:4040"] command: ["/bin/grpc_health_probe", "-addr=:4040"]
livenessProbe: livenessProbe:
exec: exec:
command: ["/bin/grpc_health_probe", "-addr=:4040"] command: ["/bin/grpc_health_probe", "-addr=:4040"]
resources: resources:
requests: requests:
cpu: 250m cpu: 250m
memory: 128Mi memory: 128Mi
limits: limits:
cpu: 1000m cpu: 1000m
memory: 1024Mi memory: 1024Mi
--- ---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
...@@ -67,14 +67,14 @@ spec: ...@@ -67,14 +67,14 @@ spec:
selector: selector:
app: sliceservice app: sliceservice
ports: ports:
- name: grpc - name: grpc
protocol: TCP protocol: TCP
port: 4040 port: 4040
targetPort: 4040 targetPort: 4040
- name: metrics - name: metrics
protocol: TCP protocol: TCP
port: 9192 port: 9192
targetPort: 9192 targetPort: 9192
--- ---
apiVersion: autoscaling/v2 apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler kind: HorizontalPodAutoscaler
...@@ -88,12 +88,12 @@ spec: ...@@ -88,12 +88,12 @@ spec:
minReplicas: 1 minReplicas: 1
maxReplicas: 20 maxReplicas: 20
metrics: metrics:
- type: Resource - type: Resource
resource: resource:
name: cpu name: cpu
target: target:
type: Utilization type: Utilization
averageUtilization: 80 averageUtilization: 80
#behavior: #behavior:
# scaleDown: # scaleDown:
# stabilizationWindowSeconds: 30 # stabilizationWindowSeconds: 30
...@@ -30,37 +30,37 @@ spec: ...@@ -30,37 +30,37 @@ spec:
terminationGracePeriodSeconds: 5 terminationGracePeriodSeconds: 5
shareProcessNamespace: true shareProcessNamespace: true
containers: containers:
- name: server - name: server
image: labs.etsi.org:5050/tfs/controller/te:latest image: labs.etsi.org:5050/tfs/controller/te:latest
imagePullPolicy: Always imagePullPolicy: Always
ports: ports:
- containerPort: 10030 - containerPort: 10030
env: env:
- name: ERLANG_LOGGER_LEVEL - name: ERLANG_LOGGER_LEVEL
value: "debug" value: "debug"
- name: ERLANG_COOKIE - name: ERLANG_COOKIE
value: "tfte-unsafe-cookie" value: "tfte-unsafe-cookie"
- name: ERLANG_NODE_NAME - name: ERLANG_NODE_NAME
valueFrom: valueFrom:
fieldRef: fieldRef:
fieldPath: metadata.name fieldPath: metadata.name
- name: ERLANG_NODE_IP - name: ERLANG_NODE_IP
valueFrom: valueFrom:
fieldRef: fieldRef:
fieldPath: status.podIP fieldPath: status.podIP
readinessProbe: readinessProbe:
exec: exec:
command: ["/tfte/bin/tfte", "status"] command: ["/tfte/bin/tfte", "status"]
livenessProbe: livenessProbe:
exec: exec:
command: ["/tfte/bin/tfte", "status"] command: ["/tfte/bin/tfte", "status"]
resources: resources:
requests: requests:
cpu: 250m cpu: 250m
memory: 512Mi memory: 512Mi
limits: limits:
cpu: 700m cpu: 700m
memory: 1024Mi memory: 1024Mi
--- ---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
...@@ -71,11 +71,11 @@ spec: ...@@ -71,11 +71,11 @@ spec:
selector: selector:
app: teservice app: teservice
ports: ports:
- name: grpc - name: grpc
protocol: TCP protocol: TCP
port: 10030 port: 10030
targetPort: 10030 targetPort: 10030
- name: pcep - name: pcep
protocol: TCP protocol: TCP
port: 4189 port: 4189
targetPort: 4189 targetPort: 4189
...@@ -32,73 +32,73 @@ spec: ...@@ -32,73 +32,73 @@ spec:
supplementalGroups: supplementalGroups:
- 0 - 0
containers: containers:
- name: server - name: server
image: labs.etsi.org:5050/tfs/controller/webui:latest image: labs.etsi.org:5050/tfs/controller/webui:latest
imagePullPolicy: Always imagePullPolicy: Always
ports: ports:
- containerPort: 8004 - containerPort: 8004
env: env:
- name: LOG_LEVEL - name: LOG_LEVEL
value: "INFO" value: "INFO"
- name: WEBUISERVICE_SERVICE_BASEURL_HTTP - name: WEBUISERVICE_SERVICE_BASEURL_HTTP
value: "/webui/" value: "/webui/"
readinessProbe: readinessProbe:
httpGet: httpGet:
path: /healthz/ready path: /healthz/ready
port: 8004 port: 8004
initialDelaySeconds: 5 initialDelaySeconds: 5
timeoutSeconds: 1 timeoutSeconds: 1
livenessProbe: livenessProbe:
httpGet: httpGet:
path: /healthz/live path: /healthz/live
port: 8004 port: 8004
initialDelaySeconds: 5 initialDelaySeconds: 5
timeoutSeconds: 1 timeoutSeconds: 1
resources: resources:
requests: requests:
cpu: 50m cpu: 50m
memory: 128Mi memory: 128Mi
limits: limits:
cpu: 1000m cpu: 1000m
memory: 1024Mi memory: 1024Mi
- name: grafana - name: grafana
image: grafana/grafana:8.5.22 image: grafana/grafana:8.5.22
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
ports: ports:
- containerPort: 3000 - containerPort: 3000
name: http-grafana name: http-grafana
protocol: TCP protocol: TCP
env: env:
- name: GF_SERVER_ROOT_URL - name: GF_SERVER_ROOT_URL
value: "http://0.0.0.0:3000/grafana/" value: "http://0.0.0.0:3000/grafana/"
- name: GF_SERVER_SERVE_FROM_SUB_PATH - name: GF_SERVER_SERVE_FROM_SUB_PATH
value: "true" value: "true"
readinessProbe: readinessProbe:
failureThreshold: 60 failureThreshold: 60
httpGet: httpGet:
#path: /robots.txt #path: /robots.txt
path: /login path: /login
port: 3000 port: 3000
scheme: HTTP scheme: HTTP
initialDelaySeconds: 1 initialDelaySeconds: 1
periodSeconds: 1 periodSeconds: 1
successThreshold: 1 successThreshold: 1
timeoutSeconds: 2 timeoutSeconds: 2
livenessProbe: livenessProbe:
failureThreshold: 60 failureThreshold: 60
initialDelaySeconds: 1 initialDelaySeconds: 1
periodSeconds: 1 periodSeconds: 1
successThreshold: 1 successThreshold: 1
tcpSocket: tcpSocket:
port: 3000 port: 3000
timeoutSeconds: 1 timeoutSeconds: 1
resources: resources:
requests: requests:
cpu: 250m cpu: 250m
memory: 512Mi memory: 512Mi
limits: limits:
cpu: 500m cpu: 500m
memory: 1024Mi memory: 1024Mi
--- ---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
...@@ -111,9 +111,9 @@ spec: ...@@ -111,9 +111,9 @@ spec:
selector: selector:
app: webuiservice app: webuiservice
ports: ports:
- name: webui - name: webui
port: 8004 port: 8004
targetPort: 8004 targetPort: 8004
- name: grafana - name: grafana
port: 3000 port: 3000
targetPort: 3000 targetPort: 3000
...@@ -104,22 +104,22 @@ spec: ...@@ -104,22 +104,22 @@ spec:
limits: limits:
cpu: 2000m cpu: 2000m
memory: 2048Mi memory: 2048Mi
--- #---
apiVersion: autoscaling/v2 #apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler #kind: HorizontalPodAutoscaler
metadata: #metadata:
name: ztpservice-hpa # name: ztpservice-hpa
spec: #spec:
scaleTargetRef: # scaleTargetRef:
apiVersion: apps/v1 # apiVersion: apps/v1
kind: Deployment # kind: Deployment
name: ztpservice # name: ztpservice
minReplicas: 1 # minReplicas: 1
maxReplicas: 10 # maxReplicas: 10
metrics: # metrics:
- type: Resource # - type: Resource
resource: # resource:
name: cpu # name: cpu
target: # target:
type: Utilization # type: Utilization
averageUtilization: 80 # averageUtilization: 80
...@@ -20,11 +20,17 @@ ...@@ -20,11 +20,17 @@
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 opticalcontroller service slice nbi webui "
# Uncomment to activate Monitoring # Uncomment to activate Monitoring
#export TFS_COMPONENTS="${TFS_COMPONENTS} monitoring" #export TFS_COMPONENTS="${TFS_COMPONENTS} monitoring"
# Uncomment to activate BGP-LS Speaker
#export TFS_COMPONENTS="${TFS_COMPONENTS} bgpls_speaker"
# Uncomment to activate Optical Controller
#export TFS_COMPONENTS="${TFS_COMPONENTS} opticalcontroller"
# Uncomment to activate ZTP # Uncomment to activate ZTP
#export TFS_COMPONENTS="${TFS_COMPONENTS} ztp" #export TFS_COMPONENTS="${TFS_COMPONENTS} ztp"
......
src/tests/ofc24/
\ No newline at end of file
// Copyright 2022-2023 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.
syntax = "proto3";
package bgpls;
import "context.proto";
service BgplsService {
rpc ListDiscoveredDevices (context.Empty ) returns (DiscoveredDeviceList) {}
rpc ListDiscoveredLinks (context.Empty ) returns (DiscoveredLinkList ) {}
rpc AddBgplsSpeaker (BgplsSpeaker ) returns (BgplsSpeakerId ) {}
rpc ListBgplsSpeakers (context.Empty ) returns (BgplsSpeakerList ) {}
rpc DisconnectFromSpeaker (BgplsSpeaker ) returns (context.Empty ) {}
rpc GetSpeakerInfoFromId (BgplsSpeakerId ) returns (BgplsSpeaker ) {}
rpc NotifyAddNodeToContext(NodeDescriptors) returns (context.Empty ) {}
}
message DiscoveredDevice {
string nodeName = 1;
string ip = 2;
string igpID = 3;
string learntFrom = 4;
}
message DiscoveredDeviceList {
repeated DiscoveredDevice discovereddevices = 1;
}
message DiscoveredLinkList{
repeated DiscoveredLink discoveredlinks = 1;
}
message DiscoveredLink{
NodeDescriptors local = 1;
NodeDescriptors remote = 2;
string learntFrom = 3;
string local_ipv4 = 4;
string remote_ipv4 = 5;
}
message NodeDescriptors{
string asNumber = 1;
string igp_id = 2;
string nodeName = 3;
}
message BgplsSpeaker{
string address = 1;
string port = 2;
string asNumber = 3;
}
message BgplsSpeakerId{
uint32 id = 1;
}
message BgplsSpeakerList{
repeated BgplsSpeakerId speakers = 1;
}
...@@ -74,6 +74,17 @@ service ContextService { ...@@ -74,6 +74,17 @@ service ContextService {
rpc SetConnection (Connection ) returns ( ConnectionId ) {} rpc SetConnection (Connection ) returns ( ConnectionId ) {}
rpc RemoveConnection (ConnectionId ) returns ( Empty ) {} rpc RemoveConnection (ConnectionId ) returns ( Empty ) {}
rpc GetConnectionEvents(Empty ) returns (stream ConnectionEvent ) {} rpc GetConnectionEvents(Empty ) returns (stream ConnectionEvent ) {}
// ------------------------------ Experimental -----------------------------
rpc GetOpticalConfig (Empty ) returns (OpticalConfigList ) {}
rpc SetOpticalConfig (OpticalConfig ) returns (OpticalConfigId ) {}
rpc SelectOpticalConfig(OpticalConfigId) returns (OpticalConfig ) {}
rpc DeleteOpticalConfig(OpticalConfigId) returns (Empty ) {}
rpc SetOpticalLink (OpticalLink ) returns (Empty ) {}
rpc GetOpticalLink (OpticalLinkId ) returns (OpticalLink ) {}
rpc GetFiber (FiberId ) returns (Fiber ) {}
} }
// ----- Generic ------------------------------------------------------------------------------------------------------- // ----- Generic -------------------------------------------------------------------------------------------------------
...@@ -203,6 +214,7 @@ enum DeviceDriverEnum { ...@@ -203,6 +214,7 @@ enum DeviceDriverEnum {
DEVICEDRIVER_GNMI_OPENCONFIG = 8; DEVICEDRIVER_GNMI_OPENCONFIG = 8;
DEVICEDRIVER_FLEXSCALE = 9; DEVICEDRIVER_FLEXSCALE = 9;
DEVICEDRIVER_IETF_ACTN = 10; DEVICEDRIVER_IETF_ACTN = 10;
DEVICEDRIVER_OC = 11;
} }
enum DeviceOperationalStatusEnum { enum DeviceOperationalStatusEnum {
...@@ -288,6 +300,7 @@ enum ServiceTypeEnum { ...@@ -288,6 +300,7 @@ enum ServiceTypeEnum {
SERVICETYPE_TAPI_CONNECTIVITY_SERVICE = 3; SERVICETYPE_TAPI_CONNECTIVITY_SERVICE = 3;
SERVICETYPE_TE = 4; SERVICETYPE_TE = 4;
SERVICETYPE_E2E = 5; SERVICETYPE_E2E = 5;
SERVICETYPE_OPTICAL_CONNECTIVITY = 6;
} }
enum ServiceStatusEnum { enum ServiceStatusEnum {
...@@ -612,3 +625,59 @@ message AuthenticationResult { ...@@ -612,3 +625,59 @@ message AuthenticationResult {
ContextId context_id = 1; ContextId context_id = 1;
bool authenticated = 2; bool authenticated = 2;
} }
// ---------------- Experimental ------------------------
message OpticalConfigId {
string opticalconfig_uuid = 1;
}
message OpticalConfig {
OpticalConfigId opticalconfig_id = 1;
string config = 2;
}
message OpticalConfigList {
repeated OpticalConfig opticalconfigs = 1;
}
message OpticalConfigEvent {
Event event = 1;
OpticalConfigId opticalconfig_id = 2;
}
// ---- Optical Link ----
message OpticalLinkId {
Uuid optical_link_uuid = 1;
}
message FiberId {
Uuid fiber_uuid = 1;
}
message Fiber {
string ID = 10;
string src_port = 1;
string dst_port = 2;
string local_peer_port = 3;
string remote_peer_port = 4;
repeated int32 c_slots = 5;
repeated int32 l_slots = 6;
repeated int32 s_slots = 7;
float length = 8;
bool used = 9;
FiberId fiber_uuid = 11;
}
message OpticalLinkDetails {
float length = 1;
string source = 2;
string target = 3;
repeated Fiber fibers = 4;
}
message OpticalLink {
string name = 1;
OpticalLinkDetails details = 2;
OpticalLinkId optical_link_uuid = 3;
}
// Copyright 2022-2023 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.
syntax = "proto3";
package openconfig_device;
import "context.proto";
service OpenConfigService {
rpc AddOpenConfigDevice (context.OpticalConfig) returns (context.OpticalConfigId) {}
rpc ConfigureOpticalDevice(context.OpticalConfig) returns (context.Empty ) {}
}