PLG-Motion | Contextual Data Platform Installation Tutorial - #1054
PLG-Motion | Contextual Data Platform Installation Tutorial#1054nerpaula wants to merge 6 commits into
Conversation
|
Deploy Preview Available Via |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughAdds a tutorials landing page and a follow-along tutorial for installing, running, accessing, verifying, and cleaning up the Arango Contextual Data Platform on a local Kubernetes cluster. ChangesLocal Evaluation Tutorial
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (2)
site/content/contextual-data-platform/tutorials/evaluate-locally.md (2)
75-75: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick winPin the Kubernetes version used by the tutorial.
The tutorial promises a reproducible setup, but
kind create clusterleaves the node image implicit. Pin a testedkindest/nodeimage, preferably by digest, or document the supported Kubernetes range before relying on this operator/chart combination. kind explicitly supports selecting a specific node image/version. (kind.sigs.k8s.io)🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@site/content/contextual-data-platform/tutorials/evaluate-locally.md` at line 75, Update the tutorial’s `kind create cluster` command to explicitly select the tested `kindest/node` image, preferably pinned by digest, so the Kubernetes environment is reproducible. If a digest cannot be used, document the supported Kubernetes version range before the operator/chart setup.Source: MCP tools
145-152: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick winDo not encourage untested operator upgrades.
The command is pinned to
1.4.2, while the comment tells readers to substitute any newer release; the sample output and platform compatibility were only demonstrated for the pinned version. The official operator documentation currently advertises1.4.3, so either update the tutorial after validating a specific version or state that1.4.2is the tested version and remove the open-ended upgrade instruction. (arangodb.github.io)🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@site/content/contextual-data-platform/tutorials/evaluate-locally.md` around lines 145 - 152, Update the VERSION_OPERATOR comment in the Helm installation example to state that 1.4.2 is the tested version, and remove the open-ended instruction encouraging readers to use any newer release. Keep the command pinned to 1.4.2 unless a newer version has been validated for the tutorial.Source: MCP tools
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@site/content/contextual-data-platform/tutorials/evaluate-locally.md`:
- Around line 311-314: Update the kubectl logs example in the local evaluation
tutorial to include the --all-containers=true flag, ensuring it works for the
multi-container pods described above. Leave the kubectl describe command
unchanged.
---
Nitpick comments:
In `@site/content/contextual-data-platform/tutorials/evaluate-locally.md`:
- Line 75: Update the tutorial’s `kind create cluster` command to explicitly
select the tested `kindest/node` image, preferably pinned by digest, so the
Kubernetes environment is reproducible. If a digest cannot be used, document the
supported Kubernetes version range before the operator/chart setup.
- Around line 145-152: Update the VERSION_OPERATOR comment in the Helm
installation example to state that 1.4.2 is the tested version, and remove the
open-ended instruction encouraging readers to use any newer release. Keep the
command pinned to 1.4.2 unless a newer version has been validated for the
tutorial.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 360cc11b-8229-4b31-a858-ba3c96fc748d
📒 Files selected for processing (2)
site/content/contextual-data-platform/tutorials/_index.mdsite/content/contextual-data-platform/tutorials/evaluate-locally.md
mchacki
left a comment
There was a problem hiding this comment.
This is a great tutorial.
I went through it, and I did fall into a trap when you are making an error on the Architecture Selection.
I added some description on how to identify and repair in the comments.
There is one thing missing:
We need to setup a storage layer for the AI Suite to work.
(I think minio could be configured (total local), or an s3 bucket).
How to test:
After tutorial open the UI.
Go to AI Suite -> Run AutoGraph.
Create a Project.
-> Try to upload a small file.
It should relatively quickly move you forward.
It gets stuck without an error message if the storage is not responsive.
|
|
||
| - An **x86-64 (amd64)** or **64-bit ARM (arm64)** CPU with at least 4 cores. | ||
| - At least 16 GB of RAM. | ||
| - At least 50 GB of free disk space for the container images. |
There was a problem hiding this comment.
Should we make this higher?
aka. do we have some wiggle room to actually add data?
|
|
||
| Save the following specification as `deployment.yaml`: | ||
|
|
||
| ```yaml |
There was a problem hiding this comment.
This is actually worse, it contains arm64 again.
if you are evaluating on amd64 this will get stuck.
Note:
In the "stuck" case the --watch did never make progress.
Also add the way out:
In case you are getting stuck there is a chance you missed changing the architecture here as well.
Here is how to figure this out:
kubectl get pods --namespace arango
NAME READY STATUS RESTARTS AGE
arango-operator-operator-5df76999cf-hsqb5 1/1 Running 0 17m
deployment-id-19a661 0/1 Pending 0 14m
This will list your pods, one item the operator you had installed previously, the user is the Arango deployment, in my case deployment-id-19a661 the last digits are generated and will be different for you.
As you see it is "Pending" for quite a while.
You can access details with:
kubectl get pods --namespace arango deployment-id-19a661 -o yaml
The relevant part is at the end of the output:
[...]
status:
conditions:
- lastProbeTime: null
lastTransitionTime: "2026-07-13T14:07:48Z"
message: '0/1 nodes are available: 1 node(s) didn''t match Pod''s node affinity/selector.
preemption: 0/1 nodes are available: 1 Preemption is not helpful for scheduling.'
reason: Unschedulable
status: "False"
type: PodScheduled
phase: Pending
qosClass: BestEffort
message: '0/1 nodes are available: 1 node(s) didn''t match Pod''s node affinity/selector.
Indicates we cannot start anything on the given architecture.
Change the downloaded file above and look for architecture: there make sure you insert arm64 or amd64 whichever is the desired one.
Then repeat:
kubectl apply --namespace arango -f deployment.yaml
This now changes the desired state to the correct one, now we need to kill the stuck pod:
kubectl delete pods --namespace arango deployment-id-19a661
(note the ID needs to be matching with yours again)
Now the pod is gone, but we defined that such a pod needs to exist, so the operator will try to spawn it again, now picking up the changed architecture.
|
@mchacki Thanks for the valuable feedback. Here's a summary of the latest changes addressing your comments.
|
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (2)
site/content/contextual-data-platform/tutorials/evaluate-locally.md (2)
340-340: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick winPin the MinIO images in this tutorial.
minio/minio:latestandminio/mccan drift between runs; use fixed version tags, ideally with digests, for both.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@site/content/contextual-data-platform/tutorials/evaluate-locally.md` at line 340, Update the MinIO image references in the tutorial configuration, including minio/minio and minio/mc, to fixed version tags or preferably immutable digests. Ensure neither reference uses a floating tag such as latest, and keep both images on compatible pinned versions.
77-77: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick winPin the kind node image by digest.
kindest/node:v1.33.1is tag-based and can drift; use the@sha256digest for the target architecture so the tutorial stays reproducible.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@site/content/contextual-data-platform/tutorials/evaluate-locally.md` at line 77, Update the kind cluster creation command to pin the kindest/node:v1.33.1 image by its architecture-appropriate `@sha256` digest instead of the mutable tag, preserving the existing cluster name and command flow.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@site/content/contextual-data-platform/tutorials/evaluate-locally.md`:
- Line 424: Update both expected-output fenced code blocks in the tutorial, near
the affected sections, to specify the text language identifier by changing their
fence openings to text fences. Leave the block contents unchanged.
---
Nitpick comments:
In `@site/content/contextual-data-platform/tutorials/evaluate-locally.md`:
- Line 340: Update the MinIO image references in the tutorial configuration,
including minio/minio and minio/mc, to fixed version tags or preferably
immutable digests. Ensure neither reference uses a floating tag such as latest,
and keep both images on compatible pinned versions.
- Line 77: Update the kind cluster creation command to pin the
kindest/node:v1.33.1 image by its architecture-appropriate `@sha256` digest
instead of the mutable tag, preserving the existing cluster name and command
flow.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: e6891382-23fe-424e-9732-53f3c394bc92
📒 Files selected for processing (1)
site/content/contextual-data-platform/tutorials/evaluate-locally.md
|
|
||
| Expected output: | ||
|
|
||
| ``` |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Add language identifiers to the expected-output fences.
These fences trigger markdownlint MD040. Use text for both output blocks.
Proposed fix
-```
+```textAlso applies to: 460-460
🧰 Tools
🪛 markdownlint-cli2 (0.23.0)
[warning] 424-424: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@site/content/contextual-data-platform/tutorials/evaluate-locally.md` at line
424, Update both expected-output fenced code blocks in the tutorial, near the
affected sections, to specify the text language identifier by changing their
fence openings to text fences. Leave the block contents unchanged.
Source: Linters/SAST tools
mchacki
left a comment
There was a problem hiding this comment.
Some really minor changes.
I am not unhappy if they get skipped.
Great tutorial.
Worked flawlessly, and even on actively made copy and paste mistakes it helped me out.
Co-authored-by: Michael Hackstein <michael@arangodb.com>
Description
Upstream PRs
Summary by CodeRabbit