Files
spring-cloud-cli/spring-cloud-launcher
Dave Syer 2e0dda930d Make sure dataflow server uses h2 launched by spring cloud
If user runs `spring cloud dataflow h2` you'd expect the database to
be used by dataflow. It's tricky to achieve, and impossible with
an in-memory data store (because of the way dataflow is set up
currently). This was achieved by adding a feature: each deployable
can specify "enabled" (in addition to existing "disabled" feature)
properties: i.e. environemnt properties that are applied to all
other apps as long as this one is running.

Another change here is to pass the "PATH" env var from the deployer
down to deployed apps. This affects dataflow in particular because
it likes to launch other apps, and it will pick the wrong Java
version (for instance) if the path is not preserved.
2016-10-06 09:36:38 +02:00
..
2016-09-26 16:08:57 -06:00

Spring Cloud Launcher

Building

./mvnw clean install from parent directory

Installing

Install Spring CLI first: https://github.com/spring-cloud/spring-cloud-cli/blob/master/docs/src/main/asciidoc/install.adoc

Running

$ spring cloud

Currently starts configserver, eureka, h2 (db server), hystrixdashboard and kafka. Here is the full configuration.

Configuring

Spring Cloud Launcher use normal Spring Boot configuration mechanisms. The config name is cloud, so configuration can go in cloud.yml or cloud.properties.

For example, to run configserver and eureka, create a cloud.yml that looks like:

spring:
  cloud:
    launcher:
      deployables:
        - name: configserver
          coordinates: maven://org.springframework.cloud.launcher:spring-cloud-launcher-configserver:1.1.0.BUILD-SNAPSHOT
          port: 8888
          waitUntilStarted: true
          order: -10
        - name: eureka
          coordinates: maven://org.springframework.cloud.launcher:spring-cloud-launcher-eureka:1.1.0.BUILD-SNAPSHOT
          port: 8761

The name attribute is required. If waitUntilStarted is true, Launcher will block until the application has reached the deployed state. Before commands are deployed, the list is sorted using Spring's OrderComparator. In the above case, configserver is deployed before any other app is deployed. Currently only maven: coordinates and standard Spring Resources (file:, etc...) are supported.

You can also select from the predefined deployables. For example to run Spring Cloud Data Flow execute:

spring cloud eureka,configserver

Config Server git uri

To run configserver with a git repo set the following in ./configserver.yml:

spring:
  profiles.active: git
  cloud.config.server.git.uri: http://mygitserver/myrepo.git

Stopping

Ctrl-C in the same terminal spring cloud was run.

TODO

  • Eureka
  • Configserver
  • Hystrix Dashboard
  • Kafka Broker
  • Kafka Bus
  • Easy inclusion of default deployables
  • H2 Database
  • Spring Cloud Dataflow server
  • Launcher landing page (Eureka Dashboard works for now)
  • Sleuth/Zipkin
  • Support external rabbit
  • Speedup startup (parallel start?, retry for config server, db and kafka?)
  • Cassandra Database
  • Client Side Library
  • Spring Boot Admin (Not compatible with Brixton)