docs(lakefs): add the Alauda support for lakeFS installation guide - #823
Merged
Conversation
Installation guide for the S2 ecosystem plugin "Alauda support for lakeFS" (lakeFS 1.84.1, upstream chart 1.12.18), packaged by the oss-operator-factory and published to the Alauda Cloud marketplace. Follows the per-component convention already used by the knative / nacos / debezium / konveyor guides: hand-authored prose with factory:auto fenced slots for supported-versions and known-limitations, so later releases can regenerate those from component.yaml without touching the prose. No id field, so CI assigns a real KB id on merge. The guide leads with the storage decision because that is where a lakeFS install actually goes wrong: the shipped defaults are an embedded metadata store on the container filesystem, which is single-replica and not durable. It gives all three shapes explicitly (out-of-the-box, evaluation-with-a-PVC, production with PostgreSQL + S3) and the one-volume-at-/home/lakefs rule that makes the middle one work. Every command was taken from the validated e2e path rather than written from the upstream docs — lakectl invoked from inside the image against the Service, and the uninstall ordering (delete the LakeFS resource before the Operator, or the namespace hangs Terminating) is the failure this release actually hit.
…a store Measured on ACP 4.2 while running the production-shape e2e leg: with database.type postgres, lakeFS starts normally, connects to PostgreSQL and initialises its S3 adapter, then stays uninitialized and rejects every request with 'credentials not found'. Isolated with a control - two deployments identical except the metadata store type; the embedded one comes up initialised, the PostgreSQL one does not. The guide previously presented the installation block with no qualification, so a reader following it for a production deployment would get something that starts cleanly and then refuses to work. It is now scoped to evaluation, with the caveat, the '/app/lakefs setup' escape hatch (which mints its own key pair and ignores any configured one), a pointer from the production section, and a Known Limitation entry.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Installation guide for the S2 ecosystem plugin Alauda support for lakeFS (lakeFS 1.84.1, upstream
chart 1.12.18), packaged by the oss-operator-factory and published to the Alauda Cloud marketplace
(cn app 967 / io app 837).
Follows the convention already used by the knative / nacos / debezium / konveyor guides:
hand-authored prose with
factory:autofenced slots for supported-versions and known-limitations, solater releases regenerate those without touching the prose. No
id:field, so CI assigns a real KBid on merge.
What the guide leads with, and why
The storage decision, before installation — because that is where a lakeFS install actually goes
wrong. The shipped defaults are an embedded metadata store on the container filesystem, which is
single-replica and not durable, and it is easy to mistake "it installed" for "it is ready to use".
The guide gives all three shapes explicitly — out-of-the-box, evaluation-with-a-PVC, production with
PostgreSQL + S3 — and the one-volume-at-
/home/lakefsrule that makes the middle one work.Everything here was executed, not transcribed from upstream docs
Commands come from the validated e2e path:
lakectlinvoked from inside the image against theService, the exact convergence checks the release gate uses, and the uninstall ordering (delete the
LakeFSresource before the Operator, or the namespace hangs inTerminating) — which is thefailure this release actually hit during onboarding.
The second commit is a correction worth reading
The first version documented lakeFS's unattended
installation.*setup with no qualification. Whilerunning the production-shape e2e leg (PostgreSQL + S3) I found that it does not apply when the
metadata store is PostgreSQL: the server starts normally, connects to PostgreSQL — it creates its
partitioned
kvtables and writes to them — initialises the S3 adapter, and then stays{"state":"not_initialized"}, rejecting every API call withcredentials not found.Established rather than assumed:
twice;
database.type: the embedded onecomes up
initializedand the configured key works, the PostgreSQL one does not.A reader following the original text for a production deployment would have got something that
starts cleanly and then refuses to work. It is now scoped to evaluation, with the caveat, the
/app/lakefs setupescape hatch (which mints its own key pair and ignores any configured one), apointer from the production section, and a Known Limitation entry.
Once set up, the production shape is fully functional — verified end to end: repository on
s3://<bucket>/<repo>, upload → commit → branch → merge → read back, objects physically present inthe object store, and the S3-compatible gateway serving them.
Validation
Frontmatter parses; no
id:on the new file; relative anchors resolve.yarn builddoes not runlocally (it dies in SSG on
localStorage.getItem is not a functioninside@alauda/doom, amodule-load failure independent of page content) — CI builds fine.