Skip to content

The mini design of osimage version control(initial draft)

zet809 edited this page Apr 16, 2018 · 2 revisions

Target:

  1. enable the management of essential information of osimage under source control tool such as GIT
  2. provide an easy workflow to generate, manage and apply the osimage versions
  3. enable the sharing of osimages among clusters

Design:

the osimage entity under source control

1. the content of the osimage entity under source control:

• the osimage definition in YAML format, generated by “xcat-inventory export”

  osimage:
    rhels7.4-ppc64le-netboot-compute:
      basic_attributes:
        arch: ppc64le
        distribution: rhels7.4
        osdistro: rhels7.4-ppc64le
        osname: Linux
      diskpartitionspec: /install/osimages/rhels7.4-ppc64le-netboot-compute/scripts/partfile
      genimgoptions:
        exlist: /opt/xcat/share/xcat/netboot/rh/compute.rhels7.ppc64le.exlist
        permission: '755'
        postinstall: /opt/xcat/share/xcat/netboot/rh/compute.rhels7.ppc64le.postinstall
        rootimgdir: /install/netboot/rhels7.4/ppc64le/compute
      imagetype: linux
      package_selection:
        otherpkgdir: /install/post/otherpkgs/rhels7.4/ppc64le
        pkgdir: /install/rhels7.4/ppc64le
        pkglist: /opt/xcat/share/xcat/netboot/rh/compute.rhels7.ppc64le.pkglist
      provision_mode: netboot
      role: compute
      scripts:
        postbootscripts: scriptC,scriptD
        postscripts: scriptA,scriptB
  schema_version: '2.0'

• the files inferred in the osimage definition:

  • pkglist(if customized)
  • otherpkglist(if customized)
  • postscripts(if customized)
  • postbootscripts(if customized)
  • diskpartitionspec
  • filestosync
  • template(if customized)
  • exlist(if customized)
  • postinstall(if customized)
  • initrd and compressed rootimg(not by default)
  • the information about the repo under pkgdir and otherpkgdir directories

2. the directory hierarchy of osimage entity

the related path of the files under the osimage directory follows the relative path in the osimage definition under “/”, the directory hierarchy of the osimage “rhels7.4-ppc64le-netboot-compute” is:

  ./install/postscripts/scriptA
  ./install/postscripts/scriptB
  ./install/postscripts/scriptC
  ./install/postscripts/scriptD
  ./install/osimages/rhels7.4-ppc64le-netboot-compute/scripts/partfile
  ./definition.yaml

the workflow of osimage versions:

xcat-inventory export –t osimage –o rhels7.4-ppc64le-netboot-comput –f then a osimage entity will be generated under the specified path

the osimage directory can be managed under source control system.

The genimage and packimage can be performed according to the osimage definition under the osimage directory instead of osimage definition in DB by “genimage –f ”, “packimage –f ”, the generated initrd and compressed rootimg can be placed to the same place in current xCAT code logic “/install/netboot/….”

After osimage is confirmed work fine during provision, it can be applied to xCATdb by “xcat-inventory import –f”

The osimages can be shared by pull the osimage directory from the source control repo of share the tarball of the osimage directory. User should make sure the “pkgdir” and “otherpkgdir” holding the packages is compatible with the osimage definition.

The restructure of osimage entity in xCAT

Currently, the osimages share lots of files shipped by xCAT, such as pkglist, templates. This caused some difficulty while share or source control the osimages. An idea is to infer these default files by a “#INCLUDE#” clause in side the files of each osimage, so that each osimage will have all the files, 3-rd party rpms, initrd and rootimg(for diskless) in its director

News

History

  • Oct 22, 2010: xCAT 2.5 released.
  • Apr 30, 2010: xCAT 2.4 is released.
  • Oct 31, 2009: xCAT 2.3 released. xCAT's 10 year anniversary!
  • Apr 16, 2009: xCAT 2.2 released.
  • Oct 31, 2008: xCAT 2.1 released.
  • Sep 12, 2008: Support for xCAT 2 can now be purchased!
  • June 9, 2008: xCAT breaths life into (at the time) the fastest supercomputer on the planet
  • May 30, 2008: xCAT 2.0 for Linux officially released!
  • Oct 31, 2007: IBM open sources xCAT 2.0 to allow collaboration among all of the xCAT users.
  • Oct 31, 1999: xCAT 1.0 is born!
    xCAT started out as a project in IBM developed by Egan Ford. It was quickly adopted by customers and IBM manufacturing sites to rapidly deploy clusters.
Clone this wiki locally