1
0
mirror of https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud.git synced 2026-06-21 00:07:16 +03:00
tiny-cloud/docs/cloud-config.5.scd
2026-05-09 22:06:44 +00:00

102 lines
2.5 KiB
Markdown

CLOUD-CONFIG(5)
# NAME
cloud-config - tiny-cloud-supported cloud-config user-data format
# DESCRIPTION
*cloud-config* describes the subset of *cloud-init* style user-data supported by
tiny-cloud.
This is not a full implementation of upstream cloud-init semantics. Only the
keys documented here are supported by tiny-cloud's *#cloud-config* handler.
The user-data document must begin with the header:
#cloud-config
# SUPPORTED KEYS
*user*
Configure the default login user. tiny-cloud recognizes scalar and mapping
forms, including *name*, *homedir*, *shell*, *primary_group*, and *gecos*.
*users*
Configure additional users. The first entry may be *default* to keep the
default user. Supported per-user keys are *name*, *gecos*, *homedir*,
*shell*, *primary_group*, *system*, *no_create_home*, *lock_passwd*,
*groups*, *doas*, and *ssh_authorized_keys*.
*ssh_authorized_keys*
Install SSH keys for the default user selected by *user* or *users*.
*groups*
Create additional groups.
*bootcmd*
Run commands during the main phase before later package and file actions.
*write_files*
Write files to disk. tiny-cloud supports *path*, *content*, *permissions*,
*owner*, *encoding*, and *append*. Supported encodings are *text/plain*,
*base64*, *b64*, *gzip*, *gz*, *gz+base64*, *gzip+base64*, *gz+b64*, and
*gzip+b64*.
*ntp*
Enable and configure NTP. Supported keys are *enabled* and *ntp_client*.
Recognized client values are *busybox*, *chrony*, and *openntpd*.
*package_update*
When set to *true*, run *apk update*.
*package_upgrade*
When set to *true*, run *apk upgrade*.
*packages*
Install packages with *apk add*.
*runcmd*
Run commands during the final phase.
# NOTES
The implementation is Alpine-focused. Package management and service control are
performed with Alpine tools such as *apk*(8), *rc-update*(8), and
*rc-service*(8).
For Alpine-specific extensions beyond this subset, see *alpine-config*(5).
# EXAMPLES
A more complete example:
```
#cloud-config
user:
name: alpine
shell: /bin/ash
ssh_authorized_keys:
- ssh-ed25519 AAAA... user@example.com
groups:
- wheel
package_update: true
packages:
- curl
- jq
write_files:
- path: /etc/motd
permissions: '0644'
content: |
tiny-cloud configured this host
runcmd:
- echo ready >/var/tmp/cloud-ready
```
This example sets the default user, installs SSH keys, creates a group,
installs packages, writes a file, and runs a final command.
# SEE ALSO
*alpine-config*(5), *tiny-cloud*(8)