# Copyright (c) 2022  The AdvantEDGE Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

version: 1.10.0
repo:
  name: AdvantEDGE

  #------------------------------
  #  Deployment
  #------------------------------
  deployment:
    # permissions
    permissions:
      # user id
      uid: 1000
      # group id
      gid: 1000

    # user supplied resources
    user:
      # user supplied frontend UI located @ .meep/user/frontend
      frontend: true
      # user supplied platform swagger UI located @ .meep/user/swagger
      # user supplied sandbox swagger UI located @ .meep/user/sandbox-swagger
      swagger: true

    # platform ingress configuration
    ingress:
      # host name
      host: 172.30.225.7
      # enable https only (redirect http requests to https port)
      https-only: false
      # bind to host ports (true) or node ports (false)
      host-ports: true
      # http port number
      http-port: 80
      # https config
      https-port: 443
      # certificate authority (none|self-signed|lets-encrypt) default: none
      ca: self-signed
      # lets-encrypt production server (true) or staging server (false)
      le-server-prod: true

    # authentication & authorization config
    auth:
      # enable authentication & authorization
      enabled: true
      # Provider-authenticated users allowed (open) or limited to user database (secure)
      provider-mode: open
      # Session config
      session:
        # session encryption key k8s secret (data: encryption-key)
        key-secret: meep-session
        # maximum simultaneous sessions
        max-sessions: 10
      # GitHub OAuth provider config
      github:
        # enable GitHub OAuth
        enabled: true
        # device authorization url for mec-sandbox-api
        device-auth-url: https://github.com/login/device/code
        # authorization url for mec-sandbox-api
        device-poll-url: https://github.com/login/oauth/access_token
        # device polling url
        poll-url: https://github.com/login/oauth/access_token
        # authorization url
        auth-url: https://github.com/login/device/code
        # access token url
        token-url: https://github.com/login/oauth/access_token
        # OAuth redirect URI
        redirect-uri: https://mec-platform2.etsi.org/platform-ctrl/v1/authorize
        # OAuth k8s secret (data: client-id, secret)
        secret: meep-oauth-github
      # GitLab OAuth provider config
      gitlab:
        # enable GitLab OAuth
        enabled: true
        # authorization url
        auth-url: https://forge.etsi.org/rep/oauth/authorize
        # access token url
        token-url: https://forge.etsi.org/rep/oauth/token
        # OAuth redirect URI
        redirect-uri: https://try-mec.etsi.org/platform-ctrl/v1/authorize
        # GitLab api url
        api-url: https://forge.etsi.org/rep/api/v4
        # OAuth k8s secret (data: client-id, secret)
        secret: meep-oauth-gitlab

    # Metrics Configuration
    metrics:
      # Influx configuration
      influx:
        # enable influx data backups
        enabled: false
        # object store url
        url: https://metrics.try-mec.etsi.org/
        # object store configuration secret
        secret: meep-influx-objstore-config
        # Number of days to retain daily data backups
        retention: 7
      # Prometheus configuration
      prometheus:
        # external labels added to prometheus metrics
        external-labels:
          # deployment region (geographic or logical)
          region: etsi
          # function being monitored
          monitor: advantedge
          # prometheus environment (dev|prod)
          promenv: prod
          # unique deployment identifier
          replica: platform-ip
      # Thanos long-term storage
      thanos:
        # enable Thanos
        enabled: false
        # object store configuration secret
        secret: meep-thanos-objstore-config
        # query component
        query:
          # enable querier
          enabled: true
        # query frontend component
        query-frontend:
          # enable query frontend
          enabled: true
        # store gateway component
        store-gateway:
          # enable store gateway
          enabled: true
        # compactor component
        compactor:
          # enable compactor
          enabled: false
          # data retention times
          retention:
            # raw data retention
            resolution-raw: 30d
            # 5m downsampled data retention
            resolution-5m: 60d
            # 1h downsampled data retention
            resolution-1h: 10y
      # Thanos long-term storage archive
      #thanos-archive:
        # enable Thanos archive
        # enabled: true
        # archive object store configuration secret
        #secret: meep-thanos-archive-objstore-config

    # Garbage Collection configuration
    gc:
      # enable garbage collection
      enabled: true
      # garbage collection interval (duration string)
      interval: 4h
      # run garbage collection on start
      run-on-start: true
      # Redis configuration
      redis:
        # enable redis garbage collection
        enabled: true
      # Influx configuration
      influx:
        # enable influx garbage collection
        enabled: true
        # list of databases that must not be removed
        exceptions:
        #   - my_db_to_keep
        #   - my_other_db_to_keep
      # Postgis configuration
      postgis:
        # enable postgis garbage collection
        enabled: false

    # Default monitoring dashboards
    dashboards:
      mec-sandbox: dashboards/mec-sandbox.json
      platform-advantedge: dashboards/platform-advantedge.json
      platform-k8s: dashboards/platform-k8s.json
      runtime-environment-node: dashboards/runtime-environment-node.json
      runtime-environment-k8s-cluster: dashboards/runtime-environment-k8s-cluster.json
      kubelet: dashboards/kubelet.json
      prometheus: dashboards/prometheus.json

  #------------------------------
  #  Resource Prerequisites
  #------------------------------
  resource-prerequisites:
    # k8s Custom Resource Definitions
    crds:
      servicemonitors.monitoring.coreos.com: charts/kube-prometheus-stack/crds/crd-servicemonitors.yaml

  #------------------------------
  #  Core Subsystem
  #------------------------------
  core:
    # Go Applications
    go-apps:
      meep-auth-svc:
        # location of source code
        src: go-apps/meep-auth-svc
        # location of binary
        bin: bin/meep-auth-svc
        # location of deployment chart
        chart: charts/meep-auth-svc
        # user supplied value file located @ .meep/user/values (use below file name)
        chart-user-values: meep-auth-svc.yaml
        # enable meepctl build
        build: true
        # enable meepctl dockerize
        dockerize: true
        # enable meepctl deploy/delete
        deploy: true
        # supports code coverage measurement when built in codecov mode
        codecov: true
        # supports linting
        lint: true
        # location of API specifications
        api:
          - name: 'AdvantEDGE Auth Service REST API'
            file: go-apps/meep-auth-svc/api/swagger.yaml
        # location of user supplied API specifications
        user-api:
        # resources available to docker container image
        docker-data:
          # location of entry script
          'entrypoint.sh': go-apps/meep-auth-svc/entrypoint.sh
          # location of REST API permissions file
          'permissions.yaml': config/permissions.yaml
      meep-ingress-certs:
        # enable meepctl build
        build: false
        # location of deployment chart
        chart: charts/meep-ingress-certs
        # user supplied value file located @ .meep/user/values (use below file name)
        chart-user-values: meep-ingress-certs.yaml
        # enable meepctl dockerize
        dockerize: false
        # enable meepctl deploy/delete
        deploy: true
        # supports linting
        lint: false
      meep-mon-engine:
        # location of source code
        src: go-apps/meep-mon-engine
        # location of binary
        bin: bin/meep-mon-engine
        # location of deployment chart
        chart: charts/meep-mon-engine
        # user supplied value file located @ .meep/user/values (use below file name)
        chart-user-values: meep-mon-engine.yaml
        # extra build flags
        build-flags:
          - -mod=vendor
        # enable meepctl build
        build: true
        # enable meepctl dockerize
        dockerize: true
        # enable meepctl deploy/delete
        deploy: true
        # supports code coverage measurement when built in codecov mode
        codecov: true
        # supports linting
        lint: true
        # list of dependencies pods to monitor
        dependency-pods:
          - meep-cert-manager
          - meep-couchdb
          - meep-docker-registry
          - meep-grafana
          - meep-ingress
          - meep-influxdb
          - meep-kube-state-metrics
          - meep-open-map-tiles
          - meep-postgis
          - meep-redis
          - meep-prometheus
        # list of platform pods to monitor
        core-pods:
          - meep-mon-engine
          - meep-platform-ctrl
          - meep-virt-engine
          - meep-webhook
        # list of sandbox pods to monitor
        sandbox-pods:
          - meep-gis-engine
          # - meep-loc-serv
          - meep-metrics-engine
          # - meep-mg-manager
          # - meep-rnis
          # - meep-dai
          # - meep-tm
          # - meep-wais
          # - meep-ams
          - meep-sandbox-ctrl
          # - meep-tc-engine
          # - meep-app-enablement
          # - meep-vis
          # - meep-federation
        # location of API specifications
        api:
          - name: 'AdvantEDGE Monitoring Engine REST API'
            file: go-apps/meep-mon-engine/api/swagger.yaml
        # location of user supplied API specifications
        user-api:
        # resources available to docker container image
        docker-data:
          # location of entry script
          'entrypoint.sh': go-apps/meep-mon-engine/entrypoint.sh
      meep-platform-ctrl:
        # location of source code
        src: go-apps/meep-platform-ctrl
        # location of binary
        bin: bin/meep-platform-ctrl
        # location of deployment chart
        chart: charts/meep-platform-ctrl
        # user supplied value file located @ .meep/user/values (use below file name)
        chart-user-values: meep-platform-ctrl.yaml
        # enable meepctl build
        build: true
        # enable meepctl dockerize
        dockerize: true
        # enable meepctl deploy/delete
        deploy: true
        # supports code coverage measurement when built in codecov mode
        codecov: true
        # supports linting
        lint: true
        # location of API specifications
        api:
          - name: 'AdvantEDGE Platform Controller REST API'
            file: go-apps/meep-platform-ctrl/api/swagger.yaml
        # location of user supplied API specifications
        user-api:
        # resources available to docker container image
        docker-data:
          # location of entry script
          'entrypoint.sh': go-apps/meep-platform-ctrl/entrypoint.sh
          # location of Swagger UI
          swagger: js-apps/meep-swagger-ui
          # location of AdvantEDGE frontend
          frontend: bin/meep-frontend
      meep-virt-engine:
        # location of source code
        src: go-apps/meep-virt-engine
        # location of binary
        bin: bin/meep-virt-engine
        # location of deployment chart
        chart: charts/meep-virt-engine
        # user supplied value file located @ .meep/user/values (use below file name)
        chart-user-values: meep-virt-engine.yaml
        # enable meepctl build
        build: true
        # enable meepctl dockerize
        dockerize: true
        # enable meepctl deploy/delete
        deploy: true
        # supports code coverage measurement when built in codecov mode
        codecov: true
        # supports linting
        lint: true
        # AdvantEDGE resources included in Docker container image
        docker-data:
          # entrypoint script
          'entrypoint.sh': go-apps/meep-virt-engine/entrypoint.sh
          # AdvantEDGE micro-service charts
          meep-gis-engine: charts/meep-gis-engine
          meep-loc-serv: charts/meep-loc-serv
          meep-metrics-engine: charts/meep-metrics-engine
          meep-mg-manager: charts/meep-mg-manager
          meep-rnis: charts/meep-rnis
#          meep-dai: charts/meep-dai
          meep-tm: charts/meep-tm
          meep-wais: charts/meep-wais
          meep-ams: charts/meep-ams
          meep-sandbox-ctrl: charts/meep-sandbox-ctrl
          meep-tc-engine: charts/meep-tc-engine
          meep-app-enablement: charts/meep-app-enablement
          meep-virt-chart-templates: charts/meep-virt-chart-templates
          meep-vis: charts/meep-vis
          meep-federation: charts/meep-federation
        # list of sandbox specific pods
        sandbox-pods:
          - meep-gis-engine
          # - meep-loc-serv
          - meep-metrics-engine
          # - meep-mg-manager
          # - meep-rnis
          # - meep-dai
          # - meep-tm
          # - meep-wais
          # - meep-ams
          - meep-sandbox-ctrl
          # - meep-tc-engine
          # - meep-app-enablement
          # - meep-vis
          # - meep-federation
      meep-webhook:
        # location of source code
        src: go-apps/meep-webhook
        # location of binary
        bin: bin/meep-webhook
        # location of deployment chart
        chart: charts/meep-webhook
        # user supplied value file located @ .meep/user/values (use below file name)
        chart-user-values: meep-webhook.yaml
        # extra build flags
        build-flags:
          - -mod=vendor
        # enable meepctl build
        build: true
        # enable meepctl dockerize
        dockerize: true
        # enable meepctl deploy/delete
        deploy: true
        # supports code coverage measurement when built in codecov mode
        codecov: false
        # supports linting
        lint: true

    # Javascript Applications
    js-apps:
      meep-frontend:
        # location of source code
        src: js-apps/meep-frontend
        # location of binary
        bin: bin/meep-frontend
        # enable meepctl build
        build: true
        # enable meepctl dockerize
        # -> bundled with meep-platform-ctrl
        dockerize: false
        # enable meepctl deploy/delete
        # -> deployed via meep-platform-ctrl
        deploy: false
        # supports linting
        lint: true
        # local project dependencies
        local-deps:
          meep-platform-ctrl-api: js-packages/meep-platform-ctrl-client
          meep-sandbox-ctrl-api: js-packages/meep-sandbox-ctrl-client
          meep-mon-engine-api: js-packages/meep-mon-engine-client
          meep-gis-engine-api: js-packages/meep-gis-engine-client
          meep-auth-svc-client: js-packages/meep-auth-svc-client
          meep-metrics-engine-api: js-packages/meep-metrics-engine-client

  #------------------------------
  #  Sandbox Subsystem
  #------------------------------
  sandbox:
    # Go Applications
    go-apps:
      meep-ams:
        # location of source code
        src: go-apps/meep-ams
        # location of binary
        bin: bin/meep-ams
        # location of deployment chart
        chart: charts/meep-ams
        # user supplied value file located @ .meep/user/values (use below file name)
        chart-user-values: meep-ams.yaml
        # extra build flags
        build-flags:
          - -mod=vendor
        # enable meepctl build
        build: true
        # enable meepctl dockerize
        dockerize: true
        # enable meepctl deploy/delete
        deploy: true
        # supports code coverage measurement when built in codecov mode
        codecov: true
        # supports linting
        lint: true
        # location of API specifications
        api:
          - name: 'AdvantEDGE Application Mobility REST API'
            file: go-apps/meep-ams/api/swagger.yaml
        # location of user supplied API specifications
        user-api:
          - name: 'Application Mobility Service REST API'
            file: config/api/ams-api.yaml
        # resources available to docker container image
        docker-data:
          # location of entry script
          'entrypoint.sh': go-apps/meep-ams/entrypoint.sh
      meep-app-enablement:
        # location of source code
        src: go-apps/meep-app-enablement
        # location of binary
        bin: bin/meep-app-enablement
        # location of deployment chart
        chart: charts/meep-app-enablement
        # user supplied value file located @ .meep/user/values (use below file name)
        chart-user-values: meep-app-enablement.yaml
        # extra build flags
        build-flags:
          - -mod=vendor
        # enable meepctl build
        build: true
        # enable meepctl dockerize
        dockerize: true
        # enable meepctl deploy/delete
        deploy: true
        # supports code coverage measurement when built in codecov mode
        codecov: true
        # supports linting
        lint: true
        # location of API specifications
        api:
          - name: 'AdvantEDGE MEC Application Support REST API'
            file: go-apps/meep-app-enablement/api/app-support/swagger.yaml
          - name: 'AdvantEDGE MEC Service Management REST API'
            file: go-apps/meep-app-enablement/api/service-mgmt/swagger.yaml
          - name: 'AdvantEDGE MEC service management realized by CAPIF APIs'
            file: go-apps/meep-app-enablement/api/capif-mgmt/swagger.yaml
        # location of user supplied API specifications
        user-api:
          - name: 'MEC Application Support API'
            file: config/api/app-support.yaml
          - name: 'MEC Service Management API'
            file: config/api/service-mgmt.yaml
          - name: 'MEC Capif Management API'
            file: config/api/capif-mgmt.yaml
        # resources available to docker container image
        docker-data:
          # location of entry script
          'entrypoint.sh': go-apps/meep-app-enablement/entrypoint.sh
      meep-gis-engine:
        # location of source code
        src: go-apps/meep-gis-engine
        # location of binary
        bin: bin/meep-gis-engine
        # location of deployment chart
        chart: charts/meep-gis-engine
        # user supplied value file located @ .meep/user/values (use below file name)
        chart-user-values: meep-gis-engine.yaml
        # enable meepctl build
        build: true
        # enable meepctl dockerize
        dockerize: true
        # enable meepctl deploy/delete
        deploy: true
        # supports code coverage measurement when built in codecov mode
        codecov: true
        # supports linting
        lint: true
        # location of API specifications
        api:
          - name: 'AdvantEDGE GIS Engine REST API'
            file: go-apps/meep-gis-engine/api/swagger.yaml
        # location of user supplied API specifications
        user-api:
        # resources available to docker container image
        docker-data:
          # location of entry script
          'entrypoint.sh': go-apps/meep-gis-engine/entrypoint.sh
      meep-loc-serv:
        # location of source code
        src: go-apps/meep-loc-serv
        # location of binary
        bin: bin/meep-loc-serv
        # location of deployment chart
        chart: charts/meep-loc-serv
        # user supplied value file located @ .meep/user/values (use below file name)
        chart-user-values: meep-loc-serv.yaml
        # extra build flags
        build-flags:
          - -mod=vendor
        # enable meepctl build
        build: true
        # enable meepctl dockerize
        dockerize: true
        # enable meepctl deploy/delete
        deploy: true
        # supports code coverage measurement when built in codecov mode
        codecov: true
        # supports linting
        lint: true
        # location of API specifications
        api:
          - name: 'AdvantEDGE Location Service REST API'
            file: go-apps/meep-loc-serv/api/swagger.yaml
        # location of user supplied API specifications
        user-api:
          - name: 'Location Service REST API'
            file: config/api/loc-serv-api.yaml
        # resources available to docker container image
        docker-data:
          # location of entry script
          'entrypoint.sh': go-apps/meep-loc-serv/entrypoint.sh
      meep-metrics-engine:
        # location of source code
        src: go-apps/meep-metrics-engine
        # location of binary
        bin: bin/meep-metrics-engine
        # location of deployment chart
        chart: charts/meep-metrics-engine
        # user supplied value file located @ .meep/user/values (use below file name)
        chart-user-values: meep-metrics-engine.yaml
        # extra build flags
        build-flags:
          - -mod=vendor
        # enable meepctl build
        build: true
        # enable meepctl dockerize
        dockerize: true
        # enable meepctl deploy/delete
        deploy: true
        # supports code coverage measurement when built in codecov mode
        codecov: true
        # supports linting
        lint: true
        # location of API specifications
        api:
          - name: 'AdvantEDGE Metrics Service REST API'
            file: go-apps/meep-metrics-engine/api/v2/swagger.yaml
          - name: 'AdvantEDGE Metrics Service Notification REST API'
            file: go-packages/meep-metrics-engine-notification-client/api/swagger.yaml
        # location of user supplied API specifications
        user-api:
        # resources available to docker container image
        docker-data:
          # location of entry script
          'entrypoint.sh': go-apps/meep-metrics-engine/entrypoint.sh
      meep-mg-manager:
        # location of source code
        src: go-apps/meep-mg-manager
        # location of binary
        bin: bin/meep-mg-manager
        # location of deployment chart
        chart: charts/meep-mg-manager
        # user supplied value file located @ .meep/user/values (use below file name)
        chart-user-values: meep-mg-manager.yaml
        # enable meepctl build
        build: false
        # enable meepctl dockerize
        dockerize: false
        # enable meepctl deploy/delete
        deploy: false
        # supports code coverage measurement when built in codecov mode
        codecov: true
        # supports linting
        lint: false
        # location of API specifications
        api:
          - name: 'AdvantEDGE Mobility Group Service REST API'
            file: go-apps/meep-mg-manager/api/swagger.yaml
          - name: 'AdvantEDGE Mobility Group Application Client REST API'
            file: go-packages/meep-mg-app-client/api/swagger.yaml
        # location of user supplied API specifications
        user-api:
        # resources available to docker container image
        docker-data:
          # location of entry script
          'entrypoint.sh': go-apps/meep-mg-manager/entrypoint.sh
      meep-rnis:
        # location of source code
        src: go-apps/meep-rnis
        # location of binary
        bin: bin/meep-rnis
        # location of deployment chart
        chart: charts/meep-rnis
        # user supplied value file located @ .meep/user/values (use below file name)
        chart-user-values: meep-rnis.yaml
        # extra build flags
        build-flags:
          - -mod=vendor
        # enable meepctl build
        build: true
        # enable meepctl dockerize
        dockerize: true
        # enable meepctl deploy/delete
        deploy: true
        # supports code coverage measurement when built in codecov mode
        codecov: true
        # supports linting
        lint: true
        # location of API specifications
        api:
          - name: 'AdvantEDGE Radio Network Information Service REST API'
            file: go-apps/meep-rnis/api/swagger.yaml
        # location of user supplied API specifications
        user-api:
          - name: 'Radio Network Information Service REST API'
            file: config/api/rnis-api.yaml
        # resources available to docker container image
        docker-data:
          # location of entry script
          'entrypoint.sh': go-apps/meep-rnis/entrypoint.sh
      meep-sandbox-ctrl:
        # location of source code
        src: go-apps/meep-sandbox-ctrl
        # location of binary
        bin: bin/meep-sandbox-ctrl
        # location of deployment chart
        chart: charts/meep-sandbox-ctrl
        # user supplied value file located @ .meep/user/values (use below file name)
        chart-user-values: meep-sandbox-ctrl.yaml
        # enable meepctl build
        build: true
        # enable meepctl dockerize
        dockerize: true
        # enable meepctl deploy/delete
        deploy: true
        # supports code coverage measurement when built in codecov mode
        codecov: true
        # supports linting
        lint: true
        # location of API specifications
        api:
          - name: 'AdvantEDGE Sandbox Controller REST API'
            file: go-apps/meep-sandbox-ctrl/api/swagger.yaml
        # location of user supplied API specifications
        user-api:
        # resources available to docker container image
        docker-data:
          # location of entry script
          'entrypoint.sh': go-apps/meep-sandbox-ctrl/entrypoint.sh
          # location of Swagger UI
          swagger: js-apps/meep-swagger-ui
      meep-tc-engine:
        # location of source code
        src: go-apps/meep-tc-engine
        # location of binary
        bin: bin/meep-tc-engine
        # location of deployment chart
        chart: charts/meep-tc-engine
        # user supplied value file located @ .meep/user/values (use below file name)
        chart-user-values: meep-tc-engine.yaml
        # enable meepctl build
        build: false
        # enable meepctl dockerize
        dockerize: false
        # enable meepctl deploy/delete
        deploy: false
        # supports code coverage measurement when built in codecov mode
        codecov: true
        # supports linting
        lint: false
      meep-tc-sidecar:
        # location of source code
        src: go-apps/meep-tc-sidecar
        # location of binary
        bin: bin/meep-tc-sidecar
        # enable meepctl build
        build: true
        # enable meepctl dockerize
        dockerize: true
        # enable meepctl deploy/delete
        deploy: true
        # supports code coverage measurement when built in codecov mode
        codecov: false
        # supports linting
        lint: true
      meep-wais:
        # location of source code
        src: go-apps/meep-wais
        # location of binary
        bin: bin/meep-wais
        # location of deployment chart
        chart: charts/meep-wais
        # user supplied value file located @ .meep/user/values (use below file name)
        chart-user-values: meep-wais.yaml
        # extra build flags
        build-flags:
          - -mod=vendor
        # enable meepctl build
        build: true
        # enable meepctl dockerize
        dockerize: true
        # enable meepctl deploy/delete
        deploy: true
        # supports code coverage measurement when built in codecov mode
        codecov: true
        # supports linting
        lint: true
        # location of API specifications
        api:
          - name: 'AdvantEDGE WLAN Access Information REST API'
            file: go-apps/meep-wais/api/swagger.yaml
        # location of user supplied API specifications
        user-api:
          - name: 'WLAN Access Information Service REST API'
            file: config/api/wais-api.yaml
        # resources available to docker container image
        docker-data:
          # location of entry script
          'entrypoint.sh': go-apps/meep-wais/entrypoint.sh
      meep-tm:
        # location of source code
        src: go-apps/meep-tm
        # location of binary
        bin: bin/meep-tm
        # location of deployment chart
        chart: charts/meep-tm
        # user supplied value file located @ .meep/user/values (use below file name)
        chart-user-values: meep-tm.yaml
        # extra build flags
        build-flags:
          - -mod=vendor
        # enable meepctl build
        build: true
        # enable meepctl dockerize
        dockerize: true
        # enable meepctl deploy/delete
        deploy: true
        # supports code coverage measurement when built in codecov mode
        codecov: true
        # supports linting
        lint: true
        # location of API specifications
        api:
          - name: 'AdvantEDGE MEC Bandwidth Management REST API'
            file: go-apps/meep-tm/api/bwm/swagger.yaml
          - name: 'AdvantEDGE MEC Multi-access Traffic Steering REST API'
            file: go-apps/meep-tm/api/mts/swagger.yaml
        # location of user supplied API specifications
        user-api:
          # resources available to docker container image
          - name: 'Bandwidth Management REST API'
            file: config/api/bwm-api.yaml
          - name: 'Multi-access Traffic Steering REST API'
            file: config/api/mts-api.yaml
        docker-data:
          # location of entry script
          'entrypoint.sh': go-apps/meep-tm/entrypoint.sh
#      meep-dai:
#        # location of source code
#        src: go-apps/meep-dai
#        # location of binary
#        bin: bin/meep-dai
#        # location of deployment chart
#        chart: charts/meep-dai
#        # user supplied value file located @ .meep/user/values (use below file name)
#        chart-user-values: meep-dai.yaml
#        # extra build flags
#        build-flags:
#          - -mod=vendor
#        # enable meepctl build
#        build: false #true
#        # enable meepctl dockerize
#        dockerize: false #true
#        # enable meepctl deploy/delete
#        deploy: false #true
#        # supports code coverage measurement when built in codecov mode
#        codecov: true
#        # supports onboarded device application instantiation
#        onboardedapp: true
#        # supports linting
#        lint: true
#        # location of API specifications
#        api:
#          - name: 'AdvantEDGE Device Application Interface REST API'
#            file: go-apps/meep-dai/api/swagger.yaml
#        # location of user supplied API specifications
#        user-api:
#          - name: 'Device Application Interface REST API'
#            file: config/api/dai-api.yaml
#        # resources available to docker container image
#        docker-data:
#          # location of entry script
#          'entrypoint.sh': go-apps/meep-dai/entrypoint.sh
      meep-vis:
        # location of source code
        src: go-apps/meep-vis
        # location of binary
        bin: bin/meep-vis
        # location of deployment chart
        chart: charts/meep-vis
        # user supplied value file located @ .meep/user/values (use below file name)
        chart-user-values: meep-vis.yaml
        # extra build flags
        build-flags:
          - -mod=vendor
        # enable meepctl build
        build: true
        # enable meepctl dockerize
        dockerize: true
        # enable meepctl deploy/delete
        deploy: true
        # supports code coverage measurement when built in codecov mode
        codecov: true
        # supports linting
        lint: true
        # location of API specifications
        api:
          - name: 'AdvantEDGE V2X Information REST API'
            file: go-apps/meep-vis/api/swagger.yaml
        # location of user supplied API specifications
        user-api:
          - name: 'V2X Information Service REST API'
            file: config/api/vis-api.yaml
        # resources available to docker container image
        docker-data:
          # location of entry script
          'entrypoint.sh': go-apps/meep-vis/entrypoint.sh
          # location of grid map file
          'grid_map.yaml': go-packages/meep-vis-traffic-mgr/grid_map.yaml
      meep-federation:
        # location of source code
        src: go-apps/meep-federation
        # location of binary
        bin: bin/meep-federation
        # location of deployment chart
        chart: charts/meep-federation
        # user supplied value file located @ .meep/user/values (use below file name)
        chart-user-values: meep-federation.yaml
        # extra build flags
        build-flags:
          - -mod=vendor
        # enable meepctl build
        build: true
        # enable meepctl dockerize
        dockerize: true
        # enable meepctl deploy/delete
        deploy: true
        # supports code coverage measurement when built in codecov mode
        codecov: true
        # supports linting
        lint: true
        # location of API specifications
        api:
          - name: 'AdvantEDGE Federation Service REST API'
            file: go-apps/meep-federation/api/swagger.yaml
        # location of user supplied API specifications
        user-api:
          - name: 'Federation Service REST API'
            file: config/api/fed-api.yaml
        # resources available to docker container image
        docker-data:
          # location of entry script
          'entrypoint.sh': go-apps/meep-federation/entrypoint.sh

  #------------------------------
  #  Dependencies
  #------------------------------
  dep:
    meep-cert-manager:
      # enable meepctl build -> deps are never built
      build: false
      # enable meepctl dockerize -> deps are never dockerized
      dockerize: false
      # enable meepctl deploy/delete
      deploy: true
      # location of deployment chart
      chart: charts/cert-manager
      # user supplied value file located @ .meep/user/values (use below file name)
      chart-user-values: meep-cert-manager.yaml
    meep-couchdb:
      # enable meepctl build -> deps are never built
      build: false
      # enable meepctl dockerize -> deps are never dockerized
      dockerize: false
      # enable meepctl deploy/delete
      deploy: true
      # location of deployment chart
      chart: charts/couchdb
      # user supplied value file located @ .meep/user/values (use below file name)
      chart-user-values: meep-couchdb.yaml
    meep-docker-registry:
      # enable meepctl build -> deps are never built
      build: false
      # enable meepctl dockerize -> deps are never dockerized
      dockerize: false
      # enable meepctl deploy/delete
      deploy: true
      # location of deployment chart
      chart: charts/docker-registry
      # user supplied value file located @ .meep/user/values (use below file name)
      chart-user-values: meep-docker-registry.yaml
    meep-grafana:
      # enable meepctl build -> deps are never built
      build: false
      # enable meepctl dockerize -> deps are never dockerized
      dockerize: false
      # enable meepctl deploy/delete
      deploy: true
      # location of deployment chart
      chart: charts/grafana
      # user supplied value file located @ .meep/user/values (use below file name)
      chart-user-values: meep-grafana.yaml
    meep-influxdb:
      # enable meepctl build -> deps are never built
      build: false
      # enable meepctl dockerize -> deps are never dockerized
      dockerize: false
      # enable meepctl deploy/delete
      deploy: true
      # location of deployment chart
      chart: charts/influxdb
      # user supplied value file located @ .meep/user/values (use below file name)
      chart-user-values: meep-influxdb.yaml
    meep-ingress:
      # enable meepctl build -> deps are never built
      build: false
      # enable meepctl dockerize -> deps are never dockerized
      dockerize: false
      # enable meepctl deploy/delete
      deploy: true
      # location of deployment chart
      chart: charts/ingress-nginx
      # user supplied value file located @ .meep/user/values (use below file name)
      chart-user-values: meep-ingress.yaml
    meep-kube-state-metrics:
      # enable meepctl build -> deps are never built
      build: false
      # enable meepctl dockerize -> deps are never dockerized
      dockerize: false
      # enable meepctl deploy/delete
      deploy: true
      # location of deployment chart
      chart: charts/kube-state-metrics
      # user supplied value file located @ .meep/user/values (use below file name)
      chart-user-values: meep-kube-state-metrics.yaml
    meep-minio:
      # enable meepctl build -> deps are never built
      build: false
      # enable meepctl dockerize -> deps are never dockerized
      dockerize: false
      # enable meepctl deploy/delete
      deploy: false
      # location of deployment chart
      chart: charts/minio
      # user supplied value file located @ .meep/user/values (use below file name)
      chart-user-values: meep-minio.yaml
    meep-open-map-tiles:
      # enable meepctl build -> deps are never built
      build: false
      # enable meepctl dockerize -> deps are never dockerized
      dockerize: false
      # enable meepctl deploy/delete
      deploy: true
      # location of deployment chart
      chart: charts/open-map-tiles
      # user supplied value file located @ .meep/user/values (use below file name)
      chart-user-values: meep-open-map-tiles.yaml
    meep-postgis:
      # enable meepctl build -> deps are never built
      build: false
      # enable meepctl dockerize -> deps are never dockerized
      dockerize: false
      # enable meepctl deploy/delete
      deploy: true
      # location of deployment chart
      chart: charts/postgis
      # user supplied value file located @ .meep/user/values (use below file name)
      chart-user-values: meep-postgis.yaml
    meep-prometheus:
      # enable meepctl build -> deps are never built
      build: false
      # enable meepctl dockerize -> deps are never dockerized
      dockerize: false
      # enable meepctl deploy/delete
      deploy: true
      # location of deployment chart
      chart: charts/kube-prometheus-stack
      # user supplied value file located @ .meep/user/values (use below file name)
      chart-user-values: meep-prometheus.yaml
    meep-redis:
      # enable meepctl build -> deps are never built
      build: false
      # enable meepctl dockerize -> deps are never dockerized
      dockerize: false
      # enable meepctl deploy/delete
      deploy: true
      # location of deployment chart
      chart: charts/redis
      # user supplied value file located @ .meep/user/values (use below file name)
      chart-user-values: meep-redis.yaml
    meep-thanos:
      # enable meepctl build -> deps are never built
      build: false
      # enable meepctl dockerize -> deps are never dockerized
      dockerize: false
      # enable meepctl deploy/delete
      deploy: false
      # location of deployment chart
      chart: charts/thanos
      # user supplied value file located @ .meep/user/values (use below file name)
      chart-user-values: meep-thanos.yaml
    meep-thanos-archive:
      # enable meepctl build -> deps are never built
      build: false
      # enable meepctl dockerize -> deps are never dockerized
      dockerize: false
      # enable meepctl deploy/delete
      deploy: false
      # location of deployment chart
      chart: charts/thanos
      # user supplied value file located @ .meep/user/values (use below file name)
      chart-user-values: meep-thanos-archive.yaml

  #------------------------------
  #  Packages
  #------------------------------
  packages:
    # Go Packages
    go-packages:
      meep-ams-client:
        # location of source code
        src: go-packages/meep-ams-client
        # supports linting
        lint: false
      meep-app-support-client:
        # location of source code
        src: go-packages/meep-app-support-client
        # supports linting
        lint: false
      meep-applications:
        # location of source code
        src: go-packages/meep-applications
        # supports linting
        lint: true
      meep-bwm-client:
        # location of source code
        src: go-packages/meep-bwm-client
        # supports linting
        lint: false
      meep-couch:
        # location of source code
        src: go-packages/meep-couch
        # supports linting
        lint: true
      meep-data-key-mgr:
        # location of source code
        src: go-packages/meep-data-key-mgr
        # supports linting
        lint: true
      meep-data-model:
        # location of source code
        src: go-packages/meep-data-model
        # supports linting
        lint: true
      meep-gc:
        # location of source code
        src: go-packages/meep-gc
        # supports linting
        lint: true
      meep-gis-asset-mgr:
        # location of source code
        src: go-packages/meep-gis-asset-mgr
        # supports linting
        lint: true
      meep-gis-cache:
        # location of source code
        src: go-packages/meep-gis-cache
        # supports linting
        lint: true
      meep-gis-engine-client:
        # location of source code
        src: go-packages/meep-gis-engine-client
        # supports linting
        lint: false
      meep-http-logger:
        # location of source code
        src: go-packages/meep-http-logger
        # supports linting
        lint: true
      meep-loc-serv-client:
        # location of source code
        src: go-packages/meep-loc-serv-client
        # supports linting
        lint: false
      meep-logger:
        # location of source code
        src: go-packages/meep-logger
        # supports linting
        lint: true
      meep-metrics:
        # location of source code
        src: go-packages/meep-metrics
        # supports linting
        lint: true
      meep-metrics-engine-notification-client:
        # location of source code
        src: go-packages/meep-metrics-engine-notification-client
        # supports linting
        lint: false
      meep-mg-app-client:
        # location of source code
        src: go-packages/meep-mg-app-client
        # supports linting
        lint: false
      meep-mg-manager-client:
        # location of source code
        src: go-packages/meep-mg-manager-client
        # supports linting
        lint: false
      meep-mg-manager-model:
        # location of source code
        src: go-packages/meep-mg-manager-model
        # supports linting
        lint: true
      meep-model:
        # location of source code
        src: go-packages/meep-model
        # supports linting
        lint: true
      meep-mts-client:
        # location of source code
        src: go-packages/meep-mts-client
        # supports linting
        lint: false
      meep-mq:
        # location of source code
        src: go-packages/meep-mq
        # supports linting
        lint: true
      meep-net-char-mgr:
        # location of source code
        src: go-packages/meep-net-char-mgr
        # supports linting
        lint: true
      meep-pdu-session-store:
        # location of source code
        src: go-packages/meep-pdu-session-store
        # supports linting
        lint: true
      meep-redis:
        # location of source code
        src: go-packages/meep-redis
        # supports linting
        lint: true
      meep-replay-manager:
        # location of source code
        src: go-packages/meep-replay-manager
        # supports linting
        lint: true
      meep-rnis-client:
        # location of source code
        src: go-packages/meep-rnis-client
        # supports linting
        lint: false
      meep-federation-client:
        # location of source code
        src: go-packages/meep-federation-client
        # supports linting
        lint: false
      meep-sandbox-ctrl-client:
        # location of source code
        src: go-packages/meep-sandbox-ctrl-client
        # supports linting
        lint: false
      meep-sandbox-store:
        # location of source code
        src: go-packages/meep-sandbox-store
        # supports linting
        lint: true
      meep-service-mgmt-client:
        # location of source code
        src: go-packages/meep-service-mgmt-client
        # supports linting
        lint: false
      meep-capif-mgmt-client:
        # location of source code
        src: go-packages/meep-capif-mgmt-client
        # supports linting
        lint: false
      meep-sessions:
        # location of source code
        src: go-packages/meep-sessions
        # supports linting
        lint: true
      meep-subscriptions:
        # location of source code
        src: go-packages/meep-subscriptions
        # supports linting
        lint: true
      meep-swagger-api-mgr:
        # location of source code
        src: go-packages/meep-swagger-api-mgr
        # supports linting
        lint: true
      meep-users:
        # location of source code
        src: go-packages/meep-users
        # supports linting
        lint: true
#      meep-dai-client:
#        # location of source code
#        src: go-packages/meep-dai-client
#        # supports linting
#        lint: false
      meep-wais-client:
        # location of source code
        src: go-packages/meep-wais-client
        # supports linting
        lint: false
      meep-vis-client:
        # location of source code
        src: go-packages/meep-vis-client
        # supports linting
        lint: false
      meep-federation-mgr:
        # location of source code
        src: go-packages/meep-federation-mgr
        # supports linting
        lint: false
      meep-vis-traffic-mgr:
        # location of source code
        src: go-packages/meep-vis-traffic-mgr
        # supports linting
        lint: false
      meep-watchdog:
        # location of source code
        src: go-packages/meep-watchdog
        # supports linting
        lint: true
      meep-websocket:
        # location of source code
        src: go-packages/meep-websocket
        # supports linting
        lint: true

    # Javascript Packages
    js-packages:
      meep-auth-svc-client:
        # location of source code
        src: js-packages/meep-auth-svc-client
        # supports linting
        lint: false
      meep-gis-engine-client:
        # location of source code
        src: js-packages/meep-gis-engine-client
        # supports linting
        lint: false
      meep-metrics-engine-client:
        # location of source code
        src: js-packages/meep-metrics-engine-client
        # supports linting
        lint: false
      meep-mon-engine-client:
        # location of source code
        src: js-packages/meep-mon-engine-client
        # supports linting
        lint: false
      meep-platform-ctrl-client:
        # location of source code
        src: js-packages/meep-platform-ctrl-client
        # supports linting
        lint: false
      meep-sandbox-ctrl-client:
        # location of source code
        src: js-packages/meep-sandbox-ctrl-client
        # supports linting
        lint: false
