Merge pull request #46 from bcwaldon/doc-field-sub

doc(fields): Document field substitution
This commit is contained in:
Brian Waldon 2014-03-21 14:41:53 -07:00
commit 81e4f1f896
2 changed files with 35 additions and 4 deletions

View File

@ -11,9 +11,7 @@ Only a subset of [cloud-config functionality][cloud-config] is implemented. A se
### coreos.etcd ### coreos.etcd
The `coreos.etcd.*` options are translated to a partial systemd unit acting as an etcd configuration file. The `coreos.etcd.*` options are translated to a partial systemd unit acting as an etcd configuration file.
`coreos-cloudinit` will also replace the strings `$private_ipv4` and `$public_ipv4` with the values generated by CoreOS based on a given provider. We can use the templating feature of coreos-cloudinit to automate etcd configuration with the `$private_ipv4` and `$public_ipv4` fields. For example, the following cloud-config document...
For example, the following cloud-config document...
``` ```
#cloud-config #cloud-config

View File

@ -33,7 +33,6 @@ write_files:
nameserver 192.0.2.3 nameserver 192.0.2.3
``` ```
## Executing a Script ## Executing a Script
coreos-cloudinit supports executing user-data as a script instead of parsing it as a cloud-config document. coreos-cloudinit supports executing user-data as a script instead of parsing it as a cloud-config document.
@ -44,3 +43,37 @@ Make sure the first line of your user-data is a shebang and coreos-cloudinit wil
echo 'Hello, world!' echo 'Hello, world!'
``` ```
## user-data Field Substitution
coreos-cloudinit will replace the following set of tokens in your user-data with system-generated values.
| Token | Description |
| ------------- | ----------- |
| $public_ipv4 | Public IPv4 address of machine |
| $private_ipv4 | Private IPv4 address of machine |
These values are determined by CoreOS based on the given provider on which your machine is running.
Read more about provider-specific functionality in the [CoreOS OEM documentation][oem-doc].
[oem-doc]: https://coreos.com/docs/sdk-distributors/distributors/notes-for-distributors/
For example, submitting the following user-data...
```
#cloud-config
coreos:
etcd:
addr: $public_ipv4:4001
peer-addr: $private_ipv4:7001
```
...will result in this cloud-config document being executed:
```
#cloud-config
coreos:
etcd:
addr: 203.0.113.29:4001
peer-addr: 192.0.2.13:7001
```