---
- type: "io.trygvis.rules.machine.Machine"
  data:
    &acme-1 name: "acme-1"
    fqdn: "acme-1.machine.acme.com"
- type: "io.trygvis.rules.machine.Machine"
  data:
    &acme-2 name: "acme-2"
    fqdn: "acme-2.machine.acme.com"
- type: "io.trygvis.rules.machine.Machine"
  data:
    &acme-3 name: "acme-3"
    fqdn: "acme-3.machine.acme.com"
- type: "io.trygvis.rules.machine.Machine"
  data:
    &ws-1 name: "ws-1"
    fqdn: null
- type: "io.trygvis.rules.machine.Machine"
  data:
    &ws-2 name: "ws-2"
    fqdn: null
- type: "io.trygvis.rules.dns.DnsEntry"
  data:
    fqdn: "acme-1.machine.acme.com"
    type: "A"
- type: "io.trygvis.rules.dns.DnsEntry"
  data:
    fqdn: "acme-2.machine.acme.com"
    type: "A"
- type: "io.trygvis.rules.dns.DnsEntry"
  data:
    fqdn: "acme-3.machine.acme.com"
    type: "A"
- type: "io.trygvis.rules.dns.DnsEntryTerraformExpression"
  data:
    entry:
      fqdn: "acme-1.machine.acme.com"
      type: "A"
    key: "acme-1"
    expression: "scaleway_instance_ip.acme-1.address"
- type: "io.trygvis.rules.dns.DnsEntryTerraformExpression"
  data:
    entry:
      fqdn: "acme-2.machine.acme.com"
      type: "A"
    key: "acme-2"
    expression: "scaleway_instance_ip.acme-2.address"
- type: "io.trygvis.rules.dns.DnsEntryTerraformExpression"
  data:
    entry:
      fqdn: "acme-3.machine.acme.com"
      type: "A"
    key: "acme-3"
    expression: "scaleway_instance_ip.acme-3.address"
- type: "io.trygvis.rules.dns.DnsZone"
  data:
    name: "ci.acme.com"
- type: "io.trygvis.rules.dns.DnsZone"
  data:
    name: "production.acme.com"
- type: "io.trygvis.rules.dba.Cluster"
  data:
    &acme-myapp-ci name: "acme-myapp-ci"
- type: "io.trygvis.rules.dba.Cluster"
  data:
    &acme-myapp-production name: "acme-myapp-production"
- type: "io.trygvis.rules.dba.Cluster"
  data:
    &acme-ops name: "acme-ops"
- type: "io.trygvis.rules.dba.Container"
  data:
    id: "acme-myapp-ci-4tune-api"
    cluster: *acme-myapp-ci
    name: "4tune-api"
    machineRole: "ci-app"
    image: "4tune-api"
    tag: "development"
    machine: *acme-1
    machineSpecification:
      cpu: 200
      memory: 200
- type: "io.trygvis.rules.dba.Container"
  data:
    id: "acme-myapp-production-4tune-api"
    cluster: *acme-myapp-production
    name: "4tune-api"
    machineRole: "production-app"
    image: "4tune-api"
    tag: "master"
    machine: *acme-3
    machineSpecification:
      cpu: 200
      memory: 200
- type: "io.trygvis.rules.dba.Container"
  data:
    id: "acme-myapp-ci-4tune-web"
    cluster: *acme-myapp-ci
    name: "4tune-web"
    machineRole: "ci-app"
    image: "4tune-web"
    tag: "development"
    machine: *acme-1
    machineSpecification:
      cpu: 100
      memory: 50
- type: "io.trygvis.rules.dba.Container"
  data:
    id: "acme-myapp-production-4tune-web"
    cluster: *acme-myapp-production
    name: "4tune-web"
    machineRole: "production-app"
    image: "4tune-web"
    tag: "master"
    machine: *acme-3
    machineSpecification:
      cpu: 100
      memory: 50
- type: "io.trygvis.rules.dba.Container"
  data:
    id: "acme-myapp-ci-mdb"
    cluster: *acme-myapp-ci
    name: "mdb"
    machineRole: "ci-db"
    image: "mongodb"
    tag: "3.2"
    machine: *acme-2
    machineSpecification:
      cpu: 500
      memory: 200
- type: "io.trygvis.rules.dba.Container"
  data:
    id: "acme-myapp-production-mdb"
    cluster: *acme-myapp-production
    name: "mdb"
    machineRole: "production-db"
    image: "mongodb"
    tag: "3.2"
    machine: *acme-3
    machineSpecification:
      cpu: 500
      memory: 200
- type: "io.trygvis.rules.dba.Container"
  data:
    id: "acme-ops-n8n"
    cluster: *acme-ops
    name: "n8n"
    machineRole: "ops"
    image: "n8n"
    tag: "0.84.1"
    machine: *acme-2
    machineSpecification: null
- type: "io.trygvis.rules.dba.Container"
  data:
    id: "acme-myapp-ci-pdb"
    cluster: *acme-myapp-ci
    name: "pdb"
    machineRole: "ci-db"
    image: "postgresql"
    tag: "13"
    machine: *acme-2
    machineSpecification:
      cpu: 500
      memory: 500
- type: "io.trygvis.rules.dba.Container"
  data:
    id: "acme-myapp-production-pdb"
    cluster: *acme-myapp-production
    name: "pdb"
    machineRole: "production-db"
    image: "postgresql"
    tag: "13"
    machine: *acme-3
    machineSpecification:
      cpu: 500
      memory: 500
- type: "io.trygvis.rules.dba.Container"
  data:
    id: "acme-ops-pdb"
    cluster: *acme-ops
    name: "pdb"
    machineRole: "ops"
    image: "postgresql"
    tag: "11"
    machine: *acme-2
    machineSpecification: null
- type: "io.trygvis.rules.dba.Container"
  data:
    id: "acme-myapp-ci-statera"
    cluster: *acme-myapp-ci
    name: "statera"
    machineRole: "ci-app"
    image: "statera"
    tag: "development"
    machine: *acme-1
    machineSpecification:
      cpu: 200
      memory: 1000
- type: "io.trygvis.rules.dba.Container"
  data:
    id: "acme-myapp-production-statera"
    cluster: *acme-myapp-production
    name: "statera"
    machineRole: "production-app"
    image: "statera"
    tag: "master"
    machine: *acme-3
    machineSpecification:
      cpu: 200
      memory: 1000
- type: "io.trygvis.rules.dba.Container"
  data:
    id: "acme-myapp-ci-statera-console"
    cluster: *acme-myapp-ci
    name: "statera-console"
    machineRole: "ci-app"
    image: "statera-console"
    tag: "development"
    machine: *acme-1
    machineSpecification:
      cpu: 100
      memory: 50
- type: "io.trygvis.rules.dba.Container"
  data:
    id: "acme-myapp-production-statera-console"
    cluster: *acme-myapp-production
    name: "statera-console"
    machineRole: "production-app"
    image: "statera-console"
    tag: "master"
    machine: *acme-3
    machineSpecification:
      cpu: 100
      memory: 50
- type: "io.trygvis.rules.dba.DbaMachineRole"
  data:
    &1 machine: "acme-1"
    roles:
    - "ci-app"
- type: "io.trygvis.rules.dba.DbaMachineRole"
  data:
    &2 machine: "acme-2"
    roles:
    - "ops"
    - "ci-db"
- type: "io.trygvis.rules.dba.DbaMachineRole"
  data:
    &3 machine: "acme-3"
    roles:
    - "production-app"
    - "production-db"
- type: "io.trygvis.rules.terraform.ScalewayMachine"
  data:
    &acme-1 key: "acme-1"
    machine: *acme-1
- type: "io.trygvis.rules.terraform.ScalewayMachine"
  data:
    &acme-2 key: "acme-2"
    machine: *acme-2
- type: "io.trygvis.rules.terraform.ScalewayMachine"
  data:
    &acme-3 key: "acme-3"
    machine: *acme-3
- type: "io.trygvis.rules.terraform.ScalewayMachine"
  data:
    &ws-1 key: "ws-1"
    machine: *ws-1
- type: "io.trygvis.rules.terraform.ScalewayMachine"
  data:
    &ws-2 key: "ws-2"
    machine: *ws-2
- type: "io.trygvis.rules.engine.KeyValue"
  data:
    key: "rm-gen"
    value: null
- type: "io.trygvis.rules.terraform.GoogleManagedZoneTerraformExpression"
  data:
    &acme_zone name: "acme_zone"
- type: "io.trygvis.acme.AcmeServer"
  data:
    &acme-1 name: "acme-1"
    machine: *acme-1
- type: "io.trygvis.acme.AcmeServer"
  data:
    &acme-2 name: "acme-2"
    machine: *acme-2
- type: "io.trygvis.acme.AcmeServer"
  data:
    &acme-3 name: "acme-3"
    machine: *acme-3
- type: "io.trygvis.acme.apps.AcmeOps"
  data: {}
- type: "io.trygvis.acme.apps.AcmeMyApp"
  data:
    environment: "ci"
    dockerTag: "development"
- type: "io.trygvis.acme.apps.AcmeMyApp"
  data:
    environment: "production"
    dockerTag: "master"