Skip to content

Conversation

mattdelco
Copy link
Contributor

This change tried to make compiles on Mac go more smoothly, though to "test" to completely successfully I'd have to cut mixer, broker, and pilot (none of these pass on my Linux system either, partly due to dependencies on pilot/pkg/kube/config and kubernetes).

In Makefile I set up LOCAL_GOARCH and LOCAL_GOOS based on the currently running system, and then use these as defaults for GOARCH and GOOS. The LOCAL_xxx is then passed to gobuild.sh when building in go/bin (to override its tendency to default to Linux/amd64 for unset vars).

I then got bin/linters.sh to gracefully handle uncustomized paths, and let it fix things it thought were wrong.

pkg/version/version_test.go seems to assume go1.10, so either we should bump up the requirement in the Makefile or change this test to handle the version of go that was used to compile. For now I added an alternate string, with the intention that this permits the current go version and at least one prior.

make complains about a duplicated rule in tests/istio.mk , so I removed one.

@ldemailly
Copy link
Member

so I can type "make" or "make test" (or "make e2e") on a mac and it will make the docker images needed and both the local native binaries and linux docker images without me having to change any env var ? if so 👍 💯 🎉

/lgtm

@mattdelco
Copy link
Contributor Author

"make" (which basically implies "make test") apparently depends on whether you've got k8s installed and configured (I thought the go unit tests were supposed to be standalone but clearly aren't)--in my original change I was tempted to cut mixer, pilot, and broker tests from "make test" on Mac but they don't pass on my Linux system either so I backed off on that.

As for docker, it at least won't get hung up at the generate_cert step--I don't have docker installed on my Mac, but if I turn all the "docker build" commands into "echo"s of same then "make docker" and "make GOOS=linux docker" run to completion on my Mac.

@ldemailly
Copy link
Member

ldemailly commented Mar 16, 2018

I was tempted to cut mixer, pilot, and broker tests from "make test" on Mac

we have some work needed to move tests that aren't unit tests (that require either a real or simulated k8s env) from the real unit tests/self contained/parallelizable ones. but that doesn't mean we shouldn't start trying to have make test pass on a mac, or at least start running some/most tests (afaik mixer tests are split between unit and integration etc)

I don't have docker installed on my Mac

having docker installed isn't an unreasonable requirement, specially when working on istio's build :-)

@kyessenov
Copy link
Contributor

kyessenov commented Mar 16, 2018 via email

@mattdelco
Copy link
Contributor Author

Looks like the linter on Mac doesn't agree with the one in CircleCI, so I'll have to massage that part a bit more before this can be merged.

As for the failures I saw, here's what I initially saw (my lack of certain tools being installed is somewhat intentional, as it helps to make it more obvious when new dependencies are added):

ok  	istio.io/istio/mixer/pkg/config	0.234s
2018-03-16T20:21:13.694968Z	info	Using user home k8s config - might affect real cluster ! Not found:  /Users/delco/istio/go/src/istio.io/istio/mixer/pkg/config/crd/../../../../pilot/pkg/kube/config
--- FAIL: TestGetAPIServerExtensionCACert (0.00s)
	admit_test.go:489: stat /Users/delco/.kube/config: no such file or directory
FAIL
FAIL	istio.io/istio/mixer/pkg/config/crd	1.264s

ok  	istio.io/istio/broker/pkg/model/osb	0.024s
2018-03-16T20:37:20.283155Z	info	using in-cluster configuration
2018-03-16T20:37:20.283203Z	warn	Neither --kubeconfig nor --master was specified.  Using the inClusterConfig.  This might not work.
2018-03-16T20:37:20.283214Z	warn	error creating inClusterConfig, falling back to default config: unable to load in-cluster configuration, KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT must be defined
--- FAIL: TestStoreInvariant (0.00s)
	client_test.go:68: invalid configuration: no configuration has been provided
2018-03-16T20:37:20.283737Z	info	using in-cluster configuration
2018-03-16T20:37:20.283805Z	warn	Neither --kubeconfig nor --master was specified.  Using the inClusterConfig.  This might not work.
2018-03-16T20:37:20.283827Z	warn	error creating inClusterConfig, falling back to default config: unable to load in-cluster configuration, KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT must be defined
--- FAIL: TestBrokerConfig (0.00s)
	client_test.go:68: invalid configuration: no configuration has been provided
FAIL

2018-03-16T22:11:53.207411Z	info	registering for apiVersion config.istio.io/v1alpha2
2018-03-16T22:11:53.207453Z	info	registering CRD "routerules.config.istio.io"
2018-03-16T22:11:53.208734Z	info	Failed to start in-process serverfailed to register custom resources. Post http://localhost:8080/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions: dial tcp [::1]:8080: getsockopt: connection refused
FAIL	istio.io/istio/pilot/pkg/bootstrap	0.187s

2018-03-16T22:12:48.495247Z	info	AdmissionReview for /, Kind=: / response=&AdmissionResponse{UID:,Allowed:false,Result:&k8s_io_apimachinery_pkg_apis_meta_v1.Status{ListMeta:ListMeta{SelfLink:,ResourceVersion:,Continue:,},Status:Failure,Message:configuration is invalid: empty key,Reason:BadRequest,Details:nil,Code:400,},Patch:nil,PatchType:nil,}
2018-03-16T22:12:48.503449Z	info	Using user home k8s config - might affect real cluster ! Not found:  /Users/delco/istio/go/src/istio.io/istio/pilot/pkg/kube/admit/../config
--- FAIL: TestGetAPIServerExtensionCACert (0.00s)
	admit_test.go:456: kubernetes configuration file "/Users/delco/.kube/config" does not exist
FAIL
FAIL	istio.io/istio/pilot/pkg/kube/admit	0.199s

2018-03-16T22:13:18.795167Z	info	Using user home k8s config - might affect real cluster ! Not found:  /Users/delco/istio/go/src/istio.io/istio/pilot/pkg/serviceregistry/kube/config
--- FAIL: TestServices (0.00s)
	controller_test.go:39: kubernetes configuration file "/Users/delco/.kube/config" does not exist


@ldemailly
Copy link
Member

for linters we have to use an image, afaik, to get uniform results

@codecov
Copy link

codecov bot commented Mar 16, 2018

Codecov Report

Merging #4338 into master will decrease coverage by 1%.
The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff           @@
##           master   #4338    +/-   ##
=======================================
- Coverage      73%     73%   -<1%     
=======================================
  Files         297     297            
  Lines       25324   25194   -130     
=======================================
- Hits        18275   18147   -128     
- Misses       6286    6296    +10     
+ Partials      763     751    -12
Impacted Files Coverage Δ
mixer/adapter/solarwinds/metrics_handler.go 75% <0%> (-8%) ⬇️
mixer/adapter/stackdriver/log/log.go 88% <0%> (-4%) ⬇️
security/pkg/server/grpc/authenticator.go 90% <0%> (-1%) ⬇️
mixer/adapter/fluentd/fluentd.go 76% <0%> (-1%) ⬇️
pilot/pkg/serviceregistry/kube/controller.go 67% <0%> (ø) ⬆️
mixer/adapter/stdio/stdio.go 100% <0%> (ø) ⬆️
mixer/adapter/memquota/dedup.go 100% <0%> (ø) ⬆️
mixer/adapter/solarwinds/solarwinds.go 0% <0%> (ø) ⬆️
mixer/adapter/circonus/circonus.go 72% <0%> (+1%) ⬆️
mixer/adapter/kubernetesenv/kubernetesenv.go 69% <0%> (+1%) ⬆️
... and 5 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 d0ddbf5...4d7facc. Read the comment docs.

@istio-merge-robot
Copy link

/lgtm cancel //PR changed after LGTM, removing LGTM. @ldemailly @mattdelco

@ldemailly
Copy link
Member

/lgtm

in BuildInfo
want string
longWant string
longWantAlt string
Copy link
Member

Choose a reason for hiding this comment

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

What is this new field, where does it come from, is there a doc ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Afaict the anonymous struct is only used within this function to compare the output of the function against a hard-coded string. The string is hard-coded for go 1.10, so I made an alternate string that can be matched against to pass the test (in this case a hard-coded string with 1.9.3). I suppose I could go a step further and have this alternate be a generated string that matches the go version. I could just use this generated string without having an alternate but it might defeat the utility of the test (i.e., if the actual code and the test code are using the same string substitution mechanism then I don't think the test provides much value [while then also introducing a shadow implementation to keep consistent with the actual).

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 came up with an alternate implementation that's dynamic yet sufficiently different in implementation to retain some value of the test. I meant to put it on a different branch for comparison but I fat-fingered the push. I think I like the use of runtime.Version() better than what istio is using in the actual code (i.e., -X with bin/get_workspace_status), though I probably need guidance on how to make it look more like go code. The var at the top looks too much like C, but if I stick it in the struct it gets a bit tough to read.

@istio-merge-robot
Copy link

/lgtm cancel //PR changed after LGTM, removing LGTM. @ldemailly @mattdelco

@geeknoid
Copy link
Contributor

/approve

@istio-merge-robot
Copy link

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: geeknoid, ldemailly

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

tests/istio.mk Outdated
@@ -180,22 +180,3 @@ test/minikube/auth/e2e_pilot_alpha1: istioctl
--ns pilot-auth-system \
-n pilot-test \
${TESTOPTS} | tee ${OUT_DIR}/tests/test-report-auth-pilot-v1.raw

Copy link
Contributor

Choose a reason for hiding this comment

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

Why remove this target ? It is used in circle.

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's two of them. Any invocation of make complains:

tests/istio.mk:186: warning: overriding recipe for target 'test/minikube/noauth/e2e_pilot_alpha1'
tests/istio.mk:128: warning: ignoring old recipe for target 'test/minikube/noauth/e2e_pilot_alpha1'

Copy link
Member

@ldemailly ldemailly Mar 20, 2018

Choose a reason for hiding this comment

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

thanks for fixing this @mattdelco - let's merge...

@mattdelco
Copy link
Contributor Author

/test istio-pilot-e2e

@costinm
Copy link
Contributor

costinm commented Mar 17, 2018

AFAIK the plan is for developers to locally run both 'real unit tests' (golden files, no deps) and small tests - requiring an apiserver, but fast.

I don't mind if they are in separate targets - but one way or another you will need an apiserver and etcd.
Louis got the new docker for mac working - which apparently includes an apiserver.

On Linux the tests rely on 'testEnvLocal..' to be run first - not sure how it got removed from the deps of 'test'. AFAIK the tests are passing if this is run first ( circle is calling make test after setting up the local env with same script). I strongly suggest changing that script to point to Louis' docker env on Mac, so
all tests (including those testing k8s registry ) are run.

@mattdelco
Copy link
Contributor Author

AFAICT it looks like the execution of 'testEnvLocal...' was explicitly added to the various CIs. I'm not sure if it got removed from the deps of 'test' so that the CIs have more flexibility in which env to start up first (but if so it seems like 'test' should have been kept simple & standalone for devs and CIs could run something else that skips the setup step). Anyway, I tried to make testEnvLocalK8S.s have better support for Mac but I seem to have hit a roadblock that k8s doesn't seem to ship a compiled kube-apiserver for Mac.

@costinm
Copy link
Contributor

costinm commented Mar 19, 2018 via email

@mattdelco
Copy link
Contributor Author

/test istio-unit-tests

@ldemailly
Copy link
Member

In Makefile I set up LOCAL_GOARCH and LOCAL_GOOS based on the currently running system, and then use these as defaults for GOARCH and GOOS. The LOCAL_xxx is then passed to gobuild.sh when building in go/bin (to override its tendency to default to Linux/amd64 for unset vars).

shouldn't just be the other way around, default is native, except for docker where it must be linux ?
(ignoring the ibm390 docker images for a second)

apiserver

that part should be optional until we have something turnkey

@ldemailly
Copy link
Member

ldemailly commented Mar 20, 2018

I guess my point was that you don't need any variable set at all to do the default go behavior and only when making docker images do we need to use linux (and static etc...) builds
it's back to why is there even a gobuild.sh; there should only be a "dockerbuild.sh" or even better build docker images using docker (like https://github.com/istio/fortio/blob/master/Dockerfile#L36)

@mattdelco
Copy link
Contributor Author

I think bin/gobuild.sh mostly exists to emulate Bazel's get_workspace_status behavior. Both bin/gobuild.sh and bin/get_workspace_status can be ported to Make (ideally with something like the "BUILDINFO" caching behavior that afaik no build/test system has yet adopted). The default to Linux/amd64 in gobuild.sh might be a reflection of some earlier philosophies I've heard expressed that the Makefiles were mostly for release builds/tests (i.e., Linux), and go devs would just use native tools (though I'm not clear on how go tools would have picked up the get_workspace_status functionality).

When native is desired I only explicitly set GOOS/GOARCH when calling gobuild.sh. For other cases (e.g., "go get" or "go install") these parameters are unset (this is probably more evident in the other PR I just made since it downloads more tools).

@ldemailly
Copy link
Member

ldemailly commented Mar 20, 2018

i'd strongly prefer to head in the direction of "make" doing the right thing, without having to workaround bad defaults inside gobuild.sh; I feel like a broken record but afaik only Docker images needs to set any env, and would not even if we were building multi-stage builds like we should be.

but we can do baby steps back to sanity I suppose... or 1 big cleanup... up to you

Copy link
Contributor

@costinm costinm left a comment

Choose a reason for hiding this comment

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

So they do have kubeapiserver builds for mac ? I didn't know this - it simplifies things.

@mattdelco
Copy link
Contributor Author

i'd strongly prefer to head in the direction of "make" doing the right thing, without having to workaround
bad defaults inside gobuild.sh; I feel like a broken record but afaik only Docker images needs to set
any env, and would not even if we were building multi-stage builds like we should be.

I'm not clear if "make doing the right thing" means change gobuild.sh to not default to linux/amd64 (and thus the Makefile wouldn't need to override this). If so, then I'd have in mind to do this separately (possibly by getting rid of gobuild.sh). Otherwise, you'll need to be more explicit about what you had in mind. I think with this current change the invocations of make basically fit people's expectations (i.e. make compiles for the native OS unless you opt-in to cross-compiles), even though the internal means of carrying things out are a bit convoluted.

So they do have kubeapiserver builds for mac ? I didn't know this - it simplifies things.

The apiserver isn't there yet, at least not in the expected bucket (I examined the bucket contents to make sure it wasn't just a matter of change in file name/type convention -- from what I saw the Mac bucket only has a few files in it). I did change part of the kube-apiserver URL from "linux" to "${LOCAL_GOOS}" for the sake of completeness and consistency, but that just means that on Mac bin/testEnvLocalK8S.sh will now fail at trying to download a non-existent file, rather than downloading a Linux binary and failing when "kill -0 $(cat $LOG_DIR/apiserver.pid)" can't find a running process. To help avoid confusion I added a "bucket doesn't contain a kube-apiserver for darwin" comment (so someone doesn't think this did work at some point in the past). Perhaps I should've gone a step further and just have the script explicitly fail with msg on Mac, but I wasn't sure if some people were going so far as to compile K8s for their Mac.

@ldemailly
Copy link
Member

I guess it's a good first step if it just works on a mac; we can fix how it ends up working later (ie getting rid of the env vars/ gobuild.sh etc) - whichever you can do - thanks !

@istio-merge-robot istio-merge-robot added the needs-rebase Indicates a PR needs to be rebased before being merged label Mar 25, 2018
@istio-merge-robot
Copy link

@mattdelco PR needs rebase

@istio-testing
Copy link
Collaborator

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: geeknoid, ldemailly

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

@istio-testing istio-testing removed the needs-rebase Indicates a PR needs to be rebased before being merged label Mar 28, 2018
@istio-testing
Copy link
Collaborator

@mattdelco: The following tests failed, say /retest to rerun them all:

Test name Commit Details Rerun command
prow/istio-pilot-e2e-v1alpha3.sh 4d7facc link /test istio-pilot-e2e-v1alpha3
prow/istio-pilot-e2e.sh 4d7facc 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.

@mattdelco
Copy link
Contributor Author

After the rebase it looks like another PR opted for the name "GOOS_LOCAL" over "LOCAL_GOOS" so I renamed the vars in this PR to match (and renamed the new "LOCAL_GOARCH" to "GOARCH_LOCAL" to stay consistent, even though it seems odd to me to have some vars called LOCAL_xxx and others called xxx_LOCAL).

I'd request a retest on the 2 failures but it looks like nobody's managed to pass them in the last ~6 hours.

@ldemailly ldemailly merged commit 181aa30 into istio:master Mar 28, 2018
tvieira pushed a commit to tvieira/istio that referenced this pull request Mar 29, 2018
This is a selected backport from the PR istio#4338 so the version_test
in the 0.7 branch won't fail because golang version is not 1.10.
bianpengyuan pushed a commit to bianpengyuan/istio that referenced this pull request Apr 5, 2018
* Mac-motivated improvements

* gen_cert isn't customizable

* undo tab to satisfy linter

* dynamic test string

* try to handle mac in testEnvLocalK8S.sh
jwendell pushed a commit to openshift-istio/istio that referenced this pull request Apr 6, 2018
This is a selected backport from the PR istio#4338 so the version_test
in the 0.7 branch won't fail because golang version is not 1.10.
PiotrSikora added a commit to PiotrSikora/istio that referenced this pull request Sep 13, 2018
Pulling the following changes from github.com/istio/proxy:

f498337 Fix a bug in origin authenticator that wrongly treats empty origin methods as pass (istio#1962)
c352de0 Mixer Client: Add support for TCP local attributes (istio#1967)
2c563c6 remove not used path patcher functions (istio#1966)
490d26f Update Envoy SHA to latest with TCP proxy fixes. (istio#1964)
4cc4b7c Mixer Client uses Node metadata to populate Mixer attributes (istio#1961)
cf23357 Fix the peerIsOptional and originIsOptional for authn filter. (istio#1959)
cc6e58e support per-path JWT validation. (istio#1928)
a5dd1aa mixer: clear route cache on header update (istio#1946)

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

f936fc60f ssl: serialize accesses to SSL socket factory contexts (istio#4345)
e34dcd62a Fix crash in tcp_proxy (istio#4323)
ae6a25222 router: fix matching when all domains have wildcards (istio#4326)
aa06142ff test: Stop fake_upstream methods from accidentally succeeding (istio#4232)
5d731878f rbac: update the authenticated.user to a StringMatcher. (istio#4250)
c6bfc7d9a time: Event::TimeSystem abstraction to make it feasible to inject time with simulated timers (istio#4257)
752483ea9 Fixing the fix (istio#4333)
83487f6f3 tls: update BoringSSL to ab36a84b (3497). (istio#4338)
7bc210e02 test: fixing interactions between waitFor and ignore_spurious_events (istio#4309)
69474b398 admin: order stats in clusters json admin (istio#4306)
2d155f901 ppc64le build (istio#4183)
07efc6dc6 fix static initialization fiasco problem (istio#4314)
0b7e3b5e0 test: Remove declared but undefined class methods (istio#4297)
1485a1304 lua: make sure resetting dynamic metadata wrapper when request info is marked dead
d243cd62e test: set to zero when start_time exceeds limit (istio#4328)
0a1e92acc test: fix heap use-after-free in ~IntegrationTestServer. (istio#4319)
cddc732c7 CONTRIBUTING: Document 'kick-ci' trick. (istio#4335)
f13ef2464 docs: remove reference to deprecated value field (istio#4322)
e947a2766 router: minor doc fixes in stream idle timeout (istio#4329)
0c2e998af tcp-proxy: fixing a TCP proxy bug where we attempted to readDisable a closed connection (istio#4296)
00ffe44a2 utility: fix strftime overflow handling. (istio#4321)
af1183c28 Re-enable TcpProxySslIntegrationTest and make the tests pass again. (istio#4318)
35534617b fuzz: fix H2 codec fuzzer post istio#4262. (istio#4311)
42f604853 Proto string issue fix (istio#4320)
9c492a01d Support Envoy to fetch secrets using SDS service. (istio#4256)
a8572192f ratelimit: revert `revert rate limit failure mode config` and add tests (istio#4303)
1d34172bd dns: fix exception unsafe behavior in c-ares callbacks. (istio#4307)
121242340 alts: add gRPC TSI socket (istio#4153)
f0363ae63 fuzz: detect client-side resets in H2 codec fuzzer. (istio#4300)
01aa3f820 test: hopefully deflaking echo integration test (istio#4304)
1fc0f4ba2 ratelimit: link legacy proto when message is being used (istio#4308)
aa4481e6b fix rare List::remove(&target) segfault (istio#4244)
89e0f23ba headers: fixing fast fail of size-validation (istio#4269)
97eba5918 build: bump googletest version. (istio#4293)
0057e22d9 fuzz: avoid false positives in HCM fuzzer. (istio#4262)
9d094e590 Revert ac0bd74f6f9716e3a44d1412f795317c30ca770a (istio#4295)
ddb28a4a1 Add validation context provider (istio#4264)
3b47cbabb added histogram latency information to Hystrix dashboard stream (istio#3986)
cf87d50cd docs: update SNI FAQ. (istio#4285)
f952033a4 config: fix update empty stat for eds (istio#4276)
329e591d3 router: Add ability of custom headers to rely on per-request data (istio#4219)
68d20b46c  thrift: refactor build files and imports (istio#4271)
5fa8192a3 access_log: log requested_server_name in tcp proxy (istio#4144)
fa45bb48f fuzz: libc++ clocks don't like nanos. (istio#4282)
53f8944f7 stats: add symbol table for future stat name encoding (istio#3927)
c987b425b test infra: Remove timeSource() from the ClusterManager api (istio#4247)
cd171d9a9 websocket: tunneling websockets (and upgrades in general) over H2 (istio#4188)
b9dc5d9a0 router: disallow :path/host rewriting in request_headers_to_add. (istio#4220)
0c9101127 network: skip socket options and source address for UDS client connections (istio#4252)
da1857d59 build: fixing a downstream compile error by noting explicit fallthrough (istio#4265)
9857cfe2a fuzz: cleanup per-test environment after each fuzz case. (istio#4253)
52beb067d test: Wrap proto string in std::string before comparison (istio#4238)
f5e219edc extensions/thrift_proxy: Add header matching to thrift router (istio#4239)
c9ce5d2b1 fuzz: track read_disable_count bidirectionally in codec_impl_fuzz_test. (istio#4260)
35103b353 fuzz: use nanoseconds for SystemTime in RequestInfo. (istio#4255)
ba6ba9883 fuzz: make runtime root hermetic in server_fuzz_test. (istio#4258)
b0a901480 time: Add 'format' test to ensure no one directly instantiates Prod*Time from source. (istio#4248)
85674603b access_log: support beginning of epoch in START_TIME. (istio#4254)
28d5f4118 proto: unify envoy_proto_library/api_proto_library. (istio#4233)
f7d3cb638 http: fix allocation bug introduced in istio#4211. (istio#4245)

Fixes istio#8310.

Signed-off-by: Piotr Sikora <piotrsikora@google.com>
istio-testing pushed a commit that referenced this pull request Sep 17, 2018
* Update Proxy SHA to latest with TCP proxy fixes.

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

f498337 Fix a bug in origin authenticator that wrongly treats empty origin methods as pass (#1962)
c352de0 Mixer Client: Add support for TCP local attributes (#1967)
2c563c6 remove not used path patcher functions (#1966)
490d26f Update Envoy SHA to latest with TCP proxy fixes. (#1964)
4cc4b7c Mixer Client uses Node metadata to populate Mixer attributes (#1961)
cf23357 Fix the peerIsOptional and originIsOptional for authn filter. (#1959)
cc6e58e support per-path JWT validation. (#1928)
a5dd1aa mixer: clear route cache on header update (#1946)

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

f936fc60f ssl: serialize accesses to SSL socket factory contexts (#4345)
e34dcd62a Fix crash in tcp_proxy (#4323)
ae6a25222 router: fix matching when all domains have wildcards (#4326)
aa06142ff test: Stop fake_upstream methods from accidentally succeeding (#4232)
5d731878f rbac: update the authenticated.user to a StringMatcher. (#4250)
c6bfc7d9a time: Event::TimeSystem abstraction to make it feasible to inject time with simulated timers (#4257)
752483ea9 Fixing the fix (#4333)
83487f6f3 tls: update BoringSSL to ab36a84b (3497). (#4338)
7bc210e02 test: fixing interactions between waitFor and ignore_spurious_events (#4309)
69474b398 admin: order stats in clusters json admin (#4306)
2d155f901 ppc64le build (#4183)
07efc6dc6 fix static initialization fiasco problem (#4314)
0b7e3b5e0 test: Remove declared but undefined class methods (#4297)
1485a1304 lua: make sure resetting dynamic metadata wrapper when request info is marked dead
d243cd62e test: set to zero when start_time exceeds limit (#4328)
0a1e92acc test: fix heap use-after-free in ~IntegrationTestServer. (#4319)
cddc732c7 CONTRIBUTING: Document 'kick-ci' trick. (#4335)
f13ef2464 docs: remove reference to deprecated value field (#4322)
e947a2766 router: minor doc fixes in stream idle timeout (#4329)
0c2e998af tcp-proxy: fixing a TCP proxy bug where we attempted to readDisable a closed connection (#4296)
00ffe44a2 utility: fix strftime overflow handling. (#4321)
af1183c28 Re-enable TcpProxySslIntegrationTest and make the tests pass again. (#4318)
35534617b fuzz: fix H2 codec fuzzer post #4262. (#4311)
42f604853 Proto string issue fix (#4320)
9c492a01d Support Envoy to fetch secrets using SDS service. (#4256)
a8572192f ratelimit: revert `revert rate limit failure mode config` and add tests (#4303)
1d34172bd dns: fix exception unsafe behavior in c-ares callbacks. (#4307)
121242340 alts: add gRPC TSI socket (#4153)
f0363ae63 fuzz: detect client-side resets in H2 codec fuzzer. (#4300)
01aa3f820 test: hopefully deflaking echo integration test (#4304)
1fc0f4ba2 ratelimit: link legacy proto when message is being used (#4308)
aa4481e6b fix rare List::remove(&target) segfault (#4244)
89e0f23ba headers: fixing fast fail of size-validation (#4269)
97eba5918 build: bump googletest version. (#4293)
0057e22d9 fuzz: avoid false positives in HCM fuzzer. (#4262)
9d094e590 Revert ac0bd74f6f9716e3a44d1412f795317c30ca770a (#4295)
ddb28a4a1 Add validation context provider (#4264)
3b47cbabb added histogram latency information to Hystrix dashboard stream (#3986)
cf87d50cd docs: update SNI FAQ. (#4285)
f952033a4 config: fix update empty stat for eds (#4276)
329e591d3 router: Add ability of custom headers to rely on per-request data (#4219)
68d20b46c  thrift: refactor build files and imports (#4271)
5fa8192a3 access_log: log requested_server_name in tcp proxy (#4144)
fa45bb48f fuzz: libc++ clocks don't like nanos. (#4282)
53f8944f7 stats: add symbol table for future stat name encoding (#3927)
c987b425b test infra: Remove timeSource() from the ClusterManager api (#4247)
cd171d9a9 websocket: tunneling websockets (and upgrades in general) over H2 (#4188)
b9dc5d9a0 router: disallow :path/host rewriting in request_headers_to_add. (#4220)
0c9101127 network: skip socket options and source address for UDS client connections (#4252)
da1857d59 build: fixing a downstream compile error by noting explicit fallthrough (#4265)
9857cfe2a fuzz: cleanup per-test environment after each fuzz case. (#4253)
52beb067d test: Wrap proto string in std::string before comparison (#4238)
f5e219edc extensions/thrift_proxy: Add header matching to thrift router (#4239)
c9ce5d2b1 fuzz: track read_disable_count bidirectionally in codec_impl_fuzz_test. (#4260)
35103b353 fuzz: use nanoseconds for SystemTime in RequestInfo. (#4255)
ba6ba9883 fuzz: make runtime root hermetic in server_fuzz_test. (#4258)
b0a901480 time: Add 'format' test to ensure no one directly instantiates Prod*Time from source. (#4248)
85674603b access_log: support beginning of epoch in START_TIME. (#4254)
28d5f4118 proto: unify envoy_proto_library/api_proto_library. (#4233)
f7d3cb638 http: fix allocation bug introduced in #4211. (#4245)

Fixes #8310.

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

* Update go-control-plane API and fix test fails

* Fixed the pilot rbac build fail due to envoyproxy/envoy#4250
* Fixed the istioctl test fail due to envoyproxy/envoy#4306

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.

8 participants