added DCOS manifests and readme blurb

This commit is contained in:
2018-04-17 16:18:23 -05:00
parent da5c9144a8
commit 81742b4a10
12 changed files with 572 additions and 0 deletions

53
DCOS/cart.json Normal file
View File

@@ -0,0 +1,53 @@
{
"id": "/robotshop/cart",
"backoffFactor": 1.15,
"backoffSeconds": 1,
"container": {
"portMappings": [
{
"containerPort": 0,
"labels": {
"VIP_0": "/robotshop/cart:8080"
},
"servicePort": 10008
}
],
"type": "DOCKER",
"volumes": [],
"docker": {
"image": "robotshop/rs-cart:0.2.4",
"forcePullImage": false,
"privileged": false,
"parameters": []
}
},
"cpus": 0.5,
"disk": 0,
"env": {
"REDIS_HOST": "robotshopredis.marathon.l4lb.thisdcos.directory",
"CATALOGUE_HOST": "robotshopcatalogue.marathon.l4lb.thisdcos.directory"
},
"instances": 1,
"maxLaunchDelaySeconds": 3600,
"mem": 128,
"gpus": 0,
"networks": [
{
"name": "dcos",
"mode": "container"
}
],
"requirePorts": false,
"upgradeStrategy": {
"maximumOverCapacity": 1,
"minimumHealthCapacity": 1
},
"killSelection": "YOUNGEST_FIRST",
"unreachableStrategy": {
"inactiveAfterSeconds": 0,
"expungeAfterSeconds": 0
},
"healthChecks": [],
"fetch": [],
"constraints": []
}

52
DCOS/catalogue.json Normal file
View File

@@ -0,0 +1,52 @@
{
"id": "/robotshop/catalogue",
"backoffFactor": 1.15,
"backoffSeconds": 1,
"container": {
"portMappings": [
{
"containerPort": 0,
"labels": {
"VIP_0": "/robotshop/catalogue:8080"
},
"servicePort": 10006
}
],
"type": "DOCKER",
"volumes": [],
"docker": {
"image": "robotshop/rs-catalogue:0.2.4",
"forcePullImage": false,
"privileged": false,
"parameters": []
}
},
"cpus": 0.5,
"disk": 0,
"env": {
"MONGO_URL": "mongodb://robotshopmongodb.marathon.l4lb.thisdcos.directory:27017/catalogue"
},
"instances": 1,
"maxLaunchDelaySeconds": 3600,
"mem": 256,
"gpus": 0,
"networks": [
{
"name": "dcos",
"mode": "container"
}
],
"requirePorts": false,
"upgradeStrategy": {
"maximumOverCapacity": 1,
"minimumHealthCapacity": 1
},
"killSelection": "YOUNGEST_FIRST",
"unreachableStrategy": {
"inactiveAfterSeconds": 0,
"expungeAfterSeconds": 0
},
"healthChecks": [],
"fetch": [],
"constraints": []
}

44
DCOS/dispatch.json Normal file
View File

@@ -0,0 +1,44 @@
{
"id": "/robotshop/dispatch",
"backoffFactor": 1.15,
"backoffSeconds": 1,
"container": {
"portMappings": [],
"type": "DOCKER",
"volumes": [],
"docker": {
"image": "robotshop/rs-dispatch:0.2.4",
"forcePullImage": false,
"privileged": false,
"parameters": []
}
},
"cpus": 0.5,
"disk": 0,
"env": {
"AMQP_HOST": "robotshoprabbitmq.marathon.l4lb.thisdcos.directory"
},
"instances": 1,
"maxLaunchDelaySeconds": 3600,
"mem": 128,
"gpus": 0,
"networks": [
{
"name": "dcos",
"mode": "container"
}
],
"requirePorts": false,
"upgradeStrategy": {
"maximumOverCapacity": 1,
"minimumHealthCapacity": 1
},
"killSelection": "YOUNGEST_FIRST",
"unreachableStrategy": {
"inactiveAfterSeconds": 0,
"expungeAfterSeconds": 0
},
"healthChecks": [],
"fetch": [],
"constraints": []
}

49
DCOS/mongodb.json Normal file
View File

@@ -0,0 +1,49 @@
{
"id": "/robotshop/mongodb",
"backoffFactor": 1.15,
"backoffSeconds": 1,
"container": {
"portMappings": [
{
"containerPort": 0,
"labels": {
"VIP_0": "/robotshop/mongodb:27017"
},
"servicePort": 10002
}
],
"type": "DOCKER",
"volumes": [],
"docker": {
"image": "robotshop/rs-mongodb:0.2.4",
"forcePullImage": false,
"privileged": false,
"parameters": []
}
},
"cpus": 0.5,
"disk": 0,
"instances": 1,
"maxLaunchDelaySeconds": 3600,
"mem": 256,
"gpus": 0,
"networks": [
{
"name": "dcos",
"mode": "container"
}
],
"requirePorts": false,
"upgradeStrategy": {
"maximumOverCapacity": 1,
"minimumHealthCapacity": 1
},
"killSelection": "YOUNGEST_FIRST",
"unreachableStrategy": {
"inactiveAfterSeconds": 0,
"expungeAfterSeconds": 0
},
"healthChecks": [],
"fetch": [],
"constraints": []
}

49
DCOS/mysql.json Normal file
View File

@@ -0,0 +1,49 @@
{
"id": "/robotshop/mysql",
"backoffFactor": 1.15,
"backoffSeconds": 1,
"container": {
"portMappings": [
{
"containerPort": 0,
"labels": {
"VIP_0": "/robotshop/mysql:3306"
},
"servicePort": 10000
}
],
"type": "DOCKER",
"volumes": [],
"docker": {
"image": "robotshop/rs-shipping-db:0.2.4",
"forcePullImage": false,
"privileged": false,
"parameters": []
}
},
"cpus": 0.5,
"disk": 0,
"instances": 1,
"maxLaunchDelaySeconds": 3600,
"mem": 512,
"gpus": 0,
"networks": [
{
"name": "dcos",
"mode": "container"
}
],
"requirePorts": false,
"upgradeStrategy": {
"maximumOverCapacity": 1,
"minimumHealthCapacity": 1
},
"killSelection": "YOUNGEST_FIRST",
"unreachableStrategy": {
"inactiveAfterSeconds": 0,
"expungeAfterSeconds": 0
},
"healthChecks": [],
"fetch": [],
"constraints": []
}

52
DCOS/payment.json Normal file
View File

@@ -0,0 +1,52 @@
{
"id": "/robotshop/payment",
"backoffFactor": 1.15,
"backoffSeconds": 1,
"container": {
"portMappings": [
{
"containerPort": 0,
"labels": {
"VIP_0": "/robotshop/payment:8080"
},
"servicePort": 10009
}
],
"type": "DOCKER",
"volumes": [],
"docker": {
"image": "robotshop/rs-payment:0.2.4",
"forcePullImage": false,
"privileged": false,
"parameters": []
}
},
"cpus": 0.5,
"disk": 0,
"env": {
"AMQP_HOST": "robotshoprabbitmq.marathon.l4lb.thisdcos.directory"
},
"instances": 1,
"maxLaunchDelaySeconds": 3600,
"mem": 128,
"gpus": 0,
"networks": [
{
"name": "dcos",
"mode": "container"
}
],
"requirePorts": false,
"upgradeStrategy": {
"maximumOverCapacity": 1,
"minimumHealthCapacity": 1
},
"killSelection": "YOUNGEST_FIRST",
"unreachableStrategy": {
"inactiveAfterSeconds": 0,
"expungeAfterSeconds": 0
},
"healthChecks": [],
"fetch": [],
"constraints": []
}

56
DCOS/rabbitmq.json Normal file
View File

@@ -0,0 +1,56 @@
{
"id": "/robotshop/rabbitmq",
"backoffFactor": 1.15,
"backoffSeconds": 1,
"container": {
"portMappings": [
{
"containerPort": 0,
"labels": {
"VIP_0": "/robotshop/rabbitmq:5672"
},
"servicePort": 10004
},
{
"containerPort": 0,
"labels": {
"VIP_1": "/robotshop/rabbitmq:15672"
},
"servicePort": 10005
}
],
"type": "DOCKER",
"volumes": [],
"docker": {
"image": "rabbitmq:3.7-management-alpine",
"forcePullImage": false,
"privileged": false,
"parameters": []
}
},
"cpus": 0.5,
"disk": 0,
"instances": 1,
"maxLaunchDelaySeconds": 3600,
"mem": 256,
"gpus": 0,
"networks": [
{
"name": "dcos",
"mode": "container"
}
],
"requirePorts": false,
"upgradeStrategy": {
"maximumOverCapacity": 1,
"minimumHealthCapacity": 1
},
"killSelection": "YOUNGEST_FIRST",
"unreachableStrategy": {
"inactiveAfterSeconds": 0,
"expungeAfterSeconds": 0
},
"healthChecks": [],
"fetch": [],
"constraints": []
}

49
DCOS/redis.json Normal file
View File

@@ -0,0 +1,49 @@
{
"id": "/robotshop/redis",
"backoffFactor": 1.15,
"backoffSeconds": 1,
"container": {
"portMappings": [
{
"containerPort": 0,
"labels": {
"VIP_0": "/robotshop/redis:6379"
},
"servicePort": 10003
}
],
"type": "DOCKER",
"volumes": [],
"docker": {
"image": "redis:4.0.6",
"forcePullImage": false,
"privileged": false,
"parameters": []
}
},
"cpus": 0.5,
"disk": 0,
"instances": 1,
"maxLaunchDelaySeconds": 3600,
"mem": 128,
"gpus": 0,
"networks": [
{
"name": "dcos",
"mode": "container"
}
],
"requirePorts": false,
"upgradeStrategy": {
"maximumOverCapacity": 1,
"minimumHealthCapacity": 1
},
"killSelection": "YOUNGEST_FIRST",
"unreachableStrategy": {
"inactiveAfterSeconds": 0,
"expungeAfterSeconds": 0
},
"healthChecks": [],
"fetch": [],
"constraints": []
}

53
DCOS/shipping.json Normal file
View File

@@ -0,0 +1,53 @@
{
"id": "/robotshop/shipping",
"backoffFactor": 1.15,
"backoffSeconds": 1,
"container": {
"portMappings": [
{
"containerPort": 0,
"labels": {
"VIP_0": "/robotshop/shipping:8080"
},
"servicePort": 10001
}
],
"type": "DOCKER",
"volumes": [],
"docker": {
"image": "robotshop/rs-shipping:0.2.4",
"forcePullImage": false,
"privileged": false,
"parameters": []
}
},
"cpus": 0.5,
"disk": 0,
"env": {
"DB_HOST": "robotshopmysql.marathon.l4lb.thisdcos.directory",
"CART_ENDPOINT": "robotshopcart.marathon.l4lb.thisdcos.directory:8080"
},
"instances": 1,
"maxLaunchDelaySeconds": 3600,
"mem": 512,
"gpus": 0,
"networks": [
{
"name": "dcos",
"mode": "container"
}
],
"requirePorts": false,
"upgradeStrategy": {
"maximumOverCapacity": 1,
"minimumHealthCapacity": 1
},
"killSelection": "YOUNGEST_FIRST",
"unreachableStrategy": {
"inactiveAfterSeconds": 0,
"expungeAfterSeconds": 0
},
"healthChecks": [],
"fetch": [],
"constraints": []
}

53
DCOS/user.json Normal file
View File

@@ -0,0 +1,53 @@
{
"id": "/robotshop/user",
"backoffFactor": 1.15,
"backoffSeconds": 1,
"container": {
"portMappings": [
{
"containerPort": 0,
"labels": {
"VIP_0": "/robotshop/user:8080"
},
"servicePort": 10007
}
],
"type": "DOCKER",
"volumes": [],
"docker": {
"image": "robotshop/rs-user:0.2.4",
"forcePullImage": false,
"privileged": false,
"parameters": []
}
},
"cpus": 0.5,
"disk": 0,
"env": {
"REDIS_HOST": "robotshopredis.marathon.l4lb.thisdcos.directory",
"MONGO_URL": "mongodb://robotshopmongodb.marathon.l4lb.thisdcos.directory:27017/users"
},
"instances": 1,
"maxLaunchDelaySeconds": 3600,
"mem": 128,
"gpus": 0,
"networks": [
{
"name": "dcos",
"mode": "container"
}
],
"requirePorts": false,
"upgradeStrategy": {
"maximumOverCapacity": 1,
"minimumHealthCapacity": 1
},
"killSelection": "YOUNGEST_FIRST",
"unreachableStrategy": {
"inactiveAfterSeconds": 0,
"expungeAfterSeconds": 0
},
"healthChecks": [],
"fetch": [],
"constraints": []
}

56
DCOS/web.json Normal file
View File

@@ -0,0 +1,56 @@
{
"id": "/robotshop/web",
"backoffFactor": 1.15,
"backoffSeconds": 1,
"container": {
"portMappings": [
{
"containerPort": 8080,
"hostPort": 0,
"protocol": "tcp",
"servicePort": 10010,
"name": "web"
}
],
"type": "DOCKER",
"volumes": [],
"docker": {
"image": "robotshop/rs-web:0.2.4",
"forcePullImage": false,
"privileged": false,
"parameters": []
}
},
"cpus": 0.5,
"disk": 0,
"env": {
"PAYMENT_HOST": "robotshoppayment.marathon.l4lb.thisdcos.directory",
"USER_HOST": "robotshopuser.marathon.l4lb.thisdcos.directory",
"CART_HOST": "robotshopcart.marathon.l4lb.thisdcos.directory",
"CATALOGUE_HOST": "robotshopcatalogue.marathon.l4lb.thisdcos.directory",
"SHIPPING_HOST": "robotshopshipping.marathon.l4lb.thisdcos.directory"
},
"instances": 1,
"maxLaunchDelaySeconds": 3600,
"mem": 128,
"gpus": 0,
"networks": [
{
"name": "dcos",
"mode": "container"
}
],
"requirePorts": false,
"upgradeStrategy": {
"maximumOverCapacity": 1,
"minimumHealthCapacity": 1
},
"killSelection": "YOUNGEST_FIRST",
"unreachableStrategy": {
"inactiveAfterSeconds": 0,
"expungeAfterSeconds": 0
},
"healthChecks": [],
"fetch": [],
"constraints": []
}

View File

@@ -36,6 +36,12 @@ You can run it locally for testing
If you are running it locally on a Linux host you can also run the Instana [agent](https://docs.instana.io/quick_start/agent_setup/container/docker/) locally, unfortunately the agent is currently not supported on Mac.
## Marathon / DCOS
The manifests for robotshop are in the *DCOS/* directory. These manifests were built using a fresh install of DCOS 1.11.0. They should work on a vanilla HA or single instance install.
You may install Instana via the DCOS package manager, instructions are here: https://github.com/dcos/examples/tree/master/instana-agent/1.9
## Kubernetes
The Docker container images are all available on [Docker Hub](https://hub.docker.com/u/robotshop/). The deployment and service definition files using these images are in the *K8s* directory, use these to deploy to a Kubernetes cluster. If you pushed your own images to your registry the deployment files will need to be updated to pull from your registry; using [kompose](https://github.com/kubernetes/kompose) may be of assistance here.