anchor.diff:  
   Note: There is a `kubectl rolling-update` command but it is applicable only to Replica Set. The update from this command was driven on the client-side. It is strongly recommended to do rolling update using Deployment as the updates are now on the server-side.
   
  +For our usecase, the application initially uses the image `arungupta/app-upgrade:v1`. Then the Deployment is updated to use the image `arungupta/app-upgrade:v2`. The v1 image prints "`Hello World!`". The v2 image prints "`Howdy World!`". The source code for these images is in the link:images[] directory.
  +
  +== Pre-requisites
  +
  +A 3 master nodes and 5 worker nodes cluster as explained at link:../cluster-install##multi-master-multi-node-multi-az-gossip-based-cluster[] is used for this chapter. A smaller cluster may be used.
  +
  +All configuration files for this chapter are in the `app-upgrade` directory.
  +
  +== Update an application
  +
   Updating an application requires to replace all the existing pods with new pods that use a different version of the image. `.spec.strategy` in the Deployment configuration can be used to define strategy used to replace the old pods with the new ones. This key can take two values:
   
   . `Recreate`
  
positive.code: 
  Let's look at these two deployment strategies.
  
  For our usecase, the application initially uses the image `arungupta/app-upgrade:v1`. Then the Deployment is updated to use the image `arungupta/app-upgrade:v2`. The v1 image prints "`Hello World!`". The v2 image prints "`Howdy World!`". The source code for these images is in the link:images[] directory.
  
  == Pre-requisites
  
  A 3 master nodes and 5 worker nodes cluster as explained at link:../cluster-install##multi-master-multi-node-multi-az-gossip-based-cluster[] is used for this chapter. A smaller cluster may be used.
  
  All configuration files for this chapter are in the `app-upgrade` directory.
  
  == Recreate strategy
  
  All existing pods are killed before the new ones are created. The configuration file looks like:
  
  
negative.code:     Howdy World!
  +
  The output now shows `v2` version of the image is being used.
  
  == Rollback
  
  More details about 
  
  == Delete resources
  
  Delete resources created in this chapter:
  
      kubectl delete deployment/app-recreate svc/app-recreate deployment/app-rolling svc/app-rolling
  