Output formats¶
Most opentf-ctl
commands output structured data. By default, the output is
formatted as a table. The --output
flag allows you to change the output
format. The supported formats are:
wide # show additional information
custom-columns= # show specified information
json # show information in JSON format
yaml # show information in YAML format
Wide¶
The --output=wide
or -o wide
format shows more information than the default format.
Please refer to the command’s description for more details on the additional information.
Custom columns¶
The --output=custom-columns=...
or -o custom-columns=...
format allows you to specify
the columns to display. It is supported by most commands. The columns are specified as a
comma-separated list of {column name}:{key path}
definitions.
The column name can be any string not containing a colon. The key path starts with an optional
dot and is a dot-separated list of keys to access the value to display. For example,
.metadata.name
will display the name
key of the metadata
object, my name
.
metadata:
name: my name
labels:
foo: bar
baz: qux
spec:
runs-on: [agent1, agent2]
If the key path denotes an object or a list, its JSON representation will be returned. For
example, using the example above, .metadata.labels
gives {"foo": "bar", "baz": "qux"}
and
.spec.runs-on
gives ["agent1", "agent2"]
.
You can use *
to group values: .metadata.labels.*
gives ["bar", "qux"]
.
You can use *~
to group keys: .metadata.labels.*~
gives ["foo", "baz"]
.
Please note that *~
can only be used at the end of the key path.
The command’s description lists commonly available keys, but any key can be used.
If you do not find the information you are looking for, you can use the -o json
or -o yaml
format to discover the information’s structure.
If the key path is invalid, the value will be <none>
.
Tip
Those key paths are JSON paths. If you are familiar with jq
, you probably recognized
the syntax. The root node is implicit here, and you can only use the dot notation.
Functions and filters are irrelevant in the context and are hence unavailable.
JSON and YAML¶
The --output={json,yaml}
or -o {json,yaml}
format shows the information in JSON or YAML
format. Depending on the command, the output is either an object or a list of objects. It
can be fed to jq
or yq
for further processing.