Skip to content

Conversation

frankbu
Copy link
Contributor

@frankbu frankbu commented Mar 9, 2018

These rules are additive so this PR can be safely merged without affecting tasks or e2e tests which will be updated in subsequent PRs.

@frankbu frankbu requested a review from a team March 9, 2018 19:42
@istio-merge-robot
Copy link

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
We suggest the following additional approver: hklai

Assign the PR to them by writing /assign @hklai in a comment when ready.

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

@frankbu
Copy link
Contributor Author

frankbu commented Mar 9, 2018

/retest

Copy link
Member

@rshriram rshriram left a comment

Choose a reason for hiding this comment

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

cc @christian-posta - These are the new route rule formats.. PTAL and let others know as well.

@@ -0,0 +1,103 @@
apiVersion: networking.istio.io/v1alpha3
Copy link
Member

Choose a reason for hiding this comment

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

I would suggest defining the destination rules with the subsets first.. and then define the virtual services. May be even in two separate files (one for all subset definitions, and another for all virtual services)

Copy link
Member

Choose a reason for hiding this comment

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

and nit.. file is virtual-service-..

@@ -0,0 +1,17 @@
apiVersion: networking.istio.io/v1alpha3
Copy link
Member

Choose a reason for hiding this comment

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

nit.. file is destination-rule-..

subsets:
- name: v2
labels:
version: v2
Copy link
Member

Choose a reason for hiding this comment

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

We need both old and new subsets here.. i mean v1 and v2. For this purpose, I suggest we define all subsets in one file..

subsets:
- name: v3
labels:
version: v3
Copy link
Member

Choose a reason for hiding this comment

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

We don't need this right? Coz you defined the subsets earlier.

Copy link
Member

@rshriram rshriram left a comment

Choose a reason for hiding this comment

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

There are some changes needed for the destination rule..

@frankbu
Copy link
Contributor Author

frankbu commented Mar 9, 2018

@rshriram all of your review comments revolve around a decision that I made and intentionally adhered to. I'm open to reconsider and do it differently, but here is my rational for why it's the way it is.

  1. These are the files that are used for the documented tasks, all of which should be able to work standalone (i.e, no dependency on running other previous tasks).
  2. I wanted to keep the task instructions as unchanged as possible, so that people that have seen the old versions wouldn't be too shocked by the change.
  3. I intentionally left the yaml file names unchanged (e.g., route-rule-xxx.yaml instead of changing to virtual-service-xxx.yaml, to emphasize that even though the type of the configuration resource has changed, the file contains the same configuration as before (e.g., the route rules).
  4. For the above reasons, I also included in each yaml file only (and exactly) the things needed for the purpose of that particular configuration. That's why they have both the VirtualService and corresponding DestinationRule, and only the subsets needed for that configuration of the VirtualService, instead of relying on some other DestinationRule that includes all the subsets.

So that said, I am open to redoing the tasks in a different way, but I thought that as a first step it would be best to just try to introduce the new model with as little change to the samples as possible.

I think a blog and/or concept doc to explain the underlying api differences, rational, and to help people start to think about routing configuration in the new way, will be needed.

If anybody else has thoughts on this, please chime in.

@frankbu
Copy link
Contributor Author

frankbu commented Mar 9, 2018

Here is the corresponding doc PR: istio/istio.io#1067

@rshriram
Copy link
Member

So these are all valid points. My concern is that people take this as illustrative example and will follow it . I.e., keep redefining destination rules or end up creating multiple destination rules for the same service, and be confused by the resulting error.

This is in some sense a fundamental change. Declare you subsets apriori before using them - this needs to come out clearly in blogs/docs. And since we are not using Envoy ADS yet, we are going to ask users to stage changes to route rules to avoid 404s (when creating/deleting subsets). The way the configuration is structured today, there is a good chance that people will see 404s (because virtual service specification reached before the destination rule, or because the destination rule deleted a cluster that is being referred to by a virtual service).

This is the flow I was thinking:

  • Subsets must be declared in the destination rule apriori.
  • Envoy clusters will be formed for each subset declared in the destination rule even if they are not used
  • VirtualServices using the clusters must be supplied a minute or two after defining the subset
  • When removing subsets, the virtual service must be updated first, followed by changes in the destination rule.
  • When renaming subsets, follow the make-before-break : create the new subset (copy of old subset with new name), update the virtual service spec, then delete the destination rule.

With bookinfo example, we don't have to delete any subset. But we can simply pre-declare all subsets so that the virtual service can change happily.

@codecov
Copy link

codecov bot commented Mar 12, 2018

Codecov Report

Merging #4150 into master will increase coverage by 3%.
The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff            @@
##           master   #4150     +/-   ##
========================================
+ Coverage      73%     76%     +3%     
========================================
  Files         313     297     -16     
  Lines       28807   27002   -1805     
========================================
- Hits        20905   20404    -501     
+ Misses       6584    5285   -1299     
+ Partials     1318    1313      -5
Impacted Files Coverage Δ
security/pkg/workload/config.go 0% <0%> (-100%) ⬇️
pkg/version/cobra.go 0% <0%> (-100%) ⬇️
security/pkg/workload/secretserver.go 0% <0%> (-100%) ⬇️
security/pkg/cmd/probe.go 0% <0%> (-62%) ⬇️
pilot/pkg/proxy/envoy/v2/mesh_discovery.go 4% <0%> (-51%) ⬇️
pkg/version/version.go 54% <0%> (-46%) ⬇️
security/pkg/pki/util/keycertbundle.go 60% <0%> (-40%) ⬇️
mixer/adapter/noop/noop.go 50% <0%> (-34%) ⬇️
mixer/adapter/list/regexList.go 69% <0%> (-31%) ⬇️
security/pkg/registry/registry.go 71% <0%> (-29%) ⬇️
... and 79 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 053300f...3b76217. Read the comment docs.

@frankbu
Copy link
Contributor Author

frankbu commented Mar 12, 2018

@rshriram Good point about the 404s. I declared all the subsets up front, in the route-rule-all yaml.

- destination:
name: productpage
subset: v1
weight: 100
Copy link
Member

Choose a reason for hiding this comment

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

I think weight is optional if its 100.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

yes it is optional but people seem to like to see it explicitly so I added it in the examples. That said, I'm also OK with leaving it out if you feel strongly about it. It is a lot of unnecessary noise.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I removed the unnecessary weight fields.

name: reviews-destination
trafficPolicy:
loadBalancer:
simple: RANDOM
Copy link
Member

Choose a reason for hiding this comment

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

This is also optional isn't it?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Actually ROUND_ROBIN is the documented default: https://github.com/istio/api/blob/ac6b6fef5693dce7c2cda71a18aefb4c07fb6af9/networking/v1alpha3/destination_rule.proto#L195

I'm not exactly sure where this yaml file is actually used, but I think it's meant to be an example of how to change the loadbalancer policy for a service.

version: v2
- name: v3
labels:
version: v3
Copy link
Member

Choose a reason for hiding this comment

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

isn't this a duplicate of the destination-policy-reviews-... ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It's an example resource to change the loadbalancing policy ... unfortunately you can't currently patch in the changes, so you need to duplicate the subset part and use istioctl replace ....

- name: v1
labels:
version: v1
---
Copy link
Member

Choose a reason for hiding this comment

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

where is details v2?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Good catch, I missed that one.

Copy link
Member

@rshriram rshriram left a comment

Choose a reason for hiding this comment

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

I guess my point is that we can have one file that declares all the destination services and their subsets, since we don't have much in the tutorials to do with destination rules.

Then the individual files can have just the virtualservice spec.

@frankbu
Copy link
Contributor Author

frankbu commented Mar 12, 2018

Well, since every task starts by applying route-rule-all-v1.yaml and then goes from there, I just added all DestinationRules in there. The alternative is to put them in another yaml file destination-rule-all.yaml and add another "before you begin" step in every task.

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: productpage-route
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe just call it productpage? This is really an extension to Service definition, so it makes sense to match the names.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Good point. Currently I'm using the convention <service-name>-route for VirtualService and <service-name>-destination for the corresponding DestinationRule. If I take your suggestion, what do you think would be a better name for the DestinationRule? I'm thinking maybe <service-name>-rule or <service-name>-policy.

Copy link
Contributor

Choose a reason for hiding this comment

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

If the idea is to have a single destination rule per service, then it also makes sense to call them by the service name.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Works for me. Done.

- headers:
cookie:
regex: "^(.*?;)?(user=jason)(;.*)?$"
fault:
Copy link
Contributor

Choose a reason for hiding this comment

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

We were thinking to disable faults for this version of v1alpha3 Virtual Service. The issue is upstream, due to how faults associate themselves with the upstream cluster rather than individual routes. What should we do instead? cc @rshriram

Copy link
Contributor Author

Choose a reason for hiding this comment

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

There are several tasks in the docs that set delays (e.g., https://github.com/istio/istio.github.io/blob/599930db27aac1edc001dda886640e4df922c9d2/_docs/tasks/traffic-management/fault-injection.md).

Would the v1alpha1 rules still work? If so, I guess we could leave those tasks using v1alpha1 for now.

Copy link
Contributor

Choose a reason for hiding this comment

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

Yes, but I'm not sure how the two are going to interplay. I'm not sure about the merge semantics between the two sets of rules, e.g. how does precedence work with the virtual service routes.

Copy link
Member

Choose a reason for hiding this comment

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

I am working to get it enabled ASAP

@istio-testing
Copy link
Collaborator

istio-testing commented Mar 13, 2018

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

Test name Commit Details Rerun command
prow/istio-pilot-e2e.sh 3b76217 link /test istio-pilot-e2e

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.

@frankbu frankbu merged commit d5451ee into master Mar 13, 2018
vadimeisenbergibm added a commit to vadimeisenbergibm/istio that referenced this pull request Apr 3, 2018
under v1alpha2 directory, to be removed once v1alpha2 will be removed
restore v1alpa3 from istio#4150
PiotrSikora added a commit to PiotrSikora/istio that referenced this pull request Aug 15, 2018
Pulling the following changes from github.com/istio/proxy:

7a0fca9 Update Envoy SHA to latest with LcTrie optimizations (release-1.0). (istio#1919)
d93f0fe Fix macOS build on CircleCI (release-1.0). (istio#1921)

Pulling the following changes from github.com/envoyproxy/envoy:

73bd3d95c http_filter: add addEncodedTrailers and addDecodedTrailers (istio#3980)
c3652aad5 rbac/fuzz: fix build (istio#4150)
07bc27c05 fix flaky RBAC integration test. (istio#4147)
b150d61a9 header_map: copy constructor for HeaderMapImpl. (istio#4129)
f345c8b23 test: moving websocket tests to using HTTP codec. (istio#4143)
da500d20f upstream: init host hc value based on hc value from other priorities (istio#3959)
da6194b94 test: add tests for corner-cases around sending requests before run() starts or after run() ends. (istio#4114)
3527f7799 perf: reduce the memory usage of LC Trie construction (istio#4117)
b538e46d8 test: moving redundant code in websocket_integration_test to utilities (istio#4127)
a3c55bf7b test: make YamlLoadFromStringFail less picky about error msg. (istio#4141)
c283439b6 rbac: add rbac network filter. (istio#4083)
5a7152d21 fuzz: route lookup and header finalization fuzzer. (istio#4116)
589467360 Set content-type and content-length (istio#4113)
714ae130a fault: use FractionalPercent for percent (istio#3978)
fde378705 test: Fix inverted exact match logic in IntegrationTcpClient::waitForData() (istio#4134)
794a00126 Added cluster_name to load assignment config for static cluster (istio#4123)
19f51e5e1 ssl: refactor ContextConfig to use TlsCertificateConfig (istio#4115)
0a4bffc5a syscall: refactor OsSysCalls for deeper errno latching (istio#4111)
ec0d98e5e thrift_proxy: fix oneway bugs (istio#4025)
1381673ad Do not crash when converting YAML to JSON fails (istio#4110)
2662bf1f2 config: allow unknown fields flag (take 2) (istio#4096)
1ab839c1f Use a jittered backoff strategy for handling HdsDelegate stream/connection failures (istio#4108)
7309c14cf bazel: use GCS remote cache (istio#4050)
5fe4e14f0 Add thread local cache of overload action states (istio#4090)
3bb7fbc5f Added TCP healthcheck capabilities to the HdsDelegate (istio#4079)
98037ed37 secret: add secret provider interface and use it for TlsCertificates (istio#4086)
3e15c9490 upstream: allow custom extension protocol options (istio#4098)
9b33c49d1 Rename message types in hds.proto to improve readability (istio#4109)
bb70b42bb fuzz: router header formatter/parser fuzz test. (istio#4105)
fe57f6b33 fuzz: http parsing utility fuzzer. (istio#4107)
73dfedc95 ci: link ninja-buid to ninja for centos (istio#4106)
1cd509ef1 docs: add curl to Ubuntu deps (istio#4104)
45b900829 Handling updates from the management server on HDS (istio#4077)
510994c6a Don't use SIGTERM for admin /quitquitquit, just shut down directly. (istio#4099)
29b60291e fuzz: access log formatter fuzz test. (istio#4102)
765cac42f Destroy pending updates when updating a cluster (istio#4084)
aafdf6037 authz_client_fix: fixed ext_authz http client when request contains content-length greater than 0 (istio#3888)
22ae0ab93 HttpConnectionManager and upstream counters for total completed requests (istio#3995)
04616d676  tcp_proxy: convert TCP proxy to use TCP connection pool (istio#4067)
e759eab17 buffer: add prepend functions to Buffer::Instance (istio#4064)
14baa40ea fuzz: h1_capture_fuzz with direct response (istio#3787)
d47365a9a Per endpoint load report (istio#4044)
70e9878ed Fix bug in `HostSetImpl::chooseLocality()` (istio#4061)
797e82484 deps: update gRPC to 1.14.0 (istio#4047)
628730666 Remove std::string cast in upstream impl lib and tests. (istio#4080)
33ab6ddac bot: exempt label "no stalebot" for PRs (istio#4081)
699c008d6 Absl string view to std string in dynamic metadata (istio#4078)
e9dc1090e collect metrics for RBAC shadow policy (istio#4062)
e9d81e179 Combine query-params into admin API's path, with API access from MainCommon sinking to main thread (istio#4059)
fccaeade9 Revert "Revert "Basic Implementation of HDS (istio#3973)" (istio#4063)" (istio#4068)
e96d4a6c4 http: fix upstream_rq stat increment  (istio#4055)
14140ad83 Add overload manager to bootstrap config (istio#4038)
b14dee5ee thrift_proxy: introduce MessageMetadata to track message headers and other metadata (istio#3991)
9ee2b2759 authz: correct stat names (istio#4074)
c68063c05 Stats interface atomization (istio#4071)
82e3541b0 docs: fix incorrect doc about cluster warming in CDS (istio#4040)
3868326bd Support ListValue for metadata matcher (istio#3964)
4e5258953 Revert "Basic Implementation of HDS (istio#3973)" (istio#4063)
f3b0f8580 Basic Implementation of HDS (istio#3973)
7b03f2ef5 tracing: Fixes issue with small LightStep reports. (istio#3989)
fd517b356 request_info: initial implementation of dynamic metadata object (istio#3918)
d5bbd1e0c Ability to specify a test or a test group when building with docker release (istio#4030)
a1c646102 Remove stats_impl.h (istio#4057)
7bf713a93 fuzz: H2 codec fuzzer. (istio#4017)
a614808b9 upstream: fix typo (s/lb_type/lb_policy/g) in previous commit. (istio#4051)
346059548 upstream: require opt-in for the x-envoy-original-dst-host header. (istio#4046)
f2c9652a9 owners: add Dhi is maintainer (istio#4042)
6a1868dff Revert "tcp_proxy: convert TCP proxy to use TCP connection pool (istio#3938)" (istio#4043)
cc3657797 docs: document request_timeout in version_history (istio#4041)
a3364380a rest-api: make request timeout configurable (istio#4006)
fa628c44e logging: optional details for ASSERT (istio#3934)
55606ec3f bump abseil-cpp commit (istio#4034)
4c3219c0c owners: promote Stephan and Greg to senior maintainer! (istio#4039)
ddd661ac0 hot restarter: Log errno for 'panic: cannot open shared memory' error (istio#4032)
cb3356fc5 Sds: Ssl socket factory owns ContextConfig (istio#4028)
9bc047226 Refactor TransportSocketFactoryContext and Cluster interfaces. (istio#4026)
f8f21c26d Rename duplicated ads integration test case name (istio#4035)
02281809b fix duplicate listeners in lds response (istio#4029)
61421bddf upstream: fix duplicate clusters (istio#4012)
1f1166167 split up stats_impl_test to match the *impl.h and and *impl.cc files. (istio#4024)
5ec8b37da Remove "DO NOT SUBMIT" comment. (istio#4020)
882c49832 Add more information to errors about rejected cipher suite configuration. (istio#4019)
ffc8258e5 Rename common/stats/stats_impl.* to common/stats/source_impl.* and fix refs (istio#4021)
891135e38 Fix overload manager unit test build (istio#4022)
c2f204cc7 Add stats for overload manager (istio#4001)
aec92237a remove unused variables (istio#4013)
e999cfacc Re-order functions in stats_impl to group classes together (istio#4004)
d5805b171 typos (istio#4009)
aeb3f2875 Fix perf_annotation_test compilation under gcc 8.1.1 (istio#4000)
da3c1eaf8 test/mock: Add 3 new gmock matchers (istio#3972)
6a8b84384 test: Add timeouts to methods that could wait forever in test/integration/fake_upstream.h. (istio#3936)
d0f10faff HeapStatData with a distinct allocation mechanism for RawStatData (istio#3710)
2012c3e4c rds: make RouteConfigProvider unique_ptr (istio#3967)
62441f9fe Add option for merging cluster updates (istio#3941)
eb5ea98ff fuzz: fixes oss-fuzz: 9599, 9600 (istio#3979)
b27068bd0 listener: add socket api in os sys calls for additional tests (istio#3968)
83b9e2da8 Add overload manager for Envoy (istio#3954)
f0ca75415 Fix prometheus typo. (istio#3999)
028387a3b tcp_proxy: convert TCP proxy to use TCP connection pool (istio#3938)
f882e74dc syscall: use Api::SysCallResult in buffer impl (istio#3976)
7d61b0017 fuzz: fixes oss-fuzz: 9621 (istio#3988)
dc03a9a41 docs: fix grammar errors (istio#3983)
ed131cfa9 docs: minor typo and grammar fixups (istio#3984)
08fadcc41 http: fix segfault when idle timer fires before request headers received. (istio#3970)
8b9fd9aa7 Refactor setSocketOption for better errno latching (istio#3915)
6b65dbe3a Change drop_percentage to FractionalPercent (istio#3974)
f28dc53f4 Remove deprecated handling of mutating admin requests from GET. (istio#3975)
324e628b7 syscall: refactor address APIs for deeper errno latching (istio#3897)

Fixes istio#7710, fixes istio#7817, and hopefully fixes istio#7759.

Signed-off-by: Piotr Sikora <piotrsikora@google.com>
costinm pushed a commit that referenced this pull request Aug 16, 2018
* Update Envoy SHA to latest (release-1.0).

Pulling the following changes from github.com/istio/proxy:

7a0fca9 Update Envoy SHA to latest with LcTrie optimizations (release-1.0). (#1919)
d93f0fe Fix macOS build on CircleCI (release-1.0). (#1921)

Pulling the following changes from github.com/envoyproxy/envoy:

73bd3d95c http_filter: add addEncodedTrailers and addDecodedTrailers (#3980)
c3652aad5 rbac/fuzz: fix build (#4150)
07bc27c05 fix flaky RBAC integration test. (#4147)
b150d61a9 header_map: copy constructor for HeaderMapImpl. (#4129)
f345c8b23 test: moving websocket tests to using HTTP codec. (#4143)
da500d20f upstream: init host hc value based on hc value from other priorities (#3959)
da6194b94 test: add tests for corner-cases around sending requests before run() starts or after run() ends. (#4114)
3527f7799 perf: reduce the memory usage of LC Trie construction (#4117)
b538e46d8 test: moving redundant code in websocket_integration_test to utilities (#4127)
a3c55bf7b test: make YamlLoadFromStringFail less picky about error msg. (#4141)
c283439b6 rbac: add rbac network filter. (#4083)
5a7152d21 fuzz: route lookup and header finalization fuzzer. (#4116)
589467360 Set content-type and content-length (#4113)
714ae130a fault: use FractionalPercent for percent (#3978)
fde378705 test: Fix inverted exact match logic in IntegrationTcpClient::waitForData() (#4134)
794a00126 Added cluster_name to load assignment config for static cluster (#4123)
19f51e5e1 ssl: refactor ContextConfig to use TlsCertificateConfig (#4115)
0a4bffc5a syscall: refactor OsSysCalls for deeper errno latching (#4111)
ec0d98e5e thrift_proxy: fix oneway bugs (#4025)
1381673ad Do not crash when converting YAML to JSON fails (#4110)
2662bf1f2 config: allow unknown fields flag (take 2) (#4096)
1ab839c1f Use a jittered backoff strategy for handling HdsDelegate stream/connection failures (#4108)
7309c14cf bazel: use GCS remote cache (#4050)
5fe4e14f0 Add thread local cache of overload action states (#4090)
3bb7fbc5f Added TCP healthcheck capabilities to the HdsDelegate (#4079)
98037ed37 secret: add secret provider interface and use it for TlsCertificates (#4086)
3e15c9490 upstream: allow custom extension protocol options (#4098)
9b33c49d1 Rename message types in hds.proto to improve readability (#4109)
bb70b42bb fuzz: router header formatter/parser fuzz test. (#4105)
fe57f6b33 fuzz: http parsing utility fuzzer. (#4107)
73dfedc95 ci: link ninja-buid to ninja for centos (#4106)
1cd509ef1 docs: add curl to Ubuntu deps (#4104)
45b900829 Handling updates from the management server on HDS (#4077)
510994c6a Don't use SIGTERM for admin /quitquitquit, just shut down directly. (#4099)
29b60291e fuzz: access log formatter fuzz test. (#4102)
765cac42f Destroy pending updates when updating a cluster (#4084)
aafdf6037 authz_client_fix: fixed ext_authz http client when request contains content-length greater than 0 (#3888)
22ae0ab93 HttpConnectionManager and upstream counters for total completed requests (#3995)
04616d676  tcp_proxy: convert TCP proxy to use TCP connection pool (#4067)
e759eab17 buffer: add prepend functions to Buffer::Instance (#4064)
14baa40ea fuzz: h1_capture_fuzz with direct response (#3787)
d47365a9a Per endpoint load report (#4044)
70e9878ed Fix bug in `HostSetImpl::chooseLocality()` (#4061)
797e82484 deps: update gRPC to 1.14.0 (#4047)
628730666 Remove std::string cast in upstream impl lib and tests. (#4080)
33ab6ddac bot: exempt label "no stalebot" for PRs (#4081)
699c008d6 Absl string view to std string in dynamic metadata (#4078)
e9dc1090e collect metrics for RBAC shadow policy (#4062)
e9d81e179 Combine query-params into admin API's path, with API access from MainCommon sinking to main thread (#4059)
fccaeade9 Revert "Revert "Basic Implementation of HDS (#3973)" (#4063)" (#4068)
e96d4a6c4 http: fix upstream_rq stat increment  (#4055)
14140ad83 Add overload manager to bootstrap config (#4038)
b14dee5ee thrift_proxy: introduce MessageMetadata to track message headers and other metadata (#3991)
9ee2b2759 authz: correct stat names (#4074)
c68063c05 Stats interface atomization (#4071)
82e3541b0 docs: fix incorrect doc about cluster warming in CDS (#4040)
3868326bd Support ListValue for metadata matcher (#3964)
4e5258953 Revert "Basic Implementation of HDS (#3973)" (#4063)
f3b0f8580 Basic Implementation of HDS (#3973)
7b03f2ef5 tracing: Fixes issue with small LightStep reports. (#3989)
fd517b356 request_info: initial implementation of dynamic metadata object (#3918)
d5bbd1e0c Ability to specify a test or a test group when building with docker release (#4030)
a1c646102 Remove stats_impl.h (#4057)
7bf713a93 fuzz: H2 codec fuzzer. (#4017)
a614808b9 upstream: fix typo (s/lb_type/lb_policy/g) in previous commit. (#4051)
346059548 upstream: require opt-in for the x-envoy-original-dst-host header. (#4046)
f2c9652a9 owners: add Dhi is maintainer (#4042)
6a1868dff Revert "tcp_proxy: convert TCP proxy to use TCP connection pool (#3938)" (#4043)
cc3657797 docs: document request_timeout in version_history (#4041)
a3364380a rest-api: make request timeout configurable (#4006)
fa628c44e logging: optional details for ASSERT (#3934)
55606ec3f bump abseil-cpp commit (#4034)
4c3219c0c owners: promote Stephan and Greg to senior maintainer! (#4039)
ddd661ac0 hot restarter: Log errno for 'panic: cannot open shared memory' error (#4032)
cb3356fc5 Sds: Ssl socket factory owns ContextConfig (#4028)
9bc047226 Refactor TransportSocketFactoryContext and Cluster interfaces. (#4026)
f8f21c26d Rename duplicated ads integration test case name (#4035)
02281809b fix duplicate listeners in lds response (#4029)
61421bddf upstream: fix duplicate clusters (#4012)
1f1166167 split up stats_impl_test to match the *impl.h and and *impl.cc files. (#4024)
5ec8b37da Remove "DO NOT SUBMIT" comment. (#4020)
882c49832 Add more information to errors about rejected cipher suite configuration. (#4019)
ffc8258e5 Rename common/stats/stats_impl.* to common/stats/source_impl.* and fix refs (#4021)
891135e38 Fix overload manager unit test build (#4022)
c2f204cc7 Add stats for overload manager (#4001)
aec92237a remove unused variables (#4013)
e999cfacc Re-order functions in stats_impl to group classes together (#4004)
d5805b171 typos (#4009)
aeb3f2875 Fix perf_annotation_test compilation under gcc 8.1.1 (#4000)
da3c1eaf8 test/mock: Add 3 new gmock matchers (#3972)
6a8b84384 test: Add timeouts to methods that could wait forever in test/integration/fake_upstream.h. (#3936)
d0f10faff HeapStatData with a distinct allocation mechanism for RawStatData (#3710)
2012c3e4c rds: make RouteConfigProvider unique_ptr (#3967)
62441f9fe Add option for merging cluster updates (#3941)
eb5ea98ff fuzz: fixes oss-fuzz: 9599, 9600 (#3979)
b27068bd0 listener: add socket api in os sys calls for additional tests (#3968)
83b9e2da8 Add overload manager for Envoy (#3954)
f0ca75415 Fix prometheus typo. (#3999)
028387a3b tcp_proxy: convert TCP proxy to use TCP connection pool (#3938)
f882e74dc syscall: use Api::SysCallResult in buffer impl (#3976)
7d61b0017 fuzz: fixes oss-fuzz: 9621 (#3988)
dc03a9a41 docs: fix grammar errors (#3983)
ed131cfa9 docs: minor typo and grammar fixups (#3984)
08fadcc41 http: fix segfault when idle timer fires before request headers received. (#3970)
8b9fd9aa7 Refactor setSocketOption for better errno latching (#3915)
6b65dbe3a Change drop_percentage to FractionalPercent (#3974)
f28dc53f4 Remove deprecated handling of mutating admin requests from GET. (#3975)
324e628b7 syscall: refactor address APIs for deeper errno latching (#3897)

Fixes #7710, fixes #7817, and hopefully fixes #7759.

Signed-off-by: Piotr Sikora <piotrsikora@google.com>

* reivew: fix for duplicate clusters (backported from master).

Signed-off-by: Piotr Sikora <piotrsikora@google.com>

* review: disable broken tests (backported from master).

Signed-off-by: Piotr Sikora <piotrsikora@google.com>
PiotrSikora added a commit to PiotrSikora/istio that referenced this pull request Aug 21, 2018
Pulling the following changes from github.com/istio/proxy:

1fc6253 add debug logs for collecting rbac attributes (istio#1922)
c5282b6 Update Envoy SHA to latest with LcTrie optimizations. (istio#1918)
4ced9e7 Update clang to 6.0 and use it for release binaries. (istio#1914)
585abec fixed broken links to dev guide and contribution guide (istio#1913)
c63d841 Provide source version information in the binary. (istio#1915)
b49589a Install clang-format in the build image used by CircleCI. (istio#1917)
5d42471 Fix macOS build on CircleCI. (istio#1916)
b1f4e7e add rbac filter to istio http integration test. (istio#1907)

Pulling the following changes from github.com/envoyproxy/envoy:

73bd3d95c http_filter: add addEncodedTrailers and addDecodedTrailers (istio#3980)
c3652aad5 rbac/fuzz: fix build (istio#4150)
07bc27c05 fix flaky RBAC integration test. (istio#4147)
b150d61a9 header_map: copy constructor for HeaderMapImpl. (istio#4129)
f345c8b23 test: moving websocket tests to using HTTP codec. (istio#4143)
da500d20f upstream: init host hc value based on hc value from other priorities (istio#3959)
da6194b94 test: add tests for corner-cases around sending requests before run() starts or after run() ends. (istio#4114)
3527f7799 perf: reduce the memory usage of LC Trie construction (istio#4117)
b538e46d8 test: moving redundant code in websocket_integration_test to utilities (istio#4127)
a3c55bf7b test: make YamlLoadFromStringFail less picky about error msg. (istio#4141)
c283439b6 rbac: add rbac network filter. (istio#4083)
5a7152d21 fuzz: route lookup and header finalization fuzzer. (istio#4116)
589467360 Set content-type and content-length (istio#4113)
714ae130a fault: use FractionalPercent for percent (istio#3978)
fde378705 test: Fix inverted exact match logic in IntegrationTcpClient::waitForData() (istio#4134)
794a00126 Added cluster_name to load assignment config for static cluster (istio#4123)
19f51e5e1 ssl: refactor ContextConfig to use TlsCertificateConfig (istio#4115)
0a4bffc5a syscall: refactor OsSysCalls for deeper errno latching (istio#4111)
ec0d98e5e thrift_proxy: fix oneway bugs (istio#4025)
1381673ad Do not crash when converting YAML to JSON fails (istio#4110)
2662bf1f2 config: allow unknown fields flag (take 2) (istio#4096)
1ab839c1f Use a jittered backoff strategy for handling HdsDelegate stream/connection failures (istio#4108)
7309c14cf bazel: use GCS remote cache (istio#4050)
5fe4e14f0 Add thread local cache of overload action states (istio#4090)
3bb7fbc5f Added TCP healthcheck capabilities to the HdsDelegate (istio#4079)
98037ed37 secret: add secret provider interface and use it for TlsCertificates (istio#4086)
3e15c9490 upstream: allow custom extension protocol options (istio#4098)
9b33c49d1 Rename message types in hds.proto to improve readability (istio#4109)
bb70b42bb fuzz: router header formatter/parser fuzz test. (istio#4105)
fe57f6b33 fuzz: http parsing utility fuzzer. (istio#4107)
73dfedc95 ci: link ninja-buid to ninja for centos (istio#4106)
1cd509ef1 docs: add curl to Ubuntu deps (istio#4104)
45b900829 Handling updates from the management server on HDS (istio#4077)
510994c6a Don't use SIGTERM for admin /quitquitquit, just shut down directly. (istio#4099)
29b60291e fuzz: access log formatter fuzz test. (istio#4102)
765cac42f Destroy pending updates when updating a cluster (istio#4084)
aafdf6037 authz_client_fix: fixed ext_authz http client when request contains content-length greater than 0 (istio#3888)
22ae0ab93 HttpConnectionManager and upstream counters for total completed requests (istio#3995)
04616d676  tcp_proxy: convert TCP proxy to use TCP connection pool (istio#4067)
e759eab17 buffer: add prepend functions to Buffer::Instance (istio#4064)

Fixes istio#7710, fixes istio#7817, and hopefully fixes istio#7759.

Signed-off-by: Piotr Sikora <piotrsikora@google.com>
istio-testing pushed a commit that referenced this pull request Aug 22, 2018
Pulling the following changes from github.com/istio/proxy:

1fc6253 add debug logs for collecting rbac attributes (#1922)
c5282b6 Update Envoy SHA to latest with LcTrie optimizations. (#1918)
4ced9e7 Update clang to 6.0 and use it for release binaries. (#1914)
585abec fixed broken links to dev guide and contribution guide (#1913)
c63d841 Provide source version information in the binary. (#1915)
b49589a Install clang-format in the build image used by CircleCI. (#1917)
5d42471 Fix macOS build on CircleCI. (#1916)
b1f4e7e add rbac filter to istio http integration test. (#1907)

Pulling the following changes from github.com/envoyproxy/envoy:

73bd3d95c http_filter: add addEncodedTrailers and addDecodedTrailers (#3980)
c3652aad5 rbac/fuzz: fix build (#4150)
07bc27c05 fix flaky RBAC integration test. (#4147)
b150d61a9 header_map: copy constructor for HeaderMapImpl. (#4129)
f345c8b23 test: moving websocket tests to using HTTP codec. (#4143)
da500d20f upstream: init host hc value based on hc value from other priorities (#3959)
da6194b94 test: add tests for corner-cases around sending requests before run() starts or after run() ends. (#4114)
3527f7799 perf: reduce the memory usage of LC Trie construction (#4117)
b538e46d8 test: moving redundant code in websocket_integration_test to utilities (#4127)
a3c55bf7b test: make YamlLoadFromStringFail less picky about error msg. (#4141)
c283439b6 rbac: add rbac network filter. (#4083)
5a7152d21 fuzz: route lookup and header finalization fuzzer. (#4116)
589467360 Set content-type and content-length (#4113)
714ae130a fault: use FractionalPercent for percent (#3978)
fde378705 test: Fix inverted exact match logic in IntegrationTcpClient::waitForData() (#4134)
794a00126 Added cluster_name to load assignment config for static cluster (#4123)
19f51e5e1 ssl: refactor ContextConfig to use TlsCertificateConfig (#4115)
0a4bffc5a syscall: refactor OsSysCalls for deeper errno latching (#4111)
ec0d98e5e thrift_proxy: fix oneway bugs (#4025)
1381673ad Do not crash when converting YAML to JSON fails (#4110)
2662bf1f2 config: allow unknown fields flag (take 2) (#4096)
1ab839c1f Use a jittered backoff strategy for handling HdsDelegate stream/connection failures (#4108)
7309c14cf bazel: use GCS remote cache (#4050)
5fe4e14f0 Add thread local cache of overload action states (#4090)
3bb7fbc5f Added TCP healthcheck capabilities to the HdsDelegate (#4079)
98037ed37 secret: add secret provider interface and use it for TlsCertificates (#4086)
3e15c9490 upstream: allow custom extension protocol options (#4098)
9b33c49d1 Rename message types in hds.proto to improve readability (#4109)
bb70b42bb fuzz: router header formatter/parser fuzz test. (#4105)
fe57f6b33 fuzz: http parsing utility fuzzer. (#4107)
73dfedc95 ci: link ninja-buid to ninja for centos (#4106)
1cd509ef1 docs: add curl to Ubuntu deps (#4104)
45b900829 Handling updates from the management server on HDS (#4077)
510994c6a Don't use SIGTERM for admin /quitquitquit, just shut down directly. (#4099)
29b60291e fuzz: access log formatter fuzz test. (#4102)
765cac42f Destroy pending updates when updating a cluster (#4084)
aafdf6037 authz_client_fix: fixed ext_authz http client when request contains content-length greater than 0 (#3888)
22ae0ab93 HttpConnectionManager and upstream counters for total completed requests (#3995)
04616d676  tcp_proxy: convert TCP proxy to use TCP connection pool (#4067)
e759eab17 buffer: add prepend functions to Buffer::Instance (#4064)

Fixes #7710, fixes #7817, and hopefully fixes #7759.

Signed-off-by: Piotr Sikora <piotrsikora@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants