Skip to content

PLG-Motion | Contextual Data Platform Installation Tutorial - #1054

Open
nerpaula wants to merge 6 commits into
mainfrom
plg-install-tutorial
Open

PLG-Motion | Contextual Data Platform Installation Tutorial#1054
nerpaula wants to merge 6 commits into
mainfrom
plg-install-tutorial

Conversation

@nerpaula

@nerpaula nerpaula commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Description

Upstream PRs

  • 3.10:
  • 3.11:
  • 3.12:
  • 4.0:

Summary by CodeRabbit

  • Documentation
    • Added a new tutorials landing page for the Arango Contextual Data Platform, including an entry point to the first task-focused tutorial.
    • Added a comprehensive “Get started locally” tutorial covering an end-to-end local Kubernetes setup, including licensing, Helm-based installation, Arango deployment, object storage (MinIO) configuration, platform readiness verification, local web UI access, common troubleshooting guidance, and cleanup/re-run instructions.

@arangodb-docs-automation

Copy link
Copy Markdown
Contributor

Deploy Preview Available Via
https://deploy-preview-1054--docs-hugo.netlify.app

@cla-bot cla-bot Bot added the cla-signed label Jul 10, 2026
@coderabbitai

coderabbitai Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 4aac3ec8-7c16-4af3-94b8-d7b27a63b6a2

📥 Commits

Reviewing files that changed from the base of the PR and between d5a8042 and 3a77b63.

📒 Files selected for processing (1)
  • site/content/contextual-data-platform/tutorials/evaluate-locally.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • site/content/contextual-data-platform/tutorials/evaluate-locally.md

📝 Walkthrough

Walkthrough

Adds 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.

Changes

Local Evaluation Tutorial

Layer / File(s) Summary
Tutorial landing page
site/content/contextual-data-platform/tutorials/_index.md, site/content/contextual-data-platform/tutorials/evaluate-locally.md
Adds tutorials navigation, introductory guidance, and the local evaluation tutorial metadata and overview.
Local cluster and Operator setup
site/content/contextual-data-platform/tutorials/evaluate-locally.md
Documents prerequisites, architecture selection, kind cluster creation, license secret setup, and kube-arangodb Operator installation.
ArangoDB, storage, and platform deployment
site/content/contextual-data-platform/tutorials/evaluate-locally.md
Documents the ArangoDB deployment, local MinIO object storage, platform storage registration, and Contextual Data Platform Helm chart installation.
Verification, web access, and cleanup
site/content/contextual-data-platform/tutorials/evaluate-locally.md
Explains readiness checks, troubleshooting, gateway port-forwarding, follow-up steps, cleanup options, and rerunning the setup.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title matches the main change: adding a Contextual Data Platform tutorial focused on local installation and setup.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch plg-install-tutorial

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@nerpaula
nerpaula marked this pull request as ready for review July 13, 2026 08:47
@nerpaula
nerpaula requested a review from mchacki July 13, 2026 08:47

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (2)
site/content/contextual-data-platform/tutorials/evaluate-locally.md (2)

75-75: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Pin the Kubernetes version used by the tutorial.

The tutorial promises a reproducible setup, but kind create cluster leaves the node image implicit. Pin a tested kindest/node image, 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 win

Do 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 advertises 1.4.3, so either update the tutorial after validating a specific version or state that 1.4.2 is 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

📥 Commits

Reviewing files that changed from the base of the PR and between 6f0a9a3 and 184791f.

📒 Files selected for processing (2)
  • site/content/contextual-data-platform/tutorials/_index.md
  • site/content/contextual-data-platform/tutorials/evaluate-locally.md

Comment thread site/content/contextual-data-platform/tutorials/evaluate-locally.md

@mchacki mchacki left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we make this higher?
aka. do we have some wiggle room to actually add data?

Comment thread site/content/contextual-data-platform/tutorials/evaluate-locally.md
Comment thread site/content/contextual-data-platform/tutorials/evaluate-locally.md
Comment thread site/content/contextual-data-platform/tutorials/evaluate-locally.md

Save the following specification as `deployment.yaml`:

```yaml

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread site/content/contextual-data-platform/tutorials/evaluate-locally.md Outdated
Comment thread site/content/contextual-data-platform/tutorials/evaluate-locally.md
Comment thread site/content/contextual-data-platform/tutorials/evaluate-locally.md Outdated
Comment thread site/content/contextual-data-platform/tutorials/evaluate-locally.md
Comment thread site/content/contextual-data-platform/tutorials/evaluate-locally.md
@nerpaula

Copy link
Copy Markdown
Contributor Author

@mchacki Thanks for the valuable feedback. Here's a summary of the latest changes addressing your comments.

  • Added Step 6: object storage (MinIO + bucket + ArangoPlatformStorage), before the chart install, so AI Suite file upload works.
  • Switched the deployment from Single to Cluster (3 DB-Servers, 2 Coordinators).
  • Architecture picked once via an ARCH variable instead of hand-editing each command. Hopefully not a trap anymore.
  • Added arch-mismatch troubleshooting guidance for the Operator and the deployment in their respective sections.
  • Pinned the kind Kubernetes version (kindest/node:v1.33.1) and the Operator version (1.4.2 as tested).
  • Documented default login (root / empty password) with a security note.
  • kubectl logs uses --all-containers=true; added --watch completion caveats.
  • Validated everything locally end-to-end on a Cluster.

@nerpaula
nerpaula requested a review from mchacki July 17, 2026 07:15

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (2)
site/content/contextual-data-platform/tutorials/evaluate-locally.md (2)

340-340: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick win

Pin the MinIO images in this tutorial. minio/minio:latest and minio/mc can 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 win

Pin the kind node image by digest. kindest/node:v1.33.1 is tag-based and can drift; use the @sha256 digest 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

📥 Commits

Reviewing files that changed from the base of the PR and between 184791f and e686f10.

📒 Files selected for processing (1)
  • site/content/contextual-data-platform/tutorials/evaluate-locally.md


Expected output:

```

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 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
-```
+```text

Also 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 mchacki left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread site/content/contextual-data-platform/tutorials/evaluate-locally.md
Comment thread site/content/contextual-data-platform/tutorials/evaluate-locally.md Outdated
Comment thread site/content/contextual-data-platform/tutorials/evaluate-locally.md Outdated
Comment thread site/content/contextual-data-platform/tutorials/evaluate-locally.md Outdated
Comment thread site/content/contextual-data-platform/tutorials/evaluate-locally.md Outdated
Comment thread site/content/contextual-data-platform/tutorials/evaluate-locally.md Outdated
Comment thread site/content/contextual-data-platform/tutorials/evaluate-locally.md Outdated
nerpaula and others added 2 commits July 21, 2026 14:28
Co-authored-by: Michael Hackstein <michael@arangodb.com>
@nerpaula
nerpaula requested a review from mchacki July 22, 2026 10:03

@mchacki mchacki left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants