Skip to content
Snippets Groups Projects
Commit b4e9ae9b authored by Yann Garcia's avatar Yann Garcia
Browse files

Merge branch 'STF678_Task_5_TTF_T043' into 'STF678_Task1_2_3_4'

# Conflicts:
#   examples/demo6/python/README.md
parents afb8cba4 03a74fb8
No related branches found
No related tags found
1 merge request!5Refactored ECS configuration and EEC registration handling for improved...
Showing
with 613 additions and 3 deletions
......@@ -10,7 +10,7 @@
:zap: **New! Runtime [Sequence](https://interdigitalinc.github.io/AdvantEDGE/docs/usage/gui/exec-view/#sequence-diagram) and [Data Flow](https://interdigitalinc.github.io/AdvantEDGE/docs/usage/gui/exec-view/#data-flow-diagram) diagrams :chart_with_upwards_trend:**
:zap: **Service API upgrade to version 3.2.1 for [ETSI MEC011](https://interdigitalinc.github.io/AdvantEDGE/docs/overview/edge-services/#edge-platform-application-enablement-service), [ETSI MEC012](https://interdigitalinc.github.io/AdvantEDGE/docs/overview/edge-services/#radio-network-information-service), [ETSI MEC013](https://interdigitalinc.github.io/AdvantEDGE/docs/overview/edge-services/#location-service), [ETSI MEC021](https://interdigitalinc.github.io/AdvantEDGE/docs/overview/edge-services/#application-mobility-service), [ETSI MEC030](https://interdigitalinc.github.io/AdvantEDGE/docs/overview/edge-services/#v2x-information-service), [ETSI MEC033](https://interdigitalinc.github.io/AdvantEDGE/docs/overview/edge-services/#iot-api) and [ETSI MEC040](https://interdigitalinc.github.io/AdvantEDGE/docs/overview/edge-services/#mec-federation-service) :arrow_up:**
:zap: **Service API upgrade to version 3.2.1 for [ETSI MEC011](https://interdigitalinc.github.io/AdvantEDGE/docs/overview/edge-services/#edge-platform-application-enablement-service), [ETSI MEC012](https://interdigitalinc.github.io/AdvantEDGE/docs/overview/edge-services/#radio-network-information-service), [ETSI MEC013](https://interdigitalinc.github.io/AdvantEDGE/docs/overview/edge-services/#location-service), [ETSI MEC021](https://interdigitalinc.github.io/AdvantEDGE/docs/overview/edge-services/#application-mobility-service), [ETSI MEC030](https://interdigitalinc.github.io/AdvantEDGE/docs/overview/edge-services/#v2x-information-service) :arrow_up:**
:zap: **[Runtime Setup](https://interdigitalinc.github.io/AdvantEDGE/docs/setup/env-runtime/) updates to support k8s versions up to 1.26 :arrow_up:**
......@@ -22,9 +22,17 @@
**_What's New in v1.10.0!_**
:zap: **New MEC Federation service: [ETSI MEC040 - MEC Federation Service API](https://interdigitalinc.github.io/AdvantEDGE/docs/overview/edge-services/#mec-federation-service)**
:zap: **New edge native service: [ETSI MEC Profile for CAPIF](https://interdigitalinc.github.io/AdvantEDGE/docs/overview/edge-services/#edge-platform-application-enablement-service)**
:zap: **New command line api: **
:zap: **New edge native service: [ETSI MEC040 - MEC Federation API](https://interdigitalinc.github.io/AdvantEDGE/docs/overview/edge-services/#mec-federation-service)**
:zap: **Service API upgrade to MEC Phase 3 for [ETSI MEC011](https://interdigitalinc.github.io/AdvantEDGE/docs/overview/edge-services/#edge-platform-application-enablement-service), [ETSI MEC012](https://interdigitalinc.github.io/AdvantEDGE/docs/overview/edge-services/#radio-network-information-service), [ETSI MEC013](https://interdigitalinc.github.io/AdvantEDGE/docs/overview/edge-services/#location-service), [ETSI MEC021](https://interdigitalinc.github.io/AdvantEDGE/docs/overview/edge-services/#application-mobility-service), [ETSI MEC030](https://interdigitalinc.github.io/AdvantEDGE/docs/overview/edge-services/#v2x-information-service), [ETSI MEC033](https://interdigitalinc.github.io/AdvantEDGE/docs/overview/edge-services/#iot-api), [ETSI MEC040](https://interdigitalinc.github.io/AdvantEDGE/docs/overview/edge-services/#mec-federation-service) and [ETSI MEC046](https://interdigitalinc.github.io/AdvantEDGE/docs/overview/edge-services/#mec-sensors-sharing) :arrow_up:**
:zap: **New command line api to develop MEC application/service without GUI**
:zap: **General maintenance :hammer_and_wrench:**
:zap: **Don't hesitate to reach out to us by initiating a [GitHub Discussion](https://github.com/InterDigitalInc/AdvantEDGE/discussions) :octocat:**
------
......
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj
apiVersion: v1
appVersion: '1.0.0'
description: MEEP IOT Information Service Helm chart for Kubernetes
name: meep-iot
version: 1.0.0
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "meep-iot.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "meep-iot.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "meep-iot.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: "{{ .Release.Namespace }}:{{ template "meep-iot.fullname" . }}"
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: {{ template "meep-iot.fullname" . }}
namespace: {{ .Release.Namespace }}
{{- if .Values.codecov.enabled}}
kind: PersistentVolume
apiVersion: v1
metadata:
name: meep-iot-codecov-pv
spec:
storageClassName: meep-iot-codecov-sc
capacity:
storage: 100Mi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
hostPath:
path: {{ .Values.codecov.location }}
---
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: meep-iot-codecov-sc
proiotioner: kubernetes.io/no-proiotioner
volumeBindingMode: WaitForFirstConsumer
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: meep-iot-codecov-pvc
spec:
storageClassName: meep-iot-codecov-sc
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
{{- end}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "meep-iot.fullname" . }}
labels:
app: {{ template "meep-iot.name" . }}
chart: {{ template "meep-iot.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
meepOrigin: {{ .Values.meepOrigin }}
spec:
replicas: {{ .Values.deployment.replicas }}
selector:
matchLabels:
app: {{ template "meep-iot.name" . }}
release: {{ .Release.Name }}
template:
metadata:
labels:
app: {{ template "meep-iot.name" . }}
release: {{ .Release.Name }}
meepOrigin: {{ .Values.meepOrigin }}
spec:
serviceAccountName: {{ .Values.serviceAccount }}
{{- if .Values.codecov.enabled}}
volumes:
- name: codecov-storage
persistentVolumeClaim:
claimName: meep-iot-codecov-pvc
{{- end}}
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
ports:
- containerPort: {{ .Values.deployment.port }}
protocol: {{ .Values.deployment.protocol }}
env:
{{- range $key, $value := .Values.image.env }}
- name: {{ $key }}
value: {{ $value | quote }}
{{- end }}
{{- if .Values.codecov.enabled}}
volumeMounts:
- name: codecov-storage
mountPath: /codecov
{{- end}}
terminationGracePeriodSeconds: 5
initContainers:
{{- range $value := .Values.deployment.dependencies.system }}
- name: init-system-{{ $value }}
image: busybox:1.28
imagePullPolicy: IfNotPresent
command: ['sh', '-c', 'until nslookup {{ $value }}.kube-system ; do echo waiting for {{ $value }}; sleep 0.25; done;']
{{- end}}
{{- range $value := .Values.deployment.dependencies.namespace }}
- name: init-{{ $value }}
image: busybox:1.28
imagePullPolicy: IfNotPresent
command: ['sh', '-c', 'until nslookup {{ $value }} ; do echo waiting for {{ $value }}; sleep 0.25; done;']
{{- end}}
{{- if .Values.ingress.enabled -}}
{{- $serviceName := .Values.service.name -}}
{{- $servicePort := .Values.service.port -}}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ $serviceName }}
labels:
app: {{ template "meep-iot.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
{{- if .Values.ingress.labels }}
{{ toYaml .Values.ingress.labels | indent 4 }}
{{- end }}
annotations:
{{- range $key, $value := .Values.ingress.annotations }}
{{ $key }}: {{ $value | quote }}
{{- end }}
spec:
rules:
{{- range .Values.ingress.hosts }}
- http:
paths:
{{- range $path := .paths }}
- path: {{ $path }}
pathType: ImplementationSpecific
backend:
service:
name: {{ $serviceName }}
port:
number: {{ $servicePort }}
{{- end -}}
{{- if .name }}
host: {{ .name }}
{{- end }}
{{- end -}}
{{- if .Values.ingress.tls }}
tls:
{{ toYaml .Values.ingress.tls | indent 4 }}
{{- end -}}
{{- end -}}
{{- if .Values.prometheus.monitor.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ template "meep-iot.fullname" . }}
namespace: {{ .Release.Namespace }}
labels:
app: {{ template "meep-iot.name" . }}
chart: {{ template "meep-iot.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
meepOrigin: {{ .Values.meepOrigin }}
{{- if .Values.prometheus.monitor.additionalLabels }}
{{ toYaml .Values.prometheus.monitor.additionalLabels | indent 4 }}
{{- end }}
spec:
selector:
matchLabels:
app: {{ template "meep-iot.name" . }}
release: {{ .Release.Name }}
endpoints:
- port: metrics
{{- if .Values.prometheus.monitor.interval }}
interval: {{ .Values.prometheus.monitor.interval }}
{{- end }}
{{- if .Values.prometheus.monitor.scrapeTimeout }}
scrapeTimeout: {{ .Values.prometheus.monitor.scrapeTimeout }}
{{- end }}
{{- if .Values.prometheus.monitor.relabelings }}
relabelings:
{{ toYaml .Values.prometheus.monitor.relabelings | indent 6 }}
{{- end }}
{{- end }}
apiVersion: v1
kind: Service
metadata:
name: {{ .Values.service.name }}
labels:
app: {{ template "meep-iot.name" . }}
chart: {{ template "meep-iot.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
meepOrigin: {{ .Values.meepOrigin }}
spec:
type: {{ .Values.service.type }}
selector:
app: {{ template "meep-iot.name" . }}
release: {{ .Release.Name }}
ports:
- name: iot
port: {{ .Values.service.port }}
targetPort: {{ .Values.deployment.port }}
{{- if .Values.service.nodePort }}
nodePort: {{ .Values.service.nodePort }}
{{- end }}
{{- if .Values.prometheus.monitor.enabled}}
- name: metrics
port: {{ .Values.prometheus.monitor.port }}
targetPort: {{ .Values.prometheus.monitor.port }}
protocol: TCP
{{- end}}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ template "meep-iot.fullname" . }}
# Default values for meep-iot.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
deployment:
replicas: 1
port: 80
protocol: TCP
dependencies:
system:
{{- if not .IsMepService }}
- kube-dns
{{- end }}
namespace:
image:
repository: meep-docker-registry:30001/meep-iot
tag: latest
pullPolicy: Always
env:
MEEP_INSTANCE_ID: {{.InstanceId}}
MEEP_SANDBOX_NAME: {{.SandboxName}}
MEEP_SVC_PATH: /iots/v1
MEEP_HOST_URL: {{.HostUrl}}
{{- if .IsMepService }}
MEEP_MEP_NAME: {{.MepName}}
{{- end }}
{{- if eq .AppEnablement "local" }}
MEEP_APP_ENABLEMENT: {{.MepName}}-meep-app-enablement
{{- else if eq .AppEnablement "global" }}
MEEP_APP_ENABLEMENT: meep-app-enablement
{{- end }}
{{- range .Env}}
{{.}}
{{- end}}
service:
{{- if .IsMepService }}
name: {{.MepName}}-meep-iot
{{- else }}
name: meep-iot
{{- end }}
type: ClusterIP
port: 80
ingress:
enabled: true
hosts:
- name: ''
paths:
{{- if .IsMepService }}
- /{{.SandboxName}}/{{.MepName}}/iots
{{- else }}
- /{{.SandboxName}}/iots
{{- end }}
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/force-ssl-redirect: {{ .HttpsOnly }}
{{- if .IsMepService }}
nginx.ingress.kubernetes.io/configuration-snippet: |
rewrite ^/{{.SandboxName}}/{{.MepName}}/iots(/|$)(.*)$ /iots/$2 break;
{{- else }}
nginx.ingress.kubernetes.io/configuration-snippet: |
rewrite ^/{{.SandboxName}}/iots(/|$)(.*)$ /iots/$2 break;
{{- end }}
{{- if .AuthEnabled }}
nginx.ingress.kubernetes.io/auth-url: https://$http_host/auth/v1/authenticate?svc=meep-iot&sbox={{.SandboxName}}&mep={{.MepName}}
{{- end }}
labels: {}
tls:
prometheus:
monitor:
enabled: true
port: 9000
interval: 10s
additionalLabels: {}
relabelings: []
scrapeTimeout: 5s
codecov:
enabled: false
location: "<WORKDIR>/codecov/meep-iot"
meepOrigin: core
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj
apiVersion: v1
appVersion: "1.0.0"
description: MEEP Device Application Interface Service Helm chart for Kubernetes
name: meep-sss
version: 1.0.0
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "meep-sss.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "meep-sss.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "meep-sss.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: "{{ .Release.Namespace }}:{{ template "meep-sss.fullname" . }}"
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: {{ template "meep-sss.fullname" . }}
namespace: {{ .Release.Namespace }}
\ No newline at end of file
{{- if .Values.codecov.enabled}}
kind: PersistentVolume
apiVersion: v1
metadata:
name: meep-sss-codecov-pv
spec:
storageClassName: meep-sss-codecov-sc
capacity:
storage: 100Mi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
hostPath:
path: {{ .Values.codecov.location }}
---
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: meep-sss-codecov-sc
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: meep-sss-codecov-pvc
spec:
storageClassName: meep-sss-codecov-sc
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
{{- end}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "meep-sss.fullname" . }}
labels:
app: {{ template "meep-sss.name" . }}
chart: {{ template "meep-sss.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
meepOrigin: {{ .Values.meepOrigin }}
spec:
replicas: {{ .Values.deployment.replicas }}
selector:
matchLabels:
app: {{ template "meep-sss.name" . }}
release: {{ .Release.Name }}
template:
metadata:
labels:
app: {{ template "meep-sss.name" . }}
release: {{ .Release.Name }}
meepOrigin: {{ .Values.meepOrigin }}
spec:
serviceAccountName: {{ .Values.serviceAccount }}
volumes:
{{- if .Values.codecov.enabled}}
- name: codecov-storage
persistentVolumeClaim:
claimName: meep-sss-codecov-pvc
{{- end}}
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
ports:
- containerPort: {{ .Values.deployment.port }}
protocol: {{ .Values.deployment.protocol }}
- containerPort: 31122
protocol: TCP
env:
{{- range $key, $value := .Values.image.env }}
- name: {{ $key }}
value: {{ $value | quote }}
{{- end }}
volumeMounts:
{{- if .Values.codecov.enabled}}
- name: codecov-storage
mountPath: /codecov
{{- end}}
terminationGracePeriodSeconds: 5
initContainers:
{{- range $value := .Values.deployment.dependencies.system }}
- name: init-system-{{ $value }}
image: busybox:1.28
imagePullPolicy: IfNotPresent
command: ['sh', '-c', 'until nslookup {{ $value }}.kube-system ; do echo waiting for {{ $value }}; sleep 0.25; done;']
{{- end}}
{{- range $value := .Values.deployment.dependencies.namespace }}
- name: init-{{ $value }}
image: busybox:1.28
imagePullPolicy: IfNotPresent
command: ['sh', '-c', 'until nslookup {{ $value }} ; do echo waiting for {{ $value }}; sleep 0.25; done;']
{{- end}}
{{- if .Values.ingress.enabled -}}
{{- $serviceName := .Values.service.name -}}
{{- $servicePort := .Values.service.port -}}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ $serviceName }}
labels:
app: {{ template "meep-sss.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
{{- if .Values.ingress.labels }}
{{ toYaml .Values.ingress.labels | indent 4 }}
{{- end }}
annotations:
{{- range $key, $value := .Values.ingress.annotations }}
{{ $key }}: {{ $value | quote }}
{{- end }}
spec:
rules:
{{- range .Values.ingress.hosts }}
- http:
paths:
{{- range $path := .paths }}
- path: {{ $path.path }}
pathType: ImplementationSpecific
backend:
service:
name: {{ $serviceName }}
port:
number: {{ $servicePort }}
{{- end -}}
{{- if .name }}
host: {{ .name }}
{{- end }}
{{- end -}}
{{- if .Values.ingress.tls }}
tls:
{{ toYaml .Values.ingress.tls | indent 4 }}
{{- end -}}
{{- end -}}
{{- if .Values.prometheus.monitor.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ template "meep-sss.fullname" . }}
namespace: {{ .Release.Namespace }}
labels:
app: {{ template "meep-sss.name" . }}
chart: {{ template "meep-sss.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
meepOrigin: {{ .Values.meepOrigin }}
{{- if .Values.prometheus.monitor.additionalLabels }}
{{ toYaml .Values.prometheus.monitor.additionalLabels | indent 4 }}
{{- end }}
spec:
selector:
matchLabels:
app: {{ template "meep-sss.name" . }}
release: {{ .Release.Name }}
endpoints:
- port: metrics
{{- if .Values.prometheus.monitor.interval }}
interval: {{ .Values.prometheus.monitor.interval }}
{{- end }}
{{- if .Values.prometheus.monitor.scrapeTimeout }}
scrapeTimeout: {{ .Values.prometheus.monitor.scrapeTimeout }}
{{- end }}
{{- if .Values.prometheus.monitor.relabelings }}
relabelings:
{{ toYaml .Values.prometheus.monitor.relabelings | indent 6 }}
{{- end }}
{{- end }}
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