I deployed Flyte on EKS without an Ingress due to ...
# flyte-deployment
h
I deployed Flyte on EKS without an Ingress due to running an older version of ALB Controller than the required one. It works fine to port-forward to the
FlyteAdmin
Pod in order to perform registration and request executions. I tried to port-forward to the
FlyteConsole
Service as well as Pod to access the UI but I am getting the following error, shouldn’t this be possible as well?
y
After port forwarding your console is working but it is trying flyteadmin connection through Ingress that’s why you are seeing that error
h
Right, so basically an update to ALB Controller is needed then. Thanks
👍 1
k
There is a way to tell console to use a different host:port instead
You can update it in console config
h
Ok thanks for the clarification @Ketan (kumare3). So basically I extend the
values-eks.yaml
with additional ConfigMap values for the console. I.e., append
ADMIN_API_URL
to the already specified key-values in the original
values.yaml
.
And I guess the key
ADMIN_API_URL
should be populated with the DNS of the LoadBalancer Ingress?
k
That is right. Cc @Yuvraj I think the disable auth should be removed. Also cc @Jason Porter can we make the baseurl /console as the default
👍 1
j
Yeah we removed
DISABLE_AUTH
in
v0.34.0
👍
h
Got it, will try that out. Thanks 🙂
Follow up, I used the following in my
values.yaml
and upgraded the Helm installation. I then port-forward to the
FlyteConsole
service on port 80 and still get the same error. The console ConfigMap is updated with the new ADMIN_API_URL key-value pair!
Copy code
configmap:
  console:
    ADMIN_API_URL: <adress>.<http://eu-west-1.elb.amazonaws.com|eu-west-1.elb.amazonaws.com>
k
Is this url right - can you try api/v1/projects on that endpoint
h
Sure
Seems to work from a Pod running in the same cluster
Copy code
root@ubuntu-client:/# curl -v http://<host>/api/v1/projects
...
{"projects":[{"id":"determined","name":"determined","domains":[{"id":"development","name":"development"},{"id":"staging","name":"staging"},{"id":"production","name":"production"}],"labels":{}},{"id":"flyteexamples","name":"flyteexamples","domains":[{"id":"development","name":"development"},{"id":"staging","name":"staging"},{"id":"production","name":"production"}],"description":"flyteexamples description"},{"id":"flytesnacks","name":"flytesnacks","domains":[{"id":"development","name":"development"},{"id":"staging","name":"staging"},{"id":"production","name":"production"}],"description":"flytesnacks description"},{"id":"flytetester","name":"flytetester","domains":[{"id":"development","name":"development"},{"id":"staging","name":"staging"},{"id":"production","name":"production"}],"description":"flytetester description"},{"id":"mnist","name":"mnist","domains":[{"id":"development","name":"development"},{"id":"staging","name":"staging"},{"id":"production","name":"production"}],"labels":{}}]}root@ubuntu-client:/#
And I am getting this error if it is of any help: Command:
Copy code
k port-forward svc/flyteconsole 1234:80
k
Cc @Jason Porter l, @Hampus Rosvall I can help probably around 9:00 am pst
h
That's very kind! I am off since I work in Sweden, we can take it on Monday if that works for you :)
k
We can try
h
When I check the logs from the console Pod I get the following after port-forwarding to `svc/flyteconsole`:
Copy code
::ffff:127.0.0.1 - - [03/Apr/2022:17:05:15 +0000] "GET /<host>/api/v1/projects HTTP/1.1" 304 - "<http://localhost:1234/console>" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:98.0) Gecko/20100101 Firefox/98.0"
k
304, weird?
h
Yeah, I also thought about that
But I guess 304 makes sense since I possibly have not modified anything on the projects resource
k
@Hampus Rosvall hmm, i do not think we publish any cache headers
h
@Ketan (kumare3) I realize now that I am missing the protocol and port part of the
ADMIN_API_URL
k
ohh ya
oops
lets try that
h
Hope it’s as simple as that. Guess that I should use port 80 right?
k
hmm, it should be the localhost port-forward port
so lets say, admin is port-forwarded to - “localhost:8080” - then you should be able to say “localhost:8080/api/v1/projects” in your browser
if that works then, In console
ADMIN_API_URL=<http://localhost:8080>
h
Hm, should I really reference localhost in the ConfigMap? I though I should reference the LoadBalancer address
k
yes
ohh hold on, so your LB is working?
have you tried
<http://lb>:port/api/v1/projects
if that works, then absolutely, just reference the
lb:port
h
Yes it works!
k
ok, then lets use the lb
but then you can simply use the
lb:port
for the console service
h
Right, but I still need to fix the
ADMIN_API_URL
lb:port is working fine using CURL, but I get network error in the console when I use
ADMIN_API_URL=<http://lb>:port
in the config map
k
hmm
is it https?
BTW, I think you will really like this - https://github.com/flyteorg/flyte/pull/2265
h
Wow that looks really cool. Will it run on Kubernetes aswell?
k
it can run anywhere
you can even run it on an ec2 instance
and then just point to an eks cluster
thats it
eventhough the intention is to speed up sandbox, it is production grade
❤️ 1
and you can simply increase the replicas of this single binary (not too many), to get a smallish cluster running in not time
h
Looks extremely cool!
k
ya slated to be out in one week
it also packages console with itself
cc @Jason Porter when you do get a chance, just simply replacing admin_api_url with admin’s remote address work right?
166 Views