autopilot-dashboard#61
Conversation
- include updated application architecture diagram - include diagram descriptions
removing diagram with error (single direction from RESTfulAPI)
updated application architecture with correction
|
|
||
| # This sets the container image more information can be found here: https://kubernetes.io/docs/concepts/containers/images/ | ||
| image: | ||
| repository: quay.io/anish2sinha/autopilot-dashboard |
There was a problem hiding this comment.
Can you push the image to quay.io/autopilot?
There was a problem hiding this comment.
Fixed in ba6a113. The image is pushed with tag "dashboard". The yaml now points to quay.io/autopilot/autopilot with tag "dashboard".
There was a problem hiding this comment.
This is preferable to be in the gh-pages branch, and it should be built with the autopilot container registry. I think we can delete this entirely and let the existing github action handle that (with appropriate changes, of course). This can be done separately from this PR
There was a problem hiding this comment.
Deleted in ba6a113. I think we pushed the binary on accident. It should be deleted now.
There was a problem hiding this comment.
Deleted in b08b38a. We originally used that workflow file for our class JIRA board. We removed it now as it is no longer used.
There was a problem hiding this comment.
Hm this might be an issue, we use Apache License. Is it possible to change this to Apache?
There was a problem hiding this comment.
Fixed in ba6a113. We changed the license to Apache, copied from the main IBM/autopilot repository for consistency.
|
@Mete4 @Anish701 @ryanliao296 @juehlin @eburhansjah I suspect the helm chart misses some RBAC because the dashboard doesn't show the list of nodes. |
@cmisale RBAC is not integrated with this branch so it should not affect the helm chart (RBAC is done separately with keycloak server). The image which this helm chart pulls from assumes a local kubernetes cluster (with existing read permissions). Two likely causes for why there are no nodes showing are:
Are there any error messages appearing in the browser console when on the Monitor page? |
@cmisale I updated the code so that it can work without CORS. Please also make sure to have the following environment variables set in a .env file in the "app" directory (use 127.0.0.1 as shown below instead of localhost): Also, after running git pull to retrieve the updated changes, please make sure to run |
|
What if I install through Helm? Where is this .env file supposed to be? I've just pulled the code and built a new container |
@cmisale Sorry, I updated the container image just now to reflect the new changes. Please let me know if it works after running kubectl proxy with the following flags: Let me know if you see any errors which appear in the console or in the pod logs. |
|
Thank you for the update, but unfortunately it didn't go far.. It errors out with |
|
@cmisale Thank you for the logs! It seems as though this issue is related to the environment being used for the dashboard. For a production environments, like the one on NERC/MOC which we deployed to, we need to use an NGINX server to forward requests meant for the Kubernetes and Autopilot APIs to their respective endpoints. For NERC this was https://kubernetes.default.svc/ and http://autopilot-healthchecks.autopilot.svc:3333/. If we are to deploy the dashboard to a different production environment, we just need to change these URLs in the nginx.conf file and rebuild the image. If this is your goal, please let me know of the kubernetes and autopilot service endpoints and I can update the image. For local/dev environments, the situation is a little bit tricky as a podman/docker container running on your local machine may not have access to the host IP. Usually host.containers.internal points to the host machine, which is why I set the nginx.conf to forward to that URL (with appropriate port numbers). As shown in the logs, the container does not have access to this host machine. I face the same issue on my laptop even when I explicitly set the IP address of my host on the nginx. Thus, for local development/testing, I think the best option is to revert back to the original implementation: The browser itself sends requests directly to the locally run kubernetes API (localhost:8001) and Autopilot (localhost:3333). This of course results in a CORS error on some browsers like Chrome, but this can easily be bypassed by using an Allow-CORS extension. The following extension is the one I use and is commonly used in local/dev environments: https://chromewebstore.google.com/detail/allow-cors-access-control/lhobafahddgcelffkeicbaginigeejlf?hl=en. Another option is to disable this CORS security feature in the browser settings. Please let me know if anything is unclear or how you would like to move forward with this. If you are using the dashboard locally and are fine with using a CORS extension or changing browser settings, I can revert back to the original implementation and update the image on quay. If you would try a different approach or are running the dashboard in a production environment, please let me know and I can make the appropriate updates to the NGINX server configuration. |


Summary
Introduces a fully functional UI dashboard for Autopilot. This dashboard integrates with GPU-equipped OpenShift/Kubernetes clusters, providing administrators with a user-friendly interface to monitor cluster health, initiate diagnostic tests, and view real-time results via an embedded terminal. The system aims to enhance usability and efficiency in cluster management while streamlining health checks and monitoring.
Scope and Impact
API Changes
/login- Authentication interface/monitor- Cluster monitoring view/testing- Test execution interfaceBreaking Changes
No breaking changes. This is an added feature for Autopilot's functionality without changing existing behavior.
Key Features
Monitor Page
Testing Page
UI Components
Technical Implementation
Frontend Stack
Key Dependencies
Deployment
How was this Pull-Request Tested and Validated?
cd app npm install npm run devnpm run build docker build -t autopilot-dashboard .Pull-Request Reminders
Does the Autopilot Readme require updates?
Are there any new software dependencies introduced?