Work smartly with YAML

YAML is a heavily used markup language in this cloudy world. There are many tricks that can help us work smartly with YAML.

Let’s get an example:

---
project: The Great Project
version: 0.0.1
services:
  service1:
    description: Get information from DB
    attributes:
      location: /opt/webapp/service1
      resource:
        cpu: 1
        memory: 1024MiB
        iops: 1000
  service2:
    description: 
    attributes:
      location: /opt/webapp/service2
      resource:
        cpu: 1
        memory: 1024MiB
        iops: 1000

In the above YAML, we have two services with the same resource block. We can write these:

---
project: The Great Project
version: 0.0.1
services:
  service1:
    description: Get information from DB
    attributes:
      location: /opt/webapp
      resource: &defaultresource
        cpu: 1
        memory: 1024MiB
        iops: 1000
  service2:
    description: Get information from DB
    attributes:
      location: /opt/webapp
      resource: *defaultresource

It is a valid YAML. This way we can solve repeated YAML sections with Anchors and Aliases.