mirror of
https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud.git
synced 2026-06-21 00:07:16 +03:00
102 lines
2.5 KiB
Markdown
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)
|