RDT Workshop: AI-Powered SAMO Development — Prerequisites
Hi everyone! You're signed up for the RDT Workshop — a hands-on session where we'll use the VS Code Extension, SAMO MCP Server, and SAMO Pilot (with Claude Code / OpenAI Codex) to scaffold, deploy, and AI-develop SAMO project.
⚠️ The workshop does NOT include time for setting up prerequisites. Please complete everything below and run the verification script at least 2 days before the workshop. If anything fails, reach out so we can troubleshoot before the day.
1. Software Installation
Install these tools (or verify you already have them):
VS Code — version 1.103.0+
- Download: https://code.visualstudio.com/
- Verify:
code --version
Node.js — version 22.x (LTS)
- Download: https://nodejs.org/ (use the LTS installer)
- Verify:
node --version(expected:v22.x.x)
Git
- Download: https://git-scm.com/
- Verify:
git --version
kubectl & Helm — follow the Kubernetes Cluster Access Guide (Section 2 below), it covers installation of both tools.
- Verify:
kubectl version --clientandhelm version
AI Coding Agent — you need at least one of:
- Claude Code:
npm install -g @anthropic-ai/claude-code→ verify:claude --version - OpenAI Codex:
npm install -g @openai/codex→ verify:codex --version
ℹ️ Details on API key / access for the AI agent will be provided by the workshop organizer.
2. GitLab Access (git.asseco-ce.com)
The workshop uses internal GitLab repos for project scaffolding and the SAMO Pilot plugin. GitLab uses 2FA, so you need a Personal Access Token (PAT) for Git HTTPS operations.
ℹ️ If you already have 2FA and a PAT with
read_repository+read_registryscopes set up for git.asseco-ce.com, you can skip this section entirely — just verify repo access in step 4.
-
Log in to https://git.asseco-ce.com and set up 2FA if you haven't already
-
Create a Personal Access Token:
- Go to Settings → Access Tokens (or navigate to
https://git.asseco-ce.com/-/user_settings/personal_access_tokens) - Click Add new token
- Name: e.g.
rdt-workshop - Scopes: select
read_repositoryandread_registry - Set an expiration date and click Create personal access token
- Copy the token — you won't see it again
- Go to Settings → Access Tokens (or navigate to
-
Request access to the following repos (needed for project scaffolding in the workshop):
- https://git.asseco-ce.com/SAMO/customers/asseco-ce/samo-init/samo-init-project
- https://git.asseco-ce.com/SAMO/customers/asseco-ce/samo-init/samo-init-configuration
If you can't access them, contact the workshop organizer to be granted
readaccess. -
Verify — when prompted, enter your GitLab username and PAT as the password. On Windows/macOS, Git Credential Manager remembers them automatically. On Linux, run
git config --global credential.helper storefirst so you don't get prompted every time.
git ls-remote https://git.asseco-ce.com/SAMO/customers/asseco-ce/samo-init/samo-init-project.git
git ls-remote https://git.asseco-ce.com/SAMO/customers/asseco-ce/samo-init/samo-init-configuration.git
💡 Windows users: if you get an SSL error, run
git config --global http.sslBackend schannelfirst (see Troubleshooting).
3. Kubernetes Cluster Access
⏱️ Allow 15–30 minutes for this — it's a multi-step process.
- Connect to VPN — you must be on the corporate VPN to access the cluster
- Follow the cluster access guide — it walks you through kubeconfig download, kubectl install, Helm install, and context setup: 👉 https://samo.gitpages.assecosk.local/documentation/dev-documentation/docs/other/Kubernetes/access-k8s-cluster
- Verify:
kubectl cluster-info
kubectl get namespaces
If it fails:
- Are you connected to VPN?
- Is your kubeconfig at
~/.kube/config(macOS/Linux) orC:\Users\<username>\.kube\config(Windows)? - Correct context? Run
kubectl config current-context
4. SAMO Nexus npm Registry (@samo scope)
The MCP Server is published on an internal Nexus registry. You need to tell npm where to find @samo packages.
Step 1 — Open your .npmrc file in a text editor:
- Windows:
C:\Users\<username>\.npmrc - macOS/Linux:
~/.npmrc
If the file doesn't exist, create it. You can also find its path with npm config get userconfig.
Step 2 — Add these two lines:
@samo:registry=https://nexus/repository/samo-npm/
//nexus/repository/samo-npm/:_authToken=<your-nexus-token>
💡 Don't have a token? Run
npm login --registry=https://nexus/repository/samo-npm/— enter your LDAP username and password. This appends the_authTokenline automatically. Then add the@samo:registry=...line above it if it's not there.
Step 3 — Verify:
npm config get @samo:registry
# Expected: https://nexus/repository/samo-npm/
npm view @samo/mcp-server version
# Expected: a version number (e.g., 0.0.1)
5. Helm OCI Registry
The workshop deploys SAMO apps using a Helm chart from an OCI registry. This uses the same docker.asseco-ce.com account as the external GitLab (git.asseco-ce.com) — same credentials, same 2FA.
- Set up 2FA on your
git.asseco-ce.comaccount (if not already done — same account used in Section 2) - Create a Personal Access Token (PAT) in your account settings — with 2FA enabled, your password won't work for CLI login
- Log in:
helm registry login docker.asseco-ce.com
When prompted, enter your username and Personal Access Token (not your password).
- Verify:
helm pull oci://docker.asseco-ce.com/samo/infrastructure/samo-rdt-helm-chart/charts/samo-rdt --version 0.1.0
Should download without errors. You can delete the .tgz file afterward.
6. What the Organizer Will Provide (no action needed)
These will be distributed at the start of the workshop:
- RDT VS Code Extension (
.vsixfile) - GitLab access token (for SAMO Pilot plugin)
- SAMO license files & Kubernetes secrets YAML
- Sample SAMO project
7. Verification Script
Run this the day before the workshop to check everything at once.
Windows — paste into PowerShell:
& {
Write-Host "=== RDT Workshop Prerequisites ===" -ForegroundColor Cyan
Write-Host ""
$checks = @(
@("VS Code", { code --version 2>$null | Select-Object -First 1 }),
@("Node.js", { node --version 2>$null }),
@("Git", { git --version 2>$null }),
@("kubectl", { kubectl version --client 2>$null }),
@("Helm", { helm version 2>$null }),
@("Claude Code", { claude --version 2>$null }),
@("Codex CLI", { codex --version 2>$null }),
@("@samo scope", { npm config get @samo:registry 2>$null })
)
foreach ($check in $checks) {
$name = $check[0].PadRight(14)
$result = try { & $check[1] } catch { $null }
if ($result -and $result -notmatch "undefined") {
Write-Host " OK $name $result" -ForegroundColor Green
} else {
Write-Host " MISS $name (not found)" -ForegroundColor Red
}
}
Write-Host ""
Write-Host "--- Connectivity ---" -ForegroundColor Cyan
$k8s = kubectl cluster-info 2>$null | Select-Object -First 1
if ($k8s) { Write-Host " OK K8s cluster $k8s" -ForegroundColor Green }
else { Write-Host " FAIL K8s cluster Not accessible (VPN connected?)" -ForegroundColor Red }
$nexus = npm view @samo/mcp-server version --registry=https://nexus/repository/samo-npm/ 2>$null
if ($nexus) { Write-Host " OK Nexus npm @samo/mcp-server@$nexus" -ForegroundColor Green }
else { Write-Host " FAIL Nexus npm Cannot reach @samo/mcp-server (auth or VPN issue)" -ForegroundColor Red }
$helmOci = helm show chart oci://docker.asseco-ce.com/samo/infrastructure/samo-rdt-helm-chart/charts/samo-rdt --version 0.1.0 2>$null
if ($helmOci) { Write-Host " OK Helm OCI docker.asseco-ce.com reachable" -ForegroundColor Green }
else { Write-Host " FAIL Helm OCI Cannot pull chart (run: helm registry login docker.asseco-ce.com)" -ForegroundColor Red }
Write-Host ""
Write-Host "You need at least ONE of: Claude Code or Codex CLI" -ForegroundColor Yellow
Write-Host "All 'FAIL' and 'MISS' items must be resolved before the workshop." -ForegroundColor Yellow
}
macOS / Linux — paste into terminal:
bash <<'EOF'
echo "=== RDT Workshop Prerequisites ==="
echo ""
check() {
local name=$1; local cmd=$2; local result
result=$(eval "$cmd" 2>/dev/null)
if [ -n "$result" ] && [ "$result" != "undefined" ]; then
printf " \033[32mOK\033[0m %-14s %s\n" "$name" "$result"
else
printf " \033[31mMISS\033[0m %-14s %s\n" "$name" "(not found)"
fi
}
check "VS Code" "code --version | head -1"
check "Node.js" "node --version"
check "Git" "git --version"
check "kubectl" "kubectl version --client"
check "Helm" "helm version"
check "Claude Code" "claude --version"
check "Codex CLI" "codex --version"
check "@samo scope" "npm config get @samo:registry"
echo ""
echo "--- Connectivity ---"
k8s=$(kubectl cluster-info 2>/dev/null | head -1)
[ -n "$k8s" ] && printf " \033[32mOK\033[0m %-14s %s\n" "K8s cluster" "$k8s" \
|| printf " \033[31mFAIL\033[0m %-14s %s\n" "K8s cluster" "Not accessible (VPN connected?)"
nexus=$(npm view @samo/mcp-server version --registry=https://nexus/repository/samo-npm/ 2>/dev/null)
[ -n "$nexus" ] && printf " \033[32mOK\033[0m %-14s %s\n" "Nexus npm" "@samo/mcp-server@$nexus" \
|| printf " \033[31mFAIL\033[0m %-14s %s\n" "Nexus npm" "Cannot reach (auth or VPN issue)"
helmOci=$(helm show chart oci://docker.asseco-ce.com/samo/infrastructure/samo-rdt-helm-chart/charts/samo-rdt --version 0.1.0 2>/dev/null)
[ -n "$helmOci" ] && printf " \033[32mOK\033[0m %-14s %s\n" "Helm OCI" "reachable" \
|| printf " \033[31mFAIL\033[0m %-14s %s\n" "Helm OCI" "Cannot pull (run: helm registry login docker.asseco-ce.com)"
echo ""
echo "You need at least ONE of: Claude Code or Codex CLI"
echo "All 'FAIL' and 'MISS' items must be resolved before the workshop."
EOF
Troubleshooting
kubectl cluster-infofails — Connect to VPN, then follow the cluster access guidekubectl get namespaces— permission denied — RBAC permissions missing, contact the organizernpm config get @samo:registry— empty — Follow the npm setup in Section 4 abovenpm view @samo/mcp-server— 401 Unauthorized — Token expired, re-runnpm login --registry=https://nexus/repository/samo-npm/npm config set @samo:registryerrors — Newer npm versions reject this command, edit.npmrcdirectlyhelm registry loginfails — Set up 2FA ondocker.asseco-ce.com, then use username + Personal Access Token (not password)- Git clone fails with SSL error — Run
git config --global http.sslBackend schannel(Windows only) claude --versionorcodex --versionnot found — See install commands in Section 1
Need Help?
If anything fails, message me or email simon.misak@asseco-ce.com — please reach out at least 2 days before the workshop so we have time to troubleshoot.