mirror of
https://github.com/kemko/nomad.git
synced 2026-01-03 17:05:43 +03:00
* Move commands from docs to its own root-level directory * temporarily use modified dev-portal branch with nomad ia changes * explicitly clone nomad ia exp branch * retrigger build, fixed dev-portal broken build * architecture, concepts and get started individual pages * fix get started section destinations * reference section * update repo comment in website-build.sh to show branch * docs nav file update capitalization * update capitalization to force deploy * remove nomad-vs-kubernetes dir; move content to what is nomad pg * job section * Nomad operations category, deploy section * operations category, govern section * operations - manage * operations/scale; concepts scheduling fix * networking * monitor * secure section * remote auth-methods folder and move up pages to sso; linkcheck * Fix install2deploy redirects * fix architecture redirects * Job section: Add missing section index pages * Add section index pages so breadcrumbs build correctly * concepts/index fix front matter indentation * move task driver plugin config to new deploy section * Finish adding full URL to tutorials links in nav * change SSO to Authentication in nav and file system * Docs NomadIA: Move tutorials into NomadIA branch (#26132) * Move governance and policy from tutorials to docs * Move tutorials content to job-declare section * run jobs section * stateful workloads * advanced job scheduling * deploy section * manage section * monitor section * secure/acl and secure/authorization * fix example that contains an unseal key in real format * remove images from sso-vault * secure/traffic * secure/workload-identities * vault-acl change unseal key and root token in command output sample * remove lines from sample output * fix front matter * move nomad pack tutorials to tools * search/replace /nomad/tutorials links * update acl overview with content from deleted architecture/acl * fix spelling mistake * linkcheck - fix broken links * fix link to Nomad variables tutorial * fix link to Prometheus tutorial * move who uses Nomad to use cases page; move spec/config shortcuts add dividers * Move Consul out of Integrations; move namespaces to govern * move integrations/vault to secure/vault; delete integrations * move ref arch to docs; rename Deploy Nomad back to Install Nomad * address feedback * linkcheck fixes * Fixed raw_exec redirect * add info from /nomad/tutorials/manage-jobs/jobs * update page content with newer tutorial * link updates for architecture sub-folders * Add redirects for removed section index pages. Fix links. * fix broken links from linkcheck * Revert to use dev-portal main branch instead of nomadIA branch * build workaround: add intro-nav-data.json with single entry * fix content-check error * add intro directory to get around Vercel build error * workound for emtpry directory * remove mdx from /intro/ to fix content-check and git snafu * Add intro index.mdx so Vercel build should work --------- Co-authored-by: Tu Nguyen <im2nguyen@gmail.com>
101 lines
3.5 KiB
Plaintext
101 lines
3.5 KiB
Plaintext
---
|
|
layout: docs
|
|
page_title: yamldecode - Functions - Configuration Language
|
|
description: |-
|
|
The yamldecode function decodes a YAML string into a representation of its
|
|
value.
|
|
---
|
|
|
|
# `yamldecode` Function
|
|
|
|
`yamldecode` parses a string as a subset of YAML, and produces a representation
|
|
of its value.
|
|
|
|
This function supports a subset of [YAML 1.2](https://yaml.org/spec/1.2/spec.html),
|
|
as described below.
|
|
|
|
This function maps YAML values to
|
|
[Nomad language values](/nomad/docs/reference/hcl2/expressions#types-and-values)
|
|
in the following way:
|
|
|
|
| YAML type | Nomad type |
|
|
| ------------- | ------------------------------------------------------------------ |
|
|
| `!!str` | `string` |
|
|
| `!!float` | `number` |
|
|
| `!!int` | `number` |
|
|
| `!!bool` | `bool` |
|
|
| `!!map` | `object(...)` with attribute types determined per this table |
|
|
| `!!seq` | `tuple(...)` with element types determined per this table |
|
|
| `!!null` | The Nomad language `null` value |
|
|
| `!!timestamp` | `string` in [RFC 3339](https://tools.ietf.org/html/rfc3339) format |
|
|
| `!!binary` | `string` containing base64-encoded representation |
|
|
|
|
The Nomad language automatic type conversion rules mean that you don't
|
|
usually need to worry about exactly what type is produced for a given value,
|
|
and can just use the result in an intuitive way.
|
|
|
|
Note though that the mapping above is ambiguous -- several different source
|
|
types map to the same target type -- and so round-tripping through `yamldecode`
|
|
and then `yamlencode` cannot produce an identical result.
|
|
|
|
YAML is a complex language and it supports a number of possibilities that the
|
|
Nomad language's type system cannot represent. Therefore this YAML decoder
|
|
supports only a subset of YAML 1.2, with restrictions including the following:
|
|
|
|
- Although aliases to earlier anchors are supported, cyclic data structures
|
|
(where a reference to a collection appears inside that collection) are not.
|
|
If `yamldecode` detects such a structure then it will return an error.
|
|
|
|
- Only the type tags shown in the above table (or equivalent alternative
|
|
representations of those same tags) are supported. Any other tags will
|
|
result in an error.
|
|
|
|
- Only one YAML document is permitted. If multiple documents are present in
|
|
the given string then this function will return an error.
|
|
|
|
## Examples
|
|
|
|
```shell-session
|
|
> yamldecode("{\"hello\": \"world\"}")
|
|
{
|
|
"hello" = "world"
|
|
}
|
|
|
|
> yamldecode("true")
|
|
true
|
|
|
|
> yamldecode("{a: &foo [1, 2, 3], b: *foo}")
|
|
{
|
|
"a" = [
|
|
1,
|
|
2,
|
|
3,
|
|
]
|
|
"b" = [
|
|
1,
|
|
2,
|
|
3,
|
|
]
|
|
}
|
|
|
|
> yamldecode("{a: &foo [1, *foo, 3]}")
|
|
|
|
Error: Error in function call
|
|
|
|
Call to function "yamldecode" failed: cannot refer to anchor "foo" from inside
|
|
its own definition.
|
|
|
|
> yamldecode("{a: !not-supported foo}")
|
|
|
|
Error: Error in function call
|
|
|
|
Call to function "yamldecode" failed: unsupported tag "!not-supported".
|
|
```
|
|
|
|
## Related Functions
|
|
|
|
- [`jsondecode`](/nomad/docs/reference/hcl2/functions/encoding/jsondecode) is a similar operation using JSON instead
|
|
of YAML.
|
|
- [`yamlencode`](/nomad/docs/reference/hcl2/functions/encoding/yamlencode) performs the opposite operation, _encoding_
|
|
a value as YAML.
|