cloudfoundry / Cflinuxfs2
Programming Languages
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.