-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Health Checks, various new features, bugfixes #5
Conversation
…h-specific health checks.
…s, as well as REST functions.
…e caching bug for when the user switches Kuma environments. various fixes and features.
…ty added to the wizard. added status column to the dataplanes view.
…e user is running. small bugfix for error thrown when trying to fetch subscriptions.
…wizard. functionality added for detecting if there are any dataplanes offline.
…ns when a dataplane is offline.
…ol for rendering JSON to YAML because of better rendering.
…f the API doesnt return an OK status. the user is presented with a message and none of the other API queries attempt to run.
…r easier management and styling.
I've added a new feature that will check that the Kuma HTTP API is running and if not, the user is presented with a message. This works in both the wizard and the dashboard and does not cache the status of the API. Please review and provide feedback on the content for it. Testing the API error functionalityThis is an easy way to test this functionality without actually having to go through the trouble of starting and restarting Kuma.
You should see the error message that will display when the HTTP API is unavailable. |
…improved the error handling in instances where the API is offline.
@subnetmarco I've added functionality that checks to see whether or not the API is online. Please give it a try and let me know your thoughts and what can be done to improve the message to the user. |
@bloqhead yes, can you please also include what address are you trying to use in order to connect to Kuma, and change the message to: |
…that will send the user to the 404 page if they land on an entity slug for something that no longer exists.
|
…ng in the breadcrumbs.
I found a glitch in the Refresh of dataplanes when they are offline: https://share.getcloudapp.com/mXumKr1W The table is flashing when hitting the Refresh button. |
Moving across empty tables creates a flashing effect: https://share.getcloudapp.com/L1ukrRLD |
I've added pagination to all table views. If you have more than 12 of any item, the pagination goes into effect (I can adjust that number as needed if you guys think it should be more or less). |
Breadcrumbs should be in the form of:
like:
|
@subnetmarco the breadcrumbs are now modeled after your example. Working on the other aforementioned items now. |
…adjusted the page transition length.
… refactored it slightly to handle data smarter.
…en there is a large amount of data loading in, as well as handling any errors that occur.
…ll policy data to the dataplane overview and broke it out to 2 rows.
I've created a short video walkthrough to provide an idea of what to expect if you haven't yet tested with the new changes and fixes. Please provide any feedback or questions so that I can address them and get a compiled version ready for the next release. |
name: 'Health Checks', | ||
link: '/health-checks', | ||
title: false, | ||
parent: 'healthchecks' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
shouldn't this be 'policies'
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Marco wanted the Health Checks menu item to be housed under the "Policies" heading along with Proxy Templates and all of the Traffic items. "Policies" under the "Policies" heading would be redundant.
/** | ||
* Iterate through the networking inbound data | ||
*/ | ||
if (response.dataplane.networking.inbound && response.dataplane.networking.inbound.length) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did you test the GUI with Dataplane in Gateway mode? Here is example of such dataplane
type: Dataplane
mesh: default
name: kong-01
networking:
gateway:
tags:
service: kong
outbound:
- interface: :33033
service: backend
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I haven't. If I wanted to test this locally with Kuma, how would I do it? If it's in gateway mode, does gateway
output the same data as inbound
does?
…line with what kumactl outputs. added consideration for when a dataplane is in gateway mode but it requires review.
… offline on its dataplane detail view. fixed a router title and breadcrumb.
I've opened a new PR with a compiled build for review. Please test with the API URL ( |
New Features and Bugfixes
/config
endpoint every time so that if anything is different it will be refreshed. So if a user switches from universal to Kubernetes (or vice-versa) they will be sent through the wizard again. This is completely unrelated to the caching issue on the website.In Progress
If you want to test via this repo with your currently running Kuma, follow these steps:
npm i -g @vue/cli
(oryarn global add @vue/cli
)yarn serve
http://localhost:8080/
Testing the Kuma environment check functionality
The app uses a local JSON file for getting the config information (
apiUrl
andenvironment
) but uses the Kuma/config
endpoint in production. If you want to see what happens if the user launches Kuma in a different environment than what they had running prior, changed the"universal"
string in this file to"kubernetes"
and refresh the page. You should be sent back through the wizard and you'll see that the page information changes accordingly.The reason I use a local file here is because the development version of the GUI runs from port
8080
and the/config
endpoint in production does not. So trying to fetch it from port8080
throws a CORS error. Since the GUI runs from the same port as the/config
endpoint in production, this is not an issue.