Added instructions for launching tasks with partitions

resolves #230
This commit is contained in:
Glenn Renfro
2016-10-27 15:52:06 -04:00
committed by Michael Minella
parent 44b3531824
commit 99e5397f29

View File

@@ -124,46 +124,113 @@ https://github.com/spring-cloud/spring-cloud-task/tree/master/spring-cloud-task-
=== Notes on developing a batch partitioned app for the Yarn platform
* When deploying partitioned apps on the Yarn platform be sure use the following dependency for the
Spring Cloud Yarn Deployer (with a version 1.0.2 or higher):
* When deploying partitioned apps on the Yarn platform be sure to use the
following dependency for the Spring Cloud Yarn Deployer
(with a version 1.0.2 or higher):
```
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-deployer-yarn</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-deployer-yarn</artifactId>
</dependency>
```
* Add the following dependency to the dependency management for a transient dependency required by Yarn:
```
<dependencyManagement>
<dependencies>
<dependencyManagement>
<dependencies>
...
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>18.0</version>
</dependency>
</dependencies>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>18.0</version>
</dependency>
</dependencies>
...
</dependencyManagement>
</dependencyManagement>
```
* Also add the following property to your application.properties: `spring.yarn.container.keepContextAlive=false`.
* When setting up environment variables for the partitions in the PartitionHandler it is recommended that you do not
copy the current working environment properties.
=== Notes on developing a batch partitioned app for the Kubernetes platform
* When deploying partitioned apps on the Kubernetes platform be sure to use the
following dependency for the Spring Cloud Kubernetes Deployer:
```
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-deployer-kubernetes</artifactId>
</dependency>
```
Application name for the task application and its partitions need to follow
* Application name for the task application and its partitions need to follow
the following regex pattern `[a-z0-9]([-a-z0-9]*[a-z0-9])`.
Else an exception will be thrown.
=== Notes on developing a batch partitioned app for the Mesos platform
* When deploying partitioned apps on the Mesos platform be sure to use the
following dependency for the Spring Cloud Mesos Deployer:
```
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-deployer-mesos</artifactId>
</dependency>
```
When configuring the partition handler, do not add any command line arguments to
* When configuring the partition handler, do not add any command line arguments to
the `CommandLineArgsProvider`. This is due to Chronos adding the command line
args to the Mesos ID. Thus when launching the partition on Mesos this can cause
the partition to fail to start if command line arg contains characters such as
`/` or `:`.
=== Notes on developing a batch partitioned app for the Cloud Foundry platform
* When deploying partitioned apps on the Cloud Foundry platform be sure to use
the following dependencies for the Spring Cloud Cloud Foundry Deployer:
```
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-deployer-cloudfoundry</artifactId>
</dependency>
<dependency>
<groupId>io.projectreactor</groupId>
<artifactId>reactor-core</artifactId>
<version>3.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>io.projectreactor.ipc</groupId>
<artifactId>reactor-netty</artifactId>
<version>0.5.1.RELEASE</version>
</dependency>
```
* When configuring the partition handler, Cloud Foundry Deployment
environment variables need to be established so that the partition handler
can start the partitions. The following list shows the required environment
variables:
- spring_cloud_deployer_cloudfoundry_url
- spring_cloud_deployer_cloudfoundry_org
- spring_cloud_deployer_cloudfoundry_space
- spring_cloud_deployer_cloudfoundry_domain
- spring_cloud_deployer_cloudfoundry_username
- spring_cloud_deployer_cloudfoundry_password
- spring_cloud_deployer_cloudfoundry_services
- spring_cloud_deployer_cloudfoundry_taskTimeout
An example set of deployment environment variables for a partitioned task that
uses a `mysql` database service would look something like this:
```
spring_cloud_deployer_cloudfoundry_url=https://api.local.pcfdev.io
spring_cloud_deployer_cloudfoundry_org=pcfdev-org
spring_cloud_deployer_cloudfoundry_space=pcfdev-space
spring_cloud_deployer_cloudfoundry_domain=local.pcfdev.io
spring_cloud_deployer_cloudfoundry_username=admin
spring_cloud_deployer_cloudfoundry_password=admin
spring_cloud_deployer_cloudfoundry_services=mysql
spring_cloud_deployer_cloudfoundry_taskTimeout=300
```
NOTE: When using PCF-Dev the following environment variable is also required:
`spring_cloud_deployer_cloudfoundry_skipSslValidation=true`
[[batch-informational-messages]]
== Batch Informational Messages