Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Keeping existing CF App environment variables during update

Overview

This example shows how to preserve manually set app environment variables during MTA deployment. The may be used used e.g. when an operator changes an app configuration, which should not be reverted, in case that configuration is not maintained in an *.mtaext extension descriptor given during deployment.

Modelled via a module level parameter keep-existing:…​

modules:
  - name:...
    parameters:
      keep-existing:
        env:true
Note
See mta.yaml or mtad.yaml in the current directory.

Official Documentation

  • SAP Help Portal: Modules → Table Module-Specific Parameters

Try out

Initial deployment

directly from an mtad.yaml

  $ cf deploy ./ -f ;

or start from an mta.yaml:

  $ mbt build -p cf -t . ;
  $ cf deploy a.cf.app_0.0.0.mtar -f ;

Examine the initial state

  $ cf env cf-app-keeping-env-changes
...
User-Provided:
...
managed-env-variable: original-env-var-val
  $ cf env cf-app-resetting-env
...
User-Provided:
...
managed-env-variable: original-env-var-val

Manually set a new env variable

  $ cf set-env cf-app-keeping-env-changes new-env-variable new-env-var-val
  $ cf set-env cf-app-keeping-env-changes managed-env-variable changed-env-var-val
  $ cf set-env cf-app-resetting-env new-env-variable new-env-var-val
  $ cf set-env cf-app-resetting-env managed-env-variable changed-env-var-val

Examine the change

  $ cf env cf-app-keeping-env-changes
...
User-Provided:
...
managed-env-variable: changed-env-var-val
new-env-variable: new-env-var-val
  $ cf env cf-app-resetting-env
...
User-Provided:
...
managed-env-variable: changed-env-var-val
new-env-variable: new-env-var-val

Re-deply to simulate update

  $ cf deploy -f ;
  # or
  $ cf deploy a.cf.app_0.0.0.mtar -f ;

Check out the result

  $ cf env cf-app-keeping-env-changes
...
User-Provided:
...
managed-env-variable: original-env-var-val
new-env-variable: new-env-var-val
  $ cf env cf-app-resetting-env
...
User-Provided:
...
managed-env-variable: original-env-var-val

Note that app cf-app-keeping-env-changes has the new-env-variable var kept, but has the managed-env-variable value’s reset as defined in the mtad.yaml.

App cf-app-resetting-env has lost the custom env variable and also has the managed-env-variable value reset.