summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaude <noreply@anthropic.com>2026-09-02 21:11:01 -0500
committerClaude <noreply@anthropic.com>2026-09-02 21:11:01 -0500
commit9f3f9ee638e0a82960446f74345e9ee99bfec474 (patch)
tree4028a24c0b9530f603153e715dee3badcb86166d
parentf10cd386fd85386303253287d3e0c5e2a7d52124 (diff)
Rename the default base snapshot from "ready" to "default"
"ready" read as a status word rather than a label for what's actually a mutable pointer to "the current recommended base image," re-tagged as it evolves - the exact operation we did twice this session. "default" names that role directly: it's the value --base-snapshot falls back to, nothing more claimed. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
-rw-r--r--README.md5
-rw-r--r--USER_GUIDE.md15
-rw-r--r--cmd/skiff/main.go4
3 files changed, 13 insertions, 11 deletions
diff --git a/README.md b/README.md
index 88b1d93..bff2a78 100644
--- a/README.md
+++ b/README.md
@@ -79,13 +79,14 @@ Unmount devfs and snapshot once the image can actually build and run apps:
```
# umount /skiff/base/dev
-# zfs snapshot zroot/skiff/base@ready
+# zfs snapshot zroot/skiff/base@default
# zfs create -o mountpoint=none zroot/skiff/appbase
# zfs create -o mountpoint=none zroot/skiff/appdata
# mkdir -p /skiff/apps
```
-`ready` is the snapshot every app's dataset gets cloned from. Re-snapshot
+`default` is the snapshot every app's dataset gets cloned from unless
+`--base-snapshot` says otherwise. Re-snapshot
under a new tag after patching the base (e.g. `security-2026-08`) and pass
`--base-snapshot` to `new-app` to pick it up.
diff --git a/USER_GUIDE.md b/USER_GUIDE.md
index d81ae5d..587a625 100644
--- a/USER_GUIDE.md
+++ b/USER_GUIDE.md
@@ -293,7 +293,7 @@ Unmount devfs and snapshot once the image can actually build and run apps:
```
# umount /skiff/base/dev
-# zfs snapshot zroot/skiff/base@ready
+# zfs snapshot zroot/skiff/base@default
# zfs create -o mountpoint=none zroot/skiff/appbase
# zfs create -o mountpoint=none zroot/skiff/appdata
# mkdir -p /skiff/apps
@@ -320,7 +320,8 @@ Keeping the OS layer and the app's data on separate datasets is what
lets `skiff rebuild` (see [Rebuilding a jail](#rebuilding-a-jail))
destroy and reclone the former without any risk to the latter.
-`ready` is the snapshot every app's dataset gets cloned from. Re-snapshot
+`default` is the snapshot every app's dataset gets cloned from unless
+`--base-snapshot` says otherwise. Re-snapshot
under a new tag after patching the base (e.g. `security-2026-08`) and
pass `--base-snapshot` to `new-app` to pick it up.
@@ -531,8 +532,8 @@ Current `skiff` versions self-heal this automatically (checkout runs
### Rebuilding a jail
```
-# skiff rebuild --app myapp [--base-snapshot ready] [--iface vtnet0]
-# skiff rebuild --all [--base-snapshot ready] [--iface vtnet0]
+# skiff rebuild --app myapp [--base-snapshot default] [--iface vtnet0]
+# skiff rebuild --all [--base-snapshot default] [--iface vtnet0]
```
Every app's jail is really two independent ZFS datasets: an **OS
@@ -612,7 +613,7 @@ Carried over from the project's own README, plus what testing surfaced:
```
skiff new-app --name <app> --ip <ip> [--port 8080] [--health-path /healthz]
- [--base-snapshot ready] [--iface vtnet0]
+ [--base-snapshot default] [--iface vtnet0]
skiff deploy --app <app> --new <sha> [--ref refs/heads/main]
(normally invoked by the post-receive hook, not by hand)
@@ -620,8 +621,8 @@ skiff deploy --app <app> --new <sha> [--ref refs/heads/main]
skiff rollback --app <app> --list
skiff rollback --app <app> --to <snapshot-tag>
-skiff rebuild --app <app> [--base-snapshot ready] [--iface vtnet0]
-skiff rebuild --all [--base-snapshot ready] [--iface vtnet0]
+skiff rebuild --app <app> [--base-snapshot default] [--iface vtnet0]
+skiff rebuild --all [--base-snapshot default] [--iface vtnet0]
skiff config set --app <app> KEY=VALUE [KEY=VALUE...]
skiff config unset --app <app> KEY [KEY...]
diff --git a/cmd/skiff/main.go b/cmd/skiff/main.go
index 52d57c1..d9535f9 100644
--- a/cmd/skiff/main.go
+++ b/cmd/skiff/main.go
@@ -87,7 +87,7 @@ func cmdNewApp(args []string) error {
ip := fs.String("ip", "", "IPv4 address to assign the jail (operator-chosen)")
port := fs.Int("port", layout.DefaultHealthPort, "port the app listens on inside the jail")
healthPath := fs.String("health-path", layout.DefaultHealthPath, "health check path")
- baseSnapshot := fs.String("base-snapshot", "ready", "snapshot on the base dataset to clone from")
+ baseSnapshot := fs.String("base-snapshot", "default", "snapshot on the base dataset to clone from")
iface := fs.String("iface", layout.DefaultJailIface, "host interface the jail's IP is aliased onto")
fs.Parse(args)
@@ -200,7 +200,7 @@ func cmdRebuild(args []string) error {
fs := flag.NewFlagSet("rebuild", flag.ExitOnError)
app := fs.String("app", "", "app name")
all := fs.Bool("all", false, "rebuild every app")
- baseSnapshot := fs.String("base-snapshot", "ready", "snapshot on the base dataset to clone from")
+ baseSnapshot := fs.String("base-snapshot", "default", "snapshot on the base dataset to clone from")
iface := fs.String("iface", layout.DefaultJailIface, "host interface the jail's IP is aliased onto")
fs.Parse(args)