Cancel
Showing results for 
Search instead for 
Did you mean: 

Migrating applications from the cflinuxfs2 stack to the cflinuxfs3 (i.e. (Bionic Beaver) stack

Siemens Genius Siemens Genius
Siemens Genius

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.

Who is affected?

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.

  • New applications will use the new cflinuxfs3 stack by default. 
  • Developers with existing applications can choose to re-push using the new cflinuxfs3 stack. We do not recommend using the deprecated stack anymore.

 

April 30, 2019: All applications should be using cflinuxfs3.

  • It cannot be guaranteed that existing applications still using the cflinuxfs2 stack are working any longer after we remove the old stack

 

After April, 2019: cflinuxfs2 is removed from the list of available stacks. This includes also the buildpacks based on cflinuxfs2.

 

Migration Information

Steps

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.

 

Step #1 - Determine your current stack

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.

 

Step #2 - Determine if your build pack supports the new stack

 All our officially supported build packs support cflinuxfs3.  Here is the list of officially supported build packs.

 

Step #3 - Deploy an instance of your application using the new stack

Simply run this command.

cf push <APP_NAME> -s cflinuxfs3 

Risks

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.

  • If your application utilizes or contains any binaries that have been precompiled, you may need to recompile those binaries. The same rationale that applies to build pack provided binaries, applies to application provided binaries as well.
  • If you do not test your application with the new cflinuxfs3 stack prior to April 30, 2019, you may experience issues the next time you push to MindSphere Cloud Foundry.  This is because after new the default stack will now be the cflinuxfs3 stack and your app will automatically start using it.  If this happens, you can manually switch back to the cflinuxfs2 stack with the `-s` argument to `cf push`. This is not possible anymore, once we have removed the support for cflinuxfs2.

Additional Information

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.

1 REPLY 1
Highlighted

Re: Migrating applications from the cflinuxfs2 stack to the cflinuxfs3 (i.e. (Bionic Beaver) stack

Legend
Legend
I'd make this a sticky post :-)