All BOS data is stored in Redis databases.
(ncn-mw#) The BOS databases are a Kubernetes deployment in the services namespace.
kubectl get deployments -n services -l app.kubernetes.io/name=cray-bos-db
Example output:
NAME READY UP-TO-DATE AVAILABLE AGE
cray-bos-db 1/1 1 1 11d
(ncn-mw#) The database pod runs in the services namespace.
kubectl get pods -n services -l app.kubernetes.io/name=cray-bos-db
Example output:
NAME READY STATUS RESTARTS AGE
cray-bos-db-58f4967657-rdj9l 2/2 Running 0 70d
Within the Redis pod, the BOS data is divided into 6 databases:
| Database | Key |
|---|---|
| Components | Component name (xname) |
Boot artifacts (initrd, kernel, and kernel parameters) |
BSS token |
| Options | options |
| Session templates | Hash based on tenant and template name |
| Sessions | Hash based on tenant and session name |
| Session statuses | Hash based on tenant and session name |
All access to the BOS databases is done by the BOS API server, with two exceptions:
power-on operator directly writes to the boot artifacts database.cray-bos deployment is upgraded.The Helm chart for the BOS database is located in the
Cray-HPE/bos open source GitHub repository.