An alchemiscale deployment for kubernetes.
This repo presents a fairly complete set of kubernetes ("k8s") resources that give a usable alchemiscale deployment, featuring both server and compute components.
To deploy alchemiscale to a k8s cluster:
-
Deploy namespace:
kubectl apply -f server/alchemiscale-namespace.yaml. -
Set your desired secrets for the server components in server/secrets.sh. Take note of the recommendations in the comments guiding you on the choices. Deploy:
bash server/secrets.sh. -
Deploy configmap:
kubectl apply -f server/alchemiscale-configmap.yaml. -
Deploy neo4j:
kubectl apply -f server/neo4j-statefulset.yaml. -
Deploy client and compute APIs:
kubectl apply -f server/*api-deployment.yaml -
Deploy ingress:
kubectl apply -f server/alchemiscale-ingress.yaml -
Follow instructions for creating user and compute identities; use
kubectl execinstead ofdocker runfor these calls. You will need at least one user identity and one compute identity with permissions on at least oneScopeto make use ofalchemiscale. -
Set your desired settings for the compute services in compute/synchronous-compute-settings.yaml. Deploy these as a secret:
bash compute/secrets.sh. Refer to the alchemiscale compute documentation for more details. -
Set desired number of replicas in compute/compute-services.yaml. Deploy compute services:
kubectl apply -f compute/compute-services.yaml