The following pull request was submitted through Github. It can be accessed and reviewed at: https://github.com/lxc/lxd/pull/3955
This e-mail was sent by the LXC bot, direct replies will not reach the author unless they happen to be subscribed to this list. === Description (from pull-request) ===
From b9c2935e4f87b498c75234316f1685c601dc8ef6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= <[email protected]> Date: Wed, 18 Oct 2017 15:03:23 -0400 Subject: [PATCH 1/6] doc: Fix markdown escaping MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Graber <[email protected]> --- doc/server.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/doc/server.md b/doc/server.md index 27adb2bf4..4725233a5 100644 --- a/doc/server.md +++ b/doc/server.md @@ -7,22 +7,22 @@ currently supported: - `core` (core daemon configuration) - `images` (image configuration) -Key | Type | Default | API extension | Description -:-- | :--- | :------ | :------------ | :---------- -core.macaroon.endpoint | string | - | macaroon_authentication | URL of the the external authentication endpoint using Macaroons -core.https\_address | string | - | - | Address to bind for the remote API -core.https\_allowed\_headers | string | - | - | Access-Control-Allow-Headers http header value -core.https\_allowed\_methods | string | - | - | Access-Control-Allow-Methods http header value -core.https\_allowed\_origin | string | - | - | Access-Control-Allow-Origin http header value -core.https\_allowed\_credentials| boolean | - | - | Whether to set Access-Control-Allow-Credentials http header value to "true" -core.proxy\_http | string | - | - | http proxy to use, if any (falls back to HTTP\_PROXY environment variable) -core.proxy\_https | string | - | - | https proxy to use, if any (falls back to HTTPS\_PROXY environment variable) -core.proxy\_ignore\_hosts | string | - | - | hosts which don't need the proxy for use (similar format to NO\_PROXY, e.g. 1.2.3.4,1.2.3.5, falls back to NO\_PROXY environment variable) -core.trust\_password | string | - | - | Password to be provided by clients to setup a trust -images.auto\_update\_cached | boolean | true | - | Whether to automatically update any image that LXD caches -images.auto\_update\_interval | integer | 6 | - | Interval in hours at which to look for update to cached images (0 disables it) -images.compression\_algorithm | string | gzip | - | Compression algorithm to use for new images (bzip2, gzip, lzma, xz or none) -images.remote\_cache\_expiry | integer | 10 | - | Number of days after which an unused cached remote image will be flushed +Key | Type | Default | API extension | Description +:-- | :--- | :------ | :------------ | :---------- +core.macaroon.endpoint | string | - | macaroon\_authentication | URL of the the external authentication endpoint using Macaroons +core.https\_address | string | - | - | Address to bind for the remote API +core.https\_allowed\_headers | string | - | - | Access-Control-Allow-Headers http header value +core.https\_allowed\_methods | string | - | - | Access-Control-Allow-Methods http header value +core.https\_allowed\_origin | string | - | - | Access-Control-Allow-Origin http header value +core.https\_allowed\_credentials| boolean | - | - | Whether to set Access-Control-Allow-Credentials http header value to "true" +core.proxy\_http | string | - | - | http proxy to use, if any (falls back to HTTP\_PROXY environment variable) +core.proxy\_https | string | - | - | https proxy to use, if any (falls back to HTTPS\_PROXY environment variable) +core.proxy\_ignore\_hosts | string | - | - | hosts which don't need the proxy for use (similar format to NO\_PROXY, e.g. 1.2.3.4,1.2.3.5, falls back to NO\_PROXY environment variable) +core.trust\_password | string | - | - | Password to be provided by clients to setup a trust +images.auto\_update\_cached | boolean | true | - | Whether to automatically update any image that LXD caches +images.auto\_update\_interval | integer | 6 | - | Interval in hours at which to look for update to cached images (0 disables it) +images.compression\_algorithm | string | gzip | - | Compression algorithm to use for new images (bzip2, gzip, lzma, xz or none) +images.remote\_cache\_expiry | integer | 10 | - | Number of days after which an unused cached remote image will be flushed Those keys can be set using the lxc tool with: From 1747ed4a224806aae2b332fa7355272af8041cf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= <[email protected]> Date: Wed, 18 Oct 2017 15:03:50 -0400 Subject: [PATCH 2/6] doc: Sort server.md config keys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Graber <[email protected]> --- doc/server.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/server.md b/doc/server.md index 4725233a5..ab565b7c0 100644 --- a/doc/server.md +++ b/doc/server.md @@ -9,14 +9,14 @@ currently supported: Key | Type | Default | API extension | Description :-- | :--- | :------ | :------------ | :---------- -core.macaroon.endpoint | string | - | macaroon\_authentication | URL of the the external authentication endpoint using Macaroons core.https\_address | string | - | - | Address to bind for the remote API +core.https\_allowed\_credentials| boolean | - | - | Whether to set Access-Control-Allow-Credentials http header value to "true" core.https\_allowed\_headers | string | - | - | Access-Control-Allow-Headers http header value core.https\_allowed\_methods | string | - | - | Access-Control-Allow-Methods http header value core.https\_allowed\_origin | string | - | - | Access-Control-Allow-Origin http header value -core.https\_allowed\_credentials| boolean | - | - | Whether to set Access-Control-Allow-Credentials http header value to "true" -core.proxy\_http | string | - | - | http proxy to use, if any (falls back to HTTP\_PROXY environment variable) +core.macaroon.endpoint | string | - | macaroon\_authentication | URL of the the external authentication endpoint using Macaroons core.proxy\_https | string | - | - | https proxy to use, if any (falls back to HTTPS\_PROXY environment variable) +core.proxy\_http | string | - | - | http proxy to use, if any (falls back to HTTP\_PROXY environment variable) core.proxy\_ignore\_hosts | string | - | - | hosts which don't need the proxy for use (similar format to NO\_PROXY, e.g. 1.2.3.4,1.2.3.5, falls back to NO\_PROXY environment variable) core.trust\_password | string | - | - | Password to be provided by clients to setup a trust images.auto\_update\_cached | boolean | true | - | Whether to automatically update any image that LXD caches From b3a94124dda2433938f3b76f71d4ecdd9b1b3043 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= <[email protected]> Date: Wed, 18 Oct 2017 15:07:31 -0400 Subject: [PATCH 3/6] doc: Sort container config keys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Graber <[email protected]> --- doc/containers.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/doc/containers.md b/doc/containers.md index c5a72bea9..4425c6f1c 100644 --- a/doc/containers.md +++ b/doc/containers.md @@ -42,17 +42,17 @@ limits.network.priority | integer | 0 (minimum) | yes limits.processes | integer | - (max) | yes | - | Maximum number of processes that can run in the container linux.kernel\_modules | string | - | yes | - | Comma separated list of kernel modules to load before starting the container raw.apparmor | blob | - | yes | - | Apparmor profile entries to be appended to the generated profile +raw.idmap | blob | - | no | id\_map | Raw idmap configuration (e.g. "both 1000 1000") raw.lxc | blob | - | no | - | Raw LXC configuration to be appended to the generated one raw.seccomp | blob | - | no | container\_syscall\_filtering | Raw Seccomp configuration -raw.idmap | blob | - | no | id\_map | Raw idmap configuration (e.g. "both 1000 1000") security.idmap.base | integer | - | no | id\_map\_base | The base host ID to use for the allocation (overrides auto-detection) security.idmap.isolated | boolean | false | no | id\_map | Use an idmap for this container that is unique among containers with isolated set. security.idmap.size | integer | - | no | id\_map | The size of the idmap to use security.nesting | boolean | false | yes | - | Support running lxd (nested) inside the container security.privileged | boolean | false | no | - | Runs the container in privileged mode -security.syscalls.blacklist\_default | boolean | true | no | container\_syscall\_filtering | Enables the default syscall blacklist -security.syscalls.blacklist\_compat | boolean | false | no | container\_syscall\_filtering | On x86\_64 this enables blocking of compat\_\* syscalls, it is a no-op on other arches security.syscalls.blacklist | string | - | no | container\_syscall\_filtering | A '\n' separated list of syscalls to blacklist +security.syscalls.blacklist\_compat | boolean | false | no | container\_syscall\_filtering | On x86\_64 this enables blocking of compat\_\* syscalls, it is a no-op on other arches +security.syscalls.blacklist\_default | boolean | true | no | container\_syscall\_filtering | Enables the default syscall blacklist security.syscalls.whitelist | string | - | no | container\_syscall\_filtering | A '\n' separated list of syscalls to whitelist (mutually exclusive with security.syscalls.blacklist\*) user.\* | string | - | n/a | - | Free form user key/value storage (can be used in search) @@ -60,9 +60,6 @@ The following volatile keys are currently internally used by LXD: Key | Type | Default | Description :-- | :--- | :------ | :---------- -volatile.\<name\>.hwaddr | string | - | Network device MAC address (when no hwaddr property is set on the device itself) -volatile.\<name\>.name | string | - | Network device name (when no name propery is set on the device itself) -volatile.\<name\>.host\_name | string | - | Network device name on the host (for nictype=bridged or nictype=p2p) volatile.apply\_quota | string | - | Disk quota to be applied on next container start volatile.apply\_template | string | - | The name of a template hook which should be triggered upon next startup volatile.base\_image | string | - | The hash of the image the container was created from, if any. @@ -70,17 +67,20 @@ volatile.idmap.base | integer | - | The first id in th volatile.idmap.next | string | - | The idmap to use next time the container starts volatile.last\_state.idmap | string | - | Serialized container uid/gid map volatile.last\_state.power | string | - | Container state as of last host shutdown +volatile.\<name\>.host\_name | string | - | Network device name on the host (for nictype=bridged or nictype=p2p) +volatile.\<name\>.hwaddr | string | - | Network device MAC address (when no hwaddr property is set on the device itself) +volatile.\<name\>.name | string | - | Network device name (when no name propery is set on the device itself) Additionally, those user keys have become common with images (support isn't guaranteed): Key | Type | Default | Description :-- | :--- | :------ | :---------- -user.network\_mode | string | dhcp | One of "dhcp" or "link-local". Used to configure network in supported images. user.meta-data | string | - | Cloud-init meta-data, content is appended to seed value. +user.network-config | string | DHCP on eth0 | Cloud-init network-config, content is used as seed value. +user.network\_mode | string | dhcp | One of "dhcp" or "link-local". Used to configure network in supported images. user.user-data | string | #!cloud-config | Cloud-init user-data, content is used as seed value. user.vendor-data | string | #!cloud-config | Cloud-init vendor-data, content is used as seed value. -user.network-config | string | DHCP on eth0 | Cloud-init network-config, content is used as seed value. Note that while a type is defined above as a convenience, all values are stored as strings and should be exported over the REST API as strings From 33c489134aab55e73d101b44250779af4bbefcd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= <[email protected]> Date: Wed, 18 Oct 2017 15:15:07 -0400 Subject: [PATCH 4/6] doc: Sort network config keys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Graber <[email protected]> --- doc/networks.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/doc/networks.md b/doc/networks.md index c6d7b2029..54b01ae4f 100644 --- a/doc/networks.md +++ b/doc/networks.md @@ -23,38 +23,38 @@ Key | Type | Condition | Default :-- | :-- | :-- | :-- | :-- bridge.driver | string | - | native | Bridge driver ("native" or "openvswitch") bridge.external\_interfaces | string | - | - | Comma separate list of unconfigured network interfaces to include in the bridge -bridge.mtu | integer | - | 1500 | Bridge MTU (default varies if tunnel or fan setup) bridge.mode | string | - | standard | Bridge operation mode ("standard" or "fan") -fan.underlay\_subnet | string | fan mode | default gateway subnet | Subnet to use as the underlay for the FAN (CIDR notation) +bridge.mtu | integer | - | 1500 | Bridge MTU (default varies if tunnel or fan setup) +dns.domain | string | - | lxd | Domain to advertise to DHCP clients and use for DNS resolution +dns.mode | string | - | managed | DNS registration mode ("none" for no DNS record, "managed" for LXD generated static records or "dynamic" for client generated records) fan.overlay\_subnet | string | fan mode | 240.0.0.0/8 | Subnet to use as the overlay for the FAN (CIDR notation) fan.type | string | fan mode | vxlan | The tunneling type for the FAN ("vxlan" or "ipip") -tunnel.NAME.protocol | string | standard mode | - | Tunneling protocol ("vxlan" or "gre") -tunnel.NAME.local | string | gre or vxlan | - | Local address for the tunnel (not necessary for multicast vxlan) -tunnel.NAME.remote | string | gre or vxlan | - | Remote address for the tunnel (not necessary for multicast vxlan) -tunnel.NAME.group | string | vxlan | 239.0.0.1 | Multicast address for vxlan (used if local and remote aren't set) -tunnel.NAME.port | integer | vxlan | 0 | Specific port to use for the vxlan tunnel -tunnel.NAME.id | integer | vxlan | 0 | Specific tunnel ID to use for the vxlan tunnel -tunnel.NAME.interface | string | vxlan | - | Specific host interface to use for the tunnel +fan.underlay\_subnet | string | fan mode | default gateway subnet | Subnet to use as the underlay for the FAN (CIDR notation) ipv4.address | string | standard mode | random unused subnet | IPv4 address for the bridge (CIDR notation). Use "none" to turn off IPv4 or "auto" to generate a new one -ipv4.nat | boolean | ipv4 address | false | Whether to NAT (will default to true if unset and a random ipv4.address is generated) ipv4.dhcp | boolean | ipv4 address | true | Whether to allocate addresses using DHCP ipv4.dhcp.expiry | string | ipv4 dhcp | 1h | When to expire DHCP leases ipv4.dhcp.ranges | string | ipv4 dhcp | all addresses | Comma separated list of IP ranges to use for DHCP (FIRST-LAST format) ipv4.firewall | boolean | ipv4 address | true | Whether to generate filtering firewall rules for this network +ipv4.nat | boolean | ipv4 address | false | Whether to NAT (will default to true if unset and a random ipv4.address is generated) ipv4.routes | string | ipv4 address | - | Comma separated list of additional IPv4 CIDR subnets to route to the bridge ipv4.routing | boolean | ipv4 address | true | Whether to route traffic in and out of the bridge ipv6.address | string | standard mode | random unused subnet | IPv6 address for the bridge (CIDR notation). Use "none" to turn off IPv6 or "auto" to generate a new one -ipv6.nat | boolean | ipv6 address | false | Whether to NAT (will default to true if unset and a random ipv6.address is generated) ipv6.dhcp | boolean | ipv6 address | true | Whether to provide additional network configuration over DHCP ipv6.dhcp.expiry | string | ipv6 dhcp | 1h | When to expire DHCP leases -ipv6.dhcp.stateful | boolean | ipv6 dhcp | false | Whether to allocate addresses using DHCP ipv6.dhcp.ranges | string | ipv6 stateful dhcp | all addresses | Comma separated list of IPv6 ranges to use for DHCP (FIRST-LAST format) +ipv6.dhcp.stateful | boolean | ipv6 dhcp | false | Whether to allocate addresses using DHCP ipv6.firewall | boolean | ipv6 address | true | Whether to generate filtering firewall rules for this network +ipv6.nat | boolean | ipv6 address | false | Whether to NAT (will default to true if unset and a random ipv6.address is generated) ipv6.routes | string | ipv6 address | - | Comma separated list of additional IPv6 CIDR subnets to route to the bridge ipv6.routing | boolean | ipv6 address | true | Whether to route traffic in and out of the bridge -dns.domain | string | - | lxd | Domain to advertise to DHCP clients and use for DNS resolution -dns.mode | string | - | managed | DNS registration mode ("none" for no DNS record, "managed" for LXD generated static records or "dynamic" for client generated records) raw.dnsmasq | string | - | - | Additional dnsmasq configuration to append to the configuration +tunnel.NAME.group | string | vxlan | 239.0.0.1 | Multicast address for vxlan (used if local and remote aren't set) +tunnel.NAME.id | integer | vxlan | 0 | Specific tunnel ID to use for the vxlan tunnel +tunnel.NAME.interface | string | vxlan | - | Specific host interface to use for the tunnel +tunnel.NAME.local | string | gre or vxlan | - | Local address for the tunnel (not necessary for multicast vxlan) +tunnel.NAME.port | integer | vxlan | 0 | Specific port to use for the vxlan tunnel +tunnel.NAME.protocol | string | standard mode | - | Tunneling protocol ("vxlan" or "gre") +tunnel.NAME.remote | string | gre or vxlan | - | Remote address for the tunnel (not necessary for multicast vxlan) Those keys can be set using the lxc tool with: From bb8e088b22a1ab21c0b2745b9253d4c9703c7baf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= <[email protected]> Date: Wed, 18 Oct 2017 15:30:38 -0400 Subject: [PATCH 5/6] doc: Sort storage config keys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Graber <[email protected]> --- doc/storage.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/storage.md b/doc/storage.md index c61619db3..dccff0075 100644 --- a/doc/storage.md +++ b/doc/storage.md @@ -12,16 +12,16 @@ source | string | - btrfs.mount\_options | string | btrfs driver | user\_subvol\_rm\_allowed | storage\_btrfs\_mount\_options | Mount options for block devices ceph.cluster\_name | string | ceph driver | ceph | storage\_driver\_ceph | Name of the ceph cluster in which to create new storage pools. ceph.osd.force\_reuse | bool | ceph driver | false | storage\_ceph\_force\_osd\_reuse | Force using an osd storage pool that is already in use by another LXD instance. -ceph.osd.pool\_name | string | ceph driver | name of the pool | storage\_driver\_ceph | Name of the osd storage pool. ceph.osd.pg\_num | string | ceph driver | 32 | storage\_driver\_ceph | Number of placement groups for the osd storage pool. +ceph.osd.pool\_name | string | ceph driver | name of the pool | storage\_driver\_ceph | Name of the osd storage pool. ceph.rbd.clone\_copy | string | ceph driver | true | storage\_driver\_ceph | Whether to use RBD lightweight clones rather than full dataset copies. ceph.user.name | string | ceph driver | admin | storage\_ceph\_user\_name | The ceph user to use when creating storage pools and volumes. lvm.thinpool\_name | string | lvm driver | LXDPool | storage | Thin pool where images and containers are created. lvm.use\_thinpool | bool | lvm driver | true | storage\_lvm\_use\_thinpool | Whether the storage pool uses a thinpool for logical volumes. lvm.vg\_name | string | lvm driver | name of the pool | storage | Name of the volume group to create. rsync.bwlimit | string | - | 0 (no limit) | storage\_rsync\_bwlimit | Specifies the upper limit to be placed on the socket I/O whenever rsync has to be used to transfer storage entities. -volatile.pool.pristine | string | - | true | storage\_driver\_ceph | Whether the pool has been empty on creation time. volatile.initial\_source | string | - | - | storage\_volatile\_initial\_source | Records the actual source passed during creating (e.g. /dev/sdb). +volatile.pool.pristine | string | - | true | storage\_driver\_ceph | Whether the pool has been empty on creation time. volume.block.filesystem | string | block based driver (lvm) | ext4 | storage | Filesystem to use for new volumes volume.block.mount\_options | string | block based driver (lvm) | discard | storage | Mount options for block devices volume.size | string | appropriate driver | 0 | storage | Default volume size From a45b50e732f2779334c45b3a46a31f26fba2384c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= <[email protected]> Date: Wed, 18 Oct 2017 15:30:54 -0400 Subject: [PATCH 6/6] Update bash completion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Graber <[email protected]> --- config/bash/lxd-client | 90 +++++++++++++++++++++++++++++--------------------- 1 file changed, 53 insertions(+), 37 deletions(-) diff --git a/config/bash/lxd-client b/config/bash/lxd-client index b5e1c56c6..087906833 100644 --- a/config/bash/lxd-client +++ b/config/bash/lxd-client @@ -60,40 +60,50 @@ _have lxc && { return 0 fi - lxc_cmds="config copy delete exec file help image info init launch \ - list move network profile publish remote restart restore shell snapshot \ - start stop storage version" + lxc_cmds="config copy delete exec file finger help image info init launch \ + list manpage monitor move network profile publish query remote rename \ + restart restore shell snapshot start stop storage version" - global_keys="core.https_address core.https_allowd_origin \ - core.https_allowed_methods core.https_allowed_headers \ - core.https_allowed_credentials core.proxy_https \ - core.proxy_http core.proxy_ignore_host core.trust_password \ - images.compression_algorithm \ - images.remote_cache_expiry images.auto_update_interval \ - images.auto_update_cached" + global_keys="core.https_address core.https_allowed_credentials \ + core.https_allowed_headers core.https_allowed_methods \ + core.https_allowed_origin core.macaroon.endpoint core.proxy_https \ + core.proxy_http core.proxy_ignore_hosts core.trust_password \ + images.auto_update_cached images.auto_update_interval \ + images.compression_algorithm images.remote_cache_expiry" - container_keys="boot.autostart boot.autostart.delay boot.autostart.priority \ - boot.host_shutdown_timeout limits.cpu limits.cpu.allowance limits.cpu.priority \ - limits.disk.priority limits.memory limits.memory.enforce limits.memory.swap \ - limits.memory.swap.priority limits.network.priority limits.processes \ - linux.kernel_modules raw.apparmor raw.lxc raw.seccomp security.nesting \ - security.privileged security.syscalls.blacklist_default \ - security.syscalls.blacklist_compat security.syscalls.blacklist \ - security.syscalls.whitelist volatile.apply_template volatile.base_image \ - volatile.last_state.idmap volatile.last_state.power user.network_mode \ - user.meta-data user.user-data user.vendor-data" + container_keys="boot.autostart boot.autostart.delay \ + boot.autostart.priority boot.host_shutdown_timeout environment. \ + limits.cpu limits.cpu.allowance limits.cpu.priority \ + limits.disk.priority limits.memory limits.memory.enforce \ + limits.memory.swap limits.memory.swap.priority limits.network.priority \ + limits.processes linux.kernel_modules raw.apparmor raw.idmap raw.lxc \ + raw.seccomp security.idmap.base security.idmap.isolated \ + security.idmap.size security.nesting security.privileged \ + security.syscalls.blacklist security.syscalls.blacklist_compat \ + security.syscalls.blacklist_default \ + volatile.apply_quota volatile.apply_template volatile.base_image \ + volatile.idmap.base volatile.idmap.next volatile.last_state.idmap \ + volatile.last_state.power user.meta-data user.network-config \ + user.network_mode user.user-data user.vendor-data" - networks_keys="bridge.driver bridge.external_interfaces bridge.mtu bridge.mode \ - fan.underlay_subnet fan.overlay_subnet fan.type ipv4.address ipv4.nat ipv4.dhcp \ - ipv4.dhcp.expiry ipv4.dhcp.ranges ipv4.routing ipv6.address ipv6.nat ipv6.dhcp ipv6.dhcp.stateful \ - ipv6.dhcp.expiry ipv6.dhcp.ranges ipv6.routing dns.domain dns.mode raw.dnsmasq" + networks_keys="bridge.driver bridge.external_interfaces bridge.mode \ + bridge.mtu dns.domain dns.mode fan.overlay_subnet fan.type \ + fan.underlay_subnet ipv4.address ipv4.dhcp ipv4.dhcp.expiry \ + ipv4.dhcp.ranges ipv4.firewall ipv4.nat ipv4.routes ipv4.routing \ + ipv6.address ipv6.dhcp ipv6.dhcp.expiry ipv6.dhcp.ranges \ + ipv6.dhcp.stateful ipv6.firewall ipv6.nat ipv6.routes ipv6.routing \ + raw.dnsmasq" - storage_pool_keys="source size volume.block.mount_options - volume.block.filesystem volume.size volume.zfs.use_refquota - volume.zfs.remove_snapshots volume.lvm.thinpool_name zfs.pool_name" + storage_pool_keys="source size btrfs.mount_options ceph.cluster_name \ + ceph.osd.force_reuse ceph.osd.pg_num ceph.osd.pool_name \ + ceph.rbd.clone_copy ceph.user.name lvm.thinpool_name lvm.use_thinpool \ + lvm.vg_name rsync.bwlimit volatile.initial_source \ + volatile.pool.pristine volume.block.filesystem \ + volume.block.mount_options volume.size volume.zfs.remove_snapshots \ + volume.zfs.use_refquota zfs.clone_copy zfs.pool_name" - storage_volume_keys="block.mount_options block.filesystem size - zfs.use_refquota zfs.remove_snapshots" + storage_volume_keys="size block.filesystem block.mount_options \ + zfs.remove_snapshots zfs.use_refquota" if [ $COMP_CWORD -eq 1 ]; then COMPREPLY=( $(compgen -W "$lxc_cmds" -- ${COMP_WORDS[COMP_CWORD]}) ) @@ -113,7 +123,7 @@ _have lxc && { "config") case $pos in 2) - COMPREPLY=( $(compgen -W "device edit get set show trust" -- $cur) ) + COMPREPLY=( $(compgen -W "get set unset show edit metadata template device trust" -- $cur) ) ;; 3) case ${no_dashargs[2]} in @@ -123,6 +133,12 @@ _have lxc && { "device") COMPREPLY=( $(compgen -W "add get set unset list show remove" -- $cur) ) ;; + "metadata") + COMPREPLY=( $(compgen -W "show edit" -- $cur) ) + ;; + "template") + COMPREPLY=( $(compgen -W "list show create edit delete" -- $cur) ) + ;; "show"|"edit") _lxd_names ;; @@ -164,7 +180,7 @@ _have lxc && { COMPREPLY=( $(compgen -W "$lxc_cmds" -- $cur) ) ;; "image") - COMPREPLY=( $(compgen -W "import copy delete edit export info list show alias" -- $cur) ) + COMPREPLY=( $(compgen -W "import copy delete refresh export info list show edit alias" -- $cur) ) ;; "info") _lxd_names @@ -181,11 +197,11 @@ _have lxc && { "network") case $pos in 2) - COMPREPLY=( $(compgen -W "list show create get set unset delete edit attach attach-profile detach detach-profile" -- $cur) ) + COMPREPLY=( $(compgen -W "list show create get set unset delete edit rename attach attach-profile detach detach-profile" -- $cur) ) ;; 3) case ${no_dashargs[2]} in - "show"|"get"|"set"|"unset"|"delete"|"edit"|"attach"|"attach-profile"|"detach"|"detach-profile") + "show"|"get"|"set"|"unset"|"delete"|"edit"|"rename"|"attach"|"attach-profile"|"detach"|"detach-profile") _lxd_networks ;; esac @@ -207,12 +223,12 @@ _have lxc && { "profile") case $pos in 2) - COMPREPLY=( $(compgen -W "list copy delete apply device edit get set show" -- $cur) ) + COMPREPLY=( $(compgen -W "list show create copy get set unset delete edit rename assign add remove device " -- $cur) ) ;; 3) case ${no_dashargs[2]} in "device") - COMPREPLY=( $(compgen -W "add get set unset list show remove" -- $cur) ) + COMPREPLY=( $(compgen -W "list show remove get set unset add" -- $cur) ) ;; *) _lxd_profiles @@ -279,11 +295,11 @@ _have lxc && { "storage_volumes") case $pos in 2) - COMPREPLY=( $(compgen -W "list show create get set unset delete edit attach attach-profile detach detach-profile" -- $cur) ) + COMPREPLY=( $(compgen -W "list show create rename get set unset delete edit attach attach-profile detach detach-profile" -- $cur) ) ;; 3) case ${no_dashargs[2]} in - "show"|"get"|"set"|"unset"|"delete"|"edit"|"attach"|"attach-profile"|"detach"|"detach-profile") + "show"|"get"|"set"|"unset"|"rename"|"delete"|"edit"|"attach"|"attach-profile"|"detach"|"detach-profile") _lxd_storage_volumes ;; esac
_______________________________________________ lxc-devel mailing list [email protected] http://lists.linuxcontainers.org/listinfo/lxc-devel
