Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
March 10, 2023 13:38
November 3, 2021 16:27
October 6, 2017 14:17
November 26, 2019 14:00
November 3, 2021 16:27
November 16, 2021 09:08
October 30, 2020 10:38
March 10, 2023 13:38
October 6, 2017 14:17
June 6, 2018 09:54
January 24, 2020 17:47
October 17, 2018 13:32
November 3, 2021 16:27

MultiApps logo

MultiApps CF CLI Plugin Build Status

This is a Cloud Foundry CLI plugin (formerly known as CF MTA Plugin) for performing operations on multi-target applications (MTAs) in Cloud Foundry, such as deploying, removing, viewing, etc. It is a client for the CF MultiApps Controller (formerly known as CF MTA deploy-service), which is an MTA deployer implementation for Cloud Foundry.


  • Installed CloudFoundry CLI - ensure that CloudFoundry CLI is installed and working. For more information about installation of CloudFoundry CLI, please visit the official CloudFoundry documentation. You need to have CF CLI v6 or v7
  • Working CF MultiApps Controller - this a CF plugin for the MultiApps Controller application. Thus, a working MultiApps Controller must be available on the CF landscape

Download and Installation

🚨 Check whether you have a previous version installed, using the command: cf plugins. If the MtaPlugin is already installed, you need to uninstall it first and then to install the new version. You can uninstall the plugin using command cf uninstall-plugin MtaPlugin.

CF Community Plugin Repository

The MultiApps CF CLI Plugin is now also available on the CF Community Repository. To install the latest available version of the MultiApps CLI Plugin execute the following:

cf install-plugin multiapps

If you do not have the community repository in your CF CLI you can add it first by executing:

cf add-plugin-repo CF-Community

Manual Installation

Alternatively you can install any version of the plugin by manually downloading it from the releases page and installing the binaries for your specific operating system.


The latest version of the plugin can also be downloaded from the project's releases. Download the plugin for your platform (Darwin, Linux, Windows).

Mac OS X 64 bit Windows 32 bit Windows 64 bit Linux 32 bit Linux 64 bit
multiapps-plugin.osx multiapps-plugin.win32.exe multiapps-plugin.win64.exe multiapps-plugin.linux32 multiapps-plugin.linux64


Install the plugin, using the following command:

cf install-plugin <path-to-the-plugin> -f

🚨 Note: if you are running on an Unix-based system, you need to make the plugin executable before installing it. In order to achieve this, execute the following commad chmod +x <path-to-the-plugin>


The MultiApps CF plugin supports the following commands:

Command Name Command Description
deploy Deploy a new multi-target app or sync changes to an existing one
undeploy Undeploy (remove) a multi-target app
mtas List all multi-target apps
mta Display health and status for a multi-target app
mta-ops List active multi-target app operations
download-mta-op-logs / dmol Download logs of multi-target app operation
bg-deploy Deploy a multi-target app using blue-green deployment
purge-mta-config Purge stale configuration entries

For more information, see the command help output available via cf [command] --help or cf help [command].

Here is an example deployment of the open-sourced spring-music:

git clone
cf deploy mta-assembly/spring-music.mtar -e config.mtaext


The configuration of the MultiApps CF plugin is done via env variables. The following are supported:

  • DEBUG=1 - Enables the logging of HTTP requests in STDOUT and STDERRR.
  • MULTIAPPS_CONTROLLER_URL=<URL> - By default, the plugin attempts to deduce the multiapps-controller URL based on the available shared domains. In case of issues, or if you want to target a non-default multiapps-controller instance, you can configure the targeted URL via this env variable.
  • MULTIAPPS_UPLOAD_CHUNK_SIZE=<POSITIVE_INTEGER> - By default, large MTARs are not uploaded as a single unit, but are split up into smaller chunks of 45 MBs that are uploaded separately. The goal is to prevent failed uploads due to gorouter's request timeout. In case the default chunk size is still too large, you can configure it via this environment variable. The specified values are in megabytes. 🚨 Note: The total number of chunks in which an MTAR is split cannot exceed 50, since the multiapps-controller could interpret bigger values as a denial-of-service attack. For this reason, the minimum value for this environment variable is computed based on the formula: MIN = MTAR_SIZE / 50 For example, with a 100MB MTAR the minimum value for this environment variable would be 2, and for a 400MB MTAR it would be 8. Finally, the minimum value cannot grow over 50, so with a 4GB MTAR, the minimum value would be 50 and not 80.

How to contribute


WARNING : with Issue 117 the master branch of this repository as well as other artifacts will be renamed. Adaptation to any CI/CD infrastructure & scritps will be required.

Cloning the repository

To clone the project in your Go workspace $GOPATH/src/ execute the following commands:

mkdir -p $GOPATH/src/
cd $GOPATH/src/
git clone

Building new release version

You can automatically build new release for all supported platforms by calling the script with the version of the build. The version will be automatically included in the plugin, so it will be reported by cf plugins.

🚨 Note that the version parameter should follow the semver format (e.g. 1.2.3).

./ 1.2.3

This will produce mta_plugin_linux_amd64, mta_plugin_darwin_amd64 and mta_plugin_windows_amd64 in the repo's root directory.

Further reading

Presentations, documents, and tutorials:


This project is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file.


A CLI plugin for Multi-Target Application (MTA) operations in Cloud Foundry



Security policy





No packages published