11# vTeam Catalog Manual Reload Quickstart
22
3- Use this when you want to recreate the current vTeam Catalog lab environment
4- from the manifests by hand.
3+ Use this to stand up the vTeam Catalog lab environment from the manifests by hand.
4+ The lab is ** self-contained** : it runs against a clean/empty cluster and creates
5+ everything it needs (project, namespace, gateway, agents, providers) itself via
6+ ` acpctl apply ` . ` make kind-up ` only brings up the cluster and platform — it does
7+ ** not** pre-create the ` vteam-product-swarm ` tenant.
58
69## 0. Start From The Feature Worktree
710
@@ -34,6 +37,10 @@ Then create the cluster:
3437make kind-up OPENSHELL_USE_GATEWAY=true
3538```
3639
40+ This provisions the cluster, the platform, and the OpenShell gateway
41+ infrastructure. It does ** not** create the ` vteam-product-swarm ` project or
42+ namespace — you create those in step 4 by applying the catalog.
43+
3744After it finishes, check the assigned ports:
3845
3946``` bash
@@ -85,7 +92,6 @@ In the first terminal, log in with the Makefile helper:
8592
8693``` bash
8794make kind-acpctl-login
88- export AMBIENT_PROJECT=vteam-product-swarm
8995```
9096
9197If you need to do the same steps manually, derive the backend port from
@@ -109,53 +115,19 @@ TOKEN=$(kubectl get secret test-user-token -n ambient-code \
109115 --token " $TOKEN "
110116```
111117
112- Quick check:
118+ Quick check that login works. The vTeam project does ** not** exist yet — you
119+ create it in the next step:
113120
114121``` bash
115- export AMBIENT_PROJECT=vteam-product-swarm
116122" $ACPCTL " get projects
117123```
118124
119- ## 4. Optional Runtime Secrets
120-
121- Applying the catalog does not require provider secrets. Starting real sessions
122- needs the provider backing secrets in namespace ` vteam-product-swarm ` :
123-
124- - ` vertex-sa-key `
125- - ` github-creds `
126- - ` jira `
127-
128- If you want Vertex credentials from the repo workflow, run:
129-
130- ``` bash
131- make kind-setup-vertex
132- ```
133-
134- For the other providers, add your own credentials as ` kind: Credential `
135- resources and apply them with ` acpctl ` . For example, to give the GitHub-backed
136- agents (Amber, Parker, …) a token, create a file like
137- [ ` examples/overlays/tenant-a/credential-github.yaml ` ] ( ../overlays/tenant-a/credential-github.yaml ) :
125+ ## 4. Apply The vTeam Catalog Manifests
138126
139- ``` yaml
140- kind : Credential
141- name : github-cred
142- provider : github
143- token : $GITHUB_PAT # a GitHub Personal Access Token
144- ` ` `
145-
146- ` ` ` bash
147- export AMBIENT_PROJECT=vteam-product-swarm
148- " $ACPCTL" apply -f credential-github.yaml --project vteam-product-swarm
149- ```
150-
151- The control plane materializes the ` github-creds ` secret in the project
152- namespace from this record. See the
153- [ Credentials concept guide] ( https://openshift-online.github.io/agent-control-plane/concepts/credentials/ )
154- for how credentials, role bindings, and runtime wiring fit together. Without a
155- credential for a provider an agent declares, its sessions fail to start with
156- ` reading secret <provider>-creds ... not found ` .
157-
158- ## 5. Apply The Current vTeam Catalog Manifests
127+ This is the core lab step. Applying the catalog creates the ` vteam-product-swarm `
128+ ** project** record; the control plane then provisions the backing Kubernetes
129+ namespace and the OpenShell gateway from that record — no `kubectl create
130+ namespace` needed.
159131
160132``` bash
161133export AMBIENT_PROJECT=vteam-product-swarm
@@ -164,31 +136,85 @@ export AMBIENT_PROJECT=vteam-product-swarm
164136 --project vteam-product-swarm
165137```
166138
167- Verify ACP records:
139+ Verify the ACP records (available immediately after apply) :
168140
169141``` bash
170- export AMBIENT_PROJECT=vteam-product-swarm
171142" $ACPCTL " get project vteam-product-swarm
172143" $ACPCTL " agent list --project vteam-product-swarm
173144" $ACPCTL " provider list --project vteam-product-swarm
174145```
175146
176- Verify Kubernetes-side objects:
147+ Verify the Kubernetes-side objects. The namespace and gateway are created by the
148+ control plane reconciler, so they appear a few seconds after the apply — wait for
149+ them rather than expecting them immediately:
177150
178151``` bash
179- kubectl get namespace vteam-product-swarm
152+ kubectl wait --for=jsonpath=' {.status.phase}' =Active \
153+ namespace/vteam-product-swarm --timeout=60s
180154kubectl get all,configmap,secret,pvc,serviceaccount,role,rolebinding \
181155 -n vteam-product-swarm
156+ # The gateway StatefulSet is deployed on the next reconcile pass:
157+ kubectl rollout status statefulset/openshell-gateway \
158+ -n vteam-product-swarm --timeout=120s
182159```
183160
161+ ## 5. Optional Runtime Secrets
162+
163+ Applying the catalog does not require provider secrets. But starting real
164+ sessions does: at gateway setup the control plane reads each provider's backing
165+ Kubernetes Secret directly from the project namespace, so those Secrets must
166+ exist there. The catalog's providers declare these secret names:
167+
168+ - ` vertex-sa-key `
169+ - ` github-creds `
170+ - ` jira `
171+
172+ Do ** not** rely on ` make kind-setup-vertex ` — that target is scoped to the demo
173+ fleet tenants in ` OPENSHELL_TENANTS ` , not the catalog project.
174+
175+ Vertex and GitHub each use a secret with a single ` token ` key, created directly
176+ in the ` vteam-product-swarm ` namespace (created in step 4):
177+
178+ ``` bash
179+ # Vertex — token is the full contents of a GCP service-account JSON key
180+ kubectl create secret generic vertex-sa-key \
181+ --namespace vteam-product-swarm \
182+ --from-literal=token=" $( cat /path/to/gcp-sa-key.json) "
183+
184+ # GitHub — token is a Personal Access Token
185+ kubectl create secret generic github-creds \
186+ --namespace vteam-product-swarm \
187+ --from-literal=token=" $GITHUB_PAT "
188+ ```
189+
190+ Jira (used only by Parker) needs more than a token — the ` jira ` provider passes
191+ its Secret keys straight through as environment variables, so the Secret must
192+ carry the base URL, account, and API token that the Atlassian MCP expects
193+ (` JIRA_URL ` , ` JIRA_USERNAME ` , ` JIRA_API_TOKEN ` ), matching the tenant example in
194+ [ examples/README.md] ( ../README.md ) :
195+
196+ ``` bash
197+ kubectl create secret generic jira \
198+ --namespace vteam-product-swarm \
199+ --from-literal=JIRA_URL=https://your-org.atlassian.net \
200+ --from-literal=JIRA_USERNAME=" you@example.com" \
201+ --from-literal=JIRA_API_TOKEN=" $( cat ~ /jira-token.txt) "
202+ ```
203+
204+ Only set up the providers whose agents you actually run. See the
205+ [ Credentials concept guide] ( https://openshift-online.github.io/agent-control-plane/concepts/credentials/ )
206+ for how provider secrets, credentials, and runtime wiring fit together. Without
207+ the backing secret/credential for a provider an agent declares, its sessions fail
208+ to start with ` reading secret <provider>-creds ... not found ` .
209+
184210## 6. Troubleshooting
185211
186212Common causes when ACP commands do not show the vTeam records:
187213
188214- ` make kind-port-forward ` is not running.
189215- ` acpctl ` is logged into the wrong backend port.
190216- The lab worktree cluster is not running.
191- - The vTeam manifests have not been applied yet.
217+ - The vTeam manifests have not been applied yet (step 4) .
192218
193219Useful reset commands:
194220
@@ -203,12 +229,11 @@ current backend port from `make kind-status`.
203229
204230## 7. Optional: Start A Work Packet Session
205231
206- Starting real sessions needs provider secrets and an OpenShell gateway for the
207- ` vteam-product-swarm ` namespace. The default ` OPENSHELL_TENANTS ` includes
208- ` vteam-product-swarm ` , so the namespace and gateway are provisioned
209- automatically during ` make kind-up ` .
232+ Starting real sessions needs the provider secrets from step 5 and the OpenShell
233+ gateway. Both come from the catalog apply (step 4) plus your credentials — the
234+ gateway StatefulSet is deployed by the control plane once the namespace exists.
210235
211- After those runtime prerequisites are available, start Stella with the demo work
236+ Once those runtime prerequisites are available, start Stella with the demo work
212237packet:
213238
214239``` bash
0 commit comments