Created
December 1, 2015 13:41
-
-
Save ObjectIsAdvantag/a996f902608a7ab59983 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "Outputs": { | |
| "PublicSlaveDnsAddress": { | |
| "Description": "Public slaves", | |
| "Value": { | |
| "Fn::GetAtt": [ | |
| "PublicSlaveLoadBalancer", | |
| "DNSName" | |
| ] | |
| } | |
| }, | |
| "DnsAddress": { | |
| "Description": "Mesos Master", | |
| "Value": { | |
| "Fn::GetAtt": [ | |
| "ElasticLoadBalancer", | |
| "DNSName" | |
| ] | |
| } | |
| } | |
| }, | |
| "Mappings": { | |
| "RegionToAmi": { | |
| "ap-northeast-1": { | |
| "stable": "ami-6c5ac56c" | |
| }, | |
| "sa-east-1": { | |
| "stable": "ami-3396012e" | |
| }, | |
| "eu-central-1": { | |
| "stable": "ami-840a0899" | |
| }, | |
| "ap-southeast-2": { | |
| "stable": "ami-f5ace5cf" | |
| }, | |
| "ap-southeast-1": { | |
| "stable": "ami-46819614" | |
| }, | |
| "us-west-2": { | |
| "stable": "ami-ed8b90dd" | |
| }, | |
| "us-west-1": { | |
| "stable": "ami-2b29ee6f" | |
| }, | |
| "us-gov-west-1": { | |
| "stable": "ami-796a085a" | |
| }, | |
| "us-east-1": { | |
| "stable": "ami-05783d60" | |
| }, | |
| "eu-west-1": { | |
| "stable": "ami-eb97bc9c" | |
| } | |
| }, | |
| "Parameters": { | |
| "PrivateSubnetRange": { | |
| "default": "10.0.0.0/22" | |
| }, | |
| "StackCreationTimeout": { | |
| "default": "PT30M" | |
| }, | |
| "PublicSubnetRange": { | |
| "default": "10.0.4.0/22" | |
| }, | |
| "SlaveInstanceType": { | |
| "default": "m3.xlarge" | |
| }, | |
| "PublicSlaveInstanceType": { | |
| "default": "m3.xlarge" | |
| }, | |
| "MasterInstanceType": { | |
| "default": "m3.xlarge" | |
| }, | |
| "VPCSubnetRange": { | |
| "default": "10.0.0.0/16" | |
| } | |
| }, | |
| "NATAmi": { | |
| "ap-northeast-1": { | |
| "default": "ami-55c29e54" | |
| }, | |
| "sa-east-1": { | |
| "default": "ami-b972dba4" | |
| }, | |
| "eu-central-1": { | |
| "default": "ami-204c7a3d" | |
| }, | |
| "ap-southeast-2": { | |
| "default": "ami-996402a3" | |
| }, | |
| "ap-southeast-1": { | |
| "default": "ami-b082dae2" | |
| }, | |
| "us-west-1": { | |
| "default": "ami-2b2b296e" | |
| }, | |
| "us-west-2": { | |
| "default": "ami-bb69128b" | |
| }, | |
| "us-east-1": { | |
| "default": "ami-4c9e4b24" | |
| }, | |
| "eu-west-1": { | |
| "default": "ami-3760b040" | |
| } | |
| } | |
| }, | |
| "Resources": { | |
| "PublicSlaveIngressFour": { | |
| "Type": "AWS::EC2::SecurityGroupIngress", | |
| "Properties": { | |
| "CidrIp": "0.0.0.0/0", | |
| "GroupId": { | |
| "Ref": "PublicSlaveSecurityGroup" | |
| }, | |
| "ToPort": "21", | |
| "IpProtocol": "udp", | |
| "FromPort": "0" | |
| } | |
| }, | |
| "OutboundNetworkAclEntry": { | |
| "Type": "AWS::EC2::NetworkAclEntry", | |
| "Properties": { | |
| "CidrBlock": "0.0.0.0/0", | |
| "RuleAction": "allow", | |
| "NetworkAclId": { | |
| "Ref": "PublicNetworkAcl" | |
| }, | |
| "PortRange": { | |
| "To": "65535", | |
| "From": "0" | |
| }, | |
| "Egress": "true", | |
| "Protocol": "-1", | |
| "RuleNumber": "100" | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "37c6e556-89b0-4753-9e37-f8db2a23ec83" | |
| } | |
| } | |
| }, | |
| "Vpc": { | |
| "Type": "AWS::EC2::VPC", | |
| "Properties": { | |
| "CidrBlock": { | |
| "Fn::FindInMap": [ | |
| "Parameters", | |
| "VPCSubnetRange", | |
| "default" | |
| ] | |
| }, | |
| "Tags": [ | |
| { | |
| "Value": { | |
| "Ref": "AWS::StackName" | |
| }, | |
| "Key": "Application" | |
| }, | |
| { | |
| "Value": "Public", | |
| "Key": "Network" | |
| } | |
| ], | |
| "EnableDnsHostnames": "true", | |
| "EnableDnsSupport": "true" | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "10319917-4a50-4ae9-a87e-c5f3fae67ddf" | |
| } | |
| } | |
| }, | |
| "PublicSubnetNetworkAclAssociation": { | |
| "Type": "AWS::EC2::SubnetNetworkAclAssociation", | |
| "Properties": { | |
| "NetworkAclId": { | |
| "Ref": "PublicNetworkAcl" | |
| }, | |
| "SubnetId": { | |
| "Ref": "PublicSubnet" | |
| } | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "e41f1425-c2c4-4f8d-b45e-d5c36b96c737" | |
| } | |
| } | |
| }, | |
| "MasterInstanceProfile": { | |
| "Type": "AWS::IAM::InstanceProfile", | |
| "Properties": { | |
| "Roles": [ | |
| { | |
| "Ref": "MasterRole" | |
| } | |
| ], | |
| "Path": "/" | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "55a5feed-d2c6-4dc9-83cf-94936ec806fe" | |
| } | |
| } | |
| }, | |
| "SlaveToMasterIngress": { | |
| "Type": "AWS::EC2::SecurityGroupIngress", | |
| "Properties": { | |
| "GroupId": { | |
| "Ref": "MasterSecurityGroup" | |
| }, | |
| "SourceSecurityGroupId": { | |
| "Ref": "SlaveSecurityGroup" | |
| }, | |
| "ToPort": "65535", | |
| "IpProtocol": "-1", | |
| "FromPort": "0" | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "60db1cc3-c84b-42d4-bffa-d3689c7220a2" | |
| } | |
| } | |
| }, | |
| "PublicSlaveToMasterIngress": { | |
| "Type": "AWS::EC2::SecurityGroupIngress", | |
| "Properties": { | |
| "GroupId": { | |
| "Ref": "MasterSecurityGroup" | |
| }, | |
| "SourceSecurityGroupId": { | |
| "Ref": "PublicSlaveSecurityGroup" | |
| }, | |
| "ToPort": "65535", | |
| "IpProtocol": "-1", | |
| "FromPort": "0" | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "d76fcb83-c82d-4437-874c-a82b0ed0c49a" | |
| } | |
| } | |
| }, | |
| "PublicNetworkAcl": { | |
| "Type": "AWS::EC2::NetworkAcl", | |
| "Properties": { | |
| "Tags": [ | |
| { | |
| "Value": { | |
| "Ref": "AWS::StackName" | |
| }, | |
| "Key": "Application" | |
| }, | |
| { | |
| "Value": "Public", | |
| "Key": "Network" | |
| } | |
| ], | |
| "VpcId": { | |
| "Ref": "Vpc" | |
| } | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "530df17a-6946-42d9-90fe-10d4120e60a6" | |
| } | |
| } | |
| }, | |
| "PrivateInboundNetworkAclEntry": { | |
| "Type": "AWS::EC2::NetworkAclEntry", | |
| "Properties": { | |
| "CidrBlock": "0.0.0.0/0", | |
| "RuleAction": "allow", | |
| "NetworkAclId": { | |
| "Ref": "PrivateNetworkAcl" | |
| }, | |
| "PortRange": { | |
| "To": "65535", | |
| "From": "0" | |
| }, | |
| "Egress": "false", | |
| "Protocol": "-1", | |
| "RuleNumber": "100" | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "84006722-d7ed-446e-a2eb-116a5b3c4f61" | |
| } | |
| } | |
| }, | |
| "MasterLaunchConfig": { | |
| "Type": "AWS::AutoScaling::LaunchConfiguration", | |
| "Properties": { | |
| "ImageId": { | |
| "Fn::FindInMap": [ | |
| "RegionToAmi", | |
| { | |
| "Ref": "AWS::Region" | |
| }, | |
| "stable" | |
| ] | |
| }, | |
| "InstanceType": { | |
| "Fn::FindInMap": [ | |
| "Parameters", | |
| "MasterInstanceType", | |
| "default" | |
| ] | |
| }, | |
| "SecurityGroups": [ | |
| { | |
| "Ref": "MasterSecurityGroup" | |
| }, | |
| { | |
| "Ref": "AdminSecurityGroup" | |
| } | |
| ], | |
| "BlockDeviceMappings": [ | |
| { | |
| "VirtualName": "ephemeral0", | |
| "DeviceName": "/dev/sdb" | |
| } | |
| ], | |
| "KeyName": { | |
| "Ref": "KeyName" | |
| }, | |
| "IamInstanceProfile": { | |
| "Ref": "MasterInstanceProfile" | |
| }, | |
| "UserData": { | |
| "Fn::Base64": { | |
| "Fn::Join": [ | |
| "", | |
| [ | |
| "#cloud-config\n", | |
| "\"coreos\":\n", | |
| " \"units\":\n", | |
| " - \"command\": |-\n", | |
| " stop\n", | |
| " \"mask\": !!bool |-\n", | |
| " true\n", | |
| " \"name\": |-\n", | |
| " etcd.service\n", | |
| " - \"command\": |-\n", | |
| " stop\n", | |
| " \"mask\": !!bool |-\n", | |
| " true\n", | |
| " \"name\": |-\n", | |
| " update-engine.service\n", | |
| " - \"command\": |-\n", | |
| " stop\n", | |
| " \"mask\": !!bool |-\n", | |
| " true\n", | |
| " \"name\": |-\n", | |
| " locksmithd.service\n", | |
| " - \"command\": |-\n", | |
| " stop\n", | |
| " \"name\": |-\n", | |
| " systemd-resolved.service\n", | |
| " - \"command\": |-\n", | |
| " start\n", | |
| " \"content\": |\n", | |
| " [Unit]\n", | |
| " Description=Formats the /var/lib ephemeral drive\n", | |
| " Before=var-lib.mount dbus.service\n", | |
| " [Service]\n", | |
| " Type=oneshot\n", | |
| " RemainAfterExit=yes\n", | |
| " ExecStart=/bin/bash -c \"(blkid -t TYPE=ext4 | grep xvdb) || (/usr/sbin/mkfs.ext4 -F /dev/xvdb)\"\n", | |
| " \"name\": |-\n", | |
| " format-var-lib-ephemeral.service\n", | |
| " - \"command\": |-\n", | |
| " start\n", | |
| " \"content\": |-\n", | |
| " [Unit]\n", | |
| " Description=Mount /var/lib\n", | |
| " Before=dbus.service\n", | |
| " [Mount]\n", | |
| " What=/dev/xvdb\n", | |
| " Where=/var/lib\n", | |
| " Type=ext4\n", | |
| " \"name\": |-\n", | |
| " var-lib.mount\n", | |
| " - \"command\": |-\n", | |
| " start\n", | |
| " \"content\": |\n", | |
| " [Unit]\n", | |
| " Before=dcos.target\n", | |
| " [Service]\n", | |
| " Type=oneshot\n", | |
| " ExecStartPre=/usr/bin/mkdir -p /etc/profile.d\n", | |
| " ExecStart=/usr/bin/ln -sf /opt/mesosphere/environment.export /etc/profile.d/dcos.sh\n", | |
| " \"name\": |-\n", | |
| " dcos-link-env.service\n", | |
| " - \"content\": |\n", | |
| " [Unit]\n", | |
| " Description=Download the DCOS\n", | |
| " After=network-online.target\n", | |
| " Wants=network-online.target\n", | |
| " ConditionPathExists=!/opt/mesosphere/\n", | |
| " [Service]\n", | |
| " EnvironmentFile=/etc/mesosphere/setup-flags/bootstrap-id\n", | |
| " Type=oneshot\n", | |
| " ExecStartPre=/usr/bin/curl -f --retry 20 -C - -o /tmp/bootstrap.tar.xz https://downloads.mesosphere.com/dcos/stable/bootstrap/${BOOTSTRAP_ID}.bootstrap.tar.xz\n", | |
| " ExecStartPre=/usr/bin/mkdir -p /opt/mesosphere\n", | |
| " ExecStart=/usr/bin/tar -axf /tmp/bootstrap.tar.xz -C /opt/mesosphere\n", | |
| " ExecStartPost=-/usr/bin/rm -f /tmp/bootstrap.tar.xz\n", | |
| " \"name\": |-\n", | |
| " dcos-download.service\n", | |
| " - \"command\": |-\n", | |
| " start\n", | |
| " \"content\": |-\n", | |
| " [Unit]\n", | |
| " Description=Prep the Pkgpanda working directories for this host.\n", | |
| " Requires=dcos-download.service\n", | |
| " After=dcos-download.service\n", | |
| " [Service]\n", | |
| " Type=oneshot\n", | |
| " EnvironmentFile=/opt/mesosphere/environment\n", | |
| " ExecStart=/opt/mesosphere/bin/pkgpanda setup --no-block-systemd\n", | |
| " [Install]\n", | |
| " WantedBy=multi-user.target\n", | |
| " \"enable\": !!bool |-\n", | |
| " true\n", | |
| " \"name\": |-\n", | |
| " dcos-setup.service\n", | |
| " - \"command\": |-\n", | |
| " start\n", | |
| " \"content\": |-\n", | |
| " [Unit]\n", | |
| " Description=Signal CloudFormation Success\n", | |
| " After=dcos.target\n", | |
| " Requires=dcos.target\n", | |
| " ConditionPathExists=!/var/lib/dcos-cfn-signal\n", | |
| " [Service]\n", | |
| " Type=simple\n", | |
| " Restart=on-failure\n", | |
| " StartLimitInterval=0\n", | |
| " RestartSec=15s\n", | |
| " ExecStartPre=/usr/bin/docker pull mbabineau/cfn-bootstrap\n", | |
| " ExecStartPre=/bin/ping -c1 leader.mesos\n", | |
| " ExecStartPre=/usr/bin/docker run --rm mbabineau/cfn-bootstrap \\\n", | |
| " cfn-signal -e 0 \\\n", | |
| " --resource MasterServerGroup \\\n", | |
| " --stack ", | |
| { | |
| "Ref": "AWS::StackName" | |
| }, | |
| " \\", | |
| "\n", | |
| " --region ", | |
| { | |
| "Ref": "AWS::Region" | |
| }, | |
| "", | |
| "\n", | |
| " ExecStart=/usr/bin/touch /var/lib/dcos-cfn-signal\n", | |
| " \"name\": |-\n", | |
| " dcos-cfn-signal.service\n", | |
| " \"update\":\n", | |
| " \"reboot-strategy\": |-\n", | |
| " off\n", | |
| "\"write_files\":\n", | |
| "- \"content\": |\n", | |
| " {\n", | |
| " \"environment\": {\n", | |
| " \"PROVIDER\": \"aws\"\n", | |
| " }\n", | |
| " }\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/setup-packages/dcos-provider-aws--setup/pkginfo.json\n", | |
| "- \"content\": |\n", | |
| " AWS_REGION=", | |
| { | |
| "Ref": "AWS::Region" | |
| }, | |
| "", | |
| "\n", | |
| " AWS_STACK_ID=", | |
| { | |
| "Ref": "AWS::StackId" | |
| }, | |
| "", | |
| "\n", | |
| " AWS_STACK_NAME=", | |
| { | |
| "Ref": "AWS::StackName" | |
| }, | |
| "", | |
| "\n", | |
| " AWS_ACCESS_KEY_ID=", | |
| { | |
| "Ref": "HostKeys" | |
| }, | |
| "", | |
| "\n", | |
| " AWS_SECRET_ACCESS_KEY=", | |
| { | |
| "Fn::GetAtt": [ | |
| "HostKeys", | |
| "SecretAccessKey" | |
| ] | |
| }, | |
| "", | |
| "\n", | |
| " ZOOKEEPER_CLUSTER_SIZE=1\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/setup-packages/dcos-provider-aws--setup/etc/cloudenv\n", | |
| "- \"content\": |\n", | |
| " MESOS_CLUSTER=", | |
| { | |
| "Ref": "AWS::StackName" | |
| }, | |
| "", | |
| "\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/setup-packages/dcos-provider-aws--setup/etc/mesos-master-provider\n", | |
| "- \"content\": |\n", | |
| " EXHIBITOR_BACKEND=AWS_S3\n", | |
| " AWS_REGION=", | |
| { | |
| "Ref": "AWS::Region" | |
| }, | |
| "", | |
| "\n", | |
| " AWS_S3_BUCKET=", | |
| { | |
| "Ref": "ExhibitorS3Bucket" | |
| }, | |
| "", | |
| "\n", | |
| " AWS_S3_PREFIX=", | |
| { | |
| "Ref": "AWS::StackName" | |
| }, | |
| "", | |
| "\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/setup-packages/dcos-provider-aws--setup/etc/exhibitor\n", | |
| "- \"content\": |\n", | |
| " com.netflix.exhibitor.s3.access-key-id=", | |
| { | |
| "Ref": "HostKeys" | |
| }, | |
| "", | |
| "\n", | |
| " com.netflix.exhibitor.s3.access-secret-key=", | |
| { | |
| "Fn::GetAtt": [ | |
| "HostKeys", | |
| "SecretAccessKey" | |
| ] | |
| }, | |
| "", | |
| "\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/setup-packages/dcos-provider-aws--setup/etc/exhibitor.properties\n", | |
| "- \"content\": |-\n", | |
| " MASTER_SOURCE=exhibitor\n", | |
| " EXHIBITOR_ADDRESS=", | |
| { | |
| "Fn::GetAtt": [ | |
| "InternalMasterLoadBalancer", | |
| "DNSName" | |
| ] | |
| }, | |
| "", | |
| "\n", | |
| " RESOLVERS=10.0.0.2\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/setup-packages/dcos-provider-aws--setup/etc/dns_config\n", | |
| "- \"content\": |\n", | |
| " https://downloads.mesosphere.com/dcos/stable\n", | |
| " \"owner\": |-\n", | |
| " root\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/setup-flags/repository-url\n", | |
| " \"permissions\": !!int |-\n", | |
| " 420\n", | |
| "- \"content\": |\n", | |
| " BOOTSTRAP_ID=6b0e032309ca50105edf3871182b8c9c1b27837e\n", | |
| " \"owner\": |-\n", | |
| " root\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/setup-flags/bootstrap-id\n", | |
| " \"permissions\": !!int |-\n", | |
| " 420\n", | |
| "- \"content\": |-\n", | |
| " [\"dcos-config--setup_41d8ad6c80ab8e4291fa76f04e0c0c99f6892eea\", \"dcos-detect-ip--setup_41d8ad6c80ab8e4291fa76f04e0c0c99f6892eea\", \"dcos-metadata--setup_41d8ad6c80ab8e4291fa76f04e0c0c99f6892eea\"]\n", | |
| " \"owner\": |-\n", | |
| " root\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/setup-flags/cluster-packages.json\n", | |
| " \"permissions\": !!int |-\n", | |
| " 420\n", | |
| "- \"content\": \"\"\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/roles/master\n", | |
| "- \"content\": \"\"\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/roles/aws_master\n", | |
| "- \"content\": \"\"\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/roles/aws\n" | |
| ] | |
| ] | |
| } | |
| }, | |
| "AssociatePublicIpAddress": "true" | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "3221f40f-91c0-42cb-bb9e-8d2050b46b9c" | |
| } | |
| } | |
| }, | |
| "SlaveToSlaveIngress": { | |
| "Type": "AWS::EC2::SecurityGroupIngress", | |
| "Properties": { | |
| "GroupId": { | |
| "Ref": "SlaveSecurityGroup" | |
| }, | |
| "SourceSecurityGroupId": { | |
| "Ref": "SlaveSecurityGroup" | |
| }, | |
| "ToPort": "65535", | |
| "IpProtocol": "-1", | |
| "FromPort": "0" | |
| } | |
| }, | |
| "PrivateRoute": { | |
| "Type": "AWS::EC2::Route", | |
| "Properties": { | |
| "DestinationCidrBlock": "0.0.0.0/0", | |
| "RouteTableId": { | |
| "Ref": "PrivateRouteTable" | |
| }, | |
| "InstanceId": { | |
| "Ref": "NATInstance" | |
| } | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "d3c02a9a-f43a-4ca4-97c6-f99b0df678c9" | |
| } | |
| } | |
| }, | |
| "AdminSecurityGroup": { | |
| "Type": "AWS::EC2::SecurityGroup", | |
| "Properties": { | |
| "SecurityGroupIngress": [ | |
| { | |
| "CidrIp": { | |
| "Ref": "AdminLocation" | |
| }, | |
| "ToPort": "65535", | |
| "IpProtocol": "-1", | |
| "FromPort": "0" | |
| } | |
| ], | |
| "VpcId": { | |
| "Ref": "Vpc" | |
| }, | |
| "GroupDescription": "Enable admin access to servers" | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "d10b7d99-2bab-4c27-a2d0-fd18023484c9" | |
| } | |
| } | |
| }, | |
| "InternetGateway": { | |
| "Type": "AWS::EC2::InternetGateway", | |
| "Properties": { | |
| "Tags": [ | |
| { | |
| "Value": { | |
| "Ref": "AWS::StackName" | |
| }, | |
| "Key": "Application" | |
| }, | |
| { | |
| "Value": "Public", | |
| "Key": "Network" | |
| } | |
| ] | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "6c3d4028-8b1b-4bf5-87cc-ba97e3674ba3" | |
| } | |
| } | |
| }, | |
| "PublicSlaveIngressThree": { | |
| "Type": "AWS::EC2::SecurityGroupIngress", | |
| "Properties": { | |
| "CidrIp": "0.0.0.0/0", | |
| "GroupId": { | |
| "Ref": "PublicSlaveSecurityGroup" | |
| }, | |
| "ToPort": "65535", | |
| "IpProtocol": "tcp", | |
| "FromPort": "5052" | |
| } | |
| }, | |
| "MasterSecurityGroup": { | |
| "Type": "AWS::EC2::SecurityGroup", | |
| "Properties": { | |
| "SecurityGroupIngress": [ | |
| { | |
| "SourceSecurityGroupId": { | |
| "Ref": "LbSecurityGroup" | |
| }, | |
| "ToPort": "5050", | |
| "IpProtocol": "tcp", | |
| "FromPort": "5050" | |
| }, | |
| { | |
| "SourceSecurityGroupId": { | |
| "Ref": "LbSecurityGroup" | |
| }, | |
| "ToPort": "80", | |
| "IpProtocol": "tcp", | |
| "FromPort": "80" | |
| }, | |
| { | |
| "SourceSecurityGroupId": { | |
| "Ref": "LbSecurityGroup" | |
| }, | |
| "ToPort": "8080", | |
| "IpProtocol": "tcp", | |
| "FromPort": "8080" | |
| }, | |
| { | |
| "SourceSecurityGroupId": { | |
| "Ref": "LbSecurityGroup" | |
| }, | |
| "ToPort": "8181", | |
| "IpProtocol": "tcp", | |
| "FromPort": "8181" | |
| }, | |
| { | |
| "SourceSecurityGroupId": { | |
| "Ref": "LbSecurityGroup" | |
| }, | |
| "ToPort": "2181", | |
| "IpProtocol": "tcp", | |
| "FromPort": "2181" | |
| } | |
| ], | |
| "VpcId": { | |
| "Ref": "Vpc" | |
| }, | |
| "GroupDescription": "Mesos Masters" | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "ee7e8d47-2cb1-4a76-974e-1ff62016f00a" | |
| } | |
| } | |
| }, | |
| "SlaveToPublicSlaveIngress": { | |
| "Type": "AWS::EC2::SecurityGroupIngress", | |
| "Properties": { | |
| "GroupId": { | |
| "Ref": "PublicSlaveSecurityGroup" | |
| }, | |
| "SourceSecurityGroupId": { | |
| "Ref": "SlaveSecurityGroup" | |
| }, | |
| "ToPort": "65535", | |
| "IpProtocol": "-1", | |
| "FromPort": "0" | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "f17c6df7-e176-4e00-881e-26236908b5ea" | |
| } | |
| } | |
| }, | |
| "PublicSlaveSecurityGroup": { | |
| "Type": "AWS::EC2::SecurityGroup", | |
| "Properties": { | |
| "VpcId": { | |
| "Ref": "Vpc" | |
| }, | |
| "GroupDescription": "Mesos Slaves Public" | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "2070df87-beb9-4529-9ca0-c70c67633969" | |
| } | |
| } | |
| }, | |
| "PrivateSubnetNetworkAclAssociation": { | |
| "Type": "AWS::EC2::SubnetNetworkAclAssociation", | |
| "Properties": { | |
| "NetworkAclId": { | |
| "Ref": "PrivateNetworkAcl" | |
| }, | |
| "SubnetId": { | |
| "Ref": "PrivateSubnet" | |
| } | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "03b18577-608d-4b56-a014-efcd3e0353c1" | |
| } | |
| } | |
| }, | |
| "MasterServerGroup": { | |
| "CreationPolicy": { | |
| "ResourceSignal": { | |
| "Timeout": { | |
| "Fn::FindInMap": [ | |
| "Parameters", | |
| "StackCreationTimeout", | |
| "default" | |
| ] | |
| }, | |
| "Count": 1 | |
| } | |
| }, | |
| "Type": "AWS::AutoScaling::AutoScalingGroup", | |
| "Properties": { | |
| "LoadBalancerNames": [ | |
| { | |
| "Ref": "ElasticLoadBalancer" | |
| }, | |
| { | |
| "Ref": "InternalMasterLoadBalancer" | |
| } | |
| ], | |
| "Tags": [ | |
| { | |
| "Value": "mesos-master", | |
| "Key": "role", | |
| "PropagateAtLaunch": "true" | |
| } | |
| ], | |
| "AvailabilityZones": [ | |
| { | |
| "Fn::GetAtt": [ | |
| "PublicSubnet", | |
| "AvailabilityZone" | |
| ] | |
| } | |
| ], | |
| "LaunchConfigurationName": { | |
| "Ref": "MasterLaunchConfig" | |
| }, | |
| "MaxSize": 1, | |
| "MinSize": 1, | |
| "VPCZoneIdentifier": [ | |
| { | |
| "Ref": "PublicSubnet" | |
| } | |
| ], | |
| "DesiredCapacity": 1 | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "7e733802-8c7c-4c57-a5bc-805247d2ae0b" | |
| } | |
| } | |
| }, | |
| "PublicSlaveIngressOne": { | |
| "Type": "AWS::EC2::SecurityGroupIngress", | |
| "Properties": { | |
| "CidrIp": "0.0.0.0/0", | |
| "GroupId": { | |
| "Ref": "PublicSlaveSecurityGroup" | |
| }, | |
| "ToPort": "21", | |
| "IpProtocol": "tcp", | |
| "FromPort": "0" | |
| } | |
| }, | |
| "MasterToPublicSlaveIngress": { | |
| "Type": "AWS::EC2::SecurityGroupIngress", | |
| "Properties": { | |
| "GroupId": { | |
| "Ref": "PublicSlaveSecurityGroup" | |
| }, | |
| "SourceSecurityGroupId": { | |
| "Ref": "MasterSecurityGroup" | |
| }, | |
| "ToPort": "65535", | |
| "IpProtocol": "-1", | |
| "FromPort": "0" | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "0263ccb5-a02e-4ccb-9622-1e678bac9d20" | |
| } | |
| } | |
| }, | |
| "PublicSlaveLaunchConfig": { | |
| "Type": "AWS::AutoScaling::LaunchConfiguration", | |
| "Properties": { | |
| "ImageId": { | |
| "Fn::FindInMap": [ | |
| "RegionToAmi", | |
| { | |
| "Ref": "AWS::Region" | |
| }, | |
| "stable" | |
| ] | |
| }, | |
| "InstanceType": { | |
| "Fn::FindInMap": [ | |
| "Parameters", | |
| "PublicSlaveInstanceType", | |
| "default" | |
| ] | |
| }, | |
| "SecurityGroups": [ | |
| { | |
| "Ref": "PublicSlaveSecurityGroup" | |
| } | |
| ], | |
| "BlockDeviceMappings": [ | |
| { | |
| "VirtualName": "ephemeral0", | |
| "DeviceName": "/dev/sdb" | |
| } | |
| ], | |
| "KeyName": { | |
| "Ref": "KeyName" | |
| }, | |
| "UserData": { | |
| "Fn::Base64": { | |
| "Fn::Join": [ | |
| "", | |
| [ | |
| "#cloud-config\n", | |
| "\"coreos\":\n", | |
| " \"units\":\n", | |
| " - \"command\": |-\n", | |
| " stop\n", | |
| " \"mask\": !!bool |-\n", | |
| " true\n", | |
| " \"name\": |-\n", | |
| " etcd.service\n", | |
| " - \"command\": |-\n", | |
| " stop\n", | |
| " \"mask\": !!bool |-\n", | |
| " true\n", | |
| " \"name\": |-\n", | |
| " update-engine.service\n", | |
| " - \"command\": |-\n", | |
| " stop\n", | |
| " \"mask\": !!bool |-\n", | |
| " true\n", | |
| " \"name\": |-\n", | |
| " locksmithd.service\n", | |
| " - \"command\": |-\n", | |
| " stop\n", | |
| " \"name\": |-\n", | |
| " systemd-resolved.service\n", | |
| " - \"command\": |-\n", | |
| " start\n", | |
| " \"content\": |\n", | |
| " [Unit]\n", | |
| " Description=Formats the /var/lib ephemeral drive\n", | |
| " Before=var-lib.mount dbus.service\n", | |
| " [Service]\n", | |
| " Type=oneshot\n", | |
| " RemainAfterExit=yes\n", | |
| " ExecStart=/bin/bash -c \"(blkid -t TYPE=ext4 | grep xvdb) || (/usr/sbin/mkfs.ext4 -F /dev/xvdb)\"\n", | |
| " \"name\": |-\n", | |
| " format-var-lib-ephemeral.service\n", | |
| " - \"command\": |-\n", | |
| " start\n", | |
| " \"content\": |-\n", | |
| " [Unit]\n", | |
| " Description=Mount /var/lib\n", | |
| " Before=dbus.service\n", | |
| " [Mount]\n", | |
| " What=/dev/xvdb\n", | |
| " Where=/var/lib\n", | |
| " Type=ext4\n", | |
| " \"name\": |-\n", | |
| " var-lib.mount\n", | |
| " - \"command\": |-\n", | |
| " start\n", | |
| " \"content\": |\n", | |
| " [Unit]\n", | |
| " Before=dcos.target\n", | |
| " [Service]\n", | |
| " Type=oneshot\n", | |
| " ExecStartPre=/usr/bin/mkdir -p /etc/profile.d\n", | |
| " ExecStart=/usr/bin/ln -sf /opt/mesosphere/environment.export /etc/profile.d/dcos.sh\n", | |
| " \"name\": |-\n", | |
| " dcos-link-env.service\n", | |
| " - \"content\": |\n", | |
| " [Unit]\n", | |
| " Description=Download the DCOS\n", | |
| " After=network-online.target\n", | |
| " Wants=network-online.target\n", | |
| " ConditionPathExists=!/opt/mesosphere/\n", | |
| " [Service]\n", | |
| " EnvironmentFile=/etc/mesosphere/setup-flags/bootstrap-id\n", | |
| " Type=oneshot\n", | |
| " ExecStartPre=/usr/bin/curl -f --retry 20 -C - -o /tmp/bootstrap.tar.xz https://downloads.mesosphere.com/dcos/stable/bootstrap/${BOOTSTRAP_ID}.bootstrap.tar.xz\n", | |
| " ExecStartPre=/usr/bin/mkdir -p /opt/mesosphere\n", | |
| " ExecStart=/usr/bin/tar -axf /tmp/bootstrap.tar.xz -C /opt/mesosphere\n", | |
| " ExecStartPost=-/usr/bin/rm -f /tmp/bootstrap.tar.xz\n", | |
| " \"name\": |-\n", | |
| " dcos-download.service\n", | |
| " - \"command\": |-\n", | |
| " start\n", | |
| " \"content\": |-\n", | |
| " [Unit]\n", | |
| " Description=Prep the Pkgpanda working directories for this host.\n", | |
| " Requires=dcos-download.service\n", | |
| " After=dcos-download.service\n", | |
| " [Service]\n", | |
| " Type=oneshot\n", | |
| " EnvironmentFile=/opt/mesosphere/environment\n", | |
| " ExecStart=/opt/mesosphere/bin/pkgpanda setup --no-block-systemd\n", | |
| " [Install]\n", | |
| " WantedBy=multi-user.target\n", | |
| " \"enable\": !!bool |-\n", | |
| " true\n", | |
| " \"name\": |-\n", | |
| " dcos-setup.service\n", | |
| " - \"command\": |-\n", | |
| " start\n", | |
| " \"content\": |-\n", | |
| " [Unit]\n", | |
| " Description=Signal CloudFormation Success\n", | |
| " After=dcos.target\n", | |
| " Requires=dcos.target\n", | |
| " ConditionPathExists=!/var/lib/dcos-cfn-signal\n", | |
| " [Service]\n", | |
| " Type=simple\n", | |
| " Restart=on-failure\n", | |
| " StartLimitInterval=0\n", | |
| " RestartSec=15s\n", | |
| " ExecStartPre=/usr/bin/docker pull mbabineau/cfn-bootstrap\n", | |
| " ExecStartPre=/bin/ping -c1 leader.mesos\n", | |
| " ExecStartPre=/usr/bin/docker run --rm mbabineau/cfn-bootstrap \\\n", | |
| " cfn-signal -e 0 \\\n", | |
| " --resource PublicSlaveServerGroup \\\n", | |
| " --stack ", | |
| { | |
| "Ref": "AWS::StackName" | |
| }, | |
| " \\", | |
| "\n", | |
| " --region ", | |
| { | |
| "Ref": "AWS::Region" | |
| }, | |
| "", | |
| "\n", | |
| " ExecStart=/usr/bin/touch /var/lib/dcos-cfn-signal\n", | |
| " \"name\": |-\n", | |
| " dcos-cfn-signal.service\n", | |
| " \"update\":\n", | |
| " \"reboot-strategy\": |-\n", | |
| " off\n", | |
| "\"write_files\":\n", | |
| "- \"content\": |\n", | |
| " {\n", | |
| " \"environment\": {\n", | |
| " \"PROVIDER\": \"aws\"\n", | |
| " }\n", | |
| " }\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/setup-packages/dcos-provider-aws--setup/pkginfo.json\n", | |
| "- \"content\": |\n", | |
| " AWS_REGION=", | |
| { | |
| "Ref": "AWS::Region" | |
| }, | |
| "", | |
| "\n", | |
| " AWS_STACK_ID=", | |
| { | |
| "Ref": "AWS::StackId" | |
| }, | |
| "", | |
| "\n", | |
| " AWS_STACK_NAME=", | |
| { | |
| "Ref": "AWS::StackName" | |
| }, | |
| "", | |
| "\n", | |
| " AWS_ACCESS_KEY_ID=", | |
| { | |
| "Ref": "HostKeys" | |
| }, | |
| "", | |
| "\n", | |
| " AWS_SECRET_ACCESS_KEY=", | |
| { | |
| "Fn::GetAtt": [ | |
| "HostKeys", | |
| "SecretAccessKey" | |
| ] | |
| }, | |
| "", | |
| "\n", | |
| " ZOOKEEPER_CLUSTER_SIZE=1\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/setup-packages/dcos-provider-aws--setup/etc/cloudenv\n", | |
| "- \"content\": |\n", | |
| " MESOS_CLUSTER=", | |
| { | |
| "Ref": "AWS::StackName" | |
| }, | |
| "", | |
| "\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/setup-packages/dcos-provider-aws--setup/etc/mesos-master-provider\n", | |
| "- \"content\": |\n", | |
| " EXHIBITOR_BACKEND=AWS_S3\n", | |
| " AWS_REGION=", | |
| { | |
| "Ref": "AWS::Region" | |
| }, | |
| "", | |
| "\n", | |
| " AWS_S3_BUCKET=", | |
| { | |
| "Ref": "ExhibitorS3Bucket" | |
| }, | |
| "", | |
| "\n", | |
| " AWS_S3_PREFIX=", | |
| { | |
| "Ref": "AWS::StackName" | |
| }, | |
| "", | |
| "\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/setup-packages/dcos-provider-aws--setup/etc/exhibitor\n", | |
| "- \"content\": |\n", | |
| " com.netflix.exhibitor.s3.access-key-id=", | |
| { | |
| "Ref": "HostKeys" | |
| }, | |
| "", | |
| "\n", | |
| " com.netflix.exhibitor.s3.access-secret-key=", | |
| { | |
| "Fn::GetAtt": [ | |
| "HostKeys", | |
| "SecretAccessKey" | |
| ] | |
| }, | |
| "", | |
| "\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/setup-packages/dcos-provider-aws--setup/etc/exhibitor.properties\n", | |
| "- \"content\": |-\n", | |
| " MASTER_SOURCE=exhibitor\n", | |
| " EXHIBITOR_ADDRESS=", | |
| { | |
| "Fn::GetAtt": [ | |
| "InternalMasterLoadBalancer", | |
| "DNSName" | |
| ] | |
| }, | |
| "", | |
| "\n", | |
| " RESOLVERS=10.0.0.2\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/setup-packages/dcos-provider-aws--setup/etc/dns_config\n", | |
| "- \"content\": |\n", | |
| " https://downloads.mesosphere.com/dcos/stable\n", | |
| " \"owner\": |-\n", | |
| " root\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/setup-flags/repository-url\n", | |
| " \"permissions\": !!int |-\n", | |
| " 420\n", | |
| "- \"content\": |\n", | |
| " BOOTSTRAP_ID=6b0e032309ca50105edf3871182b8c9c1b27837e\n", | |
| " \"owner\": |-\n", | |
| " root\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/setup-flags/bootstrap-id\n", | |
| " \"permissions\": !!int |-\n", | |
| " 420\n", | |
| "- \"content\": |-\n", | |
| " [\"dcos-config--setup_41d8ad6c80ab8e4291fa76f04e0c0c99f6892eea\", \"dcos-detect-ip--setup_41d8ad6c80ab8e4291fa76f04e0c0c99f6892eea\", \"dcos-metadata--setup_41d8ad6c80ab8e4291fa76f04e0c0c99f6892eea\"]\n", | |
| " \"owner\": |-\n", | |
| " root\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/setup-flags/cluster-packages.json\n", | |
| " \"permissions\": !!int |-\n", | |
| " 420\n", | |
| "- \"content\": \"\"\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/roles/slave_public\n", | |
| "- \"content\": \"\"\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/roles/aws\n" | |
| ] | |
| ] | |
| } | |
| }, | |
| "AssociatePublicIpAddress": "true" | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "f22cfe5e-d0b0-4a57-af70-a50863b08b41" | |
| } | |
| } | |
| }, | |
| "PublicRoute": { | |
| "DependsOn": "GatewayToInternet", | |
| "Type": "AWS::EC2::Route", | |
| "Properties": { | |
| "GatewayId": { | |
| "Ref": "InternetGateway" | |
| }, | |
| "DestinationCidrBlock": "0.0.0.0/0", | |
| "RouteTableId": { | |
| "Ref": "PublicRouteTable" | |
| } | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "b3fba23a-d25b-4394-9a1b-80d875d04f54" | |
| } | |
| } | |
| }, | |
| "PublicSlaveServerGroup": { | |
| "CreationPolicy": { | |
| "ResourceSignal": { | |
| "Timeout": { | |
| "Fn::FindInMap": [ | |
| "Parameters", | |
| "StackCreationTimeout", | |
| "default" | |
| ] | |
| }, | |
| "Count": { | |
| "Ref": "PublicSlaveInstanceCount" | |
| } | |
| } | |
| }, | |
| "Type": "AWS::AutoScaling::AutoScalingGroup", | |
| "Properties": { | |
| "LoadBalancerNames": [ | |
| { | |
| "Ref": "PublicSlaveLoadBalancer" | |
| } | |
| ], | |
| "Tags": [ | |
| { | |
| "Value": "mesos-slave", | |
| "Key": "role", | |
| "PropagateAtLaunch": "true" | |
| } | |
| ], | |
| "AvailabilityZones": [ | |
| { | |
| "Fn::GetAtt": [ | |
| "PublicSubnet", | |
| "AvailabilityZone" | |
| ] | |
| } | |
| ], | |
| "LaunchConfigurationName": { | |
| "Ref": "PublicSlaveLaunchConfig" | |
| }, | |
| "MaxSize": { | |
| "Ref": "PublicSlaveInstanceCount" | |
| }, | |
| "MinSize": { | |
| "Ref": "PublicSlaveInstanceCount" | |
| }, | |
| "VPCZoneIdentifier": [ | |
| { | |
| "Ref": "PublicSubnet" | |
| } | |
| ], | |
| "DesiredCapacity": { | |
| "Ref": "PublicSlaveInstanceCount" | |
| } | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "fa07b529-1c93-4d7b-96a9-fdab3eed647c" | |
| } | |
| } | |
| }, | |
| "PublicRouteTable": { | |
| "Type": "AWS::EC2::RouteTable", | |
| "Properties": { | |
| "Tags": [ | |
| { | |
| "Value": { | |
| "Ref": "AWS::StackName" | |
| }, | |
| "Key": "Application" | |
| }, | |
| { | |
| "Value": "Public", | |
| "Key": "Network" | |
| } | |
| ], | |
| "VpcId": { | |
| "Ref": "Vpc" | |
| } | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "088607cd-8a6a-43c6-b020-57f3f7d617c0" | |
| } | |
| } | |
| }, | |
| "PublicSlaveToPublicSlaveIngress": { | |
| "Type": "AWS::EC2::SecurityGroupIngress", | |
| "Properties": { | |
| "GroupId": { | |
| "Ref": "PublicSlaveSecurityGroup" | |
| }, | |
| "SourceSecurityGroupId": { | |
| "Ref": "PublicSlaveSecurityGroup" | |
| }, | |
| "ToPort": "65535", | |
| "IpProtocol": "-1", | |
| "FromPort": "0" | |
| } | |
| }, | |
| "SlaveToMasterLBIngress": { | |
| "Type": "AWS::EC2::SecurityGroupIngress", | |
| "Properties": { | |
| "GroupId": { | |
| "Ref": "LbSecurityGroup" | |
| }, | |
| "SourceSecurityGroupId": { | |
| "Ref": "SlaveSecurityGroup" | |
| }, | |
| "ToPort": "2181", | |
| "IpProtocol": "tcp", | |
| "FromPort": "2181" | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "df0454a0-d0e5-4ea8-8f8f-882386f6b4bb" | |
| } | |
| } | |
| }, | |
| "NATInstance": { | |
| "DependsOn": "GatewayToInternet", | |
| "Type": "AWS::EC2::Instance", | |
| "Properties": { | |
| "NetworkInterfaces": [ | |
| { | |
| "GroupSet": [ | |
| { | |
| "Ref": "SlaveSecurityGroup" | |
| }, | |
| { | |
| "Ref": "MasterSecurityGroup" | |
| }, | |
| { | |
| "Ref": "AdminSecurityGroup" | |
| } | |
| ], | |
| "DeleteOnTermination": "true", | |
| "DeviceIndex": "0", | |
| "SubnetId": { | |
| "Ref": "PublicSubnet" | |
| }, | |
| "AssociatePublicIpAddress": "true" | |
| } | |
| ], | |
| "InstanceType": "m3.medium", | |
| "ImageId": { | |
| "Fn::FindInMap": [ | |
| "NATAmi", | |
| { | |
| "Ref": "AWS::Region" | |
| }, | |
| "default" | |
| ] | |
| }, | |
| "KeyName": { | |
| "Ref": "KeyName" | |
| }, | |
| "SourceDestCheck": "false" | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "e9b85a2c-0d9e-4ddc-969a-6a2e7810bfb1" | |
| } | |
| } | |
| }, | |
| "DHCPOptions": { | |
| "Type": "AWS::EC2::DHCPOptions", | |
| "Properties": { | |
| "DomainName": { | |
| "Fn::If": [ | |
| "RegionIsUsEast1", | |
| "ec2.internal", | |
| { | |
| "Fn::Join": [ | |
| "", | |
| [ | |
| { | |
| "Ref": "AWS::Region" | |
| }, | |
| ".compute.internal" | |
| ] | |
| ] | |
| } | |
| ] | |
| }, | |
| "DomainNameServers": [ | |
| "AmazonProvidedDNS" | |
| ] | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "6ddf6dd1-d3eb-4dd7-8388-5d37584e5a6c" | |
| } | |
| } | |
| }, | |
| "PublicSubnetRouteTableAssociation": { | |
| "Type": "AWS::EC2::SubnetRouteTableAssociation", | |
| "Properties": { | |
| "RouteTableId": { | |
| "Ref": "PublicRouteTable" | |
| }, | |
| "SubnetId": { | |
| "Ref": "PublicSubnet" | |
| } | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "7dbdc88c-6dcb-4b19-9b49-e13e253c12cb" | |
| } | |
| } | |
| }, | |
| "InboundNetworkAclEntry": { | |
| "Type": "AWS::EC2::NetworkAclEntry", | |
| "Properties": { | |
| "CidrBlock": "0.0.0.0/0", | |
| "RuleAction": "allow", | |
| "NetworkAclId": { | |
| "Ref": "PublicNetworkAcl" | |
| }, | |
| "PortRange": { | |
| "To": "65535", | |
| "From": "0" | |
| }, | |
| "Egress": "false", | |
| "Protocol": "-1", | |
| "RuleNumber": "100" | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "90e1ff39-e708-4dc5-903b-8be18449b676" | |
| } | |
| } | |
| }, | |
| "PrivateSubnet": { | |
| "Type": "AWS::EC2::Subnet", | |
| "Properties": { | |
| "CidrBlock": { | |
| "Fn::FindInMap": [ | |
| "Parameters", | |
| "PrivateSubnetRange", | |
| "default" | |
| ] | |
| }, | |
| "Tags": [ | |
| { | |
| "Value": { | |
| "Ref": "AWS::StackName" | |
| }, | |
| "Key": "Application" | |
| }, | |
| { | |
| "Value": "Private", | |
| "Key": "Network" | |
| } | |
| ], | |
| "VpcId": { | |
| "Ref": "Vpc" | |
| } | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "427a1d21-aab3-4a7a-8a0e-d86cd280d45d" | |
| } | |
| } | |
| }, | |
| "HostKeys": { | |
| "Type": "AWS::IAM::AccessKey", | |
| "Properties": { | |
| "UserName": { | |
| "Ref": "IAMUser" | |
| } | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "56670de6-7357-44cb-b398-eeb02110c4f0" | |
| } | |
| } | |
| }, | |
| "PrivateRouteTable": { | |
| "Type": "AWS::EC2::RouteTable", | |
| "Properties": { | |
| "Tags": [ | |
| { | |
| "Value": { | |
| "Ref": "AWS::StackName" | |
| }, | |
| "Key": "Application" | |
| }, | |
| { | |
| "Value": "Public", | |
| "Key": "Network" | |
| } | |
| ], | |
| "VpcId": { | |
| "Ref": "Vpc" | |
| } | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "8b1ef20d-49d6-4bba-9738-cd6565cd7336" | |
| } | |
| } | |
| }, | |
| "PrivateOutboundNetworkAclEntry": { | |
| "Type": "AWS::EC2::NetworkAclEntry", | |
| "Properties": { | |
| "CidrBlock": "0.0.0.0/0", | |
| "RuleAction": "allow", | |
| "NetworkAclId": { | |
| "Ref": "PrivateNetworkAcl" | |
| }, | |
| "PortRange": { | |
| "To": "65535", | |
| "From": "0" | |
| }, | |
| "Egress": "true", | |
| "Protocol": "-1", | |
| "RuleNumber": "100" | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "fa5b6adf-76c8-4322-a9cb-e4598fca9b93" | |
| } | |
| } | |
| }, | |
| "SlaveServerGroup": { | |
| "CreationPolicy": { | |
| "ResourceSignal": { | |
| "Timeout": { | |
| "Fn::FindInMap": [ | |
| "Parameters", | |
| "StackCreationTimeout", | |
| "default" | |
| ] | |
| }, | |
| "Count": { | |
| "Ref": "SlaveInstanceCount" | |
| } | |
| } | |
| }, | |
| "Type": "AWS::AutoScaling::AutoScalingGroup", | |
| "Properties": { | |
| "Tags": [ | |
| { | |
| "Value": "mesos-slave", | |
| "Key": "role", | |
| "PropagateAtLaunch": "true" | |
| } | |
| ], | |
| "AvailabilityZones": [ | |
| { | |
| "Fn::GetAtt": [ | |
| "PrivateSubnet", | |
| "AvailabilityZone" | |
| ] | |
| } | |
| ], | |
| "LaunchConfigurationName": { | |
| "Ref": "SlaveLaunchConfig" | |
| }, | |
| "MaxSize": { | |
| "Ref": "SlaveInstanceCount" | |
| }, | |
| "MinSize": { | |
| "Ref": "SlaveInstanceCount" | |
| }, | |
| "VPCZoneIdentifier": [ | |
| { | |
| "Ref": "PrivateSubnet" | |
| } | |
| ], | |
| "DesiredCapacity": { | |
| "Ref": "SlaveInstanceCount" | |
| } | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "0afaac9e-bd8f-4b1a-a664-661534372905" | |
| } | |
| } | |
| }, | |
| "SlaveLaunchConfig": { | |
| "Type": "AWS::AutoScaling::LaunchConfiguration", | |
| "Properties": { | |
| "ImageId": { | |
| "Fn::FindInMap": [ | |
| "RegionToAmi", | |
| { | |
| "Ref": "AWS::Region" | |
| }, | |
| "stable" | |
| ] | |
| }, | |
| "InstanceType": { | |
| "Fn::FindInMap": [ | |
| "Parameters", | |
| "SlaveInstanceType", | |
| "default" | |
| ] | |
| }, | |
| "SecurityGroups": [ | |
| { | |
| "Ref": "SlaveSecurityGroup" | |
| } | |
| ], | |
| "BlockDeviceMappings": [ | |
| { | |
| "VirtualName": "ephemeral0", | |
| "DeviceName": "/dev/sdb" | |
| } | |
| ], | |
| "KeyName": { | |
| "Ref": "KeyName" | |
| }, | |
| "UserData": { | |
| "Fn::Base64": { | |
| "Fn::Join": [ | |
| "", | |
| [ | |
| "#cloud-config\n", | |
| "\"coreos\":\n", | |
| " \"units\":\n", | |
| " - \"command\": |-\n", | |
| " stop\n", | |
| " \"mask\": !!bool |-\n", | |
| " true\n", | |
| " \"name\": |-\n", | |
| " etcd.service\n", | |
| " - \"command\": |-\n", | |
| " stop\n", | |
| " \"mask\": !!bool |-\n", | |
| " true\n", | |
| " \"name\": |-\n", | |
| " update-engine.service\n", | |
| " - \"command\": |-\n", | |
| " stop\n", | |
| " \"mask\": !!bool |-\n", | |
| " true\n", | |
| " \"name\": |-\n", | |
| " locksmithd.service\n", | |
| " - \"command\": |-\n", | |
| " stop\n", | |
| " \"name\": |-\n", | |
| " systemd-resolved.service\n", | |
| " - \"command\": |-\n", | |
| " start\n", | |
| " \"content\": |\n", | |
| " [Unit]\n", | |
| " Description=Formats the /var/lib ephemeral drive\n", | |
| " Before=var-lib.mount dbus.service\n", | |
| " [Service]\n", | |
| " Type=oneshot\n", | |
| " RemainAfterExit=yes\n", | |
| " ExecStart=/bin/bash -c \"(blkid -t TYPE=ext4 | grep xvdb) || (/usr/sbin/mkfs.ext4 -F /dev/xvdb)\"\n", | |
| " \"name\": |-\n", | |
| " format-var-lib-ephemeral.service\n", | |
| " - \"command\": |-\n", | |
| " start\n", | |
| " \"content\": |-\n", | |
| " [Unit]\n", | |
| " Description=Mount /var/lib\n", | |
| " Before=dbus.service\n", | |
| " [Mount]\n", | |
| " What=/dev/xvdb\n", | |
| " Where=/var/lib\n", | |
| " Type=ext4\n", | |
| " \"name\": |-\n", | |
| " var-lib.mount\n", | |
| " - \"command\": |-\n", | |
| " start\n", | |
| " \"content\": |\n", | |
| " [Unit]\n", | |
| " Before=dcos.target\n", | |
| " [Service]\n", | |
| " Type=oneshot\n", | |
| " ExecStartPre=/usr/bin/mkdir -p /etc/profile.d\n", | |
| " ExecStart=/usr/bin/ln -sf /opt/mesosphere/environment.export /etc/profile.d/dcos.sh\n", | |
| " \"name\": |-\n", | |
| " dcos-link-env.service\n", | |
| " - \"content\": |\n", | |
| " [Unit]\n", | |
| " Description=Download the DCOS\n", | |
| " After=network-online.target\n", | |
| " Wants=network-online.target\n", | |
| " ConditionPathExists=!/opt/mesosphere/\n", | |
| " [Service]\n", | |
| " EnvironmentFile=/etc/mesosphere/setup-flags/bootstrap-id\n", | |
| " Type=oneshot\n", | |
| " ExecStartPre=/usr/bin/curl -f --retry 20 -C - -o /tmp/bootstrap.tar.xz https://downloads.mesosphere.com/dcos/stable/bootstrap/${BOOTSTRAP_ID}.bootstrap.tar.xz\n", | |
| " ExecStartPre=/usr/bin/mkdir -p /opt/mesosphere\n", | |
| " ExecStart=/usr/bin/tar -axf /tmp/bootstrap.tar.xz -C /opt/mesosphere\n", | |
| " ExecStartPost=-/usr/bin/rm -f /tmp/bootstrap.tar.xz\n", | |
| " \"name\": |-\n", | |
| " dcos-download.service\n", | |
| " - \"command\": |-\n", | |
| " start\n", | |
| " \"content\": |-\n", | |
| " [Unit]\n", | |
| " Description=Prep the Pkgpanda working directories for this host.\n", | |
| " Requires=dcos-download.service\n", | |
| " After=dcos-download.service\n", | |
| " [Service]\n", | |
| " Type=oneshot\n", | |
| " EnvironmentFile=/opt/mesosphere/environment\n", | |
| " ExecStart=/opt/mesosphere/bin/pkgpanda setup --no-block-systemd\n", | |
| " [Install]\n", | |
| " WantedBy=multi-user.target\n", | |
| " \"enable\": !!bool |-\n", | |
| " true\n", | |
| " \"name\": |-\n", | |
| " dcos-setup.service\n", | |
| " - \"command\": |-\n", | |
| " start\n", | |
| " \"content\": |-\n", | |
| " [Unit]\n", | |
| " Description=Signal CloudFormation Success\n", | |
| " After=dcos.target\n", | |
| " Requires=dcos.target\n", | |
| " ConditionPathExists=!/var/lib/dcos-cfn-signal\n", | |
| " [Service]\n", | |
| " Type=simple\n", | |
| " Restart=on-failure\n", | |
| " StartLimitInterval=0\n", | |
| " RestartSec=15s\n", | |
| " ExecStartPre=/usr/bin/docker pull mbabineau/cfn-bootstrap\n", | |
| " ExecStartPre=/bin/ping -c1 leader.mesos\n", | |
| " ExecStartPre=/usr/bin/docker run --rm mbabineau/cfn-bootstrap \\\n", | |
| " cfn-signal -e 0 \\\n", | |
| " --resource SlaveServerGroup \\\n", | |
| " --stack ", | |
| { | |
| "Ref": "AWS::StackName" | |
| }, | |
| " \\", | |
| "\n", | |
| " --region ", | |
| { | |
| "Ref": "AWS::Region" | |
| }, | |
| "", | |
| "\n", | |
| " ExecStart=/usr/bin/touch /var/lib/dcos-cfn-signal\n", | |
| " \"name\": |-\n", | |
| " dcos-cfn-signal.service\n", | |
| " \"update\":\n", | |
| " \"reboot-strategy\": |-\n", | |
| " off\n", | |
| "\"write_files\":\n", | |
| "- \"content\": |\n", | |
| " {\n", | |
| " \"environment\": {\n", | |
| " \"PROVIDER\": \"aws\"\n", | |
| " }\n", | |
| " }\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/setup-packages/dcos-provider-aws--setup/pkginfo.json\n", | |
| "- \"content\": |\n", | |
| " AWS_REGION=", | |
| { | |
| "Ref": "AWS::Region" | |
| }, | |
| "", | |
| "\n", | |
| " AWS_STACK_ID=", | |
| { | |
| "Ref": "AWS::StackId" | |
| }, | |
| "", | |
| "\n", | |
| " AWS_STACK_NAME=", | |
| { | |
| "Ref": "AWS::StackName" | |
| }, | |
| "", | |
| "\n", | |
| " AWS_ACCESS_KEY_ID=", | |
| { | |
| "Ref": "HostKeys" | |
| }, | |
| "", | |
| "\n", | |
| " AWS_SECRET_ACCESS_KEY=", | |
| { | |
| "Fn::GetAtt": [ | |
| "HostKeys", | |
| "SecretAccessKey" | |
| ] | |
| }, | |
| "", | |
| "\n", | |
| " ZOOKEEPER_CLUSTER_SIZE=1\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/setup-packages/dcos-provider-aws--setup/etc/cloudenv\n", | |
| "- \"content\": |\n", | |
| " MESOS_CLUSTER=", | |
| { | |
| "Ref": "AWS::StackName" | |
| }, | |
| "", | |
| "\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/setup-packages/dcos-provider-aws--setup/etc/mesos-master-provider\n", | |
| "- \"content\": |\n", | |
| " EXHIBITOR_BACKEND=AWS_S3\n", | |
| " AWS_REGION=", | |
| { | |
| "Ref": "AWS::Region" | |
| }, | |
| "", | |
| "\n", | |
| " AWS_S3_BUCKET=", | |
| { | |
| "Ref": "ExhibitorS3Bucket" | |
| }, | |
| "", | |
| "\n", | |
| " AWS_S3_PREFIX=", | |
| { | |
| "Ref": "AWS::StackName" | |
| }, | |
| "", | |
| "\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/setup-packages/dcos-provider-aws--setup/etc/exhibitor\n", | |
| "- \"content\": |\n", | |
| " com.netflix.exhibitor.s3.access-key-id=", | |
| { | |
| "Ref": "HostKeys" | |
| }, | |
| "", | |
| "\n", | |
| " com.netflix.exhibitor.s3.access-secret-key=", | |
| { | |
| "Fn::GetAtt": [ | |
| "HostKeys", | |
| "SecretAccessKey" | |
| ] | |
| }, | |
| "", | |
| "\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/setup-packages/dcos-provider-aws--setup/etc/exhibitor.properties\n", | |
| "- \"content\": |-\n", | |
| " MASTER_SOURCE=exhibitor\n", | |
| " EXHIBITOR_ADDRESS=", | |
| { | |
| "Fn::GetAtt": [ | |
| "InternalMasterLoadBalancer", | |
| "DNSName" | |
| ] | |
| }, | |
| "", | |
| "\n", | |
| " RESOLVERS=10.0.0.2\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/setup-packages/dcos-provider-aws--setup/etc/dns_config\n", | |
| "- \"content\": |\n", | |
| " https://downloads.mesosphere.com/dcos/stable\n", | |
| " \"owner\": |-\n", | |
| " root\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/setup-flags/repository-url\n", | |
| " \"permissions\": !!int |-\n", | |
| " 420\n", | |
| "- \"content\": |\n", | |
| " BOOTSTRAP_ID=6b0e032309ca50105edf3871182b8c9c1b27837e\n", | |
| " \"owner\": |-\n", | |
| " root\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/setup-flags/bootstrap-id\n", | |
| " \"permissions\": !!int |-\n", | |
| " 420\n", | |
| "- \"content\": |-\n", | |
| " [\"dcos-config--setup_41d8ad6c80ab8e4291fa76f04e0c0c99f6892eea\", \"dcos-detect-ip--setup_41d8ad6c80ab8e4291fa76f04e0c0c99f6892eea\", \"dcos-metadata--setup_41d8ad6c80ab8e4291fa76f04e0c0c99f6892eea\"]\n", | |
| " \"owner\": |-\n", | |
| " root\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/setup-flags/cluster-packages.json\n", | |
| " \"permissions\": !!int |-\n", | |
| " 420\n", | |
| "- \"content\": \"\"\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/roles/slave\n", | |
| "- \"content\": \"\"\n", | |
| " \"path\": |-\n", | |
| " /etc/mesosphere/roles/aws\n" | |
| ] | |
| ] | |
| } | |
| }, | |
| "AssociatePublicIpAddress": "false" | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "daa41454-b9f5-4dd4-a698-05197f830a06" | |
| } | |
| } | |
| }, | |
| "ElasticLoadBalancer": { | |
| "Type": "AWS::ElasticLoadBalancing::LoadBalancer", | |
| "Properties": { | |
| "Subnets": [ | |
| { | |
| "Ref": "PublicSubnet" | |
| } | |
| ], | |
| "HealthCheck": { | |
| "HealthyThreshold": "2", | |
| "Target": "HTTP:5050/health", | |
| "Timeout": "5", | |
| "UnhealthyThreshold": "2", | |
| "Interval": "30" | |
| }, | |
| "SecurityGroups": [ | |
| { | |
| "Ref": "LbSecurityGroup" | |
| }, | |
| { | |
| "Ref": "AdminSecurityGroup" | |
| } | |
| ], | |
| "Listeners": [ | |
| { | |
| "Protocol": "HTTP", | |
| "InstanceProtocol": "HTTP", | |
| "LoadBalancerPort": "80", | |
| "InstancePort": "80" | |
| }, | |
| { | |
| "Protocol": "TCP", | |
| "InstanceProtocol": "TCP", | |
| "LoadBalancerPort": "443", | |
| "InstancePort": "443" | |
| } | |
| ] | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "3317afa8-2d5d-4b57-9aee-8e4d785ab8e9" | |
| } | |
| } | |
| }, | |
| "MasterToSlaveIngress": { | |
| "Type": "AWS::EC2::SecurityGroupIngress", | |
| "Properties": { | |
| "GroupId": { | |
| "Ref": "SlaveSecurityGroup" | |
| }, | |
| "SourceSecurityGroupId": { | |
| "Ref": "MasterSecurityGroup" | |
| }, | |
| "ToPort": "65535", | |
| "IpProtocol": "-1", | |
| "FromPort": "0" | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "ab504899-5150-4672-8369-6a23c4b2f54c" | |
| } | |
| } | |
| }, | |
| "PublicSlaveLoadBalancer": { | |
| "Type": "AWS::ElasticLoadBalancing::LoadBalancer", | |
| "Properties": { | |
| "Subnets": [ | |
| { | |
| "Ref": "PublicSubnet" | |
| } | |
| ], | |
| "HealthCheck": { | |
| "HealthyThreshold": "2", | |
| "Target": "HTTP:80/", | |
| "Timeout": "5", | |
| "UnhealthyThreshold": "2", | |
| "Interval": "30" | |
| }, | |
| "SecurityGroups": [ | |
| { | |
| "Ref": "PublicSlaveSecurityGroup" | |
| } | |
| ], | |
| "Listeners": [ | |
| { | |
| "Protocol": "HTTP", | |
| "InstanceProtocol": "HTTP", | |
| "LoadBalancerPort": "80", | |
| "InstancePort": "80" | |
| }, | |
| { | |
| "Protocol": "TCP", | |
| "InstanceProtocol": "TCP", | |
| "LoadBalancerPort": "443", | |
| "InstancePort": "443" | |
| } | |
| ] | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "5f209750-8f12-4ffd-bc63-05b99969d758" | |
| } | |
| } | |
| }, | |
| "PublicSlaveToSlaveIngress": { | |
| "Type": "AWS::EC2::SecurityGroupIngress", | |
| "Properties": { | |
| "GroupId": { | |
| "Ref": "SlaveSecurityGroup" | |
| }, | |
| "SourceSecurityGroupId": { | |
| "Ref": "PublicSlaveSecurityGroup" | |
| }, | |
| "ToPort": "65535", | |
| "IpProtocol": "-1", | |
| "FromPort": "0" | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "3dbece30-bb85-4e68-95c1-10579f0b5afc" | |
| } | |
| } | |
| }, | |
| "PublicSlaveIngressTwo": { | |
| "Type": "AWS::EC2::SecurityGroupIngress", | |
| "Properties": { | |
| "CidrIp": "0.0.0.0/0", | |
| "GroupId": { | |
| "Ref": "PublicSlaveSecurityGroup" | |
| }, | |
| "ToPort": "5050", | |
| "IpProtocol": "tcp", | |
| "FromPort": "23" | |
| } | |
| }, | |
| "SlaveSecurityGroup": { | |
| "Type": "AWS::EC2::SecurityGroup", | |
| "Properties": { | |
| "VpcId": { | |
| "Ref": "Vpc" | |
| }, | |
| "GroupDescription": "Mesos Slaves" | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "88522464-ab02-4ffc-860a-82f064794212" | |
| } | |
| } | |
| }, | |
| "VPCDHCPOptionsAssociation": { | |
| "Type": "AWS::EC2::VPCDHCPOptionsAssociation", | |
| "Properties": { | |
| "DhcpOptionsId": { | |
| "Ref": "DHCPOptions" | |
| }, | |
| "VpcId": { | |
| "Ref": "Vpc" | |
| } | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "6aae04ac-fd70-4270-bf84-ebd53142efba" | |
| } | |
| } | |
| }, | |
| "PrivateSubnetRouteTableAssociation": { | |
| "Type": "AWS::EC2::SubnetRouteTableAssociation", | |
| "Properties": { | |
| "RouteTableId": { | |
| "Ref": "PrivateRouteTable" | |
| }, | |
| "SubnetId": { | |
| "Ref": "PrivateSubnet" | |
| } | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "f56b491f-ee44-4ea7-a1d4-94281bb818f6" | |
| } | |
| } | |
| }, | |
| "InternalMasterLoadBalancer": { | |
| "Type": "AWS::ElasticLoadBalancing::LoadBalancer", | |
| "Properties": { | |
| "Subnets": [ | |
| { | |
| "Ref": "PublicSubnet" | |
| } | |
| ], | |
| "HealthCheck": { | |
| "HealthyThreshold": "2", | |
| "Target": "HTTP:5050/health", | |
| "Timeout": "5", | |
| "UnhealthyThreshold": "2", | |
| "Interval": "30" | |
| }, | |
| "Scheme": "internal", | |
| "SecurityGroups": [ | |
| { | |
| "Ref": "LbSecurityGroup" | |
| }, | |
| { | |
| "Ref": "AdminSecurityGroup" | |
| }, | |
| { | |
| "Ref": "SlaveSecurityGroup" | |
| }, | |
| { | |
| "Ref": "PublicSlaveSecurityGroup" | |
| }, | |
| { | |
| "Ref": "MasterSecurityGroup" | |
| } | |
| ], | |
| "Listeners": [ | |
| { | |
| "Protocol": "HTTP", | |
| "InstanceProtocol": "HTTP", | |
| "LoadBalancerPort": "5050", | |
| "InstancePort": "5050" | |
| }, | |
| { | |
| "Protocol": "TCP", | |
| "InstanceProtocol": "TCP", | |
| "LoadBalancerPort": "2181", | |
| "InstancePort": "2181" | |
| }, | |
| { | |
| "Protocol": "HTTP", | |
| "InstanceProtocol": "HTTP", | |
| "LoadBalancerPort": "8181", | |
| "InstancePort": "8181" | |
| }, | |
| { | |
| "Protocol": "HTTP", | |
| "InstanceProtocol": "HTTP", | |
| "LoadBalancerPort": "80", | |
| "InstancePort": "80" | |
| }, | |
| { | |
| "Protocol": "TCP", | |
| "InstanceProtocol": "TCP", | |
| "LoadBalancerPort": "443", | |
| "InstancePort": "443" | |
| }, | |
| { | |
| "Protocol": "HTTP", | |
| "InstanceProtocol": "HTTP", | |
| "LoadBalancerPort": "8080", | |
| "InstancePort": "8080" | |
| } | |
| ] | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "8be6a4d0-cfc6-426e-ba6f-87d15f3ee7ea" | |
| } | |
| } | |
| }, | |
| "GatewayToInternet": { | |
| "Type": "AWS::EC2::VPCGatewayAttachment", | |
| "Properties": { | |
| "InternetGatewayId": { | |
| "Ref": "InternetGateway" | |
| }, | |
| "VpcId": { | |
| "Ref": "Vpc" | |
| } | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "351a27dd-5a11-4c21-9084-c9e5ff39bafd" | |
| } | |
| } | |
| }, | |
| "IAMUser": { | |
| "Type": "AWS::IAM::User", | |
| "Properties": { | |
| "Policies": [ | |
| { | |
| "PolicyDocument": { | |
| "Statement": [ | |
| { | |
| "Effect": "Allow", | |
| "Resource": [ | |
| { | |
| "Fn::Join": [ | |
| "", | |
| [ | |
| "arn:aws:s3:::", | |
| { | |
| "Ref": "ExhibitorS3Bucket" | |
| }, | |
| "/*" | |
| ] | |
| ] | |
| }, | |
| { | |
| "Fn::Join": [ | |
| "", | |
| [ | |
| "arn:aws:s3:::", | |
| { | |
| "Ref": "ExhibitorS3Bucket" | |
| } | |
| ] | |
| ] | |
| } | |
| ], | |
| "Action": [ | |
| "s3:AbortMultipartUpload", | |
| "s3:DeleteObject", | |
| "s3:GetBucketAcl", | |
| "s3:GetBucketPolicy", | |
| "s3:GetObject", | |
| "s3:GetObjectAcl", | |
| "s3:ListBucket", | |
| "s3:ListBucketMultipartUploads", | |
| "s3:ListMultipartUploadParts", | |
| "s3:PutObject", | |
| "s3:PutObjectAcl" | |
| ] | |
| }, | |
| { | |
| "Effect": "Allow", | |
| "Resource": [ | |
| { | |
| "Ref": "AWS::StackId" | |
| }, | |
| { | |
| "Fn::Join": [ | |
| "", | |
| [ | |
| { | |
| "Ref": "AWS::StackId" | |
| }, | |
| "/*" | |
| ] | |
| ] | |
| } | |
| ], | |
| "Action": [ | |
| "cloudformation:*" | |
| ] | |
| }, | |
| { | |
| "Effect": "Allow", | |
| "Resource": "*", | |
| "Action": [ | |
| "ec2:DescribeKeyPairs", | |
| "ec2:DescribeSubnets", | |
| "autoscaling:DescribeLaunchConfigurations", | |
| "autoscaling:UpdateAutoScalingGroup", | |
| "autoscaling:DescribeAutoScalingGroups", | |
| "autoscaling:DescribeScalingActivities", | |
| "elasticloadbalancing:DescribeLoadBalancers" | |
| ] | |
| } | |
| ], | |
| "Version": "2012-10-17" | |
| }, | |
| "PolicyName": "root" | |
| } | |
| ] | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "ad4d94e0-ad01-495c-936a-5fc3b9568c95" | |
| } | |
| } | |
| }, | |
| "MasterToMasterIngress": { | |
| "Type": "AWS::EC2::SecurityGroupIngress", | |
| "Properties": { | |
| "GroupId": { | |
| "Ref": "MasterSecurityGroup" | |
| }, | |
| "SourceSecurityGroupId": { | |
| "Ref": "MasterSecurityGroup" | |
| }, | |
| "ToPort": "65535", | |
| "IpProtocol": "-1", | |
| "FromPort": "0" | |
| } | |
| }, | |
| "PrivateNetworkAcl": { | |
| "Type": "AWS::EC2::NetworkAcl", | |
| "Properties": { | |
| "Tags": [ | |
| { | |
| "Value": { | |
| "Ref": "AWS::StackName" | |
| }, | |
| "Key": "Application" | |
| }, | |
| { | |
| "Value": "Public", | |
| "Key": "Network" | |
| } | |
| ], | |
| "VpcId": { | |
| "Ref": "Vpc" | |
| } | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "2afc78ac-5037-4622-bfb3-732e48f44c11" | |
| } | |
| } | |
| }, | |
| "ExhibitorS3Bucket": { | |
| "DeletionPolicy": "Retain", | |
| "Type": "AWS::S3::Bucket", | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "86a487f2-2709-4ca1-a1d4-9fae522eb073" | |
| } | |
| } | |
| }, | |
| "PublicSlaveIngressSix": { | |
| "Type": "AWS::EC2::SecurityGroupIngress", | |
| "Properties": { | |
| "CidrIp": "0.0.0.0/0", | |
| "GroupId": { | |
| "Ref": "PublicSlaveSecurityGroup" | |
| }, | |
| "ToPort": "65535", | |
| "IpProtocol": "udp", | |
| "FromPort": "5052" | |
| } | |
| }, | |
| "PublicSubnet": { | |
| "Type": "AWS::EC2::Subnet", | |
| "Properties": { | |
| "CidrBlock": { | |
| "Fn::FindInMap": [ | |
| "Parameters", | |
| "PublicSubnetRange", | |
| "default" | |
| ] | |
| }, | |
| "Tags": [ | |
| { | |
| "Value": { | |
| "Ref": "AWS::StackName" | |
| }, | |
| "Key": "Application" | |
| }, | |
| { | |
| "Value": "Public", | |
| "Key": "Network" | |
| } | |
| ], | |
| "VpcId": { | |
| "Ref": "Vpc" | |
| } | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "5cc252ad-a5f9-4a76-9459-946779c512b2" | |
| } | |
| } | |
| }, | |
| "MasterRole": { | |
| "Type": "AWS::IAM::Role", | |
| "Properties": { | |
| "AssumeRolePolicyDocument": { | |
| "Statement": [ | |
| { | |
| "Effect": "Allow", | |
| "Principal": { | |
| "Service": [ | |
| "ec2.amazonaws.com" | |
| ] | |
| }, | |
| "Action": [ | |
| "sts:AssumeRole" | |
| ] | |
| } | |
| ], | |
| "Version": "2012-10-17" | |
| }, | |
| "Policies": [ | |
| { | |
| "PolicyDocument": { | |
| "Statement": [ | |
| { | |
| "Effect": "Allow", | |
| "Resource": [ | |
| { | |
| "Fn::Join": [ | |
| "", | |
| [ | |
| "arn:aws:s3:::", | |
| { | |
| "Ref": "ExhibitorS3Bucket" | |
| }, | |
| "/*" | |
| ] | |
| ] | |
| }, | |
| { | |
| "Fn::Join": [ | |
| "", | |
| [ | |
| "arn:aws:s3:::", | |
| { | |
| "Ref": "ExhibitorS3Bucket" | |
| } | |
| ] | |
| ] | |
| } | |
| ], | |
| "Action": [ | |
| "s3:AbortMultipartUpload", | |
| "s3:DeleteObject", | |
| "s3:GetBucketAcl", | |
| "s3:GetBucketPolicy", | |
| "s3:GetObject", | |
| "s3:GetObjectAcl", | |
| "s3:ListBucket", | |
| "s3:ListBucketMultipartUploads", | |
| "s3:ListMultipartUploadParts", | |
| "s3:PutObject", | |
| "s3:PutObjectAcl" | |
| ] | |
| }, | |
| { | |
| "Effect": "Allow", | |
| "Resource": [ | |
| { | |
| "Ref": "AWS::StackId" | |
| }, | |
| { | |
| "Fn::Join": [ | |
| "", | |
| [ | |
| { | |
| "Ref": "AWS::StackId" | |
| }, | |
| "/*" | |
| ] | |
| ] | |
| } | |
| ], | |
| "Action": [ | |
| "cloudformation:*" | |
| ] | |
| }, | |
| { | |
| "Effect": "Allow", | |
| "Resource": "*", | |
| "Action": [ | |
| "ec2:DescribeKeyPairs", | |
| "ec2:DescribeSubnets", | |
| "autoscaling:DescribeLaunchConfigurations", | |
| "autoscaling:UpdateAutoScalingGroup", | |
| "autoscaling:DescribeAutoScalingGroups", | |
| "autoscaling:DescribeScalingActivities", | |
| "elasticloadbalancing:DescribeLoadBalancers" | |
| ] | |
| } | |
| ], | |
| "Version": "2012-10-17" | |
| }, | |
| "PolicyName": "root" | |
| } | |
| ], | |
| "Path": "/" | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "d640f387-3376-4263-acc1-3db83a600aa6" | |
| } | |
| } | |
| }, | |
| "PublicSlaveIngressFive": { | |
| "Type": "AWS::EC2::SecurityGroupIngress", | |
| "Properties": { | |
| "CidrIp": "0.0.0.0/0", | |
| "GroupId": { | |
| "Ref": "PublicSlaveSecurityGroup" | |
| }, | |
| "ToPort": "5050", | |
| "IpProtocol": "udp", | |
| "FromPort": "23" | |
| } | |
| }, | |
| "LbSecurityGroup": { | |
| "Type": "AWS::EC2::SecurityGroup", | |
| "Properties": { | |
| "VpcId": { | |
| "Ref": "Vpc" | |
| }, | |
| "GroupDescription": "Mesos Master LB" | |
| }, | |
| "Metadata": { | |
| "AWS::CloudFormation::Designer": { | |
| "id": "e2590da3-90ae-4501-b928-6d23c7b0a0d2" | |
| } | |
| } | |
| } | |
| }, | |
| "Description": "Launching the Mesosphere DCOS cluster", | |
| "AWSTemplateFormatVersion": "2010-09-09", | |
| "Conditions": { | |
| "RegionIsUsEast1": { | |
| "Fn::Equals": [ | |
| { | |
| "Ref": "AWS::Region" | |
| }, | |
| "us-east-1" | |
| ] | |
| } | |
| }, | |
| "Parameters": { | |
| "SlaveInstanceCount": { | |
| "Default": "5", | |
| "Description": "Number of slave nodes to launch", | |
| "Type": "Number" | |
| }, | |
| "AdminLocation": { | |
| "Default": "0.0.0.0/0", | |
| "AllowedPattern": "^([0-9]+\\.){3}[0-9]+\\/[0-9]+$", | |
| "Type": "String", | |
| "MaxLength": "18", | |
| "MinLength": "9", | |
| "Description": "The IP range to whitelist for admin access.", | |
| "ConstraintDescription": "must be a valid CIDR." | |
| }, | |
| "KeyName": { | |
| "Description": "Name of SSH key to link", | |
| "Type": "AWS::EC2::KeyPair::KeyName" | |
| }, | |
| "AcceptEULA": { | |
| "Description": "Please read and agree to our EULA: https://docs.mesosphere.com/community-edition-eula/", | |
| "AllowedValues": [ | |
| "Yes" | |
| ], | |
| "Type": "String" | |
| }, | |
| "PublicSlaveInstanceCount": { | |
| "Default": "1", | |
| "Description": "Number of public slave nodes to launch", | |
| "Type": "Number" | |
| } | |
| }, | |
| "Metadata": { | |
| "DcosImageCommit": "4f65fe21c539b5e7234672d2b7a78f211890b5fc", | |
| "TemplateGenerationDate": "2015-11-12 01:12:11.034661", | |
| "AWS::CloudFormation::Designer": { | |
| "86a487f2-2709-4ca1-a1d4-9fae522eb073": { | |
| "size": { | |
| "width": 60, | |
| "height": 60 | |
| }, | |
| "position": { | |
| "x": 1050, | |
| "y": 90 | |
| }, | |
| "z": 1, | |
| "embeds": [] | |
| }, | |
| "d640f387-3376-4263-acc1-3db83a600aa6": { | |
| "size": { | |
| "width": 60, | |
| "height": 60 | |
| }, | |
| "position": { | |
| "x": 1050, | |
| "y": 210 | |
| }, | |
| "z": 1, | |
| "embeds": [], | |
| "isrelatedto": [ | |
| "86a487f2-2709-4ca1-a1d4-9fae522eb073" | |
| ] | |
| }, | |
| "ad4d94e0-ad01-495c-936a-5fc3b9568c95": { | |
| "size": { | |
| "width": 60, | |
| "height": 60 | |
| }, | |
| "position": { | |
| "x": 1050, | |
| "y": 330 | |
| }, | |
| "z": 1, | |
| "embeds": [], | |
| "isrelatedto": [ | |
| "86a487f2-2709-4ca1-a1d4-9fae522eb073" | |
| ] | |
| }, | |
| "56670de6-7357-44cb-b398-eeb02110c4f0": { | |
| "size": { | |
| "width": 60, | |
| "height": 60 | |
| }, | |
| "position": { | |
| "x": 1050, | |
| "y": 450 | |
| }, | |
| "z": 1, | |
| "embeds": [], | |
| "isrelatedto": [ | |
| "ad4d94e0-ad01-495c-936a-5fc3b9568c95" | |
| ] | |
| }, | |
| "6ddf6dd1-d3eb-4dd7-8388-5d37584e5a6c": { | |
| "size": { | |
| "width": 60, | |
| "height": 60 | |
| }, | |
| "position": { | |
| "x": 1050, | |
| "y": 570 | |
| }, | |
| "z": 1, | |
| "embeds": [] | |
| }, | |
| "6c3d4028-8b1b-4bf5-87cc-ba97e3674ba3": { | |
| "size": { | |
| "width": 60, | |
| "height": 60 | |
| }, | |
| "position": { | |
| "x": 1050, | |
| "y": 690 | |
| }, | |
| "z": 1, | |
| "embeds": [] | |
| }, | |
| "55a5feed-d2c6-4dc9-83cf-94936ec806fe": { | |
| "size": { | |
| "width": 60, | |
| "height": 60 | |
| }, | |
| "position": { | |
| "x": 1050, | |
| "y": 810 | |
| }, | |
| "z": 1, | |
| "embeds": [], | |
| "isassociatedwith": [ | |
| "d640f387-3376-4263-acc1-3db83a600aa6" | |
| ] | |
| }, | |
| "10319917-4a50-4ae9-a87e-c5f3fae67ddf": { | |
| "size": { | |
| "width": 930, | |
| "height": 930 | |
| }, | |
| "position": { | |
| "x": 220, | |
| "y": 100 | |
| }, | |
| "z": 1, | |
| "embeds": [ | |
| "e2590da3-90ae-4501-b928-6d23c7b0a0d2", | |
| "5cc252ad-a5f9-4a76-9459-946779c512b2", | |
| "2afc78ac-5037-4622-bfb3-732e48f44c11", | |
| "88522464-ab02-4ffc-860a-82f064794212", | |
| "8b1ef20d-49d6-4bba-9738-cd6565cd7336", | |
| "427a1d21-aab3-4a7a-8a0e-d86cd280d45d", | |
| "088607cd-8a6a-43c6-b020-57f3f7d617c0", | |
| "2070df87-beb9-4529-9ca0-c70c67633969", | |
| "ee7e8d47-2cb1-4a76-974e-1ff62016f00a", | |
| "d10b7d99-2bab-4c27-a2d0-fd18023484c9", | |
| "530df17a-6946-42d9-90fe-10d4120e60a6" | |
| ] | |
| }, | |
| "e2590da3-90ae-4501-b928-6d23c7b0a0d2": { | |
| "size": { | |
| "width": 60, | |
| "height": 60 | |
| }, | |
| "position": { | |
| "x": 880, | |
| "y": 340 | |
| }, | |
| "z": 2, | |
| "parent": "10319917-4a50-4ae9-a87e-c5f3fae67ddf", | |
| "embeds": [] | |
| }, | |
| "5cc252ad-a5f9-4a76-9459-946779c512b2": { | |
| "size": { | |
| "width": 210, | |
| "height": 210 | |
| }, | |
| "position": { | |
| "x": 250, | |
| "y": 700 | |
| }, | |
| "z": 2, | |
| "parent": "10319917-4a50-4ae9-a87e-c5f3fae67ddf", | |
| "embeds": [ | |
| "e9b85a2c-0d9e-4ddc-969a-6a2e7810bfb1" | |
| ] | |
| }, | |
| "2afc78ac-5037-4622-bfb3-732e48f44c11": { | |
| "size": { | |
| "width": 300, | |
| "height": 210 | |
| }, | |
| "position": { | |
| "x": 250, | |
| "y": 430 | |
| }, | |
| "z": 2, | |
| "parent": "10319917-4a50-4ae9-a87e-c5f3fae67ddf", | |
| "embeds": [ | |
| "fa5b6adf-76c8-4322-a9cb-e4598fca9b93", | |
| "84006722-d7ed-446e-a2eb-116a5b3c4f61" | |
| ] | |
| }, | |
| "fa5b6adf-76c8-4322-a9cb-e4598fca9b93": { | |
| "size": { | |
| "width": 60, | |
| "height": 60 | |
| }, | |
| "position": { | |
| "x": 280, | |
| "y": 490 | |
| }, | |
| "z": 3, | |
| "parent": "2afc78ac-5037-4622-bfb3-732e48f44c11", | |
| "embeds": [] | |
| }, | |
| "84006722-d7ed-446e-a2eb-116a5b3c4f61": { | |
| "size": { | |
| "width": 60, | |
| "height": 60 | |
| }, | |
| "position": { | |
| "x": 400, | |
| "y": 490 | |
| }, | |
| "z": 3, | |
| "parent": "2afc78ac-5037-4622-bfb3-732e48f44c11", | |
| "embeds": [] | |
| }, | |
| "351a27dd-5a11-4c21-9084-c9e5ff39bafd": { | |
| "source": { | |
| "id": "6c3d4028-8b1b-4bf5-87cc-ba97e3674ba3" | |
| }, | |
| "target": { | |
| "id": "10319917-4a50-4ae9-a87e-c5f3fae67ddf" | |
| }, | |
| "z": 1 | |
| }, | |
| "6aae04ac-fd70-4270-bf84-ebd53142efba": { | |
| "source": { | |
| "id": "6ddf6dd1-d3eb-4dd7-8388-5d37584e5a6c" | |
| }, | |
| "target": { | |
| "id": "10319917-4a50-4ae9-a87e-c5f3fae67ddf" | |
| }, | |
| "z": 1 | |
| }, | |
| "88522464-ab02-4ffc-860a-82f064794212": { | |
| "size": { | |
| "width": 60, | |
| "height": 60 | |
| }, | |
| "position": { | |
| "x": 1000, | |
| "y": 340 | |
| }, | |
| "z": 2, | |
| "parent": "10319917-4a50-4ae9-a87e-c5f3fae67ddf", | |
| "embeds": [] | |
| }, | |
| "df0454a0-d0e5-4ea8-8f8f-882386f6b4bb": { | |
| "source": { | |
| "id": "e2590da3-90ae-4501-b928-6d23c7b0a0d2" | |
| }, | |
| "target": { | |
| "id": "88522464-ab02-4ffc-860a-82f064794212" | |
| }, | |
| "z": 2 | |
| }, | |
| "8b1ef20d-49d6-4bba-9738-cd6565cd7336": { | |
| "size": { | |
| "width": 210, | |
| "height": 210 | |
| }, | |
| "position": { | |
| "x": 610, | |
| "y": 430 | |
| }, | |
| "z": 2, | |
| "parent": "10319917-4a50-4ae9-a87e-c5f3fae67ddf", | |
| "embeds": [ | |
| "d3c02a9a-f43a-4ca4-97c6-f99b0df678c9" | |
| ] | |
| }, | |
| "427a1d21-aab3-4a7a-8a0e-d86cd280d45d": { | |
| "size": { | |
| "width": 120, | |
| "height": 120 | |
| }, | |
| "position": { | |
| "x": 880, | |
| "y": 160 | |
| }, | |
| "z": 2, | |
| "parent": "10319917-4a50-4ae9-a87e-c5f3fae67ddf", | |
| "embeds": [] | |
| }, | |
| "f56b491f-ee44-4ea7-a1d4-94281bb818f6": { | |
| "source": { | |
| "id": "8b1ef20d-49d6-4bba-9738-cd6565cd7336" | |
| }, | |
| "target": { | |
| "id": "427a1d21-aab3-4a7a-8a0e-d86cd280d45d" | |
| }, | |
| "z": 2 | |
| }, | |
| "03b18577-608d-4b56-a014-efcd3e0353c1": { | |
| "source": { | |
| "id": "2afc78ac-5037-4622-bfb3-732e48f44c11" | |
| }, | |
| "target": { | |
| "id": "427a1d21-aab3-4a7a-8a0e-d86cd280d45d" | |
| }, | |
| "z": 2 | |
| }, | |
| "088607cd-8a6a-43c6-b020-57f3f7d617c0": { | |
| "size": { | |
| "width": 210, | |
| "height": 210 | |
| }, | |
| "position": { | |
| "x": 610, | |
| "y": 160 | |
| }, | |
| "z": 2, | |
| "parent": "10319917-4a50-4ae9-a87e-c5f3fae67ddf", | |
| "embeds": [ | |
| "b3fba23a-d25b-4394-9a1b-80d875d04f54" | |
| ] | |
| }, | |
| "7dbdc88c-6dcb-4b19-9b49-e13e253c12cb": { | |
| "source": { | |
| "id": "088607cd-8a6a-43c6-b020-57f3f7d617c0" | |
| }, | |
| "target": { | |
| "id": "5cc252ad-a5f9-4a76-9459-946779c512b2" | |
| }, | |
| "z": 2 | |
| }, | |
| "b3fba23a-d25b-4394-9a1b-80d875d04f54": { | |
| "size": { | |
| "width": 60, | |
| "height": 60 | |
| }, | |
| "position": { | |
| "x": 640, | |
| "y": 220 | |
| }, | |
| "z": 3, | |
| "parent": "088607cd-8a6a-43c6-b020-57f3f7d617c0", | |
| "embeds": [], | |
| "references": [ | |
| "6c3d4028-8b1b-4bf5-87cc-ba97e3674ba3" | |
| ], | |
| "dependson": [ | |
| "351a27dd-5a11-4c21-9084-c9e5ff39bafd" | |
| ] | |
| }, | |
| "2070df87-beb9-4529-9ca0-c70c67633969": { | |
| "size": { | |
| "width": 60, | |
| "height": 60 | |
| }, | |
| "position": { | |
| "x": 880, | |
| "y": 460 | |
| }, | |
| "z": 2, | |
| "parent": "10319917-4a50-4ae9-a87e-c5f3fae67ddf", | |
| "embeds": [] | |
| }, | |
| "3dbece30-bb85-4e68-95c1-10579f0b5afc": { | |
| "source": { | |
| "id": "88522464-ab02-4ffc-860a-82f064794212" | |
| }, | |
| "target": { | |
| "id": "2070df87-beb9-4529-9ca0-c70c67633969" | |
| }, | |
| "z": 2 | |
| }, | |
| "5f209750-8f12-4ffd-bc63-05b99969d758": { | |
| "size": { | |
| "width": 60, | |
| "height": 60 | |
| }, | |
| "position": { | |
| "x": 1050, | |
| "y": 930 | |
| }, | |
| "z": 1, | |
| "embeds": [], | |
| "isconnectedto": [ | |
| "5cc252ad-a5f9-4a76-9459-946779c512b2" | |
| ], | |
| "ismemberof": [ | |
| "2070df87-beb9-4529-9ca0-c70c67633969" | |
| ] | |
| }, | |
| "f17c6df7-e176-4e00-881e-26236908b5ea": { | |
| "source": { | |
| "id": "2070df87-beb9-4529-9ca0-c70c67633969" | |
| }, | |
| "target": { | |
| "id": "88522464-ab02-4ffc-860a-82f064794212" | |
| }, | |
| "z": 2 | |
| }, | |
| "ee7e8d47-2cb1-4a76-974e-1ff62016f00a": { | |
| "size": { | |
| "width": 60, | |
| "height": 60 | |
| }, | |
| "position": { | |
| "x": 1000, | |
| "y": 460 | |
| }, | |
| "z": 2, | |
| "parent": "10319917-4a50-4ae9-a87e-c5f3fae67ddf", | |
| "embeds": [], | |
| "isrelatedto": [ | |
| "e2590da3-90ae-4501-b928-6d23c7b0a0d2" | |
| ] | |
| }, | |
| "ab504899-5150-4672-8369-6a23c4b2f54c": { | |
| "source": { | |
| "id": "88522464-ab02-4ffc-860a-82f064794212" | |
| }, | |
| "target": { | |
| "id": "ee7e8d47-2cb1-4a76-974e-1ff62016f00a" | |
| }, | |
| "z": 2 | |
| }, | |
| "0263ccb5-a02e-4ccb-9622-1e678bac9d20": { | |
| "source": { | |
| "id": "2070df87-beb9-4529-9ca0-c70c67633969" | |
| }, | |
| "target": { | |
| "id": "ee7e8d47-2cb1-4a76-974e-1ff62016f00a" | |
| }, | |
| "z": 2 | |
| }, | |
| "d76fcb83-c82d-4437-874c-a82b0ed0c49a": { | |
| "source": { | |
| "id": "ee7e8d47-2cb1-4a76-974e-1ff62016f00a" | |
| }, | |
| "target": { | |
| "id": "2070df87-beb9-4529-9ca0-c70c67633969" | |
| }, | |
| "z": 2 | |
| }, | |
| "60db1cc3-c84b-42d4-bffa-d3689c7220a2": { | |
| "source": { | |
| "id": "ee7e8d47-2cb1-4a76-974e-1ff62016f00a" | |
| }, | |
| "target": { | |
| "id": "88522464-ab02-4ffc-860a-82f064794212" | |
| }, | |
| "z": 2 | |
| }, | |
| "d10b7d99-2bab-4c27-a2d0-fd18023484c9": { | |
| "size": { | |
| "width": 60, | |
| "height": 60 | |
| }, | |
| "position": { | |
| "x": 880, | |
| "y": 580 | |
| }, | |
| "z": 2, | |
| "parent": "10319917-4a50-4ae9-a87e-c5f3fae67ddf", | |
| "embeds": [] | |
| }, | |
| "8be6a4d0-cfc6-426e-ba6f-87d15f3ee7ea": { | |
| "size": { | |
| "width": 60, | |
| "height": 60 | |
| }, | |
| "position": { | |
| "x": 1050, | |
| "y": 1050 | |
| }, | |
| "z": 1, | |
| "embeds": [], | |
| "isconnectedto": [ | |
| "5cc252ad-a5f9-4a76-9459-946779c512b2" | |
| ], | |
| "ismemberof": [ | |
| "e2590da3-90ae-4501-b928-6d23c7b0a0d2", | |
| "d10b7d99-2bab-4c27-a2d0-fd18023484c9", | |
| "88522464-ab02-4ffc-860a-82f064794212", | |
| "2070df87-beb9-4529-9ca0-c70c67633969", | |
| "ee7e8d47-2cb1-4a76-974e-1ff62016f00a" | |
| ] | |
| }, | |
| "daa41454-b9f5-4dd4-a698-05197f830a06": { | |
| "size": { | |
| "width": 60, | |
| "height": 60 | |
| }, | |
| "position": { | |
| "x": 60, | |
| "y": 1080 | |
| }, | |
| "z": 1, | |
| "embeds": [], | |
| "ismemberof": [ | |
| "88522464-ab02-4ffc-860a-82f064794212" | |
| ], | |
| "isrelatedto": [ | |
| "56670de6-7357-44cb-b398-eeb02110c4f0", | |
| "86a487f2-2709-4ca1-a1d4-9fae522eb073", | |
| "8be6a4d0-cfc6-426e-ba6f-87d15f3ee7ea" | |
| ] | |
| }, | |
| "0afaac9e-bd8f-4b1a-a664-661534372905": { | |
| "size": { | |
| "width": 60, | |
| "height": 60 | |
| }, | |
| "position": { | |
| "x": -240, | |
| "y": 270 | |
| }, | |
| "z": 1, | |
| "embeds": [], | |
| "isconnectedto": [ | |
| "427a1d21-aab3-4a7a-8a0e-d86cd280d45d" | |
| ], | |
| "isassociatedwith": [ | |
| "daa41454-b9f5-4dd4-a698-05197f830a06" | |
| ] | |
| }, | |
| "f22cfe5e-d0b0-4a57-af70-a50863b08b41": { | |
| "size": { | |
| "width": 60, | |
| "height": 60 | |
| }, | |
| "position": { | |
| "x": -280, | |
| "y": 670 | |
| }, | |
| "z": 1, | |
| "embeds": [], | |
| "ismemberof": [ | |
| "2070df87-beb9-4529-9ca0-c70c67633969" | |
| ], | |
| "isrelatedto": [ | |
| "56670de6-7357-44cb-b398-eeb02110c4f0", | |
| "86a487f2-2709-4ca1-a1d4-9fae522eb073", | |
| "8be6a4d0-cfc6-426e-ba6f-87d15f3ee7ea" | |
| ] | |
| }, | |
| "fa07b529-1c93-4d7b-96a9-fdab3eed647c": { | |
| "size": { | |
| "width": 60, | |
| "height": 60 | |
| }, | |
| "position": { | |
| "x": 420, | |
| "y": 1080 | |
| }, | |
| "z": 1, | |
| "embeds": [], | |
| "isconnectedto": [ | |
| "5cc252ad-a5f9-4a76-9459-946779c512b2", | |
| "5f209750-8f12-4ffd-bc63-05b99969d758" | |
| ], | |
| "isassociatedwith": [ | |
| "f22cfe5e-d0b0-4a57-af70-a50863b08b41" | |
| ] | |
| }, | |
| "3317afa8-2d5d-4b57-9aee-8e4d785ab8e9": { | |
| "size": { | |
| "width": 60, | |
| "height": 60 | |
| }, | |
| "position": { | |
| "x": 540, | |
| "y": 1080 | |
| }, | |
| "z": 1, | |
| "embeds": [], | |
| "isconnectedto": [ | |
| "5cc252ad-a5f9-4a76-9459-946779c512b2" | |
| ], | |
| "ismemberof": [ | |
| "e2590da3-90ae-4501-b928-6d23c7b0a0d2", | |
| "d10b7d99-2bab-4c27-a2d0-fd18023484c9" | |
| ] | |
| }, | |
| "e9b85a2c-0d9e-4ddc-969a-6a2e7810bfb1": { | |
| "size": { | |
| "width": 60, | |
| "height": 60 | |
| }, | |
| "position": { | |
| "x": 280, | |
| "y": 760 | |
| }, | |
| "z": 3, | |
| "parent": "5cc252ad-a5f9-4a76-9459-946779c512b2", | |
| "embeds": [], | |
| "dependson": [ | |
| "351a27dd-5a11-4c21-9084-c9e5ff39bafd" | |
| ], | |
| "isrelatedto": [ | |
| "88522464-ab02-4ffc-860a-82f064794212", | |
| "ee7e8d47-2cb1-4a76-974e-1ff62016f00a", | |
| "d10b7d99-2bab-4c27-a2d0-fd18023484c9" | |
| ] | |
| }, | |
| "d3c02a9a-f43a-4ca4-97c6-f99b0df678c9": { | |
| "size": { | |
| "width": 60, | |
| "height": 60 | |
| }, | |
| "position": { | |
| "x": 640, | |
| "y": 490 | |
| }, | |
| "z": 3, | |
| "parent": "8b1ef20d-49d6-4bba-9738-cd6565cd7336", | |
| "embeds": [], | |
| "references": [ | |
| "e9b85a2c-0d9e-4ddc-969a-6a2e7810bfb1" | |
| ] | |
| }, | |
| "3221f40f-91c0-42cb-bb9e-8d2050b46b9c": { | |
| "size": { | |
| "width": 60, | |
| "height": 60 | |
| }, | |
| "position": { | |
| "x": 660, | |
| "y": 1080 | |
| }, | |
| "z": 1, | |
| "embeds": [], | |
| "ismemberof": [ | |
| "ee7e8d47-2cb1-4a76-974e-1ff62016f00a", | |
| "d10b7d99-2bab-4c27-a2d0-fd18023484c9" | |
| ], | |
| "isrelatedto": [ | |
| "55a5feed-d2c6-4dc9-83cf-94936ec806fe", | |
| "56670de6-7357-44cb-b398-eeb02110c4f0", | |
| "86a487f2-2709-4ca1-a1d4-9fae522eb073", | |
| "8be6a4d0-cfc6-426e-ba6f-87d15f3ee7ea" | |
| ] | |
| }, | |
| "7e733802-8c7c-4c57-a5bc-805247d2ae0b": { | |
| "size": { | |
| "width": 60, | |
| "height": 60 | |
| }, | |
| "position": { | |
| "x": 780, | |
| "y": 1080 | |
| }, | |
| "z": 1, | |
| "embeds": [], | |
| "isconnectedto": [ | |
| "5cc252ad-a5f9-4a76-9459-946779c512b2", | |
| "3317afa8-2d5d-4b57-9aee-8e4d785ab8e9", | |
| "8be6a4d0-cfc6-426e-ba6f-87d15f3ee7ea" | |
| ], | |
| "isassociatedwith": [ | |
| "3221f40f-91c0-42cb-bb9e-8d2050b46b9c" | |
| ] | |
| }, | |
| "530df17a-6946-42d9-90fe-10d4120e60a6": { | |
| "size": { | |
| "width": 300, | |
| "height": 210 | |
| }, | |
| "position": { | |
| "x": 250, | |
| "y": 160 | |
| }, | |
| "z": 2, | |
| "parent": "10319917-4a50-4ae9-a87e-c5f3fae67ddf", | |
| "embeds": [ | |
| "90e1ff39-e708-4dc5-903b-8be18449b676", | |
| "37c6e556-89b0-4753-9e37-f8db2a23ec83" | |
| ] | |
| }, | |
| "90e1ff39-e708-4dc5-903b-8be18449b676": { | |
| "size": { | |
| "width": 60, | |
| "height": 60 | |
| }, | |
| "position": { | |
| "x": 280, | |
| "y": 220 | |
| }, | |
| "z": 3, | |
| "parent": "530df17a-6946-42d9-90fe-10d4120e60a6", | |
| "embeds": [] | |
| }, | |
| "e41f1425-c2c4-4f8d-b45e-d5c36b96c737": { | |
| "source": { | |
| "id": "530df17a-6946-42d9-90fe-10d4120e60a6" | |
| }, | |
| "target": { | |
| "id": "5cc252ad-a5f9-4a76-9459-946779c512b2" | |
| }, | |
| "z": 2 | |
| }, | |
| "37c6e556-89b0-4753-9e37-f8db2a23ec83": { | |
| "size": { | |
| "width": 60, | |
| "height": 60 | |
| }, | |
| "position": { | |
| "x": 400, | |
| "y": 220 | |
| }, | |
| "z": 3, | |
| "parent": "530df17a-6946-42d9-90fe-10d4120e60a6", | |
| "embeds": [] | |
| } | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment