Commit Graph

34 Commits

Author SHA1 Message Date
dependabot[bot] 426482781c
build(deps): bump the otel group (#7968)
Update:
- https://github.com/open-telemetry/opentelemetry-go-contrib from 0.55.0 to 0.61.0
- https://github.com/open-telemetry/opentelemetry-go from 1.30.0 to 1.36.0
- several golang.org/x/ packages
- their transitive dependencies
2025-06-06 17:22:48 -07:00
Matthew McPherrin b26b116861
Update certificate-transparency-go for bugfix (#8160)
This updates to current `master`,
bc7acd89f703743d050f5cd4a3b9746808e0fdae

Notably, it includes a bug-fix to error handling in the HTTP client,
which we found was hiding errors from CT logs, hindering our debugging.

That fix is
https://github.com/google/certificate-transparency-go/pull/1695

No release has been tagged since this PR merged, so using the `master`
commit.

A few mutual dependencies used by both Boulder and ct-go are updated,
including mysql, otel, and grpc.
2025-05-06 12:10:53 -07:00
Aaron Gable 1c1c4dcfef
Update certificate-transparency-go to get static/tiled log support (#8150)
Update github.com/google/certificate-transparency-go from v1.1.6 to
v1.3.1. This updates the loglist file schema to recognize logs which are
tagged as being tiled logs / implementing the static CT API.

Transitively update:
- github.com/go-sql-driver/mysql from v1.7.1 to v1.8.1
- github.com/prometheus/client_golang from v1.15.1 to v1.22.0
- github.com/prometheus/client_model from v0.4.0 to v0.6.1
- go.opentelemetry.io/otel from v1.30.0 to v1.31.0
- google.golang.org/grpc from v1.66.1 to v1.69.4
- google.golang.org/protobuf from v1.34.2 to v1.36.5
- and a variety of indirect dependencies

Remove one indirect dependency:
- github.com/matttproud/golang_protobuf_extensions

Add two new indirect dependencies:
- filippo.io/edwards25519@v1.1.0 (used by go-sql-driver to handle
mariadb's custom encryption implementation)
- github.com/munnerz/goautoneg@v0.0.0-20191010083416-a7dc8b61c822
(previously inlined into prometheus/common)

Also fix two unit tests which need minor modifications to work with
updated type signatures and behavior.

Part of https://github.com/letsencrypt/boulder/issues/7872
2025-04-30 15:56:31 -07:00
dependabot[bot] 61ff7f606d
Update OTel dependencies (#7713)
Updates:
- go.opentelemetry.io/contrib/instrumentation (and subpackages) from 0.52.0 to 0.55.0
- go.opentelemetry.io/otel (and subpackages) from 1.27.0 to 1.30.0

Upstream release notes:
https://github.com/open-telemetry/opentelemetry-go-contrib/releases

Also transitively updates a few golang.org/x/ dependencies, and the grpc and protobuf
dependencies.
2024-10-07 13:22:08 -07:00
Phil Porada 472effbb9b
grpc: Switch to go-grpc-middleware/providers/prometheus (#7588)
While investigating #6384, I noticed that
[go-grpc-prometheus](https://github.com/grpc-ecosystem/go-grpc-prometheus?tab=readme-ov-file)
was deprecated last year and users should switch to
[go-grpc-middleware](https://github.com/grpc-ecosystem/go-grpc-middleware)
instead. The default prometheus histogram buckets will continue to be
used and [can be found
here](6e3f4b1091/prometheus/histogram.go (L261-L265)).
2024-07-12 15:02:37 -04:00
Samantha Frank 6e2a07d58d
dependencies: Update grpc-go from v1.64 to v1.64.1 (#7578) 2024-07-09 16:56:48 -04:00
Aaron Gable 89213f9214
Use generic types for gRPC stream implementations (#7501)
Update the version of protoc-gen-go-grpc that we use to generate Go gRPC
code from our proto files, and update the versions of other gRPC tools
and libraries that we use to match. Turn on the new
`use_generic_streams` code generation flag to change how
protoc-gen-go-grpc generates implementations of our streaming methods,
from creating a wholly independent implementation for every stream to
using shared generic implementations.

Take advantage of this code-sharing to remove our SA "wrapper" methods,
now that they have truly the same signature as the SARO methods which
they wrap. Also remove all references to the old-style stream names
(e.g. foopb.FooService_BarMethodClient) and replace them with the new
underlying generic names, for the sake of consistency. Finally, also
remove a few custom stream test mocks, replacing them with the generic
mocks.ServerStreamClient.

Note that this PR does not change the names in //mocks/sa.go, to avoid
conflicts with work happening in the pursuit of
https://github.com/letsencrypt/boulder/issues/7476. Note also that this
PR updates the version of protoc-gen-go-grpc that we use to a specific
commit. This is because, although a new release of grpc-go itself has
been cut, the codegen binary is a separate Go module with its own
releases, and it hasn't had a new release cut yet. Tracking for that is
in https://github.com/grpc/grpc-go/issues/7030.
2024-05-24 13:54:25 -07:00
dependabot[bot] 1053352d1f
build(deps): bump go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp from 0.46.1 to 0.51.0 (#7467)
Bumps
[go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp](https://github.com/open-telemetry/opentelemetry-go-contrib)
from 0.46.1 to 0.51.0.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Aaron Gable <aaron@letsencrypt.org>
2024-05-20 12:14:27 -04:00
Matthew McPherrin e8d382aec0
Upgrade the protobuf and grpc dependencies in Boulder (#7232)
Protobuf v1.32 fixes a potential stack overflow crash. Boulder doesn't
expose grpc externally so the risk is minimal, but it seems prudent to
upgrade on a regular cadence.  IE, this is not a security fix for Boulder.
2024-01-08 11:23:23 -08:00
Aaron Gable 617b6edea4
Update google.golang.org/grpc to v1.59.0 (#7130)
This version contains mitigations for the HTTP/2 rapid-reset DoS vector.
See https://github.com/advisories/GHSA-m425-mq94-257g for details.

Changelog: https://github.com/grpc/grpc-go/compare/v1.54.0...v1.59.0
2023-11-02 10:20:14 -04:00
Matthew McPherrin 5f0d2ae002
Upgrade Opentelemetry dependencies (#6855)
This upgrades otel to v1.15.0, and the /contrib/ packages to v0.41.0.
Several dependencies are upgraded as dependencies, notably grpc.

This contains a change to grpc, only mapping some grpc.Errors into span
errors if it's Unknown, DeadlineExceeded, Unimplemented, Internal,
Unavailable, or DataLoss, which should be helpful for us as we use grpc
errors semantically in Boulder, especially NotFound.
2023-05-03 15:40:11 -07:00
Matthew McPherrin 0060e695b5
Introduce OpenTelemetry Tracing (#6750)
Add a new shared config stanza which all boulder components can use to
configure their Open Telemetry tracing. This allows components to
specify where their traces should be sent, what their sampling ratio
should be, and whether or not they should respect their parent's
sampling decisions (so that web front-ends can ignore sampling info
coming from outside our infrastructure). It's likely we'll need to
evolve this configuration over time, but this is a good starting point.

Add basic Open Telemetry setup to our existing cmd.StatsAndLogging
helper, so that it gets initialized at the same time as our other
observability helpers. This sets certain default fields on all
traces/spans generated by the service. Currently these include the
service name, the service version, and information about the telemetry
SDK itself. In the future we'll likely augment this with information
about the host and process.

Finally, add instrumentation for the HTTP servers and grpc
clients/servers. This gives us a starting point of being able to monitor
Boulder, but is fairly minimal as this PR is already somewhat unwieldy:
It's really only enough to understand that everything is wired up
properly in the configuration. In subsequent work we'll enhance those
spans with more data, and add more spans for things not automatically
traced here.

Fixes https://github.com/letsencrypt/boulder/issues/6361

---------

Co-authored-by: Aaron Gable <aaron@aarongable.com>
2023-04-21 10:46:59 -07:00
Matthew McPherrin 9880a41924
Upgrade GRPC to v1.53.0 (#6734)
Upgrade grpc to v1.53.0, as preparation for introducing OpenTelemetry,
which depends on that grpc version.

Two changes to our own code were necessitated by upstream changes:

1. Add a stub implementation of GetOrBuildProducer: this was added to
the balancer.SubConn interface by grpc v1.51.0

2. Change use of Endpoint field to Endpoint() method: the field was
removed and replaced by a method in
https://github.com/grpc/grpc-go/pull/5852. This also means that our
tests can't set the .Endpoint field, so the tests are updated to use the
.URL field instead, and a helper has been added to make that easy.

Part of #6361
2023-03-15 12:36:04 -07:00
Aaron Gable c706609e79
Update grpc from v1.36.1 to v1.49.0 (#6336)
Changelog: https://github.com/grpc/grpc-go/compare/v1.36.1...v1.49.0

The biggest change for us is that grpc.WithBalancerName has
transitioned from deprecated to fully removed. The fix is to replace
it with a JSON-formatted "default config" object, as demonstrated in
https://github.com/grpc/grpc-go/pull/5232#issuecomment-1106921140.

This should unblock updating other dependencies which want to
transitively update gRPC as well.
2022-09-01 13:29:06 -07:00
Aaron Gable 32973392de
Revert "Bump google.golang.org/grpc from 1.36.1 to 1.44.0" (#5981)
Reverts letsencrypt/boulder#5963

Turns out the tests are still flaky -- using the `grpc.WaitForReady(true)`
connection option results in sometimes seeing 9 entries added to the
purger queue, and sometimes 10 entries. Reverting because flakiness
on main should not be tolerated.
2022-03-08 10:32:30 -08:00
dependabot[bot] 2ec03b377b
Bump google.golang.org/grpc from 1.36.1 to 1.44.0 (#5963)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.36.1 to 1.44.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.36.1...v1.44.0)

Also update akamai-purger integration test to avoid experimental API.

The `conn.GetState()` API is marked experimental and may change behavior
at any time. It appears to have changed between v1.36.1 and v1.44.0,
and so the akamai-purger integration tests which rely on it break.

Rather than writing our own loop which polls `conn.GetState()`, just
use the stable `WaitForReady(true)` connection option, and apply it to
all connections by setting it as a default option in the dial options.
2022-03-07 17:00:20 -08:00
Aaron Gable ef9f0cdab5
Update go.mod go directive to 1.17 (#5950)
The `go` directive inside go.mod determines certain behaviors of
the go command. Since we're using go 1.17 everywhere, we should
update our module's go directive to reflect that, and update its contents
to match the new behavior.

Particularly, updating to 1.17 here means that all indirect dependencies
are listed directly inside go.mod (in a separate block, to keep things clean),
and the go.sum and go.mod files are deleted from vendored dependencies
so that the go tool can correctly find the root of the module even when run
from a vendored dependency's subdirectory.
2022-02-18 12:25:53 -08:00
Jacob Hoffman-Andrews 7194624191
Update grpc and protobuf to latest. (#5369)
protoc now generates grpc code in a separate file from protobuf code.
Also, grpc servers are now required to embed an "unimplemented"
interface from the generated .pb.go file, which provides forward
compatibility.

Update the generate.go files since the invocation for protoc has changed
with the split into .pb.org and _grpc.pb.go.

Fixes #5368
2021-04-01 17:18:15 -07:00
Aaron Gable 2d14cfb8d1
Add gRPC Health service to all Boulder services (#5093)
This health service implements the gRPC Health Checking
Protocol, as defined in 
https://github.com/grpc/grpc/blob/master/doc/health-checking.md
and as implemented by the gRPC authors in
https://pkg.go.dev/google.golang.org/grpc/health@v1.29.0

It simply instantiates a health service, and attaches it to the same
gRPC server that is handling requests to the primary (e.g. CA) service.
When the main service would be shut down (e.g. because it caught a
signal), it also sets the status of the service to NOT_SERVING.

This change also imports the health client into our grpc client,
ensuring that all of our grpc clients use the health service to inform
their load-balancing behavior.

This will be used to replace our current usage of polling the debug
port to determine whether a given service is up and running. It may
also be useful for more comprehensive checks and blackbox probing
in the future.

Part of #5074
2020-10-06 12:14:02 -07:00
Jacob Hoffman-Andrews d2ae471026
Upgrade gRPC to v1.29.0 (#4790)
Incidentally upgrade golang/protobuf.
2020-04-22 18:33:16 -07:00
Daniel McCarney 77a9330eeb deps: update google.golang.org/grpc 1.20.0->1.25.1 (#4629)
Note: This dep bump introduces a harmless, but annoying, error log
to our service startup output of the form:

> E203318 boulder-ra 2PvBvwg [AUDIT] ccResolverWrapper: error parsing service config: no JSON service config provided

We previously addressed this with the upstream project
(30f4150eec)
but the problem has returned. Filed https://github.com/letsencrypt/boulder/issues/4628
as a follow-up to chase this down.

Unit tests are confirmed to pass:

```
~/go/src/google.golang.org/grpc$ git log --pretty=format:'%h' -n 1
1a3960e

~/go/src/google.golang.org/grpc$ go test ./...
ok  	google.golang.org/grpc	18.163s
?   	google.golang.org/grpc/backoff	[no test files]
?   	google.golang.org/grpc/balancer	[no test files]
?   	google.golang.org/grpc/balancer/base	[no test files]
ok  	google.golang.org/grpc/balancer/grpclb	15.491s
?   	google.golang.org/grpc/balancer/grpclb/grpc_lb_v1	[no test files]
ok  	google.golang.org/grpc/balancer/roundrobin	0.349s
?   	google.golang.org/grpc/balancer/weightedroundrobin	[no test files]
?   	google.golang.org/grpc/benchmark	[no test files]
?   	google.golang.org/grpc/benchmark/benchmain	[no test files]
?   	google.golang.org/grpc/benchmark/benchresult	[no test files]
?   	google.golang.org/grpc/benchmark/client	[no test files]
ok  	google.golang.org/grpc/benchmark/flags	0.001s
?   	google.golang.org/grpc/benchmark/grpc_testing	[no test files]
ok  	google.golang.org/grpc/benchmark/latency	1.005s
ok  	google.golang.org/grpc/benchmark/primitives	0.001s [no tests to run]
?   	google.golang.org/grpc/benchmark/server	[no test files]
?   	google.golang.org/grpc/benchmark/stats	[no test files]
?   	google.golang.org/grpc/benchmark/worker	[no test files]
?   	google.golang.org/grpc/binarylog/grpc_binarylog_v1	[no test files]
?   	google.golang.org/grpc/channelz/grpc_channelz_v1	[no test files]
ok  	google.golang.org/grpc/channelz/service	0.009s
ok  	google.golang.org/grpc/codes	0.002s
?   	google.golang.org/grpc/connectivity	[no test files]
ok  	google.golang.org/grpc/credentials	0.017s
ok  	google.golang.org/grpc/credentials/alts	0.003s
?   	google.golang.org/grpc/credentials/alts/internal	[no test files]
ok  	google.golang.org/grpc/credentials/alts/internal/authinfo	0.003s
ok  	google.golang.org/grpc/credentials/alts/internal/conn	0.079s
ok  	google.golang.org/grpc/credentials/alts/internal/handshaker	0.039s
ok  	google.golang.org/grpc/credentials/alts/internal/handshaker/service	0.007s
?   	google.golang.org/grpc/credentials/alts/internal/proto/grpc_gcp	[no test files]
?   	google.golang.org/grpc/credentials/alts/internal/testutil	[no test files]
?   	google.golang.org/grpc/credentials/google	[no test files]
ok  	google.golang.org/grpc/credentials/internal	0.005s
?   	google.golang.org/grpc/credentials/oauth	[no test files]
?   	google.golang.org/grpc/encoding	[no test files]
?   	google.golang.org/grpc/encoding/gzip	[no test files]
ok  	google.golang.org/grpc/encoding/proto	0.025s
?   	google.golang.org/grpc/examples/features/authentication/client	[no test files]
?   	google.golang.org/grpc/examples/features/authentication/server	[no test files]
?   	google.golang.org/grpc/examples/features/cancellation/client	[no test files]
?   	google.golang.org/grpc/examples/features/cancellation/server	[no test files]
?   	google.golang.org/grpc/examples/features/compression/client	[no test files]
?   	google.golang.org/grpc/examples/features/compression/server	[no test files]
?   	google.golang.org/grpc/examples/features/deadline/client	[no test files]
?   	google.golang.org/grpc/examples/features/deadline/server	[no test files]
?   	google.golang.org/grpc/examples/features/debugging/client	[no test files]
?   	google.golang.org/grpc/examples/features/debugging/server	[no test files]
?   	google.golang.org/grpc/examples/features/encryption/ALTS/client	[no test files]
?   	google.golang.org/grpc/examples/features/encryption/ALTS/server	[no test files]
?   	google.golang.org/grpc/examples/features/encryption/TLS/client	[no test files]
?   	google.golang.org/grpc/examples/features/encryption/TLS/server	[no test files]
?   	google.golang.org/grpc/examples/features/errors/client	[no test files]
?   	google.golang.org/grpc/examples/features/errors/server	[no test files]
?   	google.golang.org/grpc/examples/features/interceptor/client	[no test files]
?   	google.golang.org/grpc/examples/features/interceptor/server	[no test files]
?   	google.golang.org/grpc/examples/features/keepalive/client	[no test files]
?   	google.golang.org/grpc/examples/features/keepalive/server	[no test files]
?   	google.golang.org/grpc/examples/features/load_balancing/client	[no test files]
?   	google.golang.org/grpc/examples/features/load_balancing/server	[no test files]
?   	google.golang.org/grpc/examples/features/metadata/client	[no test files]
?   	google.golang.org/grpc/examples/features/metadata/server	[no test files]
?   	google.golang.org/grpc/examples/features/multiplex/client	[no test files]
?   	google.golang.org/grpc/examples/features/multiplex/server	[no test files]
?   	google.golang.org/grpc/examples/features/name_resolving/client	[no test files]
?   	google.golang.org/grpc/examples/features/name_resolving/server	[no test files]
?   	google.golang.org/grpc/examples/features/proto	[no test files]
?   	google.golang.org/grpc/examples/features/proto/echo	[no test files]
?   	google.golang.org/grpc/examples/features/reflection/server	[no test files]
?   	google.golang.org/grpc/examples/features/retry/client	[no test files]
?   	google.golang.org/grpc/examples/features/retry/server	[no test files]
?   	google.golang.org/grpc/examples/features/wait_for_ready	[no test files]
?   	google.golang.org/grpc/examples/helloworld/greeter_client	[no test files]
?   	google.golang.org/grpc/examples/helloworld/greeter_server	[no test files]
?   	google.golang.org/grpc/examples/helloworld/helloworld	[no test files]
ok  	google.golang.org/grpc/examples/helloworld/mock_helloworld	0.003s
?   	google.golang.org/grpc/examples/route_guide/client	[no test files]
ok  	google.golang.org/grpc/examples/route_guide/mock_routeguide	0.005s
?   	google.golang.org/grpc/examples/route_guide/routeguide	[no test files]
?   	google.golang.org/grpc/examples/route_guide/server	[no test files]
ok  	google.golang.org/grpc/grpclog	0.003s
?   	google.golang.org/grpc/grpclog/glogger	[no test files]
ok  	google.golang.org/grpc/health	0.063s
?   	google.golang.org/grpc/health/grpc_health_v1	[no test files]
?   	google.golang.org/grpc/internal	[no test files]
?   	google.golang.org/grpc/internal/backoff	[no test files]
?   	google.golang.org/grpc/internal/balancerload	[no test files]
ok  	google.golang.org/grpc/internal/binarylog	0.026s
ok  	google.golang.org/grpc/internal/buffer	0.002s
ok  	google.golang.org/grpc/internal/cache	0.653s
ok  	google.golang.org/grpc/internal/channelz	0.005s
?   	google.golang.org/grpc/internal/envconfig	[no test files]
?   	google.golang.org/grpc/internal/grpcrand	[no test files]
ok  	google.golang.org/grpc/internal/grpcsync	0.002s
ok  	google.golang.org/grpc/internal/grpctest	0.002s
ok  	google.golang.org/grpc/internal/leakcheck	4.083s
ok  	google.golang.org/grpc/internal/proto/grpc_service_config	0.002s
ok  	google.golang.org/grpc/internal/resolver/dns	1.620s
?   	google.golang.org/grpc/internal/resolver/passthrough	[no test files]
?   	google.golang.org/grpc/internal/syscall	[no test files]
ok  	google.golang.org/grpc/internal/testutils	0.002s
ok  	google.golang.org/grpc/internal/transport	81.078s
ok  	google.golang.org/grpc/internal/wrr	0.008s
?   	google.golang.org/grpc/interop	[no test files]
?   	google.golang.org/grpc/interop/alts/client	[no test files]
?   	google.golang.org/grpc/interop/alts/server	[no test files]
?   	google.golang.org/grpc/interop/client	[no test files]
?   	google.golang.org/grpc/interop/fake_grpclb	[no test files]
?   	google.golang.org/grpc/interop/grpc_testing	[no test files]
?   	google.golang.org/grpc/interop/http2	[no test files]
?   	google.golang.org/grpc/interop/server	[no test files]
?   	google.golang.org/grpc/keepalive	[no test files]
ok  	google.golang.org/grpc/metadata	0.004s
ok  	google.golang.org/grpc/naming	0.156s
?   	google.golang.org/grpc/peer	[no test files]
ok  	google.golang.org/grpc/reflection	0.010s
?   	google.golang.org/grpc/reflection/grpc_reflection_v1alpha	[no test files]
?   	google.golang.org/grpc/reflection/grpc_testing	[no test files]
?   	google.golang.org/grpc/reflection/grpc_testingv3	[no test files]
?   	google.golang.org/grpc/resolver	[no test files]
?   	google.golang.org/grpc/resolver/dns	[no test files]
?   	google.golang.org/grpc/resolver/manual	[no test files]
?   	google.golang.org/grpc/resolver/passthrough	[no test files]
?   	google.golang.org/grpc/serviceconfig	[no test files]
ok  	google.golang.org/grpc/stats	0.046s
?   	google.golang.org/grpc/stats/grpc_testing	[no test files]
ok  	google.golang.org/grpc/status	0.008s
?   	google.golang.org/grpc/stress/client	[no test files]
?   	google.golang.org/grpc/stress/grpc_testing	[no test files]
?   	google.golang.org/grpc/stress/metrics_client	[no test files]
?   	google.golang.org/grpc/tap	[no test files]
ok  	google.golang.org/grpc/test	30.190s
ok  	google.golang.org/grpc/test/bufconn	0.204s
?   	google.golang.org/grpc/test/codec_perf	[no test files]
?   	google.golang.org/grpc/test/go_vet	[no test files]
?   	google.golang.org/grpc/test/grpc_testing	[no test files]
?   	google.golang.org/grpc/xds/experimental	[no test files]
ok  	google.golang.org/grpc/xds/internal	0.003s
ok  	google.golang.org/grpc/xds/internal/balancer	5.113s
ok  	google.golang.org/grpc/xds/internal/balancer/edsbalancer	1.264s
ok  	google.golang.org/grpc/xds/internal/balancer/lrs	0.246s
ok  	google.golang.org/grpc/xds/internal/balancer/orca	0.002s
ok  	google.golang.org/grpc/xds/internal/client	0.004s
?   	google.golang.org/grpc/xds/internal/proto	[no test files]
?   	google.golang.org/grpc/xds/internal/proto/udpa/data/orca/v1	[no test files]
?   	google.golang.org/grpc/xds/internal/proto/udpa/service/orca/v1	[no test files]
?   	google.golang.org/grpc/xds/internal/proto/udpa/type/v1	[no test files]
ok  	google.golang.org/grpc/xds/internal/resolver	0.004s
```

Updates https://github.com/letsencrypt/boulder/issues/4548
2020-01-06 11:03:28 -08:00
Jacob Hoffman-Andrews 1014a81606 Switch to modules (#4211)
Because the package versions in go.mod match what we use in Godeps.json,
there are no substantive code diffs. However, there are some tiny
differences resulting from how go mod vendors things differently than
godep:

go mod does not preserve executable permissions on shell scripts
Some packages have import lines like:
package ocsp // import "golang.org/x/crypto/ocsp"

godep used to remove the comment from these lines, but go mod vendor does not.

This introduces several indirect dependencies that we didn't have
before. This is because godep used to operate at a package level, but
go mod operates at a module (~= repository) level. So if we used a
given repository, but didn't use all of its packages, we wouldn't
previously care about the transitive dependencies of the packages we
weren't using. However, in the go mod world, once we care about the
repository, we care about all of that repository's transitive
dependencies. AFAICT this doesn't affect vendoring.

Fixes #4116
2019-05-23 14:14:00 -07:00
Jacob Hoffman-Andrews 44c0b11981 Update x/text, grpc, and genproto. (#4158)
This is part of #4116 since the modules system wants higher versions of these.

golang.org/x/text -> v0.3.0
google.golang.org/grpc -> v1.20.0
google.golang.org/genproto -> master

$ go test google.golang.org/genproto/googleapis/rpc/status
?       google.golang.org/genproto/googleapis/rpc/status        [no test
files]

$ go test golang.org/x/text/{secure/bidirule,transform,unicode/bidi,unicode/norm}
-count=1
ok      golang.org/x/text/secure/bidirule       0.016s
ok      golang.org/x/text/transform     0.041s
ok      golang.org/x/text/unicode/bidi  0.007s
ok      golang.org/x/text/unicode/norm  1.800s

$ go test google.golang.org/grpc/{,balancer{,/base,/roundrobin},codes,connectivity,credentials,encoding,encoding/proto,grpclog,internal{,/backoff,/channelz,/envconfig,/grpcrand,/transport},keepalive,metadata,naming,peer,resolver{,/dns,/passthrough},stats,status,tap}
ok      google.golang.org/grpc  22.494s
?       google.golang.org/grpc/balancer [no test files]
?       google.golang.org/grpc/balancer/base    [no test files]
ok      google.golang.org/grpc/balancer/roundrobin      (cached)
ok      google.golang.org/grpc/codes    (cached)
?       google.golang.org/grpc/connectivity     [no test files]
ok      google.golang.org/grpc/credentials      0.015s
?       google.golang.org/grpc/encoding [no test files]
ok      google.golang.org/grpc/encoding/proto   0.056s
ok      google.golang.org/grpc/grpclog  0.001s
?       google.golang.org/grpc/internal [no test files]
?       google.golang.org/grpc/internal/backoff [no test files]
ok      google.golang.org/grpc/internal/channelz        0.034s
?       google.golang.org/grpc/internal/envconfig       [no test files]
?       google.golang.org/grpc/internal/grpcrand        [no test files]
ok      google.golang.org/grpc/internal/transport       81.123s
?       google.golang.org/grpc/keepalive        [no test files]
ok      google.golang.org/grpc/metadata 0.005s
ok      google.golang.org/grpc/naming   0.187s
?       google.golang.org/grpc/peer     [no test files]
?       google.golang.org/grpc/resolver [no test files]
ok      google.golang.org/grpc/resolver/dns     1.594s
?       google.golang.org/grpc/resolver/passthrough     [no test files]
ok      google.golang.org/grpc/stats    0.036s
ok      google.golang.org/grpc/status   0.002s
?       google.golang.org/grpc/tap      [no test files]
2019-04-16 14:25:19 -07:00
Jacob Hoffman-Andrews 6354cccd03 Update gRPC to v1.16.0. (#3901)
Fixes #3837

```
$ go test google.golang.org/grpc/...
ok      google.golang.org/grpc  24.275s
?       google.golang.org/grpc/balancer [no test files]
?       google.golang.org/grpc/balancer/base    [no test files]
ok      google.golang.org/grpc/balancer/grpclb  7.271s
?       google.golang.org/grpc/balancer/grpclb/grpc_lb_v1       [no test files]
ok      google.golang.org/grpc/balancer/roundrobin      0.427s
ok      google.golang.org/grpc/benchmark        0.006s [no tests to run]
?       google.golang.org/grpc/benchmark/benchmain      [no test files]
?       google.golang.org/grpc/benchmark/benchresult    [no test files]
?       google.golang.org/grpc/benchmark/client [no test files]
?       google.golang.org/grpc/benchmark/grpc_testing   [no test files]
ok      google.golang.org/grpc/benchmark/latency        1.012s
ok      google.golang.org/grpc/benchmark/primitives     0.036s [no tests to run]
?       google.golang.org/grpc/benchmark/server [no test files]
?       google.golang.org/grpc/benchmark/stats  [no test files]
?       google.golang.org/grpc/benchmark/worker [no test files]
?       google.golang.org/grpc/binarylog/grpc_binarylog_v1      [no test files]
?       google.golang.org/grpc/channelz/grpc_channelz_v1        [no test files]
ok      google.golang.org/grpc/channelz/service 0.024s
ok      google.golang.org/grpc/codes    0.006s
?       google.golang.org/grpc/connectivity     [no test files]
ok      google.golang.org/grpc/credentials      0.014s
ok      google.golang.org/grpc/credentials/alts 0.009s
?       google.golang.org/grpc/credentials/alts/internal        [no test files]
ok      google.golang.org/grpc/credentials/alts/internal/authinfo       0.006s
ok      google.golang.org/grpc/credentials/alts/internal/conn   0.133s
ok      google.golang.org/grpc/credentials/alts/internal/handshaker     0.045s
ok      google.golang.org/grpc/credentials/alts/internal/handshaker/service     0.013s
?       google.golang.org/grpc/credentials/alts/internal/proto/grpc_gcp [no test files]
?       google.golang.org/grpc/credentials/alts/internal/testutil       [no test files]
?       google.golang.org/grpc/credentials/google       [no test files]
?       google.golang.org/grpc/credentials/oauth        [no test files]
?       google.golang.org/grpc/encoding [no test files]
?       google.golang.org/grpc/encoding/gzip    [no test files]
ok      google.golang.org/grpc/encoding/proto   0.075s
?       google.golang.org/grpc/examples/helloworld/greeter_client       [no test files]
?       google.golang.org/grpc/examples/helloworld/greeter_server       [no test files]
?       google.golang.org/grpc/examples/helloworld/helloworld   [no test files]
ok      google.golang.org/grpc/examples/helloworld/mock_helloworld      0.011s
?       google.golang.org/grpc/examples/oauth/client    [no test files]
?       google.golang.org/grpc/examples/oauth/server    [no test files]
?       google.golang.org/grpc/examples/route_guide/client      [no test files]
ok      google.golang.org/grpc/examples/route_guide/mock_routeguide     0.039s
?       google.golang.org/grpc/examples/route_guide/routeguide  [no test files]
?       google.golang.org/grpc/examples/route_guide/server      [no test files]
?       google.golang.org/grpc/examples/rpc_errors/client       [no test files]
?       google.golang.org/grpc/examples/rpc_errors/server       [no test files]
ok      google.golang.org/grpc/grpclog  0.007s
?       google.golang.org/grpc/grpclog/glogger  [no test files]
ok      google.golang.org/grpc/health   0.005s
?       google.golang.org/grpc/health/grpc_health_v1    [no test files]
?       google.golang.org/grpc/internal [no test files]
?       google.golang.org/grpc/internal/backoff [no test files]
ok      google.golang.org/grpc/internal/binarylog       0.006s
ok      google.golang.org/grpc/internal/channelz        0.012s
?       google.golang.org/grpc/internal/envconfig       [no test files]
?       google.golang.org/grpc/internal/grpcrand        [no test files]
ok      google.golang.org/grpc/internal/grpcsync        0.013s
ok      google.golang.org/grpc/internal/leakcheck       4.052s
?       google.golang.org/grpc/internal/syscall [no test files]
ok      google.golang.org/grpc/internal/testutils       0.002s
ok      google.golang.org/grpc/internal/transport       81.968s
?       google.golang.org/grpc/interop  [no test files]
?       google.golang.org/grpc/interop/alts/client      [no test files]
?       google.golang.org/grpc/interop/alts/server      [no test files]
?       google.golang.org/grpc/interop/client   [no test files]
?       google.golang.org/grpc/interop/fake_grpclb      [no test files]
?       google.golang.org/grpc/interop/grpc_testing     [no test files]
?       google.golang.org/grpc/interop/http2    [no test files]
?       google.golang.org/grpc/interop/server   [no test files]
?       google.golang.org/grpc/keepalive        [no test files]
ok      google.golang.org/grpc/metadata 0.006s
ok      google.golang.org/grpc/naming   0.159s
?       google.golang.org/grpc/peer     [no test files]
ok      google.golang.org/grpc/reflection       0.016s
?       google.golang.org/grpc/reflection/grpc_reflection_v1alpha       [no test files]
?       google.golang.org/grpc/reflection/grpc_testing  [no test files]
?       google.golang.org/grpc/reflection/grpc_testingv3        [no test files]
?       google.golang.org/grpc/resolver [no test files]
ok      google.golang.org/grpc/resolver/dns     1.370s
?       google.golang.org/grpc/resolver/manual  [no test files]
?       google.golang.org/grpc/resolver/passthrough     [no test files]
ok      google.golang.org/grpc/stats    0.104s
?       google.golang.org/grpc/stats/grpc_testing       [no test files]
ok      google.golang.org/grpc/status   0.017s
?       google.golang.org/grpc/stress/client    [no test files]
?       google.golang.org/grpc/stress/grpc_testing      [no test files]
?       google.golang.org/grpc/stress/metrics_client    [no test files]
?       google.golang.org/grpc/tap      [no test files]
ok      google.golang.org/grpc/test     33.866s
ok      google.golang.org/grpc/test/bufconn     0.005s
?       google.golang.org/grpc/test/codec_perf  [no test files]
?       google.golang.org/grpc/test/go_vet      [no test files]
?       google.golang.org/grpc/test/grpc_testing        [no test files]
```
2018-10-25 12:19:40 -07:00
Roland Bracewell Shoemaker 876c727b6f Update gRPC (#3817)
Fixes #3474.
2018-08-20 10:55:42 -04:00
Jacob Hoffman-Andrews 5f0cbddd9d Check for unnecessary godeps (#3206)
Fixes https://github.com/letsencrypt/boulder/issues/3205.

Previously, we would only move aside Godeps.json before running `godep save ./...`. However, in order to get a true picture of what is needed, we must also remove the existing `vendor/` directory.

This change also removes some unnecessary dependencies that have piled up over the years, generally test dependencies. Godep used to vendor such dependencies but no longer does.
2017-11-03 14:30:07 -04:00
Roland Bracewell Shoemaker 08f4dda038 Update github.com/grpc-ecosystem/go-grpc-prometheus and google.golang.org/grpc (#2637)
Updates the various gRPC/protobuf libs (google.golang.org/grpc/... and github.com/golang/protobuf/proto) and the boulder-tools image so that we can update to the newest github.com/grpc-ecosystem/go-grpc-prometheus. Also regenerates all of the protobuf definition files.

Tests run on updated packages all pass.

Unblocks #2633 fixes #2636.
2017-04-03 11:13:48 -07:00
Daniel McCarney d8c10149dd Updates `google.golang.org/grpc` to v1.0.3. (#2359)
This PR updates our GRPC library dep. to v1.0.3. It's likely we can update to v1.0.4 without much effort but on a first attempt it seems that the SupportPackageIsVersion3 to SupportPackageIsVersion4 change might cause some headaches so I started with 1.0.3.

The grpc/creds.go serverTransportCredentials and clientTransportCredentials needed two new funcs (Clone and OverrideServerName) to conform to the updated credentials.TransportCredentials interface.

It's tempting to remove grpc/creds.go clientTransportCredentials entirely now that the TLSCredentials from upstream has a OverrideServerName function we can use, but unfortunately it only supports one hostname and must be called a-head of ClientHandshake that we still need clientTransportCredentials for our use-case. I tried this and failed, so clientTransportCredentials remains in bgrpc/creds/creds.go.

Per CONTRIBUTING.md I've verified the unit tests pass:

daniel@XXXXXX:~/go/src/google.golang.org/grpc$ git show -s
commit b7f1379d3cbbbeb2ca3405852012e237aa05459e
Merge: 33731fd bac9e1d
Author: Qi Zhao <toqizhao@gmail.com>
Date:   Mon Oct 17 16:02:05 2016 -0700

    Merge pull request #903 from improbable-io/blocking-graceful-shutdown-fix
    
    Make concurrent Server.GracefulStop calls all behave equivalently.

daniel@XXXXXX:~/go/src/google.golang.org/grpc$ go test ./...
ok  	google.golang.org/grpc	0.215s
ok  	google.golang.org/grpc/benchmark	0.017s
?   	google.golang.org/grpc/benchmark/client	[no test files]
?   	google.golang.org/grpc/benchmark/grpc_testing	[no test files]
?   	google.golang.org/grpc/benchmark/server	[no test files]
?   	google.golang.org/grpc/benchmark/stats	[no test files]
?   	google.golang.org/grpc/benchmark/worker	[no test files]
?   	google.golang.org/grpc/codes	[no test files]
ok  	google.golang.org/grpc/credentials	0.041s
?   	google.golang.org/grpc/credentials/oauth	[no test files]
?   	google.golang.org/grpc/examples/helloworld/greeter_client	[no test files]
?   	google.golang.org/grpc/examples/helloworld/greeter_server	[no test files]
?   	google.golang.org/grpc/examples/helloworld/helloworld	[no test files]
?   	google.golang.org/grpc/examples/route_guide/client	[no test files]
?   	google.golang.org/grpc/examples/route_guide/routeguide	[no test files]
?   	google.golang.org/grpc/examples/route_guide/server	[no test files]
ok  	google.golang.org/grpc/grpclb	0.047s
?   	google.golang.org/grpc/grpclb/grpc_lb_v1	[no test files]
?   	google.golang.org/grpc/grpclog	[no test files]
?   	google.golang.org/grpc/grpclog/glogger	[no test files]
?   	google.golang.org/grpc/health	[no test files]
?   	google.golang.org/grpc/health/grpc_health_v1	[no test files]
?   	google.golang.org/grpc/internal	[no test files]
?   	google.golang.org/grpc/interop	[no test files]
?   	google.golang.org/grpc/interop/client	[no test files]
?   	google.golang.org/grpc/interop/grpc_testing	[no test files]
?   	google.golang.org/grpc/interop/server	[no test files]
ok  	google.golang.org/grpc/metadata	0.004s
?   	google.golang.org/grpc/naming	[no test files]
?   	google.golang.org/grpc/peer	[no test files]
ok  	google.golang.org/grpc/reflection	0.029s
?   	google.golang.org/grpc/reflection/grpc_reflection_v1alpha	[no test files]
?   	google.golang.org/grpc/reflection/grpc_testing	[no test files]
?   	google.golang.org/grpc/stress/client	[no test files]
?   	google.golang.org/grpc/stress/grpc_testing	[no test files]
?   	google.golang.org/grpc/stress/metrics_client	[no test files]
ok  	google.golang.org/grpc/test	94.693s
?   	google.golang.org/grpc/test/codec_perf	[no test files]
?   	google.golang.org/grpc/test/grpc_testing	[no test files]
ok  	google.golang.org/grpc/transport	12.574s
2016-11-29 11:07:10 -08:00
Roland Bracewell Shoemaker e187c92715 Add gRPC client side metrics (#2151)
Fixes #1880.

Updates google.golang.org/grpc and github.com/jmhodges/clock, both test suites pass. A few of the gRPC interfaces changed so this also fixes those breakages.
2016-09-09 15:17:36 -04:00
Jacob Hoffman-Andrews fd095b8881 Fix Docker test builds: latest certbot and grpc (#1991)
The `letsencrypt/boulder-tools` image was recently updated, pulling in version
0.8.0 of certbot. That version stores the output of `certonly` requests in a
different path. In test.sh, we check out a specific tagged release of certbot in
order to get its integration tests. Prior to this commit, we were using
certbot 0.8.0 with the integration tests from version 0.6.0 of certbot,
which looked for `certonly` output in the wrong place, and failed.

This commit changes test.sh to checkout the 0.8.0 branch, and also removes a
temporary shim we used to make the `certbot` command call out to the
`letsencrypt` command.

Also, since the latest version of `letsencrypt/boulder-tools` includes an updated
`protoc-gen-go`, this change also updates the support packages to match.
2016-06-29 10:54:03 -07:00
Roland Bracewell Shoemaker 7b29dba75d Add gRPC server-side interceptor (#1933)
Adds a server side unary RPC interceptor which includes basic stats. We could also use this to add a server request ID to the context.Context to identify the call through the system, but really I'd rather do that on the client side before the RPC is sent which requires the client interceptor implementation upstream. Also updates google.golang.org/grpc.

Updates #1880.
2016-06-20 11:27:32 -04:00
Roland Bracewell Shoemaker 92e0704b1b Allow gRPC clients to connect to multiple backends (#1918)
Fixes #1917 and #1755, also updates google.golang.org/grpc to b60d3e9e.
2016-06-15 16:50:56 -07:00
Jacob Hoffman-Andrews 26de87dfa2 Update grpc dep and regenerate caa-checker. (#1761)
* Update grpc dep and regenerate caa-checker.

The latest version generates a different format. This is a precursor to running
go generate in Travis.
2016-04-21 11:05:17 -07:00
Jacob Hoffman-Andrews e6c17e1717 Switch to new vendor style (#1747)
* Switch to new vendor style.

* Fix metrics generate command.

* Fix miekg/dns types_generate.

* Use generated copies of files.

* Update miekg to latest.

Fixes a problem with `go generate`.

* Set GO15VENDOREXPERIMENT.

* Build in letsencrypt/boulder.

* fix travis more.

* Exclude vendor instead of godeps.

* Replace some ...

* Fix unformatted cmd

* Fix errcheck for vendorexp

* Add GO15VENDOREXPERIMENT to Makefile.

* Temp disable errcheck.

* Restore master fetch.

* Restore errcheck.

* Build with 1.6 also.

* Match statsd.*"

* Skip errcheck unles Go1.6.

* Add other ignorepkg.

* Fix errcheck.

* move errcheck

* Remove go1.6 requirement.

* Put godep-restore with errcheck.

* Remove go1.6 dep.

* Revert master fetch revert.

* Remove -r flag from godep save.

* Set GO15VENDOREXPERIMENT in Dockerfile and remove _worskpace.

* Fix Godep version.
2016-04-18 12:51:36 -07:00