You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by dr...@apache.org on 2017/06/29 15:36:18 UTC
[36/50] [abbrv] brooklyn-server git commit: Removes Docs as they need
to be re-writtern to fit into Brooklyn
Removes Docs as they need to be re-writtern to fit into Brooklyn
These will be PRd into brooklyn-docs
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/01457c99
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/01457c99
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/01457c99
Branch: refs/heads/master
Commit: 01457c99eb24640864e8cc2ae342df37d87f17b0
Parents: 758acca
Author: CloudsoftOps <op...@cloudsoft.io>
Authored: Wed May 24 10:17:19 2017 +0100
Committer: CloudsoftOps <op...@cloudsoft.io>
Committed: Wed May 24 10:17:19 2017 +0100
----------------------------------------------------------------------
catalog/pom.xml | 81 --------
container.bom | 2 +-
docker-location/README.md | 19 --
docker-location/docker-container-location.md | 66 -------
docker-location/docker-swarm-location.md | 77 --------
docs-internal/dev.md | 231 ----------------------
getcert.sh | 15 --
kubernetes-location/README.md | 154 ---------------
openshift-location/README.md | 171 ----------------
tests/generic-application.tests.bom | 8 +-
tests/generic.tests.bom | 4 +-
tests/swarm-location.tests.bom | 4 +-
12 files changed, 9 insertions(+), 823 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/01457c99/catalog/pom.xml
----------------------------------------------------------------------
diff --git a/catalog/pom.xml b/catalog/pom.xml
deleted file mode 100644
index 471caad..0000000
--- a/catalog/pom.xml
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <artifactId>docker-catalog</artifactId>
- <packaging>jar</packaging>
-
- <parent>
- <groupId>io.cloudsoft.amp.containerservice</groupId>
- <artifactId>containerservice-parent</artifactId>
- <version>2.1.0-SNAPSHOT</version> <!-- CONTAINER_SERVICE_VERSION -->
- </parent>
-
- <name>Docker Catalog</name>
-
- <build>
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- </resource>
- </resources>
- <plugins>
- <plugin>
- <artifactId>maven-jar-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>test-jar</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <artifactId>maven-resources-plugin</artifactId>
- <executions>
- <execution>
- <id>copy-resources</id>
- <phase>generate-resources</phase>
- <goals>
- <goal>copy-resources</goal>
- </goals>
- <configuration>
- <outputDirectory>${project.build.outputDirectory}/docker</outputDirectory>
- <resources>
- <resource>
- <directory>../</directory>
- <includes>
- <include>*.bom</include>
- <include>examples/*.*</include>
- </includes>
- <excludes>
- <exclude>catalog.bom</exclude>
- </excludes>
- </resource>
- </resources>
- </configuration>
- </execution>
- <execution>
- <id>copy-test-resources</id>
- <phase>generate-test-resources</phase>
- <goals>
- <goal>copy-resources</goal>
- </goals>
- <configuration>
- <outputDirectory>${project.build.testOutputDirectory}/docker</outputDirectory>
- <resources>
- <resource>
- <directory>../</directory>
- <includes>
- <include>tests/*.bom</include>
- </includes>
- </resource>
- </resources>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-</project>
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/01457c99/container.bom
----------------------------------------------------------------------
diff --git a/container.bom b/container.bom
index d9e8814..58de910 100644
--- a/container.bom
+++ b/container.bom
@@ -3,7 +3,7 @@ brooklyn.catalog:
publish:
description: |
Resources for working with Docker Engine from Apache Brooklyn
- license_code: CLOUDSOFT-1.0
+ license_code: Apache-2.0
overview: README.md
qa: tests/docker.tests.bom
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/01457c99/docker-location/README.md
----------------------------------------------------------------------
diff --git a/docker-location/README.md b/docker-location/README.md
deleted file mode 100644
index edb1da0..0000000
--- a/docker-location/README.md
+++ /dev/null
@@ -1,19 +0,0 @@
----
-section: Docker Locations
-section_type: inline
-section_position: 1
-children:
-- docker-container-locations.md
-- docker-swarm-location.md
----
-
-### Docker Locations
-
-Cloudsoft AMP can deploy applications to:
-
-- [Docker containers](docker-container-location.html)
-- [Docker Swarms](docker-swarm-location.html)
-- [Kubernetes Clusters](../kubernetes-location)
-- [Openshift Clusters](../openshift-location)
-
-both provisioned by Cloudsoft AMP and set up manually.
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/01457c99/docker-location/docker-container-location.md
----------------------------------------------------------------------
diff --git a/docker-location/docker-container-location.md b/docker-location/docker-container-location.md
deleted file mode 100644
index 5cb5087..0000000
--- a/docker-location/docker-container-location.md
+++ /dev/null
@@ -1,66 +0,0 @@
----
-section: Docker Container Location
-section_type: inline
-section_position: 2
----
-
-### Docker Container Location
-
-Cloudsoft AMP can deploy applications to [Docker containers](https://www.docker.com/products/docker-engine) both provisioned by Cloudsoft AMP and set up manually.
-
-Here is an example catalog item to add a Docker engine endpoint to your catalog locations:
-
- brooklyn.catalog:
- id: my-docker-engine
- name: "My Docker engine"
- itemType: location
- item:
- type: docker
- brooklyn.config:
- endpoint: https://<< address >>:<< port >>
- identity: << path to my cert.pem >>
- credential: << path to my key.pem >>
- # Default image if no other explicitly set
- # imageId: "cloudsoft/centos:7"
-
-**Note** The endpoint of a Docker engine is the IP + port where the docker engine is currently running. As for the identity and credential, the Docker engine will generate those by default in `~/.docker/certs` folder, unless you specified them during the installation.
-
-#### Docker Container based blueprints
-
-Once your Docker container location has been configured, AMP can launch instances based on a `DockerContainer` entity, this means additional configuration such as custom docker images can be specified. Here's an example which sets up a [Wordpress](https://wordpress.org/) instance:
-
- # see above for a definition of the location
- location: my-docker-engine
-
- services:
- - type: org.apache.brooklyn.container.entity.docker.DockerContainer
- id: wordpress-mysql
- name: MySQL
- brooklyn.config:
- mysql.root_password: password
- docker.container.imageName: mysql:5.6
- # Maps the port to the host node, making it available for external access
- docker.container.inboundPorts:
- - "3306"
- docker.container.environment:
- MYSQL_ROOT_PASSWORD: $brooklyn:config("mysql.root_password")
- - type: org.apache.brooklyn.container.entity.docker.DockerContainer
- id: wordpress
- name: Wordpress
- brooklyn.config:
- docker.container.imageName: wordpress:4-apache
- # Maps the port to the host node, making it available for external access
- docker.container.inboundPorts:
- - "80"
- docker.container.environment:
- WORDPRESS_DB_HOST: $brooklyn:entity("wordpress-mysql").attributeWhenReady("host.subnet.address")
- WORDPRESS_DB_PASSWORD: $brooklyn:entity("wordpress-mysql").config("mysql.root_password")
-
-#### Docker container configuration
-
-To configure the `DockerContainer` entity, the following configuration params are available:
-
-- **docker.container.disableSsh** Skip checks such as ssh for when docker image doesn't allow ssh; use the default image `cloudsoft/centos:7` for ssh-able image
-- **docker.container.imageName** Image name to pull from docker hub; overrides the default one `cloudsoft/centos:7`
-- **docker.container.inboundPorts** List of ports, that the docker image maps to the host, opening them to the public
-- **docker.container.environment** Environment variables to set on container startup; this must be a map
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/01457c99/docker-location/docker-swarm-location.md
----------------------------------------------------------------------
diff --git a/docker-location/docker-swarm-location.md b/docker-location/docker-swarm-location.md
deleted file mode 100644
index 0c69417..0000000
--- a/docker-location/docker-swarm-location.md
+++ /dev/null
@@ -1,77 +0,0 @@
----
-section: Docker Swarm Location
-section_type: inline
-section_position: 3
----
-
-### Docker Swarm Location
-
-Cloudsoft AMP can deploy applications to [Docker Swarms](https://www.docker.com/products/docker-swarm) both provisioned by Cloudsoft AMP and set up manually.
-
-Here is an example catalog item to add a Docker Swarm endpoint to your catalog locations:
-
- brooklyn.catalog:
- id: my-docker-swarm
- name: "My Docker Swarm"
- itemType: location
- item:
- type: docker
- brooklyn.config:
- endpoint: https://<< address >>:<< port >>
- identity: << path to my cert.pem >>
- credential: << path to my key.pem >>
- # Default image if no other explicitly set
- # imageId: "cloudsoft/centos:7"
- templateOptions:
- networkMode: "brooklyn"
-
-**Note** if you have provisioned your own docker swarm you may need to first pull the Cloudsoft
-configured image on the Swarm Manager. Another recommended step is to create a default network for the containers:
-
- docker -H ${swarm_endpoint} ${TLS_OPTIONS} pull cloudsoft/centos:7
- docker -H ${swarm_endpoint} ${TLS_OPTIONS} images --no-trunc
- docker network create --driver=overlay brooklyn
-
-#### Credentials for Deploying to Docker Swarm
-
-To deploy to a Docker Swarm endpoint, you'll need pem files for identity/credential. These can
-either be copied from one of the Docker Engine VMs, or can be generated locally and signed by
-the certificate authority. The actual IP of the client doesn't matter.
-
-To generate your own certificates and signed them with the example CA server included in AMP (note this is not
-recommended for use in a production environment and could be subject to future removal):
-
- # Create your certificates directory
- mkdir -p .certs
-
- # Get yourself a certificate from the CA
- # You can use any IP; to find your IP use `ifconfig`
- own_ip=192.168.1.64
- ca=$(br app "Docker Swarm" ent ca-server sensor main.uri)
- echo ${ca}
- curl -L ${ca}/cacert/ca.pem --output .certs/ca.pem
- openssl genrsa -out .certs/key.pem 2048
- openssl req -new -key .certs/key.pem -days 1825 -out .certs/csr.pem -subj "/CN=${own_ip}"
- curl -X POST --data-binary @.certs/csr.pem ${ca}/sign > .certs/cert.pem
-
-To be able to execute `docker ...` commands locally:
-
- # Set up TLS options to point at your certificates (created above)
- CERTS_DIR=$(pwd)/.certs
- TLS_OPTIONS="--tlsverify --tlscacert=${CERTS_DIR}/ca.pem --tlscert=${CERTS_DIR}/cert.pem --tlskey=${CERTS_DIR}/key.pem"
-
- # Check docker works
- swarm_endpoint=$(br app "Docker Swarm" ent "swarm-cluster" sensor swarm.url)
- echo ${swarm_endpoint}
- docker -H ${swarm_endpoint} ${TLS_OPTIONS} ps
-
- # Run something, and check it is listed
- docker -H ${swarm_endpoint} ${TLS_OPTIONS} run hello-world
- docker -H ${swarm_endpoint} ${TLS_OPTIONS} ps -a
-
-Instead of explicit parameters to `docker` you can use its environment variables as follows:
-
- export DOCKER_HOST=tcp://10.10.10.152:3376
- export DOCKER_TLS_VERIFY=true
- export DOCKER_CERT_PATH=$(pwd)/.certs
- docker ps -a
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/01457c99/docs-internal/dev.md
----------------------------------------------------------------------
diff --git a/docs-internal/dev.md b/docs-internal/dev.md
deleted file mode 100644
index 7a7a6ee..0000000
--- a/docs-internal/dev.md
+++ /dev/null
@@ -1,231 +0,0 @@
-### Setup
-
-1. Run a bleeding-edge AMP (e.g. a very recent snapshot build)
-
-2. Add each of the .bom files to the catalog
-
-Using the CLI:
-
- for b in *.bom tests/*.bom ; do
- echo $b
- br add-catalog $b || break
- done
-
-Note that the order in which you add the catalog entries matters, as you can’t load a file that uses a definition
-that hasn’t been loaded yet. the loop above relies on the fact that so far the files in alphabetical order are also
-in dependency order, just for the convenience of the command. This is really just a convenience and
-not an iron rule that we have to keep.
-
-**or** via the REST API:
-
- AMP_URL=http://127.0.0.1:8081
- AMP_USER=admin
- AMP_PASSWORD=pa55w0rd
- BOMS="ca.bom catalog.bom swarm.bom"
- BOMS="${BOMS} tests/common.tests.bom tests/docker.tests.bom tests/swarm.tests.bom "
- BOMS="${BOMS} tests/jclouds.tests.bom tests/swarm-endpoint.tests.bom "
- BOMS="${BOMS} tests/tests.bom tests/existing-swarm.tests.bom"
- for i in ${BOMS}; do
- curl -u ${AMP_USER}:${AMP_PASSWORD} ${AMP_URL}/v1/catalog --data-binary @${i} || (echo "FAIL ${i}" && break )
- done
-
-
-3. Add the location definition(s) to your test. For example, use the bluebox definitions
- that the QA framework uses (don't forget to run the VPN, and to deploy to CentOS 7).
- See:
-
- - https://github.com/cloudsoft/blueprint-qa-seed/blob/master/locations/bluebox-singapore-centos7.bom
- - https://github.com/cloudsoft/cloudsoft/wiki/QA%20Framework
- - https://github.com/cloudsoft/cloudsoft/wiki/Blue-Box
-
- br add-catalog https://raw.githubusercontent.com/cloudsoft/blueprint-qa-seed/master/locations/bluebox-singapore-centos7.bom?token=ANfNJ5kY9pvufckGUZZ3mzM4FlHq1D2Aks5XX93owA%3D%3D
-
-NOTE - you'll have to get a fresh token of your own by going to Github - I find it convenient enough to
-navigate to https://github.com/cloudsoft/blueprint-qa-seed/tree/master/locations, pick the cloud I want, hit the
-"Raw" button and copy its URL. Also note to add-catalog from https://... make sure you are using a build of `br` from
-after 8th May.
-
-
-### Running tests
-
-To run the suite of tests, use `tests.bom`. For example:
-
- location:
- ibm-bluebox-sng-centos7-vpn
- services:
- - type: docker-and-swarm-engine-tests
-
-And to run tests against an existing Swarm endpoint (changing the part to the pem files accordingly):
-
- location:
- jclouds:docker:
- endpoint: https://10.104.0.75:3376/
- identity: /Users/aled/.docker/.certs-from-server/cert.pem
- credential: /Users/aled/.docker/.certs-from-server/key.pem
- # Needed only if running against Brooklyn (no default image)
- # imageDescriptionRegex: cloudsoft/centos:7
- loginUser: root
- loginUser.password: p4ssw0rd
- onbox.base.dir: /tmp
- # FIXME Need to cloudsoft/centos image that has 'sudo' and 'which' pre-installed
- user: root
- # FIXME Need to add 'brooklyn' network to our pre-existing swarm cluster
- #templateOptions:
- # networkMode: "brooklyn" # the default swarm network
- services:
- - type: deploy-app-to-swarm-single-node
- - type: deploy-app-to-swarm-multi-node
-
-There is also a test available to test a Riak multi-node deployment, `riak-cluster-to-swarm-multi-node`, but this
-currently requires you to do a docker pull of the cloudsoft Ubuntu 14.04 image onto your swarm before you set up
-your location. See the comments in swarm-endpoint-tests.bom.
-
-### Running as an end-user
-
-#### Docker Engine
-
-To deploy a simple Docker Engine:
-
- name: Docker Engine
- location: ibm-bluebox-sng-centos7-vpn
- services:
- - type: docker-engine
-
-Or a Docker Engine with a container:
-
- name: Docker Engine with container
- location: ibm-bluebox-sng-centos7-vpn
- services:
- - type: docker-engine
- brooklyn.children:
- - type: docker-engine-container
- container: cloudsoft/centos:7
-
-
-To deploy a Docker Engine with TLS (which will also require a CA server):
-
- name: Docker Engine with TLS
- location: ibm-bluebox-sng-centos7-vpn
- services:
- - type: ca-server
- id: ca-server
- name: "ca-server"
- - type: docker-engine-tls
- brooklyn.config:
- customize.latch: $brooklyn:entity("ca-server").attributeWhenReady("service.isUp")
- ca.request.root.url: $brooklyn:entity("ca-server").attributeWhenReady("main.uri")
-
-#### VM with Single Docker Container
-
-To deploy a VM with a single container running on it:
-
- name: VM with Container
- location: ibm-bluebox-sng-centos7-vpn
- services:
- - type: docker-vm-container
- brooklyn.config:
- docker.image: redis:latest
-
-
-#### Docker Swarm
-
-To deploy a Docker Swarm cluster:
-
- name: Docker Swarm
- location: ibm-bluebox-sng-centos7-vpn
- services:
- - type: docker-swarm
- brooklyn.config:
- swarm.initial.size: 1
- etcd.initial.size: 1
-
-
-#### Deploying apps to Docker
-
-To deploy to an entity to an existing Docker Swarm endpoint (first changing the path to the
-cert.pem and key.pem - see next section for how to get those files). If targeting a Docker
-Engine directly, use port 2376; if targeting swarm, use 3376:
-
- name: SoftwareProcess on Docker
- location:
- jclouds:docker:
- endpoint: https://10.104.0.105:2376/
- identity: /Users/aled/.docker/.certs-from-server/cert.pem
- credential: /Users/aled/.docker/.certs-from-server/key.pem
- # Needed only if running against Brooklyn (no default image)
- # imageDescriptionRegex: cloudsoft/centos:7
- loginUser: root
- loginUser.password: p4ssw0rd
- onbox.base.dir: /tmp
- services:
- - type: org.apache.brooklyn.entity.machine.MachineEntity
- brooklyn.config:
- onbox.base.dir.skipResolution: true
- sshMonitoring.enabled: false
-
-Note you may need to first pull the image (depending how the Swarm cluster was provisioned):
-
- docker -H ${swarm_endpoint} ${TLS_OPTIONS} pull cloudsoft/centos:7
- docker -H ${swarm_endpoint} ${TLS_OPTIONS} images --no-trunc
-
-Warning: jclouds-docker is currently broken against docker-engine, but works against swarm (as of 8/6/16)
-https://github.com/jclouds/jclouds-labs/commit/7e55ad7971f94b19068cd8da32295d2ab5b9c18c
-added "Node" but this is not returned by docker-engine rest api when inspecting a container.
-
-
-### Credentials for Deploying to Docker Swarm
-
-To deploy to a Docker Swarm endpoint, you'll need pem files for identity/credential. These can
-either be copied from one of the Docker Engine VMs, or can be generated from the certificate
-authority. The actual IP of the client doesn't matter.
-
-To generate your own certificates from the CA server rest api that we wrote (note this is subject
-to deletion in a future release!):
-
- # Create your certificates directory
- mkdir -p .certs
-
- # Get yourself a certificate from the CA
- # You can use any IP; to find your IP use `ifconfig`
- own_ip=192.168.1.64
- ca=$(br app "Docker Swarm" ent ca-server sensor main.uri)
- echo ${ca}
- curl -X POST ${ca}/generate/${own_ip}
- curl ${ca}/cert/${own_ip}/ca.pem > .certs/ca.pem
- curl ${ca}/cert/${own_ip}/cert.pem > .certs/cert.pem
- curl ${ca}/cert/${own_ip}/key.pem > .certs/key.pem
-
-To be able to execute `docker ...` commands locally:
-
- # Set up TLS options to point at your certificates
- CERTS_DIR=${HOME}/.docker/.certs
- TLS_OPTIONS="--tlsverify --tlscacert=${CERTS_DIR}/ca.pem --tlscert=${CERTS_DIR}/cert.pem --tlskey=${CERTS_DIR}/key.pem"
-
- # Check docker works
- swarm_endpoint=$(br app "Docker Swarm" ent "swarm-cluster" sensor swarm.url)
- echo ${swarm_endpoint}
- docker -H ${swarm_endpoint} ${TLS_OPTIONS} ps
-
- # Run something, and check it is listed
- docker -H ${swarm_endpoint} ${TLS_OPTIONS} run hello-world
- docker -H ${swarm_endpoint} ${TLS_OPTIONS} ps -a
-
-Instead of explicit parameters to `docker` you can use its environment variables as follows:
-
- export DOCKER_HOST=tcp://10.10.10.152:3376
- export DOCKER_TLS_VERIFY=true
- export DOCKER_CERT_PATH=.certs
- docker ps -a
-
-
-### Building a Docker Image
-
-To manually test a docker image:
-
- IMAGES_REPO=~/repos/cloudsoft/container-service-images
- IMAGE_NAME=temp/ubuntu:14.04
-
- cd ${IMAGES_REPO}/ubuntu-14.04
- docker build -t ${IMAGE_NAME} .
-
- docker run -P -d -e "CLOUDSOFT_ROOT_PASSWORD=mypa55word" ${IMAGE_NAME}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/01457c99/getcert.sh
----------------------------------------------------------------------
diff --git a/getcert.sh b/getcert.sh
deleted file mode 100755
index 9e59074..0000000
--- a/getcert.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env bash
-
-# Utility script for developers to get a certificate from a ca-server
-# use like getcert.sh $HOME/.certs http://10.20.30.40:8080 (where that is the IP of your CA server)
-
-CERT_DIR=$1
-CA=$2
-
-set -e
-
-mkdir -p ${CERT_DIR}
-curl -L ${CA}/cacert/ca.pem --output ${CERT_DIR}/ca.pem
-openssl genrsa -out ${CERT_DIR}/key.pem 2048
-openssl req -new -key ${CERT_DIR}/key.pem -days 1825 -out ${CERT_DIR}/csr.pem -subj "/CN=$(hostname)"
-curl -X POST --data-binary @${CERT_DIR}/csr.pem ${CA}/sign > ${CERT_DIR}/cert.pem
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/01457c99/kubernetes-location/README.md
----------------------------------------------------------------------
diff --git a/kubernetes-location/README.md b/kubernetes-location/README.md
deleted file mode 100644
index 6feadc4..0000000
--- a/kubernetes-location/README.md
+++ /dev/null
@@ -1,154 +0,0 @@
----
-section: Kubernetes Location
-section_type: inline
-section_position: 4
----
-
-### Kubernetes Location
-
-Cloudsoft AMP can deploy applications to [Kubernetes](http://kubernetes.io/) (k8s) clusters both provisioned by Cloudsoft AMP and set up manually.
-
-Here is an example catalog item to add a Kubernetes endpoint to your catalog locations:
-
- brooklyn.catalog:
- id: my-kubernetes-cluster
- name: "My Kubernetes Cluster"
- itemType: location
- item:
- type: kubernetes
- brooklyn.config:
- endpoint: << endpoint >>
- identity: "guest"
- credential: "guest"
- image: "cloudsoft/centos:7"
- loginUser.password: "p4ssw0rd"
-
-There are a lot of ways to authenticate with kubernetes. AMP configuration for these are documented in the [reference](kubernetes-location-configuration). For example to use client
-certificates use the following example yaml:
-
- brooklyn.catalog:
- id: my-kubernetes-cluster
- name: "My Kubernetes Cluster"
- itemType: location
- item:
- type: kubernetes
- brooklyn.config:
- endpoint: << endpoint >>
- caCertData: |
- << Generated Ca Cert (see below) >>
- clientCertData: |
- << Generated Cert (see below) >>
- clientKeyData: |
- << Generated client key (see below) >>
- image: "cloudsoft/centos:7"
- loginUser.password: "p4ssw0rd"
-
-AMP Deploys to a Kubernetes cluster by modelling a `KubernetesPod` entity which is made up of multiple heterogeneous `DockerContainer` entities.
-
-#### Plain-AMP blueprints
-
-Standard AMP blueprints can be deployed within a K8s cluster, here's a simple example:
-
- location:
- << see above >>
-
- services:
- - type: org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess
- name: "Simple Netcat Server"
- brooklyn.config:
- provisioning.properties:
- inboundPorts: [ 22, 4321 ]
- env:
- CLOUDSOFT_ROOT_PASSWORD: "p4ssw0rd"
- launch.command: |
- yum install -y nc
- echo hello | nc -l 4321 &
- echo $! > $PID_FILE
-
-For each entity AMP will create a [_Deployment_](http://kubernetes.io/docs/user-guide/deployments/).
-This deployment contains a [_ReplicaSet_](http://kubernetes.io/docs/user-guide/replicasets/)
-of replicas (defaulting to one) of a [_Pod_](http://kubernetes.io/docs/user-guide/pods/).
-Each pod contains a single SSHable container based on the `cloudsoft/centos:7` image.
-
-It will then install and launch the entity. Each `inboundPort` will be exposed as a
-[_NodePort_](http://kubernetes.io/docs/user-guide/services/#type-nodeport) in a _Service_.
-
-The config options in the `provisioning.properties` section allow the location to be further customized for each entity, as follows:
-
-- **env** The `cloudsoft/centos:7` image uses an environment variable named `CLOUDSOFT_ROOT_PASSWORD`
- to assign the SSH login user password. This must match the `loginUser.password` configuration on the location.
-- **inboundPorts** The set of ports that should be exposed by the service.
-
-#### Docker Container based blueprints
-
-Alternatively AMP can launch instances based on a `DockerContainer`, this means additional configuration such as custom docker images can be specified. Here's an example which sets up a [Wordpress](https://wordpress.org/) instance:
-
- location:
- << see above >>
-
- services:
- - type: org.apache.brooklyn.container.entity.kubernetes.KubernetesPod
- brooklyn.children:
- - type: org.apache.brooklyn.container.entity.docker.DockerContainer
- id: wordpress-mysql
- name: "MySQL"
- brooklyn.config:
- docker.container.imageName: mysql:5.6
- docker.container.inboundPorts: [ "3306" ]
- docker.container.environment:
- MYSQL_ROOT_PASSWORD: "password"
- provisioning.properties:
- deployment: wordpress-mysql
- - type: org.apache.brooklyn.container.entity.docker.DockerContainer
- id: wordpress
- name: "Wordpress"
- brooklyn.config:
- docker.container.imageName: wordpress:4-apache
- docker.container.inboundPorts: [ "80" ]
- docker.container.environment:
- WORDPRESS_DB_HOST: "wordpress-mysql"
- WORDPRESS_DB_PASSWORD: "password"
-
-The `DockerContainer` entities each create their own _DeploymentConfig_, _ReplicationController_ and _Pod_ entities,
-in the same way as the standard AMP blueprint entities above. Each container entity can be further configured using the following options:
-
-- **docker.container.imageName** The Docker image to use for the container
-- **docker.container.inboundPorts** The set of ports on the container that should be exposed
-- **docker.container.environment** A map of environment variables for the container
-
-Note the use of **deployment** in the `provisioning.properties` configuration, to set the hostname of the MySQL container to allow the Wordpress Apache server to connect to it.
-
-#### Kubernetes location configuration
-
-To configure the kubernetes location for different kubernetes setups the following configuration params are available.
-
-- **caCertData** Data for CA certificate
-- **caCertFile** URL of resource containing CA certificate data
-- **clientCertData** Data for client certificate
-- **clientCertFile** URL of resource containing client certificate data
-- **clientKeyData** Data for client key
-- **clientKeyFile** URL of resource containing client key data
-- **clientKeyAlgo** Algorithm used for the client key
-- **clientKeyPassphrase** Passphrase used for the client key
-- **oauthToken** The OAuth token data for the current user
-- **namespace** Namespace where resources will live; the default is 'amp'
-- **namespace.create** Whether to create the namespace if it does not exist
- - **default** true
-- **namespace.deleteEmpty** Whether to delete an empty namespace when releasing resources
- - **default** false
-- **persistentVolumes** Set up persistent volumes.
-- **deployment** The name of the service the deployment will use.
-- **image** Docker image to be deployed into the pod
-- **osFamily** OS family, e.g. CentOS, Ubuntu
-- **osVersionRegex** Regular expression for the OS version to load
-- **env** Environment variables to inject when starting a container
-- **replicas** Number of replicas of the pod
- - **default** 1
-- **secrets** Kubernetes secrets to be added to the pod
-- **limits** Kubernetes resource limits
-- **privileged** Whether Kubernetes should allow privileged containers
- - **default** false
-- **loginUser** Override the user who logs in initially to perform setup
- - **default** root
-- **loginUser.password** Custom password for the user who logs in initially
-- **injectLoginCredential** Whether to inject login credentials (if null, will infer from image choice); ignored if explicit 'loginUser.password' supplied
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/01457c99/openshift-location/README.md
----------------------------------------------------------------------
diff --git a/openshift-location/README.md b/openshift-location/README.md
deleted file mode 100644
index 7cefbd6..0000000
--- a/openshift-location/README.md
+++ /dev/null
@@ -1,171 +0,0 @@
----
-section: OpenShift Location
-section_type: inline
-section_position: 5
----
-
-### OpenShift Location
-
-Cloudsoft AMP can deploy applications to Red Hat [OpenShift](https://www.openshift.com/) clusters.
-
-Here is an example catalog item to add an OpenShift endpoint to your catalog locations:
-
- brooklyn.catalog:
- id: my-openshift-cluster
- name: "My Openshift Cluster"
- itemType: location
- item:
- type: openshift
- brooklyn.config:
- endpoint: << endpoint >>
- caCertData: |
- << Generated Ca Cert (see below) >>
- clientCertData: |
- << Generated Cert (see below) >>
- clientKeyData: |
- << Generated client key (see below) >>
- namespace: << project name >>
- privileged: true
-
-* Endpoint
-
-The endpoint key is the https URL of your OpenShift master. AMP connects to this to provision applications on the
-cluster.
-
-* OpenShift Authorization
-
-The `caCertData`, `clientCertData` and `clientKeyData` are the credentials for your OpenShift cluster. Note that
-they can also be given as paths to files using the keys `caCertFile`, `clientCertFile` and `clientKeyFile`. See the
-[OpenShift documentation](https://docs.openshift.com/enterprise/3.1/install_config/certificate_customization.html) for
-more detail on the content of these.
-
-An alternate way of authorizing your OpenShift is using OAuth. To obtain the token required you must use the `oc` command-line tool,
-first to log in to OpenShift and then to display the token value, using the `whoami` command:
-
- oc login << endpoint >>
- oc whoami -t
-
-Which will output the token to the command line:
-
- mzUTj0JmWDYLSspumvW5B74rn8geKd6Qll11IPkaqeE
-
-This is then set as the `oauthToken` field in the location:
-
- brooklyn.catalog:
- id: my-openshift-cluster
- name: "My Openshift Cluster"
- itemType: location
- item:
- type: openshift
- brooklyn.config:
- endpoint: << endpoint >>
- oauthToken: mzUTj0JmWDYLSspumvW5B74rn8geKd6Qll11IPkaqeE
- namespace: << project name >>
- privileged: true
-
-* Namespace
-
-The `namespace` key relates to the project in which your AMP managed applications will deploy. If no project exists,
-you will first need to log into your OpenShift cluster and create a project. The `namespace` key should then contain
-the ID of this.
-
-#### OpenShift Configuration
-
-AMP requires that you configure your OpenShift instance with the following options to allow it to fully provision and manage
-applications.
-
-* Container Privileges
-
-Depending on how the images you wish to use have been created, you may need to set up accounts and permissions to allow them to run.
-Containers written for the OpenShift platform follow certain rules such as logging to the console to allow centralized log
-management or avoiding the `root` user since the platform will use an arbitrary user id. For applications that follow these rules
-the default `restricted` security constraints are all that is needed. When using images from Docker Hub, or the `cloudsoft/centos:7`
-image used by native AMP entities, privileged access must be enabled. This can be done by creating a new user for your application,
-and assigning it the `privileged` or `anyuid` security constraints as described in the [documentation](https://docs.openshift.org/latest/admin_guide/manage_scc.html).
-
-Alternatively, for development systems where security is not an issue, you can edit the `restricted` constraint directly, and
-set the configuration option `allowPrivilegedContainer` to `true` and `runAsUser` to have type `RunAsAny`. This can be configured
-using the [oc command](https://docs.openshift.org/latest/cli_reference/index.html) to edit the cluster configuration:
-
- oc login << endpoint >>
- sudo oc edit scc restricted
-
-#### Plain-AMP blueprints
-
-Standard AMP blueprints can be deployed within an OpenShift cluster, here's a simple example:
-
- location:
- << see above >>
-
- services:
- - type: org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess
- name: "Simple Netcat Server"
- brooklyn.config:
- provisioning.properties:
- inboundPorts: [ 22, 4321 ]
- env:
- CLOUDSOFT_ROOT_PASSWORD: "p4ssw0rd"
- launch.command: |
- yum install -y nc
- echo hello | nc -l 4321 &
- echo $! > $PID_FILE
-
-For each entity AMP will create a [_DeploymentConfig_](https://docs.openshift.org/latest/architecture/core_concepts/deployments.html#deployments-and-deployment-configurations).
-This deployment configuration contains a [_ReplicationController_](https://kubernetes.io/docs/user-guide/replication-controller/)
-with replicas (defaulting to one) of a [_Pod_](http://kubernetes.io/docs/user-guide/pods/).
-Each pod contains a single SSHable container based on the `cloudsoft/centos:7` image.
-
-It will then install and launch the entity. Each `inboundPort` will be exposed as a
-[_NodePort_](http://kubernetes.io/docs/user-guide/services/#type-nodeport) in a _Service_.
-
-The config options in the `provisioning.properties` section allow the location to be further customized for each entity, as follows:
-
-- **env** The `cloudsoft/centos:7` image uses an environment variable named `CLOUDSOFT_ROOT_PASSWORD`
- to assign the SSH login user password. This must match the `loginUser.password` configuration on the location.
-- **inboundPorts** The set of ports that should be exposed by the service.
-
-Note the use of **deployment** in the `provisioning.properties` configuration, to set the hostname of the MySQL container to allow the Wordpress Apache server to connect to it.
-
-#### DockerContainer based blueprints
-
-Alternatively AMP can launch instances based on a `DockerContainer`, this means additional configuration such as custom docker images can be specified. Here's an example which sets up a [Wordpress](https://wordpress.org/) instance:
-
- location:
- << see above >>
-
- services:
- - type: org.apache.brooklyn.container.entity.kubernetes.KubernetesPod
- brooklyn.children:
- - type: org.apache.brooklyn.container.entity.docker.DockerContainer
- id: wordpress-mysql
- name: "MySQL"
- brooklyn.config:
- docker.container.imageName: mysql:5.6
- docker.container.inboundPorts: [ "3306" ]
- docker.container.environment:
- MYSQL_ROOT_PASSWORD: "password"
- provisioning.properties:
- deployment: wordpress-mysql
- - type: org.apache.brooklyn.container.entity.docker.DockerContainer
- id: wordpress
- name: "Wordpress"
- brooklyn.config:
- docker.container.imageName: wordpress:4-apache
- docker.container.inboundPorts: [ "80" ]
- docker.container.environment:
- WORDPRESS_DB_HOST: "wordpress-mysql"
- WORDPRESS_DB_PASSWORD: "password"
-
-The `DockerContainer` entities each create their own _DeploymentConfig_, _ReplicationController_ and _Pod_ entities,
-in the same way as the standard AMP blueprint entities above. Each container entity can be further configured using the following options:
-
-- **docker.container.imageName** The Docker image to use for the container
-- **docker.container.inboundPorts** The set of ports on the container that should be exposed
-- **docker.container.environment** A map of environment variables for the container
-
-#### OpenShift location configuration
-
-The OpenShift location uses the same configuration options as the [Kubernetes](../kubernetes-location/README.md)
-location, with the following exception:
-
-- **namespace** Also refers to the OpenShift project the Pod will be started in.
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/01457c99/tests/generic-application.tests.bom
----------------------------------------------------------------------
diff --git a/tests/generic-application.tests.bom b/tests/generic-application.tests.bom
index c871f06..b6007a9 100644
--- a/tests/generic-application.tests.bom
+++ b/tests/generic-application.tests.bom
@@ -11,7 +11,7 @@
# - app comes up
# - via nginx, we can connect to the web-app
# - via nginx (and the web-app), we can write to the database and read from database
- #
+ #
# The different variants of the test will:
# - everything running in cluster;
# See "multi-node-app-cluster".
@@ -25,17 +25,17 @@
#
# It assumes that the tests are run against a location in which VMs can be provisioned
# (which is then overridden where "testing-cluster" should instead be used). For example,
- # "multi-node-app-cloud-to-cluster" deploys nginx to the location passed in; and
+ # "multi-node-app-cloud-to-cluster" deploys nginx to the location passed in; and
# deploys the tomcat-webapp-cluster to "testing-cluster".
##
-
+
brooklyn.catalog:
version: "2.1.0-SNAPSHOT" # CONTAINER_SERVICE_VERSION
iconUrl: https://raw.githubusercontent.com/docker-library/docs/471fa6e4cb58062ccbf91afc111980f9c7004981/swarm/logo.png
dependsOn:
# From https://github.com/brooklyncentral/common-catalog-utils
- commontests/common.tests.bom
- license_code: CLOUDSOFT-1.0
+ license_code: Apache-2.0
items:
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/01457c99/tests/generic.tests.bom
----------------------------------------------------------------------
diff --git a/tests/generic.tests.bom b/tests/generic.tests.bom
index 69acc1b..ec349a2 100644
--- a/tests/generic.tests.bom
+++ b/tests/generic.tests.bom
@@ -4,12 +4,12 @@ brooklyn.catalog:
dependsOn:
# From https://github.com/brooklyncentral/common-catalog-utils
- commontests/common.tests.bom
- license_code: CLOUDSOFT-1.0
+ license_code: Apache-2.0
items:
- "https://raw.githubusercontent.com/brooklyncentral/common-catalog-utils/master/common-tests/src/main/resources/commontests/common.tests.bom"
-
+
- id: cluster-endpoint-tests
name: "Cluster Endpoint Deployment Tests"
description: |
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/01457c99/tests/swarm-location.tests.bom
----------------------------------------------------------------------
diff --git a/tests/swarm-location.tests.bom b/tests/swarm-location.tests.bom
index c8c1abc..3a1f0b5 100644
--- a/tests/swarm-location.tests.bom
+++ b/tests/swarm-location.tests.bom
@@ -4,7 +4,7 @@ brooklyn.catalog:
dependsOn:
# From https://github.com/brooklyncentral/common-catalog-utils
- commontests/common.tests.bom
- license_code: CLOUDSOFT-1.0
+ license_code: Apache-2.0
##
# To test stop effector:
@@ -49,7 +49,7 @@ brooklyn.catalog:
##
items:
-
+
##
# Wrapper test
##