Date: 2013-11-15

Baserock 12 is released

The Baserock team and Codethink Limited are proud to announce version 12 of the Baserock system.

Baserock is a toolset and development methodology for developing embedded and appliance Linux systems.

What's new in this version?

Cmdtest

We updated the version of the cmdtest component used in Baserock. This brings in a newer version of the yarn testing tool which has allowed us to improve the Morph test suites to be cleaner and thus better.

SSH configuration extension

The ssh configuration extension's functionality has been replaced by (non-identical, but equivalent) functionality in the install-files configuration extension. Following the principle of simpler-is-better we have therefore removed the ssh configuration extension and we encourage users to migrate to install-files.

As an example of how to use this extension, add the environment variable INSTALL_FILES to the deploy stanza for a system in the cluster morphology:

name: foo
kind: cluster
systems:
- morph: base-system-x86_64-generic
  repo: baserock:baserock/morphs
  ref: master
  deploy:
    my-raw-disk-image:
      type: rawdisk
      location: /src/tmp/testdev.img
      DISK_SIZE: 4G
      INSTALL_FILES: foo-dir/manifest

Then create the 'foo-dir' directory:

foo-dir/
   root/
      .ssh/
         id_rsa
         id_rsa.pub

Where id_rsa and id_rsa.pub are the ssh key pair the root user on the deployed system should have. Then create foo-dir/manifest:

0040755 0 0 /root
0040700 0 0 /root/.ssh
0100600 0 0 /root/.ssh/id_rsa
0100600 0 0 /root/.ssh/id_rsa.pub

After this, install-files will put the files in the right places on the deployed system, with the right permissions.

Refactoring morph subcommands

Work began on refactoring the 'build' command, but the new code will not be available in Baserock until the next cycle.

Minor changes to morph

  • A number of bugs have been fixed during the Baserock 12 cycle, including:

    • prevent 'edit' subcommand being used without a system as argument.
    • prevent building uncommmitted systems.
    • deploy a non-cluster morphology now displays an error message.
    • prevent cross-building.
    • morph can now build when checking out a tag.
  • We have improved the morph scenario test suite by:

    • adding new scenarios, including regression scenarios for fixed bugs, and replacing some of the old cmdtest based suite with scenarios.
    • reworking some of the statement language to be more consistent,
    • making the voice of the scenarios slightly more active.

Changes to morphologies

Reducing redundancy in build dependencies

Since at this time, build-depending on a stratum implicitly build-depends on the build-dependencies of that stratum, we have simplified the build-depends sections of the standard stratum morphologies. This should make it easier to understand the relationship between strata involved in building systems.

Other changes

  • pyfilesystem, kexec-tools have been added to the 'tools' stratum.
  • 'six' has been moved from 'glanceclient' to the 'tools' stratum.
  • boto has been added to 'tools' to finish the integration of cloud-init in Baserock. There is a short guide about how to deploy to OpenStack on the developing with Baserock wiki page.

New systems and strata

We have added a ceph services system which provides the daemons necessary for the Ceph object, block and file storage services. These daemons are contained within a ceph-service stratum which can be included into your systems if you want them to be able to serve Ceph filesystems.

This new system is an example and is not directly supported at this time. However please do try it out if Ceph is of interest to you, and let us know how you get on.

How do I get started?

You can find a quick start guide on the Baserock wiki and also a short guide on developing with Baserock which follows on from the quick start guide and shows you how to get to the point of proving you can build Baserock within Baserock.

From that point on, your imagination is the limit. You can follow our development in the Git repositories we publish.

How do I get in contact?

The Baserock project has an IRC channel and mailing list for developers to gather and discuss anything associated with Baserock. It is strongly recommended that you use the IRC and lists to contact the team for anything associated with the public development of Baserock. We also have a mailing list for announcements which will be notified of any new releases or big developments in Baserock.

If you manage to find a bug in Baserock, we'd like to hear from you. You can find our bug reporting guidelines on the Baserock wiki and we will do our best to help.

We hope you enjoy experimenting with Baserock and look forward to hearing about any cool things you do with our work.