I am struggling to automatically deploy new Flink jobs within our CI/CD workflows by using the Flink rest-api (which may be found here in the flink Github repository).
Documentation only says that that jar upload may be achieved by using /jars/upload
, but not how exactly a valid rest request has to be build (which Headers
, which Body
type, which Authorization
, which Method
and so on).
So I took a look at the Flink dashboard code of flink/flink-runtime-web
project on Github and searched for the implementation they used to upload a jar and - Yippie! Its implemented by calling the rest-api I am trying to use (using POST
as method). After that I tried to figure out with Postman which is correct way to send requests using different Content-Type
headers and Body
types, but none of them worked for me now.
I would have filed a ticket directly to the flink project, but could not find any reference to their ticket system.
So the basic Question here is:
/jars/upload
to successfully upload a file? I've run into the same issue and solved it by looking at the network request in chrome when uploading a jar with the web UI.
The request must
Here is a python script using requests that does the upload
upload = requests.post(
base_url + "/jars/upload",
files={
"jarfile": (
os.path.basename(path),
open(path, "rb"),
"application/x-java-archive"
)
}
)