36 Commits
Author SHA1 Message Date
Brett T. Warden d0f1601944 Adopt an instance service for providers
Instead of creating a unique service file for each provider, just use a
single instance service. We'll change the symlinks in packaging.
2022-10-21 11:02:18 -07:00
Auke Kok 9644cbdc5d Add wait_for_network: <boolean>.
This option allows users to suspend execution of the cloud-init provisioning
until a valid network is detected.

This detection is currently done through requesting a DNS lookup for one
of the Clear Linux NTP service IP addresses (this is a RR record, we
don't actually look at the result).

This lookup is not infinite. After 5 minutes, the wait exits no matter
what even if there is no network detected.

The option can be provided manually. `packages` and `package_upgrade`
options *imply* this option, but one can explicitly disable the wait
by providing it early in the cloud-config file with a value of `false`.

The wait routing is active - it will retry relatively quickly to detect
an active connection. Any failure will result in another retry. In
a fully private network without public DNS, this will not work.

The DNS hostname used for testing can be manipulated through the
`-with-dnstestaddr=<hostname>` configure flag. You shouldn't put an
IP address in here, since that fully disables any network testing.
2019-10-29 11:33:17 -07:00
Auke Kok 4364c943e1 v40 2019-10-15 11:31:18 -07:00
jwang 4706d35c2c Add aliyun cloud support
Enable ucd to work in aliyun cloud by add a config templete
for aliyun

Signed-off-by: jwang <jing.j.wang@intel.com>
2019-10-15 11:27:02 -07:00
Auke Kok 2c8d9c0d62 Add security concern section to the README.md. 2019-10-14 14:30:18 -07:00
Auke Kok bdad5c2818 Update man pages to reflect the ucd-data-fetch program. 2019-08-07 14:59:30 -07:00
Auke Kok 31e30b5b29 Start of unification of aws/oci/tencent data fetcher.
Instead of keep duplicating existing code, we can make this program
a little bit more versatile and cover all 3 use cases and add some
extensibility for further additions.

A static table describes what needs fetching and from where. The
rest is logically the same and so the delta isn't so bad.

We add tencent cloud support on top of this.
2019-08-06 15:29:12 -07:00
Auke Kok 451aa37d84 Fix man page generation. 2018-11-16 10:56:29 -08:00
William Douglas bfadb7b09f Add Oracle Cloud support
Enable ucd to work within the Oracle Cloud environment. In this case
it involves creating the opc user and provisioning the ssh public
key.
2018-05-14 15:05:49 -07:00
Auke Kok b83cd00521 Add ucd-aws(1) man page. 2017-06-07 14:34:51 -07:00
Auke Kok 590b3aab6a Convert man pages to .md format, add ronn to Makefile.am. 2017-06-07 13:58:18 -07:00
Auke Kok 5056dc93ef Do not hard code path to ucd binary, instead pass $bindir 2017-05-02 10:28:21 -07:00
Auke Kok f275bf1eef ucd-aws: install unit file, compile with AM_CFLAGS 2017-04-28 15:11:10 -07:00
Auke Kok 5f80692011 ucd AWS helper.
The ucd-aws program fetches the user-data for an AMI instance
over http from 169.254.169.254, and passes it back to ucd.

The service is not supposed to be enabled unless you are running
on AWS, as it is highly specific to that cloud.
2017-04-28 14:48:10 -07:00
Ikey Doherty 94ce3cb2e3 Enforce a stricter, wider, cflags set by default
This will ensure that more compilation issues will be detected in future
development, ensuring a clean codebase.

Signed-off-by: Ikey Doherty <michael.i.doherty@intel.com>
2016-07-27 14:43:52 -07:00
Auke Kok ef081cb2e9 Project rename: clr-cloud-init is now micro-config-drive (ucd). 2016-07-11 10:15:28 -07:00
Julio Montes b4fec921d3 remove network code (#21)
* remove no-network option

Signed-off-by: Julio Montes <julio.montes@intel.com>

* update documentation

Signed-off-by: Julio Montes <julio.montes@intel.com>

* update service files

Signed-off-by: Julio Montes <julio.montes@intel.com>
2016-06-22 15:11:59 -07:00
Auke Kok f9f2dd5b9f Remove CURL support entirely. (#20)
With this change, only config-drive is effectively supported.
2016-06-09 11:33:23 -07:00
Ikey Doherty 1eeece519f Small build fixes (#19)
* Make -Werror a compile time option

Signed-off-by: Ikey Doherty <michael.i.doherty@intel.com>

* Ensure test suite builds with -Wl,--as-needed

The linking order is highly important to libtool. Previously we would link
the COMMON_LDADD libraries to the binaries, however no symbols were used so
binutils linker wouldn't link the libraries involved. Next we would link
libtest.la, a static convenience library, and fail at dynamic linking due
to the symbols only being used in this later-added libraries.

The solution is to first link the convenience library, and then link to the
shared libraries, in order for -Wl,--as-needed behaviour to function correctly
and only link the absolutely required libraries.

Signed-off-by: Ikey Doherty <michael.i.doherty@intel.com>
2016-06-08 11:30:57 -07:00
Julio Montes 75f12be586 remove -Werror* gcc options 2016-05-12 14:30:02 -07:00
Julio Montes 1c97e18f07 Split cloud-init service
cloud-init-pre-network:
runs before network service.
this service gets metadata from local datasources
in order to configure network stuff before network service
and configures the instance on its first booot

cloud-init:
runs after network service and will get userdata/metadata
from datasources(local/network). This service fixes disk
and filesystem

add first-boot-setup and no-network options
update documentation
2016-04-13 15:53:25 -05:00
Julio Montes b59627e781 implement fbootcmd ccmodule
fbootcmd ccmodule will run system commands only
on first boot
2016-02-25 15:16:47 -06:00
Julio Montes c88e4437ea implement async_task functions
implement async_task functions to run threads and
execute async commands
2016-02-03 16:04:36 -06:00
Julio Montes a8197405b0 remove cloud-init-firstboot service
cloud-init-firstboot service is not more needed because
cloud-init service can use --user-data-once option to
process only on first boot user data
2016-01-28 16:56:13 -06:00
Julio Montes 3c94634676 implement envar module
update cloud-config man page
update examples
2015-11-30 15:10:23 -06:00
Julio Montes 85dcda040f implement runcmd ccmodule
this module is able to execute command lines
2015-11-27 12:46:42 -06:00
Julio Montes 7e64fbd558 add unit tests for lib
add exec_test unit test
add option --disable-tests do not build unit tests
2015-11-26 12:26:56 -06:00
Ikey Doherty d60802812b Strengthen flags to fix unused variables and unsigned vs signed comparison
Signed-off-by: Ikey Doherty <michael.i.doherty@intel.com>
2015-11-25 16:27:18 +00:00
Julio Montes bbd77c21a8 enable cloud-init-firstboot service
Signed-off-by: Julio Montes <julio.montes@intel.com>
2015-11-24 10:14:32 -06:00
Julio Montes 0be3c8ebf5 implement hostname module
this module is able to set the system's hostname

add hostname module documentation
update userdata test file
2015-11-20 16:59:08 -06:00
Julio Montes 89cbfb4313 add cloud-init-firstboot service
cloud-init-firstboot service will do initial tasks
  * create and set up default user
  * get and process metadata/userdata from datasources
  * disable root login
this service will run once (firstboot)

cloud-init service won't run at the first boot
but it will do at next boot times
	* verify/fix/resize/grow up partitions and filesystems
	* get and process userdata from datasources (TODO: optional)
2015-11-20 11:06:40 -06:00
Julio Montes 9a34076e96 add functions to manipulate disks
add blkid library

functions:
* disk_for_path: is a useful function to get
  the disk path where a specific is mounted
  for instance: / -> /dev/sda
* disk_resize_grow: resizes/grows partitions and filesystems
  this function uses the last disk partition/filesystem
  for resize it
2015-11-19 15:41:15 -06:00
Julio Montes ab5f9b360d add support to verify disk partitions
add libparted dependency
update help menu
resize filesystem
2015-11-13 13:10:41 -06:00
Auke Kok 90b6d2895d Fix make distcheck.
Adding new openstack data source header file.
2015-11-09 18:16:56 +00:00
Julio Montes 1420427b61 add option to parse a custom openstack metadata file
add openstack metadata test file

Signed-off-by: Julio Montes <julio.montes@intel.com>
2015-11-09 11:59:53 -06:00
Auke Kok c7d1d9dda7 Initial commit 2015-11-05 18:38:10 +00:00