Natanael Copa
3197427cb3
Add incus support
...
Incus provides meta-data via unix socket /dev/incus/sock
https://linuxcontainers.org/incus/docs/main/dev-incus/
2024-06-28 11:40:22 +02:00
Natanael Copa
abe98e6cbf
Improve readability and fix quoting in fake netcat
...
No functional changes.
2024-06-27 22:11:51 +02:00
Natanael Copa
11789c272f
Autodetect nocloud if CLOUD is unset
...
Set default CLOUD to 'auto', which will try autodetect the cloud
provider.
Each cloud can have an autodetect script which should print:
<priority> <cloud>
if cloud was detected.
2024-06-27 21:56:51 +02:00
Natanael Copa
d0a39db18d
Automatically setup apk repositories if not specified
...
Configure network repositories with setup-apkrepos if no repositories
file exists.
2024-06-27 17:49:40 +00:00
Natanael Copa
cd385f5610
Add initial support for alpine autoinstall
...
Run setup-disk on the biggest empty disk found when autoinstall: true is
set.
2024-06-27 17:27:03 +00:00
Natanael Copa
239cb59a13
Move alpine provider into nocloud
2024-06-23 20:26:22 +00:00
Natanael Copa
e402fe63e7
Use grep -E instead of egrep
2024-05-25 19:42:25 +00:00
Hugo Rodrigues
2713aac43f
Added support to Hetzner
2024-03-10 22:28:36 +00:00
Hugo Rodrigues
119d7a686e
Add scaleway support
2024-02-14 15:05:52 +00:00
Natanael Copa
45cc24696b
Configure ephemeral network if needed
...
Add ipv4 address from dhcp if datasource is from https and no ipv4
address is configured.
2024-01-18 04:02:50 +00:00
Natanael Copa
e6fb222af3
nocloud: support set data source via smbios in qemu
2023-12-14 00:00:48 +00:00
Natanael Copa
6fb5fa088b
Support disabling tiny-cloud via /etc/tiny-cloud.disabled
...
ref: https://gitlab.alpinelinux.org/alpine/mkinitfs/-/merge_requests/133
ref: https://cloudinit.readthedocs.io/en/latest/howto/disable_cloud_init.html
2023-11-28 15:56:35 +01:00
Natanael Copa
d30d2555df
Implement ssh_authorized_keys
2023-06-09 14:23:51 +00:00
Natanael Copa
e36abdef4a
replace set_nocloud_meta with fake_metadata_nocloud
...
remove redundand test code
2023-06-07 14:15:07 +02:00
Natanael Copa
b571e252c0
Add a fake getent for tests
...
Avoid tests fail due to existing default user on system. There are more
than one test that is affected of this, so create a fake getent for all.
ref: https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud/-/issues/42
2023-05-24 17:50:12 +02:00
Natanael Copa
85108e958b
Fix vim modelines and make more readable
...
Add missing trailing :
Use filetype=sh instead of ft=sh to make it more readable.
2023-05-24 14:50:02 +00:00
Natanael Copa
b4776260db
Move create_default_user to main phase
2023-05-23 14:28:23 +00:00
Natanael Copa
a042bf8cf1
Consolidate init-*.test into init.test
...
The separate init-early, init-main and init-final were consolidated in
commit 81869cefccd3 (Consolidate init functionality in /sbin/tiny-cloud)
Do the same with the unit tests for those functions.
No functional changes.
2023-05-22 12:15:57 +02:00
Natanael Copa
3ca6b74a48
Hide mount failures when looking for CIDATA
...
fixes https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud/-/issues/43
2023-05-22 09:49:23 +00:00
Natanael Copa
40d15db038
Use fake getent to avoid existing system users
...
The default user may or may not exist on the system running the tests.
Create a fake getent to simulate non-existing user in a consistent way.
fixes https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud/-/issues/42
2023-05-22 11:27:56 +02:00
Jake Buchholz Göktürk
5f26d1f579
Rename Phases & Support doas.conf
2023-05-22 00:34:28 +00:00
Natanael Copa
c4195b5e8b
Add package_update / package_upgrade
...
Allows system to be upgraded before installing new.
ref: https://cloudinit.readthedocs.io/en/latest/reference/modules.html#package-update-upgrade-install
2023-05-19 17:50:33 +02:00
Natanael Copa
000f41a48b
Add .editorconfig and replace spaces with tabs
2023-05-19 04:13:16 +00:00
Jussi Nummelin
7d9a280a67
Add support for write_files instructions
2023-05-18 13:31:11 +00:00
Natanael Copa
b63ffb71d0
Refactor imds tests and add tests for azure, gcp and oci
2023-05-18 13:25:27 +00:00
Natanael Copa
0f40c146f2
Refactor aws tests' fake meta-data
...
Refactor fake wget to use a yaml so we can set aws fake meta-data
similar to how we set nocloud fake meta-data.
Also move fake netcat to tests/bin/nc so its always there and we don't
need to remember to call fake_netcat when needed.
2023-05-17 17:40:43 +00:00
Natanael Copa
a90bf444d3
Unhide imds error messages
...
imds drivers may print error messages to stderr. Do not hide those.
2023-05-17 14:36:09 +02:00
Natanael Copa
c4d2592e41
Do not show missing user error if there is no ssh-key provided
...
fixes https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud/-/issues/41
2023-05-16 20:52:13 +00:00
Jake Buchholz Göktürk
badf0f65d1
Fix UserData Script chmod, etc.
2023-05-15 01:33:57 +00:00
Jake Buchholz Göktürk
bc6edeeaa5
install user-data handlers, tweak logging
2023-05-13 22:05:58 +00:00
Natanael Copa
b03030182f
Add cloud provider "alpine" and user-data "alpine-conf"
2023-05-09 14:15:31 +00:00
Natanael Copa
468407db05
Add test for empty or no config
...
for all providers
2023-05-08 22:31:58 +02:00
Natanael Copa
f46b6b24d8
tests: unify fake_metadata_nocloud and fake_userdata_nocloud
...
Avoid duplication of code.
No changes in behavior
2023-05-08 16:54:52 +02:00
Natanael Copa
d1ed0c29e3
Make init__create_default_user return success
...
We should return success even if /etc/doas.d is missing
fixes https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud/-/issues/38
2023-05-08 12:19:11 +02:00
Jake Buchholz Göktürk
4ccc16f18f
Enable sshd & Source UserData Handler
2023-05-08 04:41:41 +00:00
Jake Buchholz Göktürk
4f9386bb94
Add "create_default_user" Init Action
2023-05-08 02:37:54 +00:00
Jake Buchholz Göktürk
ec139644a1
Set Default interfaces
2023-05-07 23:49:50 +00:00
Natanael Copa
02c0c31703
tiny-cloud: Print usage on invalid option and add test
...
Add test that verifies invalid option and `tiny-cloud --help`
2023-05-04 11:50:22 +02:00
Jake Buchholz Göktürk
58ac2108cd
Fixes for tiny-cloud Wrapper
...
* switch from phase functions to variables containing list of actions
* init actions prefixed with 'init__'
* refine output during init
* add syslog entries
* add --setup for putting init scripts in the right runlevel
2023-05-03 02:11:01 +00:00
Jake Buchholz Göktürk
3894cd9f8d
Support "local-hostname"
2023-04-30 23:23:54 +00:00
Jake Buchholz Göktürk
81869cefcc
Consolidate init functionality in /sbin/tiny-cloud
2023-04-30 03:37:11 +00:00
Natanael Copa
fa01b4ea9a
tests: add tests for init-final
2023-04-06 22:27:42 +02:00
Natanael Copa
e51051c7ca
tests: refactor fake userdata for nocloud
...
- move it so it can be shared
- remove mentions of #cloud-config to avoid confusion
2023-04-06 22:07:58 +02:00
Natanael Copa
7ea8f69a06
Fix user-data decompression on all shells
...
yash[1] and zsh does not handle 8-bit bytes in strings good. Work around it
by using printf ... | cmp ... to compare the header. This should be 100%
posix compatible.
Also fix some of the compression header magic bytes:
- unxz: Use octal aas the string '\3757zXZ\000' was misinterpreted by some
shells.
- lzma: the third byte represents compression mode[2], and we want
support all compression modes not only '8', so we only check the first
three bytes instead of 4.
[1]: Upstream report: https://osdn.net/projects/yash/ticket/47772
[2]: https://github.com/frizb/FirmwareReverseEngineering/blob/master/IdentifyingCompressionAlgorithms.md#lzma
2023-04-06 17:19:40 +02:00
Natanael Copa
ab46d7223f
tests: add test for save_userdata
...
Test that compressed user-data gets properly detected
2023-04-06 17:19:40 +02:00
Natanael Copa
a67cbd37b0
Add test for ssh-keys in nocloud yaml
2023-04-06 17:19:40 +02:00
Natanael Copa
0f53f14399
tests: add initial tests for init-main
2023-04-06 17:19:36 +02:00
Natanael Copa
38cbdee6a2
Return failure if any of install_modules fails
...
Add test to verify that install_modules can be skipped and that
install_modules returns failure if it fails to update mdev.conf.
2023-03-09 11:47:34 +01:00
Natanael Copa
091af053c5
Use printf for skip_action
...
printf is posix compatible and works with all shell. echo -n does not
work with yash and is not posix compatible.
Add test for skipping expand_root
2023-03-09 11:47:34 +01:00
Natanael Copa
a626e694c6
Refactor expand_root
...
Simplify it a bit.
- use awk /proc/mounts instead of busybox mountpoint
- use sysfs to find partition and volume. This is more robust
- add tests for it
2023-03-09 11:47:34 +01:00