|Deployment Workflow||An overview of the workflow to deploy the platform|
|Code Coverage||Generate code coverage reports|
|NEXT STEP: Platform usage|
To help getting started, the above figure presents typical workflows of how to manage the AdvantEDGE platform.
- The middle flow present steps required on the first install to get the platform up & running
- The top flow presents steps to stop/start AdvantEDGE in-between uses
- The bottom flow presents steps to upgrade AdvantEDGE
Details on each of these steps can be found either in Environment Setup pages or here, in the Platform Management page.
Workflow on AdvantEDGE usage is available in the Platform Usage section.
- clones repository
- builds & installs meepctl tool
- builds frontend & micro-services
- AdvantEDGE Development Environment
AdvantEDGE repository follows the Gitflow Workflow branching model for sharing official platform releases and development updates. Key branches are:
- master: Official platform release branch
- develop: Development branch with latest features
- feature: Long-lived feature branch
We recommend using the master branch
git clone https://github.com/InterDigitalInc/AdvantEDGE.git
The bash script below buids & installs meepctl CLI tool
cd ~/AdvantEDGE/go-apps/meepctl ./install.sh
On first install, meepctl needs to be configured.
meepctl config ip <your-node-ip> meepctl config gitdir /home/<user>/AdvantEDGE # To view current meepctl configuration meepctl config
meepctl CLI tool is used to build frontend and micro-services.
meepctl build all # To build a single micro-service: # meepctl build <micro-service name> # Linters are executed by default on every build. # To disable linting use the `--nolint` flag.
AdvantEDGE micro-services are classified in two groups: core & dependencies; behavior is undefined if the dependencies group is absent/deleted when core containers are deployed.
- configures deployment (optional)
- deploys the dependencies
- containerize core micro services
- deploys core micro-services
- AdvantEDGE Runtime Environment
- meepctl CLI tool installed
AdvantEDGE comes with a default configuration that can be used out-of-the-box for private deployments.
For custom deployments, the configuration file can be edited to control deployment parameters - see Deployment Configuration
meepctl CLI tool is used to deploy AdvantEDGE dependencies on Kubernetes.
meepctl deploy dep # To delete dependencies # meepctl delete dep
meepctl CLI toolis used to containerize AdvantEDGE micro-services.
meepctl dockerize all # To verify that it worked # docker images | grep meep
- this command first creates the containers in the local docker registry
- then pushes the images in the K8s registry; therefore make sure dependencies are running
meepctl CLI tool is used to deploy AdvantEDGE core micro-services on Kubernetes.
meepctl deploy core # To delete only core micro-services # meepctl delete core # To delete and deploy in one operation # meepctl deploy core --force # When done using # meepctl delete core # meepctl delete dep
Our favorite command to verify if everything is running
kubectl get pods --all-namespaces | grep meep default meep-auth-svc-68fb4dbffd-lh959 1/1 Running 0 26h default meep-couchdb-couchdb-0 1/1 Running 0 29h default meep-docker-registry-65b77797cb-tp665 1/1 Running 0 29h default meep-grafana-667984f74b-8k577 1/1 Running 0 29h default meep-influxdb-0 1/1 Running 0 29h default meep-ingress-controller-shxrs 1/1 Running 0 29h default meep-ingress-defaultbackend-5c57d5cd58-4ktwg 1/1 Running 0 29h default meep-kube-state-metrics-868576f6d4-hq7lb 1/1 Running 0 29h default meep-mon-engine-6b75855c74-4vcj5 1/1 Running 0 26h default meep-open-map-tiles-7d99b886f-k5ndg 1/1 Running 0 29h default meep-platform-ctrl-5994bb5868-9gl9d 1/1 Running 0 26h default meep-postgis-0 2/2 Running 0 29h default meep-prometheus-couchdb-exporter-795d6b6dc5-csvfr 1/1 Running 0 29h default meep-prometheus-node-exporter-62qbw 1/1 Running 0 29h default meep-prometheus-operator-c8b8896d7-vnlrb 1/1 Running 0 29h default meep-redis-master-0 2/2 Running 0 29h default meep-redis-slave-0 2/2 Running 0 29h default meep-virt-engine-6f44488b54-sk86p 1/1 Running 0 26h default meep-webhook-6865678784-4ntnb 1/1 Running 0 26h
Alternatively - a green indicator on the top right corner of the frontend indicates that all the pods are running.
If some pods are not, indicator will be red & hovering indicates which pods are missing.
meepctl CLI tool is used to uninstall AdvantEDGE.
meepctl delete core meepctl delete dep
NOTE: meepctl CLI tool performs a version check in the local .meepctl-repocfg.yaml file. For this reason, it is recommended to uninstall AdvantEDGE before fetching the latest release.
- installs Cypress
- runs unit tests
- runs Cypress CLI
- alternatively, runs Cypress GUI
To install Cypress run the following commands:
cd ~/AdvantEDGE/test npm ci
cd AdvantEDGE/tests ./start-ut-env.sh ./run-ut.sh ./stop-ut-env.sh
cd AdvantEDGE/tests/system export MEEP_HOST_TEST_URL="http://<host ip address>" go test -timeout 30m
# Run Cypress tests using CLI cd ~/AdvantEDGE/test ./run-cypress.sh # Default AdvantEDGE URL used by cypress is http://127.0.0.1 # To run tests using another deployment: # npm run cy:run -- --env meep_url="http://<Node IP>"
# Run/Debug Cypress tests using GUI cd ~/AdvantEDGE/test npm run cy:open # Default AdvantEDGE URL used by cypress is http://127.0.0.1 # To run tests using another deployment: # npm run cy:open -- --env meep_url="http://<Node IP>"
NOTE: Cypress may crash if max inotify watchers is too low. To fix this run the command:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
See details here
IMPORTANT NOTE: Code coverage does not work with the latest release; a fix will be provided with the next release.
AdvantEDGE core micro-services can be instrumented to measure code coverage; when used in conjunction with Cypress, system & manual tests, an overview of the platform code coverage can be obtained.
To enable code coverage measurements in AdvantEDGE:
- Build for code coverage:
meepctl build all --codecov
meepctl dockerize all
- Deploy for code coverage:
meepctl deploy core --codecov
- Execute tests: run Cypress, system or any desired manual platform tests
Once testing is complete:
- Stop the micro-services gracefully:
meepctl delete core
- Build, dockerize & deploy will instrument and execute core micro-services so they measure code coverage.
- When terminated gracefully, the core micro-services store code coverage results at the following location:
- For convenience, code coverage reports can be generated using
- Create scenarios
- Execute scenarios
- Observe application beahvior