Skip to content

Commit bae59d0

Browse files
committed
Merge branch 'master' of github.com:brooklyncentral/clocker into release/1.1.x
* 'master' of github.com:brooklyncentral/clocker: (85 commits) Fix imports Improved stop logic Skip bridge deletion if not found Fix host creation when no strategy succeeds Make HAProxy URI accessible Move hostname customizer Synchronization for atomic deletion and use etcdctl to count containers Set hostname properly in container location Also remove bridge network and set DNS name correctly Delete networks when no longer required Tidying up blueprints Add locking on bridge network creation Fix typo in class name Change period for service.isUp check to 30s Check kernel version and storage module before updating kernel Remove references to boot2docker Make hostname customizer available as config option Fix HAProxy configuration Added openStdin option to jclouds Docker driver Remove Docker applications entity ... Conflicts: clocker.bom dist/src/main/assembly/conf/brooklyn/default.catalog.bom dist/src/main/assembly/files/blueprints/docker-cloud-calico.yaml dist/src/main/assembly/files/blueprints/docker-cloud-weave.yaml dist/src/main/assembly/files/blueprints/docker-host.yaml docker/src/main/java/clocker/docker/entity/DockerHost.java docker/src/main/java/clocker/docker/entity/DockerInfrastructure.java jsgui/pom.xml
2 parents 6729d60 + 460688a commit bae59d0

File tree

211 files changed

+6004
-2278
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

211 files changed

+6004
-2278
lines changed

.buildscript/deploy_snapshot.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
# http://benlimmer.com/2013/12/26/automatically-publish-javadoc-to-gh-pages-with-travis-ci/
77

88
SLUG="brooklyncentral/clocker"
9-
JDK="oraclejdk7"
9+
JDK="oraclejdk8"
1010
BRANCH="master"
1111

1212
set -e

.travis.yml

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,34 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
sudo: false
15+
sudo: required
1616
language: java
1717
jdk:
1818
- oraclejdk8
1919

20-
script: travis_wait 60 mvn clean install -U --settings dist/target/test-classes/travis_maven_settings.xml -P QA -Ds3-upload.destination=brooklyn-clocker-QA-${TRAVIS_BUILD_NUMBER}-${TRAVIS_COMMIT}-dist.tar.gz -Ds3-upload.accessKey=$AWS_IDENTITY -Ds3-upload.secretKey=$AWS_CREDENTIAL -Dbrooklyn-test.localPropertiesAdditions="brooklyn.location.jclouds.softlayer.identity=$SOFTLAYER_USERNAME,brooklyn.location.jclouds.softlayer.credential=$SOFTLAYER_KEY,brooklyn.location.jclouds.aws-ec2.identity=$AWS_IDENTITY,brooklyn.location.jclouds.aws-ec2.credential=$AWS_CREDENTIAL" -Dbrooklyn-test.ampTestClusterPassword=$AMP_CLUSTER_PASSWORD -Dbrooklyn-test.distributionUrl=https://s3-eu-west-1.amazonaws.com/clocker-latest/brooklyn-clocker-QA-${TRAVIS_BUILD_NUMBER}-${TRAVIS_COMMIT}-dist.tar.gz
20+
install: true
21+
before_script:
22+
- ssh-keygen -t rsa -f ~/.ssh/id_rsa -N "" -q
23+
- cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
24+
- echo "Host localhost" >> /home/travis/.ssh/config
25+
- echo " StrictHostKeyChecking no" >> /home/travis/.ssh/config
26+
- ssh-keyscan -t rsa localhost >> ~/.ssh/known_hosts
27+
- chmod g-rw,o-rw /home/travis/.ssh/*
28+
- mkdir -p ~/.brooklyn/docker-certs
29+
30+
script:
31+
- export MAVEN_OPTS="-Dmaven.repo.local=$HOME/.m2/repository -Xmx2469m -XX:MaxPermSize=512m"
32+
- mkdir -p dist/target/brooklyn-maven-plugin/
33+
- touch dist/target/brooklyn-maven-plugin/brooklyn.debug.log
34+
- mvn -q clean install -DskipTests
35+
- travis_wait 60 mvn -q verify -Pintegration -Dsoftlayer.identity=$SOFTLAYER_IDENTITY -Dsoftlayer.credential=$SOFTLAYER_CREDENTIAL
2136

2237
after_success:
2338
- .buildscript/deploy_snapshot.sh
2439

40+
after_failure:
41+
- cat dist/target/brooklyn-maven-plugin/brooklyn.debug.log
42+
2543
env:
2644
global:
2745
- secure: "BrRh52Ae8fkDqBRGOgFCi89DKDtTWnvZju3K1ntV0kC0nP0pIdKKKgCKZC9u8EmFYF8HZnHagqn3VSRX2+tASwo0xauY0urV4GlMUp38+Dnzt1Kg9XKL/m6aQdEu+EjhMm6KCar5CKZ1TdO36RWZdY6yM/0QZMSS6HqrdlDc8eo="
@@ -36,7 +54,11 @@ env:
3654
# Softlayer
3755
- secure: "HDTN8nYiOx+B8Wyvd/fcJGnTLq3zHx+56MhZGtfJN4DANObsLzGO24tO2zz23Gqu94Ivwz5VRKpScY8ZKwML+kcwajUUCtRQAnbJLRYCdZBct5/aaqbRAvfDvxgUPOJsLppInNGP7zSuAZoWkjWkP3cRP1GVgELDY6++wYrNa4+z+qixsm5Is4Df1q/LV+v7xOGZGCL2nd2dIHGdwWbMf+0fNu/IU6i9hi/b6YpmdmTIUi/0Dda3UtquZlnrnmml5FsU+mo+ZykLVrKn0/B+3U6seKTI+vkYtM+qlcX0RwSk3/hudBP0Nj9doZ16NOelVP1r7u9V0MR1Xt6obHKLxYlk/f/Uvzmv/TfhbY8UMEK0HOSSa1SsO5fYwXG1qaOzdRbdrXCJS2yGpn8P8cyN/g5GElSg7KMVFTuvSJ94xmPB6uUm9iXUdepYwfX2YhCBU3wKJkzU1xlTTXBa/rbAYUZ3mY9Le1kaItz4Ce6mPuikFfoWSX6XYEZHAzZoGN1TikA+xGmRSnlOqHsEb1MymWuuWsyfI3Euwh6mlvLTqod2GkzJRt4fAqKyVN2GQCUM7maF2YP0BSGEcGN0+YAdYwrT3NTm3yqcnbXdcxUXeY48O+jm1ObUeH2X6Sz/XTZC/pp4xGNy7oQtHbNPhhcK2i4ZBZpgvjFO7qNN0Ke7HLY="
3856
- secure: "hPkb8z84KYgPLy6uDSx3gcNgg2jxD6tlSS4nk3j3uEzz5QwJThglPUM1plerHrPFTqTDpZ5mOx+dWMxU6H81Yk2NZzV3JG2Ne0aSk69k6roD3LqGxPrbh3YpFr6go29QNgC971UuJJekM/RodBCE1Vjon4k+FkY1Ash2rKJrovFMhqP51NYqPysXxEDjJhYM7cLaJZV2SQ2jlPYXUAd5J4tgrCI1rOIa5gquiExIB868HDRF2GiFwqHqtYA/Y5npJMvpISvk70L3/6S9bqSw9vOvgFFMxmhKinrpDktN+Bm3kPWnNmx7pMrOFrQ46j6DoOViHpoGrqIDZbQoljCUst76oU82lHQZrkxTCx3bE9dc2atCg9NIWwTO4Pf31mjZ1uytNFNnqXK/UTwXUkJP908g5oDeB2JmbacFKJkPkTjc+diV96bm2YyLASzvKN1fT/7pftySRZ73Ngt2NSjdO62dx6xFZ6egP0P7vsEW+hrxPPjEfyjB2QEWr4EY7v1DZ47PU2mhbjFlaaA7sRuSQ5dO1vsyBz4s9OmsuihzlaxC1mYoOXrIItyD/+58Xyy3s6CpFqbSpaeQK5dFRNnhYeQh/rQIVYuj3CLk8SNIBPfTcnoGRq7rgWDQOlTS7Y0yyF7ZINIx5HmeTP9uLy28cO+8pbhj5Z2H09vDEO8ORwI="
39-
57+
# brooklyn.properties placeholders
58+
# SOFTALYER_IDENTITY=identity
59+
- secure: "PLv7B8XRUBGTTw+iXJ7H8+4ltThrL8P3Y7M5WKVgwwR2y84lLsqk3gcpPKj2+U3LtsGSg5sWqMXfHSLW79lST6S6JDZ/kXNi78YIfOYobR8at+efO7GoaRp/Qo0ticEvJUz4uSyZ69Nm7gjd0bxd4X/CbpG8wZjgt4RUYW6ny8k="
60+
# SOFTALYER_CREDENTIAL=credential
61+
- secure: "F/X34P2NlY/Efsmopr9U8E9Ewt3UpQguXZg/XmNYyClgwo3giC/iAkrnlEvwAGx1IeFn+QlYss8tsBn8za5IrquQKEZ2LiU8ommAx3RJdW2p1Pk6X5fhtz6kkJ3cHY/AvrJWs/bMxqQ2JcTWAfUkQKLH/6wxGy36HIZUpThdxIo="
4062

4163

4264
cache:

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,8 @@ brooklyn.location.named.Amazon-Ireland = jclouds:aws-ec2:eu-west-1
7979
```
8080

8181
For more information on setting up locations, including supplying cloud provider credentials, see the
82-
[_Setting up Locations_ section of Brooklyn Getting Started](https://brooklyn.incubator.apache.org/quickstart/#configuring-a-location),
83-
and the more detailed [locations guide](https://brooklyn.incubator.apache.org/v/0.8.0-incubating/use/guide/locations/index.html).<!-- BROOKLYN_VERSION -->
82+
[_Setting up Locations_ section of Brooklyn Getting Started](https://brooklyn.apache.org/quickstart/#configuring-a-location),
83+
and the more detailed [locations guide](https://brooklyn.apache.org/v/0.9.0/use/guide/locations/index.html).<!-- BROOKLYN_VERSION -->
8484
The Brooklyn documentation also covers setting up security for the web-console, and configuring users
8585
and passwords.
8686

@@ -94,7 +94,7 @@ available in the Locations drop-down list when adding new applications. Simply s
9494
and it will use Docker containers instead of virtual machines.
9595

9696
For more information on deploying applications from the Brooklyn catalog, see
97-
[Getting Started - Policies and Catalogs](https://brooklyn.incubator.apache.org/quickstart/policies-and-catalogs.html).
97+
[Getting Started - Policies and Catalogs](https://brooklyn.apache.org/quickstart/policies-and-catalogs.html).
9898

9999
You can also paste a YAML blueprint into the _YAML_ tab of the _Add Application_ dialog, as follows:
100100
```JS
@@ -137,9 +137,9 @@ download on [Amazon S3](http://clocker-latest.s3-website-eu-west-1.amazonaws.com
137137
## Getting involved
138138

139139
Clocker is [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0) licensed, and builds on the
140-
[Apache Brooklyn](http://brooklyn.incubator.apache.org/) project. Please get involved and join the
140+
[Apache Brooklyn](http://brooklyn.apache.org/) project. Please get involved and join the
141141
discussion on [Freenode](http://freenode.net/), IRC `#brooklyncentral` or the Apache Brooklyn
142-
community [mailing list](https://brooklyn.incubator.apache.org/community/). We also maintain a
142+
community [mailing list](https://brooklyn.apache.org/community/). We also maintain a
143143
[Trello](https://trello.com/b/lhS7ltyi/clocker) board with the current roadmap and active tasks.
144144

145145
### Documentation

clocker.bom

Lines changed: 94 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -32,27 +32,27 @@ brooklyn.catalog:
3232
- id: docker-infrastructure
3333
name: "Docker Infrastructure"
3434
item:
35-
type: brooklyn.entity.container.docker.DockerInfrastructure
35+
type: clocker.docker.entity.DockerInfrastructure
3636
brooklyn.config:
37-
docker.version: 1.9.1 # DOCKER_VERSION
37+
docker.version: 1.10.3 # DOCKER_VERSION
3838
entity.dynamicLocation.name: "my-docker-cloud"
3939
docker.container.cluster.headroom.count: 4
4040
docker.policy.ha.enable: false
4141
docker.container.strategies:
4242
- $brooklyn:object:
43-
type: brooklyn.location.docker.strategy.MaxContainersPlacementStrategy
43+
type: clocker.docker.location.strategy.MaxContainersPlacementStrategy
4444
brooklyn.config:
4545
maxContainers: 16
4646
- $brooklyn:object:
47-
type: brooklyn.location.docker.strategy.BreadthFirstPlacementStrategy
47+
type: clocker.docker.location.strategy.BreadthFirstPlacementStrategy
4848
docker.host.spec:
4949
$brooklyn:entitySpec:
5050
type: docker-host
5151

5252
- id: docker-host
5353
name: "Docker Host"
5454
item:
55-
type: brooklyn.entity.container.docker.DockerHost
55+
type: clocker.docker.entity.DockerHost
5656
brooklyn.config:
5757
docker.host.driver.storage: overlay
5858
docker.host.nameFormat: "docker-%2$d"
@@ -68,49 +68,56 @@ brooklyn.catalog:
6868
- id: docker-container
6969
name: "Docker Container"
7070
item:
71-
type: brooklyn.entity.container.docker.DockerContainer
71+
type: clocker.docker.entity.container.DockerContainer
7272
brooklyn.config:
7373
docker.container.nameFormat: "container-%2$02x"
7474

7575
- id: calico-network
7676
name: "Calico Network"
7777
item:
78-
type: brooklyn.networking.sdn.calico.CalicoNetwork
78+
type: clocker.docker.networking.entity.sdn.calico.CalicoNetwork
7979
brooklyn.config:
80-
calico.version: 0.4.9
80+
calico.version: 0.19.0
8181
sdn.agent.spec:
8282
$brooklyn:entitySpec:
8383
type: calico-node
8484

8585
- id: calico-node
8686
name: "Calico Node"
8787
item:
88-
type: brooklyn.networking.sdn.calico.CalicoNode
88+
type: clocker.docker.networking.entity.sdn.calico.CalicoNode
8989

90-
- id: etcd-cluster
91-
name: "Etcd Cluster"
90+
- id: calico-module
91+
name: "Calico Network Module"
9292
item:
93-
type: brooklyn.entity.nosql.etcd.EtcdCluster
93+
type: clocker.mesos.networking.entity.sdn.calico.CalicoModule
9494
brooklyn.config:
95-
etcd.version: 2.0.11
96-
etcd.node.spec:
97-
$brooklyn:entitySpec:
98-
type: etcd-node
95+
calico.version: 0.8.0
9996

10097
- id: etcd-node
10198
name: "Etcd Node"
10299
item:
103-
type: brooklyn.entity.nosql.etcd.EtcdNode
100+
type: org.apache.brooklyn.entity.nosql.etcd.EtcdNode
104101

105102
- id: etcd-proxy
106103
name: "Etcd Proxy"
107104
item:
108-
type: brooklyn.entity.nosql.etcd.EtcdProxy
105+
type: org.apache.brooklyn.entity.nosql.etcd.EtcdProxy
106+
107+
- id: etcd-cluster
108+
name: "Etcd Cluster"
109+
item:
110+
type: org.apache.brooklyn.entity.nosql.etcd.EtcdCluster
111+
brooklyn.config:
112+
etcd.version: 2.3.1
113+
etcd.node.spec:
114+
$brooklyn:entitySpec:
115+
type: etcd-node
109116

110117
- id: weave-network
111118
name: "Weave Network"
112119
item:
113-
type: brooklyn.networking.sdn.weave.WeaveNetwork
120+
type: clocker.docker.networking.entity.sdn.weave.WeaveNetwork
114121
brooklyn.config:
115122
weave.version: 1.1.2
116123
sdn.agent.spec:
@@ -120,31 +127,45 @@ brooklyn.catalog:
120127
- id: weave-router
121128
name: "Weave Router"
122129
item:
123-
type: brooklyn.networking.sdn.weave.WeaveContainer
130+
type: clocker.docker.networking.entity.sdn.weave.WeaveRouter
131+
132+
- id: overlay-network
133+
name: "Docker Overlay Network"
134+
item:
135+
type: clocker.docker.networking.entity.sdn.overlay.OverlayNetwork
136+
brooklyn.config:
137+
sdn.agent.spec:
138+
$brooklyn:entitySpec:
139+
type: overlay-plugin
140+
141+
- id: overlay-plugin
142+
name: "Docker Overlay Plugin"
143+
item:
144+
type: clocker.docker.networking.entity.sdn.overlay.OverlayPlugin
124145

125146
- id: docker-registry
126147
name: "Docker Registry"
127148
services:
128-
- type: brooklyn.entity.container.docker.registry.DockerRegistry
149+
- type: clocker.docker.entity.container.registry.DockerRegistry
129150
brooklyn.config:
130151
docker.registry.port: 5000
131152

132153
- id: mesos-cluster
133154
name: "Mesos Cluster"
134155
item:
135-
type: brooklyn.entity.mesos.MesosCluster
156+
type: clocker.mesos.entity.MesosCluster
136157
brooklyn.config:
137158
entity.dynamicLocation.name: "my-mesos-cluster"
138159

139160
- id: marathon-framework
140161
name: "Marathon Framework"
141162
item:
142-
type: brooklyn.entity.mesos.framework.marathon.MarathonFramework
163+
type: clocker.mesos.entity.framework.marathon.MarathonFramework
143164

144-
- id: docker-cloud
165+
- id: docker-cloud-single
145166
name: "Clocker"
146167
description: |
147-
Docker Cloud infrastructure
168+
Single Docker host without networking
148169
iconUrl: classpath://docker-logo.png
149170
itemType: template
150171
item:
@@ -155,11 +176,11 @@ brooklyn.catalog:
155176
docker.container.cluster.headroom.count: 0
156177
docker.container.strategies:
157178
- $brooklyn:object:
158-
type: brooklyn.location.docker.strategy.MaxContainersPlacementStrategy
179+
type: clocker.docker.location.strategy.MaxContainersPlacementStrategy
159180
brooklyn.config:
160181
maxContainers: 32
161182
- $brooklyn:object:
162-
type: brooklyn.location.docker.strategy.DepthFirstPlacementStrategy
183+
type: clocker.docker.location.strategy.DepthFirstPlacementStrategy
163184
sdn.enable: false
164185

165186
- id: docker-cloud-calico
@@ -213,6 +234,30 @@ brooklyn.catalog:
213234
brooklyn.config:
214235
docker.container.nameFormat: "weave-%2$02x"
215236

237+
- id: docker-cloud-overlay
238+
name: "Clocker with Docker Overlay"
239+
description: |
240+
Docker Cloud infrastructure with Docker overlay networking
241+
iconUrl: classpath://docker-logo.png
242+
itemType: template
243+
item:
244+
services:
245+
- type: docker-infrastructure
246+
brooklyn.config:
247+
sdn.enable: true
248+
sdn.provider.spec:
249+
$brooklyn:entitySpec:
250+
type: overlay-network
251+
docker.host.spec:
252+
$brooklyn:entitySpec:
253+
type: docker-host
254+
brooklyn.config:
255+
docker.container.spec:
256+
$brooklyn:entitySpec:
257+
type: docker-container
258+
brooklyn.config:
259+
docker.container.nameFormat: "docker-%2$02x"
260+
216261
- id: external-mesos-cluster
217262
name: "External Mesos Cluster"
218263
description: |
@@ -225,4 +270,26 @@ brooklyn.catalog:
225270
brooklyn.config:
226271
mesos.url: "http://localhost:5050/"
227272

273+
- id: haproxy-controller
274+
name: "HAProxy"
275+
description: |
276+
HAProxy load balancer entity.
277+
item:
278+
type: org.apache.brooklyn.entity.proxy.haproxy.HAProxyController
279+
brooklyn.config:
280+
docker.image.name: haproxy
281+
docker.useSsh: false
282+
docker.image.commands:
283+
- "/bin/bash"
284+
docker.container.interactive: true
285+
docker.container.openPorts.configKeys:
286+
- $brooklyn:sensor("org.apache.brooklyn.entity.proxy.AbstractController", "proxy.http.port")
287+
- $brooklyn:sensor("org.apache.brooklyn.entity.proxy.AbstractController", "proxy.https.port")
288+
install.dir: /usr/local/sbin/
289+
run.dir: /usr/local/etc/haproxy/
290+
member.sensor.hostname: "host.subnet.hostname"
291+
provisioning.properties:
292+
entity.dynamicLocation.flags:
293+
user: root
294+
228295
# vim:ts=2:sw=2:ft=yaml:

console/pom.xml

Lines changed: 34 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
limitations under the License.
1616
-->
1717
<project xmlns="http://maven.apache.org/POM/4.0.0"
18-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
19-
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
18+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
19+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2020
<modelVersion>4.0.0</modelVersion>
2121
<packaging>war</packaging>
2222

@@ -39,8 +39,11 @@
3939
<plugins>
4040
<plugin>
4141
<artifactId>maven-war-plugin</artifactId>
42-
<version>2.4</version>
42+
<version>${maven-war-plugin.version}</version>
4343
<configuration>
44+
<archive>
45+
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
46+
</archive>
4447
<webResources>
4548
<resource>
4649
<directory>src/main/webapp</directory>
@@ -60,11 +63,34 @@
6063
</configuration>
6164
</plugin>
6265
<plugin>
63-
<groupId>org.apache.maven.plugins</groupId>
64-
<artifactId>maven-surefire-plugin</artifactId>
65-
<configuration>
66-
<skipTests>true</skipTests>
67-
</configuration>
66+
<groupId>org.apache.maven.plugins</groupId>
67+
<artifactId>maven-surefire-plugin</artifactId>
68+
<configuration>
69+
<skipTests>true</skipTests>
70+
</configuration>
71+
</plugin>
72+
<plugin>
73+
<groupId>org.apache.felix</groupId>
74+
<artifactId>maven-bundle-plugin</artifactId>
75+
<executions>
76+
<execution>
77+
<id>bundle-manifest</id>
78+
<phase>process-classes</phase>
79+
<goals>
80+
<goal>manifest</goal>
81+
</goals>
82+
</execution>
83+
</executions>
84+
<configuration>
85+
<supportedProjectTypes>
86+
<supportedProjectType>war</supportedProjectType>
87+
</supportedProjectTypes>
88+
<instructions>
89+
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
90+
<Bundle-Version>${project.version}</Bundle-Version>
91+
<Web-ContextPath>/console</Web-ContextPath>
92+
</instructions>
93+
</configuration>
6894
</plugin>
6995
</plugins>
7096
</build>

0 commit comments

Comments
 (0)