Ξ 🥷 Datalayer Operator
Datalayer Operator
ensures that the requested services and resources are available. Datalayer Operator is a Kubernetes operator that constantly monitors the system and takes action so that the desired state is met on the Kubernetes cluster. It is responsible for managing the state of the Datalayer services.
- Manage the defined 🛣️ Routes to secure and direct the incoming request to the correct service or pod.
- Manage the defined 🐋 Docker Images building and publication in the Docker registry.
- Manage the defined 💼 Jupyter Contents, 🌳 Jupyter Environments and 🎱 Jupyterpools.
Please note that the Jupyter Service is responsible to deliver the ⚪ Kernels to the user, so it is not the duty of the Datalayer Operator to serve Kernels.
A subset of the Operator methods is exposed via REST endpoints for internal consumption (not visible from the externals).
Deploy Datalayer Operator
- Plane
- Helm
plane up datalayer-operator
export RELEASE=datalayer-operator
export NAMESPACE=datalayer-api
helm upgrade \
--install $RELEASE \
oci://${DATALAYER_HELM_REGISTRY_HOST}/datalayer-charts/operator \
--create-namespace \
--namespace $NAMESPACE \
--set operator.image="${DATALAYER_DOCKER_REGISTRY}/operator:0.1.1" \
--set operator.certificateIssuer="letsencrypt" \
--set operator.crds="true" \
--set operator.env.AWS_ACCESS_KEY_ID="${AWS_ACCESS_KEY_ID}" \
--set operator.env.AWS_SECRET_ACCESS_KEY="${AWS_SECRET_ACCESS_KEY}" \
--set operator.env.AWS_DEFAULT_REGION="${AWS_DEFAULT_REGION}" \
--set operator.env.DATALAYER_DOCKER_REGISTRY="${DATALAYER_DOCKER_REGISTRY}" \
--set operator.env.DATALAYER_RUN_HOST="${DATALAYER_RUN_HOST}" \
--set operator.env.DATALAYER_OPERATOR_API_KEY="${DATALAYER_OPERATOR_API_KEY}" \
--set operator.env.DATALAYER_IAM_HOST="${DATALAYER_IAM_HOST}" \
--set operator.env.DATALAYER_IAM_API_KEY="${DATALAYER_IAM_API_KEY}" \
--set operator.env.DATALAYER_AUTHZ_ENGINE="${DATALAYER_AUTHZ_ENGINE}" \
--set operator.env.DATALAYER_CERT_ISSUER="${DATALAYER_CERT_ISSUER}" \
--set operator.env.DATALAYER_INGRESS_CLASS_NAME="${DATALAYER_INGRESS_CLASS_NAME}" \
--timeout 5m
- Plane
- Helm
plane ls
helm ls -A
Check the availability of the Datalayer CRDs.
kubectl get crd jupyter-contents.datalayer.io
kubectl explain jupyter-contents.spec
kubectl get crd jupyter-environments.datalayer.io
kubectl explain jupyter-environments.spec
kubectl get crd jupyterpools.datalayer.io
kubectl explain jupyterpools.spec
Check the availability of the Datalayer Operator Pods.
kubectl get pods -n datalayer-api -l app=operator
Check the logs of the Datalayer Operator Pods.
kubectl logs -n datalayer-api -l app=operator -f
Tear Down Datalayer Operator
If needed, tear down.
- Plane
- Helm
plane down datalayer-operator
export RELEASE=datalayer-operator
export NAMESPACE=datalayer-api
helm delete $RELEASE --namespace $NAMESPACE