Cloud team: smoke-test t11 on Pollux#
Deploy t11 through argocd-test to the t11-beamline namespace on Pollux,
then run the smoke test. The services use the k8s-t11-beamline account’s
UID and primary GID, both 36261.
1. Deploy the beamline#
From a checkout of t11-deployment, generate the application. Run all the
commands below in the same terminal. Set the UID and primary GID to 36261,
the IDs of the k8s-t11-beamline functional account:
module load uv
scripts/make-apps-test.py \
--namespace t11-beamline \
--argocd-cluster telamon \
--target-cluster pollux \
--uid 36261 --gid 36261 \
--services-repo https://github.com/epics-containers/t11-services \
--revision main
Load the telamon environment (argocd-test).
module load telamon
kubectl apply -f apps-test.local.yaml -n t11-beamline
Keep apps-test.local.yaml and re-apply it for the next test; there is no need
to regenerate it each time.
2. Run the smoke test#
Keep the Telamon module loaded for the Argo CD Application checks. Point
--pod-cluster at your Pollux kubeconfig, whose current context must select
Pollux:
scripts/smoke-test.sh t11-beamline \
--pod-cluster ~/.kube/config_pollux
Replace ~/.kube/config_pollux with your Pollux kubeconfig path. Pod and
Service checks and scan execution use that file; Application checks keep
using the loaded Telamon connection. The script does not change your shell’s
Kubernetes connection. Without --pod-cluster, both use the loaded connection.
Deploying from scratch takes around five minutes. The script waits for
the applications on argocd-test and the pods on
Pollux to become ready. It then reads IOC PVs through the gateway, runs a
five-reading Bluesky count plan, and checks that Tiled recorded a successful
run. Success ends with all checks passed and exit status 0. If a check
fails, see Troubleshoot a t11 beamline.
3. Keep the beamline running permanently (optional)#
By default, the test beamline deletes itself after 24 hours without an Argo CD sync. Running scans or smoke tests does not reset that timer.
To keep it running until you explicitly remove it, edit
apps-test.local.yaml and set
spec.source.helm.valuesObject.testBeamline.idleTeardown.enabled to false:
spec:
source:
helm:
valuesObject:
testBeamline:
idleTeardown:
enabled: false
This snippet shows the setting’s location; keep the rest of your application file, including its cluster, namespace and UID/GID settings.
With Telamon still loaded, apply the edited file to the cluster where the root Argo CD Application lives:
kubectl apply -f apps-test.local.yaml -n t11-beamline
Wait for Argo CD to sync the change. Automatic deletion is then disabled;
manual teardown still removes the beamline and its test data. Keep this
edited file for future deployments: rerunning make-apps-test.py regenerates
it with automatic deletion enabled. To restore automatic deletion, set
enabled: true and apply the file again.
4. Tear down the beamline#
With Telamon still loaded, delete the root application from argocd-test:
kubectl delete application t11 -n t11-beamline
Argo CD removes the beamline services on Pollux. The teardown hook also deletes the beamline’s persistent volume claims and their stored test data.
Unless you disabled automatic deletion above, the test deployment automatically tears itself down after 24 hours without an Argo CD sync. Running a smoke test does not reset that timer.
See why test beamlines tear themselves down for how the timer and cleanup work.