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

default 'true' for APIResponseCompression feature flag #51508

Closed

Conversation

ilackarms
Copy link
Contributor

@ilackarms ilackarms commented Aug 29, 2017

This PR enables server-side API Compression by default.

Since #46966 Server-side Compression of GET/LIST response bodies has been available, but disabled by default due to test flakes it was causing.

As per discussion in #48477 those test flakes should be reduced now, allowing API compression to be enabled by default.

kube-apiserver: sends gzip-compressed responses to get/list API requests that indicate the client can accept gzip-encoded responses

@k8s-ci-robot k8s-ci-robot added size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Aug 29, 2017
@dims
Copy link
Member

dims commented Aug 29, 2017

Can you please rebase?

@k8s-github-robot k8s-github-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Aug 29, 2017
@ilackarms ilackarms force-pushed the enable-compression-default branch from 032cfd4 to f2a9a4b Compare August 29, 2017 11:46
@k8s-github-robot k8s-github-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Aug 29, 2017
@liggitt
Copy link
Member

liggitt commented Aug 29, 2017

/ok-to-test

@k8s-ci-robot k8s-ci-robot removed the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Aug 29, 2017
@liggitt
Copy link
Member

liggitt commented Aug 29, 2017

@wojtek-t is there a way to run any of the kubemark scale tests against a PR to check resource consumption? I'd like to compare CPU use on the apiserver with this enabled

@k8s-github-robot k8s-github-robot added the do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. label Aug 30, 2017
@liggitt liggitt added release-note Denotes a PR that will be considered when it comes time to generate release notes. and removed do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. release-note-label-needed labels Aug 30, 2017
@ilackarms
Copy link
Contributor Author

@liggitt are these known test failures? they do not seem related to the change

@ilackarms
Copy link
Contributor Author

is it worth it to bump this feature from alpha to beta or better?

@liggitt
Copy link
Member

liggitt commented Sep 3, 2017

is it worth it to bump this feature from alpha to beta or better?

1.8 is the first release to include it. I think it should stay as-is for 1.8, and be bumped up and/or enabled by default at the beginning of the 1.9 cycle for soak time.

@ilackarms
Copy link
Contributor Author

/retest

@ilackarms
Copy link
Contributor Author

/test pull-kubernetes-e2e-kops-aws

@k8s-github-robot k8s-github-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Sep 7, 2017
@tallclair
Copy link
Member

I'm not sure if this is an official policy, but I think features should be in beta stage before they're enabled by default. If the goal is just to enable the feature in the E2E environment, use the --feature-gate flag:

FEATURE_GATES="${KUBE_FEATURE_GATES:-ExperimentalCriticalPodAnnotation=true}"

@liggitt
Copy link
Member

liggitt commented Sep 28, 2017

I’d actually advocate switching the feature to beta and enabling by default now to get soak time during 1.9

@ilackarms
Copy link
Contributor Author

@liggitt updated to beta feature

@ilackarms ilackarms force-pushed the enable-compression-default branch from f2a9a4b to b985453 Compare September 28, 2017 16:01
@k8s-github-robot k8s-github-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Sep 28, 2017
@liggitt
Copy link
Member

liggitt commented Sep 28, 2017

/retest

@liggitt
Copy link
Member

liggitt commented Jan 16, 2018

/retest

@wojtek-t wojtek-t removed their assignment Jan 16, 2018
@smarterclayton
Copy link
Contributor

This needs to be rebased without the merge commit

@ilackarms ilackarms force-pushed the enable-compression-default branch from 3792c27 to 34cd5ca Compare January 17, 2018 18:58
@ilackarms
Copy link
Contributor Author

@smarterclayton done

@k8s-ci-robot
Copy link
Contributor

k8s-ci-robot commented Jan 17, 2018

@ilackarms: The following test failed, say /retest to rerun them all:

Test name Commit Details Rerun command
pull-kubernetes-e2e-kops-aws 34cd5ca link /test pull-kubernetes-e2e-kops-aws

Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR.

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. I understand the commands that are listed here.

@liggitt
Copy link
Member

liggitt commented Jan 17, 2018

/hold
still seeing log streaming issues with this enabled in openshift
need to triage before enabling

@k8s-ci-robot k8s-ci-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jan 17, 2018
@lavalamp
Copy link
Member

/approve

Giving the tag for when it is ready to go.

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: ilackarms, lavalamp, liggitt, tallclair

Associated issue: #46966

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

Needs approval from an approver in each of these OWNERS Files:

You can indicate your approval by writing /approve in a comment
You can cancel your approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jan 25, 2018
@cben
Copy link

cben commented Mar 27, 2018

@LiGgit what needs to be done to move this forward?

still seeing log streaming issues with this enabled in openshift
need to triage before enabling

where/how did you see these issues? where would one start to investigate this?

@cben
Copy link

cben commented May 3, 2018

@liggitt Friendly ping, is there a way for someone not experienced in k8s internals to help here?

@liggitt
Copy link
Member

liggitt commented May 14, 2018

the test we saw failing was streaming logs from a live pod: https://openshift-gce-devel.appspot.com/pr/18124

all five runs failed the same way: https://openshift-gce-devel.appspot.com/build/origin-ci-test/pr-logs/pull/18124/test_pull_request_origin_extended_conformance_install/5735/

/tmp/openshift/build-rpm-release/rpm/BUILD/origin-3.9.0/_output/local/go/src/github.com/openshift/origin/test/extended/deployments/deployments.go:783
Expected
    <string>: --> pre: Running hook pod ...
    --> pre: Retrying hook pod (retry #1)
to contain substring
    <string>: pre hook logs
/tmp/openshift/build-rpm-release/rpm/BUILD/origin-3.9.0/_output/local/go/src/github.com/openshift/origin/test/extended/deployments/deployments.go:794

I don't know if we have tests in kube CI for log streaming... the ones I see appear to timeout and restart, so would eventually pick up all logs from the pod when the pod exited.

To recreate/make progress, I think I would look to craft a streaming log test that did the following:

  • craft a pod that blocks until it gets a signal, then produces multiple lines of predictable output, then pauses, then exits
  • start the pod
  • wait until it is running
  • start a log streamer (like kubelet_test does: podClient.GetLogs(podName, &v1.PodLogOptions{}).Stream())
  • give the pod the signal to continue
  • verify the expected output is received by the stream prior to pod exit

that would ensure the content is actually getting flushed through the pod->CRI->kubelet->apiserver->client pipeline, even with gzip on.

@fejta-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Aug 12, 2018
@fejta-bot
Copy link

Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle rotten

@k8s-ci-robot k8s-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Sep 11, 2018
@ru-it-specialist
Copy link

Before enabled default 'true' for APIResponseCompression feature flag --- need to fix this:
#54205

@ru-it-specialist
Copy link

/remove-lifecycle rotten

@k8s-ci-robot k8s-ci-robot removed the lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. label Oct 8, 2018
@liggitt
Copy link
Member

liggitt commented Nov 1, 2018

/lifecycle frozen

@k8s-ci-robot k8s-ci-robot added the lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. label Nov 1, 2018
@liggitt
Copy link
Member

liggitt commented May 28, 2019

closing in favor of #77449

/close

@k8s-ci-robot
Copy link
Contributor

@liggitt: Closed this PR.

In response to this:

closing in favor of #77449

/close

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. release-note Denotes a PR that will be considered when it comes time to generate release notes. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.