Replicate catalog.bom using standard default.catalog.bom Loading catalog.bom from bundles is disabled due to not interacting with persistence nicely. Load same catalog items through the default.catalog.bom mechanism instead.
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/1ecd7fe4 Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/1ecd7fe4 Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/1ecd7fe4 Branch: refs/heads/master Commit: 1ecd7fe4626098cc85ea3ff3297e570c36372ba6 Parents: 2330de4 Author: Svetoslav Neykov <[email protected]> Authored: Tue Jul 5 12:39:45 2016 +0300 Committer: Svetoslav Neykov <[email protected]> Committed: Wed Jul 6 15:28:54 2016 +0300 ---------------------------------------------------------------------- karaf/apache-brooklyn/pom.xml | 9 + .../src/main/resources/etc/default.catalog.bom | 416 +++++++++++++-- karaf/features/src/main/feature/feature.xml | 17 +- .../init/src/main/resources/catalog-classes.bom | 507 +++++++++++++++++++ 4 files changed, 898 insertions(+), 51 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1ecd7fe4/karaf/apache-brooklyn/pom.xml ---------------------------------------------------------------------- diff --git a/karaf/apache-brooklyn/pom.xml b/karaf/apache-brooklyn/pom.xml index 1851e3f..d1d23be 100755 --- a/karaf/apache-brooklyn/pom.xml +++ b/karaf/apache-brooklyn/pom.xml @@ -90,6 +90,15 @@ <plugins> <plugin> + <groupId>org.apache.rat</groupId> + <artifactId>apache-rat-plugin</artifactId> + <configuration> + <excludes combine.children="append"> + <exclude>**/*.bom</exclude> + </excludes> + </configuration> + </plugin> + <plugin> <groupId>org.apache.karaf.tooling</groupId> <artifactId>karaf-maven-plugin</artifactId> <version>${karaf.version}</version> http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1ecd7fe4/karaf/apache-brooklyn/src/main/resources/etc/default.catalog.bom ---------------------------------------------------------------------- diff --git a/karaf/apache-brooklyn/src/main/resources/etc/default.catalog.bom b/karaf/apache-brooklyn/src/main/resources/etc/default.catalog.bom index 6902a1f..8184c6e 100644 --- a/karaf/apache-brooklyn/src/main/resources/etc/default.catalog.bom +++ b/karaf/apache-brooklyn/src/main/resources/etc/default.catalog.bom @@ -1,54 +1,370 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. +# this catalog bom is an illustration supplying a few useful sample items +# and templates to get started using Brooklyn brooklyn.catalog: - version: "0.10.0-SNAPSHOT" # BROOKLYN_VERSION - items: - - id: server-template - itemType: template - name: "Template: Server" - description: | - Sample YAML to provision a server in a cloud with illustrative VM properties - item: - name: Server (Brooklyn Example) - - # this basic example shows how Brooklyn can provision a single raw VM - # in the cloud or location of your choice - - services: - - type: org.apache.brooklyn.entity.software.base.EmptySoftwareProcess - name: My VM - - # location can be e.g. `softlayer` or `jclouds:openstack-nova:https://9.9.9.9:9999/v2.0/`, - # or `localhost` or `byon:(hosts="10.9.1.1,10.9.1.2,[email protected].{10,11,20-29}")` - location: - jclouds:aws-ec2: - # edit these to use your credential (or delete if credentials specified in brooklyn.properties) - identity: <REPLACE> - credential: <REPLACE> - - region: eu-central-1 - - # we want Ubuntu, with a lot of RAM - osFamily: ubuntu - minRam: 8gb - - # set up this user and password (default is to authorize a public key) - user: sample - password: s4mpl3 + version: "0.10.0-SNAPSHOT" # BROOKLYN_VERSION + items: + - brooklyn.libraries: + - name: org.apache.brooklyn.karaf-init + version: 0.10.0.SNAPSHOT # BROOKLYN_VERSION + include: classpath://catalog-classes.bom + - id: server + itemType: entity + description: | + Provision a server, with customizable provisioning.properties and credentials installed, + but no other special software process or scripts executed. + item: + type: org.apache.brooklyn.entity.software.base.EmptySoftwareProcess + name: Server + + - id: vanilla-bash-server + itemType: entity + description: | + Provision a server, with customizable provisioning.properties and credentials installed, + but no other special software process or scripts executed. + The script should be supplied in "launch.command" as per docs on + org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess. + item: + type: org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess + name: Server with Launch Script (bash) + + - id: load-balancer + itemType: entity + description: | + Create a load balancer which will point at members in the group entity + referred to by the config key "serverPool". + The sensor advertising the port can be configured with the "member.sensor.portNumber" config key, + defaulting to `http.port`; all member entities which have published "service.up" will then be picked up. + item: + type: org.apache.brooklyn.entity.proxy.nginx.NginxController + name: Load Balancer (nginx) + + - id: cluster + itemType: entity + description: | + Create a cluster of entities, resizable, with starting size "initialSize", + and using a spec supplied in the "memberSpec" key. + item: + type: org.apache.brooklyn.entity.group.DynamicCluster + + - id: 1-server-template + itemType: template + name: "Template 1: Server" + description: | + Sample YAML to provision a server in a cloud with illustrative VM properties + item: + name: Server (Brooklyn Example) + + # this basic example shows how Brooklyn can provision a single raw VM + # in the cloud or location of your choice + + services: + - type: server + name: My VM + + # location can be e.g. `softlayer` or `jclouds:openstack-nova:https://9.9.9.9:9999/v2.0/`, + # or `localhost` or `byon:(hosts="10.9.1.1,10.9.1.2,[email protected].{10,11,20-29}")` + location: + jclouds:aws-ec2: + # edit these to use your credential (or delete if credentials specified in brooklyn.properties) + identity: <REPLACE> + credential: <REPLACE> + + region: eu-central-1 + + # we want Ubuntu, with a lot of RAM + osFamily: ubuntu + minRam: 8gb + + # set up this user and password (default is to authorize a public key) + user: sample + password: s4mpl3 + + - id: 2-bash-web-server-template + itemType: template + name: "Template 2: Bash Web Server" + description: | + Sample YAML building on Template 1, + adding bash commands to launch a Python-based web server + on port 8020 + item: + name: Python Web Server (Brooklyn Example) + + # this example builds on the previous one, + # adding some scripts to initialize the VM + + services: + - type: vanilla-bash-server + name: My Bash Web Server VM + brooklyn.config: + install.command: | + # install python if not present + which python || \ + { sudo apt-get update && sudo apt-get install python ; } || \ + { sudo yum update && sudo yum install python ; } || \ + { echo WARNING: cannot install python && exit 1 ; } + + customize.command: | + # create the web page to serve + cat > index.html << EOF + + Hello world. + <p> + I am ${ENTITY_INFO}, ${MESSAGE:-a Brooklyn sample}. + <p> + Created at: `date` + <p> + I am running at ${HOSTNAME}, with on-box IP configuration: + <pre> + `ifconfig | grep inet` + </pre> + + EOF + + launch.command: | + # launch in background (ensuring no streams open), and record PID to file + nohup python -m SimpleHTTPServer ${PORT:-8020} < /dev/null > output.txt 2>&1 & + echo $! > ${PID_FILE:-pid.txt} + sleep 5 + ps -p `cat ${PID_FILE:-pid.txt}` + if [ $? -ne 0 ] ; then + cat output.txt + echo WARNING: python web server not running + exit 1 + fi + + shell.env: + HOSTNAME: $brooklyn:attributeWhenReady("host.name") + PORT: $brooklyn:config("my.app.port") + ENTITY_INFO: $brooklyn:component("this", "") + MESSAGE: $brooklyn:config("my.message") + + # custom + my.app.port: 8020 + my.message: "good to meet you" + + brooklyn.enrichers: + # publish the URL as a sensor; the GUI will pick this up (main.uri) + - type: org.apache.brooklyn.enricher.stock.Transformer + brooklyn.config: + uniqueTag: url-generator + enricher.sourceSensor: host.subnet.hostname + # use the definition from Attributes class, as it has a RendererHint so GUI makes it a link + enricher.targetSensor: $brooklyn:sensor("org.apache.brooklyn.core.entity.Attributes", "main.uri") + enricher.targetValue: + $brooklyn:formatString: + - "http://%s:%s/" + - $brooklyn:attributeWhenReady("host.subnet.hostname") + - $brooklyn:config("my.app.port") + + location: + jclouds:aws-ec2: + region: eu-central-1 + # edit these (or delete if credentials specified in brooklyn.properties) + identity: <REPLACE> + credential: <REPLACE> + + - id: 3-bash-web-and-riak-template + itemType: template + name: "Template 3: Bash Web Server and Scaling Riak Cluster" + description: | + Sample YAML building on Template 2, + composing that blueprint with a Riak cluster and injecting the URL + item: + name: Bash Web Server and Riak Cluster (Brooklyn Example) + + # this example *references* the previous one, + # combining it with a stock blueprint for a Riak cluster, + # and shows how a sensor from the latter can be injected + + services: + + # reference template 2, overriding message to point at riak + - type: 2-bash-web-server-template + brooklyn.config: + my.message: $brooklyn:formatString("connected to Riak at %s", + $brooklyn:entity("riak-cluster").attributeWhenReady("main.uri")) + # and clear the location defined there so it is taken from this template + locations: [] + + # use the off-the-shelf Riak cluster + - type: org.apache.brooklyn.entity.nosql.riak.RiakCluster + id: riak-cluster + initialSize: 3 + # and add a policy to scale based on ops per minute + brooklyn.policies: + - type: org.apache.brooklyn.policy.autoscaling.AutoScalerPolicy + brooklyn.config: + metric: riak.node.ops.1m.perNode + # more than 100 ops per second (6k/min) scales out, less than 50 scales back + # up to a max of 8 riak nodes here (can be changed in GUI / REST API afterwards) + metricLowerBound: 3000 + metricUpperBound: 6000 + minPoolSize: 3 + maxPoolSize: 8 + resizeUpStabilizationDelay: 30s + resizeDownStabilizationDelay: 5m + + location: + jclouds:aws-ec2: + region: eu-central-1 + # edit these (or delete if credentials specified in brooklyn.properties) + identity: <REPLACE> + credential: <REPLACE> + + - id: 4-resilient-bash-web-cluster-template + itemType: template + name: "Template 4: Resilient Load-Balanced Bash Web Cluster with Sensors" + description: | + Sample YAML to provision a cluster of the bash/python web server nodes, + with sensors configured, and a load balancer pointing at them, + and resilience policies for node replacement and scaling + item: + name: Resilient Load-Balanced Bash Web Cluster (Brooklyn Example) + + # this final example shows some of the advanced functionality: + # defining custom sensors, and a cluster with a "spec", + # policies for resilience and scaling based on that sensor, + # and wiring a load balancer in front of the cluster + + # combining this with the riak cluster in the previous example + # is left as a suggested exercise for the user + + services: + + # define a cluster of the web nodes + - type: cluster + name: Cluster of Bash Web Nodes + id: my-web-cluster + brooklyn.config: + initialSize: 1 + memberSpec: + $brooklyn:entitySpec: + # template 2 is used as the spec for items in this cluster + # with a new message overwriting the previous, + # and a lot of sensors defined + type: 2-bash-web-server-template + name: My Bash Web Server VM with Sensors + # and clear the location defined there so it is taken from this template + locations: [] + + brooklyn.config: + my.message: "part of the cluster" + + brooklyn.initializers: + # make a simple request-count sensor, by counting the number of 200 responses in output.txt + - type: org.apache.brooklyn.core.sensor.ssh.SshCommandSensor + brooklyn.config: + name: reqs.count + targetType: int + period: 5s + command: "cat output.txt | grep HTTP | grep 200 | wc | awk '{print $1}'" + # and publish the port as a sensor so the load-balancer can pick it up + - type: org.apache.brooklyn.core.sensor.StaticSensor + brooklyn.config: + name: app.port + targetType: int + static.value: $brooklyn:config("my.app.port") + + brooklyn.enrichers: + # derive reqs.per_sec from reqs.count + - type: org.apache.brooklyn.enricher.stock.YamlTimeWeightedDeltaEnricher + brooklyn.config: + enricher.sourceSensor: reqs.count + enricher.targetSensor: reqs.per_sec + enricher.delta.period: 1s + # and take an average over 30s for reqs.per_sec into reqs.per_sec.windowed_30s + - type: org.apache.brooklyn.enricher.stock.YamlRollingTimeWindowMeanEnricher + brooklyn.config: + enricher.sourceSensor: reqs.per_sec + enricher.targetSensor: reqs.per_sec.windowed_30s + enricher.window.duration: 30s + + # emit failure sensor if a failure connecting to the service is sustained for 30s + - type: org.apache.brooklyn.policy.ha.ServiceFailureDetector + brooklyn.config: + entityFailed.stabilizationDelay: 30s + + brooklyn.policies: + # restart if a failure is detected (with a max of one restart in 2m, sensor will propagate otherwise) + - type: org.apache.brooklyn.policy.ha.ServiceRestarter + brooklyn.config: + failOnRecurringFailuresInThisDuration: 2m + + # back at the cluster, create a total per-sec and some per-node average + brooklyn.enrichers: + - type: org.apache.brooklyn.enricher.stock.Aggregator + brooklyn.config: + enricher.sourceSensor: reqs.per_sec + enricher.targetSensor: reqs.per_sec + transformation: sum + - type: org.apache.brooklyn.enricher.stock.Aggregator + brooklyn.config: + enricher.sourceSensor: reqs.per_sec + enricher.targetSensor: reqs.per_sec.per_node + transformation: average + - type: org.apache.brooklyn.enricher.stock.Aggregator + brooklyn.config: + enricher.sourceSensor: reqs.per_sec.windowed_30s + enricher.targetSensor: reqs.per_sec.windowed_30s.per_node + transformation: average + + brooklyn.policies: + # resilience: if a per-node restart policy fails, + # just throw that node away and create a new one + - type: org.apache.brooklyn.policy.ha.ServiceReplacer + + # and scale based on reqs/sec + - type: org.apache.brooklyn.policy.autoscaling.AutoScalerPolicy + brooklyn.config: + # scale based on reqs/sec (though in a real-world situation, + # reqs.per_sec.windowed_30s.per_node might be a better choice) + metric: reqs.per_sec.per_node + + # really low numbers, so you can trigger a scale-out just by hitting reload a lot + metricUpperBound: 3 + metricLowerBound: 1 + + # sustain 3 reqs/sec for 2s and it will scale out + resizeUpStabilizationDelay: 2s + # only scale down when sustained for 1m + resizeDownStabilizationDelay: 1m + + maxPoolSize: 10 + + # and add a load-balancer pointing at the cluster + - type: load-balancer + id: load-bal + brooklyn.config: + # point this load balancer at the cluster, specifying port to forward to + loadbalancer.serverpool: $brooklyn:entity("my-web-cluster") + member.sensor.portNumber: app.port + # disable sticky sessions to allow easy validation of balancing via browser refresh + nginx.sticky: false + + brooklyn.enrichers: + # publish a few useful info sensors and KPI's to the root of the app + - type: org.apache.brooklyn.enricher.stock.Propagator + brooklyn.config: + uniqueTag: propagate-load-balancer-url + producer: $brooklyn:entity("load-bal") + propagating: + - main.uri + - type: org.apache.brooklyn.enricher.stock.Propagator + brooklyn.config: + uniqueTag: propagate-reqs-per-sec + producer: $brooklyn:entity("my-web-cluster") + propagating: + - reqs.per_sec + - reqs.per_sec.windowed_30s.per_node + + location: + jclouds:aws-ec2: + # edit these (or delete if credentials specified in brooklyn.properties) + identity: <REPLACE> + credential: <REPLACE> + + region: eu-central-1 + minRam: 2gb http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1ecd7fe4/karaf/features/src/main/feature/feature.xml ---------------------------------------------------------------------- diff --git a/karaf/features/src/main/feature/feature.xml b/karaf/features/src/main/feature/feature.xml index b1d7923..5473151 100644 --- a/karaf/features/src/main/feature/feature.xml +++ b/karaf/features/src/main/feature/feature.xml @@ -332,9 +332,24 @@ <bundle dependency="true">mvn:com.google.guava/guava/${guava.version}</bundle> </feature> + <!-- Don't load all bundles out of the box in the long run. Let users cherry pick what they need. --> + <feature name="brooklyn-software-all" version="${project.version}" description="Brooklyn All Software Entities"> + <feature>brooklyn-software-base</feature> + <feature>brooklyn-jmxmp-agent</feature> + <feature>brooklyn-jmxrmi-agent</feature> + <feature>brooklyn-software-network</feature> + <feature>brooklyn-software-cm</feature> + <feature>brooklyn-software-osgi</feature> + <feature>brooklyn-software-database</feature> + <feature>brooklyn-software-webapp</feature> + <feature>brooklyn-software-messaging</feature> + <feature>brooklyn-software-nosql</feature> + <feature>brooklyn-software-monitoring</feature> + </feature> + <feature name="brooklyn-osgi-launcher" version="${project.version}" description="Brooklyn init"> <feature>brooklyn-core</feature> - <feature>brooklyn-software-base</feature> + <feature>brooklyn-software-all</feature> <feature>brooklyn-locations-jclouds</feature> <bundle>mvn:org.apache.brooklyn/brooklyn-launcher-common/${project.version}</bundle> <bundle start-level="90">mvn:org.apache.brooklyn/brooklyn-karaf-init/${project.version}</bundle> http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1ecd7fe4/karaf/init/src/main/resources/catalog-classes.bom ---------------------------------------------------------------------- diff --git a/karaf/init/src/main/resources/catalog-classes.bom b/karaf/init/src/main/resources/catalog-classes.bom new file mode 100644 index 0000000..82a4b95 --- /dev/null +++ b/karaf/init/src/main/resources/catalog-classes.bom @@ -0,0 +1,507 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +brooklyn.catalog: + version: "0.10.0-SNAPSHOT" # BROOKLYN_VERSION + items: + - brooklyn.libraries: + - name: org.apache.brooklyn.core + version: "0.10.0.SNAPSHOT" # BROOKLYN_VERSION + itemType: entity + items: + - id: org.apache.brooklyn.entity.group.QuarantineGroup + item: + type: org.apache.brooklyn.entity.group.QuarantineGroup + - id: org.apache.brooklyn.entity.group.BasicGroup + item: + type: org.apache.brooklyn.entity.group.BasicGroup + - id: org.apache.brooklyn.entity.stock.BasicEntity + item: + type: org.apache.brooklyn.entity.stock.BasicEntity + - id: org.apache.brooklyn.entity.stock.DataEntity + item: + type: org.apache.brooklyn.entity.stock.DataEntity + - id: org.apache.brooklyn.entity.group.DynamicGroup + item: + type: org.apache.brooklyn.entity.group.DynamicGroup + - id: org.apache.brooklyn.entity.stock.DelegateEntity + item: + type: org.apache.brooklyn.entity.stock.DelegateEntity + - id: org.apache.brooklyn.entity.group.DynamicRegionsFabric + item: + type: org.apache.brooklyn.entity.group.DynamicRegionsFabric + - id: org.apache.brooklyn.core.server.entity.BrooklynMetrics + item: + type: org.apache.brooklyn.core.server.entity.BrooklynMetrics + - id: org.apache.brooklyn.entity.stock.BasicApplication + item: + type: org.apache.brooklyn.entity.stock.BasicApplication + - id: org.apache.brooklyn.entity.stock.BasicStartable + item: + type: org.apache.brooklyn.entity.stock.BasicStartable + - id: org.apache.brooklyn.entity.group.DynamicCluster + item: + type: org.apache.brooklyn.entity.group.DynamicCluster + - id: org.apache.brooklyn.entity.group.DynamicMultiGroup + item: + type: org.apache.brooklyn.entity.group.DynamicMultiGroup + - id: org.apache.brooklyn.entity.group.DynamicFabric + item: + type: org.apache.brooklyn.entity.group.DynamicFabric + + - brooklyn.libraries: + - name: org.apache.brooklyn.policy + version: "0.10.0.SNAPSHOT" # BROOKLYN_VERSION + items: + - id: org.apache.brooklyn.policy.ha.ConnectionFailureDetector + itemType: policy + item: + type: org.apache.brooklyn.policy.ha.ConnectionFailureDetector + name: Connection Failure Detector + description: HA policy for monitoring a host:port, + - id: org.apache.brooklyn.policy.ha.ServiceRestarter + itemType: policy + item: + type: org.apache.brooklyn.policy.ha.ServiceRestarter + name: Service Restarter + description: HA policy for restarting a service automatically, + - id: org.apache.brooklyn.policy.ha.SshMachineFailureDetector + itemType: policy + item: + type: org.apache.brooklyn.policy.ha.SshMachineFailureDetector + name: Ssh Connectivity Failure Detector + description: HA policy for monitoring an SshMachine, +# removed from catalog because it cannot currently be configured via catalog mechanisms +# - id: org.apache.brooklyn.policy.followthesun.FollowTheSunPool +# item: +# type: org.apache.brooklyn.policy.followthesun.FollowTheSunPool + - id: org.apache.brooklyn.policy.loadbalancing.BalanceableWorkerPool + itemType: entity + item: + type: org.apache.brooklyn.policy.loadbalancing.BalanceableWorkerPool + - id: org.apache.brooklyn.policy.ha.ServiceReplacer + itemType: policy + item: + type: org.apache.brooklyn.policy.ha.ServiceReplacer + name: Service Replacer + description: HA policy for replacing a failed member of a group + - id: org.apache.brooklyn.policy.loadbalancing.ItemsInContainersGroup + itemType: entity + item: + type: org.apache.brooklyn.policy.loadbalancing.ItemsInContainersGroup + - id: org.apache.brooklyn.policy.autoscaling.AutoScalerPolicy + itemType: policy + item: + type: org.apache.brooklyn.policy.autoscaling.AutoScalerPolicy + name: Auto-scaler + description: Policy that is attached to a Resizable entity and dynamically + + - brooklyn.libraries: + - name: org.apache.brooklyn.software-base + version: "0.10.0.SNAPSHOT" # BROOKLYN_VERSION + itemType: entity + items: + - id: org.apache.brooklyn.entity.machine.MachineEntity + item: + type: org.apache.brooklyn.entity.machine.MachineEntity + name: Machine Entity + description: Represents a machine, providing metrics about it (e.g. obtained from ssh) + - id: org.apache.brooklyn.entity.software.base.SameServerEntity + item: + type: org.apache.brooklyn.entity.software.base.SameServerEntity + - id: org.apache.brooklyn.entity.chef.ChefEntity + item: + type: org.apache.brooklyn.entity.chef.ChefEntity + - id: org.apache.brooklyn.entity.brooklynnode.BrooklynEntityMirror + item: + type: org.apache.brooklyn.entity.brooklynnode.BrooklynEntityMirror + name: Brooklyn Entity Mirror + description: Provides an entity which can sit in one brooklyn + - id: org.apache.brooklyn.entity.software.base.EmptySoftwareProcess + item: + type: org.apache.brooklyn.entity.software.base.EmptySoftwareProcess + - id: org.apache.brooklyn.entity.software.base.EmptyWindowsProcess + item: + type: org.apache.brooklyn.entity.software.base.EmptyWindowsProcess + - id: org.apache.brooklyn.entity.software.base.VanillaWindowsProcess + item: + type: org.apache.brooklyn.entity.software.base.VanillaWindowsProcess + name: Vanilla Windows Process + description: A basic Windows entity configured with scripts, e.g. for launch, check-running and stop + - id: org.apache.brooklyn.entity.java.VanillaJavaApp + item: + type: org.apache.brooklyn.entity.java.VanillaJavaApp + - id: org.apache.brooklyn.entity.brooklynnode.BrooklynNode + item: + type: org.apache.brooklyn.entity.brooklynnode.BrooklynNode + name: Brooklyn Node + description: Deploys a Brooklyn management server + - id: org.apache.brooklyn.entity.brooklynnode.BrooklynCluster + item: + type: org.apache.brooklyn.entity.brooklynnode.BrooklynCluster + - id: org.apache.brooklyn.entity.brooklynnode.LocalBrooklynNode + item: + type: org.apache.brooklyn.entity.brooklynnode.LocalBrooklynNode + - id: org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess + item: + type: org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess + name: Vanilla Software Process + description: A software process configured with scripts, e.g. for launch, check-running and stop + - id: org.apache.brooklyn.entity.machine.pool.ServerPool + item: + type: org.apache.brooklyn.entity.machine.pool.ServerPool + name: Server Pool + description: Creates a pre-allocated server pool, which other applications can deploy to + + - brooklyn.libraries: + - name: org.apache.brooklyn.software-webapp + version: "0.10.0.SNAPSHOT" # BROOKLYN_VERSION + itemType: entity + items: + - id: org.apache.brooklyn.entity.webapp.nodejs.NodeJsWebAppService + item: + type: org.apache.brooklyn.entity.webapp.nodejs.NodeJsWebAppService + name: Node.JS Application + - id: org.apache.brooklyn.entity.webapp.jboss.JBoss7Server + item: + type: org.apache.brooklyn.entity.webapp.jboss.JBoss7Server + name: JBoss Application Server 7 + description: AS7 - an open source Java application server from JBoss + - id: org.apache.brooklyn.entity.proxy.nginx.UrlMapping + item: + type: org.apache.brooklyn.entity.proxy.nginx.UrlMapping + - id: org.apache.brooklyn.entity.webapp.DynamicWebAppFabric + item: + type: org.apache.brooklyn.entity.webapp.DynamicWebAppFabric + - id: org.apache.brooklyn.entity.proxy.nginx.NginxController + item: + type: org.apache.brooklyn.entity.proxy.nginx.NginxController + name: Nginx Server + description: A single Nginx server. Provides HTTP and reverse proxy services + - id: org.apache.brooklyn.entity.webapp.jboss.JBoss6Server + item: + type: org.apache.brooklyn.entity.webapp.jboss.JBoss6Server + name: JBoss Application Server 6 + description: AS6 - an open source Java application server from JBoss + - id: org.apache.brooklyn.entity.webapp.tomcat.Tomcat8Server + item: + type: org.apache.brooklyn.entity.webapp.tomcat.Tomcat8Server + name: Tomcat Server + - id: org.apache.brooklyn.entity.proxy.LoadBalancerCluster + item: + type: org.apache.brooklyn.entity.proxy.LoadBalancerCluster + - id: org.apache.brooklyn.entity.webapp.jetty.Jetty6Server + item: + type: org.apache.brooklyn.entity.webapp.jetty.Jetty6Server + name: Jetty6 Server + description: Old version (v6 @ Mortbay) of the popular Jetty webapp container + - id: org.apache.brooklyn.entity.webapp.DynamicWebAppCluster + item: + type: org.apache.brooklyn.entity.webapp.DynamicWebAppCluster + name: Dynamic Web-app Cluster + description: A cluster of web-apps, which can be dynamically re-sized; this does not include a load-balancer + - id: org.apache.brooklyn.entity.webapp.tomcat.TomcatServer + item: + type: org.apache.brooklyn.entity.webapp.tomcat.TomcatServer + name: Tomcat Server + - id: org.apache.brooklyn.entity.dns.geoscaling.GeoscalingDnsService + item: + type: org.apache.brooklyn.entity.dns.geoscaling.GeoscalingDnsService + - id: org.apache.brooklyn.entity.webapp.ControlledDynamicWebAppCluster + item: + type: org.apache.brooklyn.entity.webapp.ControlledDynamicWebAppCluster + name: Controlled Dynamic Web-app Cluster + description: A cluster of load-balanced web-apps, which can be dynamically re-sized + + - brooklyn.libraries: + - name: org.apache.brooklyn.software-osgi + version: "0.10.0.SNAPSHOT" # BROOKLYN_VERSION + itemType: entity + items: + - id: org.apache.brooklyn.entity.osgi.karaf.KarafContainer + item: + type: org.apache.brooklyn.entity.osgi.karaf.KarafContainer + name: Karaf + description: Apache Karaf is a small OSGi based runtime which provides a lightweight container onto which various components and applications can be deployed. + + - brooklyn.libraries: + - name: org.apache.brooklyn.software-nosql + version: "0.10.0.SNAPSHOT" # BROOKLYN_VERSION + itemType: entity + items: + - id: org.apache.brooklyn.entity.nosql.redis.RedisStore + item: + type: org.apache.brooklyn.entity.nosql.redis.RedisStore + name: Redis Server + description: Redis is an open-source, networked, in-memory, key-value data store with optional durability + - id: org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBRouterCluster + item: + type: org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBRouterCluster + - id: org.apache.brooklyn.entity.nosql.cassandra.CassandraDatacenter + item: + type: org.apache.brooklyn.entity.nosql.cassandra.CassandraDatacenter + name: Apache Cassandra Datacenter Cluster + description: Cassandra is a highly scalable, eventually + - id: org.apache.brooklyn.entity.nosql.solr.SolrServer + item: + type: org.apache.brooklyn.entity.nosql.solr.SolrServer + name: Apache Solr Node + description: Solr is the popular, blazing fast open source enterprise search + - id: org.apache.brooklyn.entity.nosql.couchdb.CouchDBNode + item: + type: org.apache.brooklyn.entity.nosql.couchdb.CouchDBNode + name: CouchDB Node + - id: org.apache.brooklyn.entity.nosql.redis.RedisShard + item: + type: org.apache.brooklyn.entity.nosql.redis.RedisShard + - id: org.apache.brooklyn.entity.nosql.redis.RedisCluster + item: + type: org.apache.brooklyn.entity.nosql.redis.RedisCluster + name: Redis Cluster + description: Redis is an open-source, networked, in-memory, key-value data store with optional durability + - id: org.apache.brooklyn.entity.nosql.hazelcast.HazelcastCluster + item: + type: org.apache.brooklyn.entity.nosql.hazelcast.HazelcastCluster + name: Hazelcast Cluster + description: Hazelcast is a clustering and highly scalable data distribution platform for Java. + - id: org.apache.brooklyn.entity.nosql.couchdb.CouchDBCluster + item: + type: org.apache.brooklyn.entity.nosql.couchdb.CouchDBCluster + - id: org.apache.brooklyn.entity.nosql.couchbase.CouchbaseNode + item: + type: org.apache.brooklyn.entity.nosql.couchbase.CouchbaseNode + name: CouchBase Node + description: Couchbase Server is an open source, distributed (shared-nothing architecture) + - id: org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBShardedDeployment + item: + type: org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBShardedDeployment + name: MongoDB Sharded Deployment + - id: org.apache.brooklyn.entity.nosql.cassandra.CassandraNode + item: + type: org.apache.brooklyn.entity.nosql.cassandra.CassandraNode + name: Apache Cassandra Node + description: Cassandra is a highly scalable, eventually + - id: org.apache.brooklyn.entity.nosql.riak.RiakNode + item: + type: org.apache.brooklyn.entity.nosql.riak.RiakNode + name: Riak Node + description: Riak is a distributed NoSQL key-value data store that offers + - id: org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBConfigServerCluster + item: + type: org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBConfigServerCluster + - id: org.apache.brooklyn.entity.nosql.mongodb.MongoDBServer + item: + type: org.apache.brooklyn.entity.nosql.mongodb.MongoDBServer + name: MongoDB Server + - id: org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBRouter + item: + type: org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBRouter + name: MongoDB Router + - id: org.apache.brooklyn.entity.nosql.mongodb.MongoDBReplicaSet + item: + type: org.apache.brooklyn.entity.nosql.mongodb.MongoDBReplicaSet + - id: org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBShardCluster + item: + type: org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBShardCluster + - id: org.apache.brooklyn.entity.nosql.mongodb.MongoDBClient + item: + type: org.apache.brooklyn.entity.nosql.mongodb.MongoDBClient + - id: org.apache.brooklyn.entity.nosql.elasticsearch.ElasticSearchNode + item: + type: org.apache.brooklyn.entity.nosql.elasticsearch.ElasticSearchNode + name: Elastic Search Node + description: Elasticsearch is an open-source search server based on Lucene. + - id: org.apache.brooklyn.entity.nosql.cassandra.CassandraFabric + item: + type: org.apache.brooklyn.entity.nosql.cassandra.CassandraFabric + name: Apache Cassandra Database Fabric + description: Cassandra is a highly scalable, eventually + - id: org.apache.brooklyn.entity.nosql.elasticsearch.ElasticSearchCluster + item: + type: org.apache.brooklyn.entity.nosql.elasticsearch.ElasticSearchCluster + name: Elastic Search Cluster + description: Elasticsearch is an open-source search server based on Lucene. + - id: org.apache.brooklyn.entity.nosql.cassandra.CassandraCluster + item: + type: org.apache.brooklyn.entity.nosql.cassandra.CassandraCluster + - id: org.apache.brooklyn.entity.nosql.redis.RedisSlave + item: + type: org.apache.brooklyn.entity.nosql.redis.RedisSlave + - id: org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBConfigServer + item: + type: org.apache.brooklyn.entity.nosql.mongodb.sharding.MongoDBConfigServer + - id: org.apache.brooklyn.entity.nosql.couchbase.CouchbaseCluster + item: + type: org.apache.brooklyn.entity.nosql.couchbase.CouchbaseCluster + name: CouchBase Cluster + description: Couchbase is an open source, distributed (shared-nothing architecture) + - id: org.apache.brooklyn.entity.nosql.couchbase.CouchbaseSyncGateway + item: + type: org.apache.brooklyn.entity.nosql.couchbase.CouchbaseSyncGateway + - id: org.apache.brooklyn.entity.nosql.hazelcast.HazelcastNode + item: + type: org.apache.brooklyn.entity.nosql.hazelcast.HazelcastNode + name: Hazelcast Node + description: Hazelcast is a clustering and highly scalable data distribution platform for Java. + - id: org.apache.brooklyn.entity.nosql.riak.RiakCluster + item: + type: org.apache.brooklyn.entity.nosql.riak.RiakCluster + name: Riak Cluster + description: Riak is a distributed NoSQL key-value data store that offers + - id: org.apache.brooklyn.entity.nosql.mongodb.sharding.CoLocatedMongoDBRouter + item: + type: org.apache.brooklyn.entity.nosql.mongodb.sharding.CoLocatedMongoDBRouter + + - brooklyn.libraries: + - name: org.apache.brooklyn.software-network + version: "0.10.0.SNAPSHOT" # BROOKLYN_VERSION + itemType: entity + items: + - id: org.apache.brooklyn.entity.network.bind.BindDnsServer + description: BIND is an Internet Domain Name Server. + item: + type: org.apache.brooklyn.entity.network.bind.BindDnsServer + name: BIND + + - brooklyn.libraries: + - name: org.apache.brooklyn.software-monitoring + version: "0.10.0.SNAPSHOT" # BROOKLYN_VERSION + itemType: entity + items: + - id: org.apache.brooklyn.entity.monitoring.monit.MonitNode + item: + type: org.apache.brooklyn.entity.monitoring.monit.MonitNode + name: Monit Node + description: Monit is a free open source utility for managing and monitoring, processes, programs, files, directories and filesystems on a UNIX system + + - brooklyn.libraries: + - name: org.apache.brooklyn.software-messaging + version: "0.10.0.SNAPSHOT" # BROOKLYN_VERSION + itemType: entity + items: + - id: org.apache.brooklyn.entity.messaging.activemq.ActiveMQBroker + item: + type: org.apache.brooklyn.entity.messaging.activemq.ActiveMQBroker + name: ActiveMQ Broker + description: ActiveMQ is an open source message broker which fully implements the Java Message Service 1.1 (JMS) + - id: org.apache.brooklyn.entity.messaging.qpid.QpidBroker + item: + type: org.apache.brooklyn.entity.messaging.qpid.QpidBroker + name: Qpid Broker + description: Apache Qpid is an open-source messaging system, implementing the Advanced Message Queuing Protocol (AMQP) + - id: org.apache.brooklyn.entity.messaging.storm.Storm + item: + type: org.apache.brooklyn.entity.messaging.storm.Storm + name: Storm Node + description: Apache Storm is a distributed realtime computation system. + - id: org.apache.brooklyn.entity.messaging.kafka.KafkaCluster + item: + type: org.apache.brooklyn.entity.messaging.kafka.KafkaCluster + name: Kafka + description: Apache Kafka is a distributed publish-subscribe messaging system + - id: org.apache.brooklyn.entity.messaging.activemq.ActiveMQQueue + item: + type: org.apache.brooklyn.entity.messaging.activemq.ActiveMQQueue + - id: org.apache.brooklyn.entity.zookeeper.ZooKeeperEnsemble + item: + type: org.apache.brooklyn.entity.zookeeper.ZooKeeperEnsemble + name: ZooKeeper ensemble + description: A cluster of ZooKeeper servers. + - id: org.apache.brooklyn.entity.messaging.kafka.KafkaZooKeeper + item: + type: org.apache.brooklyn.entity.messaging.kafka.KafkaZooKeeper + - id: org.apache.brooklyn.entity.messaging.activemq.ActiveMQTopic + item: + type: org.apache.brooklyn.entity.messaging.activemq.ActiveMQTopic + - id: org.apache.brooklyn.entity.messaging.qpid.QpidQueue + item: + type: org.apache.brooklyn.entity.messaging.qpid.QpidQueue + - id: org.apache.brooklyn.entity.zookeeper.ZooKeeperNode + item: + type: org.apache.brooklyn.entity.zookeeper.ZooKeeperNode + name: ZooKeeper Node + description: Apache ZooKeeper is a server which enables + - id: org.apache.brooklyn.entity.messaging.rabbit.RabbitBroker + item: + type: org.apache.brooklyn.entity.messaging.rabbit.RabbitBroker + name: RabbitMQ Broker + description: RabbitMQ is an open source message broker software (i.e. message-oriented middleware) that implements the Advanced Message Queuing Protocol (AMQP) standard + - id: org.apache.brooklyn.entity.messaging.kafka.KafkaBroker + item: + type: org.apache.brooklyn.entity.messaging.kafka.KafkaBroker + - id: org.apache.brooklyn.entity.messaging.qpid.QpidTopic + item: + type: org.apache.brooklyn.entity.messaging.qpid.QpidTopic + - id: org.apache.brooklyn.entity.messaging.storm.StormDeployment + item: + type: org.apache.brooklyn.entity.messaging.storm.StormDeployment + name: Storm Deployment + description: A Storm cluster. Apache Storm is a distributed realtime computation system. + + - brooklyn.libraries: + - name: org.apache.brooklyn.software-database + version: "0.10.0.SNAPSHOT" # BROOKLYN_VERSION + itemType: entity + items: + - id: org.apache.brooklyn.entity.database.crate.CrateNode + item: + type: org.apache.brooklyn.entity.database.crate.CrateNode + - id: org.apache.brooklyn.entity.database.mysql.MySqlNode + item: + type: org.apache.brooklyn.entity.database.mysql.MySqlNode + name: MySql Node + description: MySql is an open source relational database management system (RDBMS) + - id: org.apache.brooklyn.entity.database.mysql.MySqlCluster + item: + type: org.apache.brooklyn.entity.database.mysql.MySqlCluster + name: MySql Master-Slave cluster + description: Sets up a cluster of MySQL nodes using master-slave relation and binary logging + - id: org.apache.brooklyn.entity.database.postgresql.PostgreSqlNode + item: + type: org.apache.brooklyn.entity.database.postgresql.PostgreSqlNode + name: PostgreSQL Node + description: PostgreSQL is an object-relational database management system (ORDBMS) + - id: org.apache.brooklyn.entity.database.rubyrep.RubyRepNode + item: + type: org.apache.brooklyn.entity.database.rubyrep.RubyRepNode + - id: org.apache.brooklyn.entity.database.mariadb.MariaDbNode + item: + type: org.apache.brooklyn.entity.database.mariadb.MariaDbNode + name: MariaDB Node + description: MariaDB is an open source relational database management system (RDBMS) + + - brooklyn.libraries: + - name: org.apache.brooklyn.software-cm-salt + version: "0.10.0.SNAPSHOT" # BROOKLYN_VERSION + itemType: entity + items: + - id: org.apache.brooklyn.entity.cm.salt.SaltEntity + item: + type: org.apache.brooklyn.entity.cm.salt.SaltEntity + name: SaltEntity + description: Software managed by Salt CM + + - brooklyn.libraries: + - name: org.apache.brooklyn.software-cm-ansible + version: "0.10.0.SNAPSHOT" # BROOKLYN_VERSION + itemType: entity + items: + - id: org.apache.brooklyn.entity.cm.ansible.AnsibleEntity + item: + type: org.apache.brooklyn.entity.cm.ansible.AnsibleEntity + name: AnsibleEntity + description: Software managed by Ansible CM
