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 exec
instead ofdocker run
for these calls. You will need at least one user identity and one compute identity with permissions on at least oneScope
to 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