What is the exact format of profile configuration file?

Apologies in advance about the n00b question, but I’m really confused about how to define the configuration of a container I’m about to launch.

It seems to me that the only way to be able to control ALL the configuration parameters for a container (at the time of launch), is by using a pre-defined profile, right?

Now when I do lxc profile edit myprofile , it shows me a YAML file that looks like this:

config: {}
description: ""
devices: {}
name: myprofile
used_by: []

The docs mention various configuration keys in the following format: bridge.driver, dns.mode, ipv4.nat etc.

When I try to place these networking config params in a standard YAML manner, it throws an error:

devices:
  eth0:
     dns:
       mode: none
    bridge:
      driver: native

Hence, this basic question. Where (and how) in the profile config file, do I place various config params that I see in the docs?

PS: I’m on Ubuntu 18.04 and using lxc v.3.0.3, I believe.

Update2: Forget what I have said before.
The keys are only listed in the networks docs:
https://linuxcontainers.org/lxd/docs/master/networks#network-bridge

So what you need to do is edit the network configuration directly, with
for example:

lxc network edit <network>

and then add:

  dns.mode: none
  bridge.driver: native

or: lxc network set <network> <key> <value>

Even though bridge.driver: native is not necessary as its the default.

One more thing:

I can’t seem to find your config keys in the official documentation: Instances | LXD

Which could also be an explanation why things don’t work for you.

Also remember the difference between LXD config keys and the config keys for cloud-init (see also advanced guide: Linux Containers - LXD - Advanced guide ).