Link Search Menu Expand Document
TopicAbstract
Common Deployment TasksCommon platform deployment tasks
Deployment ConfigurationAdvantEDGE deployment configuration
Deployment files & pathsCommon platform resource installation locations
Deployment ports & ingressExposed platform ports & paths

Common Deployment Tasks

The following list is a summary of steps to follow to perform specific AdvantEDGE tasks.
Requires Runtime & Build environment setup + git clone https://github.com/InterDigitalInc/AdvantEDGE.git

Bootstrapping (first time & after repo upgrade)

NoDescriptionCommand
1./go-apps/meepctl/install.shBuild & install meepctl CLI tool
2meepctl config ip <your-ip>Configure meepctl
3meepctl config gitdir <path-to-git>Configure meepctl
4meepctl deploy depDeploy dependencies pods
5meepctl build allBuild core pods
6meepctl dockerize allGenerate core pod containers
7meepctl deploy coreDeploy platform core pods
  • skip #2/3 on version change
  • skip #1/2/3 on restart all
  • skip #1/2/3/4 on recompile & restart without changing deps

Shutting down

NoDescriptionCommand
1meepctl delete coreDeletes platform core pods
2meepctl delete depDeletes dependencies pods

Manually cleaning un-terminated sandbox and scenario pods after deleting platform

helm ls --short -n <sandbox-name> | xargs -L1 helm uninstall -n <sandbox-name>

Manually cleaning only un-terminated scenario pods after deleting platform

helm ls -A --short | grep <scenario-name> | xargs -L1 helm uninstall -n <sandbox-name>

Deployment Configuration

AdvantEDGE deployments may be configured by changing the default deployment settings in the ~/AdvantEDGE/.meepctl-repocfg.yaml configuration file.

The following table describes the configurable deployment parameters and their default values.

parameterdescriptiondefault
permissions.uidUser identifier for platform permissions1000
permissions.gidGroup identifier for platform permissions1000
user.frontendUse user-supplied frontend
-> frontend UI located @ .meep/user/frontend
false
user.swaggerUse user-supplied platform & sandbox swagger-ui
-> platform swagger UI located @ .meep/user/swagger
-> sandbox swagger UI located @ .meep/user/sandbox-swagger
false
ingress.hostHost fully-qualified domain name or IP addressmy-platform-fqdn
ingress.https-onlyUse secure connection (HTTPS) onlyfalse
ingress.host-portsUse host ports (true) or node ports (false)true
ingress.http-portHTTP port number80
ingress.https-portHTTP port number443
ingress.caCertificate authority (none|self-signed|lets-encrypt)self-signed
ingress.le-server-prodlets-encrypt production server (true) or staging server (false)false
auth.enabledEnable authentication & authorizationtrue
auth.provider-modeProvider-authenticated users allowed (open) or limited to user database (secure)open
auth.session.key-secretSession encryption key k8s secret
Data:
-> encryption-key: encryption key
meep-session
auth.session.max-sessionsMaximum simultaneous sessions10
auth.github.enabledUse GitHub OAuthtrue
auth.github.auth-urlGitHub authorization URLhttps://github.com/login/oauth/authorize
auth.github.token-urlGitHub access token URLhttps://github.com/login/oauth/access_token
auth.github.redirect-uriGitHub OAuth redirect URIhttps://my-platform-fqdn/platform-ctrl/v1/authorize
auth.github.secretGitHub OAuth k8s secret
Data:
-> client-id: GitHub OAuth app client ID
-> secret: GitHub OAuth app secret
meep-oauth-github
auth.gitlab.enabledUse GitLab OAuthtrue
auth.gitlab.auth-urlGitLab authorization URLhttps://gitlab.com/oauth/authorize
auth.gitlab.token-urlGitLab access token URLhttps://gitlab.com/oauth/token
auth.gitlab.redirect-uriGitLab OAuth redirect URIhttps://my-platform-fqdn/platform-ctrl/v1/authorize
auth.gitlab.secretGitLab OAuth k8s secret
Data:
-> client-id: GitLab OAuth app client ID
-> secret: GitLab OAuth app secret
meep-oauth-gitlab
metrics.influx.enabledEnable influx data backupsfalse
metrics.influx.urlObject store urlmy-object-store-fqdn
metrics.influx.secretObject store configuration secretmeep-influx-objstore-config
metrics.influx.retentionNumber of days to retain daily data backups7
metrics.prometheus.external-labels.regionDeployment region (geographic or logical)idcc
metrics.prometheus.external-labels.monitorFunction being monitoredadvantedge
metrics.prometheus.external-labels.promenvPrometheus environment (dev or prod)prod
metrics.prometheus.external-labels.replicaUnique deployment identifierplatform-ip
metrics.thanos.enabledEnable Thanosfalse
metrics.thanos.secretObject store configuration secretmeep-thanos-objstore-config
metrics.thanos.query.enabledEnable queriertrue
metrics.thanos.query-frontend.enabledEnable query frontendtrue
metrics.thanos.store-gateway.enabledEnable store gatewaytrue
metrics.thanos.compactor.enabledEnable compactorfalse
metrics.thanos.compactor.retention.resolution-rawRaw data retention30d
metrics.thanos.compactor.retention.resolution-5m5m downsampled data retention60d
metrics.thanos.compactor.retention.resolution-1h1h downsampled data retention10y
metrics.thanos.thanos-archive.enabledEnable Thanos archivefalse
metrics.thanos.thanos-archive.secretArchive object store configuration secretmeep-thanos-archive-objstore-config
gc.enabledEnable garbage collectiontrue
gc.intervalGarbage collection interval (duration string)4h
gc.run-on-startRun garbage collection on starttrue
gc.redis.enabledEnable Redis DB garbage collectiontrue
gc.influx.enabledEnable Influx DB garbage collectionfalse
gc.influx.exceptionsList of databases that must not be removed[]
gc.postgis.enabledEnable PostGIS DB garbage collectionfalse

Dependency microservices and Core & Sandbox Subsystem microservices may also be modified using this configuration file. For example, specific microservices can be excluded from a platform build or deployment if not required.

NOTE: Modifying microservice configuration is only recommended for advanced platform users


Deployment files & paths

The following are common locations where AdvantEDGE resources are installed; path may vary depending on your environment

LocationUsage
~/.meepctl.yamlmeepctl CLI tool main configuration file
~/AdvantEDGE/.meepctl-repocfg.yamlmeepctl CLI tool repo & deployment configuration file
~/gocode/bin/meepctlmeepctl installation folder
~/.meep/platform files, pods persistent storage
~/.meep/certs/certificates
~/.meep/codecov/code coverage reports
~/.meep/codecov-bak/previous code coverage reports
~/.meep/couchdb/couchdb persistent storage
~/.meep/docker-registry/docker registry persistent storage
~/.meep/grafana/grafana persistent storage
~/.meep/influxdb/influxdb persistent storage
~/.meep/omt/open-map-tiles persistent storage
~/.meep/postgis/postgis persistent storage
~/.meep/prometheus/alertmanagerprometheus alert manager persistent storage
~/.meep/prometheus/serverprometheus server persistent storage
~/.meep/tmp/temporary meepctl work directory
~/.meep/user/user provided resources (fe, swagger, chart-values)
~/.meep/virt-engine/virt-engine persistent storage

Deployment ports & ingress

AdvantEDGE platform API and frontend are served via an ingress controller on port 80 & 443.

The following tables present a summary of the service exposure.

DEPENDENCY

Moduletypedefault
couchdbinternal-
docker-registryport30001
grafanaingress/grafana
influxdbinternal-
kube-state-metricsinternal-
nginx-ingressport80/443
open-map-tilesingress/map
/styles
/images
/fonts
/data
/leaflet-hash
postgisinternal-
prometheusinternal-
redisinternal-

PLATFORM

Moduletypedefault
meep-amsingress/<sandbox-name>/amsi
meep-app-enablementingress/<sandbox-name>/mec_app_support
/<sandbox-name>/mec_service_mgmt
meep-auth-svcingress/auth
meep-gis-engineingress/<sandbox-name>/gis
meep-loc-servingress/<sandbox-name>/location
meep-metrics-engineingress/<sandbox-name>/metrics
meep-mg-manageringress/<sandbox-name>/mgm
meep-mon-engineingress/mon-engine
meep-platform-ctrlingress/
/api
/platform-ctrl
meep-rnisingress/<sandbox-name>/rni
meep-sandbox-ctrlingress/<sandbox-name>/api
/<sandbox-name>/sandbox-ctrl
meep-tc-engineinternal-
meep-tc-sidecarinternal-
meep-virt-engineinternal-
meep-waisingress/<sandbox-name>/wai
meep-webhookinternal-