#
# Copyright (c) 2018 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
#

---
description: |
  This file contains version details that are used by various
  repositories for setting up the correct environment to run
  tests and package components.

format: |
  Each entry in this file MUST conform to the following format:

  <group>:
   description: "<brief-description>"
   notes: "<notes>"

   <project>:
     description: "<brief-description>"
     notes: "<notes>"
     url: "<project-url>"
     issue: "<bug-url>"
     commit: "<commit>"
     version: "<version>"
     release: "<version>"
     branch: "<git-branch>"
     meta:
       <key-1>: "<value-1>"
       <key-n>: "<value-n>"

  Notes:

  - All sections (except "meta") MUST include a description where
    applicable. This is expected to be a brief summary.

  - A section MAY specify a "notes" section which may be multi-line.
    It is expected to be expand on the information specified in
    "description".

  - All sections (except "meta") MUST include a URL where applicable.

  - A section MAY specify a bug URL using the "issue" field.

  - A section MAY define a "meta" section to store additional
    information about a project or group.

  - Each entry MUST specify ATLEAST one of "commit", "version", "release"
    and "branch".

  - WARNING: Gotcha alert! Remember to double-quote all strings
    (except multi-line strings)! This avoids the possibility of a
    version containing a period being treated as a floating point
    number (and truncated!)

assets:
  description: "Additional required system elements"

  hypervisor:
    description: "Component used to create virtual machines"

    nemu:
      description: "Modern Hypervisor for the Cloud"
      url: "https://github.com/intel/nemu"
      version: "release-2018-11-29"

    nemu-ovmf:
      description: "OVMF firmware used by nemu hypervisor"
      url: "https://github.com/intel/ovmf-virt"
      version: "0.6"

    qemu-lite:
      description: "lightweight VMM that uses KVM"
      url: "https://github.com/kata-containers/qemu"
      branch: "qemu-lite-2.11.0"
      commit: "f88622805677163b04498dcba35ceca0183b1318"

    qemu:
      description: "VMM that uses KVM"
      url: "https://github.com/qemu/qemu"
      version: "stable-2.11"
      architecture:
        aarch64:
          branch: "master"
          tag: "v3.1.0-rc2"
          commit: "47c1cc30e440860aa695358f7c2dd0b9d7b53d16"
  image:
    description: |
      Root filesystem disk image used to boot the guest virtual
      machine.
    url: "https://github.com/kata-containers/osbuilder"
    architecture:
      aarch64:
        name: "fedora"
        version: "latest"
      ppc64le:
        name: "centos"
        version: "latest"
      s390x:
        name: "ubuntu"
        version: "latest"
      x86_64:
        name: &default-image-name "clearlinux"
        version: "20640"
    meta:
      image-type: *default-image-name

  initrd:
    description: |
      Root filesystem initrd used to boot the guest virtual
      machine.
    url: "https://github.com/kata-containers/osbuilder"
    architecture:
      aarch64:
        name: &default-initrd-name "alpine"
        version: &default-initrd-version "3.7"
      ppc64le:
        name: *default-initrd-name
        version: *default-initrd-version
      s390x:
        name: *default-initrd-name
        version: *default-initrd-version
      x86_64:
        name: *default-initrd-name
        version: *default-initrd-version

  kernel:
    description: "Linux kernel optimised for virtual machines"
    url: "https://cdn.kernel.org/pub/linux/kernel/v4.x/"
    version: "v4.14.67"

components:
  description: "Core system functionality"

  agent:
    description: |
      Container management service running in the guest virtual machines
      root context.
    url: "https://github.com/kata-containers/agent"
    commit: "6f6e9ecd8aded0783c31968b304a9d6589114363"

externals:
  description: "Third-party projects used by the system"

  cni-plugins:
    description: "CNI network plugins"
    url: "https://github.com/containernetworking/plugins"
    commit: "7f98c94613021d8b57acfa1a2f0c8d0f6fd7ae5a"

  crio:
    description: |
      OCI-based Kubernetes Container Runtime Interface implementation
    url: "https://github.com/kubernetes-incubator/cri-o"
    version: "fa540c8e806d28c2cbcd157bdf8acf2b20990ab6"
    meta:
      openshift: "6273bea4c9ed788aeb3d051ebf2d030060c05b6c"

  cri-containerd:
    description: |
      Containerd Plugin for Kubernetes Container Runtime Interface.

      Note that the current version is required for golang 1.10.2
      (see https://github.com/containerd/cri/pull/941).
    url: "https://github.com/containerd/cri"
    version: "54b1c00b3b307b0fadd10c02d9467a6545c2c4d5"
    meta:
      containerd-version: "1.2.0"

  docker:
    description: "Moby project container manager"
    notes: "Docker Swarm requires an older version of Docker."
    url: "https://github.com/moby/moby"
    version: "v18.06-ce"
    meta:
      swarm-version: "1.12.1"

  gometalinter:
    description: "utility to run various golang linters"
    url: "https://github.com/alecthomas/gometalinter"
    version: "v2.0.5"

  kubernetes:
    description: "Kubernetes project container manager"
    url: "https://github.com/kubernetes/kubernetes"
    version: "1.12.2-00"

  openshift:
    description: |
      Distribution of Kubernetes optimized for continuous application
      development and multi-tenant deployment.
    url: "https://github.com/openshift/origin"
    version: "v3.10.0"
    commit: "dd10d17"

  runc:
    description: "OCI CLI reference runtime implementation"
    url: "https://github.com/opencontainers/runc"
    version: "v1.0.0-rc5"

languages:
  description: |
    Details of programming languages requried to build system
    components.

  golang:
    description: "Google's 'go' language"
    notes: "'version' is the default minimum version used by this project."
    issue: "https://github.com/golang/go/issues/20676"
    version: "1.10.4"
    meta:
      description: |
        'newest-version' is the latest version known to work when
        building Kata
      newest-version: "1.11.1"

specs:
  description: "Details of important specifications"

  oci:
    description: "Open Containers Initiative runtime specification"
    url: "https://github.com/opencontainers/runtime-spec/releases"
    version: "v1.0.0-rc5"
