Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

blueprints
  • kvm/libvirt
  • K8s:
  • host:
  • VMs:
  • :kvm/libvirt
    #Task nameDetailsCreation
    date
    Completion
    date
    AssigneeStatus
    -Voting for BPRequest and follow up voting process.

     

     

    (tick)


    Project Approved:


    -Request for PTLRequest to initiate the PTL.

     

     

    (tick)


    MalikAsif got  elected as PTL:


    -
    Setup PM

    Setup the Physical Machine:

    • Ubuntu 20 (ubuntu-20.04.1-desktop-amd64) (tick)

     

    (tick)

    -Create 3 VMs
    1. Setup an hypervisor
      1. verify virtualization enabled (tick)
      2. install kvm/libvirtd (tick)
    2. Create a network for VMs (tick)
    3. Create 4 VMs (at start 3 VMs :created 2 as a start are enough) (tick)
      1. 192.168.122.192 11 - Master (tick)
      2. 192.168.122.101 - Vehicles/RSU(s)/BS(s) 
      3. 192.168.122.111 - Edge (tick)create complete cluster for complex scenarios-1 (tick)
      4. 192.168.122.211 - Edge-2
    4. Test VMs connectivity (tick)

     

     

    MalikAsif

    (tick)

    -Setup K8s cluster

    Setup a Master and two worker nodes

    K8s version (???

    (links: link-1, link-2, etc)

    1. disable swap (persistently)
    2. setup the Multus as a CNI (using this link-1)
    3. note down the available IP-ranges for container applications:
      1. range: w.x.y.z/a

     

     

    MalikAsif(warning)
    -Setup JenkinsSetup Jenkins on PM.

     

    (warning)
    -Connect LF ServerIntegrate the Linux Foundation Servers.

     

    MalikAsif(warning)
    -Push CICD logsConfirmation of the CICD logs

     

     

    (warning)
    -Explore socket programming protocols in pythonExplore the containers inter/cross domain protocol options to enable communication among each other.

     

     

    (warning)
    -Explore/Research K8s network options

    Explore the networking plugin options that can be used in our proposed scenarios of vehicles:

     

     

    (warning)
    -Explore routing in DSRC-based communication

    DSRC range:

    Routing considerations with DSRC/LTE both:

    • SDN-based routing application
    • Multi-hop approach (using tables)

     

     

    MalikAsif(warning)
    -Documentation (pages & subsections)
    1. Architecture - figures/explanation (tick)
    2. Components - figures/explanation
    3. Scenarios - figures/explanation
      1. simple diagram to understand the scenarios (tick)
      2. technical aspect of the proposed scenarios
    4. V2X Communication - figure/explanation (tick)
    5. Implementation - plan/approach
      1. container vehicles
      2. maps (Jeju/Udo islands) (tick)
      3. proximity services
      4. broadcast content
      5. epc on the edge sites
      6. location prediction model
      7. sdn
    6. Relevant Blueprints (tick)
    7. Contributors (tick)
    8. References (tick)
    9. Ask Questions - table of questions (tick)
    10. Tasks (tick)

     

     

    (warning)
    -

    Vehicle-info container

    (start/boot-priority = 1)

    1. Design the database
    2. Develop the scripts to create the database
    3. Containerize it into the docker hub (tick)
    4. Setup a (dbeaver) plugin to access container database
      1. Windows (tick)
      2. Ubuntu
    5. Expose the port (or make it accessible on some portal)

     

     

    MalikAsif(warning)
    -

    Map container

    (start/boot-priority = 2)

    1. Downloaded .osm/.mbtile formatted files for Jeju/Udo Island (tick)
    2. GIS-based maps
      1. set locally (tick)
      2. containerize it (Folium-based map server) (tick)
      3. find .shp for Jeju/any city/area
      4. use wgs84/epsg4326 format (geojson)
      5. traffic data for vehicles (Jeju/any)
      6. pandas, geopandas, folium
      7. graphical analysis of traffic (map/graphs)
      8. interactive layers (i.e. ___)
    3. Setup the OpenStreetMap (PostgreSQL). Steps to setup locally.
      1. on local system
      2. containerize it
      3. make it accessible to the cars
    4. Analyze/correct the .osm maps for Jeju/Udo Islands
    5. Search ways for creating roads, intersection etc
    6. Implement roads. intersection etc
    7. Explore implementation options to dynamically move container vehicles
      1. Consider the RSUs/BSs in this architecture

     

     

    MalikAsif(warning)
    -

    Vehicle container(s)

    (start/boot-priority = 3)

    Specifications:

    1. Vehicle Class (tick)
    2. Attributes (tick)
      1. name
      2. curr_location [long., lat.]
      3. junction_location [long., lat.]
      4. curr_velocity [m/s]
      5. direction [N/E/S/W/NE/ES/SW/WN]
      6. possible_moves [N/E/S/W/ES/SW/WN]
      7. net_d2d
      8. net_d2b
      9. net_d2p
      10. range_of_net_d2d
      11. etc.
    3. Methods:
      • turn

        InputsOutputsActions/EffectsDescription
        • vehicle id
        • direction
        next location

        decrease velocity decelerate by some factor while turning

        update the location#



      • accelerate

        InputsOutputsActions/EffectsDescription
        • vehicle id
        • direction
        • acceleration factor
        new location

        increase velocity

        update the location#



      • broadcast

        InputsOutputsDescription
        • vehicle id
        • bits
        none

        The udp client will be responsible to broadcast the traffic to the gateway.

        The proximity/other service at the edge node is responsible to decide on
        which edge nodes does the traffic need to be broadcasted


      • park/stop

        InputsOutputsActions/EffectsDescription


        decrease velocity to zero

        update the location#



      • update the location

        InputsOutputsActions/EffectsDescription





      • sync. location to proximity server

        InputsOutputsActions/EffectsDescription
        • vehicle id
        • location
        response of success/failure

        vehicle location must be updated on the proximity server

        updates the current location to server after every 2 seconds.



      • etc.








    Method details:

    1. Turn (to describe)
    2. Accelerate (to describe)
    3. Broadcast (to describe)
    4. Park/Stop (to describe)
    5. Update the location
    6. Sync. the location to proximity server
    7. etc.

     

     

    (warning)
    -Map data processing/analysis
    1. Junctions (tick)
    2. Locations (tick)
    3. Road track points
    4. etc.

     

     

    MalikAsif(warning)
    -Proximity Service design with specifications
    1. Specify the criteria of updating locations of container vehicles
    2. Describe the the selected standard approach for implementing proximity service

     

     

    (warning)
    -Information: CVB vehicle implementationAsk CVB team, what analogy do they use to create vehicles/devices.

     

     

    MalikAsif(warning)
    -SDN Controller
    1. OpenShift
    2. µONOS
    3. others

     

     

    MalikAsif(warning)
    -Northbound Routing Application (container)
    1. Explore the OpenShift-SDN CNI
    2. Routing logic as a Northbound application
    3. Apply routing to: 
      1. vehicle container network interfaces
      2. RSU container network interfaces
    4. Test the validity of routing

     

     

    MalikAsif(warning)
    -SDN-to-SDN communication
    1. East-west communication
    2. Mechanism to share information

     

     

    MalikAsif(warning)
    -Location Prediction
    1. Finding datasets
      1. real-time
      2. simulated classify this data-set as real/simulated:https://atnog.av.it.pt/~mantunes/road/index.html link-1, link-2, link-3
    2. Processing/Analyzing datasets
    3. Model details
      1. architecture?
      2. models:
        1. model A:
          1. input(s):
          2. output(s):
        2. model B:
          1. input(s):
          2. output(s):
        3. model C:
          1. input(s):
          2. output(s):
        4. model D:
          1. input(s):
          2. output(s):
        5. model E:
          1. input(s):
          2. output(s):
    4. Training
      1. training/testing data split
      2. training details
    5. Testing
      1. testing time
      2. testing analysis
    6. Validation/Verification
      1. define the validation metrics
      2. define the verification mechanism
    7. Exposing model REST API(s)
      1. define the endpoints
        1. define/document the JSON formats required
    8. Integration (basic)
    9. Integration (testing functionality)

     

     

    (warning)
    -Configurations
    1. Docker-compose
    2. Helm charts

     

     

    MalikAsif(warning)
    -Scripts
    1. To setup K8s cluster - using Ansible scriptsInstallation of basic packages:
      1. script to install kvm/libvirt (tick)
      2. script to install ansible (tick)
      3. script to install vagrant
    2. Provision the infrastructure using:
      1. vagrant (primary option)
      2. ansible (secondary option)
    3. To setup K8s cluster - using Ansible scripts:
      1. write a script that downloadsto download/starts start 3 VMs
      2. write a script that installs to install master/worker nodes node remotely
      3. write a script to setup the CNI plugin (if possible, configured with the chosen SDN controller)
    4. To bring up the applications - using Helm-charts/Docker-compose:
      1. ml model
      2. sdn controller
      3. container mapserver
      4. container proximity- service
      5. container vehicle
      6. routing ml application
    5. To deploy the SDN Northbound application - using ...

     

     

    MalikAsif(warning)
    -





    -Versions using for the blueprint
    1. Ubuntu:
      1. Host: Ubuntu 20.04 LTS: Focal Fossa
      2. VMs: Ubuntu 20.04 LTS: Focal Fossa
    1. Hypervisors:
      1. Qemu-kvm/libvirt: 4.2.1/6.0.0
      2. Virtualbox: 6.1.16
        1. platform packages: 6.1.16 (link)
        2. Oracle VM virtualbox extension pack: 6.1.16 (link)
    2. Infrastructure provisioners:
      1. vagrant 2.2.13
        1. follow this link to solve secure boot problem using certificates
    3. K8s: v1.18.12 (binaries link)
      1. kubectl:
      2. kubelet:
      3. kubeadm:
    4. Multus-CNI: v3.6 (GitHub tag)
    5. Docker: 19.03.12
      1. sudo apt-get install docker-ce=5:19.03.12~3-0~ubuntu-focal

    6. Ansible
    1. : 2.9.6
    2. ONOS:
    3. Python: 3.8.x (x=1-to-5)
      1. Dockerfile: python-3.8.1
      2. Ubuntu host: python-3.8.5
    4. etc:

     

     

    (lightbulb)
    -Setup KubeEdge-based K8s clusterKubeEdge-based cluster with the above specified configuration

     

     

    MalikAsif(lightbulb)
    -





    -Future considerations/directions:
    • MEC-based runtime resource orchestration/provisioning
    • Data analytics
    • Autonomousity
    • Much more...



    (lightbulb)

    ...