Onboard redis as a Keel appliance #1
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Keel-Linux/keel-redis#1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This repository is still an untouched fork of the upstream recipe. Redis is one
of the three engines the maintainer chose, and it is the one where the modes are
cheapest: replication is
replicaofwithmasterauth, failover hasredis-sentinelpackaged with the server, and sharding is native in Clusterwith no extra package, where PostgreSQL has none packaged and MariaDB needs
Spider.
Closes when the recipe builds as a Keel layer carrying a redis unit, the project
packages are installed and asserted against the archive rather than a literal
version,
bindtakes literal addresses, and a boot test proves a clientauthenticates over IPv6 with the declared secret and that Webmin answers.
Note for later, not for this issue: Debian 13 also ships
valkey-server, thefork made after the licence change. The same unit should be able to serve both.
Where this stands, and the one thing that is not done.
Done and merged
keel-linux/unit-redis, a new repository: the component as a fab unit,plan,overlay/,conf,version. PRs 1, 2 and 3, tags v1.0.0, v1.0.1 and v1.0.2. 100 percent on all three measured files, 129 lines, 70 bats tests.corecarryingunit.d/redis, the project packages asserted against the archive rather than a literal version, the archive verified with gpgv rather than trusted,bind ::1 127.0.0.1as two literal addresses. PRs 2, 3, 4 and 5. 100 percent on all three files it writes, 270 lines, 92 bats tests.tests / coverageandpackage / changelogare required onmaster.keel-linux/aptPR 12:redis coreinconf/appliances. Four tests oftests/release.batshad been failing on itsmainsince the web layer and the two stacks were added; the harness readsconf/appliancesnow instead of a second list, and they pass.The layer
Built, staged and signed on the build host:
redis, delta oncore7acf2c53, first build sha25614b11627, 46,950,426 bytes, manifest recordingunits redis@1.0.1.What booting it proved, and what it found
Every claim this issue asks for was proved on the booted container, on
lxcbr0:adminauthenticates over IPv6 on[::1]:6379with the declared secret and answersPONG, writes and reads a key, a wrong secret is refused, a client with no secret is refused every key withNOPERM, andkeel inspectreportsdatabase.server.role: standalonewithengine: redisandlisten: 127.0.0.1, ::1.Getting there cost three defects, all in this work and all now fixed with tests and written into
docs/traps.md:INFOreply ends\r\n, so a grep anchored on$never matches. Killed the first build with a message that said no Redis answered while the server was up on both families.user admin offat build time and declaring it again at first boot is what the SQL engines do, and Redis refuses it outright; the account is declared once, at first boot, or not at all.logfilesetting is ever given, so the build time check, running as root, left/var/log/redis/redis-server.logowned by root in a directory the redis user owns, and the service could not start on any machine built from the layer.Not done
Webmin answering over IPv6 has not been proved on a booted machine, because the run failed before that step, and the layer has not been rebuilt at v1.0.2 to run the boot test end to end. The layer is not published, for two reasons:
keel-linux/tracker#11: publishing a release of one appliance replaces the public Proxmox index with an index of that one appliance. Staging it as it is would takereleases.keellinux.org/pve/aplinfo.datfrom eleven appliances to one.keel-release --resume --rebuild redis, and--rebuildis not scoped to the appliance named: it began rebuildingcore. Stopping it left the build host's own/mnt/builds/layers/core.tar.zstdisowned by its manifest (1a4df079on disk,7acf2c53required). Nothing published is affected and the repair is two writes and no build, both written down in the handbook's STATUS.So this issue stays open until
coreis restored on the build host, the layer is rebuilt atunits redis@1.0.2, andtests/boot-test.shruns green end to end.