User Tools

Site Tools


main:guides:guid_continuous_delivery_file_contents

This is an old revision of the document!


Guide for AppDB Virtual Appliance Continuous Delivery File Format


Continuous delivery file contains an object describing the current virtual appliance metadata.


Schema

The contents must be wrapped inside a appdb field.

Level 1 Level 2 Type Constraints Mandatory Defaults Accepted Values
version text maximum 20 chars, not used before TRUE
exspireson number TRUE 12 3, 6, 9, 12 (note: represents months)
notes text maximum 1000 chars TRUE
url text any valid http(s) url TRUE
arch text TRUE text value from archs api
os object TRUE
os family text TRUE text value from oses api
os name text TRUE text value from oses api
os version text maximum 60 chars TRUE
format text maximum 20 chars TRUE
hypervisor text TRUE text value from hypervisors api
cores object FALSE
cores minimum number < =recommended (if recommended is set) FALSE 1, 2, 4, 8, 16, 32
cores recommendednumber > =minimum (if minimum is set) FALSE 1, 2, 4, 8, 16, 32
ram object FALSE
ram minimum number < =recommended (if recommended is set) FALSE 64MB, 128MB, 256MB, 512MB, 1GB, 2GB, 3GB, 4GB, 5GB, 6GB, 8GB, 10GB, 12GB, 14GB, 16GB, 24GB, 32GB
ram recommendednumber > =minimum (if minimum is set) FALSE 64MB, 128MB, 256MB, 512MB, 1GB, 2GB, 3GB, 4GB, 5GB, 6GB, 8GB, 10GB, 12GB, 14GB, 16GB, 24GB, 32GB
network_traffic object[] FALSE
network_traffic direction text FALSE inbound, outbound
network_traffic protocols text FALSE tcp, udp, icmp, ipsec
network_traffic port_range text format ”<port_from>:<port_to>” FALSE
accelerator object FALSE
accelerator type text FALSE GPU
accelerator minimum number < =recommended (if type is set) FALSE 0 1, 2, 4, 8, 16, 32
accelerator recommendednumber > =minimum (if type is set) FALSE 0 1, 2, 4, 8, 16, 32

Examples

Bellow is given a dummy example of a VA version description file in xml, json and yaml format

XML File

<appdb>
  <version>1.0.0</version>
  <expireson>3</expireson>
  <notes>This version will expire in 3 months</notes>
  <url>https://mydomain.com/images/myvmimagefile.iso</url>
  <arch>x86_64</arch>
  <os>
    <family>Linux</family>
    <name>Fedora</name>
    <version>25</version>
  </os>
  <format>ISO</format>
  <hypervisor>Xen</hypervisor>
  <cores>
    <minimum>2</minimum>
    <recommended>4</recommended>
  </cores>
  <ram>
    <minimum>1GB</minimum>
    <recommended>4GB</recommended>
  </ram>
  <accelerator>
    <type>GPU</type>
    <minimum>1</minimum>
    <recommended>2</recommended>
  </accelerator>
  <network_traffic>
    <direction>inbound</direction>
    <protocols>TCP</protocols>
    <port_range>80:80</port_range>
  </network_traffic>
  <network_traffic>
    <direction>outbound</direction>
    <protocols>TCP</protocols>
    <port_range>80:80</port_range>
  </network_traffic>
</appdb>

JSON File

{
  "appdb": {
    "version": "1.0.0",
    "expireson": 3,
    "notes": "This version will expire in 3 months",
    "url": "https://mydomain.com/images/myvmimagefile.iso",
    "arch": "x86_64",
    "os": {
      "family": "Linux",
      "name": "Fedora",
      "version": "25"
    },
    "format": "ISO",
    "hypervisor": "Xen",
    "cores": {
      "minimum": 2,
      "recommended": 4
    },
    "ram": {
      "minimum": "1GB",
      "recommended": "4GB"
    },
    "accelerator": {
      "type": "GPU",
      "minimum": 1,
      "recommended": 2
    },
    "network_traffic": [
      {
        "direction": "inbound",
        "protocols": "TCP",
        "port_range": "80:80"
      },
      {
        "direction": "outbound",
        "protocols": "TCP",
        "port_range": "80:80"
      }
    ]
  }
}

YAML File

---
appdb:
  version: 1.0.0
  expireson: 3
  notes: This version will expire in 3 months
  url: https://mydomain.com/images/myvmimagefile.iso
  arch: x86_64
  os:
    family: Linux
    name: Fedora
    version: '25'
  format: ISO
  hypervisor: Xen
  cores:
    minimum: 2
    recommended: 4
  ram:
    minimum: 1GB
    recommended: 4GB
  accelerator:
    type: GPU
    minimum: 1
    recommended: 2
  network_traffic:
  - direction: inbound
    protocols: TCP
    port_range: 80:80
  - direction: outbound
    protocols: TCP
    port_range: 80:80
main/guides/guid_continuous_delivery_file_contents.1526024160.txt.gz · Last modified: 2018/05/11 07:36 by 7dec9e27b58a2d54a2a96a538813e805058cb792ed68e744a68d87708e39628c@egi.eu