A 10 minute read covering some YAML edge-cases that you should have in mind when writing complex YAML files

  • Ephera@lemmy.ml
    link
    fedilink
    English
    arrow-up
    30
    ·
    6 days ago

    Man, even knowing that YAML document was going to be laden with bullshit, I only spotted the unquoted version strings looking fishy.

    I also really dislike how often YAML is abused to take keys as list items. Something like this, for example:

    hosts:
      debian-vm:
        user: root
      database-server:
        user: sql
    

    “debian-vm” and “database-server” are the hostname, and as such they are values. So, this should be written as:

    hosts:
      - name: debian-vm
        user: root
      - name: database-server
        user: sql
    

    And I’m not just nitpicking here. If we change the example a bit:

    hosts:
      database:
        user: sql
    

    …then suddenly, you don’t know, if “database” is just one of many possible hosts or if all hosts always have a shared database with this technology.

    • sik0fewl
      link
      fedilink
      arrow-up
      10
      ·
      6 days ago

      Recently introduced myself to OpenAPI/Swagger and it’s chock full of this. It’s painful.

      • corsicanguppy
        link
        fedilink
        English
        arrow-up
        1
        ·
        5 days ago

        Maybe one day you’ll be left with optimized Ansible.

        It’ll still be absolute shit, because it’s Ansible, but at leas-- nah, quit now.