mirror of
https://github.com/jupyter/docker-stacks.git
synced 2025-10-07 01:54:04 +00:00
373 lines
10 KiB
JSON
373 lines
10 KiB
JSON
{
|
|
"kind": "List",
|
|
"apiVersion": "v1",
|
|
"items": [
|
|
{
|
|
"kind": "Template",
|
|
"apiVersion": "v1",
|
|
"metadata": {
|
|
"name": "jupyter-notebook-builder",
|
|
"annotations": {
|
|
"openshift.io/display-name": "Jupyter Notebook Builder",
|
|
"description": "Template for building Jupyter Notebook images with bundled notebooks and files.",
|
|
"iconClass": "icon-python",
|
|
"tags": "python,jupyter"
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "IMAGE_NAME",
|
|
"value": "notebook",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "BUILDER_IMAGE",
|
|
"value": "jupyter/minimal-notebook:latest",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "BUILDER_SCRIPTS",
|
|
"value": "https://raw.githubusercontent.com/jupyter/docker-stacks/main/examples/source-to-image",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "GIT_REPOSITORY_URL",
|
|
"value": "",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "GIT_REFERENCE",
|
|
"value": "main",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "CONTEXT_DIR",
|
|
"value": "",
|
|
"required": false
|
|
}
|
|
],
|
|
"objects": [
|
|
{
|
|
"apiVersion": "v1",
|
|
"kind": "ImageStream",
|
|
"metadata": {
|
|
"name": "${IMAGE_NAME}",
|
|
"labels": {
|
|
"app": "${IMAGE_NAME}"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"apiVersion": "v1",
|
|
"kind": "BuildConfig",
|
|
"metadata": {
|
|
"name": "${IMAGE_NAME}",
|
|
"labels": {
|
|
"app": "${IMAGE_NAME}"
|
|
}
|
|
},
|
|
"spec": {
|
|
"output": {
|
|
"to": {
|
|
"kind": "ImageStreamTag",
|
|
"name": "${IMAGE_NAME}:latest"
|
|
}
|
|
},
|
|
"resources": {
|
|
"limits": {
|
|
"memory": "1Gi"
|
|
}
|
|
},
|
|
"source": {
|
|
"type": "Git",
|
|
"git": {
|
|
"uri": "${GIT_REPOSITORY_URL}",
|
|
"ref": "${GIT_REFERENCE}"
|
|
},
|
|
"contextDir": "${CONTEXT_DIR}"
|
|
},
|
|
"strategy": {
|
|
"type": "Source",
|
|
"sourceStrategy": {
|
|
"from": {
|
|
"kind": "DockerImage",
|
|
"name": "${BUILDER_IMAGE}"
|
|
},
|
|
"scripts": "${BUILDER_SCRIPTS}"
|
|
}
|
|
},
|
|
"triggers": [
|
|
{
|
|
"type": "ConfigChange"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"kind": "Template",
|
|
"apiVersion": "v1",
|
|
"metadata": {
|
|
"name": "jupyter-notebook-quickstart",
|
|
"annotations": {
|
|
"openshift.io/display-name": "Jupyter Notebook QuickStart",
|
|
"description": "Template for deploying Jupyter Notebook images with bundled notebooks and files.",
|
|
"iconClass": "icon-python",
|
|
"tags": "python,jupyter"
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "APPLICATION_NAME",
|
|
"value": "notebook",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "BUILDER_IMAGE",
|
|
"value": "jupyter/minimal-notebook:latest",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "BUILDER_SCRIPTS",
|
|
"value": "https://raw.githubusercontent.com/jupyter/docker-stacks/main/examples/source-to-image",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "GIT_REPOSITORY_URL",
|
|
"value": "",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "GIT_REFERENCE",
|
|
"value": "main",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "CONTEXT_DIR",
|
|
"value": "",
|
|
"required": false
|
|
},
|
|
{
|
|
"name": "NOTEBOOK_PASSWORD",
|
|
"from": "[a-f0-9]{32}",
|
|
"generate": "expression"
|
|
}
|
|
],
|
|
"objects": [
|
|
{
|
|
"apiVersion": "v1",
|
|
"kind": "ImageStream",
|
|
"metadata": {
|
|
"name": "${APPLICATION_NAME}",
|
|
"labels": {
|
|
"app": "${APPLICATION_NAME}"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"apiVersion": "v1",
|
|
"kind": "BuildConfig",
|
|
"metadata": {
|
|
"name": "${APPLICATION_NAME}",
|
|
"labels": {
|
|
"app": "${APPLICATION_NAME}"
|
|
}
|
|
},
|
|
"spec": {
|
|
"output": {
|
|
"to": {
|
|
"kind": "ImageStreamTag",
|
|
"name": "${APPLICATION_NAME}:latest"
|
|
}
|
|
},
|
|
"resources": {
|
|
"limits": {
|
|
"memory": "1Gi"
|
|
}
|
|
},
|
|
"source": {
|
|
"type": "Git",
|
|
"git": {
|
|
"uri": "${GIT_REPOSITORY_URL}",
|
|
"ref": "${GIT_REFERENCE}"
|
|
},
|
|
"contextDir": "${CONTEXT_DIR}"
|
|
},
|
|
"strategy": {
|
|
"type": "Source",
|
|
"sourceStrategy": {
|
|
"from": {
|
|
"kind": "DockerImage",
|
|
"name": "${BUILDER_IMAGE}"
|
|
},
|
|
"scripts": "${BUILDER_SCRIPTS}"
|
|
}
|
|
},
|
|
"triggers": [
|
|
{
|
|
"type": "ConfigChange"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"kind": "ConfigMap",
|
|
"apiVersion": "v1",
|
|
"metadata": {
|
|
"name": "${APPLICATION_NAME}-cfg",
|
|
"labels": {
|
|
"app": "${APPLICATION_NAME}"
|
|
}
|
|
},
|
|
"data": {
|
|
"jupyter_server_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/.jupyter/jupyter_server_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"
|
|
},
|
|
{
|
|
"type": "ImageChange",
|
|
"imageChangeParams": {
|
|
"automatic": true,
|
|
"containerNames": ["jupyter-notebook"],
|
|
"from": {
|
|
"kind": "ImageStreamTag",
|
|
"name": "${APPLICATION_NAME}:latest"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"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": "${APPLICATION_NAME}:latest",
|
|
"command": [
|
|
"start-notebook.sh",
|
|
"--config=/etc/jupyter/openshift/jupyter_server_config.py",
|
|
"--no-browser",
|
|
"--ip=0.0.0.0"
|
|
],
|
|
|
|
"ports": [
|
|
{
|
|
"containerPort": 8888,
|
|
"protocol": "TCP"
|
|
}
|
|
],
|
|
"env": [
|
|
{
|
|
"name": "JUPYTER_NOTEBOOK_PASSWORD",
|
|
"value": "${NOTEBOOK_PASSWORD}"
|
|
}
|
|
],
|
|
"volumeMounts": [
|
|
{
|
|
"mountPath": "/etc/jupyter/openshift",
|
|
"name": "configs"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"automountServiceAccountToken": false,
|
|
"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"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|