Merge pull request #18 from SpecterOps/jupyter

Add in jupyter again
This commit is contained in:
Lee Christensen
2023-10-05 21:13:20 -06:00
committed by GitHub
6 changed files with 193 additions and 39 deletions
+51
View File
@@ -0,0 +1,51 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"id": "64597508-285a-43e7-a38b-976166c431da",
"metadata": {},
"outputs": [],
"source": [
"import requests\n",
"from pathlib import Path\n",
"\n",
"file_path = \"./sample_files/structured/process_data.json\"\n",
"json_data = Path(file_path).read_text()\n",
"\n",
"basic_auth_user = \"n\"\n",
"basic_auth_password = \"Qwerty12345\"\n",
"\n",
"NEMESIS_HTTP_SERVER=\"http://ingress-nginx-controller.ingress-nginx.svc.cluster.local/\"\n",
"\n",
"requests.post(f\"{NEMESIS_HTTP_SERVER}api/data\", data=json_data, auth=(basic_auth_user, basic_auth_password)).json()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3.10.6 64-bit",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.6"
},
"vscode": {
"interpreter": {
"hash": "e7370f93d1d0cde622a1f8e1c04877d8463912d04d973331ad4851f04de6915a"
}
}
},
"nbformat": 4,
"nbformat_minor": 5
}
+9
View File
@@ -0,0 +1,9 @@
FROM jupyter/datascience-notebook:latest
# RUN pip install kafka-python
WORKDIR /home/jovyan/
RUN mv work examples
COPY cmd/jupyter/post_data.ipynb /home/jovyan/examples
COPY packages/protobufs/nemesis.proto /home/jovyan/examples
COPY sample_files/ examples/sample_files
+45
View File
@@ -0,0 +1,45 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: jupyter
labels:
app: jupyter
spec:
replicas: 1
selector:
matchLabels:
app: jupyter
strategy: {}
template:
metadata:
labels:
app: jupyter
spec:
containers:
- env:
- name: JUPYTER_TOKEN
valueFrom:
secretKeyRef:
name: dashboard-creds
key: dashboard-password
- name: JUPYTER_PORT
value: "8888"
- name: NOTEBOOK_ARGS
value: "--NotebookApp.base_url=/jupyter/"
image: nemesis-jupyter
name: nemesis-jupyter
ports:
- containerPort: 8888
name: http
readinessProbe:
httpGet:
path: /jupyter/api
port: http
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 5
failureThreshold: 10
restartPolicy: Always
status: {}
+26
View File
@@ -0,0 +1,26 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: jupyter-ingress
annotations:
# TODO: Basic-auth breaks the websocket for some reasone
# nginx.ingress.kubernetes.io/auth-type: basic
# nginx.ingress.kubernetes.io/auth-secret: basic-auth
# nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required'
ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/rewrite-target: /jupyter/$2
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
spec:
ingressClassName: nginx
rules:
- http:
paths:
- path: /jupyter(/|$)(.*)
pathType: ImplementationSpecific
backend:
service:
name: jupyter
port:
number: 8888
+17
View File
@@ -0,0 +1,17 @@
apiVersion: v1
kind: Service
metadata:
labels:
app: jupyter
name: jupyter
spec:
type: NodePort
ports:
- name: "8888"
port: 8888
targetPort: 8888
nodePort: 31888
selector:
app: jupyter
status:
loadBalancer: {}
+45 -39
View File
@@ -166,18 +166,51 @@ portForward:
# port: 5672
# localPort: 5672
# address: 0.0.0.0
# - &portForward-gotenberg
# resourceType: service
# resourceName: gotenberg
# namespace: default
# port: 3000
# address: 0.0.0.0
# - &portForward-tika
# resourceType: service
# resourceName: tika
# namespace: default
# port: 9998
# address: 0.0.0.0
---
#############################################################################
#
# Jupyter - Deploys an instance of Jupyter Notebooks
#
# Usage: skaffold dev -f skaffold.yaml -m jupyter -p jupyter
#############################################################################
apiVersion: skaffold/v4beta6
kind: Config
metadata:
name: jupyter
build:
tagPolicy:
inputDigest: {}
local:
push: false
tryImportMissing: true
useBuildkit: true
concurrency: 0
artifacts:
- &build-jupyter
image: nemesis-jupyter
docker:
dockerfile: dockerfiles/jupyter.Dockerfile
manifests:
rawYaml: []
deploy:
kubectl: {}
profiles:
- name: jupyter
manifests:
rawYaml:
- kubernetes/jupyter/*
portForward:
- &portForward-jupyter
resourceType: service
resourceName: jupyter
namespace: default
port: 8888
address: 0.0.0.0
---
#########################################################################################
@@ -222,25 +255,6 @@ manifests:
deploy:
kubectl: {}
# portForward:
# - &portForward-dotnet
# resourceType: service
# resourceName: dotnet
# namespace: default
# port: 9800
# address: 0.0.0.0
# - &portForward-nlp
# resourceType: service
# resourceName: nlp
# namespace: default
# port: 9803
# address: 0.0.0.0
# - &portForward-tensorflow-serving
# resourceType: service
# resourceName: tensorflow-serving
# namespace: default
# port: 8501
# address: 0.0.0.0
---
apiVersion: skaffold/v4beta6
kind: Config
@@ -270,14 +284,6 @@ manifests:
- &k8s-enrichment kubernetes/enrichment/*
deploy:
kubectl: {}
# portForward:
# - &portForward-dotnet
# resourceType: service
# resourceName: enrichment-webapi
# namespace: default
# port: 9910
# address: 0.0.0.0
---
apiVersion: skaffold/v4beta6
kind: Config