Skip to content
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

fix(backend): fixes healthz response by adding json content type. Fixes #7525 #7532

Merged
merged 1 commit into from
May 20, 2022

Conversation

hsinhoyeh
Copy link
Contributor

Description of your changes:

  1. explicit content type with application/json on healthz response.
  2. add healthz client api under common/client for integration test
  3. add integration test for healthz endpoint

Checklist:

@google-oss-prow
Copy link

Hi @hsinhoyeh. Thanks for your PR.

I'm waiting for a kubeflow member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@hsinhoyeh
Copy link
Contributor Author

few thoughts for this PR:

  1. I don't think we should touch [WaitForReady] (https://github.com/kubeflow/pipelines/blob/master/backend/test/test_utils.go#L39) during this PR as its primary job is to ensure the backend api is ready for test. It is better to pass the raw http.Response for better assessing its status.
  2. According to previous point, so I added a test suite for Healthz, hope it will not over-tested.

/* ---------- Verify healthz response ---------- */
healthzResp, err := s.healthzClient.GetHealthz()
assert.Nil(t, err)
assert.NotNil(t, healthzResp)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we check the content within healthzResp are json parsable?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To show more about what I mean: For example: you can check the content within healthzResp contains multi_user key and value: https://github.com/kubeflow/pipelines/blob/74c7773ca40decfd0d4ed40dc93a6af591bbc190/backend/api/python_http_client/docs/ApiGetHealthzResponse.md.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zijianjoy thanks for the reply, but I think I still don't get it.
the question here is healthzResp is a well-defined structure, you can check the structure definition here

type GetHealthzResponse struct {

so the field multi-user will be there.

But I think the question is: are we able to verify the field value multi-user to be true in a multi-tenancy setup. (as the multi-user field is a simple boolean field, we are unable to verify when the value is not presented.)
And still, it is hard to verify during this test (as we should be able to create a test environment w/o multiuser).

@zijianjoy
Copy link
Collaborator

/ok-to-test

@zijianjoy
Copy link
Collaborator

/lgtm
/approve

Thank you for your change! @hsinhoyeh

@google-oss-prow
Copy link

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: zijianjoy

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants