1
0
mirror of https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud.git synced 2025-12-15 11:22:43 +03:00

Describe different user-data file formats

This commit is contained in:
Aleksandr Berkuta 2025-05-29 15:12:04 +03:00 committed by Aleksandr Berkuta
parent 158592eacf
commit abd60792ae

View File

@ -1,8 +1,22 @@
# Modules That Tiny-Cloud Supports
# User Data
The `user-data` file is used to configure Alpine linux state at the boot time. It supports a variety of modules that can be used to install packages, configure users and groups, and more. Tiny-cloud supports following modules:
User-data file is loaded during early stage. Location of this file defined by kernel paramter: `ds=<provider>;s=<path>`. For example for nocloud provider: `ds=nocloud;s=http://my.miniserve.instance/tinycloud/` tiny cloud will search for a file with name "user-data" at http://my.miniserve.instance/tinycloud/ resource.
Tiny-Cloud currently supports several user-data types and you could use ONE of them:
- alpine-config
- cloud-config
- script
The `user-data` file is used to configure Alpine Linux state at the boot time. It supports a variety of modules that can be used to install packages, configure users and groups, and more.
## Alpine-Config Data Type
Alpine config Must have `#alpine-config` as fist line in the file.
Rest of the file is a yaml which describes several alpine-spesific configuration paramters:
```yaml
#alpine-config
apk:
cache: # path to apk cache where /etc/apk/cache link follows
repositories: # <map> defines resulted url https://dl-cdn.alpinelinux.org/alpine/edge/community
@ -11,9 +25,22 @@ apk:
repos: # <list>
- community
user: # <map> Sets default user
autoinstall: # [ true | false] install alpine on the biggest empty disk found in the system
```
## Cloud-Config Data Type
Alpine config Must have `#cloud-config` as fist line in the file.
```yaml
#cloud-config
user: # <map> sets default user
name: # <string>
groups: # <list> groups for default user
- wheel
- admin
users: # <list>
# first one become default user
- name:
@ -25,10 +52,9 @@ users: # <list>
no_create_home: # [ true | false ] do not create home directory for the user. Default: false
lock_passwd: # reset password of the user
ssh_authorized_keys: # <list>
groups: # <list>
- wheel
- power
doas: # content of the /etc/doas.d/<name> doas file
groups: wheel,power # comma-separated list of groups for the user
doas: # content of the /etc/doas.d/<name>.conf doas file
-
ssh_authorized_keys: # public key to be authorized as default user
@ -53,8 +79,15 @@ package_upgrade: # if "true" runs `apk upgrade`
packages: # <list>
- curl
- bash
groups: # <list>
- wheel
- admin
```
## Script Data Type
Scipt user-data could be used to run arbitrary user script at the system init. User-data file must have script executor specific shebang, started with `#!`
For example shell script:
```shell
#!/bin/sh
echo "running custom script at init time"
```