Skip to content

Commit bcfa3ae

Browse files
committed
set endpoints via extra config
1 parent 803e520 commit bcfa3ae

File tree

3 files changed

+29
-29
lines changed

3 files changed

+29
-29
lines changed

stacks/jupyterhub-keycloak/jupyterhub.yaml

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,6 @@ options:
1414
GenericOAuthenticator:
1515
client_id: jupyterhub
1616
client_secret: jupyterhubjupyterhub
17-
oauth_callback_url: http://172.19.0.4:31095/hub/oauth_callback
18-
authorize_url: https://172.19.0.4:31093/realms/demo/protocol/openid-connect/auth
19-
token_url: https://172.19.0.4:31093/realms/demo/protocol/openid-connect/token
20-
userdata_url: https://172.19.0.4:31093/realms/demo/protocol/openid-connect/userinfo
2117
username_claim: preferred_username
2218
scope:
2319
- openid
@@ -27,6 +23,16 @@ options:
2723
CACERT: /etc/ssl/certs/ca-certificates.crt
2824
CERT: /etc/ssl/certs/ca-certificates.crt
2925
CURLOPT_CAINFO: /etc/ssl/certs/ca-certificates.crt
26+
KEYCLOAK_NODEPORT_URL:
27+
valueFrom:
28+
configMapKeyRef:
29+
name: keycloak-address
30+
key: keycloakAddress
31+
KEYCLOAK_NODE_IP:
32+
valueFrom:
33+
configMapKeyRef:
34+
name: keycloak-address
35+
key: keycloakNodeIp
3036
extraVolumes:
3137
- name: tls-ca-cert
3238
ephemeral:
@@ -100,6 +106,22 @@ options:
100106
)
101107
102108
c.KubeSpawner.after_pod_created_hook = after_pod_created_hook
109+
03-set-endpoints: |
110+
import os
111+
from oauthenticator.generic import GenericOAuthenticator
112+
113+
keycloak_url = os.getenv("KEYCLOAK_NODEPORT_URL")
114+
if not keycloak_url:
115+
raise ValueError("KEYCLOAK_NODEPORT_URL environment variable not set")
116+
117+
keycloak_node_ip = os.getenv("KEYCLOAK_NODE_IP")
118+
if not keycloak_node_ip:
119+
raise ValueError("KEYCLOAK_NODE_IP environment variable not set")
120+
121+
c.GenericOAuthenticator.oauth_callback_url: f"http://{keycloak_node_ip}:31095/hub/oauth_callback"
122+
c.GenericOAuthenticator.authorize_url = f"https://{keycloak_url}/realms/demo/protocol/openid-connect/auth"
123+
c.GenericOAuthenticator.token_url = f"https://{keycloak_url}/realms/demo/protocol/openid-connect/token"
124+
c.GenericOAuthenticator.userdata_url = f"https://{keycloak_url}/realms/demo/protocol/openid-connect/userinfo"
103125
service:
104126
type: NodePort
105127
proxy:

stacks/jupyterhub-keycloak/keycloak.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ spec:
7474
metadata:
7575
name: keycloak-address
7676
data:
77-
address: "$KEYCLOAK_HOSTNAME:$KEYCLOAK_PORT"
77+
keycloakAddress: "$KEYCLOAK_HOSTNAME:$KEYCLOAK_PORT"
78+
keycloakNodeIp: "$KEYCLOAK_HOSTNAME"
7879
EOF
7980
fi
8081

stacks/jupyterhub-keycloak/process-s3.ipynb

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -43,33 +43,12 @@
4343
"NAMESPACE = os.environ.get(\"NAMESPACE\", \"default\")\n",
4444
"POD_NAME = os.environ.get(\"HOSTNAME\", f\"jupyter-{os.environ.get('USER', 'default')}-{NAMESPACE}\")\n",
4545
"\n",
46-
"# works with python-3.11 notebook image\n",
47-
"#EXECUTOR_IMAGE = \"oci.stackable.tech/sdp/spark-k8s:3.5.0-stackable24.3.0\" \n",
48-
"\n",
49-
"# jars differ in size, 17.0.12 vs. 17.0.13, 3.11.10 vs. 3.11.9\n",
50-
"#SerializableBuffer conflict\n",
51-
"#EXECUTOR_IMAGE = \"oci.stackable.tech/sdp/spark-k8s:3.5.2-stackable24.11.1\" \n",
52-
"\n",
53-
"# java, jars match\n",
54-
"#Python in worker has different version (3, 10) than that in driver 3.11, PySpark cannot run with different minor versions. \n",
55-
"#EXECUTOR_IMAGE = \"apache/spark:3.5.2-java17-python3\" \n",
56-
"\n",
57-
"# java, jars match\n",
58-
"#Python in worker has different version (3, 10) than that in driver 3.11, PySpark cannot run with different minor versions. \n",
59-
"#EXECUTOR_IMAGE = \"spark:3.5.2-scala2.12-java17-python3-ubuntu\" \n",
60-
"\n",
61-
"#Python in worker has different version (3, 12) than that in driver 3.11, PySpark cannot run with different minor versions.\n",
62-
"#EXECUTOR_IMAGE = \"bitnami/spark:3.5.2\"\n",
63-
"\n",
64-
"# custom image with python 3.11 - works!\n",
65-
"# based off: spark:3.5.2-scala2.12-java17-ubuntu\n",
66-
"# see: \n",
6746
"EXECUTOR_IMAGE = \"spark:3.5.2-python311\" \n",
6847
"\n",
6948
"spark = (\n",
7049
" SparkSession.builder\n",
7150
" .master(f'k8s://https://{os.environ[\"KUBERNETES_SERVICE_HOST\"]}:{os.environ[\"KUBERNETES_SERVICE_PORT\"]}')\n",
72-
" .appName(\"process-s3-data\")\n",
51+
" .appName(\"process-s3-data-\"{os.environ.get('USER', 'default')}-{NAMESPACE})\n",
7352
" .config(\"spark.kubernetes.container.image\", EXECUTOR_IMAGE)\n",
7453
" .config(\"spark.kubernetes.container.image.pullPolicy\", \"IfNotPresent\")\n",
7554
" .config(\"spark.kubernetes.namespace\", NAMESPACE)\n",
@@ -80,8 +59,6 @@
8059
" .config(\"spark.executor.instances\", \"1\")\n",
8160
" .config(\"spark.executor.memory\", \"1g\")\n",
8261
" .config(\"spark.executor.cores\", \"1\")\n",
83-
" # bitnami. See https://github.com/bitnami/containers/issues/52698#issuecomment-2275913474\n",
84-
" #.config(\"spark.executorEnv.LD_PRELOAD\", \"/opt/bitnami/common/lib/libnss_wrapper.so\")\n",
8562
" .config(\"spark.hadoop.fs.s3a.endpoint\", \"http://minio:9000/\")\n",
8663
" .config(\"spark.hadoop.fs.s3a.path.style.access\", \"true\")\n",
8764
" .config(\"spark.hadoop.fs.s3a.access.key\", minio_user)\n",

0 commit comments

Comments
 (0)