The validation of the encoding for write_files was looking
for a node named "contents" when the node name is "content"
Signed-off-by: Darren Shepherd <darren@rancher.com>
Add an internal field for CloudConfig to make it easier to distinguish.
Instead of creating two CloudConfigs and merging them, just merge the
metadata into the existing CloudConfig.
These reintroduces the braindead '744' syntax for file permissions. Even
though this number isn't octal, it is assumed by convention to be. In
order to pull this off, coerceNodes() was introduced to try to
counteract the type inferrencing that occurs during the yaml
unmarshalling. The config is unmarshalled twice: once into an empty
interface and once into the CloudConfig structure. The two resulting
node structures are combined together. The nodes from the CloudConfig
process replace those from the interface{} when the types of the two
nodes are compatible. For example, with the input `0744`, yaml
interprets that as the integer 484 giving us the nodes '0744'(string)
and 484(int). Because the types string and int are compatible, we opt to
take the string node instead of the integer.
Small modification to make these align with our test-table-style tests.
Also removed TestCloudConfigInvalidKeys since it hasn't been a useful
test since d3294bcb86.
This allows a list of drop-ins for a unit to be declared inline within a
cloud-config. For example:
#cloud-config
coreos:
units:
- name: docker.service
drop-ins:
- name: 50-insecure-registry.conf
content: |
[Service]
Environment=DOCKER_OPTS='--insecure-registry="10.0.1.0/24"'
This new table is pulled from the etcd codebase rather than the docs...
Added:
GraphiteHost
PeerElectionTimeout
PeerHeartbeatInterval
PeerKeyFile
RetryInterval
SnapshotCount
StrTrace
VeryVeryVerbose
Fixed types:
ClusterActiveSize
ClusterRemoveDelay
ClusterSyncInterval
HTTPReadTimeout
HTTPWriteTimeout
MaxResultBuffer
MaxRetryAttempts
Snapshot
Verbose
VeryVerbose
Renamed:
Cors
Removed:
MaxClusterSize
CPUProfileFile
It was assumed that the user would specify the reboot strategy as an
unquoted value. In the case that they turn off updates, `off` is
interpreted as a boolean and the normalization pass converts that to
`false`. In the event that the user uses `"off"`, it's interpreted as a
string and not modified.