Commit d7e6f32e authored by Mudassar Khan's avatar Mudassar Khan
Browse files

add support to connect ACME MN CSE with ACME IN CSE using ingress path

parent 7c2f7e5a
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@

deployment:
  replicas: 1
  port: 3003
  port: 80
  protocol: TCP
  dependencies:
    system:
@@ -26,7 +26,7 @@ image:
    MEEP_SVC_PATH: /in-cse
    MEEP_HOST_URL: {{.HostUrl}}
    SERVER_TYPE: IN
    SERVER_PORT: 3003
    SERVER_PORT: 80
    CSE_BASE_NAME: laboai-cse-in
    CSE_BASE_RI: laboai-id-in
    MQTT_HOST: meep-mosquitto
@@ -51,7 +51,7 @@ image:
service:
  name: meep-acme-in-cse
  type: NodePort
  port: 3003
  port: 80
  NodePort: ""

ingress:
@@ -69,10 +69,10 @@ ingress:
    nginx.ingress.kubernetes.io/force-ssl-redirect: {{ .HttpsOnly }}
    {{- if .IsMepService }}
    nginx.ingress.kubernetes.io/configuration-snippet: |
      rewrite ^/{{.SandboxName}}/{{.MepName}}/meep-acme-in-cse(/|$)(.*)$ /meep-acme-in-cse/$2 break;
      rewrite ^/{{.SandboxName}}/{{.MepName}}/meep-acme-in-cse(/|$)(.*)$ /$2 break;
    {{- else }}
    nginx.ingress.kubernetes.io/configuration-snippet: |
      rewrite ^/{{.SandboxName}}/meep-acme-in-cse(/|$)(.*)$ /meep-acme-in-cse/$2 break;
      rewrite ^/{{.SandboxName}}/meep-acme-in-cse(/|$)(.*)$ /$2 break;
    {{- end }}
    {{- if .AuthEnabled }}
    nginx.ingress.kubernetes.io/auth-url: https://$http_host/auth/v1/authenticate?svc=meep-acme-in-cse&sbox={{.SandboxName}}&mep={{.MepName}}
+1 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ ENV MEC_PLATFORM=""
ENV MEC_SANDBOX_ID=""
ENV ENABLE_COAP=""
ENV ENABLE_WS=""
ENV ACME_IN_SERVICE_NAME=""

RUN echo "meep-acme-mn-cse" > /etc/hostname \
    && DEBIAN_FRONTEND=noninteractive apt-get update \
+22 −4
Original line number Diff line number Diff line
@@ -4,6 +4,8 @@ set -e
echo "MEEP_HOST_URL: ${MEEP_HOST_URL}"
SERVER_IP="${MEEP_HOST_URL#http://}"; MEEP_HOST_URL="${MEEP_HOST_URL#https://}"

sleep 10 # Wait for the MEC platform to stablize and acme in cse to be ready

# Retrieve the internal meep-mosquitto IP address
SERVICE_NAME="meep-mosquitto"
NAMESPACE=$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace)
@@ -49,6 +51,22 @@ NODE_PORT=$(curl -sSk \
  | jq -r '.spec.ports[0].nodePort')
echo "External NodePort exposed for service [$SERVICE_NAME] in namespace [$NAMESPACE] is: $NODE_PORT"

# The following name is the one name used to represent its block in scenario at endpoint /alt
ACME_IN_SERVICE_NAME=${ACME_IN_SERVICE_NAME:-"om2m-acme-in-cse"}
# Fetch pod name acme in cse
POD_NAME=$(curl -sSk \
  -H "Authorization: Bearer $TOKEN" \
  https://kubernetes.default.svc/api/v1/namespaces/$NAMESPACE/pods \
  | jq -r --arg svc "$ACME_IN_SERVICE_NAME" '.items[] | select(.metadata.labels.app == $svc) | .metadata.name' | head -n 1)
echo "Pod name for service [$ACME_IN_SERVICE_NAME] in namespace [$NAMESPACE] is: $POD_NAME"

# Step 2: Get the MEEP_MEP_NAME of ACME IN CSE environment variable from the pod
ACME_MEEP_MEP_NAME=$(curl -sSk \
  -H "Authorization: Bearer $TOKEN" \
  https://kubernetes.default.svc/api/v1/namespaces/$NAMESPACE/pods/$POD_NAME \
  | jq -r '.spec.containers[0].env[] | select(.name=="MEEP_MEP_NAME") | .value')
echo "MEEP_MEP_NAME for service [$ACME_IN_SERVICE_NAME] in namespace [$NAMESPACE] is: $ACME_MEEP_MEP_NAME"

if [[ ! -z "${MEEP_MEP_NAME}" ]]; then
    svcPath="${MEEP_SANDBOX_NAME}/${MEEP_MEP_NAME}"
else
@@ -61,8 +79,6 @@ then
    MEEP_HOST_URL=mec-platform.etsi.org
fi

sleep 5 # Wait for ETSI MEC Platform up and stable

SERVER_IP=`echo $SERVER_IP | sed -e "s/https:\/\///g"` # Remove https://
MQTT_ENABLE=${MQTT_ENABLE:-true}
MQTT_HOST=${MOSQUITTO_NODE_IP_ADDRESS:-"meep-mosquito"}
@@ -74,8 +90,10 @@ SERVER_IP="${SERVER_IP:-"meep-acme-mn-cse"}"
SERVER_PORT=${SERVER_PORT:-3004}
CSE_BASE_NAME=${CSE_BASE_NAME:-"mep-cse-mn"}
CSE_BASE_RI=${CSE_BASE_RI:-"acme-mep-id-mn-cse"}
REMOTE_CSE_HOST="${REMOTE_CSE_IP_ADDRESS:-"meep-acme-in-cse"}"
REMOTE_CSE_PORT=${NODE_PORT_IN_CSE:-3003}
# REMOTE_CSE_HOST="${REMOTE_CSE_IP_ADDRESS:-"meep-acme-in-cse"}"
# REMOTE_CSE_PORT=${NODE_PORT_IN_CSE:-3003}
REMOTE_CSE_HOST=${SERVER_IP:-"meep-acme-in-cse"}
REMOTE_CSE_PORT=80/${MEEP_SANDBOX_NAME}/${ACME_MEEP_MEP_NAME:-"mep1"}/meep-acme-in-cse
REMOTE_CSE_ID=${REMOTE_CSE_ID:-"laboai-id-in"}
REMOTE_CSE_NAME=${REMOTE_CSE_NAME:-"laboai-cse-in"}
ENABLE_COAP=${ENABLE_COAP:-false}