100 lines
3.2 KiB
YAML
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
|