#
# 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.
#
services:
- type: test-apt-systemd-brooklyn
  name: 1. apt-systemd
  location:
    byon:
      hosts: ["172.28.128.3"]
      # privateKeyFile: ~/.ssh/<private key>
      user: ubuntu
  brooklyn.config:
    package.file:  ~/.m2/repository/org/apache/brooklyn/deb-packaging/1.2.0-SNAPSHOT/deb-packaging-1.2.0-SNAPSHOT-all.deb # BROOKLYN_VERSION

---

services:
- type: test-apt-upstart-brooklyn
  name: 2. apt-upstart
  location:
    byon:
      hosts: ["172.28.128.4"]
      # privateKeyFile: ~/.ssh/<private key>
      user: vagrant
  brooklyn.config:
    package.file: ~/.m2/repository/org/apache/brooklyn/deb-packaging/1.2.0-SNAPSHOT/deb-packaging-1.2.0-SNAPSHOT-all.deb # BROOKLYN_VERSION

---

services:
- type: test-yum-systemd-brooklyn
  name: 3. yum-systemd
  location:
    byon:
      hosts: ["172.28.128.5"]
      # privateKeyFile: ~/.ssh/<private key>
      user: vagrant
  brooklyn.config:
    package.file: ~/.m2/repository/org/apache/brooklyn/rpm-packaging/1.2.0-SNAPSHOT/rpm-packaging-1.2.0-SNAPSHOT-noarch.rpm # BROOKLYN_VERSION

---

services:
- type: test-yum-upstart-brooklyn
  name: 4. yum-upstart
  location:
    byon:
      hosts: ["172.28.128.6"]
      # privateKeyFile: ~/.ssh/<private key>
      user: vagrant
  brooklyn.config:
    package.file: ~/.m2/repository/org/apache/brooklyn/rpm-packaging/1.2.0-SNAPSHOT/rpm-packaging-1.2.0-SNAPSHOT-noarch.rpm # BROOKLYN_VERSION


