Merge STF_685_MEC_IPE: Integration of tinyIoT, meepctl improvements, and Ansible setup fixes

This Merge Request merges STF_685_MEC_IPE into STF_685. It brings in key changes including tinyIoT (oneM2M Middle/Infrastructure Node CSE) integration, meepctl feature additions, Docker/K8s setup patches, and local Ansible environment fixes.

Summary of Main Changes Included:

1. tinyIoT Integration (MEC & IoT Platform Support)
  • MEC033 & IoT Callback Support: Resolved callback failure issues for MEC033 registered IoT platforms.
  • tinyIoT Middle Node (MN) CSE: Added dynamic lookup logic in the entrypoint script to resolve the remote IN-CSE service host dynamically.
  • Background Tickers: Optimized refresh interval times for meep-iot and meep-sss from higher frequencies to a 60-second background refresh cycle.
  • MECSupport Plugin: Integrated custom MECSupport plugins for oneM2M node registrations with the MEC Sandbox services.
2. meepctl & Local Automation Improvements
  • Individual Dependency Control: Added features to meepctl to allow individual deployments and deletion of dependencies (e.g. meepctl deploy/delete <dep_name>).
  • Force-Deploy Cooldown: Added deployment cooldown safety triggers for meepctl force-deploy.
  • Tilt Integration: Added and patched Kubernetes Tiltfile assets for sandbox automation and local hot-reloading development workflows.
3. Docker & Security Context Patches
  • Docker Registry UID/GID Mapping: Patched meepctl to dynamically inject the configuration's UID/GID variables into the meep-docker-registry StatefulSet securityContext.
  • DAI API Container fix: Created an empty onboardedapp directory inside the Docker build workspace to prevent build failures for the DAI API service container.
4. Ansible Setup Fixes (Issue #30 (closed))
  • Ingress & OAuth: Updated matching regular expressions to support both mec-platform.etsi.org and try-mec.etsi.org redirect URIs.
  • Docker Downgrades: Unpinned hardcoded version tags from Docker CE installations to avoid downgrade blockages on hosts with newer packages.
  • CoreDNS Resolvers: Patched the cluster's Corefile to forward to public resolvers (8.8.8.8 1.1.1.1), resolving external query resolution loops.
  • Go Compiler Upgrade: Updated Go environment to 1.25.0, bypassing mixed standard-library compile panics.
  • .meep directory permissions: Ensured directories are pre-created on the host using the configured {{ target_user }} ownership prior to Kubernetes volume mounts, preventing permission conflicts when Kubernetes initializes missing hostPath mounts as root.

Merge request reports

Loading
+13 −0
Changes for .devcontainer/devcontainer.json: 13 added lines, 0 removed lines.
Original line number Diff line number Diff line
{
    "name": "Go",
    "image": "mcr.microsoft.com/devcontainers/go:1.25-bookworm",
    "customizations": {
        "vscode": {
            "extensions": [
                "golang.go"
            ]
        }
    },
    "postCreateCommand": "go version",
    "remoteUser": "vscode"
}
 No newline at end of file
+9 −8
Changes for charts/kube-state-metrics/values.yaml: 9 added lines, 8 removed lines.
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
meepOrigin: core
prometheusScrape: true
image:
  repository: quay.io/coreos/kube-state-metrics
  repository: rancher/mirrored-coreos-kube-state-metrics
  tag: v1.9.7
  pullPolicy: IfNotPresent

@@ -124,23 +124,23 @@ podDisruptionBudget: {}
# Available collectors for kube-state-metrics. By default all available
# collectors are enabled.
collectors:
  certificatesigningrequests: true
  certificatesigningrequests: false
  configmaps: true
  cronjobs: true
  cronjobs: false
  daemonsets: true
  deployments: true
  endpoints: true
  horizontalpodautoscalers: true
  ingresses: true
  horizontalpodautoscalers: false
  ingresses: false
  jobs: true
  limitranges: true
  mutatingwebhookconfigurations: true
  mutatingwebhookconfigurations: false
  namespaces: true
  networkpolicies: true
  nodes: true
  persistentvolumeclaims: true
  persistentvolumes: true
  poddisruptionbudgets: true
  poddisruptionbudgets: false
  pods: true
  replicasets: true
  replicationcontrollers: true
@@ -149,10 +149,11 @@ collectors:
  services: true
  statefulsets: true
  storageclasses: true
  validatingwebhookconfigurations: true
  validatingwebhookconfigurations: false
  verticalpodautoscalers: false
  volumeattachments: true
 

# Enabling kubeconfig will pass the --kubeconfig argument to the container
kubeconfig:
  enabled: false
+1 −1
Changes for charts/meep-app-enablement/values-template.yaml: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -100,7 +100,7 @@ prometheus:
    interval: 10s
    additionalLabels: {}
    relabelings: []
    scrapeTimeout: 5s
    scrapeTimeout: 15s
    
codecov:
  enabled: false
+3 −3
Changes for charts/meep-tinyiot-in-cse/templates/_helpers.tpl: 3 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "meep-tinyiot-in-cse.name" -}}
{{- define "meep-tiny-in-cse.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}

@@ -11,7 +11,7 @@ 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-tinyiot-in-cse.fullname" -}}
{{- define "meep-tiny-in-cse.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
@@ -27,6 +27,6 @@ If release name contains chart name it will be used as a full name.
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "meep-tinyiot-in-cse.chart" -}}
{{- define "meep-tiny-in-cse.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
+2 −2
Changes for charts/meep-tinyiot-in-cse/templates/clusterrolebinding.yaml: 2 added lines, 2 removed lines.
Original line number Diff line number Diff line
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: "{{ .Release.Namespace }}:{{ template "meep-tinyiot-in-cse.fullname" . }}"
  name: "{{ .Release.Namespace }}:{{ template "meep-tiny-in-cse.fullname" . }}"
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: {{ template "meep-tinyiot-in-cse.fullname" . }}
  name: {{ template "meep-tiny-in-cse.fullname" . }}
  namespace: {{ .Release.Namespace }}
  
 No newline at end of file
Loading
Loading