Version 2 Cartridge Update–Action may be Required - Archived

Hello everyone, here’s some more important information regarding our v1 to v2 cartridge migration.

Quickstarts or Instant Applications

Applications using a QuickStart or created your app using an instant app such as Drupal, WordPress, Rails, Spring, Django, Reveal.js, CakePHP, or Dancer should continue to function but users will want to make a few changes to have all the latest features and continue to function in the long term. While those applications will continue to run, they may require updates to be able to scale up or be pushed to.

Users should be regularly pulling from the upstream quickstart on git hub and pushing that code to their application. We’d recommend doing this especially now that so many changes have gone through. In the case of capedwarf a rebase is required in order to keep working but users should rebase or update any other quickstarts they are using.

CapeDwarf

CapeDwarf, however, is one instant app that will require an update to function. Whether you created your instant app through https://openshift.redhat.com/app/console/application_types or by following the manual steps for a quickstart at https://github.com/openshift, your app can be updated by the following steps:

Using the example of capedwarf:

  1. From within the capedwarf local repo
  2. git remote (If you already have the remote of upstream and it’s pointing to the git://github.com/openshift/* or https://github.com/openshift/* you can skip to step 4)
  3. git remote add upstream git@github.com:openshift/capedwarf
  4. git fetch upstream
  5. git rebase upstream/master (you will need to resolve merge conflicts)
  6. git push origin master
    Note: If you have no local changes to the source you can instead ‘git reset –hard upstream/master; git push origin master –force’ instead of step 5 and 6. But be sure you don’t have any customizations you care about before making this change.

Reviewing Your Application

To find the quickstart source for an application, simply browse to https://github.com/openshift/ and search for it by name. Note that drupal-quickstart has replaced drupal-example.

Users who have written their own application or have made customizations to a quickstart will want to search the source for and change the following:

Start by sshing to your app and run ‘env | grep OPENSHIFT_’ to see the env vars available.

  • OPENSHIFT_INTERNAL_IP -> OPENSHIFT_{CARTTYPE}_IP (Ex: OPENSHIFT_PHP_IP)
  • OPENSHIFT_INTERNAL_PORT -> OPENSHIFT_{CARTTYPE}_PORT (Ex: OPENSHIFT_PHP_PORT) Note: The jboss carts use OPENSHIFT_{CARTTYPE}_HTTP_PORT
  • Any place you source environment variables will no longer work. The old environment variable files had export statements. The new variables only contain a value. However, the previous need to export environment variables has been removed and the whole environment should be available as any of the hooks are being executed. So if you are sourcing environment variable files you should be able to remove that logic entirely.
  • .openshift/action_hooks/(post|pre)start{carttype}-{version} have all been changed to .openshift/action_hooks/(post|pre)start{carttype} (with version removed). The files with version are still being called but you should go ahead and switch to the versionless names to be future proof.
  • The OPENSHIFT_INTERNAL_* variables will remain in place for a time but will only exist on migrated applications. New applications won’t have it.

Node.js Adjustments

Also remember that every node.js app needs to change OPENSHIFT_INTERNAL_IP and OPENSHIFT_INTERNAL_PORT to OPENSHIFT_NODEJS_IP and OPENSHIFT_NODEJS_PORT in

server.js

This will ensure the application will remain online long term. As always direct any questions or comments to openshift@redhat.com

Categories
Node.js, OpenShift Origin, PHP
Tags
, , ,
Comments are closed.