Go to file
stresler 8fac253214 Removing convert-netconf from packet OEM
We still utilize the network code on first boot, so it should remain until we implement ignition, but we don't want it on subsequent boots, which is what this line would do.
2015-09-11 12:00:10 -04:00
config cloudinit: trim trailing whitespaces in #cloud-config header 2015-09-07 18:30:02 +02:00
datasource Merge pull request #383 from sigma/t/feature/vmware-config-url 2015-09-04 09:20:42 -07:00
Documentation docs: quote everything 2015-09-08 18:40:21 -07:00
Godeps godeps: add github.com/sigma/vmw-guestinfo 2015-08-24 09:03:29 -07:00
initialize cloudinit: trim trailing whitespaces in #cloud-config header 2015-09-07 18:30:02 +02:00
network datasource: add vmware 2015-09-01 15:36:35 -07:00
pkg pkg/http: up the timeout to 10 seconds 2015-08-11 10:42:41 -07:00
system log: use log.Print instead of fmt.Print 2015-08-23 19:30:03 -07:00
units units: update dependencies 2014-06-27 14:29:59 -07:00
.gitignore style(httpbackoff -> pkg): Adjusts package name to follow convention 2014-05-22 14:37:19 -04:00
.travis.yml Removing goland 1.3 and 1.2 from Travis testing 2015-06-22 18:43:27 -04:00
build build: extract the version number from git 2015-08-12 11:05:04 -07:00
CONTRIBUTING.md docs: Update maintainers and contribution guide 2014-09-08 12:55:17 -07:00
coreos-cloudinit_test.go metadata: simplify merging of metadata 2015-01-26 16:08:26 -08:00
coreos-cloudinit.go Removing convert-netconf from packet OEM 2015-09-11 12:00:10 -04:00
cover feat(tests): add cover script 2014-05-10 01:42:57 -07:00
DCO chore(contributing): clean up CONTRIBUTING.md and split out DCO 2014-04-04 10:40:37 -07:00
LICENSE feat(*): initial commit 2014-01-19 12:25:11 -08:00
MAINTAINERS docs: Update maintainers and contribution guide 2014-09-08 12:55:17 -07:00
NOTICE feat(*): initial commit 2014-01-19 12:25:11 -08:00
README.md chore(travis): Adds travis yaml file and badge in README 2014-05-16 17:09:59 -04:00
test datasource: add vmware 2015-09-01 15:36:35 -07:00

coreos-cloudinit Build Status

coreos-cloudinit enables a user to customize CoreOS machines by providing either a cloud-config document or an executable script through user-data.

Configuration with cloud-config

A subset of the official cloud-config spec is implemented by coreos-cloudinit. Additionally, several CoreOS-specific options have been implemented to support interacting with unit files, bootstrapping etcd clusters, and more. All supported cloud-config parameters are documented here.

The following is an example cloud-config document:

#cloud-config

coreos:
    units:
      - name: etcd.service
        command: start

users:
  - name: core
    passwd: $1$allJZawX$00S5T756I5PGdQga5qhqv1

write_files:
  - path: /etc/resolv.conf
    content: |
        nameserver 192.0.2.2
        nameserver 192.0.2.3

Executing a Script

coreos-cloudinit supports executing user-data as a script instead of parsing it as a cloud-config document. Make sure the first line of your user-data is a shebang and coreos-cloudinit will attempt to execute it:

#!/bin/bash

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.

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