Sha256: 74deda7f54ed9c99f2e432592db341276b3e593ec39d3e2157c69784a1535d50

Contents?: true

Size: 1.98 KB

Versions: 2

Compression:

Stored size: 1.98 KB

Contents

# A pretty complete example of using YAML Anchors to reduce 
# repetition when creating multiple vApps.
# 
# This example defines 4 vapps: 
#  * frontend-1
#  * frontend-2
#  * backend-1
#  * backend-2
#
---
anchors:

- &VAPP_TEMPLATE_NAME our-vapp-template

- &ENVIRONMENT example
- &VDC_NAME    example-vdc

- &APP_NETWORK example-app-net
- &MGMT_NETWORK example-mgmt-net

- &BASE_VAPP
  vdc_name: *VDC_NAME
  catalog_name:  our-catalog
  vapp_template_name: *VAPP_TEMPLATE_NAME

- &BASE_VM
  metadata:
    environment:   *ENVIRONMENT
    vapp_template: *VAPP_TEMPLATE_NAME
  bootstrap: &BASE_VM_BOOTSTRAP
    script_path: basic_preamble.erb
    vars: &BASE_VM_VARS
      environment: *ENVIRONMENT
      vapp_template: *VAPP_TEMPLATE_NAME
      vdc: *VDC_NAME

- &SMALL_VM
  <<: *BASE_VM
  hardware_config: { memory: 4096, cpu: 2 }

- &MEDIUM_VM
  <<: *BASE_VM
  hardware_config: { memory: 8192, cpu: 4 }

vapps:

- &frontend_vapp
  <<: *BASE_VAPP
  name: frontend-example-1
  vm: &frontend_vm
    <<: *SMALL_VM
    bootstrap:
      <<: *BASE_VM_BOOTSTRAP
      vars:
        <<: *BASE_VM_VARS
        role: frontend
    network_connections:
    - { name: *APP_NETWORK,  ip_address: 192.168.2.11 }
    - { name: *MGMT_NETWORK, ip_address: 192.168.100.11 }
- <<: *frontend_vapp
  name: frontend-example-2
  vm:
    <<: *frontend_vm
    network_connections:
    - { name: *APP_NETWORK,  ip_address: 192.168.2.12 }
    - { name: *MGMT_NETWORK, ip_address: 192.168.100.12 }

- &backend_vapp
  <<: *BASE_VAPP
  name: backend-example-1
  vm: &backend_vm
    <<: *MEDIUM_VM
    bootstrap:
      <<: *BASE_VM_BOOTSTRAP
      vars:
        <<: *BASE_VM_VARS
        role: backend
    network_connections:
    - { name: *APP_NETWORK,  ip_address: 192.168.2.51 }
    - { name: *MGMT_NETWORK, ip_address: 192.168.100.51 }
- <<: *backend_vapp
  name: backend-example-2
  vm:
    <<: *backend_vm
    network_connections:
    - { name: *APP_NETWORK,  ip_address: 192.168.2.52 }
    - { name: *MGMT_NETWORK, ip_address: 192.168.100.52 }

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
vcloud-launcher-2.1.1 examples/vcloud-launch/yaml_anchors_example.yaml
vcloud-launcher-2.1.0 examples/vcloud-launch/yaml_anchors_example.yaml