Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
125 changes: 125 additions & 0 deletions PROJECT_TODO.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
# NKP AI Applications Catalog — Project TODO

Persistent TODO list for catalog release. Use `just todo` to view, `just todo-add "task"` to add, `just todo-complete <pattern>` to mark complete.

---

## 1. Add latest versions for each existing app

Update all existing apps to their latest available versions.

**Existing apps:** agentgateway, coder, demo-full-rag, flowise, jupyterhub, kagent, katib, kserve, kubeflow-central-dashboard, kubeflow-model-registry, kubeflow-pipelines, milvus-operator, mlflow, ollama, open-webui, spark-operator, tensorboard-controller, training-operator, vllm, weaviate

- [ ] agentgateway
- [ ] coder
- [ ] demo-full-rag
- [ ] flowise
- [ ] jupyterhub
- [ ] kagent
- [ ] katib
- [ ] kserve
- [ ] kubeflow-central-dashboard
- [ ] kubeflow-model-registry
- [ ] kubeflow-pipelines
- [ ] milvus-operator
- [ ] mlflow
- [ ] ollama
- [ ] open-webui
- [ ] spark-operator
- [ ] tensorboard-controller
- [ ] training-operator
- [ ] vllm
- [ ] weaviate

---

## 2. Create test plan for each app

Create a test plan document per app. Test matrix:

- [ ] **Basic test matrix** — document baseline scenarios
- [ ] **Enable app on mgmt and/or workload** — verify install on management vs workload cluster
- [ ] **Edit app custom config** — workspace-level and cluster-specific config overrides
- [ ] **Edit app by deploying on one or more clusters** — multicluster deployment
- [ ] **Upgrade** — upgrade from previous version
- [ ] **Disable app** — uninstall/disable flow
- [ ] **Verify metadata.yaml and UI view** — overview correctness in NKP UI
- [ ] **Verify dependencies and requiredDependencies** — install order, dependency resolution
- [ ] **UI apps: verify all paths** — if app has UI, open and verify paths work

---

## 3. Add unit tests (catalog-apptests)

Add unit tests similar to [dm-nkp-gitops-app-catalog/catalog-apptests](https://github.com/deepak-muley/dm-nkp-gitops-app-catalog/tree/main/catalog-apptests).

- [ ] Create `catalog-apptests/` directory structure
- [ ] Port discovery, cluster, app, and suite logic for NKP AI catalog
- [ ] Integrate with CI (e.g. `just test` or `./catalog-workflow.sh test --catalog-apptests`)

---

## 4. Legal approval for Rapid Fort images

Get legal approval to finalize whether to use Rapid Fort images for open source app containers.

- [ ] Document current image sources
- [ ] Evaluate Rapid Fort image availability for catalog apps
- [ ] Legal review and approval
- [ ] Update manifests if approved

---

## 5. Make repo public

Make the repository public after testing is complete.

- [ ] Complete testing (see items 2, 3)
- [ ] Remove or sanitize any private/sensitive content
- [ ] Update visibility to public

---

## 6. Add new or missing apps (final release)

Add the following apps with their latest versions:

### Devtools

- [ ] JupyterHub (already present — verify latest)
- [ ] Flowise (already present — verify latest)
- [ ] Apache Zeppelin

### MLOps

- [ ] Kubeflow (kubeflow-* components already present — verify/consolidate)
- [ ] Mlflow (already present — verify latest)
- [ ] Ray

### VectorDB

- [ ] Milvus (milvus-operator present — verify/complete)
- [ ] Weaviate (already present — verify latest)
- [ ] Elastic

### Agentic

- [ ] LangGraph
- [ ] crewAI
- [ ] Sim

### NVIDIA

- [ ] NVIDIA NIM
- [ ] NVIDIA DOCA

---

## Quick reference

| Command | Description |
|---------|-------------|
| `just todo` | View this TODO file |
| `just todo-list` | List tasks (same as view) |
| `just todo-add "task"` | Append a new task to PROJECT_TODO.md |
| `just todo-complete <pattern>` | Mark a task complete (e.g. `just todo-complete agentgateway`) |
76 changes: 76 additions & 0 deletions scripts/todo.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
#!/usr/bin/env bash
# Manage PROJECT_TODO.md — add, list, view, complete tasks
# Usage: ./scripts/todo.sh [view|list|add "task"|complete <pattern>]
set -e

REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
TODO_FILE="$REPO_ROOT/PROJECT_TODO.md"

view() {
if [[ -f "$TODO_FILE" ]]; then
cat "$TODO_FILE"
else
echo "PROJECT_TODO.md not found at $TODO_FILE"
exit 1
fi
}

add() {
local task="$1"
if [[ -z "$task" ]]; then
echo "Usage: todo add \"task description\""
exit 1
fi
if [[ ! -f "$TODO_FILE" ]]; then
echo "PROJECT_TODO.md not found at $TODO_FILE"
exit 1
fi
# Append before the "Quick reference" section if it exists, else at end
if grep -q "## Quick reference" "$TODO_FILE"; then
local tmp
tmp=$(mktemp)
awk -v task="$task" '
/^## Quick reference/ && !done { print "- [ ] " task; print ""; done=1 }
{ print }
' "$TODO_FILE" > "$tmp"
mv "$tmp" "$TODO_FILE"
else
echo "" >> "$TODO_FILE"
echo "- [ ] $task" >> "$TODO_FILE"
fi
echo "Added: $task"
}

complete_task() {
local pattern="$1"
if [[ -z "$pattern" ]]; then
echo "Usage: todo complete <pattern>"
echo "Example: todo complete agentgateway"
exit 1
fi
if [[ ! -f "$TODO_FILE" ]]; then
echo "PROJECT_TODO.md not found at $TODO_FILE"
exit 1
fi
if grep -q "\- \[ \].*$pattern" "$TODO_FILE"; then
if [[ "$(uname)" == "Darwin" ]]; then
sed -i '' "/$pattern/s/\- \[ \]/\- [x]/" "$TODO_FILE"
else
sed -i "/$pattern/s/\- \[ \]/\- [x]/" "$TODO_FILE"
fi
echo "Marked complete: $pattern"
else
echo "No unchecked task matching '$pattern' found"
exit 1
fi
}

case "${1:-view}" in
view|list) view ;;
add) add "${2:-}" ;;
complete) complete_task "${2:-}" ;;
*)
echo "Usage: $0 [view|list|add \"task\"|complete <pattern>]"
exit 1
;;
esac
Loading