Hi Kinjal, The minimal-aws manifest would be quite difficult to augment to get it to work with diego. You would need to add static IP to your private network, add a resource pool or increase the size of an existing one, add the consul job, colocate the consul agent with some of the CF jobs, and add a few configuration properties that aren't in the minimal one (e.g. loggregator.tls.ca). It's probably simpler to use the manifest generations scripts to redeploy cf (before deploying diego). Use: * http://docs.cloudfoundry.org/deploying/common/create_a_manifest.html* http://docs.cloudfoundry.org/deploying/common/deploy.htmlLet us know if you run into some difficulties. These documents ask you to define stubs, which require you to input data from your AWS IaaS setup, and may not exactly play nicely with the AWS setup described in the minimal-aws doc, I'm not sure. Best, Amit
toggle quoted messageShow quoted text
On Wed, Jan 27, 2016 at 3:17 AM, Kinjal Doshi <kindoshi(a)gmail.com> wrote: Hi Eric,
Thanks a lot for the detailed response to my query.
I used the minimal-aws.yml configuration ( https://github.com/cloudfoundry/cf-release/tree/v226/example_manifests) to create my deployment manifest which does not have the consul VMs set up. I am guessing that the first step would be to change this.
In this case should I use the script generators to generate the CF deployment manifest and re-deploy cloud foundry, or are there any other techniques/shorter path for doing this?
Thanks in advance, Kinjal
On Mon, Jan 25, 2016 at 6:57 AM, Eric Malm <emalm(a)pivotal.io> wrote:
Hi, Kinjal,
The stub I included in-line in my previous email may not have come through so well for all mail clients, so I've also included it in a public gist at https://gist.github.com/ematpl/149ac1bac691caae0722.
Thanks, Eric
On Fri, Jan 22, 2016 at 6:32 PM, Eric Malm <emalm(a)pivotal.io> wrote:
Hi, Kinjal,
Thanks for asking: this is an area in which the Diego team is looking forward to improving documentation and tooling in the near term. For the time being, here are some more manual instructions:
Assuming you have AWS infrastructure already provisioned for your CF deployment (VPC, subnets, NAT box, ELBs, etc.), you should need only to add one or more additional subnets for the VMs in the Diego deployment, and optionally an ELB for the SSH proxy routing tier (you can also use the HAproxy in the CF deployment to do the same load-balancing, but you'll need to give it an Elastic IP). If you're brave, and can coordinate the reserved sections in the CF and Diego deployment manifests' networking configs correctly, you could even share the same subnet(s) between the two deployments.
Once you have those subnets provisioned, you'll need to translate their properties into the iaas-settings.yml stub that you supply to the generate-deployment-manifest script in diego-release. Since you're deploying CF v226, we recommend you use Diego final version v0.1442.0 and the associated manifest-generation script in that version of the release. The other stubs should be independent of that iaas-settings one, and should be pretty much the same as the ones for the BOSH-Lite deployment. You'll likely want to provide different secrets and credentials in the property-overrides stub, though, and perhaps different instance counts depending on the availability needs of your deployment. I've included at the end of this email a representative iaas-settings.yml file from one of the Diego team's environments, with any specific identifiers for AWS entities replaced by PLACEHOLDER values.
As a side note, if you don't already have the consul VMs deployed in your CF deployment, you'll need to enable them so that the Diego components can use it to communicate. We recommend you operate an odd number of consul VMs: 1 if don't need high availability, and 3 or 5 if you do (as in a production environment). You can enable them by changing the instance count on the consul_z1 and consul_z2 jobs in the CF manifest.
After you've customized those stubs and adjusted your CF manifest if necessary, you can generate the Diego manifest by running something like the following from your diego-release directory:
$ ./scripts/generate-deployment-manifest \ PATH/TO/MY/CUSTOMIZED-PROPERTY-OVERRIDES.YML \ PATH/TO/MY/CUSTOMIZED-INSTANCE-COUNT-OVERRIDES.YML \ manifest-generation/bosh-lite-stubs/persistent-disk-overrides.yml \ PATH/TO/MY/CUSTOMIZED-IAAS-SETTINGS.YML \ manifest-generation/bosh-lite-stubs/additional-jobs.yml \ manifest-generation/bosh-lite-stubs/release-versions.yml \ PATH/TO/MY/MANIFEST/DIRECTORY \ > PATH/TO/MY/MANIFEST/DIRECTORY/diego.yml
'PATH/TO/MY/MANIFEST/DIRECTORY' should contain your CF manifest in a file named 'cf.yml'. Also, please note that if you move to CF v227 or later, which recommend Diego v0.1445.0 or later, the manifest-generation script has changed to take its stub arguments via flags, instead of as these positional arguments, and some of the stubs have changed slightly.
We also realize this is currently an obscure and potentially error-prone process, and the Diego team does have a couple stories queued up to do soon to provide more information about how to set up Diego on AWS:
- We plan in https://www.pivotaltracker.com/story/show/100909610 to parametrize, document, and publish the tools and additional templates we use to provision the AWS environments we use for CI and for our developers' experiments and investigations, all the way from an empty account to a VPC with BOSH, CF, and Diego. - We plan in https://www.pivotaltracker.com/story/show/100909610 to provide more manual instructions to set up a Diego environment compatible with the 'minimal-aws' CF deployment manifest and infrastructure settings, including provisioning any additional infrastructure such as subnets and translating their information into the stubs for the diego-release manifest-generation script.
We'll also be eager to adopt and to integrate with the tooling the CF Infrastructure and CF Release Integration teams will produce at some point to automate environment bootstrapping and CF manifest generation as much as possible.
Please let me and the rest of the team know here if you need further assistance or clarification.
Thanks again, Eric, CF Runtime Diego PM
*****
Example iaas-settings.yml file, with PLACEHOLDER entries for your environment's info:
iaas_settings: compilation_cloud_properties: availability_zone: us-east-1a instance_type: c3.large resource_pool_cloud_properties: - cloud_properties: availability_zone: us-east-1a elbs: - PLACEHOLDER-SSHProxyELB-ID instance_type: m3.medium name: access_z1 - cloud_properties: availability_zone: us-east-1b elbs: - PLACEHOLDER-SSHProxyELB-ID instance_type: m3.medium name: access_z2 - cloud_properties: availability_zone: us-east-1c elbs: - PLACEHOLDER-SSHProxyELB-ID instance_type: m3.medium name: access_z3 - cloud_properties: availability_zone: us-east-1a instance_type: m3.medium name: brain_z1 - cloud_properties: availability_zone: us-east-1b instance_type: m3.medium name: brain_z2 - cloud_properties: availability_zone: us-east-1c instance_type: m3.medium name: brain_z3 - cloud_properties: availability_zone: us-east-1a instance_type: m3.medium name: cc_bridge_z1 - cloud_properties: availability_zone: us-east-1b instance_type: m3.medium name: cc_bridge_z2 - cloud_properties: availability_zone: us-east-1c instance_type: m3.medium name: cc_bridge_z3 - cloud_properties: availability_zone: us-east-1a ephemeral_disk: iops: 1200 size: 50000 type: io1 instance_type: m3.large name: cell_z1 - cloud_properties: availability_zone: us-east-1b ephemeral_disk: iops: 1200 size: 50000 type: io1 instance_type: m3.large name: cell_z2 - cloud_properties: availability_zone: us-east-1c ephemeral_disk: iops: 1200 size: 50000 type: io1 instance_type: m3.large name: cell_z3 - cloud_properties: availability_zone: us-east-1a instance_type: m3.large name: colocated_z1 - cloud_properties: availability_zone: us-east-1b instance_type: m3.large name: colocated_z2 - cloud_properties: availability_zone: us-east-1c instance_type: m3.large name: colocated_z3 - cloud_properties: availability_zone: us-east-1a instance_type: m3.large name: database_z1 - cloud_properties: availability_zone: us-east-1b instance_type: m3.large name: database_z2 - cloud_properties: availability_zone: us-east-1c instance_type: m3.large name: database_z3 - cloud_properties: availability_zone: us-east-1a instance_type: m3.medium name: route_emitter_z1 - cloud_properties: availability_zone: us-east-1b instance_type: m3.medium name: route_emitter_z2 - cloud_properties: availability_zone: us-east-1c instance_type: m3.medium name: route_emitter_z3 stemcell: name: bosh-aws-xen-hvm-ubuntu-trusty-go_agent version: latest subnet_configs: - name: diego1 subnets: - cloud_properties: security_groups: - PLACEHOLDER-InternalSecurityGroup-ID subnet: PLACEHOLDER-subnet-id-A dns: - 10.10.0.2 gateway: 10.10.5.1 range: 10.10.5.0/24 reserved: - 10.10.5.2 - 10.10.5.9 static: - 10.10.5.10 - 10.10.5.63 - name: diego2 subnets: - cloud_properties: security_groups: - PLACEHOLDER-InternalSecurityGroup-ID subnet: PLACEHOLDER-subnet-id-B dns: - 10.10.0.2 gateway: 10.10.6.1 range: 10.10.6.0/24 reserved: - 10.10.6.2 - 10.10.6.9 static: - 10.10.6.10 - 10.10.6.63 - name: diego3 subnets: - cloud_properties: security_groups: - PLACEHOLDER-InternalSecurityGroup-ID subnet: PLACEHOLDER-subnet-id-C dns: - 10.10.0.2 gateway: 10.10.7.1 range: 10.10.7.0/24 reserved: - 10.10.7.2 - 10.10.7.9 static: - 10.10.7.10 - 10.10.7.63
On Fri, Jan 22, 2016 at 4:28 AM, Kinjal Doshi <kindoshi(a)gmail.com> wrote:
Hi,
After deploying CF version 226 on AWS using microbosh, I am trying to understand how to deploy Diego now to work with this version of CF but have not been able to figure out much yet. I was able to find steps for deploying Diego on BOSH-Lite at https://github.com/cloudfoundry-incubator/diego-release#deploying-diego-to-bosh-lite but not for BOSH.
Would appreciate some pointers in this direction .
Thanks in advance, Kinjal
|