Re: cflinuxfs2 --> cflinuxfs3 transition

Connor Braa

Hi Bernd!

If you need to use SQL to figure out which apps still use the old stack, you'll want to join apps across the buildpack_lifecycle_data table's app_guid column. but there are lots of possible complications in terms of treating that as a source of truth. 

For one, entries in that table where `stack` is nil indicate that the default stack should be used, but when upgrading your stack, you may have changed the default from cflinuxfs2 to 3, and in doing so made it very difficult to tell which stack is actually running for a given app (ie whether you'll need to restage). The ruby code handling that table is also pretty nontrivial, so there _might_ be some edge cases around droplet copying that mean the result of a straightforward join won't get you exactly what you need.

Generally, the SQL approach is going to be a bit error prone, but if your deployment is very big, I understand why it might be a necessary first step. Stanislav's approach using cfdot is going to get you much closer to the absolute truth of what is running cflinuxfs2, and a good audit will probably use both at different stages. 


On Thu, Jan 31, 2019 at 5:04 AM Krannich, Bernd <bernd.krannich@...> wrote:

Hi Josh, all,


I assume many people are currently in the process of moving off of cflinuxfs2 to cflinuxfs3.


I was trying to figure out a good (and quick) way to see which apps haven’t done the move yet. Looking into the Cloud Controller tables, I was hoping that the apps table would contain a reference to the stack or at least the buildpack table (which has a reference to the stack), but it seems like this is not how things work.


What are the additional Cloud Controller tables to consider when formulating a join to answer the question: Which apps are still on cflinuxfs2?


Thanks in advance,



From: <cf-dev@...> on behalf of Josh Collins <jcollins@...>
Reply-To: "cf-dev@..." <cf-dev@...>
Date: Saturday, 3. November 2018 at 04:40
To: "cf-dev@..." <cf-dev@...>
Subject: [cf-dev] cflinuxfs2 --> cflinuxfs3 transition


Hi CF Community,


As of cf-deployment v6.0 (Nov 5, 2018) cf-d will deploy with support for both cflinuxfs2 and cflinuxfs3 stacks (with cflinuxfs2 continuing to be the default stack).


In cf-deployment v7.0, to be published early in December, cflinuxfs3 will become the default stack (cflinuxfs2 will continue to be supported, but will no longer be default).


Once cflinuxfs3 is the default, new apps that are pushed will be staged with cflinuxfs3 unless new apps that are pushed set the stack explicitly to cflinuxfs2. The stack property is “sticky,” so all existing apps will remain associated with cflinuxfs2 unless they are manually migrated to cflinuxfs3 (or deleted and re-created).


Both stacks will be supported for several months to allow app developers and operators time to migrate all apps from cflinuxfs2 to cflinuxfs3.


Canonical will cease support for Ubuntu 14.04 LTS (Trusty) in April 2019. Therefore, at the end of March 2019, cflinuxfs2 will be removed from cf-deployment and all apps that haven’t been migrated will crash when the foundation is upgraded.



Josh Collins & Stephen Levine


Join to automatically receive all group messages.