This repo contains scripts for creating warden root filesystems.
- cflinuxfs2 derived from Ubuntu 14.04 (Trusty Tahr)
- GNU make
- Docker
cflinuxfs2/build/install-packages.sh
has a list of packages passed to apt-get install
as well.
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.
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.
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
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.