Skip to content

Commit

Permalink
Update Proxy SHA to latest with TCP proxy fixes.
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
PiotrSikora committed Sep 13, 2018
1 parent fc8bc26 commit fb09945
Show file tree
Hide file tree
Showing 15 changed files with 100 additions and 2 deletions.
2 changes: 1 addition & 1 deletion istio.deps
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@
"name": "PROXY_REPO_SHA",
"repoName": "proxy",
"file": "",
"lastStableSHA": "a35b8f44b78439c3beeb2d3e805ab6b991d14f24"
"lastStableSHA": "f49833732cab7e6f249760d1ec9d3ec19d19fe2c"
}
]
9 changes: 9 additions & 0 deletions mixer/test/client/check_cache_hit/check_cache_hit_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import (
const checkAttributesOkGet = `
{
"context.protocol": "http",
"context.reporter.uid": "",
"mesh1.ip": "[1 1 1 1]",
"mesh2.ip": "[0 0 0 0 0 0 0 0 0 0 255 255 204 152 189 116]",
"mesh3.ip": "[0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 8]",
Expand All @@ -38,6 +39,8 @@ const checkAttributesOkGet = `
"request.url_path": "/echo",
"source.uid": "POD11",
"source.namespace": "XYZ11",
"destination.uid": "",
"destination.namespace": "",
"target.name": "target-name",
"target.user": "target-user",
"target.uid": "POD222",
Expand All @@ -61,6 +64,7 @@ const checkAttributesOkGet = `
var reportAttributesOkGet = [...]string{`{
"context.protocol": "http",
"context.proxy_error_code": "-",
"context.reporter.uid": "",
"mesh1.ip": "[1 1 1 1]",
"mesh2.ip": "[0 0 0 0 0 0 0 0 0 0 255 255 204 152 189 116]",
"mesh3.ip": "[0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 8]",
Expand All @@ -75,6 +79,8 @@ var reportAttributesOkGet = [...]string{`{
"source.namespace": "XYZ11",
"destination.ip": "[127 0 0 1]",
"destination.port": "*",
"destination.uid": "",
"destination.namespace": "",
"target.name": "target-name",
"target.user": "target-user",
"target.uid": "POD222",
Expand Down Expand Up @@ -108,6 +114,7 @@ var reportAttributesOkGet = [...]string{`{
`{
"context.protocol": "http",
"context.proxy_error_code": "-",
"context.reporter.uid": "",
"mesh1.ip": "[1 1 1 1]",
"mesh2.ip": "[0 0 0 0 0 0 0 0 0 0 255 255 204 152 189 116]",
"mesh3.ip": "[0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 8]",
Expand All @@ -122,6 +129,8 @@ var reportAttributesOkGet = [...]string{`{
"source.namespace": "XYZ11",
"destination.ip": "[127 0 0 1]",
"destination.port": "*",
"destination.uid": "",
"destination.namespace": "",
"target.name": "target-name",
"target.user": "target-user",
"target.uid": "POD222",
Expand Down
12 changes: 12 additions & 0 deletions mixer/test/client/check_report/check_report_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import (
const checkAttributesOkGet = `
{
"context.protocol": "http",
"context.reporter.uid": "",
"mesh1.ip": "[1 1 1 1]",
"mesh2.ip": "[0 0 0 0 0 0 0 0 0 0 255 255 204 152 189 116]",
"mesh3.ip": "[0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 8]",
Expand All @@ -37,6 +38,8 @@ const checkAttributesOkGet = `
"request.url_path": "/echo",
"source.uid": "POD11",
"source.namespace": "XYZ11",
"destination.uid": "",
"destination.namespace": "",
"target.name": "target-name",
"target.user": "target-user",
"target.uid": "POD222",
Expand All @@ -59,6 +62,7 @@ const reportAttributesOkGet = `
{
"context.protocol": "http",
"context.proxy_error_code": "-",
"context.reporter.uid": "",
"mesh1.ip": "[1 1 1 1]",
"mesh2.ip": "[0 0 0 0 0 0 0 0 0 0 255 255 204 152 189 116]",
"mesh3.ip": "[0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 8]",
Expand All @@ -73,6 +77,8 @@ const reportAttributesOkGet = `
"source.namespace": "XYZ11",
"destination.ip": "[127 0 0 1]",
"destination.port": "*",
"destination.uid": "",
"destination.namespace": "",
"target.name": "target-name",
"target.user": "target-user",
"target.uid": "POD222",
Expand Down Expand Up @@ -109,6 +115,7 @@ const reportAttributesOkGet = `
const checkAttributesOkPost = `
{
"context.protocol": "http",
"context.reporter.uid": "",
"mesh1.ip": "[1 1 1 1]",
"mesh2.ip": "[0 0 0 0 0 0 0 0 0 0 255 255 204 152 189 116]",
"mesh3.ip": "[0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 8]",
Expand All @@ -121,6 +128,8 @@ const checkAttributesOkPost = `
"request.url_path": "/echo",
"source.uid": "POD11",
"source.namespace": "XYZ11",
"destination.uid": "",
"destination.namespace": "",
"target.name": "target-name",
"target.user": "target-user",
"target.uid": "POD222",
Expand All @@ -143,6 +152,7 @@ const reportAttributesOkPost = `
{
"context.protocol": "http",
"context.proxy_error_code": "-",
"context.reporter.uid": "",
"mesh1.ip": "[1 1 1 1]",
"mesh2.ip": "[0 0 0 0 0 0 0 0 0 0 255 255 204 152 189 116]",
"mesh3.ip": "[0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 8]",
Expand All @@ -157,6 +167,8 @@ const reportAttributesOkPost = `
"source.namespace": "XYZ11",
"destination.ip": "[127 0 0 1]",
"destination.port": "*",
"destination.uid": "",
"destination.namespace": "",
"target.name": "target-name",
"target.user": "target-user",
"target.uid": "POD222",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import (
const checkAttributesOkPost = `
{
"context.protocol": "http",
"context.reporter.uid": "",
"mesh1.ip": "[1 1 1 1]",
"mesh2.ip": "[0 0 0 0 0 0 0 0 0 0 255 255 204 152 189 116]",
"request.host": "*",
Expand All @@ -34,6 +35,8 @@ const checkAttributesOkPost = `
"request.method": "POST",
"request.scheme": "http",
"request.url_path": "/echo",
"destination.uid": "",
"destination.namespace": "",
"target.name": "target-name",
"target.user": "target-user",
"target.uid": "POD222",
Expand All @@ -56,6 +59,7 @@ const reportAttributesOkPost = `
{
"context.protocol": "http",
"context.proxy_error_code": "-",
"context.reporter.uid": "",
"mesh1.ip": "[1 1 1 1]",
"mesh2.ip": "[0 0 0 0 0 0 0 0 0 0 255 255 204 152 189 116]",
"request.host": "*",
Expand All @@ -67,6 +71,8 @@ const reportAttributesOkPost = `
"request.url_path": "/echo",
"destination.ip": "[127 0 0 1]",
"destination.port": "*",
"destination.uid": "",
"destination.namespace": "",
"target.name": "target-name",
"target.user": "target-user",
"target.uid": "POD222",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,15 @@ const reportAttributesOkPostOpen = `
{
"context.protocol": "tcp",
"context.time": "*",
"context.reporter.uid": "",
"mesh1.ip": "[1 1 1 1]",
"source.ip": "[127 0 0 1]",
"target.uid": "POD222",
"target.namespace": "XYZ222",
"destination.ip": "[127 0 0 1]",
"destination.port": "*",
"destination.uid": "",
"destination.namespace": "",
"connection.mtls": false,
"origin.ip": "[127 0 0 1]",
"connection.received.bytes": "*",
Expand All @@ -46,12 +49,15 @@ const reportAttributesOkPostClose = `
{
"context.protocol": "tcp",
"context.time": "*",
"context.reporter.uid": "",
"mesh1.ip": "[1 1 1 1]",
"source.ip": "[127 0 0 1]",
"target.uid": "POD222",
"target.namespace": "XYZ222",
"destination.ip": "[127 0 0 1]",
"destination.port": "*",
"destination.uid": "",
"destination.namespace": "",
"connection.mtls": false,
"origin.ip": "[127 0 0 1]",
"connection.received.bytes": "*",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,9 +120,9 @@ static_resources:
// Report attributes from a good GET request
const reportAttributesOkGet = `
{
"destination.uid": "pod1.ns2",
"context.protocol": "http",
"context.proxy_error_code": "-",
"context.reporter.uid": "",
"mesh1.ip": "[1 1 1 1]",
"mesh2.ip": "[0 0 0 0 0 0 0 0 0 0 255 255 204 152 189 116]",
"request.host": "*",
Expand All @@ -134,6 +134,8 @@ const reportAttributesOkGet = `
"request.url_path": "/echo",
"destination.ip": "[127 0 0 1]",
"destination.port": "*",
"destination.uid": "pod1.ns2",
"destination.namespace": "",
"target.name": "target-name",
"target.user": "target-user",
"target.uid": "POD222",
Expand Down
3 changes: 3 additions & 0 deletions mixer/test/client/dynamic_listener/dynamic_listener_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ static_resources:
// Check attributes from a good GET request
const checkAttributesOkGet = `
{
"context.reporter.uid": "",
"connection.mtls": false,
"origin.ip": "[127 0 0 1]",
"context.protocol": "http",
Expand All @@ -98,6 +99,8 @@ const checkAttributesOkGet = `
"request.method": "GET",
"request.scheme": "http",
"request.url_path": "/echo",
"destination.uid": "",
"destination.namespace": "",
"target.namespace": "XYZ222",
"target.uid": "POD222",
"request.headers": {
Expand Down
9 changes: 9 additions & 0 deletions mixer/test/client/failed_request/failed_request_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ const (
const checkAttributesMixerFail = `
{
"context.protocol": "http",
"context.reporter.uid": "",
"mesh1.ip": "[1 1 1 1]",
"mesh2.ip": "[0 0 0 0 0 0 0 0 0 0 255 255 204 152 189 116]",
"mesh3.ip": "[0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 8]",
Expand All @@ -43,6 +44,8 @@ const checkAttributesMixerFail = `
"request.url_path": "/echo",
"source.uid": "POD11",
"source.namespace": "XYZ11",
"destination.uid": "",
"destination.namespace": "",
"target.name": "target-name",
"target.user": "target-user",
"target.uid": "POD222",
Expand All @@ -67,6 +70,7 @@ const reportAttributesMixerFail = `
"check.error_message": "UNAUTHENTICATED:Unauthenticated by mixer.",
"context.protocol": "http",
"context.proxy_error_code": "UAEX",
"context.reporter.uid": "",
"mesh1.ip": "[1 1 1 1]",
"mesh2.ip": "[0 0 0 0 0 0 0 0 0 0 255 255 204 152 189 116]",
"mesh3.ip": "[0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 8]",
Expand All @@ -79,6 +83,8 @@ const reportAttributesMixerFail = `
"request.url_path": "/echo",
"source.uid": "POD11",
"source.namespace": "XYZ11",
"destination.uid": "",
"destination.namespace": "",
"target.name": "target-name",
"target.user": "target-user",
"target.uid": "POD222",
Expand Down Expand Up @@ -117,6 +123,7 @@ const reportAttributesBackendFail = `
{
"context.protocol": "http",
"context.proxy_error_code": "-",
"context.reporter.uid": "",
"mesh1.ip": "[1 1 1 1]",
"mesh2.ip": "[0 0 0 0 0 0 0 0 0 0 255 255 204 152 189 116]",
"mesh3.ip": "[0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 8]",
Expand All @@ -131,6 +138,8 @@ const reportAttributesBackendFail = `
"source.namespace": "XYZ11",
"destination.ip": "[127 0 0 1]",
"destination.port": "*",
"destination.uid": "",
"destination.namespace": "",
"target.name": "target-name",
"target.user": "target-user",
"target.uid": "POD222",
Expand Down
3 changes: 3 additions & 0 deletions mixer/test/client/fault_inject/fault_inject_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ const reportAttributes = `
{
"context.protocol": "http",
"context.proxy_error_code": "FI",
"context.reporter.uid": "",
"mesh1.ip": "[1 1 1 1]",
"mesh2.ip": "[0 0 0 0 0 0 0 0 0 0 255 255 204 152 189 116]",
"mesh3.ip": "[0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 8]",
Expand All @@ -37,6 +38,8 @@ const reportAttributes = `
"request.scheme": "http",
"source.uid": "POD11",
"source.namespace": "XYZ11",
"destination.uid": "",
"destination.namespace": "",
"target.name": "target-name",
"target.user": "target-user",
"target.uid": "POD222",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ const secIstioAuthUserinfoHeaderValue = `{"aud":"aud1","exp":20000000000,` +
var checkAttributesOkGet = `
{
"context.protocol": "http",
"context.reporter.uid": "",
"mesh1.ip": "[1 1 1 1]",
"mesh2.ip": "[0 0 0 0 0 0 0 0 0 0 255 255 204 152 189 116]",
"mesh3.ip": "[0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 8]",
Expand All @@ -60,6 +61,8 @@ var checkAttributesOkGet = `
"request.scheme": "http",
"source.uid": "POD11",
"source.namespace": "XYZ11",
"destination.uid": "",
"destination.namespace": "",
"target.name": "target-name",
"target.user": "target-user",
"target.uid": "POD222",
Expand Down Expand Up @@ -92,6 +95,7 @@ var reportAttributesOkGet = `
{
"context.protocol": "http",
"context.proxy_error_code": "-",
"context.reporter.uid": "",
"mesh1.ip": "[1 1 1 1]",
"mesh2.ip": "[0 0 0 0 0 0 0 0 0 0 255 255 204 152 189 116]",
"mesh3.ip": "[0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 8]",
Expand All @@ -105,6 +109,8 @@ var reportAttributesOkGet = `
"source.namespace": "XYZ11",
"destination.ip": "[127 0 0 1]",
"destination.port": "*",
"destination.uid": "",
"destination.namespace": "",
"target.name": "target-name",
"target.user": "target-user",
"target.uid": "POD222",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ const secIstioAuthUserinfoHeaderValue = `{"aud":"aud1","exp":20000000000,` +
var checkAttributesOkGet = `
{
"context.protocol": "http",
"context.reporter.uid": "",
"mesh1.ip": "[1 1 1 1]",
"mesh2.ip": "[0 0 0 0 0 0 0 0 0 0 255 255 204 152 189 116]",
"mesh3.ip": "[0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 8]",
Expand All @@ -59,6 +60,8 @@ var checkAttributesOkGet = `
"request.scheme": "http",
"source.uid": "POD11",
"source.namespace": "XYZ11",
"destination.uid": "",
"destination.namespace": "",
"target.name": "target-name",
"target.user": "target-user",
"target.uid": "POD222",
Expand Down Expand Up @@ -90,6 +93,7 @@ var reportAttributesOkGet = `
{
"context.protocol": "http",
"context.proxy_error_code": "-",
"context.reporter.uid": "",
"mesh1.ip": "[1 1 1 1]",
"mesh2.ip": "[0 0 0 0 0 0 0 0 0 0 255 255 204 152 189 116]",
"mesh3.ip": "[0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 8]",
Expand All @@ -103,6 +107,8 @@ var reportAttributesOkGet = `
"source.namespace": "XYZ11",
"destination.ip": "[127 0 0 1]",
"destination.port": "*",
"destination.uid": "",
"destination.namespace": "",
"target.name": "target-name",
"target.user": "target-user",
"target.uid": "POD222",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ const secIstioAuthUserinfoHeaderValue = `{"aud":"aud1","exp":20000000000,` +
var checkAttributesOkGet = `
{
"context.protocol": "http",
"context.reporter.uid": "",
"mesh1.ip": "[1 1 1 1]",
"mesh2.ip": "[0 0 0 0 0 0 0 0 0 0 255 255 204 152 189 116]",
"mesh3.ip": "[0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 8]",
Expand All @@ -62,6 +63,8 @@ var checkAttributesOkGet = `
"source.namespace": "XYZ11",
"source.principal": "issuer@foo.com/sub@foo.com",
"source.user": "issuer@foo.com/sub@foo.com",
"destination.uid": "",
"destination.namespace": "",
"target.name": "target-name",
"target.user": "target-user",
"target.uid": "POD222",
Expand Down Expand Up @@ -94,6 +97,7 @@ var reportAttributesOkGet = `
{
"context.protocol": "http",
"context.proxy_error_code": "-",
"context.reporter.uid": "",
"mesh1.ip": "[1 1 1 1]",
"mesh2.ip": "[0 0 0 0 0 0 0 0 0 0 255 255 204 152 189 116]",
"mesh3.ip": "[0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 8]",
Expand All @@ -109,6 +113,8 @@ var reportAttributesOkGet = `
"source.user": "issuer@foo.com/sub@foo.com",
"destination.ip": "[127 0 0 1]",
"destination.port": "*",
"destination.uid": "",
"destination.namespace": "",
"target.name": "target-name",
"target.user": "target-user",
"target.uid": "POD222",
Expand Down
Loading

0 comments on commit fb09945

Please sign in to comment.