Sample YAMLΒΆ

Sample YAML syntax for respawn. : Please note that this contains most of the resources that respawn supports at this moment. We will keep adding on as we keep building resource support.

# Globals
 stack_name: sampleStack
 environment: sampleEnvironment
 team: &team sampleTeam
 default_windows_ami: &win_ami sampleAMI
 multi_az: True
 eap: True
 ebs_optimized: &ebs_optimized false
 periodic_chef: false
 service_name: &service sampleServiceName


 parameters:
   testWeb:
     default: String
     type: String
     description: "Creating test param"
     allowed_values:
       - "value1"
       - "value2"
     allowed_pattern: "[A-Za-z0-9]+"
     no_echo: true
     max_length: String
     min_length: String
     max_value: String
     min_value: String
     constraint_description: "Malformed input-Parameter MyParameter must only contain upper and lower case letters"


 # Default Security Groups
 SgDevsample: &dev_djin_fcm String
 ELBSubnet: &elb_subnet  String

 security_groups:
     Web: &web_sgs

 load_balancers:
       SampleLoadBalancer:
         scheme: internet-facing
         connection_settings:
           idle_timeout: 40
         cross_zone: True
         security_group:
           - sg-xxxxxxx1
           - sg-xxxxxxx2
         instances:
           - ref(SampleInstance)
         policies:
            - policy_name: SamplePolicyName1
              attribute:
                 - name: SampleName1
                   value: SampleValue1
                 - name: SampleName2
                   value: SampleValue2
              instance_ports:
                 - 2121
                 - 2424
              load_balancer_ports:
                 - 32323
                 - 2424
              policy_type: SSLNegotiationPolicyType
            - policy_name: SamplePolicyName2
              attribute:
                 - name: SampleName1
                   value: SampleValue1
              instance_ports:
                 - 1212
                 - 4242
              load_balancer_ports:
                 - 23232
                 - 4141
         app_cookie_stickiness_policy:
           - policy_name: SamplePolicy1
             cookie_name: SampleCookie1
           - policy_name: SamplePolicy2
             cookie_name: SampleCookie2
         connection_draining_policy:
           enabled: True
           timeout: 10
         availability_zones:
           - "Fn::GetAZs": ""
         health_check:
           healthy_threshold: 2
           interval: 10
           target: /healthcheck
           timeout: 10
           unhealthy_threshold: 2
         lb_cookie_stickiness_policy:
           - policy_name: SamplePolicyName1
             cookie_expiration_period: 300
           - policy_name: SamplePolicyName2
             cookie_expiration_period: 600
         load_balancer_name: SampleLoadBalancer1 # Unique name used by AWS
         access_logging_policy:
           emit_interval: 20
           enabled: True
           s3_bucket_name: SampleS3BucketName
           s3_bucket_prefix: SampleS3BucketPrefix
         listeners:
           https:
             load_balancer_port: 83
             instance_port: 84
             instance_protocol: tcp
           tcp:
             load_balancer_port: 8443
             instance_port: 8443
             instance_protocol: http
             ssl_certificate_id: SampleSSLARN
         tags:
           - key: Key1
             value: Value1
           - key: Key2
             value: Value2

 instances:
     SampleInstance:
       hostname: SampleHostname
       instance_type: m3.xlarge
       ami_id: ami-xxxxxxxx
       ebs_optimized: true
       iam_role: SampleIAMRole
       security_groups:
         - sg-00000001
         - sg-00000002
       ramdisk_id: SampleRamDiskID
       source_dest_check: true
       network_interfaces:
         Interface1:
           public_ip: true
           delete_on_termination: true
           device_index: 0
           subnet_id: subnet-xxxxxxxx
           private_ips:
             - private_ip: 1.1.1.1
               primary: false
             - private_ip: 2.2.2.2
               primary: true
       block_devices:
         /dev/sda:
           ebs:
             delete_on_termination: false
             encrypted: false
             iops: 1000
             size: 100
             type: standard
         /dev/sdb:
           ebs:
             snapshot_id: snap-xxxxxxxx
         /dev/sdc:
           virtual_name: ephemeral0
         /dev/sdd:
           no_device: true
       volumes:
         - device: /dev/sdd
           volume_id: ref(SampleVolume1)
         - device: /dev/sde
           volume_id: vol-xxxxxxx
       tags:
         - key: Key1
           value: Value1
       user_data:
         file: path/to/script.sh  # Jinja2 Template
         params:
           param1: hello
           param2: world


 volumes:
     SampleVolume1:
       availability_zone: SampleAZ
       instance: ref(SampleInstance)
       size: 100

     SampleVolume2:
       availability_zone: SampleAZ
       snapshot_id: snap-xxxxxxxx
       size: 1000
       iops: 4000
       kms_key_id: SampleKMSKeyID
       volume_type: standard
       encrypted: true
       tags:
         - key: Key1
           value: Value1
       deletion_policy: Retain

 auto_scale_groups:
     SampleAutoScaleGroup:
       hostname: sampleTestName
       availability_zones:
           - AZName1
           - AZName2
       min_size: 1
       max_size: 10
       desired_capacity: 10
       instance_id: ami-xxxxxxxx
       cooldown: 10
       launch_configuration: LaunchConfigName
       load_balancer_names:
           - LBName
           - ref(Sample_LB)
       max_size: 2
       min_size: 1
       metrics_collection:
           - granularity: 1Minute
           - granularity: 1Minute
             metrics:
                 - Metric1
                 - Metric2
       notification_configs:
           - notification_type:
                 - Type1
                 - Type2
             topic_arn: "arn:aws:[service]:[region]:[account]:resourceType/resourcePath"
           - notification_type:
                 - Type3
             topic_arn: "arn:aws:[service]:[region]:[account]:resourceType/resourcePath"
       placement_group: PlacementGroupName
       tags:
           - key: Key1
             value: Value1
             propagate_at_launch: true
           - key: Key2
             value: Value2
             propagate_at_launch: true
       termination_policies:
           - Policy1
           - Policy2
       vpc_zone_identifier:
           - ZoneIdentifier1
           - ZoneIdentifier2

 launch_configurations:
     SampleLaunchConfiguration:
       instance_type: t2.small
       ebs_optimized: false
       ami_id: ami-xxxxxxxx
       iam_role: SampleIAMRole
       key_pair: SampleKey
       ramdisk_id: SampleRamDiskID
       public_ip: true
       security_groups:
         - sg-00000001
         - sg-00000002
       block_devices:
         /dev/sda:
           ebs:
             delete_on_termination: false
             encrypted: false
             iops: 1000
             size: 100
             type: standard
         /dev/sdb:
           ebs:
             snapshot_id: id-testSnapshot
         /dev/sdc:
           virtual_name: ephemeral0
         /dev/sdd:
           no_device: true
       user_data:
           file: path/to/script.sh  # Jinja2 Template
           params:
             param1: hello
             param2: world

 lifecycle_hooks:
   SampleLifecycleHook:
       asg_name: ref(SampleAutoScaleGroup)
       lifecycle_transition: autoscaling:EC2_INSTANCE_TERMINATING
       notification_target_arn: ref(SampleSNSTopic) # SNS Topic
       role_arn: SampleIAMRole
       heartbeat_timeout: 1800
       default_result: CONTINUE
       notification_metadata: SampleMetadata


 scheduled_actions:
   SampleActionDown:
       asg_name: SampleAutoScaleGroup
       desired_capacity: 0
       max_size: 0
       min_size: 0
       recurrence: 0 7 * * *

   SampleActionUp:
       asg_name: SampleAutoScaleGroup
       desired_capacity: 5
       max_size: 5
       min_size: 5
       recurrence: 0 9 * * *

 rds:
   SampleRDS:
     allocated_storage: 100
     instance_class: db.m1.small
     engine: MySQL
     allow_major_version_upgrade: True
     allow_minor_version_upgrade: True
     availability_zone: SampleAZ
     backup_retention_period: 10
     character_set_name: UTF8
     instance_identifier: SampleRDSName # Unique name used by AWS
     db_name: SampleDB
     db_parameter_group_name: SampleDBParameterGroup
     db_security_groups:
         - SampleSecurityGroup
     snapshot_identifier: SampleSnapshot
     subnet_group_name: SampleSubnetGroup
     engine: MySQL
     engine_version: 1.0.0
     iops: 1000
     kms_key_id: SampleKMSKeyID
     license_model: SampleLicenseModel
     master_username: SampleUsername
     multi_az: False
     option_group_name: SampleOptionGroup
     port: 3306
     preferred_backup_window: Mon:03:00-Mon:11:00
     preferred_maintenance_window: Tue:04:00-Tue:04:30
     publicly_accessible: False
     source_db_instance_identifier: SampleSourceDBIdentifier
     storage_encrypted: True
     vpc_security_groups:
         - SampleVPCSecurityGroup

 network_interfaces:
   SampleNetworkInterface:
     description: "Sample Description"
     group_set:
       - SampleGroup1
       - SampleGroup2
     private_ip_address: 10.20.03.20
     private_ip_addresses:
      - 10.23.23.23
      - 12.13.3.4
     secondary_private_ip_address_count: 4
     source_dest_check: true
     subnet_id: 131.3.13.1
     tags:
         - key: Key1
           value: Value1
         - key: Key2
           value: Value2

 network_interface_attachments:
      TestNetworkIntefaceAttachment:
        delete_on_termination: False
        device_index: 1
        instance_id: ref(SampleInstanceName)
        network_interface_id: ref(SampleNetworkInterfaceName)

 sns_topics:
   SampleSNSTopic:
     display_name : SampleSNSTopic
     topic_name : SampleTopic
     subscription:
       - protocol : https
         endpoint : Endpoint1
       - protocol : http
         endpoint : Endpoint2

 cloud_watch:
   SampleCloudWatch:
     actions_enabled: true
     alarm_actions:
       - AlarmAction1
       - AlarmAction2
     alarm_name: SampleAlarm
     alarm_description: "Sample alarm description"
     comparison_operator: GreaterThanOrEqualToThreshold
     dimensions:
       - name: Dimension1
         value: Value1
       - name: Dimension2
         value: Value2
     evaluation_periods: 15
     insufficient_data_actions:
       - InsufficientDataAction1
       - InsufficientDataAction2
     metric_name : SampleName
     namespace : SampleNamespace
     ok_actions :
       - OkAction1
       - OkAction2
     period : 12
     statistic : Average
     threshold : 10
     unit : Milliseconds

 security_group:
   SampleSecurityGroup:
     group_description: SampleDescription
     security_group_egress:
       - from_port: 80
         ip_protocol: http
         to_port: 80
     security_group_ingress:
       - from_port: 443
         ip_protocol: https
         to_port: 443
     tags:
       - key: Key1
         value: Value1
     vpc_id: SampleVPC