# import asyncioimport sslfrom socket import socketimport websocket# import websocketsdef on_message(ws, message):print ('message received ..')print (message)def on_error(ws, error):print ('error happened .. ')print (error)def on_close(ws):print ("### closed ###")def on_open(ws):print ('Opening Websocket connection to the server ... ')## This session_key I got, need to be passed over websocket header isntad of ws.send.ws.send("testing message here")websocket.enableTrace(True)token = "........"auth = "Authorization: Bearer " + tokenws = websocket.WebSocketApp("wss://APISERVER:8443/api/v1/namespaces/default/services/the-service:8889/proxy/websocket?token=123",on_open = on_open,on_message = on_message,on_error = on_error,on_close = on_close,header = [auth])ws.on_open = on_open##Note: this is for --insecure flag in curl, basically to tell the client not verify the ssl certificatews.run_forever(sslopt={"cert_reqs": ssl.CERT_NONE})# socket.setsockopt
get those APIServer and token using
APISERVER=$(kubectl config view --minify | grep server | cut -f 2- -d ":" | tr -d " ")SECRET_NAME=$(kubectl get secrets | grep ^default | cut -f1 -d ' ')TOKEN=$(kubectl describe secret $SECRET_NAME | grep -E '^token' | cut -f2 -d':' | tr -d " ")curl $APISERVER/api --header "Authorization: Bearer $TOKEN" --insecure