Commit 2a7f6596 authored by Graham Dumpleton's avatar Graham Dumpleton

Add example templates for deploying notebooks to OpenShift.

parent c5480001
{
"kind": "Template",
"apiVersion": "v1",
"metadata": {
"name": "jupyter-notebook",
"annotations": {
"openshift.io/display-name": "Jupyter Notebook",
"description": "Template for deploying Jupyter Notebook images.",
"iconClass": "icon-python",
"tags": "python,jupyter"
}
},
"parameters": [
{
"name": "APPLICATION_NAME",
"value": "notebook",
"required": true
},
{
"name": "NOTEBOOK_IMAGE",
"value": "jupyter/minimal-notebook:latest",
"required": true
},
{
"name": "NOTEBOOK_PASSWORD",
"value": "",
"required": true
}
],
"objects": [
{
"kind": "ConfigMap",
"apiVersion": "v1",
"metadata": {
"name": "${APPLICATION_NAME}-cfg"
},
"data": {
"jupyter_notebook_config.py": "import os\n\npassword = os.environ.get('JUPYTER_NOTEBOOK_PASSWORD')\n\nif password:\n import notebook.auth\n c.NotebookApp.password = notebook.auth.passwd(password)\n del password\n del os.environ['JUPYTER_NOTEBOOK_PASSWORD']\n\nimage_config_file = '/home/jovyan/work/.jupyter/jupyter_notebook_config.py'\n\nif os.path.exists(image_config_file):\n with open(image_config_file) as fp:\n exec(compile(fp.read(), image_config_file, 'exec'), globals())\n"
}
},
{
"kind": "DeploymentConfig",
"apiVersion": "v1",
"metadata": {
"name": "${APPLICATION_NAME}",
"labels": {
"app": "${APPLICATION_NAME}"
}
},
"spec": {
"strategy": {
"type": "Recreate"
},
"triggers": [
{
"type": "ConfigChange"
}
],
"replicas": 1,
"selector": {
"app": "${APPLICATION_NAME}",
"deploymentconfig": "${APPLICATION_NAME}"
},
"template": {
"metadata": {
"annotations": {
"alpha.image.policy.openshift.io/resolve-names": "*"
},
"labels": {
"app": "${APPLICATION_NAME}",
"deploymentconfig": "${APPLICATION_NAME}"
}
},
"spec": {
"containers": [
{
"name": "jupyter-notebook",
"image": "${NOTEBOOK_IMAGE}",
"command": [
"start-notebook.sh",
"--config=/home/jovyan/configs/jupyter_notebook_config.py",
"--no-browser",
"--ip=0.0.0.0"
],
"ports": [
{
"containerPort": 8888,
"protocol": "TCP"
}
],
"env": [
{
"name": "JUPYTER_NOTEBOOK_PASSWORD",
"value": "${NOTEBOOK_PASSWORD}"
}
],
"volumeMounts": [
{
"mountPath": "/home/jovyan/configs",
"name": "configs"
}
]
}
],
"securityContext": {
"supplementalGroups": [
100
]
},
"volumes": [
{
"configMap": {
"name": "${APPLICATION_NAME}-cfg"
},
"name": "configs"
}
]
}
}
}
},
{
"kind": "Route",
"apiVersion": "v1",
"metadata": {
"name": "${APPLICATION_NAME}",
"labels": {
"app": "${APPLICATION_NAME}"
}
},
"spec": {
"host": "",
"to": {
"kind": "Service",
"name": "${APPLICATION_NAME}",
"weight": 100
},
"port": {
"targetPort": "8888-tcp"
},
"tls": {
"termination": "edge",
"insecureEdgeTerminationPolicy": "Redirect"
}
}
},
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": "${APPLICATION_NAME}",
"labels": {
"app": "${APPLICATION_NAME}"
}
},
"spec": {
"ports": [
{
"name": "8888-tcp",
"protocol": "TCP",
"port": 8888,
"targetPort": 8888
}
],
"selector": {
"app": "${APPLICATION_NAME}",
"deploymentconfig": "${APPLICATION_NAME}"
},
"type": "ClusterIP"
}
}
]
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment