From 0e7d5ad5a6a7ba79f5651f47a360872446ad0cc9 Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Mon, 24 Oct 2022 14:49:30 -0400 Subject: [PATCH 01/19] Update dependencies and changelog --- CHANGELOG.md | 26 +++++++++++ go.mod | 51 +++++++++++----------- go.sum | 101 ++++++++++++++++++++++++------------------- network-tests/go.mod | 4 +- network-tests/go.sum | 2 + 5 files changed, 111 insertions(+), 73 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f8449df12..c355de0f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,29 @@ +# Release 0.26.11 + +## What's New + +This is a bugfix release and contains no new features. + +## Component Updates and Bug Fixes + +* github.com/openziti/agent: [v1.0.4 -> v1.0.5](https://github.com/openziti/agent/compare/v1.0.4...v1.0.5) +* github.com/openziti/channel/v2: [v2.0.9 -> v2.0.11](https://github.com/openziti/channel/compare/v2.0.9...v2.0.11) +* github.com/openziti/edge: [v0.24.12 -> v0.24.27](https://github.com/openziti/edge/compare/v0.24.12...v0.24.27) + * [Issue #1217](https://github.com/openziti/edge/issues/1217) - Ziti Edge lists the edge router to be offline after recovering from an internet fluctuation + +* github.com/openziti/fabric: [v0.21.9 -> v0.21.16](https://github.com/openziti/fabric/compare/v0.21.9...v0.21.16) +* github.com/openziti/foundation/v2: [v2.0.6 -> v2.0.7](https://github.com/openziti/foundation/compare/v2.0.6...v2.0.7) +* github.com/openziti/identity: [v1.0.18 -> v1.0.20](https://github.com/openziti/identity/compare/v1.0.18...v1.0.20) +* github.com/openziti/sdk-golang: [v0.16.135 -> v0.16.142](https://github.com/openziti/sdk-golang/compare/v0.16.135...v0.16.142) + * [Issue #314](https://github.com/openziti/sdk-golang/issues/314) - Incorrect documentation for grpc-example + * [Issue #317](https://github.com/openziti/sdk-golang/issues/317) - No documenation for call example + * [Issue #311](https://github.com/openziti/sdk-golang/issues/311) - Chat Client and Server needs documentation + +* github.com/openziti/storage: [v0.1.25 -> v0.1.26](https://github.com/openziti/storage/compare/v0.1.25...v0.1.26) +* github.com/openziti/transport/v2: [v2.0.36 -> v2.0.38](https://github.com/openziti/transport/compare/v2.0.36...v2.0.38) +* github.com/openziti/metrics: [v1.1.4 -> v1.1.5](https://github.com/openziti/metrics/compare/v1.1.4...v1.1.5) +* github.com/openziti/ziti: [v0.26.10 -> v0.26.11](https://github.com/openziti/ziti/compare/v0.26.10...v0.26.11) + # Release 0.26.10 ## What's New diff --git a/go.mod b/go.mod index a2bd51ce8..1341378a3 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/fatih/color v1.13.0 github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa github.com/go-acme/lego/v4 v4.2.0 - github.com/go-openapi/runtime v0.24.1 + github.com/go-openapi/runtime v0.24.2 github.com/go-openapi/strfmt v0.21.3 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b github.com/golang/protobuf v1.5.2 @@ -19,16 +19,16 @@ require ( github.com/jedib0t/go-pretty/v6 v6.4.0 github.com/keybase/go-ps v0.0.0-20190827175125-91aafc93ba19 github.com/michaelquigley/pfxlog v0.6.9 - github.com/openziti/agent v1.0.4 - github.com/openziti/channel/v2 v2.0.9 - github.com/openziti/edge v0.24.12 - github.com/openziti/fabric v0.21.9 - github.com/openziti/foundation/v2 v2.0.6 - github.com/openziti/identity v1.0.18 + github.com/openziti/agent v1.0.5 + github.com/openziti/channel/v2 v2.0.11 + github.com/openziti/edge v0.24.27 + github.com/openziti/fabric v0.21.16 + github.com/openziti/foundation/v2 v2.0.7 + github.com/openziti/identity v1.0.20 github.com/openziti/runzmd v1.0.0 - github.com/openziti/sdk-golang v0.16.135 - github.com/openziti/storage v0.1.25 - github.com/openziti/transport/v2 v2.0.36 + github.com/openziti/sdk-golang v0.16.142 + github.com/openziti/storage v0.1.26 + github.com/openziti/transport/v2 v2.0.38 github.com/openziti/xweb/v2 v2.0.2 github.com/openziti/ziti-db-explorer v1.1.1 github.com/pborman/uuid v1.2.0 @@ -40,9 +40,9 @@ require ( github.com/spf13/cobra v1.6.0 github.com/spf13/pflag v1.0.5 github.com/spf13/viper v1.10.0 - github.com/stretchr/testify v1.8.0 + github.com/stretchr/testify v1.8.1 go.etcd.io/bbolt v1.3.6 - golang.org/x/net v0.0.0-20220923203811-8be639271d50 + golang.org/x/net v0.1.0 google.golang.org/grpc v1.42.0 google.golang.org/protobuf v1.28.1 gopkg.in/AlecAivazis/survey.v1 v1.8.7 @@ -70,7 +70,7 @@ require ( github.com/dgryski/dgoogauth v0.0.0-20190221195224-5a805980a5f3 // indirect github.com/dineshappavoo/basex v0.0.0-20170425072625-481a6f6dc663 // indirect github.com/disintegration/imaging v1.6.2 // indirect - github.com/dlclark/regexp2 v1.4.0 // indirect + github.com/dlclark/regexp2 v1.7.0 // indirect github.com/docker/go-units v0.4.0 // indirect github.com/ef-ds/deque v1.0.4 // indirect github.com/eliukblau/pixterm/pkg/ansimage v0.0.0-20191210081756-9fb6cf8c2f75 // indirect @@ -88,7 +88,7 @@ require ( github.com/go-openapi/validate v0.22.0 // indirect github.com/go-resty/resty/v2 v2.7.0 // indirect github.com/golang-jwt/jwt v3.2.2+incompatible // indirect - github.com/gomarkdown/markdown v0.0.0-20191123064959-2c17d62f5098 // indirect + github.com/gomarkdown/markdown v0.0.0-20221013030248-663e2500819c // indirect github.com/google/uuid v1.3.0 // indirect github.com/gorilla/handlers v1.5.1 // indirect github.com/gorilla/mux v1.8.0 // indirect @@ -107,8 +107,8 @@ require ( github.com/kataras/go-events v0.0.3-0.20201007151548-c411dc70c0a6 // indirect github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect github.com/kr/pty v1.1.8 // indirect - github.com/kyokomi/emoji/v2 v2.2.8 // indirect - github.com/lucasb-eyer/go-colorful v1.0.3 // indirect + github.com/kyokomi/emoji/v2 v2.2.10 // indirect + github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/lucsky/cuid v1.2.1 // indirect github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect github.com/magiconair/properties v1.8.5 // indirect @@ -130,10 +130,10 @@ require ( github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/openziti/dilithium v0.3.3 // indirect github.com/openziti/jwks v1.0.2 // indirect - github.com/openziti/metrics v1.1.4 // indirect + github.com/openziti/metrics v1.1.5 // indirect github.com/openziti/x509-claims v1.0.3 // indirect github.com/orcaman/concurrent-map/v2 v2.0.0 // indirect - github.com/parallaxsecond/parsec-client-go v0.0.0-20220111122524-cb78842db373 // indirect + github.com/parallaxsecond/parsec-client-go v0.0.0-20221025095442-f0a77d263cf9 // indirect github.com/pelletier/go-toml v1.9.4 // indirect github.com/pkg/term v1.2.0-beta.2 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect @@ -157,15 +157,14 @@ require ( github.com/yusufpapurcu/wmi v1.2.2 // indirect go.mongodb.org/mongo-driver v1.10.0 // indirect go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352 // indirect - golang.org/x/crypto v0.0.0-20221012134737-56aed061732a // indirect - golang.org/x/image v0.0.0-20191206065243-da761ea9ff43 // indirect - golang.org/x/mod v0.5.1 // indirect + golang.org/x/crypto v0.1.0 // indirect + golang.org/x/image v0.1.0 // indirect + golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0 // indirect - golang.org/x/sys v0.0.0-20221010170243-090e33056c14 // indirect - golang.org/x/term v0.0.0-20220919170432-7a66f970e087 // indirect - golang.org/x/text v0.3.7 // indirect - golang.org/x/tools v0.1.7 // indirect - golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect + golang.org/x/sys v0.1.0 // indirect + golang.org/x/term v0.1.0 // indirect + golang.org/x/text v0.4.0 // indirect + golang.org/x/tools v0.1.12 // indirect google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa // indirect gopkg.in/ini.v1 v1.66.2 // indirect gopkg.in/square/go-jose.v2 v2.5.1 // indirect diff --git a/go.sum b/go.sum index cd5521f3d..794c0ea1f 100644 --- a/go.sum +++ b/go.sum @@ -186,8 +186,9 @@ github.com/dineshappavoo/basex v0.0.0-20170425072625-481a6f6dc663/go.mod h1:Kad2 github.com/disintegration/imaging v1.6.2 h1:w1LecBlG2Lnp8B3jk5zSuNqd7b4DXhcjwek1ei82L+c= github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4= github.com/dlclark/regexp2 v1.1.6/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= -github.com/dlclark/regexp2 v1.4.0 h1:F1rxgk7p4uKjwIQxBs9oAXe5CqrXlCduYEJvrF4u93E= github.com/dlclark/regexp2 v1.4.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= +github.com/dlclark/regexp2 v1.7.0 h1:7lJfhqlPssTb1WQx4yvTHN0uElPEv52sbaECrAQxjAo= +github.com/dlclark/regexp2 v1.7.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= github.com/dnsimple/dnsimple-go v0.63.0/go.mod h1:O5TJ0/U6r7AfT8niYNlmohpLbCSG+c71tQlGr9SeGrg= github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= @@ -263,8 +264,8 @@ github.com/go-openapi/jsonreference v0.20.0/go.mod h1:Ag74Ico3lPc+zR+qjn4XBUmXym github.com/go-openapi/loads v0.21.1/go.mod h1:/DtAMXXneXFjbQMGEtbamCZb+4x7eGwkvZCvBmwUG+g= github.com/go-openapi/loads v0.21.2 h1:r2a/xFIYeZ4Qd2TnGpWDIQNcP80dIaZgf704za8enro= github.com/go-openapi/loads v0.21.2/go.mod h1:Jq58Os6SSGz0rzh62ptiu8Z31I+OTHqmULx5e/gJbNw= -github.com/go-openapi/runtime v0.24.1 h1:Sml5cgQKGYQHF+M7yYSHaH1eOjvTykrddTE/KtQVjqo= -github.com/go-openapi/runtime v0.24.1/go.mod h1:AKurw9fNre+h3ELZfk6ILsfvPN+bvvlaU/M9q/r9hpk= +github.com/go-openapi/runtime v0.24.2 h1:yX9HMGQbz32M87ECaAhGpJjBmErO3QLcgdZj9BzGx7c= +github.com/go-openapi/runtime v0.24.2/go.mod h1:AKurw9fNre+h3ELZfk6ILsfvPN+bvvlaU/M9q/r9hpk= github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I= github.com/go-openapi/spec v0.20.6/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA= github.com/go-openapi/spec v0.20.7 h1:1Rlu/ZrOCCob0n+JKKJAWhNWMPW8bOZRg8FJaY+0SKI= @@ -358,8 +359,9 @@ github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiu github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y= -github.com/gomarkdown/markdown v0.0.0-20191123064959-2c17d62f5098 h1:Qxs3bNRWe8GTcKMxYOSXm0jx6j0de8XUtb/fsP3GZ0I= github.com/gomarkdown/markdown v0.0.0-20191123064959-2c17d62f5098/go.mod h1:aii0r/K0ZnHv7G0KF7xy1v0A7s2Ljrb5byB7MO5p6TU= +github.com/gomarkdown/markdown v0.0.0-20221013030248-663e2500819c h1:iyaGYbCmcYK0Ja9a3OUa2Fo+EaN0cbLu0eKpBwPFzc8= +github.com/gomarkdown/markdown v0.0.0-20221013030248-663e2500819c/go.mod h1:JDGcbDT52eL4fju3sZ4TeHGsQwhG9nbDV21aMyhwPoA= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -529,8 +531,9 @@ github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kyokomi/emoji/v2 v2.2.8 h1:jcofPxjHWEkJtkIbcLHvZhxKgCPl6C7MyjTrD4KDqUE= github.com/kyokomi/emoji/v2 v2.2.8/go.mod h1:JUcn42DTdsXJo1SWanHh4HKDEyPaR5CqkmoirZZP9qE= +github.com/kyokomi/emoji/v2 v2.2.10 h1:1z5eMVcxFifsmEoNpdeq4UahbcicgQ4FEHuzrCVwmiI= +github.com/kyokomi/emoji/v2 v2.2.10/go.mod h1:JUcn42DTdsXJo1SWanHh4HKDEyPaR5CqkmoirZZP9qE= github.com/labbsr0x/bindman-dns-webhook v1.0.2/go.mod h1:p6b+VCXIR8NYKpDr8/dg1HKfQoRHCdcsROXKvmoehKA= github.com/labbsr0x/goh v1.0.1/go.mod h1:8K2UhVoaWXcCU7Lxoa2omWnC8gyW8px7/lmO61c027w= github.com/labstack/echo/v4 v4.1.11/go.mod h1:i541M3Fj6f76NZtHSj7TXnyM8n2gaodfvfxNnFqi74g= @@ -538,8 +541,9 @@ github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL github.com/linode/linodego v0.21.0/go.mod h1:UTpq1JUZD0CZsJ8rt+0CRkqbzrp1MbGakVPt2DXY5Mk= github.com/liquidweb/liquidweb-go v1.6.1/go.mod h1:UDcVnAMDkZxpw4Y7NOHkqoeiGacVLEIG/i5J9cyixzQ= github.com/lucas-clemente/quic-go v0.18.0/go.mod h1:yXttHsSNxQi8AWijC/vLP+OJczXqzHSOcJrM5ITUlCg= -github.com/lucasb-eyer/go-colorful v1.0.3 h1:QIbQXiugsb+q10B+MI+7DI1oQLdmnep86tWFlaaUAac= github.com/lucasb-eyer/go-colorful v1.0.3/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= +github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/lucsky/cuid v1.2.1 h1:MtJrL2OFhvYufUIn48d35QGXyeTC8tn0upumW9WwTHg= github.com/lucsky/cuid v1.2.1/go.mod h1:QaaJqckboimOmhRSJXSx/+IT+VTfxfPGSo/6mfgUfmE= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= @@ -667,32 +671,32 @@ github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+ github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= -github.com/openziti/agent v1.0.4 h1:QuTe98uTJ3OFl2Zrw+Pkk06X8pQcV2/kzYxJ8G+HxIY= -github.com/openziti/agent v1.0.4/go.mod h1:k9gQv82hTTxdVSfMmD0LyWzCEy+9fWh2ISsg1llgRqU= -github.com/openziti/channel/v2 v2.0.9 h1:vkB44EsSMIIxCcua0JK7VpUrBi9N7bNb42tuUAtOw28= -github.com/openziti/channel/v2 v2.0.9/go.mod h1:bHjCw8iZngh8QfUwloqi5JeDszS93kQfW8e7fEt5OJY= +github.com/openziti/agent v1.0.5 h1:wZUcMYqvwspOjDSaejMtczSXnJoqK0edI9HcEIFsTIs= +github.com/openziti/agent v1.0.5/go.mod h1:6APWgkPP6Uxf1/VyirdTVLAJxwam2vVyakrVw6yvs40= +github.com/openziti/channel/v2 v2.0.11 h1:eAK2xu9em+J1oABx/9c+i51qum3gojrwh9AHwkfSgSw= +github.com/openziti/channel/v2 v2.0.11/go.mod h1:efLBuJu+lRZXvK/UUI08cocJiI3XWHH24Ae1EGoxtB0= github.com/openziti/dilithium v0.3.3 h1:PLgQ6PMNLSTzCFbX/h98cmudgz/cU6TmjdSv5NAPD8k= github.com/openziti/dilithium v0.3.3/go.mod h1:vsCjI2AU/hon9e+dLhUFbCNGesJDj2ASgkySOcpmvjo= -github.com/openziti/edge v0.24.12 h1:ugZ1Uoz6+/7Fs0u5mN01H6gQDeu8cT0FJdEZJs/V5sU= -github.com/openziti/edge v0.24.12/go.mod h1:sIAjb03x6jqYyzaanliBTfF5q8DqGJHCmQ1k9nB9eN4= -github.com/openziti/fabric v0.21.9 h1:zMU3blfo9CUctHcwTetH/x/9+3+3c/NNy+4RuQG8zaw= -github.com/openziti/fabric v0.21.9/go.mod h1:YFAIBg42uMRGBJhZ1lwIBehsfN2jwXJvY0H4dvqpCM8= -github.com/openziti/foundation/v2 v2.0.6 h1:sN4SAVtvheuqdY6kGuCgS0d+2x2g+kAqwcv5v7LkKN4= -github.com/openziti/foundation/v2 v2.0.6/go.mod h1:M/RUF8wR2X3OE9buI+Gd3ac7FzrZkQ+g07XY/dX3X/U= -github.com/openziti/identity v1.0.18 h1:e57J8oudjoU6XNKgmxFjBeePNwxDBE6n0l3FdxDvWoA= -github.com/openziti/identity v1.0.18/go.mod h1:OVeskbGOZx7r7/nJ2qTZXCbE+lFSChGv7WFofN6TJWc= +github.com/openziti/edge v0.24.27 h1:ERNn4kUlQxUGC+cSiq/CDZUoHNX7mEpniqOxNvhTflU= +github.com/openziti/edge v0.24.27/go.mod h1:4Gi2bLSbYpOGs9Mf9kvBdTBO1VFvRtSoGwOqYDcBeLY= +github.com/openziti/fabric v0.21.16 h1:XukTHHn7IdzSzPPVnmte1dOqPoT34zXbZ0+stMKdw0I= +github.com/openziti/fabric v0.21.16/go.mod h1:Do8i/xAWGAMIBgNE54/jf56HZOlOo22BPgsVLNN2utc= +github.com/openziti/foundation/v2 v2.0.7 h1:QtpP0ntUhr/7uLR1iM7eEkrusQ2b2ZqTblgdq8cac9Y= +github.com/openziti/foundation/v2 v2.0.7/go.mod h1:Z0gnQsGJb/H/B+pixLtmCIpw1dBllD4QoT6LeD35WzA= +github.com/openziti/identity v1.0.20 h1:8nsQFHpqKS1ByD8QuPDxQWfS8CQEidyn5jFXWnXguX0= +github.com/openziti/identity v1.0.20/go.mod h1:X0WLWEgnM1iL8asNbuu7vUW0kZq8nnWKepMW214C9Mk= github.com/openziti/jwks v1.0.2 h1:32BGXIAnefS+v7uXKPb1x8/cQ7srek6Ai06dsrMTY4E= github.com/openziti/jwks v1.0.2/go.mod h1:KwO0x9FBG0aoJS5f6nH5xeHoplyR1H143SMI9kF0mC8= -github.com/openziti/metrics v1.1.4 h1:UGLU1kBJ3ztDO1SAs42qecN/BV4/JTPGH93LWvZwa4c= -github.com/openziti/metrics v1.1.4/go.mod h1:Wy7suQpju6oqWc1cmKA6+0Bh3izbudDGdfSqCuJ63UU= +github.com/openziti/metrics v1.1.5 h1:qhsGsYWdp7LxPCYi9WMGHGbjiHvsT1DtjM44JNHLZWk= +github.com/openziti/metrics v1.1.5/go.mod h1:B6RCuVRTpI3kEIhQlCvsHj3Pqi6bSnqFmRPgfgv9ico= github.com/openziti/runzmd v1.0.0 h1:EH7ZvjFdikhuJlHWuG2VlLK2ng2dV23pIJAw7yRsKkM= github.com/openziti/runzmd v1.0.0/go.mod h1:3w6vxdO3MCqD8emZWaSK+z4JN6D7XFCPiyymv0N4U3k= -github.com/openziti/sdk-golang v0.16.135 h1:9/pxkHGZJYUsdM03/rQksOz2S3i9C/sSUIHwmEbrxXk= -github.com/openziti/sdk-golang v0.16.135/go.mod h1:o4brIi4dvez9mM+IPtKuUN97RiGAwcY3D9zFm6SIMOI= -github.com/openziti/storage v0.1.25 h1:8HMNCR9pRKhZT8VMWad89zLntmZHLJVbWC2dDFxQ/BQ= -github.com/openziti/storage v0.1.25/go.mod h1:fQEDWSuEMn8lOYwDl1hPGMqQNjm2P3p+5y5Lz0uDZCo= -github.com/openziti/transport/v2 v2.0.36 h1:yttgXbFnj4adypuYFErb0TCOLR+v87j0se7iFw+rmIk= -github.com/openziti/transport/v2 v2.0.36/go.mod h1:EsuNHXUzdispjF9k4Kkql4SGd74rZyvJ3sp4dj77ki0= +github.com/openziti/sdk-golang v0.16.142 h1:bbo8cMk7zRGkqd8lNB4qzhtJK9VLihVWNLw9C0jzYHY= +github.com/openziti/sdk-golang v0.16.142/go.mod h1:AmAeDi6teVVXSTjDYktvKtx8y4hyp6TE5i2UjgSpgMk= +github.com/openziti/storage v0.1.26 h1:1tV4czY/TNmzX3raUZjbR8jVl5L92pdD0SjmdzCzUmE= +github.com/openziti/storage v0.1.26/go.mod h1:Zkm+4d2gckkIbuuCw/sKFWKKhPROZak3gLFzdII0KWQ= +github.com/openziti/transport/v2 v2.0.38 h1:9+EtBF052TtGvT5isuPj/SUTXNHg8RbkGBcEKfiUPd8= +github.com/openziti/transport/v2 v2.0.38/go.mod h1:FB/pqmA8RdUsoWtpTc6E/it6lLdA7GOugy9no3JDU/4= github.com/openziti/x509-claims v1.0.3 h1:HNdQ8Nf1agB3lBs1gahcO6zfkeS4S5xoQ2/PkY4HRX0= github.com/openziti/x509-claims v1.0.3/go.mod h1:Z0WIpBm6c4ecrpRKrou6Gk2wrLWxJO/+tuUwKh8VewE= github.com/openziti/xweb/v2 v2.0.2 h1:XYlVFriTq/U1wcUrc+XPnWJGhXh9NJPhtQ7+r3aC0cU= @@ -703,8 +707,8 @@ github.com/oracle/oci-go-sdk v24.2.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35uk github.com/orcaman/concurrent-map/v2 v2.0.0 h1:iSMwuBQvQ1nX5i9gYuGMiSy0fjWHmazdjF+NdSO9JzI= github.com/orcaman/concurrent-map/v2 v2.0.0/go.mod h1:9Eq3TG2oBe5FirmYWQfYO5iH1q0Jv47PLaNK++uCdOM= github.com/ovh/go-ovh v1.1.0/go.mod h1:AxitLZ5HBRPyUd+Zl60Ajaag+rNTdVXWIkzfrVuTXWA= -github.com/parallaxsecond/parsec-client-go v0.0.0-20220111122524-cb78842db373 h1:CUvH4JL/8OVy023LMER3dB/MerNQ6OIz4QV3E/JQ3UY= -github.com/parallaxsecond/parsec-client-go v0.0.0-20220111122524-cb78842db373/go.mod h1:gLH27qo/dvMhLTVVyMELpe3Tut7sOfkiDg7ZpeqKwsw= +github.com/parallaxsecond/parsec-client-go v0.0.0-20221025095442-f0a77d263cf9 h1:mOvehYivJ4Aqu2CPe3D3lv8jhqOI9/1o0THxJHBE0qw= +github.com/parallaxsecond/parsec-client-go v0.0.0-20221025095442-f0a77d263cf9/go.mod h1:gLH27qo/dvMhLTVVyMELpe3Tut7sOfkiDg7ZpeqKwsw= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= @@ -856,8 +860,9 @@ github.com/spf13/viper v1.10.0/go.mod h1:SoyBPwAtKDzypXNDFKN5kzH7ppppbGZtls1UpIy github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/objx v0.4.0 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= @@ -868,8 +873,9 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.7.4/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA= @@ -914,6 +920,7 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg= github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= @@ -975,9 +982,10 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201216223049-8b5274cf687f/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20221012134737-56aed061732a h1:NmSIgad6KjE6VvHciPZuNRTKxGhlPfD6OA87W/PLkqg= -golang.org/x/crypto v0.0.0-20221012134737-56aed061732a/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.1.0 h1:MDRAIl0xIo9Io2xV565hzXHw3zVseKrJKodhohM5CjU= +golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -991,8 +999,9 @@ golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMk golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20191206065243-da761ea9ff43 h1:gQ6GUSD102fPgli+Yb4cR/cGaHF7tNBt+GYoRCpGC7s= golang.org/x/image v0.0.0-20191206065243-da761ea9ff43/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.1.0 h1:r8Oj8ZA2Xy12/b5KZYj3tuv7NG/fBz3TwQVvpJ9l8Rk= +golang.org/x/image v0.1.0/go.mod h1:iyPr49SD/G/TBxYVB/9RRtGUT5eNbo2u4NamWeQcD5c= golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -1017,8 +1026,8 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.5.1 h1:OJxoQ/rynoF0dcCdI7cLPktw/hR2cueqYfjm43oqK38= -golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1074,8 +1083,10 @@ golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220923203811-8be639271d50 h1:vKyz8L3zkd+xrMeIaBsQ/MNVPVFSffdaU3ZyYlBGFnI= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220923203811-8be639271d50/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.1.0 h1:hZ/3BUoy5aId7sCpA/Tc5lt8DkFgdVS2onTpJsZ/fl0= +golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1103,6 +1114,7 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220923202941-7f9b1623fab7/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0 h1:cu5kTvlzcw1Q5S9f5ip1/cpiB4nXvw1XYzFPGgzLUOY= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1191,16 +1203,17 @@ golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20221010170243-090e33056c14 h1:k5II8e6QD8mITdi+okbbmR/cIyEbeXLBhy5Ha4nevyc= -golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0 h1:kunALQeHf1/185U1i0GOB/fy1IPRDDpuoOOqRReG57U= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.0.0-20220919170432-7a66f970e087 h1:tPwmk4vmvVCMdr98VgL4JH+qZxPL8fqlUOHnyOM8N3w= -golang.org/x/term v0.0.0-20220919170432-7a66f970e087/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.1.0 h1:g6Z6vPFA9dYBAF7DWcH6sCcOntplXsDKcliusYijMlw= +golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1209,8 +1222,9 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1278,12 +1292,11 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.7 h1:6j8CgantCy3yc8JGBqkDLMKWqZ0RDU2g1HVgacojGWQ= -golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= +golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= google.golang.org/api v0.0.0-20181030000543-1d582fd0359e/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= diff --git a/network-tests/go.mod b/network-tests/go.mod index 4bc6dfaff..5b717aa29 100644 --- a/network-tests/go.mod +++ b/network-tests/go.mod @@ -2,8 +2,6 @@ module github.com/openziti/ziti/network-tests go 1.19 -replace github.com/openziti/ziti => ../ - require ( github.com/openziti/fablab v0.4.7 github.com/openziti/sdk-golang v0.16.135 @@ -118,7 +116,7 @@ require ( github.com/openziti/transport/v2 v2.0.36 // indirect github.com/openziti/x509-claims v1.0.3 // indirect github.com/openziti/xweb/v2 v2.0.2 // indirect - github.com/openziti/ziti v0.26.8 // indirect + github.com/openziti/ziti v0.26.10 // indirect github.com/openziti/ziti-db-explorer v1.1.1 // indirect github.com/orcaman/concurrent-map/v2 v2.0.0 // indirect github.com/parallaxsecond/parsec-client-go v0.0.0-20220111122524-cb78842db373 // indirect diff --git a/network-tests/go.sum b/network-tests/go.sum index dd33d1965..321d8139b 100644 --- a/network-tests/go.sum +++ b/network-tests/go.sum @@ -623,6 +623,8 @@ github.com/openziti/x509-claims v1.0.3 h1:HNdQ8Nf1agB3lBs1gahcO6zfkeS4S5xoQ2/PkY github.com/openziti/x509-claims v1.0.3/go.mod h1:Z0WIpBm6c4ecrpRKrou6Gk2wrLWxJO/+tuUwKh8VewE= github.com/openziti/xweb/v2 v2.0.2 h1:XYlVFriTq/U1wcUrc+XPnWJGhXh9NJPhtQ7+r3aC0cU= github.com/openziti/xweb/v2 v2.0.2/go.mod h1:KQOOlnJk08EZT3TWkvDj/pbIUEVbgG0IrrNzl8gsi40= +github.com/openziti/ziti v0.26.10 h1:aPikHYJa/KvzgTiRW2hGw8f2L/+NsFgy8sbHXcuxwbU= +github.com/openziti/ziti v0.26.10/go.mod h1:hbl02rbQ8l6+kF/vXolNPCdZLQ3WKkSGEc7xeRPEl4c= github.com/openziti/ziti-db-explorer v1.1.1 h1:G0eoTby+aIjjt5TxEfR+FMI2CWd4RvZFjzaIMX2lEBw= github.com/openziti/ziti-db-explorer v1.1.1/go.mod h1:h76h7Tsb+khb0v+CqYKL6ifUfJbUMjGBFU2IvupfBE4= github.com/openziti/zitilab v0.1.1 h1:Ewp7qghV78Te1JWwMZV2tvkm0M0xHDJWTgx56sMx5bg= From e65637de35b5fa71a9a119cb26764f6d7e3efdf2 Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Fri, 28 Oct 2022 12:32:09 -0400 Subject: [PATCH 02/19] Test zitilab update --- .github/workflows/main.yml | 4 ++-- network-tests/go.mod | 7 +++---- network-tests/go.sum | 14 ++++++-------- network-tests/simple-transfer/main.go | 2 +- 4 files changed, 12 insertions(+), 15 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d827170fa..490c07905 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -137,7 +137,7 @@ jobs: - name: Test Ziti Command env: - ZITI_ROOT: dist/ + ZITI_ROOT: dist/bin/ run: | $(go env GOPATH)/bin/simple-transfer create $(go env GOPATH)/bin/simple-transfer up @@ -146,7 +146,7 @@ jobs: - name: Test Ziti Command Teardown if: always() env: - ZITI_ROOT: dist/ + ZITI_ROOT: dist/bin/ run: | $(go env GOPATH)/bin/simple-transfer dispose $(go env GOPATH)/bin/simple-transfer clean diff --git a/network-tests/go.mod b/network-tests/go.mod index 5b717aa29..18f6670d5 100644 --- a/network-tests/go.mod +++ b/network-tests/go.mod @@ -3,9 +3,9 @@ module github.com/openziti/ziti/network-tests go 1.19 require ( - github.com/openziti/fablab v0.4.7 + github.com/openziti/fablab v0.4.11 github.com/openziti/sdk-golang v0.16.135 - github.com/openziti/zitilab v0.1.1 + github.com/openziti/zitilab v0.1.8 github.com/sirupsen/logrus v1.9.0 github.com/spf13/cobra v1.6.0 ) @@ -22,7 +22,7 @@ require ( github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20211106181442-e4c1a74c66bd // indirect github.com/armon/go-metrics v0.3.10 // indirect github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d // indirect - github.com/aws/aws-sdk-go v1.44.114 // indirect + github.com/aws/aws-sdk-go v1.44.118 // indirect github.com/biogo/store v0.0.0-20200525035639-8c94ae1e7c9c // indirect github.com/blang/semver v3.5.1+incompatible // indirect github.com/boltdb/bolt v1.3.1 // indirect @@ -111,7 +111,6 @@ require ( github.com/openziti/identity v1.0.18 // indirect github.com/openziti/jwks v1.0.2 // indirect github.com/openziti/metrics v1.1.4 // indirect - github.com/openziti/runzmd v1.0.0 // indirect github.com/openziti/storage v0.1.25 // indirect github.com/openziti/transport/v2 v2.0.36 // indirect github.com/openziti/x509-claims v1.0.3 // indirect diff --git a/network-tests/go.sum b/network-tests/go.sum index 321d8139b..4ce11cf39 100644 --- a/network-tests/go.sum +++ b/network-tests/go.sum @@ -105,8 +105,8 @@ github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:W github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d h1:Byv0BzEl3/e6D5CLfI0j/7hiIEtvGVFPCZ7Ei2oq8iQ= github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= github.com/aws/aws-sdk-go v1.30.20/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= -github.com/aws/aws-sdk-go v1.44.114 h1:plIkWc/RsHr3DXBj4MEw9sEW4CcL/e2ryokc+CKyq1I= -github.com/aws/aws-sdk-go v1.44.114/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= +github.com/aws/aws-sdk-go v1.44.118 h1:FJOqIRTukf7+Ulp047/k7JB6eqMXNnj7eb+coORThHQ= +github.com/aws/aws-sdk-go v1.44.118/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= @@ -599,8 +599,8 @@ github.com/openziti/channel/v2 v2.0.9 h1:vkB44EsSMIIxCcua0JK7VpUrBi9N7bNb42tuUAt github.com/openziti/channel/v2 v2.0.9/go.mod h1:bHjCw8iZngh8QfUwloqi5JeDszS93kQfW8e7fEt5OJY= github.com/openziti/edge v0.24.12 h1:ugZ1Uoz6+/7Fs0u5mN01H6gQDeu8cT0FJdEZJs/V5sU= github.com/openziti/edge v0.24.12/go.mod h1:sIAjb03x6jqYyzaanliBTfF5q8DqGJHCmQ1k9nB9eN4= -github.com/openziti/fablab v0.4.7 h1:922uJM16ryYaUKzzcb2EWLunoK7xdZ5B/kZ3p/HGmFg= -github.com/openziti/fablab v0.4.7/go.mod h1:9wwNKuWeoAC2FRbv1/Y/GCbkL7nKEHXjav3AkP+g4Ds= +github.com/openziti/fablab v0.4.11 h1:F2neeHVmY1Z0ZfuRlljUb8MTrT3Jie9oJMqjARABDZU= +github.com/openziti/fablab v0.4.11/go.mod h1:EH7kMbXukwGh1t6CrpjXRYno0+A55Dr4kiva0+WZp/A= github.com/openziti/fabric v0.21.9 h1:zMU3blfo9CUctHcwTetH/x/9+3+3c/NNy+4RuQG8zaw= github.com/openziti/fabric v0.21.9/go.mod h1:YFAIBg42uMRGBJhZ1lwIBehsfN2jwXJvY0H4dvqpCM8= github.com/openziti/foundation/v2 v2.0.6 h1:sN4SAVtvheuqdY6kGuCgS0d+2x2g+kAqwcv5v7LkKN4= @@ -611,8 +611,6 @@ github.com/openziti/jwks v1.0.2 h1:32BGXIAnefS+v7uXKPb1x8/cQ7srek6Ai06dsrMTY4E= github.com/openziti/jwks v1.0.2/go.mod h1:KwO0x9FBG0aoJS5f6nH5xeHoplyR1H143SMI9kF0mC8= github.com/openziti/metrics v1.1.4 h1:UGLU1kBJ3ztDO1SAs42qecN/BV4/JTPGH93LWvZwa4c= github.com/openziti/metrics v1.1.4/go.mod h1:Wy7suQpju6oqWc1cmKA6+0Bh3izbudDGdfSqCuJ63UU= -github.com/openziti/runzmd v1.0.0 h1:EH7ZvjFdikhuJlHWuG2VlLK2ng2dV23pIJAw7yRsKkM= -github.com/openziti/runzmd v1.0.0/go.mod h1:3w6vxdO3MCqD8emZWaSK+z4JN6D7XFCPiyymv0N4U3k= github.com/openziti/sdk-golang v0.16.135 h1:9/pxkHGZJYUsdM03/rQksOz2S3i9C/sSUIHwmEbrxXk= github.com/openziti/sdk-golang v0.16.135/go.mod h1:o4brIi4dvez9mM+IPtKuUN97RiGAwcY3D9zFm6SIMOI= github.com/openziti/storage v0.1.25 h1:8HMNCR9pRKhZT8VMWad89zLntmZHLJVbWC2dDFxQ/BQ= @@ -627,8 +625,8 @@ github.com/openziti/ziti v0.26.10 h1:aPikHYJa/KvzgTiRW2hGw8f2L/+NsFgy8sbHXcuxwbU github.com/openziti/ziti v0.26.10/go.mod h1:hbl02rbQ8l6+kF/vXolNPCdZLQ3WKkSGEc7xeRPEl4c= github.com/openziti/ziti-db-explorer v1.1.1 h1:G0eoTby+aIjjt5TxEfR+FMI2CWd4RvZFjzaIMX2lEBw= github.com/openziti/ziti-db-explorer v1.1.1/go.mod h1:h76h7Tsb+khb0v+CqYKL6ifUfJbUMjGBFU2IvupfBE4= -github.com/openziti/zitilab v0.1.1 h1:Ewp7qghV78Te1JWwMZV2tvkm0M0xHDJWTgx56sMx5bg= -github.com/openziti/zitilab v0.1.1/go.mod h1:4xR04e4G33+ii5zwssQVlGQBG+j+DYE2Nh6HXjWUrNo= +github.com/openziti/zitilab v0.1.8 h1:7lzS76/3hDyEruODXBuvFJew1BoII4S4GDmY0T8DFRk= +github.com/openziti/zitilab v0.1.8/go.mod h1:ElsdjW6cyMBeLxda/n8DF9ec4KtZavys3hbYkgHpQf4= github.com/oracle/oci-go-sdk v24.2.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35ukwStZIg5F66tcBccjip/j888= github.com/orcaman/concurrent-map/v2 v2.0.0 h1:iSMwuBQvQ1nX5i9gYuGMiSy0fjWHmazdjF+NdSO9JzI= github.com/orcaman/concurrent-map/v2 v2.0.0/go.mod h1:9Eq3TG2oBe5FirmYWQfYO5iH1q0Jv47PLaNK++uCdOM= diff --git a/network-tests/simple-transfer/main.go b/network-tests/simple-transfer/main.go index cfd733075..d2b00b4d3 100644 --- a/network-tests/simple-transfer/main.go +++ b/network-tests/simple-transfer/main.go @@ -184,7 +184,7 @@ var m = &model.Model{ ), config.Component(), zitilab.DefaultZitiBinaries(), - devkit.DevKitF(zitilab.ZitiDistBinaries, []string{"ziti-echo"}), + devkit.DevKitF(zitilab.ZitiRoot, []string{"ziti-echo"}), }, Distribution: model.DistributionStages{ From 6b95ce9527af6dd58dc3bb0e42baab818950012c Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Fri, 14 Oct 2022 20:15:50 -0400 Subject: [PATCH 03/19] add support for advertied host config --- ziti/cmd/ziti/cmd/create_config.go | 7 ++-- .../cmd/ziti/cmd/create_config_environment.go | 1 + .../ziti/cmd/create_config_router_common.go | 40 ++++++++++++++----- ziti/cmd/ziti/constants/constants.go | 2 + 4 files changed, 37 insertions(+), 13 deletions(-) diff --git a/ziti/cmd/ziti/cmd/create_config.go b/ziti/cmd/ziti/cmd/create_config.go index fc5bfea99..3e56cd619 100644 --- a/ziti/cmd/ziti/cmd/create_config.go +++ b/ziti/cmd/ziti/cmd/create_config.go @@ -130,9 +130,10 @@ type RouterTemplateValues struct { } type EdgeRouterTemplateValues struct { - Hostname string - Port string - IPOverride string + Hostname string + Port string + IPOverride string + AdvertisedHost string } type WSSRouterTemplateValues struct { diff --git a/ziti/cmd/ziti/cmd/create_config_environment.go b/ziti/cmd/ziti/cmd/create_config_environment.go index cb897086a..8f1e3485a 100644 --- a/ziti/cmd/ziti/cmd/create_config_environment.go +++ b/ziti/cmd/ziti/cmd/create_config_environment.go @@ -198,6 +198,7 @@ func NewCmdCreateConfigEnvironment() *cobra.Command { constants.ZitiRouterIdentityKeyVarName, constants.ZitiRouterIdentityKeyVarDescription, data.Router.IdentityKey, constants.ZitiRouterIdentityCAVarName, constants.ZitiRouterIdentityCAVarDescription, data.Router.IdentityCA, constants.ZitiEdgeRouterIPOverrideVarName, constants.ZitiEdgeRouterIPOverrideVarDescription, data.Router.Edge.IPOverride, + constants.ZitiRouterAdvertisedHostVarName, constants.ZitiRouterAdvertisedHostVarDescription, data.Router.Edge.AdvertisedHost, constants.ZitiCtrlIdentityCertVarName, constants.ZitiCtrlIdentityCertVarDescription, data.Controller.IdentityCert, constants.ZitiCtrlIdentityServerCertVarName, constants.ZitiCtrlIdentityServerCertVarDescription, data.Controller.IdentityServerCert, constants.ZitiCtrlIdentityKeyVarName, constants.ZitiCtrlIdentityKeyVarDescription, data.Controller.IdentityKey, diff --git a/ziti/cmd/ziti/cmd/create_config_router_common.go b/ziti/cmd/ziti/cmd/create_config_router_common.go index f01e916f2..595c6732d 100644 --- a/ziti/cmd/ziti/cmd/create_config_router_common.go +++ b/ziti/cmd/ziti/cmd/create_config_router_common.go @@ -20,6 +20,7 @@ import ( _ "embed" cmdhelper "github.com/openziti/ziti/ziti/cmd/ziti/cmd/helpers" "github.com/openziti/ziti/ziti/cmd/ziti/constants" + "log" "os" ) @@ -29,21 +30,40 @@ func SetZitiRouterIdentity(r *RouterTemplateValues, routerName string) { SetZitiRouterIdentityKey(r, routerName) SetZitiRouterIdentityCA(r, routerName) - edgeRouterRawName := os.Getenv(constants.ZitiEdgeRouterRawNameVarName) - externalDNS := os.Getenv(constants.ExternalDNSVarName) - if externalDNS != "" { - r.Edge.Hostname = externalDNS - } else if edgeRouterRawName != "" { - r.Edge.Hostname = edgeRouterRawName - } else { - r.Edge.Hostname, _ = os.Hostname() - } - // Edge router IP override edgeRouterIPOverride := os.Getenv(constants.ZitiEdgeRouterIPOverrideVarName) if edgeRouterIPOverride != "" { r.Edge.IPOverride = edgeRouterIPOverride } + + externalDNS := os.Getenv(constants.ExternalDNSVarName) + edgeRouterRawName := os.Getenv(constants.ZitiEdgeRouterRawNameVarName) + if externalDNS != "" { + r.Edge.Hostname = externalDNS + r.Edge.AdvertisedHost = r.Edge.Hostname //not redundant set AdvertisedHost + } else if edgeRouterRawName != "" { + r.Edge.Hostname = edgeRouterRawName + r.Edge.AdvertisedHost = r.Edge.Hostname //not redundant set AdvertisedHost + } else { + r.Edge.Hostname, _ = os.Hostname() + r.Edge.AdvertisedHost = r.Edge.Hostname //not redundant set AdvertisedHost + } + + advertisedHost := os.Getenv(constants.ZitiRouterAdvertisedHostVarName) + if advertisedHost != "" { + if advertisedHost != edgeRouterIPOverride && advertisedHost != r.Edge.AdvertisedHost { + log.Panicf("if %s[%s] is supplied, it *MUST* match the %s[%s] or resolved hostname[%s]", constants.ZitiRouterAdvertisedHostVarName, advertisedHost, constants.ZitiEdgeRouterIPOverrideVarName, edgeRouterIPOverride, r.Edge.Hostname) + } + r.Edge.AdvertisedHost = advertisedHost //finally override AdvertisedHost if provided + } else { + if externalDNS != "" || edgeRouterRawName != "" { + r.Edge.AdvertisedHost = r.Edge.Hostname + } else if edgeRouterIPOverride != "" { + r.Edge.AdvertisedHost = edgeRouterIPOverride + } else { + r.Edge.AdvertisedHost = r.Edge.Hostname //not redundant set AdvertisedHost + } + } } func SetZitiRouterIdentityCert(r *RouterTemplateValues, routerName string) { val := os.Getenv(constants.ZitiRouterIdentityCertVarName) diff --git a/ziti/cmd/ziti/constants/constants.go b/ziti/cmd/ziti/constants/constants.go index 2abe6584e..67f6e7a60 100644 --- a/ziti/cmd/ziti/constants/constants.go +++ b/ziti/cmd/ziti/constants/constants.go @@ -105,4 +105,6 @@ const ( ExternalDNSVarName = "EXTERNAL_DNS" ZitiEdgeRouterIPOverrideVarName = "ZITI_EDGE_ROUTER_IP_OVERRIDE" ZitiEdgeRouterIPOverrideVarDescription = "Override the default edge router IP with a custom IP, this IP will also be added to the PKI" + ZitiRouterAdvertisedHostVarName = "ZITI_ROUTER_ADVERTISED_HOST" + ZitiRouterAdvertisedHostVarDescription = "The advertised host of the router" ) From ce79612e08dd7953a33853aadcd727cd657f4767 Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Fri, 14 Oct 2022 20:54:59 -0400 Subject: [PATCH 04/19] add disableTunneler flag --- ziti/cmd/ziti/cmd/config_templates/router.yml | 6 +++--- ziti/cmd/ziti/cmd/create_config.go | 1 + ziti/cmd/ziti/cmd/create_config_router.go | 7 ++++--- ziti/cmd/ziti/cmd/create_config_router_edge.go | 2 ++ 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/ziti/cmd/ziti/cmd/config_templates/router.yml b/ziti/cmd/ziti/cmd/config_templates/router.yml index 035905b12..789043b1f 100644 --- a/ziti/cmd/ziti/cmd/config_templates/router.yml +++ b/ziti/cmd/ziti/cmd/config_templates/router.yml @@ -33,9 +33,9 @@ link: {{ if .Router.IsFabric }}#{{ end }} advertise: {{ .Router.Edge.Hostname }}:{{ if .Router.IsWss }}3023{{ else }}{{ .Router.Edge.Port }}{{ end }} {{ if .Router.IsFabric }}#{{ end }} connectTimeoutMs: {{ .Router.Listener.ConnectTimeout.Milliseconds }} {{ if .Router.IsFabric }}#{{ end }} getSessionTimeout: {{ .Router.Listener.GetSessionTimeout.Seconds }}s -{{ if .Router.IsFabric }}#{{ end }} - binding: tunnel -{{ if .Router.IsFabric }}#{{ end }} options: -{{ if .Router.IsFabric }}#{{ end }} mode: host #tproxy|host +{{ if .Router.IsFabric }}#{{ end }}{{ if .Router.TunnelerDisabled }}#{{ end }} - binding: tunnel +{{ if .Router.IsFabric }}#{{ end }}{{ if .Router.TunnelerDisabled }}#{{ end }} options: +{{ if .Router.IsFabric }}#{{ end }}{{ if .Router.TunnelerDisabled }}#{{ end }} mode: host #tproxy|host {{ if or .Router.IsFabric }} csr: diff --git a/ziti/cmd/ziti/cmd/create_config.go b/ziti/cmd/ziti/cmd/create_config.go index 3e56cd619..29a0777d6 100644 --- a/ziti/cmd/ziti/cmd/create_config.go +++ b/ziti/cmd/ziti/cmd/create_config.go @@ -119,6 +119,7 @@ type RouterTemplateValues struct { IsPrivate bool IsFabric bool IsWss bool + TunnelerDisabled bool IdentityCert string IdentityServerCert string IdentityKey string diff --git a/ziti/cmd/ziti/cmd/create_config_router.go b/ziti/cmd/ziti/cmd/create_config_router.go index bda8b58a1..a2ab78a72 100644 --- a/ziti/cmd/ziti/cmd/create_config_router.go +++ b/ziti/cmd/ziti/cmd/create_config_router.go @@ -33,9 +33,10 @@ const ( type CreateConfigRouterOptions struct { CreateConfigOptions - RouterName string - WssEnabled bool - IsPrivate bool + RouterName string + WssEnabled bool + IsPrivate bool + TunnelerDisabled bool } var routerOptions = CreateConfigRouterOptions{} diff --git a/ziti/cmd/ziti/cmd/create_config_router_edge.go b/ziti/cmd/ziti/cmd/create_config_router_edge.go index 2ea27b9e3..4e316d79b 100644 --- a/ziti/cmd/ziti/cmd/create_config_router_edge.go +++ b/ziti/cmd/ziti/cmd/create_config_router_edge.go @@ -64,6 +64,7 @@ func NewCmdCreateConfigRouterEdge() *cobra.Command { PreRun: func(cmd *cobra.Command, args []string) { data.Router.IsWss = routerOptions.WssEnabled data.Router.IsPrivate = routerOptions.IsPrivate + data.Router.TunnelerDisabled = routerOptions.TunnelerDisabled }, Run: func(cmd *cobra.Command, args []string) { routerOptions.Cmd = cmd @@ -82,6 +83,7 @@ func NewCmdCreateConfigRouterEdge() *cobra.Command { func (options *CreateConfigRouterOptions) addEdgeFlags(cmd *cobra.Command) { cmd.Flags().BoolVar(&options.WssEnabled, optionWSS, defaultWSS, wssDescription) cmd.Flags().BoolVar(&options.IsPrivate, optionPrivate, defaultPrivate, privateDescription) + cmd.PersistentFlags().BoolVarP(&options.TunnelerDisabled, "disableTunneler", "t", false, "whether the router has tunneling disabled") cmd.PersistentFlags().StringVarP(&options.RouterName, optionRouterName, "n", "", "name of the router") err := cmd.MarkPersistentFlagRequired(optionRouterName) if err != nil { From 63776740bcb72316b6f5b1d457f02b4ee9748615 Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Fri, 14 Oct 2022 21:23:16 -0400 Subject: [PATCH 05/19] forgot to commit the update to the template --- ziti/cmd/ziti/cmd/config_templates/router.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ziti/cmd/ziti/cmd/config_templates/router.yml b/ziti/cmd/ziti/cmd/config_templates/router.yml index 789043b1f..95fdaa905 100644 --- a/ziti/cmd/ziti/cmd/config_templates/router.yml +++ b/ziti/cmd/ziti/cmd/config_templates/router.yml @@ -21,7 +21,7 @@ link: {{ if .Router.IsPrivate }}#{{ end }} listeners: {{ if .Router.IsPrivate }}#{{ end }} - binding: transport {{ if .Router.IsPrivate }}#{{ end }} bind: tls:0.0.0.0:{{ .Router.Listener.BindPort }} -{{ if .Router.IsPrivate }}#{{ end }} advertise: tls:{{ .Router.Edge.Hostname }}:{{ .Router.Listener.BindPort }} +{{ if .Router.IsPrivate }}#{{ end }} advertise: tls:{{ .Router.Edge.AdvertisedHost }}:{{ .Router.Listener.BindPort }} {{ if .Router.IsPrivate }}#{{ end }} options: {{ if .Router.IsPrivate }}#{{ end }} outQueueSize: {{ .Router.Listener.OutQueueSize }} @@ -30,7 +30,7 @@ link: {{ if .Router.IsFabric }}#{{ end }} - binding: edge {{ if .Router.IsFabric }}#{{ end }} address: {{ if .Router.IsWss }}ws{{ else }}tls{{end}}:0.0.0.0:{{ .Router.Edge.Port }} {{ if .Router.IsFabric }}#{{ end }} options: -{{ if .Router.IsFabric }}#{{ end }} advertise: {{ .Router.Edge.Hostname }}:{{ if .Router.IsWss }}3023{{ else }}{{ .Router.Edge.Port }}{{ end }} +{{ if .Router.IsFabric }}#{{ end }} advertise: {{ .Router.Edge.AdvertisedHost }}:{{ if .Router.IsWss }}3023{{ else }}{{ .Router.Edge.Port }}{{ end }} {{ if .Router.IsFabric }}#{{ end }} connectTimeoutMs: {{ .Router.Listener.ConnectTimeout.Milliseconds }} {{ if .Router.IsFabric }}#{{ end }} getSessionTimeout: {{ .Router.Listener.GetSessionTimeout.Seconds }}s {{ if .Router.IsFabric }}#{{ end }}{{ if .Router.TunnelerDisabled }}#{{ end }} - binding: tunnel From 5611fade8d20ba744c02238c70357b9ba09590b3 Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Sat, 15 Oct 2022 15:32:39 -0400 Subject: [PATCH 06/19] add tests for advertised host etc --- .../cmd/ziti/cmd/create_config_environment.go | 1 + .../cmd/create_config_router_edge_test.go | 65 +++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 ziti/cmd/ziti/cmd/create_config_router_edge_test.go diff --git a/ziti/cmd/ziti/cmd/create_config_environment.go b/ziti/cmd/ziti/cmd/create_config_environment.go index 8f1e3485a..7507ed449 100644 --- a/ziti/cmd/ziti/cmd/create_config_environment.go +++ b/ziti/cmd/ziti/cmd/create_config_environment.go @@ -182,6 +182,7 @@ func NewCmdCreateConfigEnvironment() *cobra.Command { "%-40s %-50s %s\n"+ "%-40s %-50s %s\n"+ "%-40s %-50s %s\n"+ + "%-40s %-50s %s\n"+ "%-40s %-50s %s", constants.ZitiHomeVarName, constants.ZitiHomeVarDescription, data.ZitiHome, constants.ZitiCtrlPortVarName, constants.ZitiCtrlPortVarDescription, data.Controller.Port, diff --git a/ziti/cmd/ziti/cmd/create_config_router_edge_test.go b/ziti/cmd/ziti/cmd/create_config_router_edge_test.go new file mode 100644 index 000000000..82a065b26 --- /dev/null +++ b/ziti/cmd/ziti/cmd/create_config_router_edge_test.go @@ -0,0 +1,65 @@ +package cmd + +import ( + "github.com/stretchr/testify/assert" + "os" + "testing" +) + +var defaultArgs = []string{"edge", "--routerName", "test-router"} +var testHostname, _ = os.Hostname() + +func setEnvByMap[K string, V string](m map[K]V) { + for k, v := range m { + os.Setenv(string(k), string(v)) + } +} + +func execCreateConfigCommand(args []string, keys map[string]string) { + // Setup options + clearOptionsAndTemplateData() + routerOptions.Output = defaultOutput + + setEnvByMap(keys) + // Create and run the CLI command (capture output, otherwise config prints to stdout instead of test results) + cmd := NewCmdCreateConfigRouter() + cmd.SetArgs(args) + _ = captureOutput(func() { + _ = cmd.Execute() + }) +} + +func TestEdgeRouterAdvertised(t *testing.T) { + routerAdvHostIp := "192.168.10.10" + routerAdvHostDns := "controller01.zitinetwork.example.org" + keys := map[string]string{ + "ZITI_CTRL_PORT": "80", + "ZITI_EDGE_ROUTER_PORT": "443", + } + execCreateConfigCommand(defaultArgs, keys) + assert.Equal(t, testHostname, data.Router.Edge.AdvertisedHost, nil) + + keys["ZITI_EDGE_ROUTER_RAWNAME"] = routerAdvHostDns + execCreateConfigCommand(defaultArgs, keys) + assert.Equal(t, routerAdvHostDns, data.Router.Edge.AdvertisedHost, nil) + + keys["ZITI_EDGE_ROUTER_RAWNAME"] = "" + keys["ZITI_EDGE_ROUTER_IP_OVERRIDE"] = routerAdvHostIp + execCreateConfigCommand(defaultArgs, keys) + assert.Equal(t, routerAdvHostIp, data.Router.Edge.AdvertisedHost, nil) + + keys["ZITI_EDGE_ROUTER_IP_OVERRIDE"] = "" + keys["EXTERNAL_DNS"] = routerAdvHostDns + execCreateConfigCommand(defaultArgs, keys) + assert.Equal(t, routerAdvHostDns, data.Router.Edge.AdvertisedHost, nil) + + keys["ZITI_ROUTER_ADVERTISED_HOST"] = routerAdvHostIp + keys["ZITI_EDGE_ROUTER_IP_OVERRIDE"] = routerAdvHostIp + execCreateConfigCommand(defaultArgs, keys) + assert.Equal(t, routerAdvHostIp, data.Router.Edge.AdvertisedHost, nil) + + keys["ZITI_ROUTER_ADVERTISED_HOST"] = routerAdvHostDns + keys["EXTERNAL_DNS"] = routerAdvHostDns + execCreateConfigCommand(defaultArgs, keys) + assert.Equal(t, routerAdvHostDns, data.Router.Edge.AdvertisedHost, nil) +} From e2c2b52efcc607bb650c77281d37e7544c7a72e3 Mon Sep 17 00:00:00 2001 From: dariuszSki Date: Mon, 17 Oct 2022 16:58:16 -0400 Subject: [PATCH 07/19] final rebase from tproxy config --- ziti/cmd/ziti/cmd/config_templates/router.yml | 8 +++++--- ziti/cmd/ziti/cmd/create_config.go | 7 +++++-- ziti/cmd/ziti/cmd/create_config_environment.go | 15 ++++++++++----- ziti/cmd/ziti/cmd/create_config_router.go | 6 ++++-- ziti/cmd/ziti/cmd/create_config_router_common.go | 11 +++++++++-- ziti/cmd/ziti/cmd/create_config_router_edge.go | 16 ++++++++++++---- ziti/cmd/ziti/constants/constants.go | 2 ++ 7 files changed, 47 insertions(+), 18 deletions(-) diff --git a/ziti/cmd/ziti/cmd/config_templates/router.yml b/ziti/cmd/ziti/cmd/config_templates/router.yml index 95fdaa905..e327f356d 100644 --- a/ziti/cmd/ziti/cmd/config_templates/router.yml +++ b/ziti/cmd/ziti/cmd/config_templates/router.yml @@ -35,8 +35,9 @@ link: {{ if .Router.IsFabric }}#{{ end }} getSessionTimeout: {{ .Router.Listener.GetSessionTimeout.Seconds }}s {{ if .Router.IsFabric }}#{{ end }}{{ if .Router.TunnelerDisabled }}#{{ end }} - binding: tunnel {{ if .Router.IsFabric }}#{{ end }}{{ if .Router.TunnelerDisabled }}#{{ end }} options: -{{ if .Router.IsFabric }}#{{ end }}{{ if .Router.TunnelerDisabled }}#{{ end }} mode: host #tproxy|host - +{{ if .Router.IsFabric }}#{{ end }}{{ if .Router.TunnelerDisabled }}#{{ end }}{{ if .Router.Tproxy }}#{{ end }} mode: host +{{ if .Router.IsFabric }}#{{ end }}{{ if .Router.TunnelerDisabled }}#{{ end }}{{ if .Router.Tproxy }} resolver: udp://{{ .Router.Edge.AdvertisedHost }}:53{{ else }}#{{ end }} +{{ if .Router.IsFabric }}#{{ end }}{{ if .Router.TunnelerDisabled }}#{{ end }}{{ if .Router.Tproxy }} lanIf: {{ .Router.Edge.LanInterface }}{{ else }}#{{ end }} {{ if or .Router.IsFabric }} csr: country: US @@ -86,4 +87,5 @@ forwarder: xgressDialQueueLength: {{ .Router.Forwarder.XgressDialQueueLength }} xgressDialWorkerCount: {{ .Router.Forwarder.XgressDialWorkerCount }} linkDialQueueLength: {{ .Router.Forwarder.LinkDialQueueLength }} - linkDialWorkerCount: {{ .Router.Forwarder.LinkDialWorkerCount }} \ No newline at end of file + linkDialWorkerCount: {{ .Router.Forwarder.LinkDialWorkerCount }} + \ No newline at end of file diff --git a/ziti/cmd/ziti/cmd/create_config.go b/ziti/cmd/ziti/cmd/create_config.go index 29a0777d6..75548aee9 100644 --- a/ziti/cmd/ziti/cmd/create_config.go +++ b/ziti/cmd/ziti/cmd/create_config.go @@ -17,6 +17,9 @@ package cmd import ( + "os" + "time" + "github.com/openziti/channel/v2" edge "github.com/openziti/edge/controller/config" fabCtrl "github.com/openziti/fabric/controller" @@ -28,8 +31,6 @@ import ( "github.com/openziti/ziti/ziti/cmd/ziti/constants" "github.com/sirupsen/logrus" "github.com/spf13/cobra" - "os" - "time" ) const ( @@ -120,6 +121,7 @@ type RouterTemplateValues struct { IsFabric bool IsWss bool TunnelerDisabled bool + Tproxy bool IdentityCert string IdentityServerCert string IdentityKey string @@ -135,6 +137,7 @@ type EdgeRouterTemplateValues struct { Port string IPOverride string AdvertisedHost string + LanInterface string } type WSSRouterTemplateValues struct { diff --git a/ziti/cmd/ziti/cmd/create_config_environment.go b/ziti/cmd/ziti/cmd/create_config_environment.go index 7507ed449..214c1ddbf 100644 --- a/ziti/cmd/ziti/cmd/create_config_environment.go +++ b/ziti/cmd/ziti/cmd/create_config_environment.go @@ -19,17 +19,18 @@ package cmd import ( _ "embed" "fmt" + "os" + "path/filepath" + "runtime" + "strings" + "text/template" + cmdhelper "github.com/openziti/ziti/ziti/cmd/ziti/cmd/helpers" "github.com/openziti/ziti/ziti/cmd/ziti/cmd/templates" "github.com/openziti/ziti/ziti/cmd/ziti/constants" "github.com/pkg/errors" "github.com/sirupsen/logrus" "github.com/spf13/cobra" - "os" - "path/filepath" - "runtime" - "strings" - "text/template" ) type EnvVariableTemplateData struct { @@ -112,6 +113,8 @@ func NewCmdCreateConfigEnvironment() *cobra.Command { {constants.ZitiRouterIdentityKeyVarName, constants.ZitiRouterIdentityKeyVarDescription, data.Router.IdentityKey}, {constants.ZitiRouterIdentityCAVarName, constants.ZitiRouterIdentityCAVarDescription, data.Router.IdentityCA}, {constants.ZitiEdgeRouterIPOverrideVarName, constants.ZitiEdgeRouterIPOverrideVarDescription, data.Router.Edge.IPOverride}, + {constants.ZitiRouterAdvertisedHostVarName, constants.ZitiRouterAdvertisedHostVarDescription, data.Router.Edge.AdvertisedHost}, + {constants.ZitiEdgeRouterLanInterfaceVarName, constants.ZitiEdgeRouterLanInterfaceVarDescription, data.Router.Edge.LanInterface}, {constants.ZitiCtrlListenerAddressVarName, constants.ZitiCtrlListenerAddressVarDescription, data.Controller.ListenerAddress}, {constants.ZitiCtrlAdvertisedAddressVarName, constants.ZitiCtrlAdvertisedAddressVarDescription, data.Controller.AdvertisedAddress}, {constants.ZitiEdgeCtrlListenerHostPortVarName, constants.ZitiEdgeCtrlListenerHostPortVarDescription, data.Controller.Edge.ListenerHostPort}, @@ -183,6 +186,7 @@ func NewCmdCreateConfigEnvironment() *cobra.Command { "%-40s %-50s %s\n"+ "%-40s %-50s %s\n"+ "%-40s %-50s %s\n"+ + "%-40s %-50s %s\n"+ "%-40s %-50s %s", constants.ZitiHomeVarName, constants.ZitiHomeVarDescription, data.ZitiHome, constants.ZitiCtrlPortVarName, constants.ZitiCtrlPortVarDescription, data.Controller.Port, @@ -200,6 +204,7 @@ func NewCmdCreateConfigEnvironment() *cobra.Command { constants.ZitiRouterIdentityCAVarName, constants.ZitiRouterIdentityCAVarDescription, data.Router.IdentityCA, constants.ZitiEdgeRouterIPOverrideVarName, constants.ZitiEdgeRouterIPOverrideVarDescription, data.Router.Edge.IPOverride, constants.ZitiRouterAdvertisedHostVarName, constants.ZitiRouterAdvertisedHostVarDescription, data.Router.Edge.AdvertisedHost, + constants.ZitiEdgeRouterLanInterfaceVarName, constants.ZitiEdgeRouterLanInterfaceVarDescription, data.Router.Edge.LanInterface, constants.ZitiCtrlIdentityCertVarName, constants.ZitiCtrlIdentityCertVarDescription, data.Controller.IdentityCert, constants.ZitiCtrlIdentityServerCertVarName, constants.ZitiCtrlIdentityServerCertVarDescription, data.Controller.IdentityServerCert, constants.ZitiCtrlIdentityKeyVarName, constants.ZitiCtrlIdentityKeyVarDescription, data.Controller.IdentityKey, diff --git a/ziti/cmd/ziti/cmd/create_config_router.go b/ziti/cmd/ziti/cmd/create_config_router.go index a2ab78a72..bfba5d4c9 100644 --- a/ziti/cmd/ziti/cmd/create_config_router.go +++ b/ziti/cmd/ziti/cmd/create_config_router.go @@ -18,11 +18,12 @@ package cmd import ( _ "embed" + "os" + "strings" + cmdhelper "github.com/openziti/ziti/ziti/cmd/ziti/cmd/helpers" "github.com/sirupsen/logrus" "github.com/spf13/cobra" - "os" - "strings" ) const ( @@ -37,6 +38,7 @@ type CreateConfigRouterOptions struct { WssEnabled bool IsPrivate bool TunnelerDisabled bool + Tproxy bool } var routerOptions = CreateConfigRouterOptions{} diff --git a/ziti/cmd/ziti/cmd/create_config_router_common.go b/ziti/cmd/ziti/cmd/create_config_router_common.go index 595c6732d..b849197ab 100644 --- a/ziti/cmd/ziti/cmd/create_config_router_common.go +++ b/ziti/cmd/ziti/cmd/create_config_router_common.go @@ -18,10 +18,11 @@ package cmd import ( _ "embed" - cmdhelper "github.com/openziti/ziti/ziti/cmd/ziti/cmd/helpers" - "github.com/openziti/ziti/ziti/cmd/ziti/constants" "log" "os" + + cmdhelper "github.com/openziti/ziti/ziti/cmd/ziti/cmd/helpers" + "github.com/openziti/ziti/ziti/cmd/ziti/constants" ) func SetZitiRouterIdentity(r *RouterTemplateValues, routerName string) { @@ -36,6 +37,12 @@ func SetZitiRouterIdentity(r *RouterTemplateValues, routerName string) { r.Edge.IPOverride = edgeRouterIPOverride } + // Egde Router Lan Interface + edgeRouterLanInterface := os.Getenv(constants.ZitiEdgeRouterLanInterfaceVarName) + if edgeRouterLanInterface != "" { + r.Edge.LanInterface = edgeRouterLanInterface + } + externalDNS := os.Getenv(constants.ExternalDNSVarName) edgeRouterRawName := os.Getenv(constants.ZitiEdgeRouterRawNameVarName) if externalDNS != "" { diff --git a/ziti/cmd/ziti/cmd/create_config_router_edge.go b/ziti/cmd/ziti/cmd/create_config_router_edge.go index 4e316d79b..d615e55c3 100644 --- a/ziti/cmd/ziti/cmd/create_config_router_edge.go +++ b/ziti/cmd/ziti/cmd/create_config_router_edge.go @@ -18,15 +18,16 @@ package cmd import ( _ "embed" + "os" + "path/filepath" + "strings" + "text/template" + cmdhelper "github.com/openziti/ziti/ziti/cmd/ziti/cmd/helpers" "github.com/openziti/ziti/ziti/cmd/ziti/cmd/templates" "github.com/pkg/errors" "github.com/sirupsen/logrus" "github.com/spf13/cobra" - "os" - "path/filepath" - "strings" - "text/template" ) const ( @@ -65,6 +66,7 @@ func NewCmdCreateConfigRouterEdge() *cobra.Command { data.Router.IsWss = routerOptions.WssEnabled data.Router.IsPrivate = routerOptions.IsPrivate data.Router.TunnelerDisabled = routerOptions.TunnelerDisabled + data.Router.Tproxy = routerOptions.Tproxy }, Run: func(cmd *cobra.Command, args []string) { routerOptions.Cmd = cmd @@ -84,6 +86,7 @@ func (options *CreateConfigRouterOptions) addEdgeFlags(cmd *cobra.Command) { cmd.Flags().BoolVar(&options.WssEnabled, optionWSS, defaultWSS, wssDescription) cmd.Flags().BoolVar(&options.IsPrivate, optionPrivate, defaultPrivate, privateDescription) cmd.PersistentFlags().BoolVarP(&options.TunnelerDisabled, "disableTunneler", "t", false, "whether the router has tunneling disabled") + cmd.PersistentFlags().BoolVarP(&options.Tproxy, "Tproxy", "x", false, "enable tproxy if disableTunneler") cmd.PersistentFlags().StringVarP(&options.RouterName, optionRouterName, "n", "", "name of the router") err := cmd.MarkPersistentFlagRequired(optionRouterName) if err != nil { @@ -98,6 +101,11 @@ func (options *CreateConfigRouterOptions) runEdgeRouter(data *ConfigTemplateValu return errors.New("Flags for private and wss configs are mutually exclusive. You must choose private or wss, not both") } + // Ensure disableTunneler and Tproxy are not both used + if options.TunnelerDisabled && options.Tproxy { + return errors.New("Flags for TunnelerDisabled and Tproxy are mutually exclusive. You must choose one, but not both") + } + tmpl, err := template.New("edge-router-config").Parse(routerConfigEdgeTemplate) if err != nil { return err diff --git a/ziti/cmd/ziti/constants/constants.go b/ziti/cmd/ziti/constants/constants.go index 67f6e7a60..b05715b9b 100644 --- a/ziti/cmd/ziti/constants/constants.go +++ b/ziti/cmd/ziti/constants/constants.go @@ -107,4 +107,6 @@ const ( ZitiEdgeRouterIPOverrideVarDescription = "Override the default edge router IP with a custom IP, this IP will also be added to the PKI" ZitiRouterAdvertisedHostVarName = "ZITI_ROUTER_ADVERTISED_HOST" ZitiRouterAdvertisedHostVarDescription = "The advertised host of the router" + ZitiEdgeRouterLanInterfaceVarName = "ZITI_EDGE_ROUTER_LAN_INTERFACE" + ZitiEdgeRouterLanInterfaceVarDescription = "The inteface on host of the router to insert iptables ingress filter rules" ) From 82ed8273e01aa224897b903ae7151d7bf62e929d Mon Sep 17 00:00:00 2001 From: dariuszSki Date: Tue, 18 Oct 2022 16:16:56 -0400 Subject: [PATCH 08/19] updated tproxy logic --- ziti/cmd/ziti/cmd/config_templates/router.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ziti/cmd/ziti/cmd/config_templates/router.yml b/ziti/cmd/ziti/cmd/config_templates/router.yml index e327f356d..3dde7285e 100644 --- a/ziti/cmd/ziti/cmd/config_templates/router.yml +++ b/ziti/cmd/ziti/cmd/config_templates/router.yml @@ -32,12 +32,12 @@ link: {{ if .Router.IsFabric }}#{{ end }} options: {{ if .Router.IsFabric }}#{{ end }} advertise: {{ .Router.Edge.AdvertisedHost }}:{{ if .Router.IsWss }}3023{{ else }}{{ .Router.Edge.Port }}{{ end }} {{ if .Router.IsFabric }}#{{ end }} connectTimeoutMs: {{ .Router.Listener.ConnectTimeout.Milliseconds }} -{{ if .Router.IsFabric }}#{{ end }} getSessionTimeout: {{ .Router.Listener.GetSessionTimeout.Seconds }}s -{{ if .Router.IsFabric }}#{{ end }}{{ if .Router.TunnelerDisabled }}#{{ end }} - binding: tunnel -{{ if .Router.IsFabric }}#{{ end }}{{ if .Router.TunnelerDisabled }}#{{ end }} options: -{{ if .Router.IsFabric }}#{{ end }}{{ if .Router.TunnelerDisabled }}#{{ end }}{{ if .Router.Tproxy }}#{{ end }} mode: host -{{ if .Router.IsFabric }}#{{ end }}{{ if .Router.TunnelerDisabled }}#{{ end }}{{ if .Router.Tproxy }} resolver: udp://{{ .Router.Edge.AdvertisedHost }}:53{{ else }}#{{ end }} -{{ if .Router.IsFabric }}#{{ end }}{{ if .Router.TunnelerDisabled }}#{{ end }}{{ if .Router.Tproxy }} lanIf: {{ .Router.Edge.LanInterface }}{{ else }}#{{ end }} +{{ if .Router.IsFabric }}#{{ end }} getSessionTimeout: {{ .Router.Listener.GetSessionTimeout.Seconds }} +{{ if .Router.IsFabric }}#{{ else if .Router.TunnelerDisabled }}#{{ end }} - binding: tunnel +{{ if .Router.IsFabric }}#{{ else if .Router.TunnelerDisabled }}#{{ end }} options: +{{ if .Router.IsFabric }}#{{ else if .Router.TunnelerDisabled }}#{{ else if .Router.Tproxy }} mode: tproxy{{ else }} mode: host{{ end }} +{{ if .Router.IsFabric }}#{{ else if .Router.TunnelerDisabled }}#{{ else if .Router.Tproxy }} resolver: udp://{{ .Router.Edge.AdvertisedHost }}:53{{ else }}#{{ end }} +{{ if .Router.IsFabric }}#{{ else if .Router.TunnelerDisabled }}#{{ else if .Router.Tproxy }} lanIf: {{ .Router.Edge.LanInterface }}{{ else }}#{{ end }} {{ if or .Router.IsFabric }} csr: country: US From 2708020fdc45a84705ad9884ac489661dddcaee1 Mon Sep 17 00:00:00 2001 From: gberl002 Date: Mon, 7 Nov 2022 10:33:08 -0500 Subject: [PATCH 09/19] Refactored flags for tunnel related options Restructured tests Added tests for tunnel related flags Signed-off-by: gberl002 --- go.sum | 119 ++++--- ziti/cmd/ziti/cmd/config_templates/router.yml | 12 +- ziti/cmd/ziti/cmd/create_config.go | 2 +- .../cmd/ziti/cmd/create_config_environment.go | 7 +- ziti/cmd/ziti/cmd/create_config_router.go | 3 +- .../ziti/cmd/create_config_router_common.go | 10 +- .../cmd/ziti/cmd/create_config_router_edge.go | 39 ++- .../cmd/create_config_router_edge_test.go | 219 ++++++++++++- .../cmd/create_config_router_fabric_test.go | 111 +++++++ .../cmd/ziti/cmd/create_config_router_test.go | 303 +++++++----------- ziti/cmd/ziti/cmd/create_config_test.go | 1 + ziti/cmd/ziti/constants/constants.go | 6 +- 12 files changed, 548 insertions(+), 284 deletions(-) create mode 100644 ziti/cmd/ziti/cmd/create_config_router_fabric_test.go diff --git a/go.sum b/go.sum index 794c0ea1f..a3f5f82f8 100644 --- a/go.sum +++ b/go.sum @@ -84,12 +84,16 @@ github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdko github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/akamai/AkamaiOPEN-edgegrid-golang v0.9.18/go.mod h1:L+HB2uBoDgi3+r1pJEJcbGwyyHhd2QXaGsKLbDwtm8Q= +github.com/alecthomas/assert v0.0.0-20170929043011-405dbfeb8e38 h1:smF2tmSOzy2Mm+0dGI2AIUHY+w0BUc+4tn40djz7+6U= github.com/alecthomas/assert v0.0.0-20170929043011-405dbfeb8e38/go.mod h1:r7bzyVFMNntcxPZXK3/+KdruV1H5KSlyVY0gc+NgInI= github.com/alecthomas/chroma v0.7.1/go.mod h1:gHw09mkX1Qp80JlYbmN9L3+4R5o6DJJ3GRShh+AICNc= -github.com/alecthomas/chroma v0.10.0 h1:7XDcGkCQopCNKjZHfYrNLraA+M7e0fMiJ/Mfikbfjek= -github.com/alecthomas/chroma v0.10.0/go.mod h1:jtJATyUxlIORhUOFNA9NZDWGAQ8wpxQQqNSB4rjA/1s= +github.com/alecthomas/chroma v0.9.2 h1:yU1sE2+TZbLIQPMk30SolL2Hn53SR/Pv750f7qZ/XMs= +github.com/alecthomas/chroma v0.9.2/go.mod h1:eMuEnpA18XbG/WhOWtCzJHS7WqEtDAI+HxdwoW0nVSk= +github.com/alecthomas/colour v0.0.0-20160524082231-60882d9e2721 h1:JHZL0hZKJ1VENNfmXvHbgYlbUOvpzYzvy2aZU5gXVeo= github.com/alecthomas/colour v0.0.0-20160524082231-60882d9e2721/go.mod h1:QO9JBoKquHd+jz9nshCh40fOfO+JzsoXy8qTHF68zU0= github.com/alecthomas/kong v0.2.1-0.20190708041108-0548c6b1afae/go.mod h1:+inYUSluD+p4L8KdviBSgzcqEjUQOfC5fQDRFuc36lI= +github.com/alecthomas/kong v0.2.4/go.mod h1:kQOmtJgV+Lb4aj+I2LEn40cbtawdWJ9Y8QLq+lElKxE= +github.com/alecthomas/repr v0.0.0-20180818092828-117648cd9897 h1:p9Sln00KOTlrYkxI1zYWl1QLnEqAqEARBEYa8FQnQcY= github.com/alecthomas/repr v0.0.0-20180818092828-117648cd9897/go.mod h1:xTS7Pm1pD1mvyM075QCDSRqH6qRLXylzS24ZTpRiSzQ= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -171,6 +175,7 @@ github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7Do github.com/creack/pty v1.1.9 h1:uDmaGzcdjhF4i/plgjmEsriH11Y0o7RKapEf/LDaM3w= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4= +github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964 h1:y5HC9v93H5EPKqaS1UYVg1uYah5Xf51mBfIoWehClUQ= github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964/go.mod h1:Xd9hchkHSWYkEqJwUGisez3G1QY8Ryz0sdWrLPMGjLk= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -186,9 +191,8 @@ github.com/dineshappavoo/basex v0.0.0-20170425072625-481a6f6dc663/go.mod h1:Kad2 github.com/disintegration/imaging v1.6.2 h1:w1LecBlG2Lnp8B3jk5zSuNqd7b4DXhcjwek1ei82L+c= github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4= github.com/dlclark/regexp2 v1.1.6/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= +github.com/dlclark/regexp2 v1.4.0 h1:F1rxgk7p4uKjwIQxBs9oAXe5CqrXlCduYEJvrF4u93E= github.com/dlclark/regexp2 v1.4.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= -github.com/dlclark/regexp2 v1.7.0 h1:7lJfhqlPssTb1WQx4yvTHN0uElPEv52sbaECrAQxjAo= -github.com/dlclark/regexp2 v1.7.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= github.com/dnsimple/dnsimple-go v0.63.0/go.mod h1:O5TJ0/U6r7AfT8niYNlmohpLbCSG+c71tQlGr9SeGrg= github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= @@ -264,8 +268,8 @@ github.com/go-openapi/jsonreference v0.20.0/go.mod h1:Ag74Ico3lPc+zR+qjn4XBUmXym github.com/go-openapi/loads v0.21.1/go.mod h1:/DtAMXXneXFjbQMGEtbamCZb+4x7eGwkvZCvBmwUG+g= github.com/go-openapi/loads v0.21.2 h1:r2a/xFIYeZ4Qd2TnGpWDIQNcP80dIaZgf704za8enro= github.com/go-openapi/loads v0.21.2/go.mod h1:Jq58Os6SSGz0rzh62ptiu8Z31I+OTHqmULx5e/gJbNw= -github.com/go-openapi/runtime v0.24.2 h1:yX9HMGQbz32M87ECaAhGpJjBmErO3QLcgdZj9BzGx7c= -github.com/go-openapi/runtime v0.24.2/go.mod h1:AKurw9fNre+h3ELZfk6ILsfvPN+bvvlaU/M9q/r9hpk= +github.com/go-openapi/runtime v0.24.1 h1:Sml5cgQKGYQHF+M7yYSHaH1eOjvTykrddTE/KtQVjqo= +github.com/go-openapi/runtime v0.24.1/go.mod h1:AKurw9fNre+h3ELZfk6ILsfvPN+bvvlaU/M9q/r9hpk= github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I= github.com/go-openapi/spec v0.20.6/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA= github.com/go-openapi/spec v0.20.7 h1:1Rlu/ZrOCCob0n+JKKJAWhNWMPW8bOZRg8FJaY+0SKI= @@ -359,9 +363,8 @@ github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiu github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y= +github.com/gomarkdown/markdown v0.0.0-20191123064959-2c17d62f5098 h1:Qxs3bNRWe8GTcKMxYOSXm0jx6j0de8XUtb/fsP3GZ0I= github.com/gomarkdown/markdown v0.0.0-20191123064959-2c17d62f5098/go.mod h1:aii0r/K0ZnHv7G0KF7xy1v0A7s2Ljrb5byB7MO5p6TU= -github.com/gomarkdown/markdown v0.0.0-20221013030248-663e2500819c h1:iyaGYbCmcYK0Ja9a3OUa2Fo+EaN0cbLu0eKpBwPFzc8= -github.com/gomarkdown/markdown v0.0.0-20221013030248-663e2500819c/go.mod h1:JDGcbDT52eL4fju3sZ4TeHGsQwhG9nbDV21aMyhwPoA= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -531,9 +534,8 @@ github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kyokomi/emoji/v2 v2.2.8 h1:jcofPxjHWEkJtkIbcLHvZhxKgCPl6C7MyjTrD4KDqUE= github.com/kyokomi/emoji/v2 v2.2.8/go.mod h1:JUcn42DTdsXJo1SWanHh4HKDEyPaR5CqkmoirZZP9qE= -github.com/kyokomi/emoji/v2 v2.2.10 h1:1z5eMVcxFifsmEoNpdeq4UahbcicgQ4FEHuzrCVwmiI= -github.com/kyokomi/emoji/v2 v2.2.10/go.mod h1:JUcn42DTdsXJo1SWanHh4HKDEyPaR5CqkmoirZZP9qE= github.com/labbsr0x/bindman-dns-webhook v1.0.2/go.mod h1:p6b+VCXIR8NYKpDr8/dg1HKfQoRHCdcsROXKvmoehKA= github.com/labbsr0x/goh v1.0.1/go.mod h1:8K2UhVoaWXcCU7Lxoa2omWnC8gyW8px7/lmO61c027w= github.com/labstack/echo/v4 v4.1.11/go.mod h1:i541M3Fj6f76NZtHSj7TXnyM8n2gaodfvfxNnFqi74g= @@ -541,9 +543,8 @@ github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL github.com/linode/linodego v0.21.0/go.mod h1:UTpq1JUZD0CZsJ8rt+0CRkqbzrp1MbGakVPt2DXY5Mk= github.com/liquidweb/liquidweb-go v1.6.1/go.mod h1:UDcVnAMDkZxpw4Y7NOHkqoeiGacVLEIG/i5J9cyixzQ= github.com/lucas-clemente/quic-go v0.18.0/go.mod h1:yXttHsSNxQi8AWijC/vLP+OJczXqzHSOcJrM5ITUlCg= +github.com/lucasb-eyer/go-colorful v1.0.3 h1:QIbQXiugsb+q10B+MI+7DI1oQLdmnep86tWFlaaUAac= github.com/lucasb-eyer/go-colorful v1.0.3/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= -github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= -github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/lucsky/cuid v1.2.1 h1:MtJrL2OFhvYufUIn48d35QGXyeTC8tn0upumW9WwTHg= github.com/lucsky/cuid v1.2.1/go.mod h1:QaaJqckboimOmhRSJXSx/+IT+VTfxfPGSo/6mfgUfmE= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= @@ -569,6 +570,7 @@ github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaO github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= @@ -671,32 +673,30 @@ github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+ github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= -github.com/openziti/agent v1.0.5 h1:wZUcMYqvwspOjDSaejMtczSXnJoqK0edI9HcEIFsTIs= -github.com/openziti/agent v1.0.5/go.mod h1:6APWgkPP6Uxf1/VyirdTVLAJxwam2vVyakrVw6yvs40= -github.com/openziti/channel/v2 v2.0.11 h1:eAK2xu9em+J1oABx/9c+i51qum3gojrwh9AHwkfSgSw= -github.com/openziti/channel/v2 v2.0.11/go.mod h1:efLBuJu+lRZXvK/UUI08cocJiI3XWHH24Ae1EGoxtB0= +github.com/openziti/agent v1.0.4 h1:QuTe98uTJ3OFl2Zrw+Pkk06X8pQcV2/kzYxJ8G+HxIY= +github.com/openziti/agent v1.0.4/go.mod h1:k9gQv82hTTxdVSfMmD0LyWzCEy+9fWh2ISsg1llgRqU= +github.com/openziti/channel/v2 v2.0.9 h1:vkB44EsSMIIxCcua0JK7VpUrBi9N7bNb42tuUAtOw28= +github.com/openziti/channel/v2 v2.0.9/go.mod h1:bHjCw8iZngh8QfUwloqi5JeDszS93kQfW8e7fEt5OJY= github.com/openziti/dilithium v0.3.3 h1:PLgQ6PMNLSTzCFbX/h98cmudgz/cU6TmjdSv5NAPD8k= github.com/openziti/dilithium v0.3.3/go.mod h1:vsCjI2AU/hon9e+dLhUFbCNGesJDj2ASgkySOcpmvjo= -github.com/openziti/edge v0.24.27 h1:ERNn4kUlQxUGC+cSiq/CDZUoHNX7mEpniqOxNvhTflU= -github.com/openziti/edge v0.24.27/go.mod h1:4Gi2bLSbYpOGs9Mf9kvBdTBO1VFvRtSoGwOqYDcBeLY= -github.com/openziti/fabric v0.21.16 h1:XukTHHn7IdzSzPPVnmte1dOqPoT34zXbZ0+stMKdw0I= -github.com/openziti/fabric v0.21.16/go.mod h1:Do8i/xAWGAMIBgNE54/jf56HZOlOo22BPgsVLNN2utc= -github.com/openziti/foundation/v2 v2.0.7 h1:QtpP0ntUhr/7uLR1iM7eEkrusQ2b2ZqTblgdq8cac9Y= -github.com/openziti/foundation/v2 v2.0.7/go.mod h1:Z0gnQsGJb/H/B+pixLtmCIpw1dBllD4QoT6LeD35WzA= -github.com/openziti/identity v1.0.20 h1:8nsQFHpqKS1ByD8QuPDxQWfS8CQEidyn5jFXWnXguX0= -github.com/openziti/identity v1.0.20/go.mod h1:X0WLWEgnM1iL8asNbuu7vUW0kZq8nnWKepMW214C9Mk= +github.com/openziti/edge v0.24.12 h1:ugZ1Uoz6+/7Fs0u5mN01H6gQDeu8cT0FJdEZJs/V5sU= +github.com/openziti/edge v0.24.12/go.mod h1:sIAjb03x6jqYyzaanliBTfF5q8DqGJHCmQ1k9nB9eN4= +github.com/openziti/fabric v0.21.9 h1:zMU3blfo9CUctHcwTetH/x/9+3+3c/NNy+4RuQG8zaw= +github.com/openziti/fabric v0.21.9/go.mod h1:YFAIBg42uMRGBJhZ1lwIBehsfN2jwXJvY0H4dvqpCM8= +github.com/openziti/foundation/v2 v2.0.6 h1:sN4SAVtvheuqdY6kGuCgS0d+2x2g+kAqwcv5v7LkKN4= +github.com/openziti/foundation/v2 v2.0.6/go.mod h1:M/RUF8wR2X3OE9buI+Gd3ac7FzrZkQ+g07XY/dX3X/U= +github.com/openziti/identity v1.0.18 h1:e57J8oudjoU6XNKgmxFjBeePNwxDBE6n0l3FdxDvWoA= +github.com/openziti/identity v1.0.18/go.mod h1:OVeskbGOZx7r7/nJ2qTZXCbE+lFSChGv7WFofN6TJWc= github.com/openziti/jwks v1.0.2 h1:32BGXIAnefS+v7uXKPb1x8/cQ7srek6Ai06dsrMTY4E= github.com/openziti/jwks v1.0.2/go.mod h1:KwO0x9FBG0aoJS5f6nH5xeHoplyR1H143SMI9kF0mC8= -github.com/openziti/metrics v1.1.5 h1:qhsGsYWdp7LxPCYi9WMGHGbjiHvsT1DtjM44JNHLZWk= -github.com/openziti/metrics v1.1.5/go.mod h1:B6RCuVRTpI3kEIhQlCvsHj3Pqi6bSnqFmRPgfgv9ico= -github.com/openziti/runzmd v1.0.0 h1:EH7ZvjFdikhuJlHWuG2VlLK2ng2dV23pIJAw7yRsKkM= -github.com/openziti/runzmd v1.0.0/go.mod h1:3w6vxdO3MCqD8emZWaSK+z4JN6D7XFCPiyymv0N4U3k= -github.com/openziti/sdk-golang v0.16.142 h1:bbo8cMk7zRGkqd8lNB4qzhtJK9VLihVWNLw9C0jzYHY= -github.com/openziti/sdk-golang v0.16.142/go.mod h1:AmAeDi6teVVXSTjDYktvKtx8y4hyp6TE5i2UjgSpgMk= -github.com/openziti/storage v0.1.26 h1:1tV4czY/TNmzX3raUZjbR8jVl5L92pdD0SjmdzCzUmE= -github.com/openziti/storage v0.1.26/go.mod h1:Zkm+4d2gckkIbuuCw/sKFWKKhPROZak3gLFzdII0KWQ= -github.com/openziti/transport/v2 v2.0.38 h1:9+EtBF052TtGvT5isuPj/SUTXNHg8RbkGBcEKfiUPd8= -github.com/openziti/transport/v2 v2.0.38/go.mod h1:FB/pqmA8RdUsoWtpTc6E/it6lLdA7GOugy9no3JDU/4= +github.com/openziti/metrics v1.1.4 h1:UGLU1kBJ3ztDO1SAs42qecN/BV4/JTPGH93LWvZwa4c= +github.com/openziti/metrics v1.1.4/go.mod h1:Wy7suQpju6oqWc1cmKA6+0Bh3izbudDGdfSqCuJ63UU= +github.com/openziti/sdk-golang v0.16.135 h1:9/pxkHGZJYUsdM03/rQksOz2S3i9C/sSUIHwmEbrxXk= +github.com/openziti/sdk-golang v0.16.135/go.mod h1:o4brIi4dvez9mM+IPtKuUN97RiGAwcY3D9zFm6SIMOI= +github.com/openziti/storage v0.1.25 h1:8HMNCR9pRKhZT8VMWad89zLntmZHLJVbWC2dDFxQ/BQ= +github.com/openziti/storage v0.1.25/go.mod h1:fQEDWSuEMn8lOYwDl1hPGMqQNjm2P3p+5y5Lz0uDZCo= +github.com/openziti/transport/v2 v2.0.36 h1:yttgXbFnj4adypuYFErb0TCOLR+v87j0se7iFw+rmIk= +github.com/openziti/transport/v2 v2.0.36/go.mod h1:EsuNHXUzdispjF9k4Kkql4SGd74rZyvJ3sp4dj77ki0= github.com/openziti/x509-claims v1.0.3 h1:HNdQ8Nf1agB3lBs1gahcO6zfkeS4S5xoQ2/PkY4HRX0= github.com/openziti/x509-claims v1.0.3/go.mod h1:Z0WIpBm6c4ecrpRKrou6Gk2wrLWxJO/+tuUwKh8VewE= github.com/openziti/xweb/v2 v2.0.2 h1:XYlVFriTq/U1wcUrc+XPnWJGhXh9NJPhtQ7+r3aC0cU= @@ -707,8 +707,8 @@ github.com/oracle/oci-go-sdk v24.2.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35uk github.com/orcaman/concurrent-map/v2 v2.0.0 h1:iSMwuBQvQ1nX5i9gYuGMiSy0fjWHmazdjF+NdSO9JzI= github.com/orcaman/concurrent-map/v2 v2.0.0/go.mod h1:9Eq3TG2oBe5FirmYWQfYO5iH1q0Jv47PLaNK++uCdOM= github.com/ovh/go-ovh v1.1.0/go.mod h1:AxitLZ5HBRPyUd+Zl60Ajaag+rNTdVXWIkzfrVuTXWA= -github.com/parallaxsecond/parsec-client-go v0.0.0-20221025095442-f0a77d263cf9 h1:mOvehYivJ4Aqu2CPe3D3lv8jhqOI9/1o0THxJHBE0qw= -github.com/parallaxsecond/parsec-client-go v0.0.0-20221025095442-f0a77d263cf9/go.mod h1:gLH27qo/dvMhLTVVyMELpe3Tut7sOfkiDg7ZpeqKwsw= +github.com/parallaxsecond/parsec-client-go v0.0.0-20220111122524-cb78842db373 h1:CUvH4JL/8OVy023LMER3dB/MerNQ6OIz4QV3E/JQ3UY= +github.com/parallaxsecond/parsec-client-go v0.0.0-20220111122524-cb78842db373/go.mod h1:gLH27qo/dvMhLTVVyMELpe3Tut7sOfkiDg7ZpeqKwsw= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= @@ -789,6 +789,7 @@ github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQD github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/sacloud/libsacloud v1.36.2/go.mod h1:P7YAOVmnIn3DKHqCZcUKYUXmSwGBm3yS7IBEjKVSrjg= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/shirou/gopsutil/v3 v3.22.9 h1:yibtJhIVEMcdw+tCTbOPiF1VcsuDeTE4utJ8Dm4c5eA= github.com/shirou/gopsutil/v3 v3.22.9/go.mod h1:bBYl1kjgEJpWpxeHmLI+dVHWtyAwfcmSBLDsp2TNT8A= @@ -860,9 +861,8 @@ github.com/spf13/viper v1.10.0/go.mod h1:SoyBPwAtKDzypXNDFKN5kzH7ppppbGZtls1UpIy github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= +github.com/stretchr/objx v0.4.0 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= @@ -873,9 +873,8 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.7.4/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA= @@ -897,8 +896,8 @@ github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6Kllzaw github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= github.com/valyala/fasttemplate v1.1.0/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= -github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= -github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= +github.com/valyala/fasttemplate v1.2.1 h1:TVEnxayobAdVkhQfrfes2IzOB6o+z4roRkPF52WA1u4= +github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/viant/assertly v0.4.8/go.mod h1:aGifi++jvCrUaklKEKT0BU95igDNaqkvz+49uaYMPRU= github.com/viant/toolbox v0.24.0/go.mod h1:OxMCG57V0PXuIP2HNQrtJf2CjqdmbrOx5EkMILuUhzM= github.com/vultr/govultr/v2 v2.0.0/go.mod h1:2PsEeg+gs3p/Fo5Pw8F9mv+DUBEOlrNZ8GmCTGmhOhs= @@ -920,7 +919,6 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg= github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= @@ -982,10 +980,9 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201216223049-8b5274cf687f/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.1.0 h1:MDRAIl0xIo9Io2xV565hzXHw3zVseKrJKodhohM5CjU= -golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= +golang.org/x/crypto v0.0.0-20221012134737-56aed061732a h1:NmSIgad6KjE6VvHciPZuNRTKxGhlPfD6OA87W/PLkqg= +golang.org/x/crypto v0.0.0-20221012134737-56aed061732a/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -999,9 +996,8 @@ golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMk golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20191206065243-da761ea9ff43 h1:gQ6GUSD102fPgli+Yb4cR/cGaHF7tNBt+GYoRCpGC7s= golang.org/x/image v0.0.0-20191206065243-da761ea9ff43/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.1.0 h1:r8Oj8ZA2Xy12/b5KZYj3tuv7NG/fBz3TwQVvpJ9l8Rk= -golang.org/x/image v0.1.0/go.mod h1:iyPr49SD/G/TBxYVB/9RRtGUT5eNbo2u4NamWeQcD5c= golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -1026,8 +1022,8 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.5.1 h1:OJxoQ/rynoF0dcCdI7cLPktw/hR2cueqYfjm43oqK38= +golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1083,10 +1079,8 @@ golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220923203811-8be639271d50 h1:vKyz8L3zkd+xrMeIaBsQ/MNVPVFSffdaU3ZyYlBGFnI= golang.org/x/net v0.0.0-20220923203811-8be639271d50/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/net v0.1.0 h1:hZ/3BUoy5aId7sCpA/Tc5lt8DkFgdVS2onTpJsZ/fl0= -golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1114,7 +1108,6 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220923202941-7f9b1623fab7/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0 h1:cu5kTvlzcw1Q5S9f5ip1/cpiB4nXvw1XYzFPGgzLUOY= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1167,6 +1160,7 @@ golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200413165638-669c56c373c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1203,17 +1197,16 @@ golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.1.0 h1:kunALQeHf1/185U1i0GOB/fy1IPRDDpuoOOqRReG57U= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20221010170243-090e33056c14 h1:k5II8e6QD8mITdi+okbbmR/cIyEbeXLBhy5Ha4nevyc= +golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.1.0 h1:g6Z6vPFA9dYBAF7DWcH6sCcOntplXsDKcliusYijMlw= -golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.0.0-20220919170432-7a66f970e087 h1:tPwmk4vmvVCMdr98VgL4JH+qZxPL8fqlUOHnyOM8N3w= +golang.org/x/term v0.0.0-20220919170432-7a66f970e087/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1222,9 +1215,8 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg= -golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1292,11 +1284,12 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.1.7 h1:6j8CgantCy3yc8JGBqkDLMKWqZ0RDU2g1HVgacojGWQ= +golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= google.golang.org/api v0.0.0-20181030000543-1d582fd0359e/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= diff --git a/ziti/cmd/ziti/cmd/config_templates/router.yml b/ziti/cmd/ziti/cmd/config_templates/router.yml index 3dde7285e..07eee60f7 100644 --- a/ziti/cmd/ziti/cmd/config_templates/router.yml +++ b/ziti/cmd/ziti/cmd/config_templates/router.yml @@ -33,12 +33,12 @@ link: {{ if .Router.IsFabric }}#{{ end }} advertise: {{ .Router.Edge.AdvertisedHost }}:{{ if .Router.IsWss }}3023{{ else }}{{ .Router.Edge.Port }}{{ end }} {{ if .Router.IsFabric }}#{{ end }} connectTimeoutMs: {{ .Router.Listener.ConnectTimeout.Milliseconds }} {{ if .Router.IsFabric }}#{{ end }} getSessionTimeout: {{ .Router.Listener.GetSessionTimeout.Seconds }} -{{ if .Router.IsFabric }}#{{ else if .Router.TunnelerDisabled }}#{{ end }} - binding: tunnel -{{ if .Router.IsFabric }}#{{ else if .Router.TunnelerDisabled }}#{{ end }} options: -{{ if .Router.IsFabric }}#{{ else if .Router.TunnelerDisabled }}#{{ else if .Router.Tproxy }} mode: tproxy{{ else }} mode: host{{ end }} -{{ if .Router.IsFabric }}#{{ else if .Router.TunnelerDisabled }}#{{ else if .Router.Tproxy }} resolver: udp://{{ .Router.Edge.AdvertisedHost }}:53{{ else }}#{{ end }} -{{ if .Router.IsFabric }}#{{ else if .Router.TunnelerDisabled }}#{{ else if .Router.Tproxy }} lanIf: {{ .Router.Edge.LanInterface }}{{ else }}#{{ end }} -{{ if or .Router.IsFabric }} +{{ if or .Router.IsFabric .Router.TunnelerDisabled }}#{{ end }} - binding: tunnel +{{ if or .Router.IsFabric .Router.TunnelerDisabled }}#{{ end }} options: +{{ if or .Router.IsFabric .Router.TunnelerDisabled }}#{{ end }} mode: {{ .Router.TunnelerMode }} #tproxy|host +{{ if or .Router.IsFabric .Router.TunnelerDisabled }}#{{ else if (eq .Router.TunnelerMode "tproxy") }} resolver: udp://{{ .Router.Edge.AdvertisedHost }}:53{{ end }} +{{ if or .Router.IsFabric .Router.TunnelerDisabled }}#{{ else if (eq .Router.TunnelerMode "tproxy") }} lanIf: {{ .Router.Edge.LanInterface }}{{ end }} +{{ if .Router.IsFabric }} csr: country: US province: NC diff --git a/ziti/cmd/ziti/cmd/create_config.go b/ziti/cmd/ziti/cmd/create_config.go index 75548aee9..ac87d2738 100644 --- a/ziti/cmd/ziti/cmd/create_config.go +++ b/ziti/cmd/ziti/cmd/create_config.go @@ -121,7 +121,7 @@ type RouterTemplateValues struct { IsFabric bool IsWss bool TunnelerDisabled bool - Tproxy bool + TunnelerMode string IdentityCert string IdentityServerCert string IdentityKey string diff --git a/ziti/cmd/ziti/cmd/create_config_environment.go b/ziti/cmd/ziti/cmd/create_config_environment.go index 214c1ddbf..d6a996d1d 100644 --- a/ziti/cmd/ziti/cmd/create_config_environment.go +++ b/ziti/cmd/ziti/cmd/create_config_environment.go @@ -113,8 +113,7 @@ func NewCmdCreateConfigEnvironment() *cobra.Command { {constants.ZitiRouterIdentityKeyVarName, constants.ZitiRouterIdentityKeyVarDescription, data.Router.IdentityKey}, {constants.ZitiRouterIdentityCAVarName, constants.ZitiRouterIdentityCAVarDescription, data.Router.IdentityCA}, {constants.ZitiEdgeRouterIPOverrideVarName, constants.ZitiEdgeRouterIPOverrideVarDescription, data.Router.Edge.IPOverride}, - {constants.ZitiRouterAdvertisedHostVarName, constants.ZitiRouterAdvertisedHostVarDescription, data.Router.Edge.AdvertisedHost}, - {constants.ZitiEdgeRouterLanInterfaceVarName, constants.ZitiEdgeRouterLanInterfaceVarDescription, data.Router.Edge.LanInterface}, + {constants.ZitiEdgeRouterAdvertisedHostVarName, constants.ZitiEdgeRouterAdvertisedHostVarDescription, data.Router.Edge.AdvertisedHost}, {constants.ZitiCtrlListenerAddressVarName, constants.ZitiCtrlListenerAddressVarDescription, data.Controller.ListenerAddress}, {constants.ZitiCtrlAdvertisedAddressVarName, constants.ZitiCtrlAdvertisedAddressVarDescription, data.Controller.AdvertisedAddress}, {constants.ZitiEdgeCtrlListenerHostPortVarName, constants.ZitiEdgeCtrlListenerHostPortVarDescription, data.Controller.Edge.ListenerHostPort}, @@ -186,7 +185,6 @@ func NewCmdCreateConfigEnvironment() *cobra.Command { "%-40s %-50s %s\n"+ "%-40s %-50s %s\n"+ "%-40s %-50s %s\n"+ - "%-40s %-50s %s\n"+ "%-40s %-50s %s", constants.ZitiHomeVarName, constants.ZitiHomeVarDescription, data.ZitiHome, constants.ZitiCtrlPortVarName, constants.ZitiCtrlPortVarDescription, data.Controller.Port, @@ -203,8 +201,7 @@ func NewCmdCreateConfigEnvironment() *cobra.Command { constants.ZitiRouterIdentityKeyVarName, constants.ZitiRouterIdentityKeyVarDescription, data.Router.IdentityKey, constants.ZitiRouterIdentityCAVarName, constants.ZitiRouterIdentityCAVarDescription, data.Router.IdentityCA, constants.ZitiEdgeRouterIPOverrideVarName, constants.ZitiEdgeRouterIPOverrideVarDescription, data.Router.Edge.IPOverride, - constants.ZitiRouterAdvertisedHostVarName, constants.ZitiRouterAdvertisedHostVarDescription, data.Router.Edge.AdvertisedHost, - constants.ZitiEdgeRouterLanInterfaceVarName, constants.ZitiEdgeRouterLanInterfaceVarDescription, data.Router.Edge.LanInterface, + constants.ZitiEdgeRouterAdvertisedHostVarName, constants.ZitiEdgeRouterAdvertisedHostVarDescription, data.Router.Edge.AdvertisedHost, constants.ZitiCtrlIdentityCertVarName, constants.ZitiCtrlIdentityCertVarDescription, data.Controller.IdentityCert, constants.ZitiCtrlIdentityServerCertVarName, constants.ZitiCtrlIdentityServerCertVarDescription, data.Controller.IdentityServerCert, constants.ZitiCtrlIdentityKeyVarName, constants.ZitiCtrlIdentityKeyVarDescription, data.Controller.IdentityKey, diff --git a/ziti/cmd/ziti/cmd/create_config_router.go b/ziti/cmd/ziti/cmd/create_config_router.go index bfba5d4c9..8fdac42e1 100644 --- a/ziti/cmd/ziti/cmd/create_config_router.go +++ b/ziti/cmd/ziti/cmd/create_config_router.go @@ -38,7 +38,8 @@ type CreateConfigRouterOptions struct { WssEnabled bool IsPrivate bool TunnelerDisabled bool - Tproxy bool + TunnelerMode string + LanInterface string } var routerOptions = CreateConfigRouterOptions{} diff --git a/ziti/cmd/ziti/cmd/create_config_router_common.go b/ziti/cmd/ziti/cmd/create_config_router_common.go index b849197ab..0440384fb 100644 --- a/ziti/cmd/ziti/cmd/create_config_router_common.go +++ b/ziti/cmd/ziti/cmd/create_config_router_common.go @@ -37,12 +37,6 @@ func SetZitiRouterIdentity(r *RouterTemplateValues, routerName string) { r.Edge.IPOverride = edgeRouterIPOverride } - // Egde Router Lan Interface - edgeRouterLanInterface := os.Getenv(constants.ZitiEdgeRouterLanInterfaceVarName) - if edgeRouterLanInterface != "" { - r.Edge.LanInterface = edgeRouterLanInterface - } - externalDNS := os.Getenv(constants.ExternalDNSVarName) edgeRouterRawName := os.Getenv(constants.ZitiEdgeRouterRawNameVarName) if externalDNS != "" { @@ -56,10 +50,10 @@ func SetZitiRouterIdentity(r *RouterTemplateValues, routerName string) { r.Edge.AdvertisedHost = r.Edge.Hostname //not redundant set AdvertisedHost } - advertisedHost := os.Getenv(constants.ZitiRouterAdvertisedHostVarName) + advertisedHost := os.Getenv(constants.ZitiEdgeRouterAdvertisedHostVarName) if advertisedHost != "" { if advertisedHost != edgeRouterIPOverride && advertisedHost != r.Edge.AdvertisedHost { - log.Panicf("if %s[%s] is supplied, it *MUST* match the %s[%s] or resolved hostname[%s]", constants.ZitiRouterAdvertisedHostVarName, advertisedHost, constants.ZitiEdgeRouterIPOverrideVarName, edgeRouterIPOverride, r.Edge.Hostname) + log.Panicf("if %s[%s] is supplied, it *MUST* match the %s[%s] or resolved hostname[%s]", constants.ZitiEdgeRouterAdvertisedHostVarName, advertisedHost, constants.ZitiEdgeRouterIPOverrideVarName, edgeRouterIPOverride, r.Edge.Hostname) } r.Edge.AdvertisedHost = advertisedHost //finally override AdvertisedHost if provided } else { diff --git a/ziti/cmd/ziti/cmd/create_config_router_edge.go b/ziti/cmd/ziti/cmd/create_config_router_edge.go index d615e55c3..3c81855f8 100644 --- a/ziti/cmd/ziti/cmd/create_config_router_edge.go +++ b/ziti/cmd/ziti/cmd/create_config_router_edge.go @@ -31,12 +31,23 @@ import ( ) const ( - optionWSS = "wss" - defaultWSS = false - wssDescription = "Create an edge router config with wss enabled" - optionPrivate = "private" - defaultPrivate = false - privateDescription = "Create a private router config" + optionWSS = "wss" + defaultWSS = false + wssDescription = "Create an edge router config with wss enabled" + optionPrivate = "private" + defaultPrivate = false + privateDescription = "Create a private router config" + optionTunnelerDisabled = "disableTunneler" + defaultTunnelerDisabled = false + tunnelerDisabledDescription = "Disable Router tunnel capabilities" + tproxyMode = "tproxy" + hostMode = "host" + optionTunnelerMode = "tunnelerMode" + defaultTunnelerMode = hostMode + tunnelerModeDescription = "Specify tunneler mode (host or tproxy); tunnelerMode must be enabled" + optionLanInterface = "lanInterface" + defaultLanInterface = "" + lanInterfaceDescription = "The interface on host of the router to insert iptables ingress filter rules" ) var ( @@ -66,7 +77,8 @@ func NewCmdCreateConfigRouterEdge() *cobra.Command { data.Router.IsWss = routerOptions.WssEnabled data.Router.IsPrivate = routerOptions.IsPrivate data.Router.TunnelerDisabled = routerOptions.TunnelerDisabled - data.Router.Tproxy = routerOptions.Tproxy + data.Router.TunnelerMode = routerOptions.TunnelerMode + data.Router.Edge.LanInterface = routerOptions.LanInterface }, Run: func(cmd *cobra.Command, args []string) { routerOptions.Cmd = cmd @@ -85,8 +97,9 @@ func NewCmdCreateConfigRouterEdge() *cobra.Command { func (options *CreateConfigRouterOptions) addEdgeFlags(cmd *cobra.Command) { cmd.Flags().BoolVar(&options.WssEnabled, optionWSS, defaultWSS, wssDescription) cmd.Flags().BoolVar(&options.IsPrivate, optionPrivate, defaultPrivate, privateDescription) - cmd.PersistentFlags().BoolVarP(&options.TunnelerDisabled, "disableTunneler", "t", false, "whether the router has tunneling disabled") - cmd.PersistentFlags().BoolVarP(&options.Tproxy, "Tproxy", "x", false, "enable tproxy if disableTunneler") + cmd.PersistentFlags().BoolVarP(&options.TunnelerDisabled, optionTunnelerDisabled, "t", defaultTunnelerDisabled, tunnelerDisabledDescription) + cmd.PersistentFlags().StringVarP(&options.TunnelerMode, optionTunnelerMode, "", defaultTunnelerMode, tunnelerModeDescription) + cmd.PersistentFlags().StringVarP(&options.LanInterface, optionLanInterface, "", defaultLanInterface, lanInterfaceDescription) cmd.PersistentFlags().StringVarP(&options.RouterName, optionRouterName, "n", "", "name of the router") err := cmd.MarkPersistentFlagRequired(optionRouterName) if err != nil { @@ -101,9 +114,11 @@ func (options *CreateConfigRouterOptions) runEdgeRouter(data *ConfigTemplateValu return errors.New("Flags for private and wss configs are mutually exclusive. You must choose private or wss, not both") } - // Ensure disableTunneler and Tproxy are not both used - if options.TunnelerDisabled && options.Tproxy { - return errors.New("Flags for TunnelerDisabled and Tproxy are mutually exclusive. You must choose one, but not both") + // Make sure the tunneler mode is valid + if !options.TunnelerDisabled { + if options.TunnelerMode != hostMode && options.TunnelerMode != tproxyMode { + return errors.New("Unknown tunneler mode [" + options.TunnelerMode + "] provided, should be [" + hostMode + "] or [" + tproxyMode + "]") + } } tmpl, err := template.New("edge-router-config").Parse(routerConfigEdgeTemplate) diff --git a/ziti/cmd/ziti/cmd/create_config_router_edge_test.go b/ziti/cmd/ziti/cmd/create_config_router_edge_test.go index 82a065b26..30fff3414 100644 --- a/ziti/cmd/ziti/cmd/create_config_router_edge_test.go +++ b/ziti/cmd/ziti/cmd/create_config_router_edge_test.go @@ -1,9 +1,11 @@ package cmd import ( + "github.com/openziti/ziti/ziti/cmd/ziti/constants" "github.com/stretchr/testify/assert" "os" "testing" + "time" ) var defaultArgs = []string{"edge", "--routerName", "test-router"} @@ -30,6 +32,7 @@ func execCreateConfigCommand(args []string, keys map[string]string) { } func TestEdgeRouterAdvertised(t *testing.T) { + clearOptionsAndTemplateData() routerAdvHostIp := "192.168.10.10" routerAdvHostDns := "controller01.zitinetwork.example.org" keys := map[string]string{ @@ -53,13 +56,225 @@ func TestEdgeRouterAdvertised(t *testing.T) { execCreateConfigCommand(defaultArgs, keys) assert.Equal(t, routerAdvHostDns, data.Router.Edge.AdvertisedHost, nil) - keys["ZITI_ROUTER_ADVERTISED_HOST"] = routerAdvHostIp + keys["ZITI_EDGE_ROUTER_ADVERTISED_HOST"] = routerAdvHostIp keys["ZITI_EDGE_ROUTER_IP_OVERRIDE"] = routerAdvHostIp execCreateConfigCommand(defaultArgs, keys) assert.Equal(t, routerAdvHostIp, data.Router.Edge.AdvertisedHost, nil) - keys["ZITI_ROUTER_ADVERTISED_HOST"] = routerAdvHostDns + keys["ZITI_EDGE_ROUTER_ADVERTISED_HOST"] = routerAdvHostDns keys["EXTERNAL_DNS"] = routerAdvHostDns execCreateConfigCommand(defaultArgs, keys) assert.Equal(t, routerAdvHostDns, data.Router.Edge.AdvertisedHost, nil) } + +func TestTunnelerEnabledByDefault(t *testing.T) { + // Setup options + clearOptionsAndTemplateData() + routerOptions.Output = defaultOutput + + // Create and run the CLI command without the tunnel flag + config := createRouterConfig([]string{"edge", "--routerName", "myRouter"}) + + // Expect disabled flag to be false + assert.False(t, data.Router.TunnelerDisabled, "Expected tunneler disabled flag to be false") + + // Confirm tunneler is enabled in config output + foundTunnel := false + for i := 0; i < len(config.Listeners); i++ { + if config.Listeners[i].Binding == "tunnel" { + foundTunnel = true + } + } + assert.True(t, foundTunnel, "Expected to find tunnel listener binding but it was not found") +} + +func TestTunnelerDisabledFlag(t *testing.T) { + // Setup options + clearOptionsAndTemplateData() + routerOptions.Output = defaultOutput + + // Create and run the CLI command with the disable tunnel flag + config := createRouterConfig([]string{"edge", "--routerName", "myRouter", "--disableTunneler"}) + + // Expect disabled flag to be true + assert.True(t, data.Router.TunnelerDisabled, "Expected tunneler disabled flag to be true") + + // Confirm tunneler is enabled in config output + foundTunnel := false + for i := 0; i < len(config.Listeners); i++ { + if config.Listeners[i].Binding == "tunnel" { + foundTunnel = true + } + } + assert.False(t, foundTunnel, "Tunnel listener binding was not expected but it was found") +} + +func TestTunnelerHostModeIsDefault(t *testing.T) { + // Setup options + clearOptionsAndTemplateData() + routerOptions.Output = defaultOutput + + // Create and run the CLI command without the tunnel flag + config := createRouterConfig([]string{"edge", "--routerName", "myRouter"}) + + // Expect tunneler mode to be "host" mode + assert.Equal(t, hostMode, data.Router.TunnelerMode, "Expected tunneler mode to be %s but found %s", hostMode, data.Router.TunnelerMode) + + // Confirm tunneler mode in config is set to host mode + for i := 0; i < len(config.Listeners); i++ { + if config.Listeners[i].Binding == "tunnel" { + assert.Equal(t, hostMode, config.Listeners[i].Options.Mode, "Expected tunneler mode to be %s but found %s in config output", hostMode, data.Router.TunnelerMode) + } + } +} + +func TestTunnelerTproxyMode(t *testing.T) { + // Setup options + clearOptionsAndTemplateData() + routerOptions.Output = defaultOutput + + // Create and run the CLI command without the tunnel flag + config := createRouterConfig([]string{"edge", "--routerName", "myRouter", "--tunnelerMode", tproxyMode}) + + // Expect tunneler mode to be "host" mode + assert.Equal(t, tproxyMode, data.Router.TunnelerMode, "Expected tunneler mode to be %s but found %s", tproxyMode, data.Router.TunnelerMode) + + // Confirm tunneler mode in config is set to host mode + for i := 0; i < len(config.Listeners); i++ { + if config.Listeners[i].Binding == "tunnel" { + assert.Equal(t, tproxyMode, config.Listeners[i].Options.Mode, "Expected tunneler mode to be %s but found %s in config output", tproxyMode, data.Router.TunnelerMode) + } + } +} + +func TestTunnelerInvalidMode(t *testing.T) { + invalidMode := "invalidMode" + + expectedErrorMsg := "Unknown tunneler mode [" + invalidMode + "] provided, should be [host] or [tproxy]" + + // Create the options with both flags set to true + clearOptionsAndTemplateData() + routerOptions.Output = defaultOutput + routerOptions.TunnelerMode = invalidMode + + err := routerOptions.runEdgeRouter(&ConfigTemplateValues{}) + + assert.EqualError(t, err, expectedErrorMsg, "Error does not match, expected %s but got %s", expectedErrorMsg, err) +} + +func TestPrivateEdgeRouterNotAdvertising(t *testing.T) { + clearOptionsAndTemplateData() + + // Create and run the CLI command + config := createRouterConfig([]string{"edge", "--routerName", "myRouter", "--private"}) + + // Expect that the config values are represented correctly + assert.Equal(t, 0, len(config.Link.Listeners), "Expected zero link listeners for private edge router, found a non-zero value") +} + +func TestBlankEdgeRouterNameBecomesHostname(t *testing.T) { + hostname, _ := os.Hostname() + blank := "" + + // Setup options with blank router name + clearOptionsAndTemplateData() + routerOptions.Output = defaultOutput + routerOptions.RouterName = blank + + // Check that template values is a blank name + assert.Equal(t, blank, data.Router.Name, "Mismatch router name, expected %s but got %s", "", hostname) + + // Create and run the CLI command + _ = createRouterConfig([]string{"edge", "--routerName", blank}) + + // Check that the blank name was replaced with hostname in the template values + assert.Equal(t, hostname, data.Router.Name, "Mismatch router name, expected %s but got %s", "", hostname) + +} + +func TestEdgeRouterCannotBeWSSAndPrivate(t *testing.T) { + expectedErrorMsg := "Flags for private and wss configs are mutually exclusive. You must choose private or wss, not both" + + // Create the options with both flags set to true + clearOptionsAndTemplateData() + routerOptions.Output = defaultOutput + routerOptions.IsPrivate = true + routerOptions.WssEnabled = true + + err := routerOptions.runEdgeRouter(&ConfigTemplateValues{}) + + assert.EqualError(t, err, expectedErrorMsg, "Error does not match, expected %s but got %s", expectedErrorMsg, err) +} + +func TestEdgeRouterOutputPathDoesNotExist(t *testing.T) { + expectedErrorMsg := "stat /IDoNotExist: no such file or directory" + + // Set the router options + clearOptionsAndTemplateData() + routerOptions.TunnelerDisabled = true + routerOptions.RouterName = "MyEdgeRouter" + routerOptions.Output = "/IDoNotExist/MyEdgeRouter.yaml" + + err := routerOptions.runEdgeRouter(&ConfigTemplateValues{}) + + assert.EqualError(t, err, expectedErrorMsg, "Error does not match, expected %s but got %s", expectedErrorMsg, err) +} + +func TestExecuteCreateConfigRouterEdgeHasNonBlankTemplateValues(t *testing.T) { + routerName := "MyEdgeRouter" + expectedNonEmptyStringFields := []string{".ZitiHome", ".Hostname", ".Router.Name", ".Router.IdentityCert", ".Router.IdentityServerCert", ".Router.IdentityKey", ".Router.IdentityCA", ".Router.Edge.Hostname", ".Router.Edge.Port"} + expectedNonEmptyStringValues := []*string{&data.ZitiHome, &data.Hostname, &data.Router.Name, &data.Router.IdentityCert, &data.Router.IdentityServerCert, &data.Router.IdentityKey, &data.Router.IdentityCA, &data.Router.Edge.Hostname, &data.Router.Edge.Port} + expectedNonEmptyIntFields := []string{".Router.Listener.BindPort", ".Router.Listener.OutQueueSize", ".Router.Wss.ReadBufferSize", ".Router.Wss.WriteBufferSize", ".Router.Forwarder.XgressDialQueueLength", ".Router.Forwarder.XgressDialWorkerCount", ".Router.Forwarder.LinkDialQueueLength", ".Router.Forwarder.LinkDialWorkerCount"} + expectedNonEmptyIntValues := []*int{&data.Router.Listener.BindPort, &data.Router.Listener.OutQueueSize, &data.Router.Wss.ReadBufferSize, &data.Router.Wss.WriteBufferSize, &data.Router.Forwarder.XgressDialQueueLength, &data.Router.Forwarder.XgressDialWorkerCount, &data.Router.Forwarder.LinkDialQueueLength, &data.Router.Forwarder.LinkDialWorkerCount} + expectedNonEmptyTimeFields := []string{".Router.Listener.ConnectTimeout", "Router.Listener.GetSessionTimeout", ".Router.Wss.WriteTimeout", ".Router.Wss.ReadTimeout", ".Router.Wss.IdleTimeout", ".Router.Wss.PongTimeout", ".Router.Wss.PingInterval", ".Router.Wss.HandshakeTimeout", ".Router.Forwarder.LatencyProbeInterval"} + expectedNonEmptyTimeValues := []*time.Duration{&data.Router.Listener.ConnectTimeout, &data.Router.Listener.GetSessionTimeout, &data.Router.Wss.WriteTimeout, &data.Router.Wss.ReadTimeout, &data.Router.Wss.IdleTimeout, &data.Router.Wss.PongTimeout, &data.Router.Wss.PingInterval, &data.Router.Wss.HandshakeTimeout, &data.Router.Forwarder.LatencyProbeInterval} + + // Create and run the CLI command + _ = createRouterConfig([]string{"edge", "--routerName", routerName}) + + // Check that the expected string template values are not blank + for field, value := range expectedNonEmptyStringValues { + assert.NotEqualf(t, "", *value, expectedNonEmptyStringFields[field]+" should be a non-blank value") + } + + // Check that the expected int template values are not zero + for field, value := range expectedNonEmptyIntValues { + assert.NotZero(t, *value, expectedNonEmptyIntFields[field]+" should be a non-zero value") + } + + // Check that the expected time.Duration template values are not zero + for field, value := range expectedNonEmptyTimeValues { + assert.NotZero(t, *value, expectedNonEmptyTimeFields[field]+" should be a non-zero value") + } +} + +func TestEdgeRouterIPOverrideIsConsumed(t *testing.T) { + routerName := "MyFabricRouter" + blank := "" + externalIP := "123.456.78.9" + + // Setup options + clearOptionsAndTemplateData() + routerOptions.Output = defaultOutput + + // Set the env variable to non-empty value + _ = os.Setenv(constants.ZitiEdgeRouterIPOverrideVarName, externalIP) + + // Check that template value is currently blank + assert.Equal(t, blank, data.Router.Edge.IPOverride, "Mismatch router IP override, expected %s but got %s", blank, data.Router.Edge.IPOverride) + + // Create and run the CLI command (capture output, otherwise config prints to stdout instead of test results) + config := createRouterConfig([]string{"edge", "--routerName", routerName}) + + // Check that the template values now contains the custom external IP override value + assert.Equal(t, externalIP, data.Router.Edge.IPOverride, "Mismatch router IP override, expected %s but got %s", externalIP, data.Router.Edge.IPOverride) + + // Check that the config output has the IP + found := false + for i := 1; i < len(config.Edge.Csr.Sans.Ip); i++ { + if config.Edge.Csr.Sans.Ip[i] == externalIP { + found = true + } + } + assert.True(t, found, "Expected value not found; expected to find value of "+constants.ZitiEdgeRouterIPOverrideVarName+" in edge router config output.") +} diff --git a/ziti/cmd/ziti/cmd/create_config_router_fabric_test.go b/ziti/cmd/ziti/cmd/create_config_router_fabric_test.go new file mode 100644 index 000000000..2b1e0cf8a --- /dev/null +++ b/ziti/cmd/ziti/cmd/create_config_router_fabric_test.go @@ -0,0 +1,111 @@ +package cmd + +import ( + "github.com/openziti/ziti/ziti/cmd/ziti/constants" + "github.com/stretchr/testify/assert" + "os" + "testing" + "time" +) + +func TestExecuteCreateConfigRouterFabricHasNonBlankTemplateValues(t *testing.T) { + routerName := "MyFabricRouter" + expectedNonEmptyStringFields := []string{".ZitiHome", ".Hostname", ".Router.Name", ".Router.IdentityCert", ".Router.IdentityServerCert", ".Router.IdentityKey", ".Router.IdentityCA", ".Router.Edge.Hostname", ".Router.Edge.Port"} + expectedNonEmptyStringValues := []*string{&data.ZitiHome, &data.Hostname, &data.Router.Name, &data.Router.IdentityCert, &data.Router.IdentityServerCert, &data.Router.IdentityKey, &data.Router.IdentityCA, &data.Router.Edge.Hostname, &data.Router.Edge.Port} + expectedNonEmptyIntFields := []string{".Router.Listener.BindPort", ".Router.Listener.OutQueueSize", ".Router.Wss.ReadBufferSize", ".Router.Wss.WriteBufferSize", ".Router.Forwarder.XgressDialQueueLength", ".Router.Forwarder.XgressDialWorkerCount", ".Router.Forwarder.LinkDialQueueLength", ".Router.Forwarder.LinkDialWorkerCount"} + expectedNonEmptyIntValues := []*int{&data.Router.Listener.BindPort, &data.Router.Listener.OutQueueSize, &data.Router.Wss.ReadBufferSize, &data.Router.Wss.WriteBufferSize, &data.Router.Forwarder.XgressDialQueueLength, &data.Router.Forwarder.XgressDialWorkerCount, &data.Router.Forwarder.LinkDialQueueLength, &data.Router.Forwarder.LinkDialWorkerCount} + expectedNonEmptyTimeFields := []string{".Router.Listener.ConnectTimeout", "Router.Listener.GetSessionTimeout", ".Router.Wss.WriteTimeout", ".Router.Wss.ReadTimeout", ".Router.Wss.IdleTimeout", ".Router.Wss.PongTimeout", ".Router.Wss.PingInterval", ".Router.Wss.HandshakeTimeout", ".Router.Forwarder.LatencyProbeInterval"} + expectedNonEmptyTimeValues := []*time.Duration{&data.Router.Listener.ConnectTimeout, &data.Router.Listener.GetSessionTimeout, &data.Router.Wss.WriteTimeout, &data.Router.Wss.ReadTimeout, &data.Router.Wss.IdleTimeout, &data.Router.Wss.PongTimeout, &data.Router.Wss.PingInterval, &data.Router.Wss.HandshakeTimeout, &data.Router.Forwarder.LatencyProbeInterval} + + // Create and run the CLI command (capture output, otherwise config prints to stdout instead of test results) + _ = createRouterConfig([]string{"fabric", "--routerName", routerName}) + + // Check that the expected string template values are not blank + for field, value := range expectedNonEmptyStringValues { + assert.NotEqualf(t, "", *value, expectedNonEmptyStringFields[field]+" should be a non-blank value") + } + + // Check that the expected int template values are not zero + for field, value := range expectedNonEmptyIntValues { + assert.NotZero(t, *value, expectedNonEmptyIntFields[field]+" should be a non-zero value") + } + + // Check that the expected time.Duration template values are not zero + for field, value := range expectedNonEmptyTimeValues { + assert.NotZero(t, *value, expectedNonEmptyTimeFields[field]+" should be a non-zero value") + } +} + +func TestFabricRouterIPOverrideIsConsumed(t *testing.T) { + routerName := "MyFabricRouter" + blank := "" + externalIP := "123.456.78.9" + + // Setup options + clearOptionsAndTemplateData() + routerOptions.Output = defaultOutput + + // Set the env variable to non-empty value + _ = os.Setenv(constants.ZitiEdgeRouterIPOverrideVarName, externalIP) + + // Check that template value is currently blank + assert.Equal(t, blank, data.Router.Edge.IPOverride, "Mismatch router IP override, expected %s but got %s", blank, data.Router.Edge.IPOverride) + + // Create and run the CLI command (capture output, otherwise config prints to stdout instead of test results) + config := createRouterConfig([]string{"fabric", "--routerName", routerName}) + + // Check that the template values now contains the custom external IP override value + assert.Equal(t, externalIP, data.Router.Edge.IPOverride, "Mismatch router IP override, expected %s but got %s", externalIP, data.Router.Edge.IPOverride) + + // Check that the config output has the IP + found := false + for i := 1; i < len(config.Csr.Sans.Ip); i++ { + if config.Csr.Sans.Ip[i] == externalIP { + found = true + } + } + assert.True(t, found, "Expected value not found; expected to find value of "+constants.ZitiEdgeRouterIPOverrideVarName+" in fabric router config output.") +} + +func TestFabricRouterHasNoListeners(t *testing.T) { + clearOptionsAndTemplateData() + + // Create and run the CLI command + config := createRouterConfig([]string{"fabric", "--routerName", "myRouter"}) + + // Expect that the config values are represented correctly + assert.Equal(t, 0, len(config.Listeners), "Expected zero listeners for fabric router, found a non-zero value") +} + +func TestBlankFabricRouterNameBecomesHostname(t *testing.T) { + hostname, _ := os.Hostname() + blank := "" + + // Create the options with empty router name + clearOptionsAndTemplateData() + routerOptions.Output = defaultOutput + routerOptions.RouterName = blank + + // Check that template values is a blank name + assert.Equal(t, blank, data.Router.Name, "Mismatch router name, expected %s but got %s", "", hostname) + + // Create and run the CLI command + _ = createRouterConfig([]string{"fabric", "--routerName", blank}) + + // Check that the blank name was replaced with hostname in the template values + assert.Equal(t, hostname, data.Router.Name, "Mismatch router name, expected %s but got %s", "", hostname) + +} + +func TestFabricRouterOutputPathDoesNotExist(t *testing.T) { + expectedErrorMsg := "stat /IDoNotExist: no such file or directory" + + // Set the router options + clearOptionsAndTemplateData() + routerOptions.RouterName = "MyFabricRouter" + routerOptions.Output = "/IDoNotExist/MyFabricRouter.yaml" + + err := routerOptions.runFabricRouter(&ConfigTemplateValues{}) + + assert.EqualError(t, err, expectedErrorMsg, "Error does not match, expected %s but got %s", expectedErrorMsg, err) +} diff --git a/ziti/cmd/ziti/cmd/create_config_router_test.go b/ziti/cmd/ziti/cmd/create_config_router_test.go index 7bf3d7e7f..81ad11d25 100644 --- a/ziti/cmd/ziti/cmd/create_config_router_test.go +++ b/ziti/cmd/ziti/cmd/create_config_router_test.go @@ -1,105 +1,135 @@ package cmd import ( + "fmt" "github.com/openziti/ziti/ziti/cmd/ziti/constants" "github.com/stretchr/testify/assert" + "gopkg.in/yaml.v3" "os" - "strings" "testing" - "time" ) +/* BEGIN Controller config template structure */ + +type RouterConfig struct { + V string `yaml:"v"` + Identity Identity `yaml:"identity"` + Ctrl RouterCtrl `yaml:"ctrl"` + Link Link `yaml:"link"` + Listeners []Listener `yaml:"listeners"` + Csr Csr `yaml:"csr"` + Edge RouterEdge `yaml:"edge"` + Transport Transport `yaml:"transport"` + Forwarder Forwarder `yaml:"forwarder"` +} + +type RouterCtrl struct { + Endpoint string `yaml:"endpoint"` +} + +type Link struct { + Dialers []Dialer `yaml:"dialers"` + Listeners []Listener `yaml:"listeners"` + Timeout string `yaml:"timeout"` + InitialDelay string `yaml:"initialDelay"` +} + +type Dialer struct { + Binding string `yaml:"binding"` +} + +type Listener struct { + Binding string `yaml:"binding"` + Bind string `yaml:"bind"` + Advertise string `yaml:"advertise"` + Address string `yaml:"address"` + Options ListenerOptions `yaml:"options"` +} + +type ListenerOptions struct { + Advertise string `yaml:"advertise"` + ConnectTimeout int `yaml:"connectTimeoutMs"` + GetSessionTimeout int `yaml:"getSessionTimeout"` + Mode string `yaml:"mode"` + Resolver string `yaml:"resolver"` + LanIf []string `yaml:"lanIf"` + OutQueueSize string `yaml:"outQueueSize"` +} + +type RouterEdge struct { + Csr Csr `yaml:"csr"` +} + +type Csr struct { + Country string `yaml:"country"` + Province string `yaml:"province"` + Locality string `yaml:"locality"` + Organization string `yaml:"organization"` + OrganizationalUnit string `yaml:"organizationalUnit"` + Sans Sans `yaml:"sans"` +} + +type Sans struct { + Dns []string `yaml:"dns"` + Ip []string `yaml:"ip"` +} + +type Transport struct { + Ws Ws `yaml:"ws"` +} + +type Ws struct { + writeTimeout int `yaml:"writeTimeout"` + readTimeout int `yaml:"readTimeout"` + idleTimeout int `yaml:"idleTimeout"` + pongTimeout int `yaml:"pongTimeout"` + pingInterval int `yaml:"pingInterval"` + handshakeTimeout int `yaml:"handshakeTimeout"` + readBufferSize int `yaml:"readBufferSize"` + writeBufferSize int `yaml:"writeBufferSize"` + enableCompression string `yaml:"enableCompression"` + server_cert string `yaml:"server_Cert"` + key string `yaml:"key"` +} + +type Forwarder struct { + LatencyProbeInterval int `yaml:"latencyProbeInterval"` + XgressDialQueueLength int `yaml:"xgressDialQueueLength"` + XgressDialWorkerCount int `yaml:"xgressDialWorkerCount"` + LinkDialQueueLength int `yaml:"linkDialQueueLength"` + LinkDialWorkerCount int `yaml:"linkDialWorkerCount"` +} + +/* END Controller config template structure */ + +func createRouterConfig(args []string) RouterConfig { + // Create and run the CLI command + cmd := NewCmdCreateConfigRouter() + cmd.SetArgs(args) + // captureOutput is used to consume output, otherwise config prints to stdout along with test results + output := captureOutput(func() { + _ = cmd.Execute() + }) + + // Convert output to config struct + configStruct := RouterConfig{} + err2 := yaml.Unmarshal([]byte(output), &configStruct) + if err2 != nil { + fmt.Println(err2) + } + return configStruct +} + func clearOptionsAndTemplateData() { routerOptions = CreateConfigRouterOptions{} data = &ConfigTemplateValues{} -} -func TestBlankEdgeRouterNameBecomesHostname(t *testing.T) { - hostname, _ := os.Hostname() - blank := "" - - // Setup options with blank router name - clearOptionsAndTemplateData() - routerOptions.Output = defaultOutput - routerOptions.RouterName = blank - - // Check that template values is a blank name - assert.Equal(t, blank, data.Router.Name, "Mismatch router name, expected %s but got %s", "", hostname) - - // Create and run the CLI command (capture output, otherwise config prints to stdout instead of test results) - cmd := NewCmdCreateConfigRouter() - cmd.SetArgs([]string{"edge", "--routerName", blank}) - _ = captureOutput(func() { - _ = cmd.Execute() - }) - - // Check that the blank name was replaced with hostname in the template values - assert.Equal(t, hostname, data.Router.Name, "Mismatch router name, expected %s but got %s", "", hostname) - -} - -func TestBlankFabricRouterNameBecomesHostname(t *testing.T) { - hostname, _ := os.Hostname() - blank := "" - - // Create the options with empty router name - clearOptionsAndTemplateData() - routerOptions.Output = defaultOutput - routerOptions.RouterName = blank - - // Check that template values is a blank name - assert.Equal(t, blank, data.Router.Name, "Mismatch router name, expected %s but got %s", "", hostname) - - // Create and run the CLI command (capture output, otherwise config prints to stdout instead of test results) - cmd := NewCmdCreateConfigRouter() - cmd.SetArgs([]string{"fabric", "--routerName", blank}) - _ = captureOutput(func() { - _ = cmd.Execute() - }) - - // Check that the blank name was replaced with hostname in the template values - assert.Equal(t, hostname, data.Router.Name, "Mismatch router name, expected %s but got %s", "", hostname) - -} - -func TestEdgeRouterCannotBeWSSAndPrivate(t *testing.T) { - expectedErrorMsg := "Flags for private and wss configs are mutually exclusive. You must choose private or wss, not both" - - // Create the options with both flags set to true - clearOptionsAndTemplateData() - routerOptions.Output = defaultOutput - routerOptions.IsPrivate = true - routerOptions.WssEnabled = true - - err := routerOptions.runEdgeRouter(&ConfigTemplateValues{}) - - assert.EqualError(t, err, expectedErrorMsg, "Error does not match, expected %s but got %s", expectedErrorMsg, err) -} - -func TestEdgeRouterOutputPathDoesNotExist(t *testing.T) { - expectedErrorMsg := "stat /IDoNotExist: no such file or directory" - - // Set the router options - clearOptionsAndTemplateData() - routerOptions.RouterName = "MyEdgeRouter" - routerOptions.Output = "/IDoNotExist/MyEdgeRouter.yaml" - - err := routerOptions.runEdgeRouter(&ConfigTemplateValues{}) - - assert.EqualError(t, err, expectedErrorMsg, "Error does not match, expected %s but got %s", expectedErrorMsg, err) -} - -func TestFabricRouterOutputPathDoesNotExist(t *testing.T) { - expectedErrorMsg := "stat /IDoNotExist: no such file or directory" - - // Set the router options - clearOptionsAndTemplateData() - routerOptions.RouterName = "MyFabricRouter" - routerOptions.Output = "/IDoNotExist/MyFabricRouter.yaml" - - err := routerOptions.runFabricRouter(&ConfigTemplateValues{}) - - assert.EqualError(t, err, expectedErrorMsg, "Error does not match, expected %s but got %s", expectedErrorMsg, err) + // Unset environment variables + envVars := getZitiEnvironmentVariables() + for i := 0; i < len(envVars); i++ { + _ = os.Unsetenv(envVars[i]) + } + _ = os.Unsetenv(constants.ExternalDNSVarName) } func TestSetZitiRouterIdentityCertDefault(t *testing.T) { @@ -204,6 +234,7 @@ func TestSetZitiRouterIdentityCACustom(t *testing.T) { func TestSetZitiRouterIdentitySetsAllIdentitiesAndEdgeRouterRawName(t *testing.T) { // Setup + clearOptionsAndTemplateData() expectedRawName := "MyEdgeRouterRawName" blank := "" rtv := &RouterTemplateValues{} @@ -230,6 +261,7 @@ func TestSetZitiRouterIdentitySetsAllIdentitiesAndEdgeRouterRawName(t *testing.T func TestSetZitiRouterIdentitySetsAllIdentitiesAndEdgeRouterRawNameToHostWhenBlank(t *testing.T) { // Setup + clearOptionsAndTemplateData() expectedRawName, _ := os.Hostname() blank := "" rtv := &RouterTemplateValues{} @@ -253,96 +285,3 @@ func TestSetZitiRouterIdentitySetsAllIdentitiesAndEdgeRouterRawNameToHostWhenBla assert.NotEqualf(t, blank, rtv.IdentityKey, "Router.IdentityCert expected to have a value, instead it was blank") assert.NotEqualf(t, blank, rtv.IdentityCA, "Router.IdentityCert expected to have a value, instead it was blank") } - -func TestExecuteCreateConfigRouterEdgeHasNonBlankTemplateValues(t *testing.T) { - routerName := "MyEdgeRouter" - expectedNonEmptyStringFields := []string{".ZitiHome", ".Hostname", ".Router.Name", ".Router.IdentityCert", ".Router.IdentityServerCert", ".Router.IdentityKey", ".Router.IdentityCA", ".Router.Edge.Hostname", ".Router.Edge.Port"} - expectedNonEmptyStringValues := []*string{&data.ZitiHome, &data.Hostname, &data.Router.Name, &data.Router.IdentityCert, &data.Router.IdentityServerCert, &data.Router.IdentityKey, &data.Router.IdentityCA, &data.Router.Edge.Hostname, &data.Router.Edge.Port} - expectedNonEmptyIntFields := []string{".Router.Listener.BindPort", ".Router.Listener.OutQueueSize", ".Router.Wss.ReadBufferSize", ".Router.Wss.WriteBufferSize", ".Router.Forwarder.XgressDialQueueLength", ".Router.Forwarder.XgressDialWorkerCount", ".Router.Forwarder.LinkDialQueueLength", ".Router.Forwarder.LinkDialWorkerCount"} - expectedNonEmptyIntValues := []*int{&data.Router.Listener.BindPort, &data.Router.Listener.OutQueueSize, &data.Router.Wss.ReadBufferSize, &data.Router.Wss.WriteBufferSize, &data.Router.Forwarder.XgressDialQueueLength, &data.Router.Forwarder.XgressDialWorkerCount, &data.Router.Forwarder.LinkDialQueueLength, &data.Router.Forwarder.LinkDialWorkerCount} - expectedNonEmptyTimeFields := []string{".Router.Listener.ConnectTimeout", "Router.Listener.GetSessionTimeout", ".Router.Wss.WriteTimeout", ".Router.Wss.ReadTimeout", ".Router.Wss.IdleTimeout", ".Router.Wss.PongTimeout", ".Router.Wss.PingInterval", ".Router.Wss.HandshakeTimeout", ".Router.Forwarder.LatencyProbeInterval"} - expectedNonEmptyTimeValues := []*time.Duration{&data.Router.Listener.ConnectTimeout, &data.Router.Listener.GetSessionTimeout, &data.Router.Wss.WriteTimeout, &data.Router.Wss.ReadTimeout, &data.Router.Wss.IdleTimeout, &data.Router.Wss.PongTimeout, &data.Router.Wss.PingInterval, &data.Router.Wss.HandshakeTimeout, &data.Router.Forwarder.LatencyProbeInterval} - - // Create and run the CLI command (capture output, otherwise config prints to stdout instead of test results) - cmd := NewCmdCreateConfigRouter() - cmd.SetArgs([]string{"edge", "--routerName", routerName}) - _ = captureOutput(func() { - _ = cmd.Execute() - }) - - // Check that the expected string template values are not blank - for field, value := range expectedNonEmptyStringValues { - assert.NotEqualf(t, "", *value, expectedNonEmptyStringFields[field]+" should be a non-blank value") - } - - // Check that the expected int template values are not zero - for field, value := range expectedNonEmptyIntValues { - assert.NotZero(t, *value, expectedNonEmptyIntFields[field]+" should be a non-zero value") - } - - // Check that the expected time.Duration template values are not zero - for field, value := range expectedNonEmptyTimeValues { - assert.NotZero(t, *value, expectedNonEmptyTimeFields[field]+" should be a non-zero value") - } -} - -func TestExecuteCreateConfigRouterFabricHasNonBlankTemplateValues(t *testing.T) { - routerName := "MyFabricRouter" - expectedNonEmptyStringFields := []string{".ZitiHome", ".Hostname", ".Router.Name", ".Router.IdentityCert", ".Router.IdentityServerCert", ".Router.IdentityKey", ".Router.IdentityCA", ".Router.Edge.Hostname", ".Router.Edge.Port"} - expectedNonEmptyStringValues := []*string{&data.ZitiHome, &data.Hostname, &data.Router.Name, &data.Router.IdentityCert, &data.Router.IdentityServerCert, &data.Router.IdentityKey, &data.Router.IdentityCA, &data.Router.Edge.Hostname, &data.Router.Edge.Port} - expectedNonEmptyIntFields := []string{".Router.Listener.BindPort", ".Router.Listener.OutQueueSize", ".Router.Wss.ReadBufferSize", ".Router.Wss.WriteBufferSize", ".Router.Forwarder.XgressDialQueueLength", ".Router.Forwarder.XgressDialWorkerCount", ".Router.Forwarder.LinkDialQueueLength", ".Router.Forwarder.LinkDialWorkerCount"} - expectedNonEmptyIntValues := []*int{&data.Router.Listener.BindPort, &data.Router.Listener.OutQueueSize, &data.Router.Wss.ReadBufferSize, &data.Router.Wss.WriteBufferSize, &data.Router.Forwarder.XgressDialQueueLength, &data.Router.Forwarder.XgressDialWorkerCount, &data.Router.Forwarder.LinkDialQueueLength, &data.Router.Forwarder.LinkDialWorkerCount} - expectedNonEmptyTimeFields := []string{".Router.Listener.ConnectTimeout", "Router.Listener.GetSessionTimeout", ".Router.Wss.WriteTimeout", ".Router.Wss.ReadTimeout", ".Router.Wss.IdleTimeout", ".Router.Wss.PongTimeout", ".Router.Wss.PingInterval", ".Router.Wss.HandshakeTimeout", ".Router.Forwarder.LatencyProbeInterval"} - expectedNonEmptyTimeValues := []*time.Duration{&data.Router.Listener.ConnectTimeout, &data.Router.Listener.GetSessionTimeout, &data.Router.Wss.WriteTimeout, &data.Router.Wss.ReadTimeout, &data.Router.Wss.IdleTimeout, &data.Router.Wss.PongTimeout, &data.Router.Wss.PingInterval, &data.Router.Wss.HandshakeTimeout, &data.Router.Forwarder.LatencyProbeInterval} - - // Create and run the CLI command (capture output, otherwise config prints to stdout instead of test results) - cmd := NewCmdCreateConfigRouter() - cmd.SetArgs([]string{"fabric", "--routerName", routerName}) - _ = captureOutput(func() { - _ = cmd.Execute() - }) - - // Check that the expected string template values are not blank - for field, value := range expectedNonEmptyStringValues { - assert.NotEqualf(t, "", *value, expectedNonEmptyStringFields[field]+" should be a non-blank value") - } - - // Check that the expected int template values are not zero - for field, value := range expectedNonEmptyIntValues { - assert.NotZero(t, *value, expectedNonEmptyIntFields[field]+" should be a non-zero value") - } - - // Check that the expected time.Duration template values are not zero - for field, value := range expectedNonEmptyTimeValues { - assert.NotZero(t, *value, expectedNonEmptyTimeFields[field]+" should be a non-zero value") - } -} - -func TestEdgeRouterIPOverrideIsConsumed(t *testing.T) { - routerName := "MyFabricRouter" - blank := "" - externalIP := "123.456.78.9" - - // Setup options - clearOptionsAndTemplateData() - routerOptions.Output = defaultOutput - - // Set the env variable to non-empty value - _ = os.Setenv(constants.ZitiEdgeRouterIPOverrideVarName, externalIP) - - // Check that template value is currently blank - assert.Equal(t, blank, data.Router.Edge.IPOverride, "Mismatch router IP override, expected %s but got %s", blank, data.Router.Edge.IPOverride) - - // Create and run the CLI command (capture output, otherwise config prints to stdout instead of test results) - cmd := NewCmdCreateConfigRouter() - cmd.SetArgs([]string{"edge", "--routerName", routerName}) - configOutput := captureOutput(func() { - _ = cmd.Execute() - }) - - // Check that the template values now contains the custom external IP override value - assert.Equal(t, externalIP, data.Router.Edge.IPOverride, "Mismatch router IP override, expected %s but got %s", externalIP, data.Router.Edge.IPOverride) - - // Check that the config output has the IP - assert.True(t, strings.Contains(configOutput, externalIP), "Expected value not found; expected to find value of "+constants.ZitiEdgeRouterIPOverrideVarName+" in config output.") -} diff --git a/ziti/cmd/ziti/cmd/create_config_test.go b/ziti/cmd/ziti/cmd/create_config_test.go index be592481c..59a8b002b 100644 --- a/ziti/cmd/ziti/cmd/create_config_test.go +++ b/ziti/cmd/ziti/cmd/create_config_test.go @@ -39,6 +39,7 @@ func getZitiEnvironmentVariables() []string { "ZITI_EDGE_CTRL_ADVERTISED_HOST_PORT", "ZITI_EDGE_IDENTITY_ENROLLMENT_DURATION", "ZITI_EDGE_ROUTER_ENROLLMENT_DURATION", + "ZITI_EDGE_ROUTER_ADVERTISED_HOST", } } diff --git a/ziti/cmd/ziti/constants/constants.go b/ziti/cmd/ziti/constants/constants.go index b05715b9b..b4efd27b3 100644 --- a/ziti/cmd/ziti/constants/constants.go +++ b/ziti/cmd/ziti/constants/constants.go @@ -105,8 +105,6 @@ const ( ExternalDNSVarName = "EXTERNAL_DNS" ZitiEdgeRouterIPOverrideVarName = "ZITI_EDGE_ROUTER_IP_OVERRIDE" ZitiEdgeRouterIPOverrideVarDescription = "Override the default edge router IP with a custom IP, this IP will also be added to the PKI" - ZitiRouterAdvertisedHostVarName = "ZITI_ROUTER_ADVERTISED_HOST" - ZitiRouterAdvertisedHostVarDescription = "The advertised host of the router" - ZitiEdgeRouterLanInterfaceVarName = "ZITI_EDGE_ROUTER_LAN_INTERFACE" - ZitiEdgeRouterLanInterfaceVarDescription = "The inteface on host of the router to insert iptables ingress filter rules" + ZitiEdgeRouterAdvertisedHostVarName = "ZITI_EDGE_ROUTER_ADVERTISED_HOST" + ZitiEdgeRouterAdvertisedHostVarDescription = "The advertised host of the router" ) From f56b49add7b176ccb93de84467e27eee2172ae3d Mon Sep 17 00:00:00 2001 From: gberl002 Date: Mon, 7 Nov 2022 11:44:21 -0500 Subject: [PATCH 10/19] Updating CHANGELOG Signed-off-by: gberl002 --- CHANGELOG.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c355de0f0..081776883 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,37 @@ +# Release 0.26.12 + +## What's New + +- Ziti CLI + - Added CLI flags for setting router tunneler capability + +## Ziti CLI +### Added CLI flags for setting router tunneler capability +Ziti CLI `ziti create config router edge` now has three new flags +#### --disableTunneler +The tunneler capability for routers is enabled by default, the `disableTunneler` flag can now be used to disable the +tunneler capability in the router config. + +Example: +```shell +ziti create config router edge --routerName myRouter --disableTunneler +``` +#### --tunnelerMode +If tunneler capability is enabled, the `--tunnelerMode` flag can be used to set the tunneler mode. Currently there is +`host` and `tproxy` mode. The default tunneler mode is `host` mode. + +Example: +```shell +ziti create config router edge --routerName myRouter --tunnelerMode tproxy +``` +#### --lanInterface +If using the `tproxy` tunneler mode, there is an optional `lanIf` section in the config to identify an interface to use. + +Example: +```shell +ziti create config router edge --routerName myRouter --tunnelerMode tproxy --lanInterface tun0 +``` + # Release 0.26.11 ## What's New From 214f6de9a01b7296e01fcb97e34334164b11e007 Mon Sep 17 00:00:00 2001 From: gberl002 Date: Mon, 7 Nov 2022 14:11:05 -0500 Subject: [PATCH 11/19] Removing tunnelerDisabled flag and using a tunnelerMode of 'none' instead. Signed-off-by: gberl002 --- CHANGELOG.md | 18 +++------ ziti/cmd/ziti/cmd/config_templates/router.yml | 10 ++--- .../cmd/ziti/cmd/create_config_router_edge.go | 39 ++++++++----------- .../cmd/create_config_router_edge_test.go | 24 ++++++------ 4 files changed, 40 insertions(+), 51 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 081776883..a7b6038a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,22 +7,16 @@ ## Ziti CLI ### Added CLI flags for setting router tunneler capability -Ziti CLI `ziti create config router edge` now has three new flags -#### --disableTunneler -The tunneler capability for routers is enabled by default, the `disableTunneler` flag can now be used to disable the -tunneler capability in the router config. - -Example: -```shell -ziti create config router edge --routerName myRouter --disableTunneler -``` +Ziti CLI `ziti create config router edge` now has two new flags; `--tunnelerMode` and `--lanInterface` #### --tunnelerMode -If tunneler capability is enabled, the `--tunnelerMode` flag can be used to set the tunneler mode. Currently there is -`host` and `tproxy` mode. The default tunneler mode is `host` mode. +The `--tunnelerMode` flag enables tunneling and sets the tunneler mode. Currently, there are `none`, `host` and `tproxy` +modes. The default tunneler mode is `host` mode, choosing `none` will disable tunnel capabilities for the router. -Example: +Examples: ```shell ziti create config router edge --routerName myRouter --tunnelerMode tproxy + +ziti create config router edge --routerName myRouter --tunnelerMode none ``` #### --lanInterface If using the `tproxy` tunneler mode, there is an optional `lanIf` section in the config to identify an interface to use. diff --git a/ziti/cmd/ziti/cmd/config_templates/router.yml b/ziti/cmd/ziti/cmd/config_templates/router.yml index 07eee60f7..79179cbd1 100644 --- a/ziti/cmd/ziti/cmd/config_templates/router.yml +++ b/ziti/cmd/ziti/cmd/config_templates/router.yml @@ -33,11 +33,11 @@ link: {{ if .Router.IsFabric }}#{{ end }} advertise: {{ .Router.Edge.AdvertisedHost }}:{{ if .Router.IsWss }}3023{{ else }}{{ .Router.Edge.Port }}{{ end }} {{ if .Router.IsFabric }}#{{ end }} connectTimeoutMs: {{ .Router.Listener.ConnectTimeout.Milliseconds }} {{ if .Router.IsFabric }}#{{ end }} getSessionTimeout: {{ .Router.Listener.GetSessionTimeout.Seconds }} -{{ if or .Router.IsFabric .Router.TunnelerDisabled }}#{{ end }} - binding: tunnel -{{ if or .Router.IsFabric .Router.TunnelerDisabled }}#{{ end }} options: -{{ if or .Router.IsFabric .Router.TunnelerDisabled }}#{{ end }} mode: {{ .Router.TunnelerMode }} #tproxy|host -{{ if or .Router.IsFabric .Router.TunnelerDisabled }}#{{ else if (eq .Router.TunnelerMode "tproxy") }} resolver: udp://{{ .Router.Edge.AdvertisedHost }}:53{{ end }} -{{ if or .Router.IsFabric .Router.TunnelerDisabled }}#{{ else if (eq .Router.TunnelerMode "tproxy") }} lanIf: {{ .Router.Edge.LanInterface }}{{ end }} +{{ if or .Router.IsFabric (eq .Router.TunnelerMode "none") }}#{{ end }} - binding: tunnel +{{ if or .Router.IsFabric (eq .Router.TunnelerMode "none") }}#{{ end }} options: +{{ if or .Router.IsFabric (eq .Router.TunnelerMode "none") }}#{{ end }} mode: {{ .Router.TunnelerMode }} #tproxy|host +{{ if or .Router.IsFabric (eq .Router.TunnelerMode "none") }}#{{ else if (eq .Router.TunnelerMode "tproxy") }} resolver: udp://{{ .Router.Edge.AdvertisedHost }}:53{{ end }} +{{ if or .Router.IsFabric (eq .Router.TunnelerMode "none") }}#{{ else if (eq .Router.TunnelerMode "tproxy") }} lanIf: {{ .Router.Edge.LanInterface }}{{ end }} {{ if .Router.IsFabric }} csr: country: US diff --git a/ziti/cmd/ziti/cmd/create_config_router_edge.go b/ziti/cmd/ziti/cmd/create_config_router_edge.go index 3c81855f8..1c6d54199 100644 --- a/ziti/cmd/ziti/cmd/create_config_router_edge.go +++ b/ziti/cmd/ziti/cmd/create_config_router_edge.go @@ -31,23 +31,21 @@ import ( ) const ( - optionWSS = "wss" - defaultWSS = false - wssDescription = "Create an edge router config with wss enabled" - optionPrivate = "private" - defaultPrivate = false - privateDescription = "Create a private router config" - optionTunnelerDisabled = "disableTunneler" - defaultTunnelerDisabled = false - tunnelerDisabledDescription = "Disable Router tunnel capabilities" - tproxyMode = "tproxy" - hostMode = "host" - optionTunnelerMode = "tunnelerMode" - defaultTunnelerMode = hostMode - tunnelerModeDescription = "Specify tunneler mode (host or tproxy); tunnelerMode must be enabled" - optionLanInterface = "lanInterface" - defaultLanInterface = "" - lanInterfaceDescription = "The interface on host of the router to insert iptables ingress filter rules" + optionWSS = "wss" + defaultWSS = false + wssDescription = "Create an edge router config with wss enabled" + optionPrivate = "private" + defaultPrivate = false + privateDescription = "Create a private router config" + tproxyTunMode = "tproxy" + hostTunMode = "host" + noneTunMode = "none" + optionTunnelerMode = "tunnelerMode" + defaultTunnelerMode = hostTunMode + tunnelerModeDescription = "Specify tunneler mode \"" + noneTunMode + "\", \"" + hostTunMode + "\", or \"" + tproxyTunMode + "\"" + optionLanInterface = "lanInterface" + defaultLanInterface = "" + lanInterfaceDescription = "The interface on host of the router to insert iptables ingress filter rules" ) var ( @@ -97,7 +95,6 @@ func NewCmdCreateConfigRouterEdge() *cobra.Command { func (options *CreateConfigRouterOptions) addEdgeFlags(cmd *cobra.Command) { cmd.Flags().BoolVar(&options.WssEnabled, optionWSS, defaultWSS, wssDescription) cmd.Flags().BoolVar(&options.IsPrivate, optionPrivate, defaultPrivate, privateDescription) - cmd.PersistentFlags().BoolVarP(&options.TunnelerDisabled, optionTunnelerDisabled, "t", defaultTunnelerDisabled, tunnelerDisabledDescription) cmd.PersistentFlags().StringVarP(&options.TunnelerMode, optionTunnelerMode, "", defaultTunnelerMode, tunnelerModeDescription) cmd.PersistentFlags().StringVarP(&options.LanInterface, optionLanInterface, "", defaultLanInterface, lanInterfaceDescription) cmd.PersistentFlags().StringVarP(&options.RouterName, optionRouterName, "n", "", "name of the router") @@ -115,10 +112,8 @@ func (options *CreateConfigRouterOptions) runEdgeRouter(data *ConfigTemplateValu } // Make sure the tunneler mode is valid - if !options.TunnelerDisabled { - if options.TunnelerMode != hostMode && options.TunnelerMode != tproxyMode { - return errors.New("Unknown tunneler mode [" + options.TunnelerMode + "] provided, should be [" + hostMode + "] or [" + tproxyMode + "]") - } + if options.TunnelerMode != hostTunMode && options.TunnelerMode != tproxyTunMode && options.TunnelerMode != noneTunMode { + return errors.New("Unknown tunneler mode [" + options.TunnelerMode + "] provided, should be \"" + noneTunMode + "\", \"" + hostTunMode + "\", or \"" + tproxyTunMode + "\"") } tmpl, err := template.New("edge-router-config").Parse(routerConfigEdgeTemplate) diff --git a/ziti/cmd/ziti/cmd/create_config_router_edge_test.go b/ziti/cmd/ziti/cmd/create_config_router_edge_test.go index 30fff3414..67b548c4c 100644 --- a/ziti/cmd/ziti/cmd/create_config_router_edge_test.go +++ b/ziti/cmd/ziti/cmd/create_config_router_edge_test.go @@ -88,18 +88,18 @@ func TestTunnelerEnabledByDefault(t *testing.T) { assert.True(t, foundTunnel, "Expected to find tunnel listener binding but it was not found") } -func TestTunnelerDisabledFlag(t *testing.T) { +func TestTunnelerNoneMode(t *testing.T) { // Setup options clearOptionsAndTemplateData() routerOptions.Output = defaultOutput // Create and run the CLI command with the disable tunnel flag - config := createRouterConfig([]string{"edge", "--routerName", "myRouter", "--disableTunneler"}) + config := createRouterConfig([]string{"edge", "--routerName", "myRouter", "--tunnelerMode", "none"}) - // Expect disabled flag to be true - assert.True(t, data.Router.TunnelerDisabled, "Expected tunneler disabled flag to be true") + // Expect tunneler mode to be "none" mode + assert.Equal(t, noneTunMode, data.Router.TunnelerMode, "Expected tunneler mode to be %s but found %s", noneTunMode, data.Router.TunnelerMode) - // Confirm tunneler is enabled in config output + // Confirm tunneler is disabled in config output foundTunnel := false for i := 0; i < len(config.Listeners); i++ { if config.Listeners[i].Binding == "tunnel" { @@ -118,12 +118,12 @@ func TestTunnelerHostModeIsDefault(t *testing.T) { config := createRouterConfig([]string{"edge", "--routerName", "myRouter"}) // Expect tunneler mode to be "host" mode - assert.Equal(t, hostMode, data.Router.TunnelerMode, "Expected tunneler mode to be %s but found %s", hostMode, data.Router.TunnelerMode) + assert.Equal(t, hostTunMode, data.Router.TunnelerMode, "Expected tunneler mode to be %s but found %s", hostTunMode, data.Router.TunnelerMode) // Confirm tunneler mode in config is set to host mode for i := 0; i < len(config.Listeners); i++ { if config.Listeners[i].Binding == "tunnel" { - assert.Equal(t, hostMode, config.Listeners[i].Options.Mode, "Expected tunneler mode to be %s but found %s in config output", hostMode, data.Router.TunnelerMode) + assert.Equal(t, hostTunMode, config.Listeners[i].Options.Mode, "Expected tunneler mode to be %s but found %s in config output", hostTunMode, data.Router.TunnelerMode) } } } @@ -134,15 +134,15 @@ func TestTunnelerTproxyMode(t *testing.T) { routerOptions.Output = defaultOutput // Create and run the CLI command without the tunnel flag - config := createRouterConfig([]string{"edge", "--routerName", "myRouter", "--tunnelerMode", tproxyMode}) + config := createRouterConfig([]string{"edge", "--routerName", "myRouter", "--tunnelerMode", tproxyTunMode}) // Expect tunneler mode to be "host" mode - assert.Equal(t, tproxyMode, data.Router.TunnelerMode, "Expected tunneler mode to be %s but found %s", tproxyMode, data.Router.TunnelerMode) + assert.Equal(t, tproxyTunMode, data.Router.TunnelerMode, "Expected tunneler mode to be %s but found %s", tproxyTunMode, data.Router.TunnelerMode) // Confirm tunneler mode in config is set to host mode for i := 0; i < len(config.Listeners); i++ { if config.Listeners[i].Binding == "tunnel" { - assert.Equal(t, tproxyMode, config.Listeners[i].Options.Mode, "Expected tunneler mode to be %s but found %s in config output", tproxyMode, data.Router.TunnelerMode) + assert.Equal(t, tproxyTunMode, config.Listeners[i].Options.Mode, "Expected tunneler mode to be %s but found %s in config output", tproxyTunMode, data.Router.TunnelerMode) } } } @@ -150,7 +150,7 @@ func TestTunnelerTproxyMode(t *testing.T) { func TestTunnelerInvalidMode(t *testing.T) { invalidMode := "invalidMode" - expectedErrorMsg := "Unknown tunneler mode [" + invalidMode + "] provided, should be [host] or [tproxy]" + expectedErrorMsg := "Unknown tunneler mode [" + invalidMode + "] provided, should be \"" + noneTunMode + "\", \"" + hostTunMode + "\", or \"" + tproxyTunMode + "\"" // Create the options with both flags set to true clearOptionsAndTemplateData() @@ -211,7 +211,7 @@ func TestEdgeRouterOutputPathDoesNotExist(t *testing.T) { // Set the router options clearOptionsAndTemplateData() - routerOptions.TunnelerDisabled = true + routerOptions.TunnelerMode = defaultTunnelerMode routerOptions.RouterName = "MyEdgeRouter" routerOptions.Output = "/IDoNotExist/MyEdgeRouter.yaml" From c2fb961048b2b0fbc41d98a6fa037add3847f160 Mon Sep 17 00:00:00 2001 From: gberl002 Date: Mon, 7 Nov 2022 14:18:36 -0500 Subject: [PATCH 12/19] Removing tunneler disabled data point that was left in. Signed-off-by: gberl002 --- ziti/cmd/ziti/cmd/create_config.go | 1 - ziti/cmd/ziti/cmd/create_config_router_edge.go | 1 - 2 files changed, 2 deletions(-) diff --git a/ziti/cmd/ziti/cmd/create_config.go b/ziti/cmd/ziti/cmd/create_config.go index ac87d2738..77f0bda76 100644 --- a/ziti/cmd/ziti/cmd/create_config.go +++ b/ziti/cmd/ziti/cmd/create_config.go @@ -120,7 +120,6 @@ type RouterTemplateValues struct { IsPrivate bool IsFabric bool IsWss bool - TunnelerDisabled bool TunnelerMode string IdentityCert string IdentityServerCert string diff --git a/ziti/cmd/ziti/cmd/create_config_router_edge.go b/ziti/cmd/ziti/cmd/create_config_router_edge.go index 1c6d54199..be0becc08 100644 --- a/ziti/cmd/ziti/cmd/create_config_router_edge.go +++ b/ziti/cmd/ziti/cmd/create_config_router_edge.go @@ -74,7 +74,6 @@ func NewCmdCreateConfigRouterEdge() *cobra.Command { PreRun: func(cmd *cobra.Command, args []string) { data.Router.IsWss = routerOptions.WssEnabled data.Router.IsPrivate = routerOptions.IsPrivate - data.Router.TunnelerDisabled = routerOptions.TunnelerDisabled data.Router.TunnelerMode = routerOptions.TunnelerMode data.Router.Edge.LanInterface = routerOptions.LanInterface }, From 5d18a8be4968576b46b9873222f03db8ecfa47c3 Mon Sep 17 00:00:00 2001 From: gberl002 Date: Mon, 7 Nov 2022 14:20:38 -0500 Subject: [PATCH 13/19] Removing one last spurious TunnelerDisabled and updating test Signed-off-by: gberl002 --- ziti/cmd/ziti/cmd/create_config_router.go | 11 +++++------ ziti/cmd/ziti/cmd/create_config_router_edge_test.go | 3 --- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/ziti/cmd/ziti/cmd/create_config_router.go b/ziti/cmd/ziti/cmd/create_config_router.go index 8fdac42e1..05c27a850 100644 --- a/ziti/cmd/ziti/cmd/create_config_router.go +++ b/ziti/cmd/ziti/cmd/create_config_router.go @@ -34,12 +34,11 @@ const ( type CreateConfigRouterOptions struct { CreateConfigOptions - RouterName string - WssEnabled bool - IsPrivate bool - TunnelerDisabled bool - TunnelerMode string - LanInterface string + RouterName string + WssEnabled bool + IsPrivate bool + TunnelerMode string + LanInterface string } var routerOptions = CreateConfigRouterOptions{} diff --git a/ziti/cmd/ziti/cmd/create_config_router_edge_test.go b/ziti/cmd/ziti/cmd/create_config_router_edge_test.go index 67b548c4c..bebf5d2a4 100644 --- a/ziti/cmd/ziti/cmd/create_config_router_edge_test.go +++ b/ziti/cmd/ziti/cmd/create_config_router_edge_test.go @@ -75,9 +75,6 @@ func TestTunnelerEnabledByDefault(t *testing.T) { // Create and run the CLI command without the tunnel flag config := createRouterConfig([]string{"edge", "--routerName", "myRouter"}) - // Expect disabled flag to be false - assert.False(t, data.Router.TunnelerDisabled, "Expected tunneler disabled flag to be false") - // Confirm tunneler is enabled in config output foundTunnel := false for i := 0; i < len(config.Listeners); i++ { From 155ff9b13caa2633d99ad4bfd2438241bd7d04c3 Mon Sep 17 00:00:00 2001 From: gberl002 Date: Mon, 7 Nov 2022 15:57:55 -0500 Subject: [PATCH 14/19] Cleaning up the output of the router config when none tunneler mode is selected. Signed-off-by: gberl002 --- go.sum | 119 +++++++++--------- ziti/cmd/ziti/cmd/config_templates/router.yml | 8 +- 2 files changed, 67 insertions(+), 60 deletions(-) diff --git a/go.sum b/go.sum index a3f5f82f8..794c0ea1f 100644 --- a/go.sum +++ b/go.sum @@ -84,16 +84,12 @@ github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdko github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/akamai/AkamaiOPEN-edgegrid-golang v0.9.18/go.mod h1:L+HB2uBoDgi3+r1pJEJcbGwyyHhd2QXaGsKLbDwtm8Q= -github.com/alecthomas/assert v0.0.0-20170929043011-405dbfeb8e38 h1:smF2tmSOzy2Mm+0dGI2AIUHY+w0BUc+4tn40djz7+6U= github.com/alecthomas/assert v0.0.0-20170929043011-405dbfeb8e38/go.mod h1:r7bzyVFMNntcxPZXK3/+KdruV1H5KSlyVY0gc+NgInI= github.com/alecthomas/chroma v0.7.1/go.mod h1:gHw09mkX1Qp80JlYbmN9L3+4R5o6DJJ3GRShh+AICNc= -github.com/alecthomas/chroma v0.9.2 h1:yU1sE2+TZbLIQPMk30SolL2Hn53SR/Pv750f7qZ/XMs= -github.com/alecthomas/chroma v0.9.2/go.mod h1:eMuEnpA18XbG/WhOWtCzJHS7WqEtDAI+HxdwoW0nVSk= -github.com/alecthomas/colour v0.0.0-20160524082231-60882d9e2721 h1:JHZL0hZKJ1VENNfmXvHbgYlbUOvpzYzvy2aZU5gXVeo= +github.com/alecthomas/chroma v0.10.0 h1:7XDcGkCQopCNKjZHfYrNLraA+M7e0fMiJ/Mfikbfjek= +github.com/alecthomas/chroma v0.10.0/go.mod h1:jtJATyUxlIORhUOFNA9NZDWGAQ8wpxQQqNSB4rjA/1s= github.com/alecthomas/colour v0.0.0-20160524082231-60882d9e2721/go.mod h1:QO9JBoKquHd+jz9nshCh40fOfO+JzsoXy8qTHF68zU0= github.com/alecthomas/kong v0.2.1-0.20190708041108-0548c6b1afae/go.mod h1:+inYUSluD+p4L8KdviBSgzcqEjUQOfC5fQDRFuc36lI= -github.com/alecthomas/kong v0.2.4/go.mod h1:kQOmtJgV+Lb4aj+I2LEn40cbtawdWJ9Y8QLq+lElKxE= -github.com/alecthomas/repr v0.0.0-20180818092828-117648cd9897 h1:p9Sln00KOTlrYkxI1zYWl1QLnEqAqEARBEYa8FQnQcY= github.com/alecthomas/repr v0.0.0-20180818092828-117648cd9897/go.mod h1:xTS7Pm1pD1mvyM075QCDSRqH6qRLXylzS24ZTpRiSzQ= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -175,7 +171,6 @@ github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7Do github.com/creack/pty v1.1.9 h1:uDmaGzcdjhF4i/plgjmEsriH11Y0o7RKapEf/LDaM3w= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4= -github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964 h1:y5HC9v93H5EPKqaS1UYVg1uYah5Xf51mBfIoWehClUQ= github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964/go.mod h1:Xd9hchkHSWYkEqJwUGisez3G1QY8Ryz0sdWrLPMGjLk= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -191,8 +186,9 @@ github.com/dineshappavoo/basex v0.0.0-20170425072625-481a6f6dc663/go.mod h1:Kad2 github.com/disintegration/imaging v1.6.2 h1:w1LecBlG2Lnp8B3jk5zSuNqd7b4DXhcjwek1ei82L+c= github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4= github.com/dlclark/regexp2 v1.1.6/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= -github.com/dlclark/regexp2 v1.4.0 h1:F1rxgk7p4uKjwIQxBs9oAXe5CqrXlCduYEJvrF4u93E= github.com/dlclark/regexp2 v1.4.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= +github.com/dlclark/regexp2 v1.7.0 h1:7lJfhqlPssTb1WQx4yvTHN0uElPEv52sbaECrAQxjAo= +github.com/dlclark/regexp2 v1.7.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= github.com/dnsimple/dnsimple-go v0.63.0/go.mod h1:O5TJ0/U6r7AfT8niYNlmohpLbCSG+c71tQlGr9SeGrg= github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= @@ -268,8 +264,8 @@ github.com/go-openapi/jsonreference v0.20.0/go.mod h1:Ag74Ico3lPc+zR+qjn4XBUmXym github.com/go-openapi/loads v0.21.1/go.mod h1:/DtAMXXneXFjbQMGEtbamCZb+4x7eGwkvZCvBmwUG+g= github.com/go-openapi/loads v0.21.2 h1:r2a/xFIYeZ4Qd2TnGpWDIQNcP80dIaZgf704za8enro= github.com/go-openapi/loads v0.21.2/go.mod h1:Jq58Os6SSGz0rzh62ptiu8Z31I+OTHqmULx5e/gJbNw= -github.com/go-openapi/runtime v0.24.1 h1:Sml5cgQKGYQHF+M7yYSHaH1eOjvTykrddTE/KtQVjqo= -github.com/go-openapi/runtime v0.24.1/go.mod h1:AKurw9fNre+h3ELZfk6ILsfvPN+bvvlaU/M9q/r9hpk= +github.com/go-openapi/runtime v0.24.2 h1:yX9HMGQbz32M87ECaAhGpJjBmErO3QLcgdZj9BzGx7c= +github.com/go-openapi/runtime v0.24.2/go.mod h1:AKurw9fNre+h3ELZfk6ILsfvPN+bvvlaU/M9q/r9hpk= github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I= github.com/go-openapi/spec v0.20.6/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA= github.com/go-openapi/spec v0.20.7 h1:1Rlu/ZrOCCob0n+JKKJAWhNWMPW8bOZRg8FJaY+0SKI= @@ -363,8 +359,9 @@ github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiu github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y= -github.com/gomarkdown/markdown v0.0.0-20191123064959-2c17d62f5098 h1:Qxs3bNRWe8GTcKMxYOSXm0jx6j0de8XUtb/fsP3GZ0I= github.com/gomarkdown/markdown v0.0.0-20191123064959-2c17d62f5098/go.mod h1:aii0r/K0ZnHv7G0KF7xy1v0A7s2Ljrb5byB7MO5p6TU= +github.com/gomarkdown/markdown v0.0.0-20221013030248-663e2500819c h1:iyaGYbCmcYK0Ja9a3OUa2Fo+EaN0cbLu0eKpBwPFzc8= +github.com/gomarkdown/markdown v0.0.0-20221013030248-663e2500819c/go.mod h1:JDGcbDT52eL4fju3sZ4TeHGsQwhG9nbDV21aMyhwPoA= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -534,8 +531,9 @@ github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kyokomi/emoji/v2 v2.2.8 h1:jcofPxjHWEkJtkIbcLHvZhxKgCPl6C7MyjTrD4KDqUE= github.com/kyokomi/emoji/v2 v2.2.8/go.mod h1:JUcn42DTdsXJo1SWanHh4HKDEyPaR5CqkmoirZZP9qE= +github.com/kyokomi/emoji/v2 v2.2.10 h1:1z5eMVcxFifsmEoNpdeq4UahbcicgQ4FEHuzrCVwmiI= +github.com/kyokomi/emoji/v2 v2.2.10/go.mod h1:JUcn42DTdsXJo1SWanHh4HKDEyPaR5CqkmoirZZP9qE= github.com/labbsr0x/bindman-dns-webhook v1.0.2/go.mod h1:p6b+VCXIR8NYKpDr8/dg1HKfQoRHCdcsROXKvmoehKA= github.com/labbsr0x/goh v1.0.1/go.mod h1:8K2UhVoaWXcCU7Lxoa2omWnC8gyW8px7/lmO61c027w= github.com/labstack/echo/v4 v4.1.11/go.mod h1:i541M3Fj6f76NZtHSj7TXnyM8n2gaodfvfxNnFqi74g= @@ -543,8 +541,9 @@ github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL github.com/linode/linodego v0.21.0/go.mod h1:UTpq1JUZD0CZsJ8rt+0CRkqbzrp1MbGakVPt2DXY5Mk= github.com/liquidweb/liquidweb-go v1.6.1/go.mod h1:UDcVnAMDkZxpw4Y7NOHkqoeiGacVLEIG/i5J9cyixzQ= github.com/lucas-clemente/quic-go v0.18.0/go.mod h1:yXttHsSNxQi8AWijC/vLP+OJczXqzHSOcJrM5ITUlCg= -github.com/lucasb-eyer/go-colorful v1.0.3 h1:QIbQXiugsb+q10B+MI+7DI1oQLdmnep86tWFlaaUAac= github.com/lucasb-eyer/go-colorful v1.0.3/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= +github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/lucsky/cuid v1.2.1 h1:MtJrL2OFhvYufUIn48d35QGXyeTC8tn0upumW9WwTHg= github.com/lucsky/cuid v1.2.1/go.mod h1:QaaJqckboimOmhRSJXSx/+IT+VTfxfPGSo/6mfgUfmE= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= @@ -570,7 +569,6 @@ github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaO github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= @@ -673,30 +671,32 @@ github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+ github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= -github.com/openziti/agent v1.0.4 h1:QuTe98uTJ3OFl2Zrw+Pkk06X8pQcV2/kzYxJ8G+HxIY= -github.com/openziti/agent v1.0.4/go.mod h1:k9gQv82hTTxdVSfMmD0LyWzCEy+9fWh2ISsg1llgRqU= -github.com/openziti/channel/v2 v2.0.9 h1:vkB44EsSMIIxCcua0JK7VpUrBi9N7bNb42tuUAtOw28= -github.com/openziti/channel/v2 v2.0.9/go.mod h1:bHjCw8iZngh8QfUwloqi5JeDszS93kQfW8e7fEt5OJY= +github.com/openziti/agent v1.0.5 h1:wZUcMYqvwspOjDSaejMtczSXnJoqK0edI9HcEIFsTIs= +github.com/openziti/agent v1.0.5/go.mod h1:6APWgkPP6Uxf1/VyirdTVLAJxwam2vVyakrVw6yvs40= +github.com/openziti/channel/v2 v2.0.11 h1:eAK2xu9em+J1oABx/9c+i51qum3gojrwh9AHwkfSgSw= +github.com/openziti/channel/v2 v2.0.11/go.mod h1:efLBuJu+lRZXvK/UUI08cocJiI3XWHH24Ae1EGoxtB0= github.com/openziti/dilithium v0.3.3 h1:PLgQ6PMNLSTzCFbX/h98cmudgz/cU6TmjdSv5NAPD8k= github.com/openziti/dilithium v0.3.3/go.mod h1:vsCjI2AU/hon9e+dLhUFbCNGesJDj2ASgkySOcpmvjo= -github.com/openziti/edge v0.24.12 h1:ugZ1Uoz6+/7Fs0u5mN01H6gQDeu8cT0FJdEZJs/V5sU= -github.com/openziti/edge v0.24.12/go.mod h1:sIAjb03x6jqYyzaanliBTfF5q8DqGJHCmQ1k9nB9eN4= -github.com/openziti/fabric v0.21.9 h1:zMU3blfo9CUctHcwTetH/x/9+3+3c/NNy+4RuQG8zaw= -github.com/openziti/fabric v0.21.9/go.mod h1:YFAIBg42uMRGBJhZ1lwIBehsfN2jwXJvY0H4dvqpCM8= -github.com/openziti/foundation/v2 v2.0.6 h1:sN4SAVtvheuqdY6kGuCgS0d+2x2g+kAqwcv5v7LkKN4= -github.com/openziti/foundation/v2 v2.0.6/go.mod h1:M/RUF8wR2X3OE9buI+Gd3ac7FzrZkQ+g07XY/dX3X/U= -github.com/openziti/identity v1.0.18 h1:e57J8oudjoU6XNKgmxFjBeePNwxDBE6n0l3FdxDvWoA= -github.com/openziti/identity v1.0.18/go.mod h1:OVeskbGOZx7r7/nJ2qTZXCbE+lFSChGv7WFofN6TJWc= +github.com/openziti/edge v0.24.27 h1:ERNn4kUlQxUGC+cSiq/CDZUoHNX7mEpniqOxNvhTflU= +github.com/openziti/edge v0.24.27/go.mod h1:4Gi2bLSbYpOGs9Mf9kvBdTBO1VFvRtSoGwOqYDcBeLY= +github.com/openziti/fabric v0.21.16 h1:XukTHHn7IdzSzPPVnmte1dOqPoT34zXbZ0+stMKdw0I= +github.com/openziti/fabric v0.21.16/go.mod h1:Do8i/xAWGAMIBgNE54/jf56HZOlOo22BPgsVLNN2utc= +github.com/openziti/foundation/v2 v2.0.7 h1:QtpP0ntUhr/7uLR1iM7eEkrusQ2b2ZqTblgdq8cac9Y= +github.com/openziti/foundation/v2 v2.0.7/go.mod h1:Z0gnQsGJb/H/B+pixLtmCIpw1dBllD4QoT6LeD35WzA= +github.com/openziti/identity v1.0.20 h1:8nsQFHpqKS1ByD8QuPDxQWfS8CQEidyn5jFXWnXguX0= +github.com/openziti/identity v1.0.20/go.mod h1:X0WLWEgnM1iL8asNbuu7vUW0kZq8nnWKepMW214C9Mk= github.com/openziti/jwks v1.0.2 h1:32BGXIAnefS+v7uXKPb1x8/cQ7srek6Ai06dsrMTY4E= github.com/openziti/jwks v1.0.2/go.mod h1:KwO0x9FBG0aoJS5f6nH5xeHoplyR1H143SMI9kF0mC8= -github.com/openziti/metrics v1.1.4 h1:UGLU1kBJ3ztDO1SAs42qecN/BV4/JTPGH93LWvZwa4c= -github.com/openziti/metrics v1.1.4/go.mod h1:Wy7suQpju6oqWc1cmKA6+0Bh3izbudDGdfSqCuJ63UU= -github.com/openziti/sdk-golang v0.16.135 h1:9/pxkHGZJYUsdM03/rQksOz2S3i9C/sSUIHwmEbrxXk= -github.com/openziti/sdk-golang v0.16.135/go.mod h1:o4brIi4dvez9mM+IPtKuUN97RiGAwcY3D9zFm6SIMOI= -github.com/openziti/storage v0.1.25 h1:8HMNCR9pRKhZT8VMWad89zLntmZHLJVbWC2dDFxQ/BQ= -github.com/openziti/storage v0.1.25/go.mod h1:fQEDWSuEMn8lOYwDl1hPGMqQNjm2P3p+5y5Lz0uDZCo= -github.com/openziti/transport/v2 v2.0.36 h1:yttgXbFnj4adypuYFErb0TCOLR+v87j0se7iFw+rmIk= -github.com/openziti/transport/v2 v2.0.36/go.mod h1:EsuNHXUzdispjF9k4Kkql4SGd74rZyvJ3sp4dj77ki0= +github.com/openziti/metrics v1.1.5 h1:qhsGsYWdp7LxPCYi9WMGHGbjiHvsT1DtjM44JNHLZWk= +github.com/openziti/metrics v1.1.5/go.mod h1:B6RCuVRTpI3kEIhQlCvsHj3Pqi6bSnqFmRPgfgv9ico= +github.com/openziti/runzmd v1.0.0 h1:EH7ZvjFdikhuJlHWuG2VlLK2ng2dV23pIJAw7yRsKkM= +github.com/openziti/runzmd v1.0.0/go.mod h1:3w6vxdO3MCqD8emZWaSK+z4JN6D7XFCPiyymv0N4U3k= +github.com/openziti/sdk-golang v0.16.142 h1:bbo8cMk7zRGkqd8lNB4qzhtJK9VLihVWNLw9C0jzYHY= +github.com/openziti/sdk-golang v0.16.142/go.mod h1:AmAeDi6teVVXSTjDYktvKtx8y4hyp6TE5i2UjgSpgMk= +github.com/openziti/storage v0.1.26 h1:1tV4czY/TNmzX3raUZjbR8jVl5L92pdD0SjmdzCzUmE= +github.com/openziti/storage v0.1.26/go.mod h1:Zkm+4d2gckkIbuuCw/sKFWKKhPROZak3gLFzdII0KWQ= +github.com/openziti/transport/v2 v2.0.38 h1:9+EtBF052TtGvT5isuPj/SUTXNHg8RbkGBcEKfiUPd8= +github.com/openziti/transport/v2 v2.0.38/go.mod h1:FB/pqmA8RdUsoWtpTc6E/it6lLdA7GOugy9no3JDU/4= github.com/openziti/x509-claims v1.0.3 h1:HNdQ8Nf1agB3lBs1gahcO6zfkeS4S5xoQ2/PkY4HRX0= github.com/openziti/x509-claims v1.0.3/go.mod h1:Z0WIpBm6c4ecrpRKrou6Gk2wrLWxJO/+tuUwKh8VewE= github.com/openziti/xweb/v2 v2.0.2 h1:XYlVFriTq/U1wcUrc+XPnWJGhXh9NJPhtQ7+r3aC0cU= @@ -707,8 +707,8 @@ github.com/oracle/oci-go-sdk v24.2.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35uk github.com/orcaman/concurrent-map/v2 v2.0.0 h1:iSMwuBQvQ1nX5i9gYuGMiSy0fjWHmazdjF+NdSO9JzI= github.com/orcaman/concurrent-map/v2 v2.0.0/go.mod h1:9Eq3TG2oBe5FirmYWQfYO5iH1q0Jv47PLaNK++uCdOM= github.com/ovh/go-ovh v1.1.0/go.mod h1:AxitLZ5HBRPyUd+Zl60Ajaag+rNTdVXWIkzfrVuTXWA= -github.com/parallaxsecond/parsec-client-go v0.0.0-20220111122524-cb78842db373 h1:CUvH4JL/8OVy023LMER3dB/MerNQ6OIz4QV3E/JQ3UY= -github.com/parallaxsecond/parsec-client-go v0.0.0-20220111122524-cb78842db373/go.mod h1:gLH27qo/dvMhLTVVyMELpe3Tut7sOfkiDg7ZpeqKwsw= +github.com/parallaxsecond/parsec-client-go v0.0.0-20221025095442-f0a77d263cf9 h1:mOvehYivJ4Aqu2CPe3D3lv8jhqOI9/1o0THxJHBE0qw= +github.com/parallaxsecond/parsec-client-go v0.0.0-20221025095442-f0a77d263cf9/go.mod h1:gLH27qo/dvMhLTVVyMELpe3Tut7sOfkiDg7ZpeqKwsw= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= @@ -789,7 +789,6 @@ github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQD github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/sacloud/libsacloud v1.36.2/go.mod h1:P7YAOVmnIn3DKHqCZcUKYUXmSwGBm3yS7IBEjKVSrjg= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/shirou/gopsutil/v3 v3.22.9 h1:yibtJhIVEMcdw+tCTbOPiF1VcsuDeTE4utJ8Dm4c5eA= github.com/shirou/gopsutil/v3 v3.22.9/go.mod h1:bBYl1kjgEJpWpxeHmLI+dVHWtyAwfcmSBLDsp2TNT8A= @@ -861,8 +860,9 @@ github.com/spf13/viper v1.10.0/go.mod h1:SoyBPwAtKDzypXNDFKN5kzH7ppppbGZtls1UpIy github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/objx v0.4.0 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= @@ -873,8 +873,9 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.7.4/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA= @@ -896,8 +897,8 @@ github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6Kllzaw github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= github.com/valyala/fasttemplate v1.1.0/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= -github.com/valyala/fasttemplate v1.2.1 h1:TVEnxayobAdVkhQfrfes2IzOB6o+z4roRkPF52WA1u4= -github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= +github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= +github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/viant/assertly v0.4.8/go.mod h1:aGifi++jvCrUaklKEKT0BU95igDNaqkvz+49uaYMPRU= github.com/viant/toolbox v0.24.0/go.mod h1:OxMCG57V0PXuIP2HNQrtJf2CjqdmbrOx5EkMILuUhzM= github.com/vultr/govultr/v2 v2.0.0/go.mod h1:2PsEeg+gs3p/Fo5Pw8F9mv+DUBEOlrNZ8GmCTGmhOhs= @@ -919,6 +920,7 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg= github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= @@ -980,9 +982,10 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201216223049-8b5274cf687f/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20221012134737-56aed061732a h1:NmSIgad6KjE6VvHciPZuNRTKxGhlPfD6OA87W/PLkqg= -golang.org/x/crypto v0.0.0-20221012134737-56aed061732a/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.1.0 h1:MDRAIl0xIo9Io2xV565hzXHw3zVseKrJKodhohM5CjU= +golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -996,8 +999,9 @@ golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMk golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20191206065243-da761ea9ff43 h1:gQ6GUSD102fPgli+Yb4cR/cGaHF7tNBt+GYoRCpGC7s= golang.org/x/image v0.0.0-20191206065243-da761ea9ff43/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.1.0 h1:r8Oj8ZA2Xy12/b5KZYj3tuv7NG/fBz3TwQVvpJ9l8Rk= +golang.org/x/image v0.1.0/go.mod h1:iyPr49SD/G/TBxYVB/9RRtGUT5eNbo2u4NamWeQcD5c= golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -1022,8 +1026,8 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.5.1 h1:OJxoQ/rynoF0dcCdI7cLPktw/hR2cueqYfjm43oqK38= -golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1079,8 +1083,10 @@ golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220923203811-8be639271d50 h1:vKyz8L3zkd+xrMeIaBsQ/MNVPVFSffdaU3ZyYlBGFnI= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220923203811-8be639271d50/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.1.0 h1:hZ/3BUoy5aId7sCpA/Tc5lt8DkFgdVS2onTpJsZ/fl0= +golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1108,6 +1114,7 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220923202941-7f9b1623fab7/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0 h1:cu5kTvlzcw1Q5S9f5ip1/cpiB4nXvw1XYzFPGgzLUOY= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1160,7 +1167,6 @@ golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200413165638-669c56c373c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1197,16 +1203,17 @@ golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20221010170243-090e33056c14 h1:k5II8e6QD8mITdi+okbbmR/cIyEbeXLBhy5Ha4nevyc= -golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0 h1:kunALQeHf1/185U1i0GOB/fy1IPRDDpuoOOqRReG57U= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.0.0-20220919170432-7a66f970e087 h1:tPwmk4vmvVCMdr98VgL4JH+qZxPL8fqlUOHnyOM8N3w= -golang.org/x/term v0.0.0-20220919170432-7a66f970e087/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.1.0 h1:g6Z6vPFA9dYBAF7DWcH6sCcOntplXsDKcliusYijMlw= +golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1215,8 +1222,9 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1284,12 +1292,11 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.7 h1:6j8CgantCy3yc8JGBqkDLMKWqZ0RDU2g1HVgacojGWQ= -golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= +golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= google.golang.org/api v0.0.0-20181030000543-1d582fd0359e/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= diff --git a/ziti/cmd/ziti/cmd/config_templates/router.yml b/ziti/cmd/ziti/cmd/config_templates/router.yml index 79179cbd1..20ddaa158 100644 --- a/ziti/cmd/ziti/cmd/config_templates/router.yml +++ b/ziti/cmd/ziti/cmd/config_templates/router.yml @@ -35,10 +35,10 @@ link: {{ if .Router.IsFabric }}#{{ end }} getSessionTimeout: {{ .Router.Listener.GetSessionTimeout.Seconds }} {{ if or .Router.IsFabric (eq .Router.TunnelerMode "none") }}#{{ end }} - binding: tunnel {{ if or .Router.IsFabric (eq .Router.TunnelerMode "none") }}#{{ end }} options: -{{ if or .Router.IsFabric (eq .Router.TunnelerMode "none") }}#{{ end }} mode: {{ .Router.TunnelerMode }} #tproxy|host -{{ if or .Router.IsFabric (eq .Router.TunnelerMode "none") }}#{{ else if (eq .Router.TunnelerMode "tproxy") }} resolver: udp://{{ .Router.Edge.AdvertisedHost }}:53{{ end }} -{{ if or .Router.IsFabric (eq .Router.TunnelerMode "none") }}#{{ else if (eq .Router.TunnelerMode "tproxy") }} lanIf: {{ .Router.Edge.LanInterface }}{{ end }} -{{ if .Router.IsFabric }} +{{ if or .Router.IsFabric (eq .Router.TunnelerMode "none") }}# mode: host #tproxy|host{{ else }} mode: {{ .Router.TunnelerMode }} #tproxy|host{{ end }} +{{- if (eq .Router.TunnelerMode "tproxy") }} resolver: udp://{{ .Router.Edge.AdvertisedHost }}:53{{ end }} +{{- if (eq .Router.TunnelerMode "tproxy") }} lanIf: {{ .Router.Edge.LanInterface }}{{ end }} +{{ if .Router.IsFabric -}} csr: country: US province: NC From ca8296ccd19fa88a2649e7426cbb0f9e92aff6c9 Mon Sep 17 00:00:00 2001 From: gberl002 Date: Mon, 7 Nov 2022 16:06:32 -0500 Subject: [PATCH 15/19] Adding some more constraints to resolver and lanif and fixing newline removal causing bad yaml formatting Signed-off-by: gberl002 --- ziti/cmd/ziti/cmd/config_templates/router.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ziti/cmd/ziti/cmd/config_templates/router.yml b/ziti/cmd/ziti/cmd/config_templates/router.yml index 20ddaa158..a487968a4 100644 --- a/ziti/cmd/ziti/cmd/config_templates/router.yml +++ b/ziti/cmd/ziti/cmd/config_templates/router.yml @@ -36,8 +36,8 @@ link: {{ if or .Router.IsFabric (eq .Router.TunnelerMode "none") }}#{{ end }} - binding: tunnel {{ if or .Router.IsFabric (eq .Router.TunnelerMode "none") }}#{{ end }} options: {{ if or .Router.IsFabric (eq .Router.TunnelerMode "none") }}# mode: host #tproxy|host{{ else }} mode: {{ .Router.TunnelerMode }} #tproxy|host{{ end }} -{{- if (eq .Router.TunnelerMode "tproxy") }} resolver: udp://{{ .Router.Edge.AdvertisedHost }}:53{{ end }} -{{- if (eq .Router.TunnelerMode "tproxy") }} lanIf: {{ .Router.Edge.LanInterface }}{{ end }} +{{ if and (not .Router.IsFabric) (eq .Router.TunnelerMode "tproxy") }} resolver: udp://{{ .Router.Edge.AdvertisedHost }}:53{{ end }} +{{ if and (not .Router.IsFabric) (eq .Router.TunnelerMode "tproxy") }} lanIf: {{ .Router.Edge.LanInterface }}{{ end }} {{ if .Router.IsFabric -}} csr: country: US From 897adac1cb5d5a7c6fb4b30c48ffcc26460a5911 Mon Sep 17 00:00:00 2001 From: gberl002 Date: Tue, 8 Nov 2022 09:45:57 -0500 Subject: [PATCH 16/19] Updating CHANGELOG Signed-off-by: gberl002 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a7b6038a8..8715fb304 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,9 +3,13 @@ ## What's New - Ziti CLI + - Bug Fixes - Added CLI flags for setting router tunneler capability ## Ziti CLI +### Bug Fixes +* [Issue 868](https://github.com/openziti/ziti/issues/868): `ZITI_EDGE_ROUTER_IP_OVERRIDE` does not override the edge router advertise hostname + ### Added CLI flags for setting router tunneler capability Ziti CLI `ziti create config router edge` now has two new flags; `--tunnelerMode` and `--lanInterface` #### --tunnelerMode From 5af307e5d6741f2e967c5882eb74507503e72ac9 Mon Sep 17 00:00:00 2001 From: gberl002 Date: Tue, 8 Nov 2022 10:11:31 -0500 Subject: [PATCH 17/19] Updating CHANGELOG Signed-off-by: gberl002 --- CHANGELOG.md | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8715fb304..d0cd471f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,19 +1,19 @@ -# Release 0.26.12 +# Release 0.26.11 ## What's New +This is mainly a bugfix release. + - Ziti CLI - - Bug Fixes + - Bug Fixes (See Component Updates and Bug Fixes below) - Added CLI flags for setting router tunneler capability ## Ziti CLI -### Bug Fixes -* [Issue 868](https://github.com/openziti/ziti/issues/868): `ZITI_EDGE_ROUTER_IP_OVERRIDE` does not override the edge router advertise hostname ### Added CLI flags for setting router tunneler capability Ziti CLI `ziti create config router edge` now has two new flags; `--tunnelerMode` and `--lanInterface` #### --tunnelerMode -The `--tunnelerMode` flag enables tunneling and sets the tunneler mode. Currently, there are `none`, `host` and `tproxy` +The `--tunnelerMode` flag enables tunneling and sets the tunneler mode. Currently, there are `none`, `host` and `tproxy` modes. The default tunneler mode is `host` mode, choosing `none` will disable tunnel capabilities for the router. Examples: @@ -30,12 +30,6 @@ Example: ziti create config router edge --routerName myRouter --tunnelerMode tproxy --lanInterface tun0 ``` -# Release 0.26.11 - -## What's New - -This is a bugfix release and contains no new features. - ## Component Updates and Bug Fixes * github.com/openziti/agent: [v1.0.4 -> v1.0.5](https://github.com/openziti/agent/compare/v1.0.4...v1.0.5) @@ -55,6 +49,7 @@ This is a bugfix release and contains no new features. * github.com/openziti/transport/v2: [v2.0.36 -> v2.0.38](https://github.com/openziti/transport/compare/v2.0.36...v2.0.38) * github.com/openziti/metrics: [v1.1.4 -> v1.1.5](https://github.com/openziti/metrics/compare/v1.1.4...v1.1.5) * github.com/openziti/ziti: [v0.26.10 -> v0.26.11](https://github.com/openziti/ziti/compare/v0.26.10...v0.26.11) +* * [Issue 868](https://github.com/openziti/ziti/issues/868): `ZITI_EDGE_ROUTER_IP_OVERRIDE` does not override the edge router advertise hostname # Release 0.26.10 From b7ac4a784f3fa0deb6a3434c305cec8c4ef63d41 Mon Sep 17 00:00:00 2001 From: Andrew Martinez Date: Tue, 8 Nov 2022 14:37:33 -0500 Subject: [PATCH 18/19] updates edge - fixes openziti/edge#1224 - fixes openziti/edge#1226 --- go.mod | 10 +++++----- go.sum | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index 1341378a3..8a898bcc8 100644 --- a/go.mod +++ b/go.mod @@ -20,13 +20,13 @@ require ( github.com/keybase/go-ps v0.0.0-20190827175125-91aafc93ba19 github.com/michaelquigley/pfxlog v0.6.9 github.com/openziti/agent v1.0.5 - github.com/openziti/channel/v2 v2.0.11 - github.com/openziti/edge v0.24.27 - github.com/openziti/fabric v0.21.16 + github.com/openziti/channel/v2 v2.0.12 + github.com/openziti/edge v0.24.36 + github.com/openziti/fabric v0.21.17 github.com/openziti/foundation/v2 v2.0.7 github.com/openziti/identity v1.0.20 github.com/openziti/runzmd v1.0.0 - github.com/openziti/sdk-golang v0.16.142 + github.com/openziti/sdk-golang v0.16.146 github.com/openziti/storage v0.1.26 github.com/openziti/transport/v2 v2.0.38 github.com/openziti/xweb/v2 v2.0.2 @@ -37,7 +37,7 @@ require ( github.com/russross/blackfriday v1.5.2 github.com/shirou/gopsutil/v3 v3.22.9 github.com/sirupsen/logrus v1.9.0 - github.com/spf13/cobra v1.6.0 + github.com/spf13/cobra v1.6.1 github.com/spf13/pflag v1.0.5 github.com/spf13/viper v1.10.0 github.com/stretchr/testify v1.8.1 diff --git a/go.sum b/go.sum index 794c0ea1f..5e93949c0 100644 --- a/go.sum +++ b/go.sum @@ -673,14 +673,14 @@ github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTm github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/openziti/agent v1.0.5 h1:wZUcMYqvwspOjDSaejMtczSXnJoqK0edI9HcEIFsTIs= github.com/openziti/agent v1.0.5/go.mod h1:6APWgkPP6Uxf1/VyirdTVLAJxwam2vVyakrVw6yvs40= -github.com/openziti/channel/v2 v2.0.11 h1:eAK2xu9em+J1oABx/9c+i51qum3gojrwh9AHwkfSgSw= -github.com/openziti/channel/v2 v2.0.11/go.mod h1:efLBuJu+lRZXvK/UUI08cocJiI3XWHH24Ae1EGoxtB0= +github.com/openziti/channel/v2 v2.0.12 h1:0/qQ3qCSt70gpUuxQk8MRD3+iGKqS4wuYZpbcOzS+tc= +github.com/openziti/channel/v2 v2.0.12/go.mod h1:mESOWBphvr2/P6j3FDIiQF+Z6z3E3Vjv6GaCoGWY6eM= github.com/openziti/dilithium v0.3.3 h1:PLgQ6PMNLSTzCFbX/h98cmudgz/cU6TmjdSv5NAPD8k= github.com/openziti/dilithium v0.3.3/go.mod h1:vsCjI2AU/hon9e+dLhUFbCNGesJDj2ASgkySOcpmvjo= -github.com/openziti/edge v0.24.27 h1:ERNn4kUlQxUGC+cSiq/CDZUoHNX7mEpniqOxNvhTflU= -github.com/openziti/edge v0.24.27/go.mod h1:4Gi2bLSbYpOGs9Mf9kvBdTBO1VFvRtSoGwOqYDcBeLY= -github.com/openziti/fabric v0.21.16 h1:XukTHHn7IdzSzPPVnmte1dOqPoT34zXbZ0+stMKdw0I= -github.com/openziti/fabric v0.21.16/go.mod h1:Do8i/xAWGAMIBgNE54/jf56HZOlOo22BPgsVLNN2utc= +github.com/openziti/edge v0.24.36 h1:3ywHRL5XXYtA4+y12WptofLhkndshePuy/MyKT3A2xo= +github.com/openziti/edge v0.24.36/go.mod h1:3I6GZTcb3j57Y9IlBrnpceklfzdR10ejp4D7+11B6BM= +github.com/openziti/fabric v0.21.17 h1:oT32L0Lu64Jd7CkHrQZdOwG0Mew8bMBEUowtRyhERvs= +github.com/openziti/fabric v0.21.17/go.mod h1:VsRUi2wdA3k4bOXxfrohaoUuhcjf8ZdpPPN0NzD8my4= github.com/openziti/foundation/v2 v2.0.7 h1:QtpP0ntUhr/7uLR1iM7eEkrusQ2b2ZqTblgdq8cac9Y= github.com/openziti/foundation/v2 v2.0.7/go.mod h1:Z0gnQsGJb/H/B+pixLtmCIpw1dBllD4QoT6LeD35WzA= github.com/openziti/identity v1.0.20 h1:8nsQFHpqKS1ByD8QuPDxQWfS8CQEidyn5jFXWnXguX0= @@ -691,8 +691,8 @@ github.com/openziti/metrics v1.1.5 h1:qhsGsYWdp7LxPCYi9WMGHGbjiHvsT1DtjM44JNHLZW github.com/openziti/metrics v1.1.5/go.mod h1:B6RCuVRTpI3kEIhQlCvsHj3Pqi6bSnqFmRPgfgv9ico= github.com/openziti/runzmd v1.0.0 h1:EH7ZvjFdikhuJlHWuG2VlLK2ng2dV23pIJAw7yRsKkM= github.com/openziti/runzmd v1.0.0/go.mod h1:3w6vxdO3MCqD8emZWaSK+z4JN6D7XFCPiyymv0N4U3k= -github.com/openziti/sdk-golang v0.16.142 h1:bbo8cMk7zRGkqd8lNB4qzhtJK9VLihVWNLw9C0jzYHY= -github.com/openziti/sdk-golang v0.16.142/go.mod h1:AmAeDi6teVVXSTjDYktvKtx8y4hyp6TE5i2UjgSpgMk= +github.com/openziti/sdk-golang v0.16.146 h1:5R7ZOSh+Q0pmZdzEv3l2Q03KQgiUrpaj3ymD8DjBT5k= +github.com/openziti/sdk-golang v0.16.146/go.mod h1:yOgsofdEd82pph97N4DX0xYlfgjJ2LCgC/mHkMw+5hU= github.com/openziti/storage v0.1.26 h1:1tV4czY/TNmzX3raUZjbR8jVl5L92pdD0SjmdzCzUmE= github.com/openziti/storage v0.1.26/go.mod h1:Zkm+4d2gckkIbuuCw/sKFWKKhPROZak3gLFzdII0KWQ= github.com/openziti/transport/v2 v2.0.38 h1:9+EtBF052TtGvT5isuPj/SUTXNHg8RbkGBcEKfiUPd8= @@ -845,8 +845,8 @@ github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkU github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= -github.com/spf13/cobra v1.6.0 h1:42a0n6jwCot1pUmomAp4T7DeMD+20LFv4Q54pxLf2LI= -github.com/spf13/cobra v1.6.0/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= +github.com/spf13/cobra v1.6.1 h1:o94oiPyS4KD1mPy2fmcYYHHfCxLqYjJOhGsCHFZtEzA= +github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= From b3dadf57a6da0da129c383c386e7eda3cfb7f482 Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Tue, 8 Nov 2022 17:12:38 -0500 Subject: [PATCH 19/19] Update deps and add spiffe-id support --- network-tests/go.mod | 55 +++++---- network-tests/go.sum | 110 +++++++++--------- .../ziti/cmd/agent_controller_raft_join.go | 23 ++-- ziti/cmd/ziti/cmd/pki.go | 1 + ziti/cmd/ziti/cmd/pki_create_ca.go | 25 +++- ziti/cmd/ziti/cmd/pki_create_client.go | 37 ++++-- ziti/cmd/ziti/cmd/pki_create_intermediate.go | 19 +-- ziti/cmd/ziti/cmd/pki_create_server.go | 46 +++++--- 8 files changed, 191 insertions(+), 125 deletions(-) diff --git a/network-tests/go.mod b/network-tests/go.mod index 18f6670d5..125148e4c 100644 --- a/network-tests/go.mod +++ b/network-tests/go.mod @@ -3,11 +3,11 @@ module github.com/openziti/ziti/network-tests go 1.19 require ( - github.com/openziti/fablab v0.4.11 - github.com/openziti/sdk-golang v0.16.135 - github.com/openziti/zitilab v0.1.8 + github.com/openziti/fablab v0.4.14 + github.com/openziti/sdk-golang v0.16.146 + github.com/openziti/zitilab v0.1.9 github.com/sirupsen/logrus v1.9.0 - github.com/spf13/cobra v1.6.0 + github.com/spf13/cobra v1.6.1 ) require ( @@ -48,7 +48,7 @@ require ( github.com/go-openapi/jsonpointer v0.19.5 // indirect github.com/go-openapi/jsonreference v0.20.0 // indirect github.com/go-openapi/loads v0.21.2 // indirect - github.com/go-openapi/runtime v0.24.1 // indirect + github.com/go-openapi/runtime v0.24.2 // indirect github.com/go-openapi/spec v0.20.7 // indirect github.com/go-openapi/strfmt v0.21.3 // indirect github.com/go-openapi/swag v0.22.3 // indirect @@ -71,7 +71,7 @@ require ( github.com/hashicorp/raft-boltdb v0.0.0-20220329195025-15018e9b97e0 // indirect github.com/inconshreveable/mousetrap v1.0.1 // indirect github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d // indirect - github.com/jedib0t/go-pretty/v6 v6.4.0 // indirect + github.com/jedib0t/go-pretty/v6 v6.4.2 // indirect github.com/jessevdk/go-flags v1.5.0 // indirect github.com/jinzhu/copier v0.3.5 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect @@ -103,22 +103,22 @@ require ( github.com/oklog/ulid v1.3.1 // indirect github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect - github.com/openziti/agent v1.0.4 // indirect - github.com/openziti/channel/v2 v2.0.9 // indirect - github.com/openziti/edge v0.24.12 // indirect - github.com/openziti/fabric v0.21.9 // indirect - github.com/openziti/foundation/v2 v2.0.6 // indirect - github.com/openziti/identity v1.0.18 // indirect + github.com/openziti/agent v1.0.5 // indirect + github.com/openziti/channel/v2 v2.0.12 // indirect + github.com/openziti/edge v0.24.36 // indirect + github.com/openziti/fabric v0.21.17 // indirect + github.com/openziti/foundation/v2 v2.0.7 // indirect + github.com/openziti/identity v1.0.20 // indirect github.com/openziti/jwks v1.0.2 // indirect - github.com/openziti/metrics v1.1.4 // indirect - github.com/openziti/storage v0.1.25 // indirect - github.com/openziti/transport/v2 v2.0.36 // indirect + github.com/openziti/metrics v1.1.5 // indirect + github.com/openziti/storage v0.1.26 // indirect + github.com/openziti/transport/v2 v2.0.38 // indirect github.com/openziti/x509-claims v1.0.3 // indirect github.com/openziti/xweb/v2 v2.0.2 // indirect github.com/openziti/ziti v0.26.10 // indirect github.com/openziti/ziti-db-explorer v1.1.1 // indirect github.com/orcaman/concurrent-map/v2 v2.0.0 // indirect - github.com/parallaxsecond/parsec-client-go v0.0.0-20220111122524-cb78842db373 // indirect + github.com/parallaxsecond/parsec-client-go v0.0.0-20221025095442-f0a77d263cf9 // indirect github.com/pelletier/go-toml v1.9.4 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pkg/sftp v1.13.5 // indirect @@ -129,7 +129,7 @@ require ( github.com/rivo/uniseg v0.4.2 // indirect github.com/rodaine/table v1.0.1 // indirect github.com/russross/blackfriday v1.5.2 // indirect - github.com/shirou/gopsutil/v3 v3.22.9 // indirect + github.com/shirou/gopsutil/v3 v3.22.10 // indirect github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e // indirect github.com/speps/go-hashids v2.0.0+incompatible // indirect github.com/spf13/afero v1.6.0 // indirect @@ -137,11 +137,11 @@ require ( github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.10.0 // indirect - github.com/stretchr/testify v1.8.0 // indirect + github.com/stretchr/testify v1.8.1 // indirect github.com/subosito/gotenv v1.2.0 // indirect github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 // indirect github.com/tklauser/go-sysconf v0.3.10 // indirect - github.com/tklauser/numcpus v0.5.0 // indirect + github.com/tklauser/numcpus v0.6.0 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasttemplate v1.2.2 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect @@ -151,16 +151,15 @@ require ( go.etcd.io/bbolt v1.3.6 // indirect go.mongodb.org/mongo-driver v1.10.0 // indirect go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352 // indirect - golang.org/x/crypto v0.0.0-20221012134737-56aed061732a // indirect + golang.org/x/crypto v0.1.0 // indirect golang.org/x/image v0.0.0-20191206065243-da761ea9ff43 // indirect - golang.org/x/mod v0.5.1 // indirect - golang.org/x/net v0.0.0-20220923203811-8be639271d50 // indirect - golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0 // indirect - golang.org/x/sys v0.0.0-20221010170243-090e33056c14 // indirect - golang.org/x/term v0.0.0-20220919170432-7a66f970e087 // indirect - golang.org/x/text v0.3.7 // indirect - golang.org/x/tools v0.1.7 // indirect - golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect + golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect + golang.org/x/net v0.1.0 // indirect + golang.org/x/sync v0.1.0 // indirect + golang.org/x/sys v0.2.0 // indirect + golang.org/x/term v0.2.0 // indirect + golang.org/x/text v0.4.0 // indirect + golang.org/x/tools v0.1.12 // indirect google.golang.org/protobuf v1.28.1 // indirect gopkg.in/AlecAivazis/survey.v1 v1.8.7 // indirect gopkg.in/ini.v1 v1.66.2 // indirect diff --git a/network-tests/go.sum b/network-tests/go.sum index 4ce11cf39..99bf2aa04 100644 --- a/network-tests/go.sum +++ b/network-tests/go.sum @@ -226,8 +226,8 @@ github.com/go-openapi/jsonreference v0.20.0/go.mod h1:Ag74Ico3lPc+zR+qjn4XBUmXym github.com/go-openapi/loads v0.21.1/go.mod h1:/DtAMXXneXFjbQMGEtbamCZb+4x7eGwkvZCvBmwUG+g= github.com/go-openapi/loads v0.21.2 h1:r2a/xFIYeZ4Qd2TnGpWDIQNcP80dIaZgf704za8enro= github.com/go-openapi/loads v0.21.2/go.mod h1:Jq58Os6SSGz0rzh62ptiu8Z31I+OTHqmULx5e/gJbNw= -github.com/go-openapi/runtime v0.24.1 h1:Sml5cgQKGYQHF+M7yYSHaH1eOjvTykrddTE/KtQVjqo= -github.com/go-openapi/runtime v0.24.1/go.mod h1:AKurw9fNre+h3ELZfk6ILsfvPN+bvvlaU/M9q/r9hpk= +github.com/go-openapi/runtime v0.24.2 h1:yX9HMGQbz32M87ECaAhGpJjBmErO3QLcgdZj9BzGx7c= +github.com/go-openapi/runtime v0.24.2/go.mod h1:AKurw9fNre+h3ELZfk6ILsfvPN+bvvlaU/M9q/r9hpk= github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I= github.com/go-openapi/spec v0.20.6/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA= github.com/go-openapi/spec v0.20.7 h1:1Rlu/ZrOCCob0n+JKKJAWhNWMPW8bOZRg8FJaY+0SKI= @@ -422,8 +422,8 @@ github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7P github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d h1:/WZQPMZNsjZ7IlCpsLGdQBINg5bxKQ1K1sh6awxLtkA= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= -github.com/jedib0t/go-pretty/v6 v6.4.0 h1:YlI/2zYDrweA4MThiYMKtGRfT+2qZOO65ulej8GTcVI= -github.com/jedib0t/go-pretty/v6 v6.4.0/go.mod h1:MgmISkTWDSFu0xOqiZ0mKNntMQ2mDgOcwOkwBEkMDJI= +github.com/jedib0t/go-pretty/v6 v6.4.2 h1:DcJNSNIb1E17Tvy9w9S7z+sExvWvvjNbFdyr6C+FUL0= +github.com/jedib0t/go-pretty/v6 v6.4.2/go.mod h1:MgmISkTWDSFu0xOqiZ0mKNntMQ2mDgOcwOkwBEkMDJI= github.com/jessevdk/go-flags v1.5.0 h1:1jKYvbxEjfUl0fmqTCOfonvskHHXMjBySTLW4y9LFvc= github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= github.com/jinzhu/copier v0.3.5 h1:GlvfUwHk62RokgqVNvYsku0TATCF7bAHVwEXoBh3iJg= @@ -593,30 +593,30 @@ github.com/onsi/gomega v1.13.0 h1:7lLHu94wT9Ij0o6EWWclhu0aOh32VxhkwEJvzuWPeak= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= -github.com/openziti/agent v1.0.4 h1:QuTe98uTJ3OFl2Zrw+Pkk06X8pQcV2/kzYxJ8G+HxIY= -github.com/openziti/agent v1.0.4/go.mod h1:k9gQv82hTTxdVSfMmD0LyWzCEy+9fWh2ISsg1llgRqU= -github.com/openziti/channel/v2 v2.0.9 h1:vkB44EsSMIIxCcua0JK7VpUrBi9N7bNb42tuUAtOw28= -github.com/openziti/channel/v2 v2.0.9/go.mod h1:bHjCw8iZngh8QfUwloqi5JeDszS93kQfW8e7fEt5OJY= -github.com/openziti/edge v0.24.12 h1:ugZ1Uoz6+/7Fs0u5mN01H6gQDeu8cT0FJdEZJs/V5sU= -github.com/openziti/edge v0.24.12/go.mod h1:sIAjb03x6jqYyzaanliBTfF5q8DqGJHCmQ1k9nB9eN4= -github.com/openziti/fablab v0.4.11 h1:F2neeHVmY1Z0ZfuRlljUb8MTrT3Jie9oJMqjARABDZU= -github.com/openziti/fablab v0.4.11/go.mod h1:EH7kMbXukwGh1t6CrpjXRYno0+A55Dr4kiva0+WZp/A= -github.com/openziti/fabric v0.21.9 h1:zMU3blfo9CUctHcwTetH/x/9+3+3c/NNy+4RuQG8zaw= -github.com/openziti/fabric v0.21.9/go.mod h1:YFAIBg42uMRGBJhZ1lwIBehsfN2jwXJvY0H4dvqpCM8= -github.com/openziti/foundation/v2 v2.0.6 h1:sN4SAVtvheuqdY6kGuCgS0d+2x2g+kAqwcv5v7LkKN4= -github.com/openziti/foundation/v2 v2.0.6/go.mod h1:M/RUF8wR2X3OE9buI+Gd3ac7FzrZkQ+g07XY/dX3X/U= -github.com/openziti/identity v1.0.18 h1:e57J8oudjoU6XNKgmxFjBeePNwxDBE6n0l3FdxDvWoA= -github.com/openziti/identity v1.0.18/go.mod h1:OVeskbGOZx7r7/nJ2qTZXCbE+lFSChGv7WFofN6TJWc= +github.com/openziti/agent v1.0.5 h1:wZUcMYqvwspOjDSaejMtczSXnJoqK0edI9HcEIFsTIs= +github.com/openziti/agent v1.0.5/go.mod h1:6APWgkPP6Uxf1/VyirdTVLAJxwam2vVyakrVw6yvs40= +github.com/openziti/channel/v2 v2.0.12 h1:0/qQ3qCSt70gpUuxQk8MRD3+iGKqS4wuYZpbcOzS+tc= +github.com/openziti/channel/v2 v2.0.12/go.mod h1:mESOWBphvr2/P6j3FDIiQF+Z6z3E3Vjv6GaCoGWY6eM= +github.com/openziti/edge v0.24.36 h1:3ywHRL5XXYtA4+y12WptofLhkndshePuy/MyKT3A2xo= +github.com/openziti/edge v0.24.36/go.mod h1:3I6GZTcb3j57Y9IlBrnpceklfzdR10ejp4D7+11B6BM= +github.com/openziti/fablab v0.4.14 h1:765ha5lu3TEznhQP1LVAyLYfPJsVLYFLoP8tIvrfCtc= +github.com/openziti/fablab v0.4.14/go.mod h1:FmnlfLEQUa/Gdf82wnkQLFe44lGexoIxGd+JOtRIMHs= +github.com/openziti/fabric v0.21.17 h1:oT32L0Lu64Jd7CkHrQZdOwG0Mew8bMBEUowtRyhERvs= +github.com/openziti/fabric v0.21.17/go.mod h1:VsRUi2wdA3k4bOXxfrohaoUuhcjf8ZdpPPN0NzD8my4= +github.com/openziti/foundation/v2 v2.0.7 h1:QtpP0ntUhr/7uLR1iM7eEkrusQ2b2ZqTblgdq8cac9Y= +github.com/openziti/foundation/v2 v2.0.7/go.mod h1:Z0gnQsGJb/H/B+pixLtmCIpw1dBllD4QoT6LeD35WzA= +github.com/openziti/identity v1.0.20 h1:8nsQFHpqKS1ByD8QuPDxQWfS8CQEidyn5jFXWnXguX0= +github.com/openziti/identity v1.0.20/go.mod h1:X0WLWEgnM1iL8asNbuu7vUW0kZq8nnWKepMW214C9Mk= github.com/openziti/jwks v1.0.2 h1:32BGXIAnefS+v7uXKPb1x8/cQ7srek6Ai06dsrMTY4E= github.com/openziti/jwks v1.0.2/go.mod h1:KwO0x9FBG0aoJS5f6nH5xeHoplyR1H143SMI9kF0mC8= -github.com/openziti/metrics v1.1.4 h1:UGLU1kBJ3ztDO1SAs42qecN/BV4/JTPGH93LWvZwa4c= -github.com/openziti/metrics v1.1.4/go.mod h1:Wy7suQpju6oqWc1cmKA6+0Bh3izbudDGdfSqCuJ63UU= -github.com/openziti/sdk-golang v0.16.135 h1:9/pxkHGZJYUsdM03/rQksOz2S3i9C/sSUIHwmEbrxXk= -github.com/openziti/sdk-golang v0.16.135/go.mod h1:o4brIi4dvez9mM+IPtKuUN97RiGAwcY3D9zFm6SIMOI= -github.com/openziti/storage v0.1.25 h1:8HMNCR9pRKhZT8VMWad89zLntmZHLJVbWC2dDFxQ/BQ= -github.com/openziti/storage v0.1.25/go.mod h1:fQEDWSuEMn8lOYwDl1hPGMqQNjm2P3p+5y5Lz0uDZCo= -github.com/openziti/transport/v2 v2.0.36 h1:yttgXbFnj4adypuYFErb0TCOLR+v87j0se7iFw+rmIk= -github.com/openziti/transport/v2 v2.0.36/go.mod h1:EsuNHXUzdispjF9k4Kkql4SGd74rZyvJ3sp4dj77ki0= +github.com/openziti/metrics v1.1.5 h1:qhsGsYWdp7LxPCYi9WMGHGbjiHvsT1DtjM44JNHLZWk= +github.com/openziti/metrics v1.1.5/go.mod h1:B6RCuVRTpI3kEIhQlCvsHj3Pqi6bSnqFmRPgfgv9ico= +github.com/openziti/sdk-golang v0.16.146 h1:5R7ZOSh+Q0pmZdzEv3l2Q03KQgiUrpaj3ymD8DjBT5k= +github.com/openziti/sdk-golang v0.16.146/go.mod h1:yOgsofdEd82pph97N4DX0xYlfgjJ2LCgC/mHkMw+5hU= +github.com/openziti/storage v0.1.26 h1:1tV4czY/TNmzX3raUZjbR8jVl5L92pdD0SjmdzCzUmE= +github.com/openziti/storage v0.1.26/go.mod h1:Zkm+4d2gckkIbuuCw/sKFWKKhPROZak3gLFzdII0KWQ= +github.com/openziti/transport/v2 v2.0.38 h1:9+EtBF052TtGvT5isuPj/SUTXNHg8RbkGBcEKfiUPd8= +github.com/openziti/transport/v2 v2.0.38/go.mod h1:FB/pqmA8RdUsoWtpTc6E/it6lLdA7GOugy9no3JDU/4= github.com/openziti/x509-claims v1.0.3 h1:HNdQ8Nf1agB3lBs1gahcO6zfkeS4S5xoQ2/PkY4HRX0= github.com/openziti/x509-claims v1.0.3/go.mod h1:Z0WIpBm6c4ecrpRKrou6Gk2wrLWxJO/+tuUwKh8VewE= github.com/openziti/xweb/v2 v2.0.2 h1:XYlVFriTq/U1wcUrc+XPnWJGhXh9NJPhtQ7+r3aC0cU= @@ -625,14 +625,14 @@ github.com/openziti/ziti v0.26.10 h1:aPikHYJa/KvzgTiRW2hGw8f2L/+NsFgy8sbHXcuxwbU github.com/openziti/ziti v0.26.10/go.mod h1:hbl02rbQ8l6+kF/vXolNPCdZLQ3WKkSGEc7xeRPEl4c= github.com/openziti/ziti-db-explorer v1.1.1 h1:G0eoTby+aIjjt5TxEfR+FMI2CWd4RvZFjzaIMX2lEBw= github.com/openziti/ziti-db-explorer v1.1.1/go.mod h1:h76h7Tsb+khb0v+CqYKL6ifUfJbUMjGBFU2IvupfBE4= -github.com/openziti/zitilab v0.1.8 h1:7lzS76/3hDyEruODXBuvFJew1BoII4S4GDmY0T8DFRk= -github.com/openziti/zitilab v0.1.8/go.mod h1:ElsdjW6cyMBeLxda/n8DF9ec4KtZavys3hbYkgHpQf4= +github.com/openziti/zitilab v0.1.9 h1:NWUgq4ZyZIhXlH9HVL19JK6ArDnTNLnlKOteE6PLa8E= +github.com/openziti/zitilab v0.1.9/go.mod h1:ElsdjW6cyMBeLxda/n8DF9ec4KtZavys3hbYkgHpQf4= github.com/oracle/oci-go-sdk v24.2.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35ukwStZIg5F66tcBccjip/j888= github.com/orcaman/concurrent-map/v2 v2.0.0 h1:iSMwuBQvQ1nX5i9gYuGMiSy0fjWHmazdjF+NdSO9JzI= github.com/orcaman/concurrent-map/v2 v2.0.0/go.mod h1:9Eq3TG2oBe5FirmYWQfYO5iH1q0Jv47PLaNK++uCdOM= github.com/ovh/go-ovh v1.1.0/go.mod h1:AxitLZ5HBRPyUd+Zl60Ajaag+rNTdVXWIkzfrVuTXWA= -github.com/parallaxsecond/parsec-client-go v0.0.0-20220111122524-cb78842db373 h1:CUvH4JL/8OVy023LMER3dB/MerNQ6OIz4QV3E/JQ3UY= -github.com/parallaxsecond/parsec-client-go v0.0.0-20220111122524-cb78842db373/go.mod h1:gLH27qo/dvMhLTVVyMELpe3Tut7sOfkiDg7ZpeqKwsw= +github.com/parallaxsecond/parsec-client-go v0.0.0-20221025095442-f0a77d263cf9 h1:mOvehYivJ4Aqu2CPe3D3lv8jhqOI9/1o0THxJHBE0qw= +github.com/parallaxsecond/parsec-client-go v0.0.0-20221025095442-f0a77d263cf9/go.mod h1:gLH27qo/dvMhLTVVyMELpe3Tut7sOfkiDg7ZpeqKwsw= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= @@ -705,8 +705,8 @@ github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb github.com/sacloud/libsacloud v1.36.2/go.mod h1:P7YAOVmnIn3DKHqCZcUKYUXmSwGBm3yS7IBEjKVSrjg= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shirou/gopsutil/v3 v3.22.9 h1:yibtJhIVEMcdw+tCTbOPiF1VcsuDeTE4utJ8Dm4c5eA= -github.com/shirou/gopsutil/v3 v3.22.9/go.mod h1:bBYl1kjgEJpWpxeHmLI+dVHWtyAwfcmSBLDsp2TNT8A= +github.com/shirou/gopsutil/v3 v3.22.10 h1:4KMHdfBRYXGF9skjDWiL4RA2N+E8dRdodU/bOZpPoVg= +github.com/shirou/gopsutil/v3 v3.22.10/go.mod h1:QNza6r4YQoydyCfo6rH0blGfKahgibh4dQmV5xdFkQk= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= @@ -730,8 +730,8 @@ github.com/spf13/cast v1.4.1 h1:s0hze+J0196ZfEMTs80N7UlFt0BDuQ7Q+JDnHiMWKdA= github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= -github.com/spf13/cobra v1.6.0 h1:42a0n6jwCot1pUmomAp4T7DeMD+20LFv4Q54pxLf2LI= -github.com/spf13/cobra v1.6.0/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= +github.com/spf13/cobra v1.6.1 h1:o94oiPyS4KD1mPy2fmcYYHHfCxLqYjJOhGsCHFZtEzA= +github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= @@ -743,8 +743,9 @@ github.com/spf13/viper v1.10.0/go.mod h1:SoyBPwAtKDzypXNDFKN5kzH7ppppbGZtls1UpIy github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/objx v0.4.0 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= @@ -755,8 +756,9 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.7.4/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 h1:3SNcvBmEPE1YlB1JpVZouslJpI3GBNoiqW7+wb0Rz7w= @@ -766,8 +768,8 @@ github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhV github.com/tklauser/go-sysconf v0.3.10 h1:IJ1AZGZRWbY8T5Vfk04D9WOA5WSejdflXxP03OUqALw= github.com/tklauser/go-sysconf v0.3.10/go.mod h1:C8XykCvCb+Gn0oNCWPIlcb0RuglQTYaQ2hGm7jmxEFk= github.com/tklauser/numcpus v0.4.0/go.mod h1:1+UI3pD8NW14VMwdgJNJ1ESk2UnwhAnz5hMwiKKqXCQ= -github.com/tklauser/numcpus v0.5.0 h1:ooe7gN0fg6myJ0EKoTAf5hebTZrH52px3New/D9iJ+A= -github.com/tklauser/numcpus v0.5.0/go.mod h1:OGzpTxpcIMNGYQdit2BYL1pvk/dSOaJWjKoflh+RQjo= +github.com/tklauser/numcpus v0.6.0 h1:kebhY2Qt+3U6RNK7UqpYNA+tJ23IBEGKkB7JQBfDYms= +github.com/tklauser/numcpus v0.6.0/go.mod h1:FEZLMke0lhOUG6w2JadTzp0a+Nl8PF/GFkQ5UVIcaL4= github.com/transip/gotransip/v6 v6.2.0/go.mod h1:pQZ36hWWRahCUXkFWlx9Hs711gLd8J4qdgLdRzmtY+g= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/uber-go/atomic v1.3.2/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g= @@ -842,8 +844,8 @@ golang.org/x/crypto v0.0.0-20201216223049-8b5274cf687f/go.mod h1:jdWPYTVW3xRLrWP golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20221012134737-56aed061732a h1:NmSIgad6KjE6VvHciPZuNRTKxGhlPfD6OA87W/PLkqg= -golang.org/x/crypto v0.0.0-20221012134737-56aed061732a/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.1.0 h1:MDRAIl0xIo9Io2xV565hzXHw3zVseKrJKodhohM5CjU= +golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -882,8 +884,8 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.5.1 h1:OJxoQ/rynoF0dcCdI7cLPktw/hR2cueqYfjm43oqK38= -golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -935,8 +937,8 @@ golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220923203811-8be639271d50 h1:vKyz8L3zkd+xrMeIaBsQ/MNVPVFSffdaU3ZyYlBGFnI= -golang.org/x/net v0.0.0-20220923203811-8be639271d50/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.1.0 h1:hZ/3BUoy5aId7sCpA/Tc5lt8DkFgdVS2onTpJsZ/fl0= +golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -961,8 +963,8 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0 h1:cu5kTvlzcw1Q5S9f5ip1/cpiB4nXvw1XYzFPGgzLUOY= -golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180606202747-9527bec2660b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180622082034-63fc586f45fe/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1043,13 +1045,13 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20221010170243-090e33056c14 h1:k5II8e6QD8mITdi+okbbmR/cIyEbeXLBhy5Ha4nevyc= -golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0 h1:ljd4t30dBnAvMZaQCevtY0xLLD0A+bRZXbgLMLU1F/A= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.0.0-20220919170432-7a66f970e087 h1:tPwmk4vmvVCMdr98VgL4JH+qZxPL8fqlUOHnyOM8N3w= -golang.org/x/term v0.0.0-20220919170432-7a66f970e087/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.2.0 h1:z85xZCsEl7bi/KwbNADeBYoOP0++7W1ipu+aGnpwzRM= +golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1058,8 +1060,9 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1124,12 +1127,11 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.7 h1:6j8CgantCy3yc8JGBqkDLMKWqZ0RDU2g1HVgacojGWQ= -golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= +golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= diff --git a/ziti/cmd/ziti/cmd/agent_controller_raft_join.go b/ziti/cmd/ziti/cmd/agent_controller_raft_join.go index 5532144d6..8aa981b28 100644 --- a/ziti/cmd/ziti/cmd/agent_controller_raft_join.go +++ b/ziti/cmd/ziti/cmd/agent_controller_raft_join.go @@ -18,10 +18,10 @@ package cmd import ( "fmt" + "github.com/openziti/agent" "github.com/openziti/channel/v2" "github.com/openziti/fabric/controller" "github.com/openziti/fabric/pb/mgmt_pb" - "github.com/openziti/agent" "github.com/openziti/identity" "github.com/openziti/ziti/ziti/cmd/ziti/cmd/agentcli" "github.com/openziti/ziti/ziti/cmd/ziti/cmd/common" @@ -33,7 +33,8 @@ import ( type AgentCtrlRaftJoinOptions struct { agentcli.AgentOptions - Voter bool + Voter bool + MemberId string } func NewAgentCtrlRaftJoin(p common.OptionsProvider) *cobra.Command { @@ -44,8 +45,8 @@ func NewAgentCtrlRaftJoin(p common.OptionsProvider) *cobra.Command { } cmd := &cobra.Command{ - Args: cobra.RangeArgs(2, 3), - Use: "raft-join ", + Args: cobra.RangeArgs(1, 2), + Use: "raft-join ", Run: func(cmd *cobra.Command, args []string) { options.Cmd = cmd options.Args = args @@ -55,6 +56,7 @@ func NewAgentCtrlRaftJoin(p common.OptionsProvider) *cobra.Command { } cmd.Flags().BoolVar(&options.Voter, "voter", true, "Is this member a voting member") + cmd.Flags().StringVar(&options.MemberId, "id", "", "The member id. If not provided, it will be looked up") return cmd } @@ -64,7 +66,7 @@ func (o *AgentCtrlRaftJoinOptions) Run() error { var addr string var err error - if len(o.Args) == 3 { + if len(o.Args) == 2 { addr, err = agent.ParseGopsAddress(o.Args) if err != nil { return err @@ -84,22 +86,25 @@ func (o *AgentCtrlRaftJoinOptions) makeRequest(conn net.Conn) error { } offset := 0 - if len(o.Args) == 3 { + if len(o.Args) == 2 { offset = 1 } msg := channel.NewMessage(int32(mgmt_pb.ContentType_RaftJoinRequestType), nil) - msg.PutStringHeader(controller.AgentIdHeader, o.Args[offset]) - msg.PutStringHeader(controller.AgentAddrHeader, o.Args[offset+1]) + msg.PutStringHeader(controller.AgentAddrHeader, o.Args[offset]) msg.PutBoolHeader(controller.AgentIsVoterHeader, o.Voter) + if o.MemberId != "" { + msg.PutStringHeader(controller.AgentIdHeader, o.MemberId) + } + reply, err := msg.WithTimeout(5 * time.Second).SendForReply(ch) if err != nil { return err } result := channel.UnmarshalResult(reply) if result.Success { - fmt.Println("success") + fmt.Println(result.Message) } else { fmt.Printf("error: %v\n", result.Message) } diff --git a/ziti/cmd/ziti/cmd/pki.go b/ziti/cmd/ziti/cmd/pki.go index d56dedbce..10924e24a 100644 --- a/ziti/cmd/ziti/cmd/pki.go +++ b/ziti/cmd/ziti/cmd/pki.go @@ -60,6 +60,7 @@ type PKIFlags struct { IP []string Email []string PKI *pki.ZitiPKI + SpiffeID string } var ( diff --git a/ziti/cmd/ziti/cmd/pki_create_ca.go b/ziti/cmd/ziti/cmd/pki_create_ca.go index b2c99e698..35c14d0b8 100644 --- a/ziti/cmd/ziti/cmd/pki_create_ca.go +++ b/ziti/cmd/ziti/cmd/pki_create_ca.go @@ -17,9 +17,11 @@ package cmd import ( - "fmt" + "github.com/pkg/errors" "github.com/spf13/cobra" "io" + "net/url" + "strings" cmdhelper "github.com/openziti/ziti/ziti/cmd/ziti/cmd/helpers" "github.com/openziti/ziti/ziti/cmd/ziti/internal/log" @@ -68,14 +70,14 @@ func (o *PKICreateCAOptions) addPKICreateCAFlags(cmd *cobra.Command) { cmd.Flags().IntVarP(&o.Flags.CAExpire, "expire-limit", "", 3650, "Expiration limit in days") cmd.Flags().IntVarP(&o.Flags.CAMaxpath, "max-path-len", "", -1, "Intermediate maximum path length") cmd.Flags().IntVarP(&o.Flags.CAPrivateKeySize, "private-key-size", "", 4096, "Size of the private key") + cmd.Flags().StringVar(&o.Flags.SpiffeID, "trust-domain", "", "An optional spiffe trust domain. spiffe:// will be automatically prefixed, if not provided") } // Run implements this command func (o *PKICreateCAOptions) Run() error { - pkiroot, err := o.ObtainPKIRoot() if err != nil { - return fmt.Errorf("%s", err) + return err } o.Flags.PKI = &pki.ZitiPKI{Store: &store.Local{}} @@ -84,7 +86,7 @@ func (o *PKICreateCAOptions) Run() error { cafile, err := o.ObtainCAFile() if err != nil { - return fmt.Errorf("%s", err) + return err } commonName := o.Flags.CAName @@ -94,6 +96,17 @@ func (o *PKICreateCAOptions) Run() error { template.IsCA = true + if o.Flags.SpiffeID != "" { + if !strings.HasPrefix(o.Flags.SpiffeID, "spiffe://") { + o.Flags.SpiffeID = "spiffe://" + o.Flags.SpiffeID + } + spiffeId, err := url.Parse(o.Flags.SpiffeID) + if err != nil { + return errors.Wrapf(err, "unable to parse spiffe id [%v]", o.Flags.SpiffeID) + } + template.URIs = append(template.URIs, spiffeId) + } + var signer *certificate.Bundle req := &pki.Request{ @@ -103,8 +116,8 @@ func (o *PKICreateCAOptions) Run() error { PrivateKeySize: o.Flags.CAPrivateKeySize, } - if err := o.Flags.PKI.Sign(signer, req); err != nil { - return fmt.Errorf("Cannot Sign: %v", err) + if err = o.Flags.PKI.Sign(signer, req); err != nil { + return errors.Wrap(err, "cannot sign") } log.Infoln("Success") diff --git a/ziti/cmd/ziti/cmd/pki_create_client.go b/ziti/cmd/ziti/cmd/pki_create_client.go index e7df514d5..38f785c95 100644 --- a/ziti/cmd/ziti/cmd/pki_create_client.go +++ b/ziti/cmd/ziti/cmd/pki_create_client.go @@ -17,9 +17,10 @@ package cmd import ( - "fmt" + "github.com/pkg/errors" "github.com/spf13/cobra" "io" + "net/url" cmdhelper "github.com/openziti/ziti/ziti/cmd/ziti/cmd/helpers" "github.com/openziti/ziti/ziti/cmd/ziti/internal/log" @@ -72,14 +73,14 @@ func (o *PKICreateClientOptions) addPKICreateClientFlags(cmd *cobra.Command) { cmd.Flags().IntVarP(&o.Flags.CAExpire, "expire-limit", "", 365, "Expiration limit in days") cmd.Flags().IntVarP(&o.Flags.CAMaxpath, "max-path-len", "", -1, "Intermediate maximum path length") cmd.Flags().IntVarP(&o.Flags.CAPrivateKeySize, "private-key-size", "", 2048, "Size of the private key") + cmd.Flags().StringVar(&o.Flags.SpiffeID, "spiffe-id", "", "Optionally provide the path portion of a SPIFFE id. The trust domain will be taken from the signing certificate.") } // Run implements this command func (o *PKICreateClientOptions) Run() error { - pkiroot, err := o.ObtainPKIRoot() if err != nil { - return fmt.Errorf("%s", err) + return err } o.Flags.PKI = &pki.ZitiPKI{Store: &store.Local{}} @@ -90,7 +91,7 @@ func (o *PKICreateClientOptions) Run() error { clientCertFile, err := o.ObtainClientCertFile() if err != nil { - return fmt.Errorf("%s", err) + return err } filename := o.ObtainFileName(clientCertFile, commonName) @@ -103,17 +104,37 @@ func (o *PKICreateClientOptions) Run() error { caname, err := o.ObtainCAName(pkiroot) if err != nil { - return fmt.Errorf("%s", err) + return err } keyFile, err := o.ObtainKeyFile(false) if err != nil { - return fmt.Errorf("%s", err) + return err } signer, err = o.Flags.PKI.GetCA(caname) if err != nil { - return fmt.Errorf("Cannot locate signer: %v", err) + return errors.Wrap(err, "cannot locate signer") + } + + if o.Flags.SpiffeID != "" { + var trustDomain *url.URL + for _, uri := range signer.Cert.URIs { + if uri.Scheme == "spiffe" { + if trustDomain != nil { + return errors.New("signing cert contained multiple spiffe ids, which is not allowed") + } + trustDomain = uri + } + } + + if trustDomain == nil { + return errors.New("signing cert doesn't have a spiffe id. unknown trust domain") + } + + spiffId := *trustDomain + spiffId.Path = o.Flags.SpiffeID + template.URIs = append(template.URIs, &spiffId) } req := &pki.Request{ @@ -125,7 +146,7 @@ func (o *PKICreateClientOptions) Run() error { } if err := o.Flags.PKI.Sign(signer, req); err != nil { - return fmt.Errorf("Cannot Sign: %v", err) + return errors.Wrap(err, "cannot sign") } log.Infoln("Success") diff --git a/ziti/cmd/ziti/cmd/pki_create_intermediate.go b/ziti/cmd/ziti/cmd/pki_create_intermediate.go index 1b1b3ed8e..d664c5bb2 100644 --- a/ziti/cmd/ziti/cmd/pki_create_intermediate.go +++ b/ziti/cmd/ziti/cmd/pki_create_intermediate.go @@ -17,7 +17,7 @@ package cmd import ( - "fmt" + "github.com/pkg/errors" "github.com/spf13/cobra" "io" @@ -74,10 +74,9 @@ func (o *PKICreateIntermediateOptions) addPKICreateIntermediateFlags(cmd *cobra. // Run implements this command func (o *PKICreateIntermediateOptions) Run() error { - pkiroot, err := o.ObtainPKIRoot() if err != nil { - return fmt.Errorf("%s", err) + return err } o.Flags.PKI = &pki.ZitiPKI{Store: &store.Local{}} @@ -86,7 +85,7 @@ func (o *PKICreateIntermediateOptions) Run() error { intermediatefile, err := o.ObtainIntermediateCAFile() if err != nil { - return fmt.Errorf("%s", err) + return err } commonName := o.Flags.IntermediateName @@ -100,12 +99,18 @@ func (o *PKICreateIntermediateOptions) Run() error { caname, err := o.ObtainCAName(pkiroot) if err != nil { - return fmt.Errorf("%s", err) + return err } signer, err = o.Flags.PKI.GetCA(caname) if err != nil { - return fmt.Errorf("Cannot locate signer: %v", err) + return errors.Wrap(err, "cannot locate signer") + } + + for _, uri := range signer.Cert.URIs { + if uri.Scheme == "spiffe" { + template.URIs = append(template.URIs, uri) + } } req := &pki.Request{ @@ -116,7 +121,7 @@ func (o *PKICreateIntermediateOptions) Run() error { } if err := o.Flags.PKI.Sign(signer, req); err != nil { - return fmt.Errorf("Cannot Sign: %v", err) + return errors.Wrap(err, "cannot sign") } log.Infoln("Success") diff --git a/ziti/cmd/ziti/cmd/pki_create_server.go b/ziti/cmd/ziti/cmd/pki_create_server.go index 392808658..e1b64a2f4 100644 --- a/ziti/cmd/ziti/cmd/pki_create_server.go +++ b/ziti/cmd/ziti/cmd/pki_create_server.go @@ -17,15 +17,15 @@ package cmd import ( - "fmt" - "github.com/spf13/cobra" - "io" - cmdhelper "github.com/openziti/ziti/ziti/cmd/ziti/cmd/helpers" "github.com/openziti/ziti/ziti/cmd/ziti/internal/log" "github.com/openziti/ziti/ziti/pki/certificate" "github.com/openziti/ziti/ziti/pki/pki" "github.com/openziti/ziti/ziti/pki/store" + "github.com/pkg/errors" + "github.com/spf13/cobra" + "io" + "net/url" ) // PKICreateServerOptions the options for the create spring command @@ -73,19 +73,19 @@ func (o *PKICreateServerOptions) addPKICreateServerFlags(cmd *cobra.Command) { cmd.Flags().IntVarP(&o.Flags.CAExpire, "expire-limit", "", 365, "Expiration limit in days") cmd.Flags().IntVarP(&o.Flags.CAMaxpath, "max-path-len", "", -1, "Intermediate maximum path length") cmd.Flags().IntVarP(&o.Flags.CAPrivateKeySize, "private-key-size", "", 4096, "Size of the private key") + cmd.Flags().StringVar(&o.Flags.SpiffeID, "spiffe-id", "", "Optionally provide the path portion of a SPIFFE id. The trust domain will be taken from the signing certificate.") } // Run implements this command func (o *PKICreateServerOptions) Run() error { - IPs, DNSNames, err := o.ObtainIPsAndDNSNames() if err != nil { - return fmt.Errorf("%s", err) + return err } pkiroot, err := o.ObtainPKIRoot() if err != nil { - return fmt.Errorf("%s", err) + return err } o.Flags.PKI = &pki.ZitiPKI{Store: &store.Local{}} @@ -96,7 +96,7 @@ func (o *PKICreateServerOptions) Run() error { serverCertFile, err := o.ObtainServerCertFile() if err != nil { - return fmt.Errorf("%s", err) + return err } filename := o.ObtainFileName(serverCertFile, commonName) @@ -110,17 +110,37 @@ func (o *PKICreateServerOptions) Run() error { caname, err := o.ObtainCAName(pkiroot) if err != nil { - return fmt.Errorf("%s", err) + return err } keyFile, err := o.ObtainKeyFile(false) if err != nil { - return fmt.Errorf("%s", err) + return err } signer, err = o.Flags.PKI.GetCA(caname) if err != nil { - return fmt.Errorf("Cannot locate signer: %v", err) + return errors.Wrap(err, "cannot locate signer") + } + + if o.Flags.SpiffeID != "" { + var trustDomain *url.URL + for _, uri := range signer.Cert.URIs { + if uri.Scheme == "spiffe" { + if trustDomain != nil { + return errors.New("signing cert contained multiple spiffe ids, which is not allowed") + } + trustDomain = uri + } + } + + if trustDomain == nil { + return errors.New("signing cert doesn't have a spiffe id. unknown trust domain") + } + + spiffId := *trustDomain + spiffId.Path = o.Flags.SpiffeID + template.URIs = append(template.URIs, &spiffId) } req := &pki.Request{ @@ -132,12 +152,12 @@ func (o *PKICreateServerOptions) Run() error { } if err := o.Flags.PKI.Sign(signer, req); err != nil { - return fmt.Errorf("Cannot Sign: %v", err) + return errors.Wrap(err, "cannot sign") } // Concat the newly-created server cert with the intermediate cert to create a server.chain.pem file if err := o.Flags.PKI.Chain(signer, req); err != nil { - return fmt.Errorf("Cannot Sign: %v", err) + return errors.Wrap(err, "cannot sign") } log.Infoln("Success")