ansible-role-eom/tasks/jupyterhub.yaml
2024-12-09 21:36:13 -05:00

100 lines
3.2 KiB
YAML

---
# tasks file for jupyter hub
- name: Add jupyter repository
kubernetes.core.helm_repository:
name: jupyterhub
repo_url: https://hub.jupyter.org/helm-chart/
register: repo
- name: Update Helm repos
command: helm repo update
when: repo.changed
- name: Deploy Jupyter Hub
kubernetes.core.helm:
name: jupyterhub
chart_ref: jupyterhub/jupyterhub
release_namespace: jupyterhub
create_namespace: true
values:
prePuller:
hook:
enabled: false
continuous:
enabled: false
hub:
config:
Authenticator:
admin_users:
- jupyterhub
- eric
allow_all: true
JupyterHub:
admin_access: true
authenticator_class: ldapauthenticator.LDAPAuthenticator
LDAPAuthenticator:
server_address: openldap.openldap.svc.cluster.local
server_port: 389
use_ssl: false
tls_strategy: insecure
lookup_dn: true
lookup_dn_search_user: cn=readonly,dc=eom,dc=dev
lookup_dn_search_password: "{{ openldap_readonly_password }}"
lookup_dn_search_filter: (&(objectClass=posixAccount)({login_attr}={login})(memberOf=cn=JupyterHub Users,ou=JupyterHub,ou=Services,dc=eom,dc=dev))
lookup_dn_user_dn_attribute: cn
user_search_base: dc=eom,dc=dev
user_attribute: uid
singleuser:
extraFiles:
jupyter_notebook_config.json:
mountPath: /etc/jupyter/jupyter_notebook_config.json
# data is a YAML structure here but will be rendered to JSON file as our
# file extension is ".json".
data:
MappingKernelManager:
cull_idle_timeout: 1200
cull_interval: 120
cull_connected: true
cull_busy: false
storage:
capacity: 64Gi
image:
name: jupyter/minimal-notebook
tag: latest
pullPolicy: IfNotPresent
memory:
guarantee: 1G
profileList:
- display_name: Minimal notebook
description: Command-line tools useful when working in Jupyter applications
kubespawner_override:
image: jupyter/minimal-notebook
tag: latest
pullPolicy: IfNotPresent
default: true
- display_name: Tensorflow notebook
description: Python deep learning libraries
kubespawner_override:
image: jupyter/tensorflow-notebook
tag: latest
pullPolicy: IfNotPresent
- display_name: Data science notebook
description: Libraries for data analysis from the Python, R, and Julia communities
kubespawner_override:
image: jupyter/datascience-notebook
tag: latest
pullPolicy: IfNotPresent
ingress:
enabled: true
annotations:
cert-manager.io/cluster-issuer: ca-issuer
ingressClassName: nginx
hosts:
- jupyterhub.eom.dev
pathSuffix:
pathType: Prefix
tls:
- hosts:
- jupyterhub.eom.dev
secretName: jupyterhub-tls