Stacks are prebuilt root file systems that support specific operating systems. Linux-based systems need /usr and /bin directories at their root. More details can be found in the official Cloud Foundry documentation.
The cflinuxfs2 stack, derived from Ubuntu Trusty Tahr 14.04, which has been part of Cloud Foundry for the last years as the root file system for containers, will reach Canonical’s end of support for security patches on April 2019.
Cloud Foundry has already migrated to a supported replacement stack called cflinuxfs3, derived from Ubuntu Bionic Beaver 18.04. This article explains who is affected by this change and what actions you need to take.
In order to avoid application downtime, developers with applications hosted on MindSphere Cloud Foundry must re-push their applications to use the new cflinuxfs3 stack by April 30, 2019.
The following timeline covers important milestones and the steps you can take to use the new stack.
March 21, 2019: cflinuxfs3 stack is now available and the new default stack on MindSphere Cloud Foundry.
April 30, 2019: All applications should be using cflinuxfs3.
After April, 2019: cflinuxfs2 is removed from the list of available stacks. This includes also the buildpacks based on cflinuxfs2.
While we do not anticipate any issues with the new stack, we suggest deploying a separate instantiation of your application using the new stack to evaluate if there is any impact to your application. This can be done by pushing your existing application to a new name with a separate route. If you have questions about how to do this, please contact us via the MindSphere Support. Once you have verified that your application has not been impacted, redeploy the app using the new cflinuxfs3 stack. Note that once an application has been deployed using the cflinuxfs3 stack, future pushes will remember the stack selection.
Below are detailed instructions regarding how to perform the various steps to migrate your application.
There are two ways that you can determine which stack the application is currently using.
Make sure that you have a recent CF CLI version installed (click here for the latest version) and run the following command:
cf app <app-name>
The output will include a line starting with “stack:”, what follows is the name of the stack currently being used.
If you see "cflinuxfs2" listed, then your app is using the soon-to-be-deprecated cflinuxfs2 stack. If you see "cflinuxfs3" then you are using the new cflinuxfs3 filesystem and no further action is required.
Additionally, we have added a HowTo in our Developer Documentation with more details.
All our officially supported build packs support cflinuxfs3. Here is the list of officially supported build packs.
Simply run this command.
cf push <APP_NAME> -s cflinuxfs3
The following risks are outlined above and included in summary below.
The end of support for the Ubuntu Trust Thar stack is April 2019. Using this stack after that date could result in using a stack with known vulnerabilities.
The CF CLI supports the use of third party plugins, and the Stack Auditor plugin was written to help users with large numbers of applications migrate stacks. If you have a lot of applications that need migrated or want to query the stack being used by your existing applications, this tool may be of assistance.
Please note, third party plugins are not supported by MindSphere. Questions or problems with a plugin should be reported to the plugin's author.
During staging, an “application cache” directory is mounted, which is commonly used to save staging artifacts (e.g., C extensions to the Node or Ruby interpreters) so that subsequent stagings don’t have to regenerate those artifacts.
When restaging your app onto a different stack, you may need to bust the cache to avoid using binary artifacts that were compiled for a different stack.