<plugin>
<groupId>org.mule.tools.maven</groupId>
<artifactId>mule-maven-plugin</artifactId>
<version>3.7.1</version>
<extensions>true</extensions>
<configuration>
<runtimeFabricDeployment>
<uri>https://anypoint.mulesoft.com</uri>
<muleVersion>${app.runtime}</muleVersion>
<username>${username}</username>
<password>${password}</password>
<applicationName>${runtime.fabric.application.name}</applicationName>
<target>${runtime.fabric.name}</target>
<environment>${environment}</environment>
<provider>${provider}</provider>
<properties>
<key>value</key>
</properties>
<deploymentSettings>
<publicUrl>${app.url}</publicUrl>
<cpuReserved>500m</cpuReserved>
<memoryReserved>800Mi</memoryReserved>
</deploymentSettings>
</runtimeFabricDeployment>
</configuration>
</plugin>
Deploy Applications to Runtime Fabric
This version of Mule reached its End of Life on May 2, 2023, when Extended Support ended. Deployments of new applications to CloudHub that use this version of Mule are no longer allowed. Only in-place updates to applications are permitted. MuleSoft recommends that you upgrade to the latest version of Mule 4 that is in Standard Support so that your applications run with the latest fixes and security enhancements. |
Mule Maven plugin versions 3.0.0, 3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.1.6, and 3.1.7 are deprecated. |
In addition to using Anypoint Runtime Manager, to deploy applications to Anypoint Runtime Fabric, you can also deploy applications by using the Mule Maven plugin. To do so, you must meet certain prerequisites, and configure your Runtime Fabric deployment strategy in your project’s pom.xml
file.
Prerequisites
-
Ensure that the Mule Maven Plugin is added to your project
See Add the Mule Maven Plugin to a Mule Project for instructions.
-
You understand and have available the number of resources required to deploy to Runtime Fabric
See Allocating Resource for Application Deployment on Runtime Fabric for more information. -
The application is already published in Exchange
-
To do this from Studio, see Publishing a Project to Exchange.
-
To do this using Maven, see Publish and Deploy Exchange Assets Using Maven.
Studio allows you to select only two project types when uploading an application to Exchange: example
andtemplate
. To specify a different project type, publish your application using Maven.
-
Configure the Runtime Fabric Deployment Strategy
Inside the plugin
element, add a configuration for your Runtime Fabric deployment, replacing the following placeholder values with your Runtime Fabric information:
Deploy to Runtime Fabric
From the command line in your project’s folder, package the application and execute the deploy goal:
mvn clean package deploy -DmuleDeploy
Redeploy to Runtime Fabric
To redeploy the application, run the same command as you did to deploy.
Runtime Fabric rewrites the application you had deployed.
Authentication Methods
When you deploy applications using Mule Maven plugin, you can use different methods to provide your credentials to authenticate against the deployment platform. Depending on the authentication method you use, the parameters to set in the deployment configuration differ:
Authentication Method | Description | Configuration Parameters |
---|---|---|
Username and password |
Use a CloudHub username and password to authenticate. |
|
Server |
Use credentials stored in a Maven server, configured inside the Maven |
|
Authorization Token |
Use an authorization token to access the platform. |
|
Connected Apps |
Use a Connected App to perform the authentication programmatically by communicating with Anypoint Platform. |
|
For a detailed description of the configuration parameters, see the Runtime Fabric Deployment Parameters Reference.
Runtime Fabric Deployment Parameters Reference
Parameter | Description | Required |
---|---|---|
|
Top-Level Element |
Yes |
|
Your Anypoint Platform URI. |
No |
|
The Mule runtime engine version to run in your Runtime Fabric instance. |
Yes |
|
Your Anypoint Platform username |
Only when using Anypoint Platform credentials to login. |
|
Your Anypoint Platform password |
Only when using Anypoint Platform credentials to login. |
|
The application name displayed in Runtime Manager after the app deploys. |
Yes |
|
The Runtime Fabric target name where to deploy the app. |
Yes |
|
Set to |
Yes |
|
Target Anypoint Platform environment.
|
Yes |
|
The Business group path of the deployment
This value is omitted if |
No |
|
The Business group ID of the deployment |
No |
|
The allowed elapsed time, in milliseconds, between the start of the deployment process and the confirmation that the artifact has been deployed The default value is |
No |
|
Maven server with Anypoint Platform credentials |
No |
|
Top-Level element
For example:
|
No |
|
When set to |
No |
|
When set to |
No |
|
Specifies the authorization token to access the platform. You can use this authentication method instead of setting username and password. |
Only when using an Authorization token to login. |
|
Specifies the Connected App |
Only when using Connected Apps credentials to login. |
|
Specifies the Connected App secret key. |
Only when using Connected Apps credentials to login. |
|
Specifies the only supported connection type: |
Only when using Connected Apps credentials to login. |
|
Any of the parameters documented in deploymentSettings Reference |
No |
deploymentSettings Parameters Reference
Parameter | Description |
---|---|
|
Enables clustering across two or more replicas of the application; default is
|
|
The number of instances for your application. Default is
|
|
Enable Last-Mile security to forward HTTPS connections to be decrypted by this application
|
|
Amount of memory to be allocated for each replica of the application. Default value is 700 MB.
This allocates 100 MB of memory per replica. |
|
Maximum memory allocated per application replica. Value must be equal to or greater than memoryReserved, if configured.
This allocates 200 MB maximum memory for each replica. |
|
Number of cores allocated per application replica. Default is 0.5 vCores.
This allocates 0.5 vCores per replica. |
|
Amount of max cores to be allocated for each replica of the application
This allocates a maximum of 1 vCore per replica. |
|
URL of the deployed application:
|
Encrypt Credentials
To use encrypted credentials when deploying, you need to set up your Maven master encrypted password and your settings-security.xml
file.
-
Create a master password for your Maven configuration.
mvn --encrypt-master-password <yourMasterPassword>
Maven returns your master password encrypted:
{l9vZ2uM5SdgHy+H12z4pX7LEOZn3Kbnqmt3kIquLjnQ=}
-
Create a
settings-security.xml
file in your ~/.m2 repository and add your encrypted master password:<settingsSecurity> <master>{l9vZ2uM5SdgHy+H12z4pX7LEOZn3Kbnqmt3kIquLjnQ=}</master> </settingsSecurity>
-
Encrypt your Anypoint platform password:
mvn --encrypt-password <yourAnypointPlatformPassword>
Maven returns your Anypoint platform password encrypted:
{HTWFGH5BG9QmvJ1B=}
-
Add your encrypted Anypoint Platform password to your
settings.xml
file in the <server> section:<settings> ... <servers> ... <server> <id>my.anypoint.credentials</id> <username>my.anypoint.username</username> <password>{HTWFGH5BG9QmvJ1B=}</password> </server> ... </servers> ... </settings>
-
In your configuration deployment, reference the credentials injecting the server ID configured in your
settings.xml
file:<plugin> ... <configuration> ... <runtimeFabricDeployment> ... <server>my.anypoint.credentials</server> ... </runtimeFabricDeployment> ... </configuration> ... <plugin>
Make sure that the username and password are not set in the deployment configuration, or they will overwrite the defined server ID.