Skip to content
This repository has been archived by the owner on Mar 16, 2022. It is now read-only.

cloudfoundry/cflinuxfs2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cloud Foundry cflinuxfs2

This repo contains scripts for creating warden root filesystems.

  • cflinuxfs2 derived from Ubuntu 14.04 (Trusty Tahr)

Dependencies

  • GNU make
  • Docker

Adding a new package to the rootfs

cflinuxfs2/build/install-packages.sh has a list of packages passed to apt-get install as well.

Creating a rootfs tarball

To create a rootfs for the cflinuxfs2 stack:

make

This will create the cflinuxfs2.tar.gz file, which is the artifact used as the rootfs in Cloud Foundry deployments.

Creating a BOSH release from the rootfs tarball

To start, clone the repository containing the cflinuxfs2-rootfs BOSH release:

git clone [email protected]:cloudfoundry/cflinuxfs2-release.git`
cd cflinuxfs2-release`

Replace the old cflinuxfs2 tarball with the new tarball created above:

rm -f config/blobs.yml
mkdir -p src/rootfs
cp <path-to-new-tarball>/cflinuxfs2.tar.gz src/rootfs/cflinuxfs2-new.tar.gz

(The -new in the destination filename is key to match the regex in the spec file for the cflinuxfs2 package.)

Create a dev release and upload it to your BOSH deployment:

bosh create-release --force --tarball=cflinuxfs2-new.zip --name cflinuxfs2
bosh upload release <generated-dev-release-tar-file>

If your Diego deployment manifest has version: latest indicated for the cflinuxfs2 release, then redeploying your Diego will enable this new rootfs to be used in your app containers.

Testing the rootfs

To run the local tests, just run rspec. If the top level of this repo contains a file named cflinuxfs2.tar.gz, the tests will be run against this file. Otherwise, make will be run to create a new rootfs.

To test the rootfs BOSH release, see the instructions here

Release pipeline

The generation and release of a new rootfs happens on the cflinuxfs2 CI pipeline.

  • A new stack is generated with make.

  • A dev BOSH release of that new stack is generated and deployed to the BOSH Lite at cflinuxfs2.buildpacks.ci.cf-app.com and the rootfs smoke tests run.

  • CF and Diego are deployed to that BOSH Lite. The cf-acceptance-tests are then run against the deployment.

  • Once all tests pass and the product manager ships the release, the rootfs tarball can be found as a Github Release, Docker Image, and as a BOSH release. A commit is also made to update the blobs on cf-release develop.