User Tools

Site Tools


main:guides:guid_continuous_delivery_file_contents

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
main:guides:guid_continuous_delivery_file_contents [2018/05/10 15:05]
7dec9e27b58a2d54a2a96a538813e805058cb792ed68e744a68d87708e39628c@egi.eu created
main:guides:guid_continuous_delivery_file_contents [2020/09/23 10:12] (current)
7dec9e27b58a2d54a2a96a538813e805058cb792ed68e744a68d87708e39628c@egi.eu [Example 2: Extended configuration]
Line 1: Line 1:
 <fs 1.5em>**Guide for AppDB Virtual Appliance Continuous Delivery File Format**</fs> <fs 1.5em>**Guide for AppDB Virtual Appliance Continuous Delivery File Format**</fs>
 ---- ----
-<fs 1.2em>Continuous delivery file contains an object describing the current virtual appliance metadata. </fs>+<fs 1.2em>Continuous delivery file contains information describing the current virtual appliance metadata. </fs>
 ---- ----
- +<html><p style="border:1px solid #aeaeae; background-color: #fff7d5; padding: 5px 10px;line-height: 20px;"><span style="padding-right: 10px;font-size: 18px;"><b>!</b></span><span>Currently only <b>JSON</b>, <b>XML</b> or <b>YAML</b> formatted files are supported. See file structure examples in the <i>"Examples"</i> section bellow.</span></p></html> 
-====Schema====+=====Schema=====
 The contents must be wrapped inside a **appdb** field. The contents must be wrapped inside a **appdb** field.
-Level 1         Level 2   ^ Type         ^ Constraints                           ^ Mandatory  ^ Defaults  ^ Accepted Values ^ +Fields                      ^^ Type        ^ Constraints                           ^ Mandatory  ^ Defaults  ^ Accepted Values ^ 
-|version          |           |text          |maximum 20 chars, not used before      |TRUE        |          |                  | +|version          |           |text          |maximum 20 chars                       |yes         |          |                  | 
-|exspireson                 |number        |                                       |TRUE        |12        |3, 6, 9, 12 (**note**: represents months)| +|exspireson                 |number        |                                       |yes         |12        |3, 6, 9, 12 (**note**: value represent months)| 
-|notes            |           |text          |maximum 1000 chars                     |TRUE        |          |                  | +|notes            |           |text          |maximum 1000 chars                     |yes         |          |                  | 
-|url              |           |text          |any valid http(s) url                  |TRUE        |          |                  | +|url              |           |text          |any valid http(s) url                  |yes         |          |                  | 
-|arch                       |text          |                                       |TRUE        |          |text value from [[https://appdb.egi.eu/rest/1.0/applications/archs|archs api]]| +|sha512                     |text          |any valid sha-512 hash value           |no          |          |**note**: if this value is provided, the system will compare it with the sha-512 result of the integrity check process. If the values do not match the process will fail and the VA version won't be published. This is meant as a security enhancement to prevent publishing tampered VM images to production.                  | 
-|os                         |object        |                                       |TRUE        |          |                  | +|arch                       |text          |                                       |yes         |          |text value from [[https://appdb.egi.eu/rest/1.0/applications/archs|archs api]]| 
-|os               |family     |text          |                                       |TRUE        |          |text value from [[https://appdb.egi.eu/rest/1.0/applications/oses|oses api]]| +|os                         |object        |                                       |yes         |          |                  | 
-|os               |name       |text          |                                       |TRUE        |          |text value from [[https://appdb.egi.eu/rest/1.0/applications/oses|oses api]]| +|os               |family     |text          |                                       |yes         |          |text value from [[https://appdb.egi.eu/rest/1.0/applications/oses|oses api]]| 
-|os               |version    |text          |maximum 60 chars                       |TRUE        |          |                  | +|os               |name       |text          |                                       |yes         |          |text value from [[https://appdb.egi.eu/rest/1.0/applications/oses|oses api]]| 
-|format                     |text          |maximum 20 chars                       |TRUE        |          |                  | +|os               |version    |text          |maximum 60 chars                       |yes         |          |                  | 
-|hypervisor                 |text          |                                       |TRUE        |          |text value from [[https://appdb.egi.eu/rest/1.0/applications/hypervisors|hypervisors api]]| +|format                     |text          |maximum 20 chars                       |yes         |          |                  | 
-|cores            |           |object        |                                       |FALSE       |          |                  | +|hypervisor                 |text          |                                       |yes         |          |text value from [[https://appdb.egi.eu/rest/1.0/applications/hypervisors|hypervisors api]]| 
-|cores            |minimum    |number        |< =recommended (if recommended is set) |FALSE       |          |1, 2, 4, 8, 16, 32| +|cores            |           |object        |                                       |no          |          |                  | 
-|cores            |recommended|number        |> =minimum (if minimum is set)         |FALSE       |          |1, 2, 4, 8, 16, 32| +|cores            |minimum    |number        |< =recommended                         |no          |          |1, 2, 4, 8, 16, 32| 
-|ram              |           |object        |                                       |FALSE       |          |                  | +|cores            |recommended|number        |> =minimum                             |no          |          |1, 2, 4, 8, 16, 32| 
-|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              |           |object        |                                       |no          |          |                  | 
-|ram              |recommended|number        |> =minimum (if minimum is set)         |FALSE       |          |64MB, 128MB, 256MB, 512MB, 1GB, 2GB, 3GB, 4GB, 5GB, 6GB, 8GB, 10GB, 12GB, 14GB, 16GB, 24GB, 32GB| +|ram              |minimum    |number        |<=recommended                          |no          |          |64MB, 128MB, 256MB, 512MB, 1GB, 2GB, 3GB, 4GB, 5GB, 6GB, 8GB, 10GB, 12GB, 14GB, 16GB, 24GB, 32GB| 
-|network_traffic  |           |object[]      |                                       |FALSE       |          |                  | +|ram              |recommended|number        |> =minimum                             |no          |          |64MB, 128MB, 256MB, 512MB, 1GB, 2GB, 3GB, 4GB, 5GB, 6GB, 8GB, 10GB, 12GB, 14GB, 16GB, 24GB, 32GB| 
-|network_traffic  |direction  |text          |                                       |FALSE       |          |inbound, outbound | +|network_traffic  |           |object[]      |                                       |no          |          |                  | 
-|network_traffic  |protocols  |text          |                                       |FALSE       |          |tcp, udp, icmp, ipsec+|network_traffic  |direction  |text          |                                       |no          |          |inbound, outbound | 
-|network_traffic  |port_range |text          |format "<port_from>:<port_to>"         |FALSE       |          |                  +|network_traffic  |protocols  |text          |                                       |no          |          |tcp, udp, icmp| 
-|accelerator      |           |object        |                                       |FALSE       |          |                  | +|network_traffic  |port_range |text          |format "<port_from>:<port_to>"         |no          |          |eg "80:80", "3000:3010"
-|accelerator      |type       |text          |                                       |FALSE       |          |GPU               | +|accelerator      |           |object        |                                       |no          |          |                  | 
-|accelerator      |minimum    |number        |< =recommended (if type is set)        |FALSE       |0         |1, 2, 4, 8, 16, 32| +|accelerator      |type       |text          |                                       |no          |          |GPU               | 
-|accelerator      |recommended|number        |> =minimum (if type is set)            |FALSE       |0         |1, 2, 4, 8, 16, 32|+|accelerator      |minimum    |number        |< =recommended                         |no          |0         |1, 2, 4, 8, 16, 32| 
 +|accelerator      |recommended|number        |> =minimum                             |no          |0         |1, 2, 4, 8, 16, 32| 
 +=====Examples===== 
 +Βelow are some examples with pseudo values in various formats.
  
----- +====Example 1: Basic configuration==== 
-====Examples==== +The examples bellow contain all of the mandatory fields of a description file 
-Bellow is given a dummy example of a VA version description file in xmljson and yaml format+===XML File=== 
 +<code xml
 +<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> 
 +</appdb> 
 +</code> 
 + 
 + 
 +===JSON File=== 
 +<code json
 +
 +  "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" 
 +  } 
 +
 +</code> 
 +===YAML File=== 
 +<code yaml
 +--- 
 +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 
 +</code>
  
 +====Example 2: Extended configuration====
 +The examples bellow contain all of the mandatory and all of the optional fields of a descriptions file, such as number of cores, size of ram etc
 ===XML File=== ===XML File===
 <code xml> <code xml>
Line 130: Line 188:
   expireson: 3   expireson: 3
   notes: This version will expire in 3 months   notes: This version will expire in 3 months
-  url: https://www.iasa.gr/images/vmimagefile.iso+  url: https://mydomain.com/images/myvmimagefile.iso 
 +  sha512: f524df5c15c80650143f1b9431f3bdf73c6ccfef0c34294253e651c102053a253efc53804a733052afb26061b792aaca0ce70a62ade84268f285533b5b583bba
   arch: x86_64   arch: x86_64
   os:   os:
main/guides/guid_continuous_delivery_file_contents.1525964741.txt.gz · Last modified: 2018/05/10 15:05 by 7dec9e27b58a2d54a2a96a538813e805058cb792ed68e744a68d87708e39628c@egi.eu