Skip to content
cccskills
FreePublished on GitHub

rossoctl:weather-demo

Deploy the weather agent and MCP tool demo via CLI (no UI required). Uses pre-built ghcr.io images, deploys to team1. Optimized for speed (~15s).

The English summary is being prepared. Showing the original description.

rossoctl/rossoctl303 stars(GitHub 303 + cccskills 0)

Run score Not tested

See how to install

Files included (1)

  • SKILL.md5.4 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Weather Agent Demo (CLI)

Deploy the Weather Service agent and Weather Tool without the Rossoctl UI. Uses existing CI scripts and Kubernetes manifests for a fully CLI-driven workflow. Optimized for speed: pre-built images from ghcr.io, all commands in parallel, no waits.

When to Use

  • User wants to run the weather agent demo without the UI
  • User asks "deploy weather demo", "deploy weather agent", or "run weather demo via CLI"
  • User wants a quick end-to-end test of agent + tool deployment

Prerequisites

  • Rossoctl platform deployed (via scripts/kind/setup-rossoctl.sh or equivalent)
  • kubectl configured and pointing at the target cluster
  • Ollama running locally with llama3.2:3b-instruct-fp16 model, OR an OpenAI API key

Context-Safe Execution (MANDATORY)

Deploy/build commands produce large output. Use run_in_background: true on the Bash tool to keep output out of context. Do NOT use shell redirects (> file 2>&1) as they break permission matching.

Before running any commands, record the start time:

date +%s

Remember this value as the start timestamp. Do NOT redirect to a file.

Workflow

flowchart TD
    START(["/rossoctl:weather-demo"]) --> ALL["Step 1: Deploy all in parallel"]:::build
    ALL --> PATCH["Step 2: Fix Ollama connectivity"]:::debug
    PATCH --> DONE([Demo Running])

    classDef build fill:#795548,stroke:#333,color:white
    classDef debug fill:#FF9800,stroke:#333,color:white

Follow this diagram as the workflow. Do NOT add verification or testing steps beyond Step 2.

Step 1: Deploy All in Parallel

Both images are pre-built on ghcr.io/rossoctl/examples/. The namespace setup is a no-op if team1 already exists. Launch all three as parallel Bash tool calls:

Bash call 1 — Setup team1 namespace:

./.github/scripts/operator/70-setup-team1-namespace.sh

Bash call 2 — Deploy weather-service agent:

./.github/scripts/operator/74-deploy-weather-agent.sh

Bash call 3 — Deploy weather-tool:

./.github/scripts/operator/72-deploy-weather-tool.sh

IMPORTANT: All three commands MUST be run as parallel Bash tool calls with run_in_background: true and timeout: 600000 (three separate Bash invocations in the same response). Then wait for all to complete using TaskOutput.

Step 2: Fix Ollama Connectivity (REQUIRED on Kind)

The deployment manifest defaults to LLM_API_BASE=http://dockerhost:11434/v1 which does not resolve inside Kind. Patch directly with host.docker.internal:

kubectl patch deployment weather-service -n team1 --type=strategic -p '{"spec":{"template":{"spec":{"containers":[{"name":"agent","env":[{"name":"LLM_API_BASE","value":"http://host.docker.internal:11434/v1"},{"name":"LLM_MODEL","value":"llama3.2:3b-instruct-fp16"}]}]}}}}'

On Docker Desktop (macOS/Windows), use host.docker.internal. On Podman, use host.containers.internal. Do NOT wait for rollout — skip kubectl rollout status to save time.

Then report elapsed time:

date +%s

Compute elapsed seconds by subtracting this value from the start timestamp recorded earlier. Report the difference in the completion message.

Done

Report the elapsed time. Do NOT run any additional verification, pod checks, log checks, or end-to-end curl tests.

LLM Configuration

Switch to OpenAI

kubectl create secret generic openai-secret -n team1 \
  --from-literal=apikey="<YOUR_OPENAI_API_KEY>"

kubectl set env deployment/weather-service -n team1 -c agent \
  LLM_API_BASE="https://api.openai.com/v1" \
  LLM_MODEL="gpt-4o-mini-2024-07-18"

kubectl patch deployment weather-service -n team1 --type=json -p='[
  {"op":"add","path":"/spec/template/spec/containers/0/env/-","value":{
    "name":"LLM_API_KEY",
    "valueFrom":{"secretKeyRef":{"name":"openai-secret","key":"apikey"}}
  }},
  {"op":"add","path":"/spec/template/spec/containers/0/env/-","value":{
    "name":"OPENAI_API_KEY",
    "valueFrom":{"secretKeyRef":{"name":"openai-secret","key":"apikey"}}
  }}
]'

Cleanup

Since both images are pulled from ghcr.io (no Shipwright builds), cleanup is just deleting the deployments and services:

kubectl delete deployment weather-service weather-tool -n team1 --ignore-not-found
kubectl delete svc weather-service weather-tool-mcp -n team1 --ignore-not-found

Or delete the entire namespace:

kubectl delete namespace team1

Troubleshooting

Agent Can't Reach Ollama

See Step 2: Fix Ollama Connectivity above.

Container runtimeHostname
Docker Desktophost.docker.internal
Podman (macOS)host.containers.internal
Kind defaultdockerhost (usually doesn't resolve)

Agent Can't Reach Weather Tool

kubectl get svc -n team1 | grep weather-tool
# Should show: weather-tool-mcp   ClusterIP   ...   8000/TCP

The default MCP_URL is http://weather-tool-mcp.team1.svc.cluster.local:8000/mcp.

Related Skills

  • rossoctl:agent - Create custom A2A agents from scratch
  • rossoctl:operator - Deploy Rossoctl platform and demo agents
  • rossoctl:deploy - Deploy Kind cluster
  • k8s:pods - Debug pod issues
  • k8s:logs - Query component logs

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

auth

Free

Authentication and authorization patterns for Rossoctl services

The English summary is being prepared. Showing the original description.

rossoctl/rossoctl303Updated Oct 25, 2026

Create confidential OAuth2 clients in Keycloak for server-to-service authentication

The English summary is being prepared. Showing the original description.

rossoctl/rossoctl303Updated Oct 25, 2026

Configure MLflow with mlflow-oidc-auth plugin for Keycloak OIDC authentication

The English summary is being prepared. Showing the original description.

rossoctl/rossoctl303Updated Oct 25, 2026

Configure OpenTelemetry Collector with OAuth2 authentication for trace export

The English summary is being prepared. Showing the original description.

rossoctl/rossoctl303Updated Oct 25, 2026

ci

Free

CI pipeline monitoring, status checks, and PR validation workflows

The English summary is being prepared. Showing the original description.

rossoctl/rossoctl303Updated Oct 25, 2026

Monitor running CI jobs, wait for completion, create tasks for results

The English summary is being prepared. Showing the original description.

rossoctl/rossoctl303Updated Oct 25, 2026

See all skills by rossoctl

Report a problem with this skill