-
Notifications
You must be signed in to change notification settings - Fork 8.1k
Mac-motivated improvements to build #4338
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
Conversation
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 |
"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. |
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)
having docker installed isn't an unreasonable requirement, specially when working on istio's build :-) |
I'm working to identify those tests and move them from unit tests. It's
fairly hard since we are not diligent in marking them properly.
…On Fri, Mar 16, 2018 at 2:50 PM Laurent Demailly ***@***.***> wrote:
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 should start (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 :-)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#4338 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AJGIxo6j3uZ3uYlzoCeUOnEwGYCGF3jIks5tfDOkgaJpZM4SudVc>
.
|
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 |
for linters we have to use an image, afaik, to get uniform results |
Codecov Report
@@ 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
Continue to review full report at Codecov.
|
/lgtm cancel //PR changed after LGTM, removing LGTM. @ldemailly @mattdelco |
/lgtm |
pkg/version/version_test.go
Outdated
in BuildInfo | ||
want string | ||
longWant string | ||
longWantAlt string |
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.
What is this new field, where does it come from, is there a doc ?
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.
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).
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 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.
/lgtm cancel //PR changed after LGTM, removing LGTM. @ldemailly @mattdelco |
/approve |
[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 |
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 | |||
|
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.
Why remove this target ? It is used in circle.
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.
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'
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.
thanks for fixing this @mattdelco - let's merge...
/test istio-pilot-e2e |
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. 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 |
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. |
On mac we need to start minikube or docker env if we can't compile
apiserver...
…On Mon, Mar 19, 2018, 09:37 mattdelco ***@***.***> wrote:
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.
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
<#4338 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AAFI6uETU2Hoh3TV6g_QC8pWvworu-Nvks5tf97egaJpZM4SudVc>
.
|
/test istio-unit-tests |
shouldn't just be the other way around, default is native, except for docker where it must be linux ?
that part should be optional until we have something turnkey |
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 |
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). |
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 |
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.
So they do have kubeapiserver builds for mac ? I didn't know this - it simplifies things.
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.
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. |
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 ! |
@mattdelco PR needs rebase |
[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 |
@mattdelco: The following tests failed, say
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. |
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. |
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.
* Mac-motivated improvements * gen_cert isn't customizable * undo tab to satisfy linter * dynamic test string * try to handle mac in testEnvLocalK8S.sh
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.
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>
* 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>
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.