mirror of
https://github.com/openziti/ziti.git
synced 2026-10-13 15:51:21 +00:00
@@ -1,3 +1,40 @@
|
||||
# Release 0.28.2
|
||||
|
||||
## What's New
|
||||
|
||||
* IMPORTANT: If you update your OpenZiti binaries to this version or later (which can be done easily with the `getZiti()` function, you will need to migrate any existing network that has been developed using OpenZiti v0.27.5 or earlier binaries as the new binaries will expect the new environment variable names. A function `performMigration()` has been provided in the `ziti-cli-script.sh` for this purpose. Simply source the latest `ziti-cli-script.sh`, and your current network's .env file, then run `performMigration()` to update environment variable name references. If the migration process cannot find your existing environment file in the default location, you will need to provide the path to the migration function, ex: `performMigration <path-to-environment-file>`
|
||||
* If you were using the `ZITI_HOME` environment variable to configure where your ziti CLI profiles were stored, you should now use `ZITI_CONFIG_DIR` instead.
|
||||
|
||||
|
||||
## Component Updates and Bug Fixes
|
||||
|
||||
* github.com/openziti/channel/v2: [v2.0.80 -> v2.0.81](https://github.com/openziti/channel/compare/v2.0.80...v2.0.81)
|
||||
* github.com/openziti/edge: [v0.24.326 -> v0.24.345](https://github.com/openziti/edge/compare/v0.24.326...v0.24.345)
|
||||
* [Issue #1528](https://github.com/openziti/edge/issues/1528) - edge unbind returns incorect message if token is not suplied or invalid
|
||||
* [Issue #1416](https://github.com/openziti/edge/issues/1416) - Allow MFA token name to be configured
|
||||
|
||||
* github.com/openziti/edge-api: [v0.25.25 -> v0.25.29](https://github.com/openziti/edge-api/compare/v0.25.25...v0.25.29)
|
||||
* github.com/openziti/fabric: [v0.23.35 -> v0.23.39](https://github.com/openziti/fabric/compare/v0.23.35...v0.23.39)
|
||||
* [Issue #751](https://github.com/openziti/fabric/issues/751) - Use of Fprintf causing buffer pool corruption with amqp event output
|
||||
|
||||
* github.com/openziti/foundation/v2: [v2.0.25 -> v2.0.26](https://github.com/openziti/foundation/compare/v2.0.25...v2.0.26)
|
||||
* github.com/openziti/identity: [v1.0.56 -> v1.0.57](https://github.com/openziti/identity/compare/v1.0.56...v1.0.57)
|
||||
* github.com/openziti/runzmd: [v1.0.25 -> v1.0.26](https://github.com/openziti/runzmd/compare/v1.0.25...v1.0.26)
|
||||
* github.com/openziti/sdk-golang: [v0.20.58 -> v0.20.67](https://github.com/openziti/sdk-golang/compare/v0.20.58...v0.20.67)
|
||||
* github.com/openziti/storage: [v0.2.7 -> v0.2.8](https://github.com/openziti/storage/compare/v0.2.7...v0.2.8)
|
||||
* github.com/openziti/transport/v2: [v2.0.90 -> v2.0.91](https://github.com/openziti/transport/compare/v2.0.90...v2.0.91)
|
||||
* github.com/openziti/metrics: [v1.2.26 -> v1.2.27](https://github.com/openziti/metrics/compare/v1.2.26...v1.2.27)
|
||||
* github.com/openziti/secretstream: [v0.1.8 -> v0.1.9](https://github.com/openziti/secretstream/compare/v0.1.8...v0.1.9)
|
||||
* github.com/openziti/ziti: [v0.28.1 -> v0.28.2](https://github.com/openziti/ziti/compare/v0.28.1...v0.28.2)
|
||||
* [Issue #1144](https://github.com/openziti/ziti/issues/1144) - DB explore subcommand panic
|
||||
* [Issue #986](https://github.com/openziti/ziti/issues/986) - Updated default ports in `.env` file to match documentation.
|
||||
* [Issue #920](https://github.com/openziti/ziti/issues/920) - Fixed bug causing failure when re-running quickstart.
|
||||
* [Issue #779](https://github.com/openziti/ziti/issues/779) - Add ability to upgrade ziti binaries using a quickstart function.
|
||||
* [Issue #761](https://github.com/openziti/ziti/issues/761) - Remove Management Listener section from controller config.
|
||||
* [Issue #650](https://github.com/openziti/ziti/issues/650) - Removed/Updated references to `ZITI_EDGE_CONTROLLER_API`
|
||||
* Quickstart environment variable names have been cleaned up.
|
||||
* [Issue #1030](https://github.com/openziti/ziti/issues/1030) - Provide an upgrade path for quickstart cleanup
|
||||
|
||||
# Release 0.28.1
|
||||
|
||||
## What's New
|
||||
|
||||
@@ -36,12 +36,12 @@ ZITI_HOME=. \
|
||||
ZITI_CTRL_LISTENER_ADDRESS=127.0.0.1 \
|
||||
ZITI_CTRL_EDGE_LISTENER_HOST_PORT=127.0.0.1:1280 \
|
||||
ZITI_EDGE_CTRL_ADVERTISED_HOST_PORT=127.0.0.1:1280 \
|
||||
ZITI_CTRL_IDENTITY_CERT=./etc/ca/intermediate/certs/ctrl-client.cert.pem \
|
||||
ZITI_CTRL_IDENTITY_SERVER_CERT=./etc/ca/intermediate/certs/ctrl-server.cert.pem \
|
||||
ZITI_CTRL_IDENTITY_KEY=./etc/ca/intermediate/private/ctrl.key.pem \
|
||||
ZITI_CTRL_IDENTITY_CA=./etc/ca/intermediate/certs/ca-chain.cert.pem \
|
||||
ZITI_SIGNING_CERT=./etc/ca/intermediate/certs/intermediate.cert.pem \
|
||||
ZITI_SIGNING_KEY=./etc/ca/intermediate/private/intermediate.key.decrypted.pem \
|
||||
ZITI_PKI_CTRL_CERT=./etc/ca/intermediate/certs/ctrl-client.cert.pem \
|
||||
ZITI_PKI_CTRL_SERVER_CERT=./etc/ca/intermediate/certs/ctrl-server.cert.pem \
|
||||
ZITI_PKI_CTRL_KEY=./etc/ca/intermediate/private/ctrl.key.pem \
|
||||
ZITI_PKI_CTRL_CA=./etc/ca/intermediate/certs/ca-chain.cert.pem \
|
||||
ZITI_PKI_SIGNER_CERT=./etc/ca/intermediate/certs/intermediate.cert.pem \
|
||||
ZITI_PKI_SIGNER_KEY=./etc/ca/intermediate/private/intermediate.key.decrypted.pem \
|
||||
ziti create config controller \
|
||||
--output ./db/ctrl-config.yml
|
||||
```
|
||||
@@ -82,8 +82,8 @@ Generate a configuration file for router01.
|
||||
|
||||
```bash
|
||||
ZITI_HOME=./db \
|
||||
ZITI_CTRL_ADVERTISED_ADDRESS=127.0.0.1 \
|
||||
ZITI_EDGE_ROUTER_RAWNAME=localhost \
|
||||
ZITI_CTRL_EDGE_ADVERTISED_ADDRESS=127.0.0.1 \
|
||||
ZITI_EDGE_ROUTER_NAME=localhost \
|
||||
ziti create config router edge \
|
||||
--routerName router01 \
|
||||
--output ./db/router01-config.yml
|
||||
|
||||
@@ -21,16 +21,16 @@ require (
|
||||
github.com/jedib0t/go-pretty/v6 v6.4.0
|
||||
github.com/michaelquigley/pfxlog v0.6.10
|
||||
github.com/openziti/agent v1.0.14
|
||||
github.com/openziti/channel/v2 v2.0.80
|
||||
github.com/openziti/edge v0.24.326
|
||||
github.com/openziti/edge-api v0.25.25
|
||||
github.com/openziti/fabric v0.23.35
|
||||
github.com/openziti/foundation/v2 v2.0.25
|
||||
github.com/openziti/identity v1.0.56
|
||||
github.com/openziti/runzmd v1.0.25
|
||||
github.com/openziti/sdk-golang v0.20.58
|
||||
github.com/openziti/storage v0.2.7
|
||||
github.com/openziti/transport/v2 v2.0.90
|
||||
github.com/openziti/channel/v2 v2.0.81
|
||||
github.com/openziti/edge v0.24.345
|
||||
github.com/openziti/edge-api v0.25.29
|
||||
github.com/openziti/fabric v0.23.39
|
||||
github.com/openziti/foundation/v2 v2.0.26
|
||||
github.com/openziti/identity v1.0.57
|
||||
github.com/openziti/runzmd v1.0.26
|
||||
github.com/openziti/sdk-golang v0.20.67
|
||||
github.com/openziti/storage v0.2.8
|
||||
github.com/openziti/transport/v2 v2.0.91
|
||||
github.com/openziti/xweb/v2 v2.0.2
|
||||
github.com/openziti/ziti-db-explorer v1.1.1
|
||||
github.com/pkg/errors v0.9.1
|
||||
@@ -43,7 +43,7 @@ require (
|
||||
github.com/spf13/viper v1.10.0
|
||||
github.com/stretchr/testify v1.8.4
|
||||
go.etcd.io/bbolt v1.3.7
|
||||
golang.org/x/net v0.10.0
|
||||
golang.org/x/net v0.11.0
|
||||
google.golang.org/grpc v1.42.0
|
||||
google.golang.org/protobuf v1.30.0
|
||||
gopkg.in/AlecAivazis/survey.v1 v1.8.7
|
||||
@@ -86,12 +86,12 @@ require (
|
||||
github.com/go-logr/stdr v1.2.2 // indirect
|
||||
github.com/go-ole/go-ole v1.2.6 // indirect
|
||||
github.com/go-openapi/analysis v0.21.4 // indirect
|
||||
github.com/go-openapi/errors v0.20.3 // indirect
|
||||
github.com/go-openapi/errors v0.20.4 // indirect
|
||||
github.com/go-openapi/jsonpointer v0.19.6 // indirect
|
||||
github.com/go-openapi/jsonreference v0.20.2 // indirect
|
||||
github.com/go-openapi/loads v0.21.2 // indirect
|
||||
github.com/go-openapi/spec v0.20.9 // indirect
|
||||
github.com/go-openapi/swag v0.22.3 // indirect
|
||||
github.com/go-openapi/swag v0.22.4 // indirect
|
||||
github.com/go-openapi/validate v0.22.1 // indirect
|
||||
github.com/gogo/protobuf v1.3.2 // indirect
|
||||
github.com/golang-jwt/jwt v3.2.2+incompatible // indirect
|
||||
@@ -114,7 +114,7 @@ require (
|
||||
github.com/josharian/native v1.1.0 // indirect
|
||||
github.com/kataras/go-events v0.0.3 // indirect
|
||||
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
|
||||
github.com/klauspost/compress v1.16.5 // indirect
|
||||
github.com/klauspost/compress v1.16.6 // indirect
|
||||
github.com/kr/pty v1.1.8 // indirect
|
||||
github.com/kyokomi/emoji/v2 v2.2.12 // indirect
|
||||
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
|
||||
@@ -129,7 +129,7 @@ require (
|
||||
github.com/mdlayher/netlink v1.7.2 // indirect
|
||||
github.com/mdlayher/socket v0.4.1 // indirect
|
||||
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect
|
||||
github.com/miekg/dns v1.1.54 // indirect
|
||||
github.com/miekg/dns v1.1.55 // indirect
|
||||
github.com/miekg/pkcs11 v1.1.1 // indirect
|
||||
github.com/mitchellh/go-ps v1.0.0 // indirect
|
||||
github.com/mitchellh/mapstructure v1.5.0 // indirect
|
||||
@@ -142,8 +142,8 @@ require (
|
||||
github.com/opentracing/opentracing-go v1.2.0 // indirect
|
||||
github.com/openziti/dilithium v0.3.3 // indirect
|
||||
github.com/openziti/jwks v1.0.3 // indirect
|
||||
github.com/openziti/metrics v1.2.26 // indirect
|
||||
github.com/openziti/secretstream v0.1.8 // indirect
|
||||
github.com/openziti/metrics v1.2.27 // indirect
|
||||
github.com/openziti/secretstream v0.1.9 // indirect
|
||||
github.com/openziti/x509-claims v1.0.3 // indirect
|
||||
github.com/orcaman/concurrent-map/v2 v2.0.1 // indirect
|
||||
github.com/parallaxsecond/parsec-client-go v0.0.0-20221025095442-f0a77d263cf9 // indirect
|
||||
@@ -175,14 +175,14 @@ require (
|
||||
go.opentelemetry.io/otel v1.16.0 // indirect
|
||||
go.opentelemetry.io/otel/metric v1.16.0 // indirect
|
||||
go.opentelemetry.io/otel/trace v1.16.0 // indirect
|
||||
golang.org/x/crypto v0.9.0 // indirect
|
||||
golang.org/x/crypto v0.10.0 // indirect
|
||||
golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1 // indirect
|
||||
golang.org/x/image v0.7.0 // indirect
|
||||
golang.org/x/image v0.8.0 // indirect
|
||||
golang.org/x/mod v0.8.0 // indirect
|
||||
golang.org/x/sync v0.2.0 // indirect
|
||||
golang.org/x/sys v0.8.0 // indirect
|
||||
golang.org/x/term v0.8.0 // indirect
|
||||
golang.org/x/text v0.9.0 // indirect
|
||||
golang.org/x/sync v0.3.0 // indirect
|
||||
golang.org/x/sys v0.9.0 // indirect
|
||||
golang.org/x/term v0.9.0 // indirect
|
||||
golang.org/x/text v0.10.0 // indirect
|
||||
golang.org/x/tools v0.6.0 // indirect
|
||||
google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa // indirect
|
||||
gopkg.in/ini.v1 v1.66.2 // indirect
|
||||
|
||||
@@ -273,8 +273,8 @@ github.com/go-openapi/analysis v0.21.4/go.mod h1:4zQ35W4neeZTqh3ol0rv/O8JBbka9Qy
|
||||
github.com/go-openapi/errors v0.19.8/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
|
||||
github.com/go-openapi/errors v0.19.9/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
|
||||
github.com/go-openapi/errors v0.20.2/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
|
||||
github.com/go-openapi/errors v0.20.3 h1:rz6kiC84sqNQoqrtulzaL/VERgkoCyB6WdEkc2ujzUc=
|
||||
github.com/go-openapi/errors v0.20.3/go.mod h1:Z3FlZ4I8jEGxjUK+bugx3on2mIAk4txuAOhlsB1FSgk=
|
||||
github.com/go-openapi/errors v0.20.4 h1:unTcVm6PispJsMECE3zWgvG4xTiKda1LIR5rCRWLG6M=
|
||||
github.com/go-openapi/errors v0.20.4/go.mod h1:Z3FlZ4I8jEGxjUK+bugx3on2mIAk4txuAOhlsB1FSgk=
|
||||
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
||||
github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
||||
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
||||
@@ -300,8 +300,9 @@ github.com/go-openapi/strfmt v0.21.7/go.mod h1:adeGTkxE44sPyLk0JV235VQAO/ZXUr8KA
|
||||
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
||||
github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
|
||||
github.com/go-openapi/swag v0.21.1/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
|
||||
github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g=
|
||||
github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
|
||||
github.com/go-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU=
|
||||
github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
|
||||
github.com/go-openapi/validate v0.22.1 h1:G+c2ub6q47kfX1sOBLwIQwzBVt8qmOAARyo/9Fqs9NU=
|
||||
github.com/go-openapi/validate v0.22.1/go.mod h1:rjnrwK57VJ7A8xqfpAOEKRH8yQSGUriMu5/zuPSQ1hg=
|
||||
github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
|
||||
@@ -550,8 +551,8 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI
|
||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||
github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
|
||||
github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
|
||||
github.com/klauspost/compress v1.16.5 h1:IFV2oUNUzZaz+XyusxpLzpzS8Pt5rh0Z16For/djlyI=
|
||||
github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
|
||||
github.com/klauspost/compress v1.16.6 h1:91SKEy4K37vkp255cJ8QesJhjyRO0hn9i9G0GoUwLsk=
|
||||
github.com/klauspost/compress v1.16.6/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
|
||||
github.com/kolo/xmlrpc v0.0.0-20200310150728-e0350524596b/go.mod h1:o03bZfuBwAXHetKXuInt4S7omeXUu62/A845kiycsSQ=
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||
@@ -652,8 +653,8 @@ github.com/michaelquigley/pfxlog v0.6.10/go.mod h1:gEiNTfKEX6cJHSwRpOuqBpc8oYrlh
|
||||
github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4=
|
||||
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
|
||||
github.com/miekg/dns v1.1.31/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
|
||||
github.com/miekg/dns v1.1.54 h1:5jon9mWcb0sFJGpnI99tOMhCPyJ+RPVz5b63MQG0VWI=
|
||||
github.com/miekg/dns v1.1.54/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY=
|
||||
github.com/miekg/dns v1.1.55 h1:GoQ4hpsj0nFLYe+bWiCToyrBEJXkQfOOIvFGFy0lEgo=
|
||||
github.com/miekg/dns v1.1.55/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY=
|
||||
github.com/miekg/pkcs11 v1.1.1 h1:Ugu9pdy6vAYku5DEpVWVFPYnzV+bxB+iRdbuFSu7TvU=
|
||||
github.com/miekg/pkcs11 v1.1.1/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs=
|
||||
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
|
||||
@@ -721,34 +722,34 @@ 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.14 h1:OTYhj2HeIlFwaFNcVT5BlYf7s4xa0TNmhnjmBpN8Afg=
|
||||
github.com/openziti/agent v1.0.14/go.mod h1:zfm53+PVWoGFzjGGgQdKby5749G6VRYHe+eQJmoVKy4=
|
||||
github.com/openziti/channel/v2 v2.0.80 h1:1gDikwcVvhRKs+CO8OyUHMSJWVJarCm5+OmffZ4gPCU=
|
||||
github.com/openziti/channel/v2 v2.0.80/go.mod h1:U1KSHZXWlg8VelsZ55+ZGiARYWh+XbJbD7AfN0NXUdQ=
|
||||
github.com/openziti/channel/v2 v2.0.81 h1:YtFMJz4pMhhOH92zZbOKAvx/l5zaRz5TQff0lTa5G6w=
|
||||
github.com/openziti/channel/v2 v2.0.81/go.mod h1:d+2+i51uXi8J6M8OsazLJg1OzSPmL+sOyzdiRUmra3I=
|
||||
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.326 h1:Y5Z3DGac2ghXivh04S/3HgTymp1UliTaSlLn5fo3qdg=
|
||||
github.com/openziti/edge v0.24.326/go.mod h1:vI2HZMZa+PdiIjf25xpg19lR32X+ouLbY3idOIw+Dac=
|
||||
github.com/openziti/edge-api v0.25.25 h1:1S7L9JsvXuzd8nULZEPNgafPfhnHQY4Hhqj8B00CKTw=
|
||||
github.com/openziti/edge-api v0.25.25/go.mod h1:aDUHHxOGtxFXnoDaTXpNF6gq+tbDkWCURP5yaEJbdm0=
|
||||
github.com/openziti/fabric v0.23.35 h1:SxdMC88E5PCm7SoE8q0q8yOaO2fC1RiJES/sOYymVe4=
|
||||
github.com/openziti/fabric v0.23.35/go.mod h1:eFG042f6bv/vZSOmp48pVAqEntCfkkMJCVAbNG9GHno=
|
||||
github.com/openziti/foundation/v2 v2.0.25 h1:tGb9wdu6KCpO49RJ3HX2ClOVHf8gdntplIh/7CEVaM4=
|
||||
github.com/openziti/foundation/v2 v2.0.25/go.mod h1:EOqea8Q1wXd4hS9MxFYM6ngDgenKGxz8c+CJ8Svr7BI=
|
||||
github.com/openziti/identity v1.0.56 h1:h8SzatjWa3TCpIG6/holKUTHSKtNAJ1MuK5CCY31ZOw=
|
||||
github.com/openziti/identity v1.0.56/go.mod h1:5h08wngbQjENt6sWPp+GyWpqNkeSPwMdDFPFONf6EBE=
|
||||
github.com/openziti/edge v0.24.345 h1:7anwwljort9FsriHoBAiz6DOOkPJV2XCzZJLmn/TxFo=
|
||||
github.com/openziti/edge v0.24.345/go.mod h1:pjU6bCSfaAVQLajeKB/ypGYoeZnIuHw7Y75kX37WHTw=
|
||||
github.com/openziti/edge-api v0.25.29 h1:DbZ0GKpch9ik+XnC0qoP1dOg1AmgUEeWH4VIyOIehrQ=
|
||||
github.com/openziti/edge-api v0.25.29/go.mod h1:mqYquh1RYvHjV/M9MGO4Ng0Xq9ixAH8o8cT5kw5XCWY=
|
||||
github.com/openziti/fabric v0.23.39 h1:t6npkfBsPr+8GvF9X/rTLHxGsce5FTa4NoA80MInxYc=
|
||||
github.com/openziti/fabric v0.23.39/go.mod h1:px2zUzQrgObmv6sdXgGJ028Wr45aGcgpFvfIP/qgDFo=
|
||||
github.com/openziti/foundation/v2 v2.0.26 h1:RISGM97aIFnnEkxrcVsO6fnGg9W4ByydSnqWAVkJAqY=
|
||||
github.com/openziti/foundation/v2 v2.0.26/go.mod h1:ngdQq0KLGIDfzkQQzu1BQSMLNrsBUXdziGvsJns4cFM=
|
||||
github.com/openziti/identity v1.0.57 h1:tVFYGMVFINKWi4RV75yEz7hbDuRPqRnG+AiFAEtvXHQ=
|
||||
github.com/openziti/identity v1.0.57/go.mod h1:cwkBpiIy1C4S6r+dD0jPKq9mS4aj7NuABt1WJwxHon8=
|
||||
github.com/openziti/jwks v1.0.3 h1:hf8wkb+Cg4nH/HM0KROFd7u+C3DkRVcFZJ7tDV+4icc=
|
||||
github.com/openziti/jwks v1.0.3/go.mod h1:t4xxq8vlXGsPn29kiQVnZBBDDnEoOFqtJoHibkJunQQ=
|
||||
github.com/openziti/metrics v1.2.26 h1:8q93bK1MYAdR9ODr0qNAJ1/BQpFtHYdxZiH0Fc9LLo8=
|
||||
github.com/openziti/metrics v1.2.26/go.mod h1:Z1c9pNHQr+yZODDsOeim93rYg5Hw1kPsuHi3zdy70dA=
|
||||
github.com/openziti/runzmd v1.0.25 h1:/6LVurAnU8Hl4Tcm0FcncNicTIo3gwu2eMCiViPqzNQ=
|
||||
github.com/openziti/runzmd v1.0.25/go.mod h1:pYnqjgH8/geMdzU8OIxamU8RlRdRaOh00mWBxDoXPDo=
|
||||
github.com/openziti/sdk-golang v0.20.58 h1:cHyzEQiZSsaeJbN/lYqAY0i5fDlt9wlFH7LtG+0qFwE=
|
||||
github.com/openziti/sdk-golang v0.20.58/go.mod h1:L6mGhnsxwDuVBE7ByCVLf2kPymf5l9l6WRUMA3SfZeo=
|
||||
github.com/openziti/secretstream v0.1.8 h1:AgPHLDuXTiM1apHQmBvwvSW1vbQqAm7wUJDHqkQ/6Nk=
|
||||
github.com/openziti/secretstream v0.1.8/go.mod h1:qcF8EmSX5SAT8k2pzsDI4bWugopv9AA+ltgWDrcAAEw=
|
||||
github.com/openziti/storage v0.2.7 h1:rQVVclnkCZyr4XXKMypIJf46HFGJX5KEYWEycUhWvtg=
|
||||
github.com/openziti/storage v0.2.7/go.mod h1:bGhUs/0XDsEJnTtNTpFAIh1X4lfdKvHu0m+8Z1TFVyM=
|
||||
github.com/openziti/transport/v2 v2.0.90 h1:QoddlajGdyOZZDTxhgapkd3wucosTVGJn8z5Pt3ltOM=
|
||||
github.com/openziti/transport/v2 v2.0.90/go.mod h1:q8zNDI7lYqA4flQVJwJZQg8HJVNcG7kIFLnH9qfeHDc=
|
||||
github.com/openziti/metrics v1.2.27 h1:Dw/FSC+QvyqkDmLeSsxzCRD0aFPwgivwQyQsxzlAgoQ=
|
||||
github.com/openziti/metrics v1.2.27/go.mod h1:mhP2c8MTGL0C5H8yAsNwBq88SW1C3Mx1ICVO6heMbJQ=
|
||||
github.com/openziti/runzmd v1.0.26 h1:bWJhTD0jwkRi01e/fY72UbJ+x4iNEzE2Lx5chNp1sCU=
|
||||
github.com/openziti/runzmd v1.0.26/go.mod h1:Lj1MpR8DXhVKxw6MdaSU0bD6Wh8CwzNpEw5Qm/NSWfM=
|
||||
github.com/openziti/sdk-golang v0.20.67 h1:atesqk/yUAM1sBe5zaMwKrRBYLzeEtUz7BQn72hFyR8=
|
||||
github.com/openziti/sdk-golang v0.20.67/go.mod h1:zieqsVAB/kawb/Ske7zkArUG2TGUIOdcHyVh79NcnBA=
|
||||
github.com/openziti/secretstream v0.1.9 h1:mNCMr9oYQ4JAfdU4iU79i3si4vqVVsErzrhXuKC7R3M=
|
||||
github.com/openziti/secretstream v0.1.9/go.mod h1:tq0XVUwFAT0TwfBpILp4KaeEnasduNTUixOIrmUZUGA=
|
||||
github.com/openziti/storage v0.2.8 h1:Rbnj6LKfcdR644kXrS4bF0ot+z17zDGCiUifd1eOvZ0=
|
||||
github.com/openziti/storage v0.2.8/go.mod h1:Cd1YuhqSLbVI0vaujTQl/cHgPCECapLGh/s4bMgKczM=
|
||||
github.com/openziti/transport/v2 v2.0.91 h1:eEWRSoy9+tDf6K+jJcl5TSHm6GX7IKiBQg8XxmDyELQ=
|
||||
github.com/openziti/transport/v2 v2.0.91/go.mod h1:FDGkg110LTdmz4Kp1zucomvc++ld7UKXFfNWBTwQIlQ=
|
||||
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=
|
||||
@@ -1054,8 +1055,8 @@ golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPh
|
||||
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/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
|
||||
golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g=
|
||||
golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0=
|
||||
golang.org/x/crypto v0.10.0 h1:LKqV2xt9+kDzSTfOhx4FrkEBcMrAgHSYgzywV9zcGmM=
|
||||
golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I=
|
||||
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=
|
||||
@@ -1072,8 +1073,8 @@ golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMx
|
||||
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/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
||||
golang.org/x/image v0.7.0 h1:gzS29xtG1J5ybQlv0PuyfE3nmc6R4qB73m6LUUmvFuw=
|
||||
golang.org/x/image v0.7.0/go.mod h1:nd/q4ef1AKKYl/4kft7g+6UyGbdiqWqTP1ZAbRoV7Rg=
|
||||
golang.org/x/image v0.8.0 h1:agUcRXV/+w6L9ryntYYsF2x9fQTMd4T8fiiYXAVW6Jg=
|
||||
golang.org/x/image v0.8.0/go.mod h1:PwLxp3opCYg4WR2WO9P0L6ESnsD6bLTWcw8zanLMVFM=
|
||||
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=
|
||||
@@ -1157,8 +1158,8 @@ golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qx
|
||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
|
||||
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||
golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M=
|
||||
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
|
||||
golang.org/x/net v0.11.0 h1:Gi2tvZIJyBtO9SDr1q9h5hEQCp/4L2RQ+ar0qjx2oNU=
|
||||
golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ=
|
||||
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=
|
||||
@@ -1188,8 +1189,8 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJ
|
||||
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.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI=
|
||||
golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E=
|
||||
golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
|
||||
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=
|
||||
@@ -1278,14 +1279,15 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU=
|
||||
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.9.0 h1:KS/R3tvhPqvJvwcKfnBHJwwthS11LRhmM5D59eEXa0s=
|
||||
golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
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/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
|
||||
golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols=
|
||||
golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
|
||||
golang.org/x/term v0.9.0 h1:GRRCnKYhdQrD8kfRAdQ6Zcw1P0OcELxGLKJvtjVMZ28=
|
||||
golang.org/x/term v0.9.0/go.mod h1:M6DEAAIenWoTxdKrOltXcmDY3rSplQUkrvaDU5FcQyo=
|
||||
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=
|
||||
@@ -1297,8 +1299,8 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE=
|
||||
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
|
||||
golang.org/x/text v0.10.0 h1:UpjohKhiEgNc0CSauXmwYftY1+LlaC75SJwh0SgCX58=
|
||||
golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
|
||||
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=
|
||||
|
||||
@@ -103,7 +103,7 @@ Ziti Controller:
|
||||
|
||||
Ziti Edge Router:
|
||||
|
||||
routerName=edge-router; docker run -d --name "${zitinw}-${routerName}" --rm -e ZITI_EDGE_ROUTER_RAWNAME="${routerName}" --volume "${zitinw_shared}":/openziti/shared -it --network="${zitinw}" --hostname "${routerName}" --network-alias="${routerName}" --rm openziti/quickstart /openziti/scripts/run-router.sh edge
|
||||
routerName=edge-router; docker run -d --name "${zitinw}-${routerName}" --rm -e ZITI_EDGE_ROUTER_NAME="${routerName}" --volume "${zitinw_shared}":/openziti/shared -it --network="${zitinw}" --hostname "${routerName}" --network-alias="${routerName}" --rm openziti/quickstart /openziti/scripts/run-router.sh edge
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -7,20 +7,17 @@ ZITI_VERSION=latest
|
||||
ZITI_EDGE_IDENTITY_ENROLLMENT_DURATION=10080
|
||||
ZITI_EDGE_ROUTER_ENROLLMENT_DURATION=10080
|
||||
|
||||
# controller address/port information
|
||||
ZITI_CONTROLLER_RAWNAME=ziti-controller
|
||||
#ZITI_CONTROLLER_HOSTNAME=advertised.address
|
||||
#ZITI_CTRL_PORT=8440
|
||||
# controller name, address/port information
|
||||
ZITI_CTRL_NAME=ziti-controller
|
||||
ZITI_CTRL_EDGE_ADVERTISED_ADDRESS=ziti-edge-controller
|
||||
#ZITI_CTRL_EDGE_ADVERTISED_PORT=1280
|
||||
|
||||
# Leave password blank to have a unique value generated or set the password explicitly
|
||||
ZITI_PWD=
|
||||
|
||||
ZITI_EDGE_CONTROLLER_RAWNAME=ziti-edge-controller
|
||||
#ZITI_EDGE_CONTROLLER_HOSTNAME=advertised.address
|
||||
#ZITI_EDGE_CONTROLLER_PORT=8441
|
||||
#ZITI_EDGE_CONTROLLER_IP_OVERRIDE=172.17.0.1
|
||||
|
||||
# router address/port information
|
||||
#ZITI_EDGE_ROUTER_RAWNAME=advertised.address
|
||||
#ZITI_EDGE_ROUTER_PORT=8442
|
||||
#ZITI_EDGE_ROUTER_ADVERTISED_HOST=advertised.address
|
||||
#ZITI_EDGE_ROUTER_PORT=3022
|
||||
#ZITI_EDGE_ROUTER_IP_OVERRIDE=172.17.0.1
|
||||
|
||||
@@ -5,8 +5,8 @@ services:
|
||||
env_file:
|
||||
- ./.env
|
||||
ports:
|
||||
- ${ZITI_EDGE_CONTROLLER_PORT:-1280}:${ZITI_EDGE_CONTROLLER_PORT:-1280}
|
||||
- ${ZITI_CTRL_PORT:-6262}:${ZITI_CTRL_PORT:-6262}
|
||||
- ${ZITI_CTRL_EDGE_ADVERTISED_PORT:-1280}:${ZITI_CTRL_EDGE_ADVERTISED_PORT:-1280}
|
||||
- ${ZITI_CTRL_LISTENER_PORT:-6262}:${ZITI_CTRL_LISTENER_PORT:-6262}
|
||||
environment:
|
||||
- ZITI_EDGE_IDENTITY_ENROLLMENT_DURATION=${ZITI_EDGE_IDENTITY_ENROLLMENT_DURATION}
|
||||
- ZITI_EDGE_ROUTER_ENROLLMENT_DURATION=${ZITI_EDGE_ROUTER_ENROLLMENT_DURATION}
|
||||
@@ -28,8 +28,7 @@ services:
|
||||
depends_on:
|
||||
- ziti-controller
|
||||
environment:
|
||||
- ZITI_CONTROLLER_RAWNAME="${ZITI_CONTROLLER_RAWNAME}"
|
||||
- ZITI_EDGE_CONTROLLER_RAWNAME="${ZITI_EDGE_CONTROLLER_RAWNAME}"
|
||||
- ZITI_CTRL_EDGE_ADVERTISED_ADDRESS="${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS}"
|
||||
env_file:
|
||||
- ./.env
|
||||
networks:
|
||||
@@ -51,10 +50,10 @@ services:
|
||||
depends_on:
|
||||
- ziti-controller
|
||||
environment:
|
||||
- ZITI_CONTROLLER_RAWNAME="${ZITI_CONTROLLER_RAWNAME}"
|
||||
- ZITI_EDGE_CONTROLLER_RAWNAME="${ZITI_EDGE_CONTROLLER_RAWNAME}"
|
||||
- ZITI_EDGE_ROUTER_RAWNAME=${ZITI_EDGE_ROUTER_RAWNAME:-ziti-edge-router}
|
||||
- ZITI_CTRL_EDGE_ADVERTISED_ADDRESS="${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS}"
|
||||
- ZITI_EDGE_ROUTER_NAME=${ZITI_EDGE_ROUTER_NAME:-ziti-edge-router}
|
||||
- ZITI_EDGE_ROUTER_ROLES=public
|
||||
- ZITI_EDGE_ROUTER_ADVERTISED_HOST=${ZITI_EDGE_ROUTER_ADVERTISED_HOST:-ziti-edge-router}
|
||||
ports:
|
||||
- ${ZITI_EDGE_ROUTER_PORT:-3022}:${ZITI_EDGE_ROUTER_PORT:-3022}
|
||||
networks:
|
||||
@@ -70,11 +69,11 @@ services:
|
||||
depends_on:
|
||||
- ziti-controller
|
||||
environment:
|
||||
- ZITI_CONTROLLER_RAWNAME="${ZITI_CONTROLLER_RAWNAME}"
|
||||
- ZITI_EDGE_CONTROLLER_RAWNAME="${ZITI_EDGE_CONTROLLER_RAWNAME}"
|
||||
- ZITI_EDGE_ROUTER_RAWNAME=ziti-edge-router-wss
|
||||
- ZITI_CTRL_EDGE_ADVERTISED_ADDRESS="${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS}"
|
||||
- ZITI_EDGE_ROUTER_NAME=ziti-edge-router-wss
|
||||
- ZITI_EDGE_ROUTER_PORT=3023
|
||||
- ZITI_EDGE_ROUTER_ROLES=public
|
||||
- ZITI_EDGE_ROUTER_ADVERTISED_HOST=ziti-edge-router-wss
|
||||
ports:
|
||||
- 3023:3023
|
||||
networks:
|
||||
@@ -90,9 +89,9 @@ services:
|
||||
depends_on:
|
||||
- ziti-controller
|
||||
environment:
|
||||
- ZITI_CONTROLLER_RAWNAME="${ZITI_CONTROLLER_RAWNAME}"
|
||||
- ZITI_EDGE_CONTROLLER_RAWNAME="${ZITI_EDGE_CONTROLLER_RAWNAME}"
|
||||
- ZITI_EDGE_ROUTER_RAWNAME=ziti-fabric-router-br
|
||||
- ZITI_CTRL_EDGE_ADVERTISED_ADDRESS="${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS}"
|
||||
- ZITI_EDGE_ROUTER_NAME=ziti-fabric-router-br
|
||||
- ZITI_EDGE_ROUTER_ADVERTISED_HOST=ziti-fabric-router-br
|
||||
#ports:
|
||||
# - 3024:3024
|
||||
networks:
|
||||
@@ -108,9 +107,9 @@ services:
|
||||
depends_on:
|
||||
- ziti-controller
|
||||
environment:
|
||||
- ZITI_CONTROLLER_RAWNAME="${ZITI_CONTROLLER_RAWNAME}"
|
||||
- ZITI_EDGE_CONTROLLER_RAWNAME="${ZITI_EDGE_CONTROLLER_RAWNAME}"
|
||||
- ZITI_EDGE_ROUTER_RAWNAME=ziti-private-red
|
||||
- ZITI_CTRL_EDGE_ADVERTISED_ADDRESS="${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS}"
|
||||
- ZITI_EDGE_ROUTER_NAME=ziti-private-red
|
||||
- ZITI_EDGE_ROUTER_ADVERTISED_HOST=ziti-private-red
|
||||
#ports:
|
||||
# - 3025:3025
|
||||
networks:
|
||||
@@ -125,9 +124,9 @@ services:
|
||||
depends_on:
|
||||
- ziti-controller
|
||||
environment:
|
||||
- ZITI_CONTROLLER_RAWNAME="${ZITI_CONTROLLER_RAWNAME}"
|
||||
- ZITI_EDGE_CONTROLLER_RAWNAME="${ZITI_EDGE_CONTROLLER_RAWNAME}"
|
||||
- ZITI_EDGE_ROUTER_RAWNAME=ziti-private-blue
|
||||
- ZITI_CTRL_EDGE_ADVERTISED_ADDRESS="${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS}"
|
||||
- ZITI_EDGE_ROUTER_NAME=ziti-private-blue
|
||||
- ZITI_EDGE_ROUTER_ADVERTISED_HOST=ziti-private-blue
|
||||
#ports:
|
||||
# - 3026:3026
|
||||
networks:
|
||||
@@ -151,8 +150,8 @@ services:
|
||||
ziti-console:
|
||||
image: openziti/zac
|
||||
environment:
|
||||
- ZAC_SERVER_CERT_CHAIN=/persistent/pki/${ZITI_EDGE_CONTROLLER_HOSTNAME:-ziti-controller}-intermediate/certs/${ZITI_EDGE_CONTROLLER_HOSTNAME:-ziti-controller}-server.cert
|
||||
- ZAC_SERVER_KEY=/persistent/pki/${ZITI_EDGE_CONTROLLER_HOSTNAME:-ziti-controller}-intermediate/keys/${ZITI_EDGE_CONTROLLER_HOSTNAME:-ziti-controller}-server.key
|
||||
- ZAC_SERVER_CERT_CHAIN=/persistent/pki/${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS:-ziti-controller}-intermediate/certs/${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS:-ziti-controller}-server.cert
|
||||
- ZAC_SERVER_KEY=/persistent/pki/${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS:-ziti-controller}-intermediate/keys/${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS:-ziti-controller}-server.key
|
||||
- PORTTLS=8443
|
||||
ports:
|
||||
- 1408:1408
|
||||
|
||||
@@ -32,7 +32,7 @@ ENV ZITI_BIN_ROOT="${ZITI_BIN_DIR}"
|
||||
ENV ZITI_SCRIPTS=/var/openziti/scripts
|
||||
|
||||
# copy the ziti binaries to a directory already on the path
|
||||
COPY --chown=ziti --from=fetch-ziti-bins /ziti-bin "${ZITI_BIN_DIR}"
|
||||
COPY --chown=ziti ziti.ignore "${ZITI_BIN_DIR}"
|
||||
COPY --chown=ziti ziti-cli-functions.sh "${ZITI_SCRIPTS}/"
|
||||
COPY --chown=ziti run-controller.sh "${ZITI_SCRIPTS}/"
|
||||
COPY --chown=ziti run-router.sh "${ZITI_SCRIPTS}/"
|
||||
@@ -40,4 +40,4 @@ COPY --chown=ziti run-with-ziti-cli.sh "${ZITI_SCRIPTS}/"
|
||||
COPY --chown=ziti access-control.sh "${ZITI_SCRIPTS}/"
|
||||
COPY --chown=ziti run-router-external.sh "${ZITI_SCRIPTS}/"
|
||||
|
||||
RUN /bin/bash -c "source ${ZITI_SCRIPTS}/ziti-cli-functions.sh; ziti_createEnvFile; echo source ${ZITI_HOME}/ziti.env >> ~/.bashrc"
|
||||
RUN /bin/bash -c "source ${ZITI_SCRIPTS}/ziti-cli-functions.sh; echo source ${ZITI_HOME}/ziti.env >> ~/.bashrc"
|
||||
|
||||
@@ -1,21 +1,19 @@
|
||||
#!/bin/bash
|
||||
|
||||
ziti_controller_cfg="${ZITI_HOME}/ziti-edge-controller.yaml"
|
||||
|
||||
export ZITI_CONTROLLER_RAWNAME=ziti-controller
|
||||
export ZITI_EDGE_CONTROLLER_RAWNAME=ziti-edge-controller
|
||||
export ZITI_CTRL_EDGE_ADVERTISED_ADDRESS=ziti-edge-controller
|
||||
|
||||
. "${ZITI_SCRIPTS}/ziti-cli-functions.sh"
|
||||
|
||||
# access-control.init is created by ziti-controller-init-container after initial controller startup
|
||||
echo "ZITI_CTRL_EDGE_ADVERTISED_ADDRESS is ${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS}"
|
||||
if [ ! -f "${ZITI_HOME}/access-control.init" ]; then
|
||||
generateEnvFile
|
||||
setupEnvironment
|
||||
persistEnvironmentValues
|
||||
fi
|
||||
. "${ZITI_HOME}/ziti.env"
|
||||
. ${ZITI_HOME}/ziti.env
|
||||
|
||||
# create pki
|
||||
createPki
|
||||
|
||||
if [ ! -f "${ziti_controller_cfg}" ]; then
|
||||
echo " "
|
||||
echo "${ziti_controller_cfg} doesn't exist. Generating config file"
|
||||
@@ -29,9 +27,9 @@ else
|
||||
fi
|
||||
|
||||
# initialize the database with the admin user:
|
||||
"${ZITI_BIN_DIR}/ziti-controller" edge init "${ZITI_HOME}/ziti-edge-controller.yaml" -u "${ZITI_USER}" -p "${ZITI_PWD}"
|
||||
"${ZITI_BIN_DIR}/ziti" controller edge init "${ZITI_HOME}/${ZITI_CTRL_NAME}.yaml" -u "${ZITI_USER}" -p "${ZITI_PWD}"
|
||||
|
||||
# create a place for the internal db
|
||||
mkdir -p $ZITI_HOME/db
|
||||
|
||||
"${ZITI_BIN_DIR}/ziti-controller" run "${ZITI_HOME}/ziti-edge-controller.yaml"
|
||||
"${ZITI_BIN_DIR}/ziti" controller run "${ZITI_HOME}/${ZITI_CTRL_NAME}.yaml"
|
||||
|
||||
@@ -7,81 +7,81 @@ sleep 5
|
||||
. "${ZITI_SCRIPTS}/ziti-cli-functions.sh"
|
||||
|
||||
# If we have not defined these, then no point going further - so dont
|
||||
if [[ "${ZITI_EDGE_ROUTER_HOSTNAME}" == "" ]]; then echo "ERROR: Missing ZITI_EDGE_ROUTER_HOSTNAME definition" >&2; exit; fi
|
||||
export ZITI_EDGE_ROUTER_RAWNAME=${ZITI_EDGE_ROUTER_RAWNAME_OVERRIDE}
|
||||
if [[ "${ZITI_ROUTER_ADVERTISED_ADDRESS}" == "" ]]; then echo "ERROR: Missing ZITI_ROUTER_ADVERTISED_ADDRESS definition" >&2; exit; fi
|
||||
export ZITI_EDGE_ROUTER_NAME=${ZITI_EDGE_ROUTER_NAME_OVERRIDE}
|
||||
|
||||
echo "ZITI_EDGE_ROUTER_HOSTNAME = ${ZITI_EDGE_ROUTER_HOSTNAME}"
|
||||
echo "ZITI_ROUTER_ADVERTISED_ADDRESS = ${ZITI_ROUTER_ADVERTISED_ADDRESS}"
|
||||
|
||||
|
||||
# If we dont have a key file, then we assume we haven't enrolled, so lets do that
|
||||
if [ ! -f ${ZITI_EDGE_ROUTER_HOSTNAME}.jwt ]; then
|
||||
if [ ! -f ${ZITI_ROUTER_ADVERTISED_ADDRESS}.jwt ]; then
|
||||
|
||||
# May have been a bad attempt before, so lets clean up
|
||||
rm -f ${ZITI_HOME}/${ZITI_EDGE_ROUTER_HOSTNAME}*
|
||||
rm -f ${ZITI_HOME}/${ZITI_ROUTER_ADVERTISED_ADDRESS}*
|
||||
|
||||
|
||||
# If we have override variables then override the base variable
|
||||
# This is required as the .bashrc loads the env file which clobbers passed in varibles
|
||||
if [[ "${ZITI_EDGE_ROUTER_RAWNAME_OVERRIDE}" == "" ]]; then echo "ERROR: Missing ZITI_EDGE_ROUTER_RAWNAME_OVERRIDE definition" >&2; exit; fi
|
||||
# May have been a bad attempt before, so lets clean up
|
||||
rm -f ${ZITI_HOME}/${ZITI_EDGE_ROUTER_RAWNAME}*
|
||||
rm -f ${ZITI_HOME}/${ZITI_EDGE_ROUTER_NAME}*
|
||||
|
||||
if [[ ${ZITI_CTRL_ADVERTISED_ADDRESS_OVERRIDE} != "" ]]; then export ZITI_CTRL_ADVERTISED_ADDRESS=${ZITI_CTRL_ADVERTISED_ADDRESS_OVERRIDE}; fi
|
||||
if [[ ${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS} != "" ]]; then export ZITI_CTRL_EDGE_ADVERTISED_ADDRESS=${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS}; fi
|
||||
if [[ ${ZITI_USER_OVERRIDE} != "" ]]; then export ZITI_USER=${ZITI_USER_OVERRIDE}; fi
|
||||
if [[ ${ZITI_PWD_OVERRIDE} != "" ]]; then export ZITI_PWD=${ZITI_PWD_OVERRIDE}; fi
|
||||
if [[ ${ZITI_EDGE_CONTROLLER_PORT_OVERRIDE} != "" ]]; then export ZITI_EDGE_CONTROLLER_PORT=${ZITI_EDGE_CONTROLLER_PORT_OVERRIDE}; fi
|
||||
if [[ ${ZITI_EDGE_ROUTER_HOSTNAME} == "" ]]; then export ZITI_EDGE_ROUTER_HOSTNAME=${ZITI_EDGE_ROUTER_RAWNAME}; fi
|
||||
if [[ ${ZITI_EDGE_CONTROLLER_PORT_OVERRIDE} != "" ]]; then export ZITI_CTRL_EDGE_ADVERTISED_PORT=${ZITI_EDGE_CONTROLLER_PORT_OVERRIDE}; fi
|
||||
if [[ ${ZITI_ROUTER_ADVERTISED_ADDRESS} == "" ]]; then export ZITI_ROUTER_ADVERTISED_ADDRESS=${ZITI_EDGE_ROUTER_NAME}; fi
|
||||
|
||||
# First off - lets make sure we have what we need
|
||||
if [[ ${ZITI_USER} == "" ]] || [[ ${ZITI_PWD} == "" ]]; then echo "ERROR: Need ZITI_USER and ZITI_PWD defined" >&2; exit; fi
|
||||
if [[ "$1" == "" ]]; then echo "ERROR: Have not defined router type. It should be one of edge,wss,fabric or private." >&2; exit; fi
|
||||
if [[ "${ZITI_CTRL_ADVERTISED_ADDRESS}" == "" ]]; then echo "ERROR: Missing ZITI_CTRL_ADVERTISED_ADDRESS_OVERRIDE definition" >&2; exit; fi
|
||||
if [[ "${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS}" == "" ]]; then echo "ERROR: Missing ZITI_CTRL_EDGE_ADVERTISED_ADDRESS definition" >&2; exit; fi
|
||||
if [[ "${ZITI_EDGE_ROUTER_PORT-}" == "" ]]; then export ZITI_EDGE_ROUTER_PORT="3022"; fi
|
||||
if [[ "${ZITI_EDGE_ROUTER_ROLES}" == "" ]]; then export ZITI_EDGE_ROUTER_ROLES="${ZITI_EDGE_ROUTER_HOSTNAME}"; fi
|
||||
if [[ "${ZITI_EDGE_ROUTER_ROLES}" == "" ]]; then export ZITI_EDGE_ROUTER_ROLES="${ZITI_ROUTER_ADVERTISED_ADDRESS}"; fi
|
||||
|
||||
echo "ZITI_EDGE_ROUTER_RAWNAME = ${ZITI_EDGE_ROUTER_RAWNAME}"
|
||||
echo "ZITI_EDGE_ROUTER_NAME = ${ZITI_EDGE_ROUTER_NAME}"
|
||||
echo "ZITI_EDGE_ROUTER_ROLES = ${ZITI_EDGE_ROUTER_ROLES}"
|
||||
echo "ZITI_EDGE_ROUTER_PORT = ${ZITI_EDGE_ROUTER_PORT}"
|
||||
echo "ZITI_CTRL_ADVERTISED_ADDRESS = ${ZITI_CTRL_ADVERTISED_ADDRESS}"
|
||||
echo "ZITI_CTRL_PORT = ${ZITI_CTRL_PORT}"
|
||||
echo "ZITI_CTRL_EDGE_ADVERTISED_ADDRESS = ${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS}"
|
||||
echo "ZITI_CTRL_LISTENER_PORT = ${ZITI_CTRL_LISTENER_PORT}"
|
||||
echo "ZITI_USER = ${ZITI_USER}"
|
||||
if [[ ! "${ZITI_PWD}" == "" ]]; then echo "ZITI_PWD = (obscured)"; fi
|
||||
|
||||
# Login to the cloud controller
|
||||
"${ZITI_BIN_DIR}/ziti" edge login -y ${ZITI_CTRL_ADVERTISED_ADDRESS}:${ZITI_EDGE_CONTROLLER_PORT} -u ${ZITI_USER} -p ${ZITI_PWD}
|
||||
"${ZITI_BIN_DIR}/ziti" edge login -y ${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS}:${ZITI_CTRL_EDGE_ADVERTISED_PORT} -u ${ZITI_USER} -p ${ZITI_PWD}
|
||||
|
||||
if [[ "$1" == "edge" ]]; then
|
||||
echo "CREATING EDGE ROUTER CONFIG"
|
||||
createEdgeRouterConfig "${ZITI_EDGE_ROUTER_RAWNAME}"
|
||||
createEdgeRouterConfig "${ZITI_EDGE_ROUTER_NAME}"
|
||||
fi
|
||||
if [[ "$1" == "wss" ]]; then
|
||||
echo "CREATING EDGE ROUTER WSS CONFIG"
|
||||
createEdgeRouterWssConfig "${ZITI_EDGE_ROUTER_RAWNAME}"
|
||||
createEdgeRouterWssConfig "${ZITI_EDGE_ROUTER_NAME}"
|
||||
fi
|
||||
if [[ "$1" == "fabric" ]]; then
|
||||
echo "CREATING FABRIC ROUTER CONFIG"
|
||||
createFabricRouterConfig "${ZITI_EDGE_ROUTER_RAWNAME}"
|
||||
createFabricRouterConfig "${ZITI_EDGE_ROUTER_NAME}"
|
||||
fi
|
||||
if [[ "$1" == "private" ]]; then
|
||||
echo "CREATING PRIVATE ROUTER CONFIG"
|
||||
createPrivateRouterConfig "${ZITI_EDGE_ROUTER_RAWNAME}"
|
||||
createPrivateRouterConfig "${ZITI_EDGE_ROUTER_NAME}"
|
||||
fi
|
||||
|
||||
mv ${ZITI_HOME}/${ZITI_EDGE_ROUTER_RAWNAME}.yaml ${ZITI_HOME}/${ZITI_EDGE_ROUTER_HOSTNAME}.yaml
|
||||
mv ${ZITI_HOME}/${ZITI_EDGE_ROUTER_NAME}.yaml ${ZITI_HOME}/${ZITI_ROUTER_ADVERTISED_ADDRESS}.yaml
|
||||
|
||||
echo "---------- Creating edge-router ${ZITI_EDGE_ROUTER_RAWNAME}...."
|
||||
found=$(${ZITI_BIN_DIR}/ziti edge list edge-routers 'name = "'"${ZITI_EDGE_ROUTER_HOSTNAME}"'"' | grep -c "${ZITI_EDGE_ROUTER_HOSTNAME}")
|
||||
echo "---------- Creating edge-router ${ZITI_EDGE_ROUTER_NAME}...."
|
||||
found=$(${ZITI_BIN_DIR}/ziti edge list edge-routers 'name = "'"${ZITI_ROUTER_ADVERTISED_ADDRESS}"'"' | grep -c "${ZITI_ROUTER_ADVERTISED_ADDRESS}")
|
||||
if [[ found -gt 0 ]]; then
|
||||
echo "---------- Found existing edge-router ${ZITI_EDGE_ROUTER_HOSTNAME}...."
|
||||
echo "---------- Found existing edge-router ${ZITI_ROUTER_ADVERTISED_ADDRESS}...."
|
||||
else
|
||||
"${ZITI_BIN_DIR}/ziti" edge create edge-router "${ZITI_EDGE_ROUTER_HOSTNAME}" -o "${ZITI_HOME}/${ZITI_EDGE_ROUTER_HOSTNAME}.jwt" -t -a "${ZITI_EDGE_ROUTER_ROLES}"
|
||||
"${ZITI_BIN_DIR}/ziti" edge create edge-router "${ZITI_ROUTER_ADVERTISED_ADDRESS}" -o "${ZITI_HOME}/${ZITI_ROUTER_ADVERTISED_ADDRESS}.jwt" -t -a "${ZITI_EDGE_ROUTER_ROLES}"
|
||||
sleep 1
|
||||
echo "---------- Enrolling edge-router ${ZITI_EDGE_ROUTER_HOSTNAME}...."
|
||||
"${ZITI_BIN_DIR}/ziti-router" enroll "${ZITI_HOME}/${ZITI_EDGE_ROUTER_HOSTNAME}.yaml" --jwt "${ZITI_HOME}/${ZITI_EDGE_ROUTER_HOSTNAME}.jwt"
|
||||
echo "---------- Enrolling edge-router ${ZITI_ROUTER_ADVERTISED_ADDRESS}...."
|
||||
"${ZITI_BIN_DIR}/ziti-router" enroll "${ZITI_HOME}/${ZITI_ROUTER_ADVERTISED_ADDRESS}.yaml" --jwt "${ZITI_HOME}/${ZITI_ROUTER_ADVERTISED_ADDRESS}.jwt"
|
||||
echo ""
|
||||
fi
|
||||
fi
|
||||
|
||||
# Run the router
|
||||
"${ZITI_BIN_DIR}/ziti-router" run "${ZITI_HOME}/${ZITI_EDGE_ROUTER_HOSTNAME}.yaml" > "${ZITI_HOME}/ziti-${ZITI_EDGE_ROUTER_HOSTNAME}.log"
|
||||
"${ZITI_BIN_DIR}/ziti-router" run "${ZITI_HOME}/${ZITI_ROUTER_ADVERTISED_ADDRESS}.yaml" > "${ZITI_HOME}/ziti-${ZITI_ROUTER_ADVERTISED_ADDRESS}.log"
|
||||
|
||||
|
||||
@@ -5,60 +5,53 @@ sleep 5
|
||||
|
||||
. "${ZITI_SCRIPTS}/ziti-cli-functions.sh"
|
||||
|
||||
if [[ "${ZITI_CONTROLLER_RAWNAME-}" == "" ]]; then export ZITI_CONTROLLER_RAWNAME="ziti-controller"; fi
|
||||
if [[ "${ZITI_EDGE_CONTROLLER_RAWNAME-}" == "" ]]; then export ZITI_EDGE_CONTROLLER_RAWNAME="ziti-edge-controller"; fi
|
||||
if [[ "${ZITI_EDGE_ROUTER_RAWNAME-}" == "" ]]; then
|
||||
export ZITI_EDGE_ROUTER_DESIRED_RAWNAME="${ZITI_NETWORK-}-edge-router"
|
||||
if [[ "${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS-}" == "" ]]; then export ZITI_CTRL_EDGE_ADVERTISED_ADDRESS="ziti-edge-controller"; fi
|
||||
if [[ "${ZITI_EDGE_ROUTER_NAME-}" == "" ]]; then
|
||||
ZITI_EDGE_ROUTER_DESIRED_NAME="${ZITI_NETWORK-}-edge-router"
|
||||
else
|
||||
ZITI_EDGE_ROUTER_DESIRED_RAWNAME="${ZITI_EDGE_ROUTER_RAWNAME}"
|
||||
ZITI_EDGE_ROUTER_DESIRED_NAME="${ZITI_EDGE_ROUTER_NAME}"
|
||||
fi
|
||||
if [[ "${ZITI_EDGE_ROUTER_PORT-}" == "" ]]; then export ZITI_EDGE_ROUTER_PORT="3022"; fi
|
||||
if [[ "${ZITI_EDGE_ROUTER_HOSTNAME}" == "" ]]; then export ZITI_EDGE_ROUTER_HOSTNAME="${ZITI_EDGE_ROUTER_RAWNAME}${ZITI_DOMAIN_SUFFIX}"; fi
|
||||
if [[ "${ZITI_EDGE_ROUTER_ROLES}" == "" ]]; then export ZITI_EDGE_ROUTER_ROLES="${ZITI_EDGE_ROUTER_RAWNAME}"; fi
|
||||
if [[ "${ZITI_ROUTER_ADVERTISED_ADDRESS}" == "" ]]; then export ZITI_ROUTER_ADVERTISED_ADDRESS="${ZITI_EDGE_ROUTER_NAME}${ZITI_DOMAIN_SUFFIX}"; fi
|
||||
if [[ "${ZITI_EDGE_ROUTER_ROLES}" == "" ]]; then export ZITI_EDGE_ROUTER_ROLES="${ZITI_EDGE_ROUTER_NAME}"; fi
|
||||
|
||||
. ${ZITI_HOME}/ziti.env
|
||||
|
||||
# This is a unique situation due to the env file being shared among all routers so we need to explicitly set the router
|
||||
export ZITI_EDGE_ROUTER_RAWNAME="${ZITI_EDGE_ROUTER_DESIRED_RAWNAME}"
|
||||
export ZITI_EDGE_ROUTER_NAME="${ZITI_EDGE_ROUTER_DESIRED_NAME}"
|
||||
|
||||
# shellcheck disable=SC2091
|
||||
until $(curl -s -o /dev/null --fail -k "https://${ZITI_EDGE_CTRL_ADVERTISED_HOST_PORT}"); do
|
||||
echo "waiting for https://${ZITI_EDGE_CTRL_ADVERTISED_HOST_PORT}"
|
||||
sleep 2
|
||||
done
|
||||
|
||||
createRouterPki "${ZITI_EDGE_ROUTER_RAWNAME}"
|
||||
_wait_for_controller
|
||||
|
||||
zitiLogin
|
||||
|
||||
if [[ "$1" == "edge" ]]; then
|
||||
echo "CREATING EDGE ROUTER CONFIG"
|
||||
createEdgeRouterConfig "${ZITI_EDGE_ROUTER_RAWNAME}"
|
||||
createEdgeRouterConfig "${ZITI_EDGE_ROUTER_NAME}"
|
||||
fi
|
||||
if [[ "$1" == "wss" ]]; then
|
||||
echo "CREATING EDGE ROUTER WSS CONFIG"
|
||||
createEdgeRouterWssConfig "${ZITI_EDGE_ROUTER_RAWNAME}"
|
||||
createEdgeRouterWssConfig "${ZITI_EDGE_ROUTER_NAME}"
|
||||
fi
|
||||
if [[ "$1" == "fabric" ]]; then
|
||||
echo "CREATING FABRIC ROUTER CONFIG"
|
||||
createFabricRouterConfig "${ZITI_EDGE_ROUTER_RAWNAME}"
|
||||
createFabricRouterConfig "${ZITI_EDGE_ROUTER_NAME}"
|
||||
fi
|
||||
if [[ "$1" == "private" ]]; then
|
||||
echo "CREATING PRIVATE ROUTER CONFIG"
|
||||
createPrivateRouterConfig "${ZITI_EDGE_ROUTER_RAWNAME}"
|
||||
createPrivateRouterConfig "${ZITI_EDGE_ROUTER_NAME}"
|
||||
fi
|
||||
|
||||
echo "---------- Creating edge-router ${ZITI_EDGE_ROUTER_HOSTNAME}...."
|
||||
found=$(ziti edge list edge-routers 'name = "'"${ZITI_EDGE_ROUTER_HOSTNAME}"'"' | grep -c "${ZITI_EDGE_ROUTER_HOSTNAME}")
|
||||
echo "---------- Creating edge-router ${ZITI_ROUTER_ADVERTISED_ADDRESS}...."
|
||||
found=$(ziti edge list edge-routers 'name = "'"${ZITI_ROUTER_ADVERTISED_ADDRESS}"'"' | grep -c "${ZITI_ROUTER_ADVERTISED_ADDRESS}")
|
||||
if [[ found -gt 0 ]]; then
|
||||
echo "---------- Found existing edge-router ${ZITI_EDGE_ROUTER_HOSTNAME}...."
|
||||
echo "---------- Found existing edge-router ${ZITI_ROUTER_ADVERTISED_ADDRESS}...."
|
||||
else
|
||||
"${ZITI_BIN_DIR}/ziti" edge create edge-router "${ZITI_EDGE_ROUTER_HOSTNAME}" -o "${ZITI_HOME}/${ZITI_EDGE_ROUTER_HOSTNAME}.jwt" -t -a "${ZITI_EDGE_ROUTER_ROLES}"
|
||||
"${ZITI_BIN_DIR}/ziti" edge create edge-router "${ZITI_ROUTER_ADVERTISED_ADDRESS}" -o "${ZITI_HOME}/${ZITI_ROUTER_ADVERTISED_ADDRESS}.jwt" -t -a "${ZITI_EDGE_ROUTER_ROLES}"
|
||||
sleep 1
|
||||
echo "---------- Enrolling edge-router ${ZITI_EDGE_ROUTER_HOSTNAME}...."
|
||||
"${ZITI_BIN_DIR}/ziti-router" enroll "${ZITI_HOME}/${ZITI_EDGE_ROUTER_HOSTNAME}.yaml" --jwt "${ZITI_HOME}/${ZITI_EDGE_ROUTER_HOSTNAME}.jwt"
|
||||
echo "---------- Enrolling edge-router ${ZITI_ROUTER_ADVERTISED_ADDRESS}...."
|
||||
"${ZITI_BIN_DIR}/ziti-router" enroll "${ZITI_HOME}/${ZITI_ROUTER_ADVERTISED_ADDRESS}.yaml" --jwt "${ZITI_HOME}/${ZITI_ROUTER_ADVERTISED_ADDRESS}.jwt"
|
||||
echo ""
|
||||
fi
|
||||
|
||||
"${ZITI_BIN_DIR}/ziti-router" run "${ZITI_HOME}/${ZITI_EDGE_ROUTER_RAWNAME}.yaml" > "${ZITI_HOME}/ziti-${ZITI_EDGE_ROUTER_HOSTNAME}.log"
|
||||
"${ZITI_BIN_DIR}/ziti" router run "${ZITI_HOME}/${ZITI_ROUTER_ADVERTISED_ADDRESS}.yaml" > "${ZITI_HOME}/ziti-${ZITI_ROUTER_ADVERTISED_ADDRESS}.log"
|
||||
|
||||
|
||||
@@ -36,21 +36,16 @@ sleep 1
|
||||
|
||||
. "${ZITI_SCRIPTS}/ziti-cli-functions.sh"
|
||||
|
||||
if [[ "${ZITI_CONTROLLER_RAWNAME-}" == "" ]]; then export export ZITI_CONTROLLER_RAWNAME="ziti-controller"; fi
|
||||
if [[ "${ZITI_EDGE_CONTROLLER_RAWNAME-}" == "" ]]; then export export ZITI_EDGE_CONTROLLER_RAWNAME="ziti-edge-controller"; fi
|
||||
if [[ "${ZITI_EDGE_ROUTER_RAWNAME-}" == "" ]]; then export export ZITI_EDGE_ROUTER_RAWNAME="${ZITI_NETWORK-}-edge-router"; fi
|
||||
if [[ "${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS-}" == "" ]]; then export ZITI_CTRL_EDGE_ADVERTISED_ADDRESS="ziti-edge-controller"; fi
|
||||
if [[ "${ZITI_EDGE_ROUTER_NAME-}" == "" ]]; then export ZITI_EDGE_ROUTER_NAME="${ZITI_NETWORK-}-edge-router"; fi
|
||||
if [[ "${ZITI_EDGE_ROUTER_PORT-}" == "" ]]; then export ZITI_EDGE_ROUTER_PORT="3022"; fi
|
||||
if [[ "${ZITI_EDGE_ROUTER_HOSTNAME}" == "" ]]; then export ZITI_EDGE_ROUTER_HOSTNAME="${ZITI_EDGE_ROUTER_RAWNAME}${ZITI_DOMAIN_SUFFIX}"; fi
|
||||
if [[ "${ZITI_EDGE_ROUTER_ROLES}" == "" ]]; then export ZITI_EDGE_ROUTER_ROLES="${ZITI_EDGE_ROUTER_RAWNAME}"; fi
|
||||
if [[ "${ZITI_ROUTER_ADVERTISED_ADDRESS}" == "" ]]; then export ZITI_ROUTER_ADVERTISED_ADDRESS="${ZITI_EDGE_ROUTER_NAME}${ZITI_DOMAIN_SUFFIX}"; fi
|
||||
if [[ "${ZITI_EDGE_ROUTER_ROLES}" == "" ]]; then export ZITI_EDGE_ROUTER_ROLES="${ZITI_EDGE_ROUTER_NAME}"; fi
|
||||
|
||||
. "${ZITI_HOME}"/ziti.env
|
||||
|
||||
# Wait for the controller
|
||||
# shellcheck disable=SC2091
|
||||
until $(curl -s -o /dev/null --fail -k "https://${ZITI_EDGE_CTRL_ADVERTISED_HOST_PORT}"); do
|
||||
echo "waiting for https://${ZITI_EDGE_CTRL_ADVERTISED_HOST_PORT}"
|
||||
sleep 2
|
||||
done
|
||||
_wait_for_controller
|
||||
|
||||
echo " "
|
||||
echo "*****************************************************"
|
||||
|
||||
Executable → Regular
+18
-16
@@ -83,22 +83,22 @@ function cleanZitiController {
|
||||
}
|
||||
function initializeController {
|
||||
log_file="${ZITI_HOME-}/${ZITI_EDGE_CONTROLLER_RAWNAME}-init.log"
|
||||
"${ZITI_BIN_DIR-}/ziti-controller" edge init "${ZITI_HOME_OS_SPECIFIC}/${ZITI_EDGE_CONTROLLER_RAWNAME}.yaml" -u "${ZITI_USER-}" -p "${ZITI_PWD}" &> "${log_file}"
|
||||
echo -e "ziti-controller initialized. see $(BLUE "${log_file}") for details"
|
||||
"${ZITI_BIN_DIR-}/ziti" controller edge init "${ZITI_HOME_OS_SPECIFIC}/${ZITI_EDGE_CONTROLLER_RAWNAME}.yaml" -u "${ZITI_USER-}" -p "${ZITI_PWD}" &> "${log_file}"
|
||||
echo -e "ziti controller initialized. see $(BLUE "${log_file}") for details"
|
||||
}
|
||||
function startController {
|
||||
log_file="${ZITI_HOME-}/${ZITI_EDGE_CONTROLLER_RAWNAME}.log"
|
||||
# shellcheck disable=SC2034
|
||||
"${ZITI_BIN_DIR-}/ziti-controller" run "${ZITI_HOME_OS_SPECIFIC}/${ZITI_EDGE_CONTROLLER_RAWNAME}.yaml" &> "${log_file}" &
|
||||
"${ZITI_BIN_DIR-}/ziti" controller run "${ZITI_HOME_OS_SPECIFIC}/${ZITI_EDGE_CONTROLLER_RAWNAME}.yaml" &> "${log_file}" &
|
||||
ZITI_EXPRESS_CONTROLLER_PID=$!
|
||||
echo -e "ziti-controller started as process id: $ZITI_EXPRESS_CONTROLLER_PID. log located at: $(BLUE "${log_file}")"
|
||||
echo -e "ziti controller started as process id: $ZITI_EXPRESS_CONTROLLER_PID. log located at: $(BLUE "${log_file}")"
|
||||
}
|
||||
|
||||
function stopController {
|
||||
if [[ -n ${ZITI_EXPRESS_CONTROLLER_PID:-} ]]; then
|
||||
kill "$ZITI_EXPRESS_CONTROLLER_PID"
|
||||
# shellcheck disable=SC2181
|
||||
if [[ $? == 0 ]]; then
|
||||
if [[ $? == 0 ]]; then
|
||||
echo "Controller stopped."
|
||||
return 0
|
||||
fi
|
||||
@@ -110,10 +110,10 @@ function stopController {
|
||||
|
||||
function startRouter {
|
||||
log_file="${ZITI_HOME_OS_SPECIFIC}/${ZITI_EDGE_ROUTER_RAWNAME}.log"
|
||||
"${ZITI_BIN_DIR}/ziti-router" run "${ZITI_HOME_OS_SPECIFIC}/${ZITI_EDGE_ROUTER_RAWNAME}.yaml" > "${log_file}" 2>&1 &
|
||||
"${ZITI_BIN_DIR}/ziti" router run "${ZITI_HOME_OS_SPECIFIC}/${ZITI_EDGE_ROUTER_RAWNAME}.yaml" > "${log_file}" 2>&1 &
|
||||
ZITI_EXPRESS_EDGE_ROUTER_PID=$!
|
||||
echo -e "Express Edge Router started as process id: $ZITI_EXPRESS_EDGE_ROUTER_PID. log located at: $(BLUE "${log_file}")"
|
||||
|
||||
|
||||
}
|
||||
|
||||
function stopRouter {
|
||||
@@ -582,7 +582,7 @@ function ziti_expressConfiguration {
|
||||
sleep 1
|
||||
echo "---------- Enrolling edge-router ${ZITI_EDGE_ROUTER_RAWNAME}...."
|
||||
|
||||
"${ZITI_BIN_DIR-}/ziti-router" enroll "${ZITI_HOME_OS_SPECIFIC}/${ZITI_EDGE_ROUTER_RAWNAME}.yaml" --jwt "${ZITI_HOME_OS_SPECIFIC}/${ZITI_EDGE_ROUTER_RAWNAME}.jwt" &> "${ZITI_HOME_OS_SPECIFIC}/${ZITI_EDGE_ROUTER_RAWNAME}.enrollment.log"
|
||||
"${ZITI_BIN_DIR-}/ziti" router enroll "${ZITI_HOME_OS_SPECIFIC}/${ZITI_EDGE_ROUTER_RAWNAME}.yaml" --jwt "${ZITI_HOME_OS_SPECIFIC}/${ZITI_EDGE_ROUTER_RAWNAME}.jwt" &> "${ZITI_HOME_OS_SPECIFIC}/${ZITI_EDGE_ROUTER_RAWNAME}.enrollment.log"
|
||||
echo ""
|
||||
|
||||
stopController
|
||||
@@ -1075,7 +1075,7 @@ function ziti_createEnvFile {
|
||||
echo "ZITI_NETWORK set to: ${ZITI_NETWORK}"
|
||||
|
||||
if [[ "${ZITI_USER-}" == "" ]]; then export ZITI_USER="admin"; fi
|
||||
if [[ "${ZITI_PWD-}" == "" ]]; then
|
||||
if [[ "${ZITI_PWD-}" == "" ]]; then
|
||||
ZITI_PWD="$(LC_ALL=C tr -dc _A-Z-a-z-0-9 < /dev/urandom | head -c32)"
|
||||
echo -en "Do you want to keep the generated admin password '$ZITI_PWD'? (Y/n) "
|
||||
# shellcheck disable=SC2162
|
||||
@@ -1216,13 +1216,13 @@ function createControllerSystemdFile {
|
||||
|
||||
cat > "${output_file}" <<HeredocForSystemd
|
||||
[Unit]
|
||||
Description=Ziti-Controller
|
||||
Description=Ziti Controller
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
User=root
|
||||
WorkingDirectory=${ZITI_HOME}
|
||||
ExecStart="${ZITI_BIN_DIR}/ziti-controller" run "${ZITI_HOME}/${controller_name}.yaml"
|
||||
ExecStart="${ZITI_BIN_DIR}/ziti" controller run "${ZITI_HOME}/${controller_name}.yaml"
|
||||
Restart=always
|
||||
RestartSec=2
|
||||
LimitNOFILE=65535
|
||||
@@ -1273,13 +1273,13 @@ function createRouterSystemdFile {
|
||||
|
||||
cat > "${output_file}" <<HeredocForSystemd
|
||||
[Unit]
|
||||
Description=Ziti-Router for ${router_name}
|
||||
Description=Ziti Router for ${router_name}
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
User=root
|
||||
WorkingDirectory=${ZITI_HOME}
|
||||
ExecStart="${ZITI_BIN_DIR}/ziti-router" run "${ZITI_HOME}/${router_name}.yaml"
|
||||
ExecStart="${ZITI_BIN_DIR}/ziti" router run "${ZITI_HOME}/${router_name}.yaml"
|
||||
Restart=always
|
||||
RestartSec=2
|
||||
LimitNOFILE=65536
|
||||
@@ -1331,10 +1331,11 @@ cat > "${output_file}" <<HeredocForLaunchd
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>Label</key>
|
||||
<string>ziti-controller-${controller_name}</string>
|
||||
<string>ziti controller-${controller_name}</string>
|
||||
<key>ProgramArguments</key>
|
||||
<array>
|
||||
<string>$ZITI_BIN_DIR/ziti-controller</string>
|
||||
<string>$ZITI_BIN_DIR/ziti</string>
|
||||
<string>controller</string>
|
||||
<string>run</string>
|
||||
<string>$ZITI_HOME/${controller_name}.yaml</string>
|
||||
</array>
|
||||
@@ -1407,7 +1408,8 @@ cat > "${output_file}" <<HeredocForLaunchd
|
||||
<string>$router_name</string>
|
||||
<key>ProgramArguments</key>
|
||||
<array>
|
||||
<string>$ZITI_BIN_DIR/ziti-router</string>
|
||||
<string>$ZITI_BIN_DIR/ziti</string>
|
||||
<string>router</string>
|
||||
<string>run</string>
|
||||
<string>$ZITI_HOME/ctrl.with.edge.yml</string>
|
||||
</array>
|
||||
|
||||
@@ -5,8 +5,8 @@ services:
|
||||
env_file:
|
||||
- ./.env
|
||||
ports:
|
||||
- ${ZITI_EDGE_CONTROLLER_PORT:-1280}:${ZITI_EDGE_CONTROLLER_PORT:-1280}
|
||||
- ${ZITI_CTRL_PORT:-6262}:${ZITI_CTRL_PORT:-6262}
|
||||
- ${ZITI_CTRL_EDGE_ADVERTISED_PORT:-1280}:${ZITI_CTRL_EDGE_ADVERTISED_PORT:-1280}
|
||||
- ${ZITI_CTRL_LISTENER_PORT:-6262}:${ZITI_CTRL_LISTENER_PORT:-6262}
|
||||
environment:
|
||||
- ZITI_EDGE_IDENTITY_ENROLLMENT_DURATION=${ZITI_EDGE_IDENTITY_ENROLLMENT_DURATION}
|
||||
- ZITI_EDGE_ROUTER_ENROLLMENT_DURATION=${ZITI_EDGE_ROUTER_ENROLLMENT_DURATION}
|
||||
@@ -28,8 +28,8 @@ services:
|
||||
depends_on:
|
||||
- ziti-controller
|
||||
environment:
|
||||
- ZITI_CONTROLLER_RAWNAME="${ZITI_CONTROLLER_RAWNAME}"
|
||||
- ZITI_EDGE_CONTROLLER_RAWNAME="${ZITI_EDGE_CONTROLLER_RAWNAME}"
|
||||
- ZITI_CTRL_EDGE_ADVERTISED_ADDRESS="${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS}"
|
||||
- ZITI_CTRL_EDGE_ADVERTISED_PORT="${ZITI_CTRL_EDGE_ADVERTISED_PORT}"
|
||||
env_file:
|
||||
- ./.env
|
||||
networks:
|
||||
@@ -51,9 +51,8 @@ services:
|
||||
depends_on:
|
||||
- ziti-controller
|
||||
environment:
|
||||
- ZITI_CONTROLLER_RAWNAME="${ZITI_CONTROLLER_RAWNAME}"
|
||||
- ZITI_EDGE_CONTROLLER_RAWNAME="${ZITI_EDGE_CONTROLLER_RAWNAME}"
|
||||
- ZITI_EDGE_ROUTER_RAWNAME=${ZITI_EDGE_ROUTER_RAWNAME:-ziti-edge-router}
|
||||
- ZITI_CTRL_EDGE_ADVERTISED_ADDRESS="${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS}"
|
||||
- ZITI_EDGE_ROUTER_NAME=${ZITI_EDGE_ROUTER_NAME:-ziti-edge-router}
|
||||
- ZITI_EDGE_ROUTER_ROLES=public
|
||||
ports:
|
||||
- ${ZITI_EDGE_ROUTER_PORT:-3022}:${ZITI_EDGE_ROUTER_PORT:-3022}
|
||||
@@ -69,8 +68,8 @@ services:
|
||||
image: openziti/zac
|
||||
working_dir: /usr/src/app
|
||||
environment:
|
||||
- ZAC_SERVER_CERT_CHAIN=/persistent/pki/${ZITI_EDGE_CONTROLLER_HOSTNAME:-ziti-controller}-intermediate/certs/${ZITI_EDGE_CONTROLLER_HOSTNAME:-ziti-controller}-server.cert
|
||||
- ZAC_SERVER_KEY=/persistent/pki/${ZITI_EDGE_CONTROLLER_HOSTNAME:-ziti-controller}-intermediate/keys/${ZITI_EDGE_CONTROLLER_HOSTNAME:-ziti-controller}-server.key
|
||||
- ZAC_SERVER_CERT_CHAIN=/persistent/pki/${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS:-ziti-controller}-intermediate/certs/${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS:-ziti-controller}-server.cert
|
||||
- ZAC_SERVER_KEY=/persistent/pki/${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS:-ziti-controller}-intermediate/keys/${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS:-ziti-controller}-server.key
|
||||
- PORTTLS=8443
|
||||
depends_on:
|
||||
- ziti-controller
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
ziti edge login "${ZITI_EDGE_CONTROLLER_API}" -u "${ZITI_USER}" -p "${ZITI_PWD}" -y
|
||||
ziti edge login "${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS}" -u "${ZITI_USER}" -p "${ZITI_PWD}" -y
|
||||
|
||||
ziti edge delete service zcatsvc
|
||||
ziti edge delete config zcatconfig
|
||||
|
||||
ziti edge create config zcatconfig ziti-tunneler-client.v1 '{ "hostname" : "zcat.ziti", "port" : 7256 }'
|
||||
ziti edge create service zcatsvc --configs zcatconfig
|
||||
ziti edge create terminator zcatsvc "${ZITI_EDGE_ROUTER_HOSTNAME}" tcp:localhost:7256
|
||||
ziti edge create terminator zcatsvc "${ZITI_ROUTER_ADVERTISED_ADDRESS}" tcp:localhost:7256
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
suffix=$(date +"%b-%d-%H%M")
|
||||
idname="User${suffix}"
|
||||
|
||||
ziti edge login "${ZITI_EDGE_CONTROLLER_API}" -u "${ZITI_USER}" -p "${ZITI_PWD}" -y
|
||||
ziti edge login "${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS}" -u "${ZITI_USER}" -p "${ZITI_PWD}" -y
|
||||
|
||||
ziti edge delete identity "${idname}"
|
||||
ziti edge create identity device "${idname}" -o "${ZITI_HOME}/test_identity".jwt
|
||||
|
||||
@@ -22,6 +22,6 @@ DIRNAME=$(dirname $0)
|
||||
sleep 1
|
||||
ziti-router -v run "${ZITI_HOME}/${ZITI_ROUTER_RED_NAME}.yaml" > "${ZITI_HOME}/ziti-${ZITI_ROUTER_RED_NAME}.log" 2>&1 &
|
||||
# sleep 1
|
||||
# ziti-router run "${ZITI_HOME}/${ZITI_EDGE_ROUTER_HOSTNAME}.yaml" > "${ZITI_HOME}/ziti-${ZITI_EDGE_ROUTER_HOSTNAME}.log" 2>&1 &
|
||||
# ziti-router run "${ZITI_HOME}/${ZITI_ROUTER_ADVERTISED_ADDRESS}.yaml" > "${ZITI_HOME}/ziti-${ZITI_ROUTER_ADVERTISED_ADDRESS}.log" 2>&1 &
|
||||
sleep 1
|
||||
ziti-router -v run "${ZITI_HOME}/${ZITI_EDGE_WSS_ROUTER_HOSTNAME}.yaml" > "${ZITI_HOME}/ziti-${ZITI_EDGE_WSS_ROUTER_HOSTNAME}.log" 2>&1 &
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
#!/dev/null
|
||||
#
|
||||
# blame(ken)
|
||||
#
|
||||
# source this after sourcing env.sh to append required domain names to the dnsmasq.conf in the same dir which is mounted on dnsmasq server by docker-compose.yml
|
||||
|
||||
# DIRNAME defined by init.sh before sourcing this because it's problematic to determine the value of the sourced file in a shell-portable manner
|
||||
[[ ! -z ${DIRNAME:-} ]] || {
|
||||
echo "ERROR: not configuring dnsmasq because DIRNAME is not defined." >&2
|
||||
}
|
||||
|
||||
# expected in same directory as docker-compose.yml
|
||||
[[ -s ${DIRNAME}/docker-compose.yml ]] || {
|
||||
echo "ERROR: missing ${DIRNAME}/docker-compose"
|
||||
}
|
||||
|
||||
DNSCONF=${DIRNAME}/dnsmasq.conf
|
||||
[[ -s ${DNSCONF} ]] && {
|
||||
echo "WARN: clobbered ${DNSCONF}" >&2
|
||||
} || {
|
||||
echo "INFO: created ${DNSCONF}"
|
||||
}
|
||||
|
||||
cat <<EOF >| ${DNSCONF}
|
||||
port=53
|
||||
listen-address=${NAMESERVER1:-127.0.0.123}
|
||||
bind-interfaces
|
||||
#log all dns queries
|
||||
log-queries
|
||||
#don't use host's nameservers in /etc/resolv.conf, only use upstreams define in this conf
|
||||
no-resolv
|
||||
# don't forward plain names, only FQDNs
|
||||
domain-needed
|
||||
#use google as default nameservers
|
||||
server=1.1.1.1
|
||||
server=8.8.8.8
|
||||
#explicitly defines host-ip mappings appended by init.sh
|
||||
EOF
|
||||
|
||||
for DOMAIN_NAME in ${ZITI_CONTROLLER_HOSTNAME} ${ZITI_EDGE_CONTROLLER_HOSTNAME} ${ZITI_ZAC_HOSTNAME} ${ZITI_EDGE_ROUTER_HOSTNAME} ${ZITI_EDGE_WSS_ROUTER_HOSTNAME} ${ZITI_ROUTER_BR_HOSTNAME} ${ZITI_ROUTER_BLUE_HOSTNAME} ${ZITI_ROUTER_RED_HOSTNAME}; do
|
||||
echo "address=/${DOMAIN_NAME}/127.0.0.1" >> ${DNSCONF}
|
||||
done
|
||||
|
||||
docker-compose --file ${DIRNAME}/docker-compose.yml up --detach dns
|
||||
@@ -1,4 +1,4 @@
|
||||
ziti edge controller login "${ZITI_EDGE_CONTROLLER_API}" -u "${ZITI_USER}" -p "${ZITI_PWD}" -y
|
||||
ziti edge controller login "${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS}" -u "${ZITI_USER}" -p "${ZITI_PWD}" -y
|
||||
|
||||
ziti edge delete service netcatsvc
|
||||
ziti edge delete service zcatsvc
|
||||
@@ -12,19 +12,19 @@ ziti edge controller delete config iperfsvcconfig
|
||||
|
||||
ziti edge controller create config httpbinsvcconfig ziti-tunneler-client.v1 '{ "hostname" : "httpbin.ziti", "port" : 8000 }'
|
||||
ziti edge controller create service httpbinsvc --configs httpbinsvcconfig
|
||||
ziti edge controller create terminator httpbinsvc "${ZITI_EDGE_ROUTER_HOSTNAME}" tcp:localhost:80
|
||||
ziti edge controller create terminator httpbinsvc "${ZITI_ROUTER_ADVERTISED_ADDRESS}" tcp:localhost:80
|
||||
|
||||
ziti edge controller create config netcatconfig ziti-tunneler-client.v1 '{ "hostname" : "localhost", "port" : 7256 }'
|
||||
ziti edge controller create service netcatsvc --configs netcatconfig
|
||||
ziti edge controller create terminator netcatsvc "${ZITI_EDGE_ROUTER_HOSTNAME}" tcp:localhost:7256
|
||||
ziti edge controller create terminator netcatsvc "${ZITI_ROUTER_ADVERTISED_ADDRESS}" tcp:localhost:7256
|
||||
|
||||
ziti edge controller create config zcatconfig ziti-tunneler-client.v1 '{ "hostname" : "zcat.ziti", "port" : 7256 }'
|
||||
ziti edge controller create service zcatsvc --configs zcatconfig
|
||||
ziti edge controller create terminator zcatsvc "${ZITI_EDGE_ROUTER_HOSTNAME}" tcp:localhost:7256
|
||||
ziti edge controller create terminator zcatsvc "${ZITI_ROUTER_ADVERTISED_ADDRESS}" tcp:localhost:7256
|
||||
|
||||
ziti edge controller create config iperfsvcconfig ziti-tunneler-client.v1 '{ "hostname" : "iperf3.ziti", "port" : 15000 }'
|
||||
ziti edge controller create service iperfsvc --configs iperfsvcconfig
|
||||
ziti edge controller create terminator iperfsvc "${ZITI_EDGE_ROUTER_HOSTNAME}" tcp:localhost:5201
|
||||
ziti edge controller create terminator iperfsvc "${ZITI_ROUTER_ADVERTISED_ADDRESS}" tcp:localhost:5201
|
||||
|
||||
ziti edge controller delete identity "test_identity"
|
||||
ziti edge controller create identity device "test_identity" -o "${ZITI_HOME}/test_identity".jwt
|
||||
|
||||
@@ -220,17 +220,15 @@ quickstart script is run.
|
||||
*/
|
||||
func TestQuickStartEnvFile(t *testing.T) {
|
||||
expectedValues := []string{
|
||||
"export ZITI_EDGE_ROUTER_RAWNAME=\"localhost-edge-router\"",
|
||||
"export ZITI_EDGE_CONTROLLER_RAWNAME=\"localhost\"",
|
||||
"export ZITI_HOME_OS_SPECIFIC=\"/persistent\"",
|
||||
"export ZITI_EDGE_ROUTER_NAME=\"localhost-edge-router\"",
|
||||
"export ZITI_CTRL_EDGE_ADVERTISED_PORT=\"localhost\"",
|
||||
"export ZITI_HOME=\"/persistent\"",
|
||||
"export ZITI_BIN_DIR=\"/var/openziti/ziti-bin\"",
|
||||
"export ZITI_EDGE_CTRL_ADVERTISED=\"localhost:1280\"",
|
||||
"export ZITI_USER=\"admin\"",
|
||||
"export ZITI_PWD=\"admin\"",
|
||||
"export ZITI_PKI_OS_SPECIFIC=\"/persistent/pki\"",
|
||||
"export ZITI_EDGE_CONTROLLER_ROOTCA_NAME=\"localhost-root-ca\"",
|
||||
"export ZITI_EDGE_CONTROLLER_INTERMEDIATE_NAME=\"localhost-intermediate\"",
|
||||
"export ZITI_PKI=\"/persistent/pki\"",
|
||||
"export ZITI_PKI_CTRL_EDGE_ROOTCA_NAME=\"localhost-root-ca\"",
|
||||
"export ZITI_PKI_CTRL_EDGE_INTERMEDIATE_NAME=\"localhost-intermediate\"",
|
||||
}
|
||||
|
||||
// Build the image
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
docker/image/ziti-cli-functions.sh
|
||||
@@ -1,7 +1,7 @@
|
||||
v: 3
|
||||
|
||||
#trace:
|
||||
# path: "{{ .Controller.Name }}.trace"
|
||||
# path: "{{ .Controller.Web.BindPoints.AddressAddress }}.trace"
|
||||
|
||||
#profile:
|
||||
# memory:
|
||||
@@ -10,10 +10,10 @@ v: 3
|
||||
db: "{{ .ZitiHome }}/db/ctrl.db"
|
||||
|
||||
identity:
|
||||
cert: "{{ .Controller.IdentityCert }}"
|
||||
server_cert: "{{ .Controller.IdentityServerCert }}"
|
||||
key: "{{ .Controller.IdentityKey }}"
|
||||
ca: "{{ .Controller.IdentityCA }}"
|
||||
cert: "{{ .Controller.Identity.Cert }}"
|
||||
server_cert: "{{ .Controller.Identity.ServerCert }}"
|
||||
key: "{{ .Controller.Identity.Key }}"
|
||||
ca: "{{ .Controller.Identity.Ca }}"
|
||||
|
||||
# Network Configuration
|
||||
#
|
||||
@@ -69,25 +69,13 @@ identity:
|
||||
ctrl:
|
||||
#options:
|
||||
# (optional) settings
|
||||
# set the maximum number of connect requests that are buffered and waiting to be acknowledged ({{ .Controller.MinQueuedConnects }} to {{ .Controller.MaxQueuedConnects }}, default {{ .Controller.DefaultQueuedConnects }})
|
||||
#maxQueuedConnects: {{ .Controller.DefaultQueuedConnects }}
|
||||
# the maximum number of connects that have begun hello synchronization ({{ .Controller.MinOutstandingConnects }} to {{ .Controller.MaxOutstandingConnects }}, default {{ .Controller.DefaultOutstandingConnects }})
|
||||
#maxOutstandingConnects: {{ .Controller.DefaultOutstandingConnects }}
|
||||
# the number of milliseconds to wait before a hello synchronization fails and closes the connection ({{ .Controller.MinConnectTimeout.Milliseconds }}ms to {{ .Controller.MaxConnectTimeout.Milliseconds }}ms, default: {{ .Controller.DefaultConnectTimeout.Milliseconds }}ms)
|
||||
#connectTimeoutMs: {{ .Controller.DefaultConnectTimeout.Milliseconds }}
|
||||
listener: tls:{{ .Controller.ListenerAddress }}:{{ .Controller.Port }}
|
||||
|
||||
# the endpoint that management tools connect to the controller over.
|
||||
mgmt:
|
||||
#options:
|
||||
# (optional) settings
|
||||
# set the maximum number of connect requests that are buffered and waiting to be acknowledged ({{ .Controller.MinQueuedConnects }} to {{ .Controller.MaxQueuedConnects }}, default {{ .Controller.DefaultQueuedConnects }})
|
||||
#maxQueuedConnects: {{ .Controller.DefaultQueuedConnects }}
|
||||
# the maximum number of connects that have begun hello synchronization ({{ .Controller.MinOutstandingConnects }} to {{ .Controller.MaxOutstandingConnects }}, default {{ .Controller.DefaultOutstandingConnects }})
|
||||
#maxOutstandingConnects: {{ .Controller.DefaultOutstandingConnects }}
|
||||
# the number of milliseconds to wait before a hello synchronization fails and closes the connection ({{ .Controller.MinConnectTimeout.Milliseconds }}ms to {{ .Controller.MaxConnectTimeout.Milliseconds }}ms, default: {{ .Controller.DefaultConnectTimeout.Milliseconds }}ms)
|
||||
#connectTimeoutMs: {{ .Controller.DefaultConnectTimeout.Milliseconds }}
|
||||
listener: tls:{{ .Controller.ListenerAddress }}:10000
|
||||
# set the maximum number of connect requests that are buffered and waiting to be acknowledged ({{ .Controller.Ctrl.MinQueuedConnects }} to {{ .Controller.Ctrl.MaxQueuedConnects }}, default {{ .Controller.Ctrl.DefaultQueuedConnects }})
|
||||
#maxQueuedConnects: {{ .Controller.Ctrl.DefaultQueuedConnects }}
|
||||
# the maximum number of connects that have begun hello synchronization ({{ .Controller.Ctrl.MinOutstandingConnects }} to {{ .Controller.Ctrl.MaxOutstandingConnects }}, default {{ .Controller.Ctrl.DefaultOutstandingConnects }})
|
||||
#maxOutstandingConnects: {{ .Controller.Ctrl.DefaultOutstandingConnects }}
|
||||
# the number of milliseconds to wait before a hello synchronization fails and closes the connection ({{ .Controller.Ctrl.MinConnectTimeout.Milliseconds }}ms to {{ .Controller.Ctrl.MaxConnectTimeout.Milliseconds }}ms, default: {{ .Controller.Ctrl.DefaultConnectTimeout.Milliseconds }}ms)
|
||||
#connectTimeoutMs: {{ .Controller.Ctrl.DefaultConnectTimeout.Milliseconds }}
|
||||
listener: tls:{{ .Controller.Ctrl.ListenerAddress }}:{{ .Controller.Ctrl.ListenerPort }}
|
||||
|
||||
#metrics:
|
||||
# influxdb:
|
||||
@@ -102,30 +90,30 @@ mgmt:
|
||||
|
||||
healthChecks:
|
||||
boltCheck:
|
||||
# How often to try entering a bolt read tx. Defaults to {{ .Controller.HealthCheck.Interval.Seconds }} seconds
|
||||
interval: {{ .Controller.HealthCheck.Interval.Seconds }}s
|
||||
# When to time out the check. Defaults to {{ .Controller.HealthCheck.Timeout.Seconds }} seconds
|
||||
timeout: {{ .Controller.HealthCheck.Timeout.Seconds }}s
|
||||
# How long to wait before starting the check. Defaults to {{ .Controller.HealthCheck.InitialDelay.Seconds }} seconds
|
||||
initialDelay: {{ .Controller.HealthCheck.InitialDelay.Seconds }}s
|
||||
# How often to try entering a bolt read tx. Defaults to {{ .Controller.HealthChecks.Interval.Seconds }} seconds
|
||||
interval: {{ .Controller.HealthChecks.Interval.Seconds }}s
|
||||
# When to time out the check. Defaults to {{ .Controller.HealthChecks.Timeout.Seconds }} seconds
|
||||
timeout: {{ .Controller.HealthChecks.Timeout.Seconds }}s
|
||||
# How long to wait before starting the check. Defaults to {{ .Controller.HealthChecks.InitialDelay.Seconds }} seconds
|
||||
initialDelay: {{ .Controller.HealthChecks.InitialDelay.Seconds }}s
|
||||
|
||||
# By having an 'edge' section defined, the ziti-controller will attempt to parse the edge configuration. Removing this
|
||||
# section, commenting out, or altering the name of the section will cause the edge to not run.
|
||||
edge:
|
||||
# This section represents the configuration of the Edge API that is served over HTTPS
|
||||
api:
|
||||
#(optional, default {{ .Controller.Edge.APIActivityUpdateInterval.Seconds }}s) Alters how frequently heartbeat and last activity values are persisted
|
||||
# activityUpdateInterval: {{ .Controller.Edge.APIActivityUpdateInterval.Seconds }}s
|
||||
#(optional, default {{ .Controller.Edge.APIActivityUpdateBatchSize }}) The number of API Sessions updated for last activity per transaction
|
||||
# activityUpdateBatchSize: {{ .Controller.Edge.APIActivityUpdateBatchSize }}
|
||||
# sessionTimeout - optional, default {{ .Controller.Edge.APISessionTimeout.Minutes }}m
|
||||
#(optional, default {{ .Controller.EdgeApi.APIActivityUpdateInterval.Seconds }}s) Alters how frequently heartbeat and last activity values are persisted
|
||||
# activityUpdateInterval: {{ .Controller.EdgeApi.APIActivityUpdateInterval.Seconds }}s
|
||||
#(optional, default {{ .Controller.EdgeApi.APIActivityUpdateBatchSize }}) The number of API Sessions updated for last activity per transaction
|
||||
# activityUpdateBatchSize: {{ .Controller.EdgeApi.APIActivityUpdateBatchSize }}
|
||||
# sessionTimeout - optional, default {{ .Controller.EdgeApi.SessionTimeout.Minutes }}m
|
||||
# The number of minutes before an Edge API session will time out. Timeouts are reset by
|
||||
# API requests and connections that are maintained to Edge Routers
|
||||
sessionTimeout: {{ .Controller.Edge.APISessionTimeout.Minutes }}m
|
||||
sessionTimeout: {{ .Controller.EdgeApi.SessionTimeout.Minutes }}m
|
||||
# address - required
|
||||
# The default address (host:port) to use for enrollment for the Client API. This value must match one of the addresses
|
||||
# defined in this Controller.WebListener.'s bindPoints.
|
||||
address: {{ .Controller.Edge.AdvertisedHostPort }}
|
||||
address: {{ .Controller.EdgeApi.Address }}:{{ .Controller.EdgeApi.Port }}
|
||||
# This section is used to define option that are used during enrollment of Edge Routers, Ziti Edge Identities.
|
||||
enrollment:
|
||||
# signingCert - required
|
||||
@@ -133,22 +121,22 @@ edge:
|
||||
# a signing certificate from the PKI that the Ziti environment is using to sign certificates. The signingCert.cert
|
||||
# will be added to the /.well-known CA store that is used to bootstrap trust with the Ziti Controller.
|
||||
signingCert:
|
||||
cert: {{ .Controller.Edge.ZitiSigningCert }}
|
||||
key: {{ .Controller.Edge.ZitiSigningKey }}
|
||||
cert: {{ .Controller.EdgeEnrollment.SigningCert }}
|
||||
key: {{ .Controller.EdgeEnrollment.SigningCertKey }}
|
||||
# edgeIdentity - optional
|
||||
# A section for identity enrollment specific settings
|
||||
edgeIdentity:
|
||||
# duration - optional, default {{ .Controller.DefaultEdgeIdentityDuration.Minutes }}m
|
||||
# duration - optional, default {{ .Controller.EdgeEnrollment.DefaultEdgeIdentityDuration.Minutes }}m
|
||||
# The length of time that a Ziti Edge Identity enrollment should remain valid. After
|
||||
# this duration, the enrollment will expire and no longer be usable.
|
||||
duration: {{ .Controller.EdgeIdentityDuration.Minutes }}m
|
||||
duration: {{ .Controller.EdgeEnrollment.EdgeIdentityDuration.Minutes }}m
|
||||
# edgeRouter - Optional
|
||||
# A section for edge router enrollment specific settings.
|
||||
edgeRouter:
|
||||
# duration - optional, default {{ .Controller.DefaultEdgeRouterDuration.Minutes }}m
|
||||
# duration - optional, default {{ .Controller.EdgeEnrollment.DefaultEdgeRouterDuration.Minutes }}m
|
||||
# The length of time that a Ziti Edge Router enrollment should remain valid. After
|
||||
# this duration, the enrollment will expire and no longer be usable.
|
||||
duration: {{ .Controller.EdgeRouterDuration.Minutes }}m
|
||||
duration: {{ .Controller.EdgeEnrollment.EdgeRouterDuration.Minutes }}m
|
||||
|
||||
# web
|
||||
# Defines webListeners that will be hosted by the controller. Each webListener can host many APIs and be bound to many
|
||||
@@ -165,43 +153,43 @@ web:
|
||||
bindPoints:
|
||||
#interface - required
|
||||
# A host:port string on which network interface to listen on. 0.0.0.0 will listen on all interfaces
|
||||
- interface: {{ .Controller.Edge.ListenerHostPort }}
|
||||
- interface: {{ .Controller.Web.BindPoints.InterfaceAddress }}:{{ .Controller.Web.BindPoints.InterfacePort }}
|
||||
# address - required
|
||||
# The public address that external incoming requests will be able to resolve. Used in request processing and
|
||||
# response content that requires full host:port/path addresses.
|
||||
address: {{ .Controller.Edge.AdvertisedHostPort }}
|
||||
address: {{ .Controller.Web.BindPoints.AddressAddress }}:{{ .Controller.Web.BindPoints.AddressPort }}
|
||||
# identity - optional
|
||||
# Allows the webListener to have a specific identity instead of defaulting to the root 'identity' section.
|
||||
identity:
|
||||
ca: "{{ .Controller.Edge.IdentityCA }}"
|
||||
key: "{{ .Controller.Edge.IdentityKey }}"
|
||||
server_cert: "{{ .Controller.Edge.IdentityServerCert }}"
|
||||
cert: "{{ .Controller.Edge.IdentityCert }}"
|
||||
ca: "{{ .Controller.Web.Identity.Ca }}"
|
||||
key: "{{ .Controller.Web.Identity.Key }}"
|
||||
server_cert: "{{ .Controller.Web.Identity.ServerCert }}"
|
||||
cert: "{{ .Controller.Web.Identity.Cert }}"
|
||||
# options - optional
|
||||
# Allows the specification of webListener level options - mainly dealing with HTTP/TLS settings. These options are
|
||||
# used for all http servers started by the current webListener.
|
||||
options:
|
||||
# idleTimeoutMs - optional, default {{ .Controller.WebListener.IdleTimeout.Milliseconds }}ms
|
||||
# idleTimeoutMs - optional, default {{ .Controller.Web.Options.IdleTimeout.Milliseconds }}ms
|
||||
# The maximum amount of idle time in milliseconds allowed for pipelined HTTP requests. Setting this too high
|
||||
# can cause resources on the host to be consumed as clients remain connected and idle. Lowering this value
|
||||
# will cause clients to reconnect on subsequent HTTPs requests.
|
||||
idleTimeout: {{ .Controller.WebListener.IdleTimeout.Milliseconds }}ms #http timeouts, new
|
||||
# readTimeoutMs - optional, default {{ .Controller.WebListener.ReadTimeout.Milliseconds }}ms
|
||||
idleTimeout: {{ .Controller.Web.Options.IdleTimeout.Milliseconds }}ms #http timeouts, new
|
||||
# readTimeoutMs - optional, default {{ .Controller.Web.Options.ReadTimeout.Milliseconds }}ms
|
||||
# The maximum amount of time in milliseconds http servers will wait to read the first incoming requests. A higher
|
||||
# value risks consuming resources on the host with clients that are acting bad faith or suffering from high latency
|
||||
# or packet loss. A lower value can risk losing connections to high latency/packet loss clients.
|
||||
readTimeout: {{ .Controller.WebListener.ReadTimeout.Milliseconds }}ms
|
||||
# writeTimeoutMs - optional, default {{ .Controller.WebListener.WriteTimeout.Milliseconds }}ms
|
||||
readTimeout: {{ .Controller.Web.Options.ReadTimeout.Milliseconds }}ms
|
||||
# writeTimeoutMs - optional, default {{ .Controller.Web.Options.WriteTimeout.Milliseconds }}ms
|
||||
# The total maximum time in milliseconds that the http server will wait for a single requests to be received and
|
||||
# responded too. A higher value can allow long-running requests to consume resources on the host. A lower value
|
||||
# can risk ending requests before the server has a chance to respond.
|
||||
writeTimeout: {{ .Controller.WebListener.WriteTimeout.Milliseconds }}ms
|
||||
# minTLSVersion - optional, default {{ .Controller.WebListener.MinTLSVersion }}
|
||||
writeTimeout: {{ .Controller.Web.Options.WriteTimeout.Milliseconds }}ms
|
||||
# minTLSVersion - optional, default {{ .Controller.Web.Options.MinTLSVersion }}
|
||||
# The minimum version of TSL to support
|
||||
minTLSVersion: {{ .Controller.WebListener.MinTLSVersion }}
|
||||
# maxTLSVersion - optional, default {{ .Controller.WebListener.MaxTLSVersion }}
|
||||
minTLSVersion: {{ .Controller.Web.Options.MinTLSVersion }}
|
||||
# maxTLSVersion - optional, default {{ .Controller.Web.Options.MaxTLSVersion }}
|
||||
# The maximum version of TSL to support
|
||||
maxTLSVersion: {{ .Controller.WebListener.MaxTLSVersion }}
|
||||
maxTLSVersion: {{ .Controller.Web.Options.MaxTLSVersion }}
|
||||
# apis - required
|
||||
# Allows one or more APIs to be bound to this webListener
|
||||
apis:
|
||||
|
||||
@@ -13,7 +13,7 @@ identity:
|
||||
ca: "{{ .Router.IdentityCA }}"
|
||||
|
||||
ctrl:
|
||||
endpoint: tls:{{ .Controller.AdvertisedAddress }}:{{ .Controller.Port }}
|
||||
endpoint: tls:{{ .Controller.Web.BindPoints.AddressAddress }}:{{ .Controller.Ctrl.ListenerPort }}
|
||||
|
||||
link:
|
||||
dialers:
|
||||
@@ -47,7 +47,7 @@ csr:
|
||||
organizationalUnit: Ziti
|
||||
sans:
|
||||
dns:
|
||||
- {{ .Router.Edge.Hostname }}
|
||||
- {{ .Router.Edge.AdvertisedHost }}
|
||||
- localhost
|
||||
ip:
|
||||
- "127.0.0.1"
|
||||
@@ -62,7 +62,7 @@ edge:
|
||||
organizationalUnit: Ziti
|
||||
sans:
|
||||
dns:
|
||||
- {{ .Router.Edge.Hostname }}
|
||||
- {{ .Router.Edge.AdvertisedHost }}
|
||||
- localhost
|
||||
ip:
|
||||
- "127.0.0.1"
|
||||
|
||||
+131
-121
@@ -58,50 +58,64 @@ type ConfigTemplateValues struct {
|
||||
Router RouterTemplateValues
|
||||
}
|
||||
|
||||
type ControllerTemplateValues struct {
|
||||
Name string
|
||||
Port string
|
||||
AdvertisedAddress string
|
||||
ListenerAddress string
|
||||
IdentityCert string
|
||||
IdentityServerCert string
|
||||
IdentityKey string
|
||||
IdentityCA string
|
||||
MinQueuedConnects int
|
||||
MaxQueuedConnects int
|
||||
DefaultQueuedConnects int
|
||||
MinOutstandingConnects int
|
||||
MaxOutstandingConnects int
|
||||
DefaultOutstandingConnects int
|
||||
MinConnectTimeout time.Duration
|
||||
MaxConnectTimeout time.Duration
|
||||
DefaultConnectTimeout time.Duration
|
||||
type CtrlValues struct {
|
||||
MinQueuedConnects int
|
||||
MaxQueuedConnects int
|
||||
DefaultQueuedConnects int
|
||||
MinOutstandingConnects int
|
||||
MaxOutstandingConnects int
|
||||
DefaultOutstandingConnects int
|
||||
MinConnectTimeout time.Duration
|
||||
MaxConnectTimeout time.Duration
|
||||
DefaultConnectTimeout time.Duration
|
||||
ListenerAddress string
|
||||
ListenerPort string
|
||||
}
|
||||
|
||||
type HealthChecksValues struct {
|
||||
Interval time.Duration
|
||||
Timeout time.Duration
|
||||
InitialDelay time.Duration
|
||||
}
|
||||
|
||||
type EdgeApiValues struct {
|
||||
APIActivityUpdateBatchSize int
|
||||
APIActivityUpdateInterval time.Duration
|
||||
SessionTimeout time.Duration
|
||||
Address string
|
||||
Port string
|
||||
}
|
||||
|
||||
type EdgeEnrollmentValues struct {
|
||||
SigningCert string
|
||||
SigningCertKey string
|
||||
EdgeIdentityDuration time.Duration
|
||||
EdgeRouterDuration time.Duration
|
||||
DefaultEdgeIdentityDuration time.Duration
|
||||
DefaultEdgeRouterDuration time.Duration
|
||||
Edge EdgeControllerValues
|
||||
WebListener ControllerWebListenerValues
|
||||
HealthCheck ControllerHealthCheckValues
|
||||
}
|
||||
|
||||
type EdgeControllerValues struct {
|
||||
AdvertisedPort string
|
||||
ZitiSigningCert string
|
||||
ZitiSigningKey string
|
||||
|
||||
APIActivityUpdateBatchSize int
|
||||
APIActivityUpdateInterval time.Duration
|
||||
APISessionTimeout time.Duration
|
||||
ListenerHostPort string
|
||||
AdvertisedHostPort string
|
||||
IdentityCert string
|
||||
IdentityServerCert string
|
||||
IdentityKey string
|
||||
IdentityCA string
|
||||
type WebValues struct {
|
||||
BindPoints BindPointsValues
|
||||
Identity IdentityValues
|
||||
Options WebOptionsValues
|
||||
}
|
||||
|
||||
type ControllerWebListenerValues struct {
|
||||
type BindPointsValues struct {
|
||||
InterfaceAddress string
|
||||
InterfacePort string
|
||||
AddressAddress string
|
||||
AddressPort string
|
||||
}
|
||||
|
||||
type IdentityValues struct {
|
||||
Ca string
|
||||
Key string
|
||||
ServerCert string
|
||||
Cert string
|
||||
}
|
||||
|
||||
type WebOptionsValues struct {
|
||||
IdleTimeout time.Duration
|
||||
ReadTimeout time.Duration
|
||||
WriteTimeout time.Duration
|
||||
@@ -109,10 +123,13 @@ type ControllerWebListenerValues struct {
|
||||
MaxTLSVersion string
|
||||
}
|
||||
|
||||
type ControllerHealthCheckValues struct {
|
||||
Interval time.Duration
|
||||
Timeout time.Duration
|
||||
InitialDelay time.Duration
|
||||
type ControllerTemplateValues struct {
|
||||
Identity IdentityValues
|
||||
Ctrl CtrlValues
|
||||
HealthChecks HealthChecksValues
|
||||
EdgeApi EdgeApiValues
|
||||
EdgeEnrollment EdgeEnrollmentValues
|
||||
Web WebValues
|
||||
}
|
||||
|
||||
type RouterTemplateValues struct {
|
||||
@@ -132,7 +149,6 @@ type RouterTemplateValues struct {
|
||||
}
|
||||
|
||||
type EdgeRouterTemplateValues struct {
|
||||
Hostname string
|
||||
Port string
|
||||
IPOverride string
|
||||
AdvertisedHost string
|
||||
@@ -170,16 +186,7 @@ var workingDir string
|
||||
var data = &ConfigTemplateValues{}
|
||||
|
||||
func init() {
|
||||
zh := os.Getenv("ZITI_HOME")
|
||||
if zh == "" {
|
||||
wd, err := os.Getwd()
|
||||
if wd == "" || err != nil {
|
||||
//on error just use "."
|
||||
workingDir = "."
|
||||
}
|
||||
}
|
||||
|
||||
workingDir = cmdHelper.NormalizePath(zh)
|
||||
workingDir, _ = cmdHelper.GetZitiHome()
|
||||
}
|
||||
|
||||
// NewCmdCreateConfig creates a command object for the "config" command
|
||||
@@ -206,7 +213,7 @@ func (options *CreateConfigOptions) addCreateFlags(cmd *cobra.Command) {
|
||||
cmd.PersistentFlags().StringVarP(&options.Output, optionOutput, "o", defaultOutput, outputDescription)
|
||||
}
|
||||
|
||||
func (data *ConfigTemplateValues) populateEnvVars() {
|
||||
func (data *ConfigTemplateValues) populateConfigValues() {
|
||||
|
||||
// Get and add hostname to the params
|
||||
hostname, err := os.Hostname()
|
||||
@@ -216,89 +223,92 @@ func (data *ConfigTemplateValues) populateEnvVars() {
|
||||
zitiHome, err := cmdHelper.GetZitiHome()
|
||||
handleVariableError(err, constants.ZitiHomeVarName)
|
||||
|
||||
// Get Ziti Controller Name
|
||||
zitiCtrlHostname, err := cmdHelper.GetZitiCtrlName()
|
||||
handleVariableError(err, constants.ZitiCtrlNameVarName)
|
||||
// Get Ziti Controller ctrl:listener address and port
|
||||
ctrlListenerAddress, err := cmdHelper.GetCtrlListenerAddress()
|
||||
handleVariableError(err, constants.CtrlListenerAddressVarName)
|
||||
ctrlListenerPort, err := cmdHelper.GetCtrlListenerPort()
|
||||
handleVariableError(err, constants.CtrlListenerPortVarName)
|
||||
|
||||
// Get Ziti Controller edge:api address and port
|
||||
ctrlEdgeApiAddress, err := cmdHelper.GetCtrlEdgeApiAddress()
|
||||
handleVariableError(err, constants.CtrlEdgeApiAddressVarName)
|
||||
ctrlEdgeApiPort, err := cmdHelper.GetCtrlEdgeApiPort()
|
||||
handleVariableError(err, constants.CtrlEdgeApiPortVarName)
|
||||
|
||||
// Get Ziti Controller Identity edge:enrollment duration
|
||||
ctrlEdgeIdentityEnrollmentDuration, err := cmdHelper.GetCtrlEdgeIdentityEnrollmentDuration()
|
||||
handleVariableError(err, constants.CtrlEdgeIdentityEnrollmentDurationVarName)
|
||||
|
||||
// Get Ziti Controller Router edge:enrollment enrollment duration
|
||||
ctrlEdgeRouterEnrollmentDuration, err := cmdHelper.GetCtrlEdgeRouterEnrollmentDuration()
|
||||
handleVariableError(err, constants.CtrlEdgeRouterEnrollmentDurationVarName)
|
||||
|
||||
// Get Ziti Controller web:bindPoints interface address and port
|
||||
ctrlEdgeInterfaceAddress, err := cmdHelper.GetCtrlEdgeInterfaceAddress()
|
||||
handleVariableError(err, constants.CtrlEdgeInterfaceAddressVarName)
|
||||
ctrlEdgeInterfacePort, err := cmdHelper.GetCtrlEdgeInterfacePort()
|
||||
handleVariableError(err, constants.CtrlEdgeInterfacePortVarName)
|
||||
|
||||
// Get Ziti Controller web:bindPoints address address and port
|
||||
ctrlEdgeAdvertisedAddress, err := cmdHelper.GetCtrlEdgeAdvertisedAddress()
|
||||
handleVariableError(err, constants.CtrlEdgeAdvertisedAddressVarName)
|
||||
ctrlEdgeAdvertisedPort, err := cmdHelper.GetCtrlEdgeAdvertisedPort()
|
||||
handleVariableError(err, constants.CtrlEdgeAdvertisedPortVarName)
|
||||
|
||||
// Get Ziti Edge Router Port
|
||||
zitiEdgeRouterPort, err := cmdHelper.GetZitiEdgeRouterPort()
|
||||
handleVariableError(err, constants.ZitiEdgeRouterPortVarName)
|
||||
|
||||
// Get Ziti Controller Listener Address
|
||||
zitiCtrlListenerAddress, err := cmdHelper.GetZitiCtrlListenerAddress()
|
||||
handleVariableError(err, constants.ZitiCtrlListenerAddressVarName)
|
||||
|
||||
// Get Ziti Controller Advertised Address
|
||||
zitiCtrlAdvertisedAddress, err := cmdHelper.GetZitiCtrlAdvertisedAddress()
|
||||
handleVariableError(err, constants.ZitiCtrlAdvertisedAddressVarName)
|
||||
|
||||
// Get Ziti Controller Port
|
||||
zitiCtrlPort, err := cmdHelper.GetZitiCtrlPort()
|
||||
handleVariableError(err, constants.ZitiCtrlPortVarName)
|
||||
|
||||
// Get Ziti Edge Controller Listener Host and Port
|
||||
zitiEdgeCtrlListenerHostPort, err := cmdHelper.GetZitiEdgeCtrlListenerHostPort()
|
||||
handleVariableError(err, constants.ZitiEdgeCtrlListenerHostPortVarName)
|
||||
|
||||
// Get Ziti Edge Controller Advertised Host and Port
|
||||
zitiEdgeCtrlAdvertisedHostPort, err := cmdHelper.GetZitiEdgeCtrlAdvertisedHostPort()
|
||||
handleVariableError(err, constants.ZitiEdgeCtrlAdvertisedHostPortVarName)
|
||||
|
||||
// Get Ziti Edge Controller Advertised Port
|
||||
zitiEdgeCtrlAdvertisedPort, err := cmdHelper.GetZitiEdgeCtrlAdvertisedPort()
|
||||
handleVariableError(err, constants.ZitiEdgeCtrlAdvertisedPortVarName)
|
||||
|
||||
// Get Ziti edge Identity enrollment duration
|
||||
zitiEdgeIdentityEnrollmentDuration, err := cmdHelper.GetZitiEdgeIdentityEnrollmentDuration()
|
||||
handleVariableError(err, constants.ZitiEdgeIdentityEnrollmentDurationVarName)
|
||||
|
||||
// Get Ziti edge Router enrollment duration
|
||||
zitiEdgeRouterEnrollmentDuration, err := cmdHelper.GetZitiEdgeRouterEnrollmentDuration()
|
||||
handleVariableError(err, constants.ZitiEdgeRouterEnrollmentDurationVarName)
|
||||
|
||||
zitiEdgeRouterListenerBindPort, err := cmdHelper.GetZitiEdgeRouterListenerBindPort()
|
||||
handleVariableError(err, constants.ZitiEdgeRouterListenerBindPortVarName)
|
||||
|
||||
data.ZitiHome = zitiHome
|
||||
data.Hostname = hostname
|
||||
data.Controller.Name = zitiCtrlHostname
|
||||
data.Controller.ListenerAddress = zitiCtrlListenerAddress
|
||||
data.Controller.AdvertisedAddress = zitiCtrlAdvertisedAddress
|
||||
data.Controller.Port = zitiCtrlPort
|
||||
data.Controller.Edge.ListenerHostPort = zitiEdgeCtrlListenerHostPort
|
||||
data.Controller.Edge.AdvertisedHostPort = zitiEdgeCtrlAdvertisedHostPort
|
||||
// ************* Controller Values ************
|
||||
// Identities are handled in create_config_controller
|
||||
// ctrl:
|
||||
data.Controller.Ctrl.MinQueuedConnects = channel.MinQueuedConnects
|
||||
data.Controller.Ctrl.MaxQueuedConnects = channel.MaxQueuedConnects
|
||||
data.Controller.Ctrl.DefaultQueuedConnects = channel.DefaultQueuedConnects
|
||||
data.Controller.Ctrl.MinOutstandingConnects = channel.MinOutstandingConnects
|
||||
data.Controller.Ctrl.MaxOutstandingConnects = channel.MaxOutstandingConnects
|
||||
data.Controller.Ctrl.DefaultOutstandingConnects = channel.DefaultOutstandingConnects
|
||||
data.Controller.Ctrl.MinConnectTimeout = channel.MinConnectTimeout
|
||||
data.Controller.Ctrl.MaxConnectTimeout = channel.MaxConnectTimeout
|
||||
data.Controller.Ctrl.DefaultConnectTimeout = channel.DefaultConnectTimeout
|
||||
data.Controller.Ctrl.ListenerAddress = ctrlListenerAddress
|
||||
data.Controller.Ctrl.ListenerPort = ctrlListenerPort
|
||||
// healthChecks:
|
||||
data.Controller.HealthChecks.Interval = fabCtrl.DefaultHealthChecksBoltCheckInterval
|
||||
data.Controller.HealthChecks.Timeout = fabCtrl.DefaultHealthChecksBoltCheckTimeout
|
||||
data.Controller.HealthChecks.InitialDelay = fabCtrl.DefaultHealthChecksBoltCheckInitialDelay
|
||||
// edge:
|
||||
data.Controller.EdgeApi.APIActivityUpdateBatchSize = edge.DefaultEdgeApiActivityUpdateBatchSize
|
||||
data.Controller.EdgeApi.APIActivityUpdateInterval = edge.DefaultEdgeAPIActivityUpdateInterval
|
||||
data.Controller.EdgeApi.SessionTimeout = edge.DefaultEdgeSessionTimeout
|
||||
data.Controller.EdgeApi.Address = ctrlEdgeApiAddress
|
||||
data.Controller.EdgeApi.Port = ctrlEdgeApiPort
|
||||
data.Controller.EdgeEnrollment.EdgeIdentityDuration = ctrlEdgeIdentityEnrollmentDuration
|
||||
data.Controller.EdgeEnrollment.EdgeRouterDuration = ctrlEdgeRouterEnrollmentDuration
|
||||
data.Controller.EdgeEnrollment.DefaultEdgeIdentityDuration = edge.DefaultEdgeEnrollmentDuration
|
||||
data.Controller.EdgeEnrollment.DefaultEdgeRouterDuration = edge.DefaultEdgeEnrollmentDuration
|
||||
// web:
|
||||
data.Controller.Web.BindPoints.InterfaceAddress = ctrlEdgeInterfaceAddress
|
||||
data.Controller.Web.BindPoints.InterfacePort = ctrlEdgeInterfacePort
|
||||
data.Controller.Web.BindPoints.AddressAddress = ctrlEdgeAdvertisedAddress
|
||||
data.Controller.Web.BindPoints.AddressPort = ctrlEdgeAdvertisedPort
|
||||
// Web Identities are handled in create_config_controller
|
||||
data.Controller.Web.Options.IdleTimeout = edge.DefaultHttpIdleTimeout
|
||||
data.Controller.Web.Options.ReadTimeout = edge.DefaultHttpReadTimeout
|
||||
data.Controller.Web.Options.WriteTimeout = edge.DefaultHttpWriteTimeout
|
||||
data.Controller.Web.Options.MinTLSVersion = fabXweb.ReverseTlsVersionMap[fabXweb.MinTLSVersion]
|
||||
data.Controller.Web.Options.MaxTLSVersion = fabXweb.ReverseTlsVersionMap[fabXweb.MaxTLSVersion]
|
||||
|
||||
// ************* Router Values ************
|
||||
data.Router.Edge.Port = zitiEdgeRouterPort
|
||||
data.Router.Edge.ListenerBindPort = zitiEdgeRouterListenerBindPort
|
||||
data.Controller.Edge.AdvertisedPort = zitiEdgeCtrlAdvertisedPort
|
||||
data.Controller.EdgeIdentityDuration = zitiEdgeIdentityEnrollmentDuration
|
||||
data.Controller.EdgeRouterDuration = zitiEdgeRouterEnrollmentDuration
|
||||
data.Controller.DefaultEdgeIdentityDuration = edge.DefaultEdgeEnrollmentDuration
|
||||
data.Controller.DefaultEdgeRouterDuration = edge.DefaultEdgeEnrollmentDuration
|
||||
}
|
||||
|
||||
func (data *ConfigTemplateValues) populateDefaults() {
|
||||
data.Router.Listener.GetSessionTimeout = constants.DefaultGetSessionTimeout
|
||||
|
||||
data.Controller.MinQueuedConnects = channel.MinQueuedConnects
|
||||
data.Controller.MaxQueuedConnects = channel.MaxQueuedConnects
|
||||
data.Controller.DefaultQueuedConnects = channel.DefaultQueuedConnects
|
||||
data.Controller.MinOutstandingConnects = channel.MinOutstandingConnects
|
||||
data.Controller.MaxOutstandingConnects = channel.MaxOutstandingConnects
|
||||
data.Controller.DefaultOutstandingConnects = channel.DefaultOutstandingConnects
|
||||
data.Controller.MinConnectTimeout = channel.MinConnectTimeout
|
||||
data.Controller.MaxConnectTimeout = channel.MaxConnectTimeout
|
||||
data.Controller.DefaultConnectTimeout = channel.DefaultConnectTimeout
|
||||
data.Controller.HealthCheck.Timeout = fabCtrl.DefaultHealthChecksBoltCheckTimeout
|
||||
data.Controller.HealthCheck.Interval = fabCtrl.DefaultHealthChecksBoltCheckInterval
|
||||
data.Controller.HealthCheck.InitialDelay = fabCtrl.DefaultHealthChecksBoltCheckInitialDelay
|
||||
data.Controller.Edge.APIActivityUpdateBatchSize = edge.DefaultEdgeApiActivityUpdateBatchSize
|
||||
data.Controller.Edge.APIActivityUpdateInterval = edge.DefaultEdgeAPIActivityUpdateInterval
|
||||
data.Controller.Edge.APISessionTimeout = edge.DefaultEdgeSessionTimeout
|
||||
data.Controller.WebListener.IdleTimeout = edge.DefaultHttpIdleTimeout
|
||||
data.Controller.WebListener.ReadTimeout = edge.DefaultHttpReadTimeout
|
||||
data.Controller.WebListener.WriteTimeout = edge.DefaultHttpWriteTimeout
|
||||
data.Controller.WebListener.MinTLSVersion = fabXweb.ReverseTlsVersionMap[fabXweb.MinTLSVersion]
|
||||
data.Controller.WebListener.MaxTLSVersion = fabXweb.ReverseTlsVersionMap[fabXweb.MaxTLSVersion]
|
||||
data.Router.Wss.WriteTimeout = foundation.DefaultWsWriteTimeout
|
||||
data.Router.Wss.ReadTimeout = foundation.DefaultWsReadTimeout
|
||||
data.Router.Wss.IdleTimeout = foundation.DefaultWsIdleTimeout
|
||||
|
||||
@@ -72,7 +72,6 @@ type CreateConfigControllerOptions struct {
|
||||
CreateConfigOptions
|
||||
|
||||
CtrlPort string
|
||||
MgmtListener string
|
||||
EdgeIdentityEnrollmentDuration time.Duration
|
||||
EdgeRouterEnrollmentDuration time.Duration
|
||||
}
|
||||
@@ -101,19 +100,18 @@ func NewCmdCreateConfigController() *cobra.Command {
|
||||
logrus.SetOutput(logOut)
|
||||
}
|
||||
|
||||
data.populateEnvVars()
|
||||
data.populateDefaults()
|
||||
data.populateConfigValues()
|
||||
|
||||
// Update controller specific values with configOptions passed in if the argument was provided or the value is currently blank
|
||||
if data.Controller.Port == "" || controllerOptions.CtrlPort != constants.DefaultZitiControllerPort {
|
||||
data.Controller.Port = controllerOptions.CtrlPort
|
||||
if data.Controller.Ctrl.ListenerPort == "" || controllerOptions.CtrlPort != constants.DefaultCtrlListenerPort {
|
||||
data.Controller.Ctrl.ListenerPort = controllerOptions.CtrlPort
|
||||
}
|
||||
// Update with the passed in arg if it's not the default (CLI flag should override other methods of modifying these values)
|
||||
if controllerOptions.EdgeIdentityEnrollmentDuration != edge.DefaultEdgeEnrollmentDuration {
|
||||
data.Controller.EdgeIdentityDuration = controllerOptions.EdgeIdentityEnrollmentDuration
|
||||
data.Controller.EdgeEnrollment.EdgeIdentityDuration = controllerOptions.EdgeIdentityEnrollmentDuration
|
||||
}
|
||||
if controllerOptions.EdgeRouterEnrollmentDuration != edge.DefaultEdgeEnrollmentDuration {
|
||||
data.Controller.EdgeRouterDuration = controllerOptions.EdgeRouterEnrollmentDuration
|
||||
data.Controller.EdgeEnrollment.EdgeRouterDuration = controllerOptions.EdgeRouterEnrollmentDuration
|
||||
}
|
||||
|
||||
// process identity information
|
||||
@@ -140,7 +138,7 @@ func NewCmdCreateConfigController() *cobra.Command {
|
||||
}
|
||||
|
||||
func (options *CreateConfigControllerOptions) addFlags(cmd *cobra.Command) {
|
||||
cmd.Flags().StringVar(&options.CtrlPort, optionCtrlPort, constants.DefaultZitiControllerPort, "port used for the router to controller communication")
|
||||
cmd.Flags().StringVar(&options.CtrlPort, optionCtrlPort, constants.DefaultCtrlListenerPort, "port used for the router to controller communication")
|
||||
cmd.Flags().StringVar(&options.DatabaseFile, optionDatabaseFile, "ctrl.db", "location of the database file")
|
||||
cmd.Flags().DurationVar(&options.EdgeIdentityEnrollmentDuration, optionEdgeIdentityEnrollmentDuration, edge.DefaultEdgeEnrollmentDuration, "the edge identity enrollment duration, use 0h0m0s format")
|
||||
cmd.Flags().DurationVar(&options.EdgeRouterEnrollmentDuration, optionEdgeRouterEnrollmentDuration, edge.DefaultEdgeEnrollmentDuration, "the edge router enrollment duration, use 0h0m0s format")
|
||||
@@ -181,18 +179,6 @@ func (options *CreateConfigControllerOptions) run(data *ConfigTemplateValues) er
|
||||
return nil
|
||||
}
|
||||
|
||||
func hostnameOrNetworkName() string {
|
||||
val := os.Getenv("ZITI_NETWORK_NAME")
|
||||
if val == "" {
|
||||
h, err := os.Hostname()
|
||||
if err != nil {
|
||||
return "localhost"
|
||||
}
|
||||
return h
|
||||
}
|
||||
return val
|
||||
}
|
||||
|
||||
func SetControllerIdentity(data *ControllerTemplateValues) {
|
||||
SetControllerIdentityCert(data)
|
||||
SetControllerIdentityServerCert(data)
|
||||
@@ -200,32 +186,32 @@ func SetControllerIdentity(data *ControllerTemplateValues) {
|
||||
SetControllerIdentityCA(data)
|
||||
}
|
||||
func SetControllerIdentityCert(c *ControllerTemplateValues) {
|
||||
val := os.Getenv(constants.ZitiCtrlIdentityCertVarName)
|
||||
val := os.Getenv(constants.PkiCtrlCertVarName)
|
||||
if val == "" {
|
||||
val = workingDir + "/" + hostnameOrNetworkName() + ".cert" // default
|
||||
val = workingDir + "/" + helpers2.HostnameOrNetworkName() + ".cert" // default
|
||||
}
|
||||
c.IdentityCert = helpers2.NormalizePath(val)
|
||||
c.Identity.Cert = helpers2.NormalizePath(val)
|
||||
}
|
||||
func SetControllerIdentityServerCert(c *ControllerTemplateValues) {
|
||||
val := os.Getenv(constants.ZitiCtrlIdentityServerCertVarName)
|
||||
val := os.Getenv(constants.PkiCtrlServerCertVarName)
|
||||
if val == "" {
|
||||
val = workingDir + "/" + hostnameOrNetworkName() + ".server.chain.cert" // default
|
||||
val = workingDir + "/" + helpers2.HostnameOrNetworkName() + ".server.chain.cert" // default
|
||||
}
|
||||
c.IdentityServerCert = helpers2.NormalizePath(val)
|
||||
c.Identity.ServerCert = helpers2.NormalizePath(val)
|
||||
}
|
||||
func SetControllerIdentityKey(c *ControllerTemplateValues) {
|
||||
val := os.Getenv(constants.ZitiCtrlIdentityKeyVarName)
|
||||
val := os.Getenv(constants.PkiCtrlKeyVarName)
|
||||
if val == "" {
|
||||
val = workingDir + "/" + hostnameOrNetworkName() + ".key" // default
|
||||
val = workingDir + "/" + helpers2.HostnameOrNetworkName() + ".key" // default
|
||||
}
|
||||
c.IdentityKey = helpers2.NormalizePath(val)
|
||||
c.Identity.Key = helpers2.NormalizePath(val)
|
||||
}
|
||||
func SetControllerIdentityCA(c *ControllerTemplateValues) {
|
||||
val := os.Getenv(constants.ZitiCtrlIdentityCAVarName)
|
||||
val := os.Getenv(constants.PkiCtrlCAVarName)
|
||||
if val == "" {
|
||||
val = workingDir + "/" + hostnameOrNetworkName() + ".ca" // default
|
||||
val = workingDir + "/" + helpers2.HostnameOrNetworkName() + ".ca" // default
|
||||
}
|
||||
c.IdentityCA = helpers2.NormalizePath(val)
|
||||
c.Identity.Ca = helpers2.NormalizePath(val)
|
||||
}
|
||||
|
||||
func SetEdgeConfig(data *ControllerTemplateValues) {
|
||||
@@ -233,18 +219,19 @@ func SetEdgeConfig(data *ControllerTemplateValues) {
|
||||
SetEdgeSigningKey(data)
|
||||
}
|
||||
func SetEdgeSigningCert(c *ControllerTemplateValues) {
|
||||
val := os.Getenv(constants.ZitiSigningCertVarName)
|
||||
val := os.Getenv(constants.PkiSignerCertVarName)
|
||||
if val == "" {
|
||||
val = workingDir + "/" + hostnameOrNetworkName() + ".signing.cert" // default
|
||||
val = workingDir + "/" + helpers2.HostnameOrNetworkName() + ".signing.cert" // default
|
||||
}
|
||||
c.Edge.ZitiSigningCert = helpers2.NormalizePath(val)
|
||||
c.EdgeEnrollment.SigningCert = helpers2.NormalizePath(val)
|
||||
|
||||
}
|
||||
func SetEdgeSigningKey(c *ControllerTemplateValues) {
|
||||
val := os.Getenv(constants.ZitiSigningKeyVarName)
|
||||
val := os.Getenv(constants.PkiSignerKeyVarName)
|
||||
if val == "" {
|
||||
val = workingDir + "/" + hostnameOrNetworkName() + ".signing.key" // default
|
||||
val = workingDir + "/" + helpers2.HostnameOrNetworkName() + ".signing.key" // default
|
||||
}
|
||||
c.Edge.ZitiSigningKey = helpers2.NormalizePath(val)
|
||||
c.EdgeEnrollment.SigningCertKey = helpers2.NormalizePath(val)
|
||||
}
|
||||
|
||||
func SetWebConfig(data *ControllerTemplateValues) {
|
||||
@@ -254,30 +241,30 @@ func SetWebConfig(data *ControllerTemplateValues) {
|
||||
SetWebIdentityCA(data)
|
||||
}
|
||||
func SetWebIdentityCert(c *ControllerTemplateValues) {
|
||||
val := os.Getenv(constants.ZitiEdgeCtrlIdentityCertVarName)
|
||||
val := os.Getenv(constants.CtrlPkiEdgeCertVarName)
|
||||
if val == "" {
|
||||
val = c.IdentityCert //default
|
||||
val = c.Identity.Cert //default
|
||||
}
|
||||
c.Edge.IdentityCert = helpers2.NormalizePath(val)
|
||||
c.Web.Identity.Cert = helpers2.NormalizePath(val)
|
||||
}
|
||||
func SetWebIdentityServerCert(c *ControllerTemplateValues) {
|
||||
val := os.Getenv(constants.ZitiEdgeCtrlIdentityServerCertVarName)
|
||||
val := os.Getenv(constants.CtrlPkiEdgeServerCertVarName)
|
||||
if val == "" {
|
||||
val = c.IdentityServerCert //default
|
||||
val = c.Identity.ServerCert //default
|
||||
}
|
||||
c.Edge.IdentityServerCert = helpers2.NormalizePath(val)
|
||||
c.Web.Identity.ServerCert = helpers2.NormalizePath(val)
|
||||
}
|
||||
func SetWebIdentityKey(c *ControllerTemplateValues) {
|
||||
val := os.Getenv(constants.ZitiEdgeCtrlIdentityKeyVarName)
|
||||
val := os.Getenv(constants.CtrlPkiEdgeKeyVarName)
|
||||
if val == "" {
|
||||
val = c.IdentityKey //default
|
||||
val = c.Identity.Key //default
|
||||
}
|
||||
c.Edge.IdentityKey = helpers2.NormalizePath(val)
|
||||
c.Web.Identity.Key = helpers2.NormalizePath(val)
|
||||
}
|
||||
func SetWebIdentityCA(c *ControllerTemplateValues) {
|
||||
val := os.Getenv(constants.ZitiEdgeCtrlIdentityCAVarName)
|
||||
val := os.Getenv(constants.CtrlPkiEdgeCAVarName)
|
||||
if val == "" {
|
||||
val = c.IdentityCA //default
|
||||
val = c.Identity.Ca //default
|
||||
}
|
||||
c.Edge.IdentityCA = helpers2.NormalizePath(val)
|
||||
c.Web.Identity.Ca = helpers2.NormalizePath(val)
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -25,6 +25,7 @@ import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"strconv"
|
||||
"strings"
|
||||
"text/template"
|
||||
|
||||
@@ -83,8 +84,7 @@ func NewCmdCreateConfigEnvironment() *cobra.Command {
|
||||
Long: createConfigEnvironmentLong,
|
||||
Example: createConfigEnvironmentExample,
|
||||
PreRun: func(cmd *cobra.Command, args []string) {
|
||||
data.populateEnvVars()
|
||||
data.populateDefaults()
|
||||
data.populateConfigValues()
|
||||
// Set router identities
|
||||
SetZitiRouterIdentity(&data.Router, validateRouterName(""))
|
||||
// Set up other identity info
|
||||
@@ -94,34 +94,35 @@ func NewCmdCreateConfigEnvironment() *cobra.Command {
|
||||
|
||||
environmentOptions.EnvVars = []EnvVar{
|
||||
{constants.ZitiHomeVarName, constants.ZitiHomeVarDescription, data.ZitiHome},
|
||||
{constants.ZitiCtrlNameVarName, constants.ZitiCtrlNameVarDescription, data.Controller.Name},
|
||||
{constants.ZitiCtrlPortVarName, constants.ZitiCtrlPortVarDescription, data.Controller.Port},
|
||||
{constants.ZitiEdgeRouterRawNameVarName, constants.ZitiEdgeRouterRawNameVarDescription, data.Router.Edge.Hostname},
|
||||
{constants.PkiCtrlCertVarName, constants.PkiCtrlCertVarDescription, data.Controller.Identity.Cert},
|
||||
{constants.PkiCtrlServerCertVarName, constants.PkiCtrlServerCertVarDescription, data.Controller.Identity.ServerCert},
|
||||
{constants.PkiCtrlKeyVarName, constants.PkiCtrlKeyVarDescription, data.Controller.Identity.Key},
|
||||
{constants.PkiCtrlCAVarName, constants.PkiCtrlCAVarDescription, data.Controller.Identity.Ca},
|
||||
{constants.CtrlListenerAddressVarName, constants.CtrlListenerAddressVarDescription, data.Controller.Ctrl.ListenerAddress},
|
||||
{constants.CtrlListenerPortVarName, constants.CtrlListenerPortVarDescription, data.Controller.Ctrl.ListenerPort},
|
||||
{constants.CtrlEdgeApiAddressVarName, constants.CtrlEdgeApiAddressVarDescription, data.Controller.EdgeApi.Address},
|
||||
{constants.CtrlEdgeApiPortVarName, constants.CtrlEdgeApiPortVarDescription, data.Controller.EdgeApi.Port},
|
||||
{constants.PkiSignerCertVarName, constants.PkiSignerCertVarDescription, data.Controller.EdgeEnrollment.SigningCert},
|
||||
{constants.PkiSignerKeyVarName, constants.PkiSignerKeyVarDescription, data.Controller.EdgeEnrollment.SigningCertKey},
|
||||
{constants.CtrlEdgeIdentityEnrollmentDurationVarName, constants.CtrlEdgeIdentityEnrollmentDurationVarDescription, strconv.FormatInt(int64(data.Controller.EdgeEnrollment.EdgeIdentityDuration), 10)},
|
||||
{constants.CtrlEdgeRouterEnrollmentDurationVarName, constants.CtrlEdgeRouterEnrollmentDurationVarDescription, strconv.FormatInt(int64(data.Controller.EdgeEnrollment.EdgeRouterDuration), 10)},
|
||||
{constants.CtrlEdgeInterfaceAddressVarName, constants.CtrlEdgeInterfaceAddressVarDescription, data.Controller.Web.BindPoints.InterfaceAddress},
|
||||
{constants.CtrlEdgeInterfacePortVarName, constants.CtrlEdgeInterfacePortVarDescription, data.Controller.Web.BindPoints.InterfacePort},
|
||||
{constants.CtrlEdgeAdvertisedAddressVarName, constants.CtrlEdgeAdvertisedAddressVarDescription, data.Controller.Web.BindPoints.AddressAddress},
|
||||
{constants.CtrlEdgeAdvertisedPortVarName, constants.CtrlEdgeAdvertisedPortVarDescription, data.Controller.Web.BindPoints.AddressPort},
|
||||
{constants.CtrlPkiEdgeCertVarName, constants.CtrlPkiEdgeCertVarDescription, data.Controller.Web.Identity.Cert},
|
||||
{constants.CtrlPkiEdgeServerCertVarName, constants.CtrlPkiEdgeServerCertVarDescription, data.Controller.Web.Identity.ServerCert},
|
||||
{constants.CtrlPkiEdgeKeyVarName, constants.CtrlPkiEdgeKeyVarDescription, data.Controller.Web.Identity.Key},
|
||||
{constants.CtrlPkiEdgeCAVarName, constants.CtrlPkiEdgeCAVarDescription, data.Controller.Web.Identity.Ca},
|
||||
{constants.ZitiEdgeRouterNameVarName, constants.ZitiEdgeRouterNameVarDescription, data.Router.Name},
|
||||
{constants.ZitiEdgeRouterPortVarName, constants.ZitiEdgeRouterPortVarDescription, data.Router.Edge.Port},
|
||||
{constants.ZitiEdgeRouterListenerBindPortVarName, constants.ZitiEdgeRouterListenerBindPortVarDescription, data.Router.Edge.ListenerBindPort},
|
||||
{constants.ZitiEdgeCtrlIdentityCertVarName, constants.ZitiEdgeCtrlIdentityCertVarDescription, data.Controller.Edge.IdentityCert},
|
||||
{constants.ZitiEdgeCtrlIdentityServerCertVarName, constants.ZitiEdgeCtrlIdentityServerCertVarDescription, data.Controller.Edge.IdentityServerCert},
|
||||
{constants.ZitiEdgeCtrlIdentityKeyVarName, constants.ZitiEdgeCtrlIdentityKeyVarDescription, data.Controller.Edge.IdentityKey},
|
||||
{constants.ZitiEdgeCtrlIdentityCAVarName, constants.ZitiEdgeCtrlIdentityCAVarDescription, data.Controller.Edge.IdentityCA},
|
||||
{constants.ZitiCtrlIdentityCertVarName, constants.ZitiCtrlIdentityCertVarDescription, data.Controller.IdentityCert},
|
||||
{constants.ZitiCtrlIdentityServerCertVarName, constants.ZitiCtrlIdentityServerCertVarDescription, data.Controller.IdentityServerCert},
|
||||
{constants.ZitiCtrlIdentityKeyVarName, constants.ZitiCtrlIdentityKeyVarDescription, data.Controller.IdentityKey},
|
||||
{constants.ZitiCtrlIdentityCAVarName, constants.ZitiCtrlIdentityCAVarDescription, data.Controller.IdentityCA},
|
||||
{constants.ZitiSigningCertVarName, constants.ZitiSigningCertVarDescription, data.Controller.Edge.ZitiSigningCert},
|
||||
{constants.ZitiSigningKeyVarName, constants.ZitiSigningKeyVarDescription, data.Controller.Edge.ZitiSigningKey},
|
||||
{constants.ZitiRouterIdentityCertVarName, constants.ZitiRouterIdentityCertVarDescription, data.Router.IdentityCert},
|
||||
{constants.ZitiRouterIdentityServerCertVarName, constants.ZitiRouterIdentityServerCertVarDescription, data.Router.IdentityServerCert},
|
||||
{constants.ZitiRouterIdentityKeyVarName, constants.ZitiRouterIdentityKeyVarDescription, data.Router.IdentityKey},
|
||||
{constants.ZitiRouterIdentityCAVarName, constants.ZitiRouterIdentityCAVarDescription, data.Router.IdentityCA},
|
||||
{constants.ZitiEdgeRouterIPOverrideVarName, constants.ZitiEdgeRouterIPOverrideVarDescription, data.Router.Edge.IPOverride},
|
||||
{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},
|
||||
{constants.ZitiEdgeCtrlAdvertisedHostPortVarName, constants.ZitiEdgeCtrlAdvertisedHostPortVarDescription, data.Controller.Edge.AdvertisedHostPort},
|
||||
{constants.ZitiEdgeCtrlAdvertisedPortVarName, constants.ZitiEdgeCtrlAdvertisedPortVarDescription, data.Controller.Edge.AdvertisedPort},
|
||||
{constants.ZitiEdgeIdentityEnrollmentDurationVarName, constants.ZitiEdgeIdentityEnrollmentDurationVarDescription, data.Controller.EdgeIdentityDuration.String()},
|
||||
{constants.ZitiEdgeRouterEnrollmentDurationVarName, constants.ZitiEdgeRouterEnrollmentDurationVarDescription, data.Controller.EdgeRouterDuration.String()},
|
||||
}
|
||||
|
||||
// Setup logging
|
||||
@@ -187,16 +188,32 @@ func NewCmdCreateConfigEnvironment() *cobra.Command {
|
||||
"%-40s %-50s %s\n"+
|
||||
"%-40s %-50s %s\n"+
|
||||
"%-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,
|
||||
constants.ZitiCtrlNameVarName, constants.ZitiCtrlNameVarDescription, data.Controller.Name,
|
||||
constants.ZitiCtrlAdvertisedAddressVarName, constants.ZitiCtrlAdvertisedAddressVarDescription, data.Controller.AdvertisedAddress,
|
||||
constants.ZitiCtrlListenerAddressVarName, constants.ZitiCtrlListenerAddressVarDescription, data.Controller.ListenerAddress,
|
||||
constants.ZitiEdgeCtrlListenerHostPortVarName, constants.ZitiEdgeCtrlListenerHostPortVarDescription, data.Controller.Edge.ListenerHostPort,
|
||||
constants.ZitiEdgeCtrlAdvertisedHostPortVarName, constants.ZitiEdgeCtrlAdvertisedHostPortVarDescription, data.Controller.Edge.AdvertisedHostPort,
|
||||
constants.ZitiEdgeCtrlAdvertisedPortVarName, constants.ZitiEdgeCtrlAdvertisedPortVarDescription, data.Controller.Edge.AdvertisedPort,
|
||||
constants.ZitiEdgeRouterRawNameVarName, constants.ZitiEdgeRouterRawNameVarDescription, data.Router.Edge.Hostname,
|
||||
constants.PkiCtrlCertVarName, constants.PkiCtrlCertVarDescription, data.Controller.Identity.Cert,
|
||||
constants.PkiCtrlServerCertVarName, constants.PkiCtrlServerCertVarDescription, data.Controller.Identity.ServerCert,
|
||||
constants.PkiCtrlKeyVarName, constants.PkiCtrlKeyVarDescription, data.Controller.Identity.Key,
|
||||
constants.PkiCtrlCAVarName, constants.PkiCtrlCAVarDescription, data.Controller.Identity.Ca,
|
||||
constants.CtrlListenerAddressVarName, constants.CtrlListenerAddressVarDescription, data.Controller.Ctrl.ListenerAddress,
|
||||
constants.CtrlListenerPortVarName, constants.CtrlListenerPortVarDescription, data.Controller.Ctrl.ListenerPort,
|
||||
constants.CtrlEdgeApiAddressVarName, constants.CtrlEdgeApiAddressVarDescription, data.Controller.EdgeApi.Address,
|
||||
constants.CtrlEdgeApiPortVarName, constants.CtrlEdgeApiPortVarDescription, data.Controller.EdgeApi.Port,
|
||||
constants.PkiSignerCertVarName, constants.PkiSignerCertVarDescription, data.Controller.EdgeEnrollment.SigningCert,
|
||||
constants.PkiSignerKeyVarName, constants.PkiSignerKeyVarDescription, data.Controller.EdgeEnrollment.SigningCertKey,
|
||||
constants.CtrlEdgeIdentityEnrollmentDurationVarName, constants.CtrlEdgeIdentityEnrollmentDurationVarDescription, strconv.FormatInt(int64(data.Controller.EdgeEnrollment.EdgeIdentityDuration), 10),
|
||||
constants.CtrlEdgeRouterEnrollmentDurationVarName, constants.CtrlEdgeRouterEnrollmentDurationVarDescription, strconv.FormatInt(int64(data.Controller.EdgeEnrollment.EdgeRouterDuration), 10),
|
||||
constants.CtrlEdgeInterfaceAddressVarName, constants.CtrlEdgeInterfaceAddressVarDescription, data.Controller.Web.BindPoints.InterfaceAddress,
|
||||
constants.CtrlEdgeInterfacePortVarName, constants.CtrlEdgeInterfacePortVarDescription, data.Controller.Web.BindPoints.InterfacePort,
|
||||
constants.CtrlEdgeAdvertisedAddressVarName, constants.CtrlEdgeAdvertisedAddressVarDescription, data.Controller.Web.BindPoints.AddressAddress,
|
||||
constants.CtrlEdgeAdvertisedPortVarName, constants.CtrlEdgeAdvertisedPortVarDescription, data.Controller.Web.BindPoints.AddressPort,
|
||||
constants.CtrlPkiEdgeCertVarName, constants.CtrlPkiEdgeCertVarDescription, data.Controller.Web.Identity.Cert,
|
||||
constants.CtrlPkiEdgeServerCertVarName, constants.CtrlPkiEdgeServerCertVarDescription, data.Controller.Web.Identity.ServerCert,
|
||||
constants.CtrlPkiEdgeKeyVarName, constants.CtrlPkiEdgeKeyVarDescription, data.Controller.Web.Identity.Key,
|
||||
constants.CtrlPkiEdgeCAVarName, constants.CtrlPkiEdgeCAVarDescription, data.Controller.Web.Identity.Ca,
|
||||
constants.ZitiEdgeRouterNameVarName, constants.ZitiEdgeRouterNameVarDescription, data.Router.Name,
|
||||
constants.ZitiEdgeRouterPortVarName, constants.ZitiEdgeRouterPortVarDescription, data.Router.Edge.Port,
|
||||
constants.ZitiEdgeRouterListenerBindPortVarName, constants.ZitiEdgeRouterListenerBindPortVarDescription, data.Router.Edge.ListenerBindPort,
|
||||
constants.ZitiRouterIdentityCertVarName, constants.ZitiRouterIdentityCertVarDescription, data.Router.IdentityCert,
|
||||
@@ -205,18 +222,8 @@ func NewCmdCreateConfigEnvironment() *cobra.Command {
|
||||
constants.ZitiRouterIdentityCAVarName, constants.ZitiRouterIdentityCAVarDescription, data.Router.IdentityCA,
|
||||
constants.ZitiEdgeRouterIPOverrideVarName, constants.ZitiEdgeRouterIPOverrideVarDescription, data.Router.Edge.IPOverride,
|
||||
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,
|
||||
constants.ZitiCtrlIdentityCAVarName, constants.ZitiCtrlIdentityCAVarDescription, data.Controller.IdentityCA,
|
||||
constants.ZitiEdgeCtrlIdentityCertVarName, constants.ZitiEdgeCtrlIdentityCertVarDescription, data.Controller.Edge.IdentityCert,
|
||||
constants.ZitiEdgeCtrlIdentityServerCertVarName, constants.ZitiEdgeCtrlIdentityServerCertVarDescription, data.Controller.Edge.IdentityServerCert,
|
||||
constants.ZitiEdgeCtrlIdentityKeyVarName, constants.ZitiEdgeCtrlIdentityKeyVarDescription, data.Controller.Edge.IdentityKey,
|
||||
constants.ZitiEdgeCtrlIdentityCAVarName, constants.ZitiEdgeCtrlIdentityCAVarDescription, data.Controller.Edge.IdentityCA,
|
||||
constants.ZitiSigningCertVarName, constants.ZitiSigningCertVarDescription, data.Controller.Edge.ZitiSigningCert,
|
||||
constants.ZitiSigningKeyVarName, constants.ZitiSigningKeyVarDescription, data.Controller.Edge.ZitiSigningKey,
|
||||
constants.ZitiEdgeIdentityEnrollmentDurationVarName, constants.ZitiEdgeIdentityEnrollmentDurationVarDescription, fmt.Sprintf("%.0f", data.Controller.EdgeIdentityDuration.Minutes()),
|
||||
constants.ZitiEdgeRouterEnrollmentDurationVarName, constants.ZitiEdgeRouterEnrollmentDurationVarDescription, fmt.Sprintf("%.0f", data.Controller.EdgeRouterDuration.Minutes()))
|
||||
constants.CtrlEdgeIdentityEnrollmentDurationVarName, constants.CtrlEdgeIdentityEnrollmentDurationVarDescription, fmt.Sprintf("%.0f", data.Controller.EdgeEnrollment.EdgeIdentityDuration.Minutes()),
|
||||
constants.CtrlEdgeRouterEnrollmentDurationVarName, constants.CtrlEdgeRouterEnrollmentDurationVarDescription, fmt.Sprintf("%.0f", data.Controller.EdgeEnrollment.EdgeRouterDuration.Minutes()))
|
||||
|
||||
cmd.Long = createConfigLong
|
||||
|
||||
|
||||
@@ -64,8 +64,7 @@ func NewCmdCreateConfigRouter() *cobra.Command {
|
||||
logrus.SetOutput(logOut)
|
||||
}
|
||||
|
||||
data.populateEnvVars()
|
||||
data.populateDefaults()
|
||||
data.populateConfigValues()
|
||||
|
||||
// Update router data with options passed in
|
||||
data.Router.Name = validateRouterName(routerOptions.RouterName)
|
||||
|
||||
@@ -20,7 +20,6 @@ import (
|
||||
_ "embed"
|
||||
cmdhelper "github.com/openziti/ziti/ziti/cmd/helpers"
|
||||
"github.com/openziti/ziti/ziti/constants"
|
||||
"log"
|
||||
"os"
|
||||
)
|
||||
|
||||
@@ -30,38 +29,26 @@ func SetZitiRouterIdentity(r *RouterTemplateValues, routerName string) {
|
||||
SetZitiRouterIdentityKey(r, routerName)
|
||||
SetZitiRouterIdentityCA(r, routerName)
|
||||
|
||||
// Set the router name
|
||||
r.Name = routerName
|
||||
|
||||
// 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
|
||||
}
|
||||
|
||||
// Set advertised host
|
||||
advertisedHost := os.Getenv(constants.ZitiEdgeRouterAdvertisedHostVarName)
|
||||
resolvedHostname, _ := os.Hostname()
|
||||
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.ZitiEdgeRouterAdvertisedHostVarName, advertisedHost, constants.ZitiEdgeRouterIPOverrideVarName, edgeRouterIPOverride, r.Edge.Hostname)
|
||||
}
|
||||
r.Edge.AdvertisedHost = advertisedHost //finally override AdvertisedHost if provided
|
||||
r.Edge.AdvertisedHost = advertisedHost
|
||||
} else {
|
||||
if externalDNS != "" || edgeRouterRawName != "" {
|
||||
r.Edge.AdvertisedHost = r.Edge.Hostname
|
||||
} else if edgeRouterIPOverride != "" {
|
||||
// If advertised host is not provided, set to IP override, or default to resolved hostname
|
||||
if edgeRouterIPOverride != "" {
|
||||
r.Edge.AdvertisedHost = edgeRouterIPOverride
|
||||
} else {
|
||||
r.Edge.AdvertisedHost = r.Edge.Hostname //not redundant set AdvertisedHost
|
||||
r.Edge.AdvertisedHost = resolvedHostname
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,9 @@ package cmd
|
||||
import (
|
||||
"github.com/openziti/ziti/ziti/constants"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
@@ -12,65 +14,33 @@ import (
|
||||
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) {
|
||||
clearOptionsAndTemplateData()
|
||||
func TestEdgeRouterAdvertisedAddress(t *testing.T) {
|
||||
clearRouterOptionsAndTemplateData()
|
||||
routerAdvHostIp := "192.168.10.10"
|
||||
routerAdvHostDns := "controller01.zitinetwork.example.org"
|
||||
keys := map[string]string{
|
||||
"ZITI_CTRL_PORT": "80",
|
||||
"ZITI_EDGE_ROUTER_PORT": "443",
|
||||
"ZITI_CTRL_LISTENER_PORT": "80",
|
||||
"ZITI_EDGE_ROUTER_PORT": "443",
|
||||
}
|
||||
// Defaults to hostname if nothing is set
|
||||
execCreateConfigCommand(defaultArgs, keys)
|
||||
assert.Equal(t, testHostname, data.Router.Edge.AdvertisedHost, nil)
|
||||
require.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"] = ""
|
||||
// If IP override set, uses that value over hostname
|
||||
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_EDGE_ROUTER_ADVERTISED_HOST"] = routerAdvHostIp
|
||||
keys["ZITI_EDGE_ROUTER_IP_OVERRIDE"] = routerAdvHostIp
|
||||
execCreateConfigCommand(defaultArgs, keys)
|
||||
assert.Equal(t, routerAdvHostIp, data.Router.Edge.AdvertisedHost, nil)
|
||||
require.Equal(t, routerAdvHostIp, data.Router.Edge.AdvertisedHost, nil)
|
||||
|
||||
// If advertised address set, uses that over IP override or hostname
|
||||
keys["ZITI_EDGE_ROUTER_ADVERTISED_HOST"] = routerAdvHostDns
|
||||
keys["EXTERNAL_DNS"] = routerAdvHostDns
|
||||
keys["ZITI_EDGE_ROUTER_IP_OVERRIDE"] = routerAdvHostIp
|
||||
execCreateConfigCommand(defaultArgs, keys)
|
||||
assert.Equal(t, routerAdvHostDns, data.Router.Edge.AdvertisedHost, nil)
|
||||
require.Equal(t, routerAdvHostDns, data.Router.Edge.AdvertisedHost, nil)
|
||||
}
|
||||
|
||||
func TestTunnelerEnabledByDefault(t *testing.T) {
|
||||
// Setup options
|
||||
clearOptionsAndTemplateData()
|
||||
clearRouterOptionsAndTemplateData()
|
||||
routerOptions.Output = defaultOutput
|
||||
|
||||
// Create and run the CLI command without the tunnel flag
|
||||
@@ -88,7 +58,7 @@ func TestTunnelerEnabledByDefault(t *testing.T) {
|
||||
|
||||
func TestTunnelerNoneMode(t *testing.T) {
|
||||
// Setup options
|
||||
clearOptionsAndTemplateData()
|
||||
clearRouterOptionsAndTemplateData()
|
||||
routerOptions.Output = defaultOutput
|
||||
|
||||
// Create and run the CLI command with the disable tunnel flag
|
||||
@@ -109,7 +79,7 @@ func TestTunnelerNoneMode(t *testing.T) {
|
||||
|
||||
func TestTunnelerHostModeIsDefault(t *testing.T) {
|
||||
// Setup options
|
||||
clearOptionsAndTemplateData()
|
||||
clearRouterOptionsAndTemplateData()
|
||||
routerOptions.Output = defaultOutput
|
||||
|
||||
// Create and run the CLI command without the tunnel flag
|
||||
@@ -128,7 +98,7 @@ func TestTunnelerHostModeIsDefault(t *testing.T) {
|
||||
|
||||
func TestTunnelerTproxyMode(t *testing.T) {
|
||||
// Setup options
|
||||
clearOptionsAndTemplateData()
|
||||
clearRouterOptionsAndTemplateData()
|
||||
routerOptions.Output = defaultOutput
|
||||
|
||||
// Create and run the CLI command without the tunnel flag
|
||||
@@ -151,7 +121,7 @@ func TestTunnelerInvalidMode(t *testing.T) {
|
||||
expectedErrorMsg := "Unknown tunneler mode [" + invalidMode + "] provided, should be \"" + noneTunMode + "\", \"" + hostTunMode + "\", or \"" + tproxyTunMode + "\""
|
||||
|
||||
// Create the options with both flags set to true
|
||||
clearOptionsAndTemplateData()
|
||||
clearRouterOptionsAndTemplateData()
|
||||
routerOptions.Output = defaultOutput
|
||||
routerOptions.TunnelerMode = invalidMode
|
||||
|
||||
@@ -161,7 +131,7 @@ func TestTunnelerInvalidMode(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestPrivateEdgeRouterNotAdvertising(t *testing.T) {
|
||||
clearOptionsAndTemplateData()
|
||||
clearRouterOptionsAndTemplateData()
|
||||
|
||||
// Create and run the CLI command
|
||||
config := createRouterConfig([]string{"edge", "--routerName", "myRouter", "--private"})
|
||||
@@ -175,7 +145,7 @@ func TestBlankEdgeRouterNameBecomesHostname(t *testing.T) {
|
||||
blank := ""
|
||||
|
||||
// Setup options with blank router name
|
||||
clearOptionsAndTemplateData()
|
||||
clearRouterOptionsAndTemplateData()
|
||||
routerOptions.Output = defaultOutput
|
||||
routerOptions.RouterName = blank
|
||||
|
||||
@@ -191,7 +161,7 @@ func TestBlankEdgeRouterNameBecomesHostname(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDefaultZitiEdgeRouterListenerBindPort(t *testing.T) {
|
||||
expectedDefaultPort := TEST_ROUTER_LISTENER_PORT
|
||||
expectedDefaultPortStr := strconv.Itoa(testDefaultRouterListenerPort)
|
||||
|
||||
// Make sure the related env vars are unset
|
||||
_ = os.Unsetenv("ZITI_EDGE_ROUTER_LISTENER_BIND_PORT")
|
||||
@@ -200,14 +170,14 @@ func TestDefaultZitiEdgeRouterListenerBindPort(t *testing.T) {
|
||||
config := createRouterConfig([]string{"edge", "--routerName", "testRouter"})
|
||||
|
||||
// Check that the template data has been updated as expected
|
||||
assert.Equal(t, expectedDefaultPort, data.Router.Edge.ListenerBindPort)
|
||||
assert.Equal(t, expectedDefaultPortStr, data.Router.Edge.ListenerBindPort)
|
||||
|
||||
// Check that the actual config output has the correct port
|
||||
for i := 1; i < len(config.Link.Listeners); i++ {
|
||||
if config.Link.Listeners[i].Binding == "transport" {
|
||||
// Assert Bind and Advertise use Bind port value
|
||||
assert.Equal(t, expectedDefaultPort, strings.Split(config.Link.Listeners[i].Bind, ":")[1])
|
||||
assert.Equal(t, expectedDefaultPort, strings.Split(config.Link.Listeners[i].Address, ":")[1])
|
||||
require.Equal(t, expectedDefaultPortStr, strings.Split(config.Link.Listeners[i].Bind, ":")[1])
|
||||
require.Equal(t, expectedDefaultPortStr, strings.Split(config.Link.Listeners[i].Address, ":")[1])
|
||||
break
|
||||
}
|
||||
}
|
||||
@@ -239,7 +209,7 @@ 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()
|
||||
clearRouterOptionsAndTemplateData()
|
||||
routerOptions.Output = defaultOutput
|
||||
routerOptions.IsPrivate = true
|
||||
routerOptions.WssEnabled = true
|
||||
@@ -253,7 +223,7 @@ func TestEdgeRouterOutputPathDoesNotExist(t *testing.T) {
|
||||
expectedErrorMsg := "stat /IDoNotExist: no such file or directory"
|
||||
|
||||
// Set the router options
|
||||
clearOptionsAndTemplateData()
|
||||
clearRouterOptionsAndTemplateData()
|
||||
routerOptions.TunnelerMode = defaultTunnelerMode
|
||||
routerOptions.RouterName = "MyEdgeRouter"
|
||||
routerOptions.Output = "/IDoNotExist/MyEdgeRouter.yaml"
|
||||
@@ -265,8 +235,8 @@ func TestEdgeRouterOutputPathDoesNotExist(t *testing.T) {
|
||||
|
||||
func TestExecuteCreateConfigRouterEdgeHasNonBlankTemplateValues(t *testing.T) {
|
||||
routerName := "MyEdgeRouter"
|
||||
expectedNonEmptyStringFields := []string{".Router.Edge.ListenerBindPort", ".ZitiHome", ".Hostname", ".Router.Name", ".Router.IdentityCert", ".Router.IdentityServerCert", ".Router.IdentityKey", ".Router.IdentityCA", ".Router.Edge.Hostname", ".Router.Edge.Port"}
|
||||
expectedNonEmptyStringValues := []*string{&data.Router.Edge.ListenerBindPort, &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}
|
||||
expectedNonEmptyStringFields := []string{".Router.Edge.ListenerBindPort", ".ZitiHome", ".Hostname", ".Router.Name", ".Router.IdentityCert", ".Router.IdentityServerCert", ".Router.IdentityKey", ".Router.IdentityCA", ".Router.Edge.Port"}
|
||||
expectedNonEmptyStringValues := []*string{&data.Router.Edge.ListenerBindPort, &data.ZitiHome, &data.Hostname, &data.Router.Name, &data.Router.IdentityCert, &data.Router.IdentityServerCert, &data.Router.IdentityKey, &data.Router.IdentityCA, &data.Router.Edge.Port}
|
||||
expectedNonEmptyIntFields := []string{".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.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"}
|
||||
@@ -297,7 +267,7 @@ func TestEdgeRouterIPOverrideIsConsumed(t *testing.T) {
|
||||
externalIP := "123.456.78.9"
|
||||
|
||||
// Setup options
|
||||
clearOptionsAndTemplateData()
|
||||
clearRouterOptionsAndTemplateData()
|
||||
routerOptions.Output = defaultOutput
|
||||
|
||||
// Set the env variable to non-empty value
|
||||
|
||||
@@ -4,17 +4,16 @@ import (
|
||||
"github.com/openziti/ziti/ziti/constants"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
var TEST_ROUTER_LISTENER_PORT = 10080
|
||||
|
||||
func TestExecuteCreateConfigRouterFabricHasNonBlankTemplateValues(t *testing.T) {
|
||||
routerName := "MyFabricRouter"
|
||||
expectedNonEmptyStringFields := []string{".Router.Listener.BindPort", ".ZitiHome", ".Hostname", ".Router.Name", ".Router.IdentityCert", ".Router.IdentityServerCert", ".Router.IdentityKey", ".Router.IdentityCA", ".Router.Edge.Hostname", ".Router.Edge.Port"}
|
||||
expectedNonEmptyStringValues := []*string{&data.Router.Edge.ListenerBindPort, &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}
|
||||
expectedNonEmptyStringFields := []string{".Router.Listener.BindPort", ".ZitiHome", ".Hostname", ".Router.Name", ".Router.IdentityCert", ".Router.IdentityServerCert", ".Router.IdentityKey", ".Router.IdentityCA", ".Router.Edge.Port"}
|
||||
expectedNonEmptyStringValues := []*string{&data.Router.Edge.ListenerBindPort, &data.ZitiHome, &data.Hostname, &data.Router.Name, &data.Router.IdentityCert, &data.Router.IdentityServerCert, &data.Router.IdentityKey, &data.Router.IdentityCA, &data.Router.Edge.Port}
|
||||
expectedNonEmptyIntFields := []string{".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.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"}
|
||||
@@ -45,7 +44,7 @@ func TestFabricRouterIPOverrideIsConsumed(t *testing.T) {
|
||||
externalIP := "123.456.78.9"
|
||||
|
||||
// Setup options
|
||||
clearOptionsAndTemplateData()
|
||||
clearRouterOptionsAndTemplateData()
|
||||
routerOptions.Output = defaultOutput
|
||||
|
||||
// Set the env variable to non-empty value
|
||||
@@ -71,7 +70,7 @@ func TestFabricRouterIPOverrideIsConsumed(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestFabricRouterHasNoListeners(t *testing.T) {
|
||||
clearOptionsAndTemplateData()
|
||||
clearRouterOptionsAndTemplateData()
|
||||
|
||||
// Create and run the CLI command
|
||||
config := createRouterConfig([]string{"fabric", "--routerName", "myRouter"})
|
||||
@@ -85,7 +84,7 @@ func TestBlankFabricRouterNameBecomesHostname(t *testing.T) {
|
||||
blank := ""
|
||||
|
||||
// Create the options with empty router name
|
||||
clearOptionsAndTemplateData()
|
||||
clearRouterOptionsAndTemplateData()
|
||||
routerOptions.Output = defaultOutput
|
||||
routerOptions.RouterName = blank
|
||||
|
||||
@@ -104,7 +103,7 @@ func TestFabricRouterOutputPathDoesNotExist(t *testing.T) {
|
||||
expectedErrorMsg := "stat /IDoNotExist: no such file or directory"
|
||||
|
||||
// Set the router options
|
||||
clearOptionsAndTemplateData()
|
||||
clearRouterOptionsAndTemplateData()
|
||||
routerOptions.RouterName = "MyFabricRouter"
|
||||
routerOptions.Output = "/IDoNotExist/MyFabricRouter.yaml"
|
||||
|
||||
@@ -114,7 +113,7 @@ func TestFabricRouterOutputPathDoesNotExist(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDefaultZitiFabricRouterListenerBindPort(t *testing.T) {
|
||||
expectedDefaultPort := TEST_ROUTER_LISTENER_PORT
|
||||
expectedDefaultPortStr := strconv.Itoa(testDefaultRouterListenerPort)
|
||||
|
||||
// Make sure the related env vars are unset
|
||||
_ = os.Unsetenv("ZITI_EDGE_ROUTER_LISTENER_BIND_PORT")
|
||||
@@ -123,14 +122,14 @@ func TestDefaultZitiFabricRouterListenerBindPort(t *testing.T) {
|
||||
config := createRouterConfig([]string{"fabric", "--routerName", "testRouter"})
|
||||
|
||||
// Check that the template data has been updated as expected
|
||||
assert.Equal(t, expectedDefaultPort, data.Router.Edge.ListenerBindPort)
|
||||
assert.Equal(t, expectedDefaultPortStr, data.Router.Edge.ListenerBindPort)
|
||||
|
||||
// Check that the actual config output has the correct port
|
||||
for i := 1; i < len(config.Link.Listeners); i++ {
|
||||
if config.Link.Listeners[i].Binding == "transport" {
|
||||
// Assert Bind and Advertise use Bind port value
|
||||
assert.Equal(t, expectedDefaultPort, strings.Split(config.Link.Listeners[i].Bind, ":")[1])
|
||||
assert.Equal(t, expectedDefaultPort, strings.Split(config.Link.Listeners[i].Address, ":")[1])
|
||||
assert.Equal(t, expectedDefaultPortStr, strings.Split(config.Link.Listeners[i].Bind, ":")[1])
|
||||
assert.Equal(t, expectedDefaultPortStr, strings.Split(config.Link.Listeners[i].Address, ":")[1])
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,9 @@ import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
// TEST constants
|
||||
var testDefaultRouterListenerPort = 10080
|
||||
|
||||
/* BEGIN Controller config template structure */
|
||||
|
||||
type RouterConfig struct {
|
||||
@@ -120,16 +123,25 @@ func createRouterConfig(args []string) RouterConfig {
|
||||
return configStruct
|
||||
}
|
||||
|
||||
func clearOptionsAndTemplateData() {
|
||||
func execCreateConfigCommand(args []string, keys map[string]string) {
|
||||
// Setup options
|
||||
clearRouterOptionsAndTemplateData()
|
||||
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 clearRouterOptionsAndTemplateData() {
|
||||
routerOptions = CreateConfigRouterOptions{}
|
||||
data = &ConfigTemplateValues{}
|
||||
|
||||
// Unset environment variables
|
||||
envVars := getZitiEnvironmentVariables()
|
||||
for i := 0; i < len(envVars); i++ {
|
||||
_ = os.Unsetenv(envVars[i])
|
||||
}
|
||||
_ = os.Unsetenv(constants.ExternalDNSVarName)
|
||||
unsetZitiEnv()
|
||||
}
|
||||
|
||||
func TestSetZitiRouterIdentityCertDefault(t *testing.T) {
|
||||
@@ -232,54 +244,54 @@ func TestSetZitiRouterIdentityCACustom(t *testing.T) {
|
||||
assert.Equal(t, expectedCustom, rtv.IdentityCA)
|
||||
}
|
||||
|
||||
func TestSetZitiRouterIdentitySetsAllIdentitiesAndEdgeRouterRawName(t *testing.T) {
|
||||
func TestSetZitiRouterIdentitySetsAllIdentitiesAndRouterName(t *testing.T) {
|
||||
// Setup
|
||||
clearOptionsAndTemplateData()
|
||||
expectedRawName := "MyEdgeRouterRawName"
|
||||
clearRouterOptionsAndTemplateData()
|
||||
expectedName := "MyRouterName"
|
||||
blank := ""
|
||||
rtv := &RouterTemplateValues{}
|
||||
|
||||
// Check that they're all currently blank
|
||||
assert.Equal(t, blank, rtv.Edge.Hostname)
|
||||
assert.Equal(t, blank, rtv.Name)
|
||||
assert.Equal(t, blank, rtv.IdentityCert)
|
||||
assert.Equal(t, blank, rtv.IdentityServerCert)
|
||||
assert.Equal(t, blank, rtv.IdentityKey)
|
||||
assert.Equal(t, blank, rtv.IdentityCA)
|
||||
|
||||
// Set the env variable
|
||||
_ = os.Setenv(constants.ZitiEdgeRouterRawNameVarName, expectedRawName)
|
||||
_ = os.Setenv(constants.ZitiEdgeRouterNameVarName, expectedName)
|
||||
|
||||
SetZitiRouterIdentity(rtv, expectedRawName)
|
||||
SetZitiRouterIdentity(rtv, expectedName)
|
||||
|
||||
// Check that the value matches
|
||||
assert.Equal(t, expectedRawName, rtv.Edge.Hostname)
|
||||
assert.Equal(t, expectedName, rtv.Name)
|
||||
assert.NotEqualf(t, blank, rtv.IdentityCert, "Router.IdentityCert expected to have a value, instead it was blank")
|
||||
assert.NotEqualf(t, blank, rtv.IdentityServerCert, "Router.IdentityCert expected to have a value, instead it was blank")
|
||||
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 TestSetZitiRouterIdentitySetsAllIdentitiesAndEdgeRouterRawNameToHostWhenBlank(t *testing.T) {
|
||||
func TestSetZitiRouterIdentitySetsAllIdentitiesAndRouterNameToHostWhenBlank(t *testing.T) {
|
||||
// Setup
|
||||
clearOptionsAndTemplateData()
|
||||
expectedRawName, _ := os.Hostname()
|
||||
clearRouterOptionsAndTemplateData()
|
||||
expectedName, _ := os.Hostname()
|
||||
blank := ""
|
||||
rtv := &RouterTemplateValues{}
|
||||
|
||||
// Check that they're all currently blank
|
||||
assert.Equal(t, blank, rtv.Edge.Hostname)
|
||||
assert.Equal(t, blank, rtv.Name)
|
||||
assert.Equal(t, blank, rtv.IdentityCert)
|
||||
assert.Equal(t, blank, rtv.IdentityServerCert)
|
||||
assert.Equal(t, blank, rtv.IdentityKey)
|
||||
assert.Equal(t, blank, rtv.IdentityCA)
|
||||
|
||||
// Set the env variable to an empty value
|
||||
_ = os.Setenv(constants.ZitiEdgeRouterRawNameVarName, "")
|
||||
_ = os.Setenv(constants.ZitiEdgeRouterNameVarName, "")
|
||||
|
||||
SetZitiRouterIdentity(rtv, expectedRawName)
|
||||
SetZitiRouterIdentity(rtv, expectedName)
|
||||
|
||||
// Check that the value matches
|
||||
assert.Equal(t, expectedRawName, rtv.Edge.Hostname)
|
||||
assert.Equal(t, expectedName, rtv.Name)
|
||||
assert.NotEqualf(t, blank, rtv.IdentityCert, "Router.IdentityCert expected to have a value, instead it was blank")
|
||||
assert.NotEqualf(t, blank, rtv.IdentityServerCert, "Router.IdentityCert expected to have a value, instead it was blank")
|
||||
assert.NotEqualf(t, blank, rtv.IdentityKey, "Router.IdentityCert expected to have a value, instead it was blank")
|
||||
|
||||
@@ -8,35 +8,58 @@ import (
|
||||
"os"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
// These constants are hard-coded so that they may serve as a notifier. When the constants change in the source from
|
||||
// which they came, we may need to update any related documentation. If the constant is changed, the tests should fail
|
||||
// as they are expecting these hard-coded values. In which case, we update the hard-coded values and check any docs.
|
||||
const (
|
||||
testDefaultCtrlEdgeAdvertisedPort = "1280"
|
||||
testDefaultCtrlListenerAddress = "0.0.0.0"
|
||||
testDefaultCtrlListenerPort = "6262"
|
||||
testDefaultBoltCheckInterval = "30s"
|
||||
testDefaultBoltCheckTimeout = "20s"
|
||||
testDefaultBoltCheckInitialDelay = "30s"
|
||||
testDefaultEdgeOptionsIdleTimeout = "5000ms"
|
||||
testDefaultEdgeOptionsReadTimeout = "5000ms"
|
||||
testDefaultEdgeOptionsWriteTimeout = "100000ms"
|
||||
testDefaultEdgeOptionsMinTLSVersion = "TLS1.2"
|
||||
testDefaultEdgeOptionsMaxTLSVersion = "TLS1.3"
|
||||
testDefaultEdgeIdentityEnrollmentDuration = time.Duration(180) * time.Minute
|
||||
testDefaultEdgeIdentityEnrollmentStr = "180m"
|
||||
testDefaultEdgeRouterEnrollmentDuration = time.Duration(180) * time.Minute
|
||||
testDefaultEdgeRouterEnrollmentStr = "180m"
|
||||
)
|
||||
|
||||
func getZitiEnvironmentVariables() []string {
|
||||
return []string{
|
||||
"ZITI_HOME",
|
||||
"ZITI_CONTROLLER_NAME",
|
||||
"ZITI_CTRL_PORT",
|
||||
"ZITI_EDGE_ROUTER_RAWNAME",
|
||||
"ZITI_EDGE_ROUTER_NAME",
|
||||
"ZITI_EDGE_ROUTER_PORT",
|
||||
"ZITI_EDGE_CTRL_IDENTITY_CERT",
|
||||
"ZITI_EDGE_CTRL_IDENTITY_SERVER_CERT",
|
||||
"ZITI_EDGE_CTRL_IDENTITY_KEY",
|
||||
"ZITI_EDGE_CTRL_IDENTITY_CA",
|
||||
"ZITI_EDGE_CONTROLLER_PORT",
|
||||
"ZITI_CTRL_IDENTITY_CERT",
|
||||
"ZITI_CTRL_IDENTITY_SERVER_CERT",
|
||||
"ZITI_CTRL_IDENTITY_KEY",
|
||||
"ZITI_CTRL_IDENTITY_CA",
|
||||
"ZITI_SIGNING_CERT",
|
||||
"ZITI_SIGNING_KEY",
|
||||
"ZITI_PKI_CTRL_CERT",
|
||||
"ZITI_PKI_CTRL_SERVER_CERT",
|
||||
"ZITI_PKI_CTRL_KEY",
|
||||
"ZITI_PKI_CTRL_CA",
|
||||
"ZITI_CTRL_LISTENER_ADDRESS",
|
||||
"ZITI_CTRL_LISTENER_PORT",
|
||||
"ZITI_CTRL_EDGE_API_ADDRESS",
|
||||
"ZITI_CTRL_EDGE_API_PORT",
|
||||
"ZITI_PKI_SIGNER_CERT",
|
||||
"ZITI_PKI_SIGNER_KEY",
|
||||
"ZITI_CTRL_EDGE_INTERFACE_ADDRESS",
|
||||
"ZITI_CTRL_EDGE_INTERFACE_PORT",
|
||||
"ZITI_CTRL_EDGE_ADVERTISED_ADDRESS",
|
||||
"ZITI_CTRL_EDGE_ADVERTISED_PORT",
|
||||
"ZITI_PKI_EDGE_CA",
|
||||
"ZITI_PKI_EDGE_KEY",
|
||||
"ZITI_PKI_EDGE_SERVER_CERT",
|
||||
"ZITI_PKI_EDGE_CERT",
|
||||
"ZITI_ROUTER_IDENTITY_CERT",
|
||||
"ZITI_ROUTER_IDENTITY_SERVER_CERT",
|
||||
"ZITI_ROUTER_IDENTITY_KEY",
|
||||
"ZITI_ROUTER_IDENTITY_CA",
|
||||
"ZITI_EDGE_ROUTER_IP_OVERRIDE",
|
||||
"ZITI_CTRL_LISTENER_ADDRESS",
|
||||
"ZITI_CTRL_ADVERTISED_ADDRESS",
|
||||
"ZITI_CTRL_EDGE_LISTENER_HOST_PORT",
|
||||
"ZITI_EDGE_CTRL_ADVERTISED_HOST_PORT",
|
||||
"ZITI_EDGE_IDENTITY_ENROLLMENT_DURATION",
|
||||
"ZITI_EDGE_ROUTER_ENROLLMENT_DURATION",
|
||||
"ZITI_EDGE_ROUTER_ADVERTISED_HOST",
|
||||
@@ -44,6 +67,14 @@ func getZitiEnvironmentVariables() []string {
|
||||
}
|
||||
}
|
||||
|
||||
func unsetZitiEnv() {
|
||||
// Unset environment variables
|
||||
envVars := getZitiEnvironmentVariables()
|
||||
for i := 0; i < len(envVars); i++ {
|
||||
_ = os.Unsetenv(envVars[i])
|
||||
}
|
||||
}
|
||||
|
||||
// Test that all ZITI_* variables are included in the values for output
|
||||
func TestNoUnknownOutputEnvVariablesExist(t *testing.T) {
|
||||
// Get the list of ZITI_* environment variables
|
||||
@@ -234,3 +265,9 @@ func captureOutput(function func()) string {
|
||||
_, _ = io.Copy(&buffer, r)
|
||||
return buffer.String()
|
||||
}
|
||||
|
||||
func setEnvByMap[K string, V string](m map[K]V) {
|
||||
for k, v := range m {
|
||||
os.Setenv(string(k), string(v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ func NewCmdDb(out io.Writer, errOut io.Writer) *cobra.Command {
|
||||
exploreCmd := &cobra.Command{
|
||||
Use: "explore <ctrl.db>|help|version",
|
||||
Short: "Interactive CLI to explore Ziti database files",
|
||||
Args: cobra.ExactArgs(1),
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if err := zdecli.Run("ziti db explore", args[0]); err != nil {
|
||||
_, _ = errOut.Write([]byte(fmt.Sprintf("Error: %s", err)))
|
||||
|
||||
@@ -47,7 +47,6 @@ func WorkingDir() (string, error) {
|
||||
}
|
||||
|
||||
func GetZitiHome() (string, error) {
|
||||
|
||||
// Get path from env variable
|
||||
retVal := os.Getenv(constants.ZitiHomeVarName)
|
||||
|
||||
@@ -55,7 +54,8 @@ func GetZitiHome() (string, error) {
|
||||
// If not set, create a default path of the current working directory
|
||||
workingDir, err := WorkingDir()
|
||||
if err != nil {
|
||||
return "", err
|
||||
// If there is an error just use .
|
||||
workingDir = "."
|
||||
}
|
||||
|
||||
err = os.Setenv(constants.ZitiHomeVarName, workingDir)
|
||||
@@ -69,15 +69,81 @@ func GetZitiHome() (string, error) {
|
||||
return NormalizePath(retVal), nil
|
||||
}
|
||||
|
||||
func GetZitiCtrlAdvertisedAddress() (string, error) {
|
||||
func HostnameOrNetworkName() string {
|
||||
val := os.Getenv("ZITI_NETWORK_NAME")
|
||||
if val == "" {
|
||||
h, err := os.Hostname()
|
||||
if err != nil {
|
||||
return "localhost"
|
||||
}
|
||||
return h
|
||||
}
|
||||
return val
|
||||
}
|
||||
|
||||
// Use External DNS if set
|
||||
extDNS := os.Getenv(constants.ExternalDNSVarName)
|
||||
if extDNS != "" {
|
||||
return extDNS, nil
|
||||
func GetCtrlListenerAddress() (string, error) {
|
||||
return getValueOrSetAndGetDefault(constants.CtrlListenerAddressVarName, constants.DefaultCtrlListenerAddress)
|
||||
}
|
||||
|
||||
func GetCtrlListenerPort() (string, error) {
|
||||
return getValueOrSetAndGetDefault(constants.CtrlListenerPortVarName, constants.DefaultCtrlListenerPort)
|
||||
}
|
||||
|
||||
func GetCtrlEdgeApiAddress() (string, error) {
|
||||
// Get the controller's edge advertised hostname to use as the default
|
||||
defaultAddress, err := GetCtrlEdgeAdvertisedAddress()
|
||||
if err != nil {
|
||||
err := errors.Wrap(err, "Unable to get "+constants.CtrlEdgeAdvertisedAddressVarName)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
}
|
||||
|
||||
// Use hostname if external DNS and advertised address not set
|
||||
return getValueOrSetAndGetDefault(constants.CtrlEdgeApiAddressVarName, defaultAddress)
|
||||
}
|
||||
|
||||
func GetCtrlEdgeApiPort() (string, error) {
|
||||
// Get the controller's edge advertised port to use as the default
|
||||
defaultPort, err := GetCtrlEdgeAdvertisedPort()
|
||||
if err != nil {
|
||||
err := errors.Wrap(err, "Unable to get "+constants.CtrlEdgeAdvertisedPortVarName)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
}
|
||||
|
||||
return getValueOrSetAndGetDefault(constants.CtrlEdgeApiPortVarName, defaultPort)
|
||||
}
|
||||
|
||||
func GetCtrlEdgeInterfaceAddress() (string, error) {
|
||||
// Get the controller's listener hostname to use as the default
|
||||
defaultHostname, err := GetCtrlListenerAddress()
|
||||
if err != nil {
|
||||
err := errors.Wrap(err, "Unable to get "+constants.CtrlListenerAddressVarName)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
}
|
||||
|
||||
return getValueOrSetAndGetDefault(constants.CtrlEdgeInterfaceAddressVarName, defaultHostname)
|
||||
}
|
||||
|
||||
func GetCtrlEdgeInterfacePort() (string, error) {
|
||||
// Get the controller's edge advertised port to use as the default
|
||||
defaultPort, err := GetCtrlEdgeAdvertisedPort()
|
||||
if err != nil {
|
||||
err := errors.Wrap(err, "Unable to get "+constants.CtrlEdgeAdvertisedPortVarName)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
}
|
||||
|
||||
return getValueOrSetAndGetDefault(constants.CtrlEdgeInterfacePortVarName, defaultPort)
|
||||
}
|
||||
|
||||
func GetCtrlEdgeAdvertisedAddress() (string, error) {
|
||||
|
||||
// Use hostname if edge advertised address not set
|
||||
hostname, err := os.Hostname()
|
||||
if err != nil {
|
||||
err := errors.Wrap(err, "Unable to get hostname")
|
||||
@@ -86,19 +152,11 @@ func GetZitiCtrlAdvertisedAddress() (string, error) {
|
||||
}
|
||||
}
|
||||
|
||||
return getValueOrSetAndGetDefault(constants.ZitiCtrlAdvertisedAddressVarName, hostname)
|
||||
return getValueOrSetAndGetDefault(constants.CtrlEdgeAdvertisedAddressVarName, hostname)
|
||||
}
|
||||
|
||||
func GetZitiCtrlPort() (string, error) {
|
||||
return getValueOrSetAndGetDefault(constants.ZitiCtrlPortVarName, constants.DefaultZitiControllerPort)
|
||||
}
|
||||
|
||||
func GetZitiCtrlListenerAddress() (string, error) {
|
||||
return getValueOrSetAndGetDefault(constants.ZitiCtrlListenerAddressVarName, constants.DefaultZitiControllerListenerAddress)
|
||||
}
|
||||
|
||||
func GetZitiCtrlName() (string, error) {
|
||||
return getValueOrSetAndGetDefault(constants.ZitiCtrlNameVarName, constants.DefaultZitiControllerName)
|
||||
func GetCtrlEdgeAdvertisedPort() (string, error) {
|
||||
return getValueOrSetAndGetDefault(constants.CtrlEdgeAdvertisedPortVarName, constants.DefaultCtrlEdgeAdvertisedPort)
|
||||
}
|
||||
|
||||
func GetZitiEdgeRouterPort() (string, error) {
|
||||
@@ -109,62 +167,17 @@ func GetZitiEdgeRouterListenerBindPort() (string, error) {
|
||||
return getValueOrSetAndGetDefault(constants.ZitiEdgeRouterListenerBindPortVarName, constants.DefaultZitiEdgeRouterListenerBindPort)
|
||||
}
|
||||
|
||||
func GetZitiEdgeCtrlListenerHostPort() (string, error) {
|
||||
// Get the edge controller port to use as the default
|
||||
edgeCtrlPort, err := GetZitiEdgeCtrlAdvertisedPort()
|
||||
func GetCtrlEdgeIdentityEnrollmentDuration() (time.Duration, error) {
|
||||
retVal, err := getValueOrSetAndGetDefault(constants.CtrlEdgeIdentityEnrollmentDurationVarName, strconv.FormatInt(int64(edge.DefaultEdgeEnrollmentDuration.Minutes()), 10))
|
||||
if err != nil {
|
||||
err := errors.Wrap(err, "Unable to get "+constants.ZitiEdgeCtrlAdvertisedPortVarName)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
}
|
||||
|
||||
return getValueOrSetAndGetDefault(constants.ZitiEdgeCtrlListenerHostPortVarName, constants.DefaultZitiEdgeListenerHost+":"+edgeCtrlPort)
|
||||
}
|
||||
|
||||
func GetZitiEdgeCtrlAdvertisedHostPort() (string, error) {
|
||||
|
||||
port, err := GetZitiEdgeCtrlAdvertisedPort()
|
||||
if err != nil {
|
||||
err := errors.Wrap(err, "Unable to get "+constants.ZitiEdgeCtrlAdvertisedPortVarName)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
}
|
||||
|
||||
// Use External DNS if set
|
||||
extDNS := os.Getenv(constants.ExternalDNSVarName)
|
||||
if extDNS != "" {
|
||||
return extDNS + ":" + port, nil
|
||||
}
|
||||
|
||||
// Use hostname and advertised port if advertised host port env var not set
|
||||
hostname, err := os.Hostname()
|
||||
if err != nil {
|
||||
err := errors.Wrap(err, "Unable to get hostname")
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
}
|
||||
|
||||
return getValueOrSetAndGetDefault(constants.ZitiEdgeCtrlAdvertisedHostPortVarName, hostname+":"+port)
|
||||
}
|
||||
|
||||
func GetZitiEdgeCtrlAdvertisedPort() (string, error) {
|
||||
return getValueOrSetAndGetDefault(constants.ZitiEdgeCtrlAdvertisedPortVarName, constants.DefaultZitiEdgeAPIPort)
|
||||
}
|
||||
|
||||
func GetZitiEdgeIdentityEnrollmentDuration() (time.Duration, error) {
|
||||
retVal, err := getValueOrSetAndGetDefault(constants.ZitiEdgeIdentityEnrollmentDurationVarName, strconv.FormatInt(int64(edge.DefaultEdgeEnrollmentDuration.Minutes()), 10))
|
||||
if err != nil {
|
||||
err := errors.Wrap(err, "Unable to get "+constants.ZitiEdgeIdentityEnrollmentDurationVarDescription)
|
||||
err := errors.Wrap(err, "Unable to get "+constants.CtrlEdgeIdentityEnrollmentDurationVarDescription)
|
||||
if err != nil {
|
||||
return edge.DefaultEdgeEnrollmentDuration, err
|
||||
}
|
||||
}
|
||||
retValInt, err := strconv.Atoi(retVal)
|
||||
if err != nil {
|
||||
err := errors.Wrap(err, "Unable to get "+constants.ZitiEdgeIdentityEnrollmentDurationVarDescription)
|
||||
err := errors.Wrap(err, "Unable to get "+constants.CtrlEdgeIdentityEnrollmentDurationVarDescription)
|
||||
if err != nil {
|
||||
return edge.DefaultEdgeEnrollmentDuration, err
|
||||
}
|
||||
@@ -173,17 +186,17 @@ func GetZitiEdgeIdentityEnrollmentDuration() (time.Duration, error) {
|
||||
return time.Duration(retValInt) * time.Minute, nil
|
||||
}
|
||||
|
||||
func GetZitiEdgeRouterEnrollmentDuration() (time.Duration, error) {
|
||||
retVal, err := getValueOrSetAndGetDefault(constants.ZitiEdgeRouterEnrollmentDurationVarName, strconv.FormatInt(int64(edge.DefaultEdgeEnrollmentDuration.Minutes()), 10))
|
||||
func GetCtrlEdgeRouterEnrollmentDuration() (time.Duration, error) {
|
||||
retVal, err := getValueOrSetAndGetDefault(constants.CtrlEdgeRouterEnrollmentDurationVarName, strconv.FormatInt(int64(edge.DefaultEdgeEnrollmentDuration.Minutes()), 10))
|
||||
if err != nil {
|
||||
err := errors.Wrap(err, "Unable to get "+constants.ZitiEdgeRouterEnrollmentDurationVarDescription)
|
||||
err := errors.Wrap(err, "Unable to get "+constants.CtrlEdgeRouterEnrollmentDurationVarDescription)
|
||||
if err != nil {
|
||||
return edge.DefaultEdgeEnrollmentDuration, err
|
||||
}
|
||||
}
|
||||
retValInt, err := strconv.Atoi(retVal)
|
||||
if err != nil {
|
||||
err := errors.Wrap(err, "Unable to get "+constants.ZitiEdgeRouterEnrollmentDurationVarDescription)
|
||||
err := errors.Wrap(err, "Unable to get "+constants.CtrlEdgeRouterEnrollmentDurationVarDescription)
|
||||
if err != nil {
|
||||
return edge.DefaultEdgeEnrollmentDuration, err
|
||||
}
|
||||
|
||||
+109
-261
@@ -10,16 +10,12 @@ import (
|
||||
)
|
||||
|
||||
func TestHomeDirHasNoWindowsSlashes(t *testing.T) {
|
||||
|
||||
value := HomeDir()
|
||||
|
||||
assert.Zero(t, strings.Count(value, "\\"))
|
||||
|
||||
}
|
||||
|
||||
func TestWorkingDirHasNoWindowsSlashes(t *testing.T) {
|
||||
value, _ := WorkingDir()
|
||||
|
||||
assert.Zero(t, strings.Count(value, "\\"))
|
||||
}
|
||||
|
||||
@@ -54,7 +50,7 @@ func TestGetZitiHomeWhenSet(t *testing.T) {
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
func TestGetZitiHomeWhenSetWithWindowsSlashes(t *testing.T) {
|
||||
func TestGetHomeWhenSetWithWindowsSlashes(t *testing.T) {
|
||||
// Setup
|
||||
varName := "ZITI_HOME"
|
||||
expectedValue := "/path/to/ziti/home"
|
||||
@@ -67,16 +63,16 @@ func TestGetZitiHomeWhenSetWithWindowsSlashes(t *testing.T) {
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
func TestGetZitiCtrlAdvertisedAddressWhenUnset(t *testing.T) {
|
||||
func TestGetCtrlEdgeAdvertisedAddressWhenUnset(t *testing.T) {
|
||||
// Setup
|
||||
varName := "ZITI_CTRL_ADVERTISED_ADDRESS"
|
||||
varName := "ZITI_CTRL_EDGE_ADVERTISED_ADDRESS"
|
||||
|
||||
// Ensure the variable is unset
|
||||
_ = os.Unsetenv(varName)
|
||||
expectedValue, _ := os.Hostname()
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetZitiCtrlAdvertisedAddress()
|
||||
actualValue, _ := GetCtrlEdgeAdvertisedAddress()
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
|
||||
// The env variable should be populated with the expected value
|
||||
@@ -84,46 +80,29 @@ func TestGetZitiCtrlAdvertisedAddressWhenUnset(t *testing.T) {
|
||||
assert.Equal(t, expectedValue, envValue)
|
||||
}
|
||||
|
||||
func TestGetZitiCtrlAdvertisedAddressWhenSet(t *testing.T) {
|
||||
func TestGetCtrlEdgeAdvertisedAddressWhenSet(t *testing.T) {
|
||||
// Setup
|
||||
varName := "ZITI_CTRL_ADVERTISED_ADDRESS"
|
||||
varName := "ZITI_CTRL_EDGE_ADVERTISED_ADDRESS"
|
||||
expectedValue := "localhost"
|
||||
|
||||
// Set the env variable
|
||||
_ = os.Setenv(varName, expectedValue)
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetZitiCtrlAdvertisedAddress()
|
||||
actualValue, _ := GetCtrlEdgeAdvertisedAddress()
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
// Confirm that EXTERNAL_DNS is used over ZITI_CTRL_ADVERTISED_ADDRESS
|
||||
func TestGetZitiCtrlAdvertisedAddressWhenExtDNSSet(t *testing.T) {
|
||||
func TestGetCtrlPortWhenUnset(t *testing.T) {
|
||||
// Setup
|
||||
ctrlAdvAddressVarName := "ZITI_CTRL_ADVERTISED_ADDRESS"
|
||||
ctrlAdvAddressValue := "advertisedAddress"
|
||||
extDNSVarName := "EXTERNAL_DNS"
|
||||
externalDNSValue := "myexternaldns"
|
||||
|
||||
// Set the env variable
|
||||
_ = os.Setenv(ctrlAdvAddressVarName, ctrlAdvAddressValue)
|
||||
_ = os.Setenv(extDNSVarName, externalDNSValue)
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetZitiCtrlAdvertisedAddress()
|
||||
assert.Equal(t, externalDNSValue, actualValue)
|
||||
}
|
||||
|
||||
func TestGetZitiCtrlPortWhenUnset(t *testing.T) {
|
||||
// Setup
|
||||
varName := "ZITI_CTRL_PORT"
|
||||
varName := "ZITI_CTRL_LISTENER_PORT"
|
||||
|
||||
// Ensure the variable is unset
|
||||
_ = os.Unsetenv(varName)
|
||||
expectedValue := "6262"
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetZitiCtrlPort()
|
||||
actualValue, _ := GetCtrlListenerPort()
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
|
||||
// The env variable should be populated with the expected value
|
||||
@@ -131,20 +110,20 @@ func TestGetZitiCtrlPortWhenUnset(t *testing.T) {
|
||||
assert.Equal(t, expectedValue, envValue)
|
||||
}
|
||||
|
||||
func TestGetZitiCtrlPortWhenSet(t *testing.T) {
|
||||
func TestGetCtrlPortWhenSet(t *testing.T) {
|
||||
// Setup
|
||||
varName := "ZITI_CTRL_PORT"
|
||||
varName := "ZITI_CTRL_LISTENER_PORT"
|
||||
expectedValue := "1234"
|
||||
|
||||
// Set the env variable
|
||||
_ = os.Setenv(varName, expectedValue)
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetZitiCtrlPort()
|
||||
actualValue, _ := GetCtrlListenerPort()
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
func TestGetZitiCtrlListenerAddressWhenUnset(t *testing.T) {
|
||||
func TestGetCtrlListenerAddressWhenUnset(t *testing.T) {
|
||||
// Setup
|
||||
varName := "ZITI_CTRL_LISTENER_ADDRESS"
|
||||
|
||||
@@ -153,7 +132,7 @@ func TestGetZitiCtrlListenerAddressWhenUnset(t *testing.T) {
|
||||
expectedValue := "0.0.0.0"
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetZitiCtrlListenerAddress()
|
||||
actualValue, _ := GetCtrlListenerAddress()
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
|
||||
// The env variable should be populated with the expected value
|
||||
@@ -161,7 +140,7 @@ func TestGetZitiCtrlListenerAddressWhenUnset(t *testing.T) {
|
||||
assert.Equal(t, expectedValue, envValue)
|
||||
}
|
||||
|
||||
func TestGetZitiCtrlListenerAddressWhenSet(t *testing.T) {
|
||||
func TestGetCtrlListenerAddressWhenSet(t *testing.T) {
|
||||
// Setup
|
||||
varName := "ZITI_CTRL_LISTENER_ADDRESS"
|
||||
expectedValue := "localhost"
|
||||
@@ -170,41 +149,11 @@ func TestGetZitiCtrlListenerAddressWhenSet(t *testing.T) {
|
||||
_ = os.Setenv(varName, expectedValue)
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetZitiCtrlListenerAddress()
|
||||
actualValue, _ := GetCtrlListenerAddress()
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
func TestGetZitiCtrlNameWhenUnset(t *testing.T) {
|
||||
// Setup
|
||||
varName := "ZITI_CONTROLLER_NAME"
|
||||
|
||||
// Ensure the variable is unset
|
||||
_ = os.Unsetenv(varName)
|
||||
expectedValue := "controller"
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetZitiCtrlName()
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
|
||||
// The env variable should be populated with the expected value
|
||||
envValue := os.Getenv(varName)
|
||||
assert.Equal(t, expectedValue, envValue)
|
||||
}
|
||||
|
||||
func TestGetZitiCtrlNameWhenSet(t *testing.T) {
|
||||
// Setup
|
||||
varName := "ZITI_CONTROLLER_NAME"
|
||||
expectedValue := "MyController"
|
||||
|
||||
// Set the env variable
|
||||
_ = os.Setenv(varName, expectedValue)
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetZitiCtrlName()
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
func TestGetZitiEdgeRouterPortWhenUnset(t *testing.T) {
|
||||
func TestGetEdgeRouterPortWhenUnset(t *testing.T) {
|
||||
// Setup
|
||||
varName := "ZITI_EDGE_ROUTER_PORT"
|
||||
|
||||
@@ -221,7 +170,7 @@ func TestGetZitiEdgeRouterPortWhenUnset(t *testing.T) {
|
||||
assert.Equal(t, expectedValue, envValue)
|
||||
}
|
||||
|
||||
func TestGetZitiEdgeRouterPortWhenSet(t *testing.T) {
|
||||
func TestGetEdgeRouterPortWhenSet(t *testing.T) {
|
||||
// Setup
|
||||
varName := "ZITI_EDGE_ROUTER_PORT"
|
||||
expectedValue := "4321"
|
||||
@@ -234,213 +183,112 @@ func TestGetZitiEdgeRouterPortWhenSet(t *testing.T) {
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
func TestGetZitiEdgeCtrlListenerHostPortWhenUnset(t *testing.T) {
|
||||
func TestGetCtrlEdgeAdvertisedPortWhenNotSet(t *testing.T) {
|
||||
// Setup
|
||||
varName := "ZITI_CTRL_EDGE_LISTENER_HOST_PORT"
|
||||
|
||||
// Ensure the variable is unset
|
||||
_ = os.Unsetenv(varName)
|
||||
expectedValue := "0.0.0.0:1280"
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetZitiEdgeCtrlListenerHostPort()
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
|
||||
// The env variable should be populated with the expected value
|
||||
envValue := os.Getenv(varName)
|
||||
assert.Equal(t, expectedValue, envValue)
|
||||
}
|
||||
|
||||
func TestGetZitiEdgeCtrlListenerHostPortWhenSet(t *testing.T) {
|
||||
// Setup
|
||||
varName := "ZITI_CTRL_EDGE_LISTENER_HOST_PORT"
|
||||
expectedValue := "localhost:1234"
|
||||
|
||||
// Set the env variable
|
||||
_ = os.Setenv(varName, expectedValue)
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetZitiEdgeCtrlListenerHostPort()
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
func TestGetZitiEdgeCtrlAdvertisedHostPortWhenUnset(t *testing.T) {
|
||||
// Setup
|
||||
edgeCtrlAdvHostPortVarName := "ZITI_EDGE_CTRL_ADVERTISED_HOST_PORT"
|
||||
extDNSVarName := "EXTERNAL_DNS"
|
||||
|
||||
// Set up env variables
|
||||
_ = os.Unsetenv(extDNSVarName)
|
||||
_ = os.Unsetenv(edgeCtrlAdvHostPortVarName)
|
||||
hostname, _ := os.Hostname()
|
||||
expectedValue := hostname + ":1280"
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetZitiEdgeCtrlAdvertisedHostPort()
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
|
||||
// The env variable should be populated with the expected value
|
||||
envValue := os.Getenv(edgeCtrlAdvHostPortVarName)
|
||||
assert.Equal(t, expectedValue, envValue)
|
||||
}
|
||||
|
||||
func TestGetZitiEdgeCtrlAdvertisedHostPortWhenSet(t *testing.T) {
|
||||
// Setup
|
||||
edgeCtrlAdvHostPortVarName := "ZITI_EDGE_CTRL_ADVERTISED_HOST_PORT"
|
||||
extDNSVarName := "EXTERNAL_DNS"
|
||||
expectedValue := "localhost:4321"
|
||||
|
||||
// Set the env variable
|
||||
_ = os.Unsetenv(extDNSVarName)
|
||||
_ = os.Setenv(edgeCtrlAdvHostPortVarName, expectedValue)
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetZitiEdgeCtrlAdvertisedHostPort()
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
// Confirm that EXTERNAL_DNS and ZITI_EDGE_CONTROLLER_PORT get used over ZITI_EDGE_CTRL_ADVERTISED_HOST_PORT
|
||||
func TestGetZitiEdgeCtrlAdvertisedHostPortWhenExtDNSAndHostPortSet(t *testing.T) {
|
||||
// Setup
|
||||
extDNSVarName := "EXTERNAL_DNS"
|
||||
zitiEdgeCtrlAdvHostPortVarName := "ZITI_EDGE_CTRL_ADVERTISED_HOST_PORT"
|
||||
advHostPortValue := "localhost:1234"
|
||||
externalDNSValue := "myexternaldns"
|
||||
|
||||
expectedValue := externalDNSValue + ":1280"
|
||||
|
||||
// Setup the env variables
|
||||
_ = os.Setenv(zitiEdgeCtrlAdvHostPortVarName, advHostPortValue)
|
||||
_ = os.Setenv(extDNSVarName, externalDNSValue)
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetZitiEdgeCtrlAdvertisedHostPort()
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
func TestGetZitiEdgeCtrlAdvertisedHostPortWhenExternalDNSAndPortSet(t *testing.T) {
|
||||
// Setup
|
||||
extDNSVarName := "EXTERNAL_DNS"
|
||||
ctrlPortVarName := "ZITI_EDGE_CONTROLLER_PORT"
|
||||
externalDNSValue := "myexternaldns"
|
||||
ctrlPortValue := "1234"
|
||||
expectedValue := externalDNSValue + ":" + ctrlPortValue
|
||||
|
||||
// Setup the env variables
|
||||
_ = os.Setenv(ctrlPortVarName, ctrlPortValue)
|
||||
_ = os.Setenv(extDNSVarName, externalDNSValue)
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetZitiEdgeCtrlAdvertisedHostPort()
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
func TestGetZitiEdgeCtrlPortWhenNotSet(t *testing.T) {
|
||||
// Setup
|
||||
varName := "ZITI_EDGE_CONTROLLER_PORT"
|
||||
varName := "ZITI_CTRL_EDGE_ADVERTISED_PORT"
|
||||
expectedValue := "1280"
|
||||
|
||||
// Be sure the var is unset
|
||||
_ = os.Unsetenv(varName)
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetZitiEdgeCtrlAdvertisedPort()
|
||||
actualValue, _ := GetCtrlEdgeAdvertisedPort()
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
func TestGetZitiEdgeIdentityEnrollmentDurationWhenSet(t *testing.T) {
|
||||
func TestGetCtrlEdgeAdvertisedPortWhenSet(t *testing.T) {
|
||||
// Setup
|
||||
varName := "ZITI_EDGE_IDENTITY_ENROLLMENT_DURATION"
|
||||
expectedValue := 5 * time.Minute
|
||||
|
||||
// Set the env variable
|
||||
_ = os.Setenv(varName, fmt.Sprintf("%.0f", expectedValue.Minutes()))
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetZitiEdgeIdentityEnrollmentDuration()
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
/* Ensure that the default value is returned even if the environment variable is set but is blank. */
|
||||
func TestGetZitiEdgeIdentityEnrollmentDurationWhenSetToBlank(t *testing.T) {
|
||||
// Setup
|
||||
varName := "ZITI_EDGE_IDENTITY_ENROLLMENT_DURATION"
|
||||
// Expect the default, hard coding the value to act as an alert if default is changed in edge project
|
||||
expectedValue := 180 * time.Minute
|
||||
|
||||
// Set the env variable
|
||||
_ = os.Setenv(varName, "")
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetZitiEdgeIdentityEnrollmentDuration()
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
func TestGetZitiEdgeIdentityEnrollmentDurationWhenNotSet(t *testing.T) {
|
||||
// Setup
|
||||
varName := "ZITI_EDGE_IDENTITY_ENROLLMENT_DURATION"
|
||||
// Expect the default, hard coding the value to act as an alert if default is changed in edge project
|
||||
expectedValue := 180 * time.Minute
|
||||
|
||||
// Set the env variable
|
||||
_ = os.Setenv(varName, fmt.Sprintf("%.0f", expectedValue.Minutes()))
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetZitiEdgeIdentityEnrollmentDuration()
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
func TestGetZitiEdgeRouterEnrollmentDurationWhenSet(t *testing.T) {
|
||||
// Setup
|
||||
varName := "ZITI_EDGE_ROUTER_ENROLLMENT_DURATION"
|
||||
expectedValue := 5 * time.Minute
|
||||
|
||||
// Set the env variable
|
||||
_ = os.Setenv(varName, fmt.Sprintf("%.0f", expectedValue.Minutes()))
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetZitiEdgeRouterEnrollmentDuration()
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
/* Ensure that the default value is returned even if the environment variable is set but is blank. */
|
||||
func TestGetZitiEdgeRouterEnrollmentDurationWhenSetToBlank(t *testing.T) {
|
||||
// Setup
|
||||
varName := "ZITI_EDGE_ROUTER_ENROLLMENT_DURATION"
|
||||
// Expect the default, hard coding the value to act as an alert if default is changed in edge project
|
||||
expectedValue := 180 * time.Minute
|
||||
|
||||
// Set the env variable
|
||||
_ = os.Setenv(varName, "")
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetZitiEdgeRouterEnrollmentDuration()
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
func TestGetZitiEdgeRouterEnrollmentDurationWhenNotSet(t *testing.T) {
|
||||
// Setup
|
||||
varName := "ZITI_EDGE_ROUTER_ENROLLMENT_DURATION"
|
||||
// Expect the default, hard coding the value to act as an alert if default is changed in edge project
|
||||
expectedValue := 180 * time.Minute
|
||||
|
||||
// Set the env variable
|
||||
_ = os.Setenv(varName, fmt.Sprintf("%.0f", expectedValue.Minutes()))
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetZitiEdgeRouterEnrollmentDuration()
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
func TestGetZitiEdgeCtrlPortWhenSet(t *testing.T) {
|
||||
// Setup
|
||||
varName := "ZITI_EDGE_CONTROLLER_PORT"
|
||||
varName := "ZITI_CTRL_EDGE_ADVERTISED_PORT"
|
||||
expectedValue := "1234"
|
||||
|
||||
// Set the env variable
|
||||
_ = os.Setenv(varName, expectedValue)
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetZitiEdgeCtrlAdvertisedPort()
|
||||
actualValue, _ := GetCtrlEdgeAdvertisedPort()
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
func TestGetEdgeIdentityEnrollmentDurationWhenSet(t *testing.T) {
|
||||
// Setup
|
||||
varName := "ZITI_EDGE_IDENTITY_ENROLLMENT_DURATION"
|
||||
expectedValue := 5 * time.Minute
|
||||
|
||||
// Set the env variable
|
||||
_ = os.Setenv(varName, fmt.Sprintf("%.0f", expectedValue.Minutes()))
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetCtrlEdgeIdentityEnrollmentDuration()
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
/* Ensure that the default value is returned even if the environment variable is set but is blank. */
|
||||
func TestGetEdgeIdentityEnrollmentDurationWhenSetToBlank(t *testing.T) {
|
||||
// Setup
|
||||
varName := "ZITI_EDGE_IDENTITY_ENROLLMENT_DURATION"
|
||||
// Expect the default, hard coding the value to act as an alert if default is changed in edge project
|
||||
expectedValue := 180 * time.Minute
|
||||
|
||||
// Set the env variable
|
||||
_ = os.Setenv(varName, "")
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetCtrlEdgeIdentityEnrollmentDuration()
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
func TestGetEdgeIdentityEnrollmentDurationWhenNotSet(t *testing.T) {
|
||||
// Setup
|
||||
varName := "ZITI_EDGE_IDENTITY_ENROLLMENT_DURATION"
|
||||
// Expect the default, hard coding the value to act as an alert if default is changed in edge project
|
||||
expectedValue := 180 * time.Minute
|
||||
|
||||
// Set the env variable
|
||||
_ = os.Setenv(varName, fmt.Sprintf("%.0f", expectedValue.Minutes()))
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetCtrlEdgeIdentityEnrollmentDuration()
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
func TestGetEdgeRouterEnrollmentDurationWhenSet(t *testing.T) {
|
||||
// Setup
|
||||
varName := "ZITI_EDGE_ROUTER_ENROLLMENT_DURATION"
|
||||
expectedValue := 5 * time.Minute
|
||||
|
||||
// Set the env variable
|
||||
_ = os.Setenv(varName, fmt.Sprintf("%.0f", expectedValue.Minutes()))
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetCtrlEdgeRouterEnrollmentDuration()
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
/* Ensure that the default value is returned even if the environment variable is set but is blank. */
|
||||
func TestGetEdgeRouterEnrollmentDurationWhenSetToBlank(t *testing.T) {
|
||||
// Setup
|
||||
varName := "ZITI_EDGE_ROUTER_ENROLLMENT_DURATION"
|
||||
// Expect the default, hard coding the value to act as an alert if default is changed in edge project
|
||||
expectedValue := 180 * time.Minute
|
||||
|
||||
// Set the env variable
|
||||
_ = os.Setenv(varName, "")
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetCtrlEdgeRouterEnrollmentDuration()
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
func TestGetEdgeRouterEnrollmentDurationWhenNotSet(t *testing.T) {
|
||||
// Setup
|
||||
varName := "ZITI_EDGE_ROUTER_ENROLLMENT_DURATION"
|
||||
// Expect the default, hard coding the value to act as an alert if default is changed in edge project
|
||||
expectedValue := 180 * time.Minute
|
||||
|
||||
// Set the env variable
|
||||
_ = os.Setenv(varName, fmt.Sprintf("%.0f", expectedValue.Minutes()))
|
||||
|
||||
// Check that the value matches
|
||||
actualValue, _ := GetCtrlEdgeRouterEnrollmentDuration()
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
+66
-66
@@ -39,74 +39,74 @@ const (
|
||||
DefaultZitiEdgeRouterListenerBindPort = "10080"
|
||||
DefaultGetSessionTimeout = 60 * time.Second
|
||||
|
||||
DefaultZitiEdgeRouterPort = "3022"
|
||||
|
||||
DefaultZitiControllerName = "controller"
|
||||
DefaultZitiEdgeAPIPort = "1280"
|
||||
DefaultZitiEdgeListenerHost = "0.0.0.0"
|
||||
DefaultZitiControllerListenerAddress = "0.0.0.0"
|
||||
DefaultZitiControllerPort = "6262"
|
||||
DefaultZitiEdgeRouterPort = "3022"
|
||||
DefaultCtrlEdgeAdvertisedPort = "1280"
|
||||
DefaultCtrlListenerAddress = "0.0.0.0"
|
||||
DefaultCtrlListenerPort = "6262"
|
||||
)
|
||||
|
||||
// Env Var Constants
|
||||
const (
|
||||
ZitiHomeVarName = "ZITI_HOME"
|
||||
ZitiHomeVarDescription = "Root home directory for Ziti related files"
|
||||
ZitiCtrlNameVarName = "ZITI_CONTROLLER_NAME"
|
||||
ZitiCtrlNameVarDescription = "The name of the Ziti Controller"
|
||||
ZitiCtrlPortVarName = "ZITI_CTRL_PORT"
|
||||
ZitiCtrlPortVarDescription = "The port of the Ziti Controller"
|
||||
ZitiEdgeRouterRawNameVarName = "ZITI_EDGE_ROUTER_RAWNAME"
|
||||
ZitiEdgeRouterRawNameVarDescription = "The Edge Router Raw Name"
|
||||
ZitiEdgeRouterPortVarName = "ZITI_EDGE_ROUTER_PORT"
|
||||
ZitiEdgeRouterPortVarDescription = "Port of the Ziti Edge Router"
|
||||
ZitiEdgeCtrlIdentityCertVarName = "ZITI_EDGE_CTRL_IDENTITY_CERT"
|
||||
ZitiEdgeCtrlIdentityCertVarDescription = "Path to Identity Cert for Ziti Edge Controller"
|
||||
ZitiEdgeCtrlIdentityServerCertVarName = "ZITI_EDGE_CTRL_IDENTITY_SERVER_CERT"
|
||||
ZitiEdgeCtrlIdentityServerCertVarDescription = "Path to Identity Server Cert for Ziti Edge Controller"
|
||||
ZitiEdgeCtrlIdentityKeyVarName = "ZITI_EDGE_CTRL_IDENTITY_KEY"
|
||||
ZitiEdgeCtrlIdentityKeyVarDescription = "Path to Identity Key for Ziti Edge Controller"
|
||||
ZitiEdgeCtrlIdentityCAVarName = "ZITI_EDGE_CTRL_IDENTITY_CA"
|
||||
ZitiEdgeCtrlIdentityCAVarDescription = "Path to Identity CA for Ziti Edge Controller"
|
||||
ZitiCtrlIdentityCertVarName = "ZITI_CTRL_IDENTITY_CERT"
|
||||
ZitiCtrlIdentityCertVarDescription = "Path to Identity Cert for Ziti Controller"
|
||||
ZitiCtrlIdentityServerCertVarName = "ZITI_CTRL_IDENTITY_SERVER_CERT"
|
||||
ZitiCtrlIdentityServerCertVarDescription = "Path to Identity Server Cert for Ziti Controller"
|
||||
ZitiCtrlIdentityKeyVarName = "ZITI_CTRL_IDENTITY_KEY"
|
||||
ZitiCtrlIdentityKeyVarDescription = "Path to Identity Key for Ziti Controller"
|
||||
ZitiCtrlIdentityCAVarName = "ZITI_CTRL_IDENTITY_CA"
|
||||
ZitiCtrlIdentityCAVarDescription = "Path to Identity CA for Ziti Controller"
|
||||
ZitiSigningCertVarName = "ZITI_SIGNING_CERT"
|
||||
ZitiSigningCertVarDescription = "Path to the Ziti Signing Cert"
|
||||
ZitiSigningKeyVarName = "ZITI_SIGNING_KEY"
|
||||
ZitiSigningKeyVarDescription = "Path to the Ziti Signing Key"
|
||||
ZitiRouterIdentityCertVarName = "ZITI_ROUTER_IDENTITY_CERT"
|
||||
ZitiRouterIdentityCertVarDescription = "Path to Identity Cert for Ziti Router"
|
||||
ZitiRouterIdentityServerCertVarName = "ZITI_ROUTER_IDENTITY_SERVER_CERT"
|
||||
ZitiRouterIdentityServerCertVarDescription = "Path to Identity Server Cert for Ziti Router"
|
||||
ZitiRouterIdentityKeyVarName = "ZITI_ROUTER_IDENTITY_KEY"
|
||||
ZitiRouterIdentityKeyVarDescription = "Path to Identity Key for Ziti Router"
|
||||
ZitiRouterIdentityCAVarName = "ZITI_ROUTER_IDENTITY_CA"
|
||||
ZitiRouterIdentityCAVarDescription = "Path to Identity CA for Ziti Router"
|
||||
ZitiCtrlListenerAddressVarName = "ZITI_CTRL_LISTENER_ADDRESS"
|
||||
ZitiCtrlListenerAddressVarDescription = "The Ziti Controller Listener Address"
|
||||
ZitiCtrlAdvertisedAddressVarName = "ZITI_CTRL_ADVERTISED_ADDRESS"
|
||||
ZitiCtrlAdvertisedAddressVarDescription = "The Ziti Controller Advertised Address"
|
||||
ZitiEdgeCtrlListenerHostPortVarName = "ZITI_CTRL_EDGE_LISTENER_HOST_PORT"
|
||||
ZitiEdgeCtrlListenerHostPortVarDescription = "Host and port of the Ziti Edge Controller Listener"
|
||||
ZitiEdgeCtrlAdvertisedHostPortVarName = "ZITI_EDGE_CTRL_ADVERTISED_HOST_PORT"
|
||||
ZitiEdgeCtrlAdvertisedHostPortVarDescription = "Host and port of the Ziti Edge Controller API"
|
||||
ZitiEdgeCtrlAdvertisedPortVarName = "ZITI_EDGE_CONTROLLER_PORT"
|
||||
ZitiEdgeCtrlAdvertisedPortVarDescription = "The advertised port of the edge controller"
|
||||
ZitiEdgeIdentityEnrollmentDurationVarName = "ZITI_EDGE_IDENTITY_ENROLLMENT_DURATION"
|
||||
ZitiEdgeIdentityEnrollmentDurationVarDescription = "The identity enrollment duration in minutes"
|
||||
ZitiEdgeRouterEnrollmentDurationVarName = "ZITI_EDGE_ROUTER_ENROLLMENT_DURATION"
|
||||
ZitiEdgeRouterEnrollmentDurationVarDescription = "The router enrollment duration in minutes"
|
||||
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"
|
||||
ZitiEdgeRouterAdvertisedHostVarName = "ZITI_EDGE_ROUTER_ADVERTISED_HOST"
|
||||
ZitiEdgeRouterAdvertisedHostVarDescription = "The advertised host of the router"
|
||||
ZitiEdgeRouterListenerBindPortVarName = "ZITI_EDGE_ROUTER_LISTENER_BIND_PORT"
|
||||
ZitiEdgeRouterListenerBindPortVarDescription = "The port a public router will advertise on"
|
||||
ZitiHomeVarName = "ZITI_HOME"
|
||||
ZitiHomeVarDescription = "Root home directory for Ziti related files"
|
||||
|
||||
PkiCtrlCertVarName = "ZITI_PKI_CTRL_CERT"
|
||||
PkiCtrlCertVarDescription = "Path to Identity Cert for Ziti Controller"
|
||||
PkiCtrlServerCertVarName = "ZITI_PKI_CTRL_SERVER_CERT"
|
||||
PkiCtrlServerCertVarDescription = "Path to Identity Server Cert for Ziti Controller"
|
||||
PkiCtrlKeyVarName = "ZITI_PKI_CTRL_KEY"
|
||||
PkiCtrlKeyVarDescription = "Path to Identity Key for Ziti Controller"
|
||||
PkiCtrlCAVarName = "ZITI_PKI_CTRL_CA"
|
||||
PkiCtrlCAVarDescription = "Path to Identity CA for Ziti Controller"
|
||||
CtrlListenerAddressVarName = "ZITI_CTRL_LISTENER_ADDRESS"
|
||||
CtrlListenerAddressVarDescription = "The address routers will use to connect to the Ziti Controller"
|
||||
CtrlListenerPortVarName = "ZITI_CTRL_LISTENER_PORT"
|
||||
CtrlListenerPortVarDescription = "The port routers will use to connect to the Ziti Controller"
|
||||
CtrlEdgeApiAddressVarName = "ZITI_CTRL_EDGE_API_ADDRESS"
|
||||
CtrlEdgeApiAddressVarDescription = "The address for the controller's API plane"
|
||||
CtrlEdgeApiPortVarName = "ZITI_CTRL_EDGE_API_PORT"
|
||||
CtrlEdgeApiPortVarDescription = "The port for the controller's API plane"
|
||||
PkiSignerCertVarName = "ZITI_PKI_SIGNER_CERT"
|
||||
PkiSignerCertVarDescription = "Path to the Ziti Signing Cert"
|
||||
PkiSignerKeyVarName = "ZITI_PKI_SIGNER_KEY"
|
||||
PkiSignerKeyVarDescription = "Path to the Ziti Signing Key"
|
||||
CtrlEdgeIdentityEnrollmentDurationVarName = "ZITI_EDGE_IDENTITY_ENROLLMENT_DURATION"
|
||||
CtrlEdgeIdentityEnrollmentDurationVarDescription = "The identity enrollment duration in minutes"
|
||||
CtrlEdgeRouterEnrollmentDurationVarName = "ZITI_EDGE_ROUTER_ENROLLMENT_DURATION"
|
||||
CtrlEdgeRouterEnrollmentDurationVarDescription = "The router enrollment duration in minutes"
|
||||
CtrlEdgeInterfaceAddressVarName = "ZITI_CTRL_EDGE_INTERFACE_ADDRESS"
|
||||
CtrlEdgeInterfaceAddressVarDescription = "The interface address to bind the controller's edge listener to"
|
||||
CtrlEdgeInterfacePortVarName = "ZITI_CTRL_EDGE_INTERFACE_PORT"
|
||||
CtrlEdgeInterfacePortVarDescription = "The interface port to bind the controller's edge listener to"
|
||||
CtrlEdgeAdvertisedAddressVarName = "ZITI_CTRL_EDGE_ADVERTISED_ADDRESS"
|
||||
CtrlEdgeAdvertisedAddressVarDescription = "The publicly addressable controller address value"
|
||||
CtrlEdgeAdvertisedPortVarName = "ZITI_CTRL_EDGE_ADVERTISED_PORT"
|
||||
CtrlEdgeAdvertisedPortVarDescription = "The publicly addressable controller port value"
|
||||
CtrlPkiEdgeCertVarName = "ZITI_PKI_EDGE_CERT"
|
||||
CtrlPkiEdgeCertVarDescription = "Path to Identity Cert for Ziti Edge Controller"
|
||||
CtrlPkiEdgeServerCertVarName = "ZITI_PKI_EDGE_SERVER_CERT"
|
||||
CtrlPkiEdgeServerCertVarDescription = "Path to Identity Server Cert for Ziti Edge Controller"
|
||||
CtrlPkiEdgeKeyVarName = "ZITI_PKI_EDGE_KEY"
|
||||
CtrlPkiEdgeKeyVarDescription = "Path to Identity Key for Ziti Edge Controller"
|
||||
CtrlPkiEdgeCAVarName = "ZITI_PKI_EDGE_CA"
|
||||
CtrlPkiEdgeCAVarDescription = "Path to Identity CA for Ziti Edge Controller"
|
||||
|
||||
ZitiEdgeRouterNameVarName = "ZITI_EDGE_ROUTER_NAME"
|
||||
ZitiEdgeRouterNameVarDescription = "The Edge Router Name"
|
||||
ZitiEdgeRouterPortVarName = "ZITI_EDGE_ROUTER_PORT"
|
||||
ZitiEdgeRouterPortVarDescription = "Port of the Ziti Edge Router"
|
||||
ZitiRouterIdentityCertVarName = "ZITI_ROUTER_IDENTITY_CERT"
|
||||
ZitiRouterIdentityCertVarDescription = "Path to Identity Cert for Ziti Router"
|
||||
ZitiRouterIdentityServerCertVarName = "ZITI_ROUTER_IDENTITY_SERVER_CERT"
|
||||
ZitiRouterIdentityServerCertVarDescription = "Path to Identity Server Cert for Ziti Router"
|
||||
ZitiRouterIdentityKeyVarName = "ZITI_ROUTER_IDENTITY_KEY"
|
||||
ZitiRouterIdentityKeyVarDescription = "Path to Identity Key for Ziti Router"
|
||||
ZitiRouterIdentityCAVarName = "ZITI_ROUTER_IDENTITY_CA"
|
||||
ZitiRouterIdentityCAVarDescription = "Path to Identity CA for Ziti Router"
|
||||
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"
|
||||
ZitiEdgeRouterAdvertisedHostVarName = "ZITI_EDGE_ROUTER_ADVERTISED_HOST"
|
||||
ZitiEdgeRouterAdvertisedHostVarDescription = "The advertised host of the router"
|
||||
ZitiEdgeRouterListenerBindPortVarName = "ZITI_EDGE_ROUTER_LISTENER_BIND_PORT"
|
||||
ZitiEdgeRouterListenerBindPortVarDescription = "The port a public router will advertise on"
|
||||
)
|
||||
|
||||
+1
-14
@@ -37,7 +37,7 @@ func HomeDir() string {
|
||||
}
|
||||
|
||||
func ConfigDir() (string, error) {
|
||||
path := os.Getenv("ZITI_HOME")
|
||||
path := os.Getenv("ZITI_CONFIG_DIR")
|
||||
if path != "" {
|
||||
return path, nil
|
||||
}
|
||||
@@ -55,19 +55,6 @@ func ConfigDir() (string, error) {
|
||||
return path, nil
|
||||
}
|
||||
|
||||
func FabricConfigDir() (string, error) {
|
||||
h, err := ConfigDir()
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
path := filepath.Join(h, "fabric")
|
||||
err = os.MkdirAll(path, DefaultWritePermissions)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return path, nil
|
||||
}
|
||||
|
||||
func ZitiAppConfigDir(zitiApp string) (string, error) {
|
||||
h, err := ConfigDir()
|
||||
if err != nil {
|
||||
|
||||
+12
-2
@@ -377,6 +377,10 @@ func UnTargz(tarball, target string, onlyFiles []string) error {
|
||||
return err
|
||||
}
|
||||
continue
|
||||
} else {
|
||||
if err = os.Remove(path); err != nil {
|
||||
fmt.Printf("error removing [%s] (%v)", path, err)
|
||||
}
|
||||
}
|
||||
|
||||
file, err := os.OpenFile(path, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, info.Mode())
|
||||
@@ -862,10 +866,16 @@ func EdgeControllerGetManagementApiBasePath(host string, cert string) string {
|
||||
client.SetRootCertificate(cert)
|
||||
}
|
||||
|
||||
resp, err := client.R().Get("/version")
|
||||
// check v1 path first
|
||||
resp, err := client.R().Get("/edge/client/v1/version")
|
||||
|
||||
if err != nil || resp.StatusCode() != http.StatusOK {
|
||||
return host
|
||||
// if v1 path fails, fall back to removed /version path
|
||||
resp, err = client.R().Get("/version")
|
||||
|
||||
if err != nil || resp.StatusCode() != http.StatusOK {
|
||||
return host
|
||||
}
|
||||
}
|
||||
|
||||
data, err := gabs.ParseJSON(resp.Body())
|
||||
|
||||
+23
-23
@@ -8,22 +8,22 @@ require (
|
||||
github.com/Jeffail/gabs v1.4.0
|
||||
github.com/Jeffail/gabs/v2 v2.7.0
|
||||
github.com/michaelquigley/pfxlog v0.6.10
|
||||
github.com/openziti/channel/v2 v2.0.80
|
||||
github.com/openziti/edge v0.24.326
|
||||
github.com/openziti/channel/v2 v2.0.81
|
||||
github.com/openziti/edge v0.24.345
|
||||
github.com/openziti/fablab v0.4.52
|
||||
github.com/openziti/fabric v0.23.35
|
||||
github.com/openziti/foundation/v2 v2.0.25
|
||||
github.com/openziti/identity v1.0.56
|
||||
github.com/openziti/sdk-golang v0.20.58
|
||||
github.com/openziti/storage v0.2.7
|
||||
github.com/openziti/transport/v2 v2.0.90
|
||||
github.com/openziti/fabric v0.23.39
|
||||
github.com/openziti/foundation/v2 v2.0.26
|
||||
github.com/openziti/identity v1.0.57
|
||||
github.com/openziti/sdk-golang v0.20.67
|
||||
github.com/openziti/storage v0.2.8
|
||||
github.com/openziti/transport/v2 v2.0.91
|
||||
github.com/openziti/ziti v0.28.0
|
||||
github.com/pkg/errors v0.9.1
|
||||
github.com/sirupsen/logrus v1.9.3
|
||||
github.com/spf13/cobra v1.7.0
|
||||
github.com/stretchr/testify v1.8.4
|
||||
go.etcd.io/bbolt v1.3.7
|
||||
golang.org/x/net v0.10.0
|
||||
golang.org/x/net v0.11.0
|
||||
google.golang.org/protobuf v1.30.0
|
||||
gopkg.in/yaml.v3 v3.0.1
|
||||
)
|
||||
@@ -63,14 +63,14 @@ require (
|
||||
github.com/go-logr/stdr v1.2.2 // indirect
|
||||
github.com/go-ole/go-ole v1.2.6 // indirect
|
||||
github.com/go-openapi/analysis v0.21.4 // indirect
|
||||
github.com/go-openapi/errors v0.20.3 // indirect
|
||||
github.com/go-openapi/errors v0.20.4 // indirect
|
||||
github.com/go-openapi/jsonpointer v0.19.6 // indirect
|
||||
github.com/go-openapi/jsonreference v0.20.2 // indirect
|
||||
github.com/go-openapi/loads v0.21.2 // indirect
|
||||
github.com/go-openapi/runtime v0.26.0 // indirect
|
||||
github.com/go-openapi/spec v0.20.9 // indirect
|
||||
github.com/go-openapi/strfmt v0.21.7 // indirect
|
||||
github.com/go-openapi/swag v0.22.3 // indirect
|
||||
github.com/go-openapi/swag v0.22.4 // indirect
|
||||
github.com/go-openapi/validate v0.22.1 // indirect
|
||||
github.com/go-resty/resty/v2 v2.7.0 // indirect
|
||||
github.com/golang-jwt/jwt v3.2.2+incompatible // indirect
|
||||
@@ -100,7 +100,7 @@ require (
|
||||
github.com/josharian/native v1.1.0 // indirect
|
||||
github.com/kataras/go-events v0.0.3 // indirect
|
||||
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
|
||||
github.com/klauspost/compress v1.16.5 // indirect
|
||||
github.com/klauspost/compress v1.16.6 // indirect
|
||||
github.com/kr/fs v0.1.0 // indirect
|
||||
github.com/kyokomi/emoji/v2 v2.2.12 // indirect
|
||||
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
|
||||
@@ -116,7 +116,7 @@ require (
|
||||
github.com/mdlayher/socket v0.4.1 // indirect
|
||||
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect
|
||||
github.com/michaelquigley/figlet v0.0.0-20191015203154-054d06db54b4 // indirect
|
||||
github.com/miekg/dns v1.1.54 // indirect
|
||||
github.com/miekg/dns v1.1.55 // indirect
|
||||
github.com/miekg/pkcs11 v1.1.1 // indirect
|
||||
github.com/mitchellh/go-ps v1.0.0 // indirect
|
||||
github.com/mitchellh/mapstructure v1.5.0 // indirect
|
||||
@@ -126,11 +126,11 @@ require (
|
||||
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.14 // indirect
|
||||
github.com/openziti/edge-api v0.25.25 // indirect
|
||||
github.com/openziti/edge-api v0.25.29 // indirect
|
||||
github.com/openziti/jwks v1.0.3 // indirect
|
||||
github.com/openziti/metrics v1.2.26 // indirect
|
||||
github.com/openziti/runzmd v1.0.25 // indirect
|
||||
github.com/openziti/secretstream v0.1.8 // indirect
|
||||
github.com/openziti/metrics v1.2.27 // indirect
|
||||
github.com/openziti/runzmd v1.0.26 // indirect
|
||||
github.com/openziti/secretstream v0.1.9 // indirect
|
||||
github.com/openziti/x509-claims v1.0.3 // indirect
|
||||
github.com/openziti/xweb/v2 v2.0.2 // indirect
|
||||
github.com/openziti/ziti-db-explorer v1.1.1 // indirect
|
||||
@@ -170,14 +170,14 @@ require (
|
||||
go.opentelemetry.io/otel v1.16.0 // indirect
|
||||
go.opentelemetry.io/otel/metric v1.16.0 // indirect
|
||||
go.opentelemetry.io/otel/trace v1.16.0 // indirect
|
||||
golang.org/x/crypto v0.9.0 // indirect
|
||||
golang.org/x/crypto v0.10.0 // indirect
|
||||
golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1 // indirect
|
||||
golang.org/x/image v0.7.0 // indirect
|
||||
golang.org/x/image v0.8.0 // indirect
|
||||
golang.org/x/mod v0.8.0 // indirect
|
||||
golang.org/x/sync v0.2.0 // indirect
|
||||
golang.org/x/sys v0.8.0 // indirect
|
||||
golang.org/x/term v0.8.0 // indirect
|
||||
golang.org/x/text v0.9.0 // indirect
|
||||
golang.org/x/sync v0.3.0 // indirect
|
||||
golang.org/x/sys v0.9.0 // indirect
|
||||
golang.org/x/term v0.9.0 // indirect
|
||||
golang.org/x/text v0.10.0 // indirect
|
||||
golang.org/x/tools v0.6.0 // indirect
|
||||
gopkg.in/AlecAivazis/survey.v1 v1.8.7 // indirect
|
||||
gopkg.in/ini.v1 v1.66.2 // indirect
|
||||
|
||||
+46
-44
@@ -228,8 +228,8 @@ github.com/go-openapi/analysis v0.21.4/go.mod h1:4zQ35W4neeZTqh3ol0rv/O8JBbka9Qy
|
||||
github.com/go-openapi/errors v0.19.8/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
|
||||
github.com/go-openapi/errors v0.19.9/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
|
||||
github.com/go-openapi/errors v0.20.2/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
|
||||
github.com/go-openapi/errors v0.20.3 h1:rz6kiC84sqNQoqrtulzaL/VERgkoCyB6WdEkc2ujzUc=
|
||||
github.com/go-openapi/errors v0.20.3/go.mod h1:Z3FlZ4I8jEGxjUK+bugx3on2mIAk4txuAOhlsB1FSgk=
|
||||
github.com/go-openapi/errors v0.20.4 h1:unTcVm6PispJsMECE3zWgvG4xTiKda1LIR5rCRWLG6M=
|
||||
github.com/go-openapi/errors v0.20.4/go.mod h1:Z3FlZ4I8jEGxjUK+bugx3on2mIAk4txuAOhlsB1FSgk=
|
||||
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
||||
github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
||||
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
||||
@@ -255,8 +255,9 @@ github.com/go-openapi/strfmt v0.21.7/go.mod h1:adeGTkxE44sPyLk0JV235VQAO/ZXUr8KA
|
||||
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
||||
github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
|
||||
github.com/go-openapi/swag v0.21.1/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
|
||||
github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g=
|
||||
github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
|
||||
github.com/go-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU=
|
||||
github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
|
||||
github.com/go-openapi/validate v0.22.1 h1:G+c2ub6q47kfX1sOBLwIQwzBVt8qmOAARyo/9Fqs9NU=
|
||||
github.com/go-openapi/validate v0.22.1/go.mod h1:rjnrwK57VJ7A8xqfpAOEKRH8yQSGUriMu5/zuPSQ1hg=
|
||||
github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
|
||||
@@ -491,8 +492,8 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI
|
||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||
github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
|
||||
github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
|
||||
github.com/klauspost/compress v1.16.5 h1:IFV2oUNUzZaz+XyusxpLzpzS8Pt5rh0Z16For/djlyI=
|
||||
github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
|
||||
github.com/klauspost/compress v1.16.6 h1:91SKEy4K37vkp255cJ8QesJhjyRO0hn9i9G0GoUwLsk=
|
||||
github.com/klauspost/compress v1.16.6/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
|
||||
github.com/kolo/xmlrpc v0.0.0-20200310150728-e0350524596b/go.mod h1:o03bZfuBwAXHetKXuInt4S7omeXUu62/A845kiycsSQ=
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||
@@ -579,8 +580,8 @@ github.com/michaelquigley/pfxlog v0.6.10 h1:IbC/H3MmSDcPlQHF1UZPQU13Dkrs0+ycWRyQ
|
||||
github.com/michaelquigley/pfxlog v0.6.10/go.mod h1:gEiNTfKEX6cJHSwRpOuqBpc8oYrlhMiDK/xMk/gV7D0=
|
||||
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
|
||||
github.com/miekg/dns v1.1.31/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
|
||||
github.com/miekg/dns v1.1.54 h1:5jon9mWcb0sFJGpnI99tOMhCPyJ+RPVz5b63MQG0VWI=
|
||||
github.com/miekg/dns v1.1.54/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY=
|
||||
github.com/miekg/dns v1.1.55 h1:GoQ4hpsj0nFLYe+bWiCToyrBEJXkQfOOIvFGFy0lEgo=
|
||||
github.com/miekg/dns v1.1.55/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY=
|
||||
github.com/miekg/pkcs11 v1.1.1 h1:Ugu9pdy6vAYku5DEpVWVFPYnzV+bxB+iRdbuFSu7TvU=
|
||||
github.com/miekg/pkcs11 v1.1.1/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs=
|
||||
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
|
||||
@@ -640,34 +641,34 @@ github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYr
|
||||
github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=
|
||||
github.com/openziti/agent v1.0.14 h1:OTYhj2HeIlFwaFNcVT5BlYf7s4xa0TNmhnjmBpN8Afg=
|
||||
github.com/openziti/agent v1.0.14/go.mod h1:zfm53+PVWoGFzjGGgQdKby5749G6VRYHe+eQJmoVKy4=
|
||||
github.com/openziti/channel/v2 v2.0.80 h1:1gDikwcVvhRKs+CO8OyUHMSJWVJarCm5+OmffZ4gPCU=
|
||||
github.com/openziti/channel/v2 v2.0.80/go.mod h1:U1KSHZXWlg8VelsZ55+ZGiARYWh+XbJbD7AfN0NXUdQ=
|
||||
github.com/openziti/edge v0.24.326 h1:Y5Z3DGac2ghXivh04S/3HgTymp1UliTaSlLn5fo3qdg=
|
||||
github.com/openziti/edge v0.24.326/go.mod h1:vI2HZMZa+PdiIjf25xpg19lR32X+ouLbY3idOIw+Dac=
|
||||
github.com/openziti/edge-api v0.25.25 h1:1S7L9JsvXuzd8nULZEPNgafPfhnHQY4Hhqj8B00CKTw=
|
||||
github.com/openziti/edge-api v0.25.25/go.mod h1:aDUHHxOGtxFXnoDaTXpNF6gq+tbDkWCURP5yaEJbdm0=
|
||||
github.com/openziti/channel/v2 v2.0.81 h1:YtFMJz4pMhhOH92zZbOKAvx/l5zaRz5TQff0lTa5G6w=
|
||||
github.com/openziti/channel/v2 v2.0.81/go.mod h1:d+2+i51uXi8J6M8OsazLJg1OzSPmL+sOyzdiRUmra3I=
|
||||
github.com/openziti/edge v0.24.345 h1:7anwwljort9FsriHoBAiz6DOOkPJV2XCzZJLmn/TxFo=
|
||||
github.com/openziti/edge v0.24.345/go.mod h1:pjU6bCSfaAVQLajeKB/ypGYoeZnIuHw7Y75kX37WHTw=
|
||||
github.com/openziti/edge-api v0.25.29 h1:DbZ0GKpch9ik+XnC0qoP1dOg1AmgUEeWH4VIyOIehrQ=
|
||||
github.com/openziti/edge-api v0.25.29/go.mod h1:mqYquh1RYvHjV/M9MGO4Ng0Xq9ixAH8o8cT5kw5XCWY=
|
||||
github.com/openziti/fablab v0.4.52 h1:X5+NaRnfPxbzhxUh9b4IQmVNVgYWFf8/Ck2sKNz77ho=
|
||||
github.com/openziti/fablab v0.4.52/go.mod h1:aF8Fu3C8hnnaOJyAZz3AXGY4cMxQyBLhoIlSRJ/VVpc=
|
||||
github.com/openziti/fabric v0.23.35 h1:SxdMC88E5PCm7SoE8q0q8yOaO2fC1RiJES/sOYymVe4=
|
||||
github.com/openziti/fabric v0.23.35/go.mod h1:eFG042f6bv/vZSOmp48pVAqEntCfkkMJCVAbNG9GHno=
|
||||
github.com/openziti/foundation/v2 v2.0.25 h1:tGb9wdu6KCpO49RJ3HX2ClOVHf8gdntplIh/7CEVaM4=
|
||||
github.com/openziti/foundation/v2 v2.0.25/go.mod h1:EOqea8Q1wXd4hS9MxFYM6ngDgenKGxz8c+CJ8Svr7BI=
|
||||
github.com/openziti/identity v1.0.56 h1:h8SzatjWa3TCpIG6/holKUTHSKtNAJ1MuK5CCY31ZOw=
|
||||
github.com/openziti/identity v1.0.56/go.mod h1:5h08wngbQjENt6sWPp+GyWpqNkeSPwMdDFPFONf6EBE=
|
||||
github.com/openziti/fabric v0.23.39 h1:t6npkfBsPr+8GvF9X/rTLHxGsce5FTa4NoA80MInxYc=
|
||||
github.com/openziti/fabric v0.23.39/go.mod h1:px2zUzQrgObmv6sdXgGJ028Wr45aGcgpFvfIP/qgDFo=
|
||||
github.com/openziti/foundation/v2 v2.0.26 h1:RISGM97aIFnnEkxrcVsO6fnGg9W4ByydSnqWAVkJAqY=
|
||||
github.com/openziti/foundation/v2 v2.0.26/go.mod h1:ngdQq0KLGIDfzkQQzu1BQSMLNrsBUXdziGvsJns4cFM=
|
||||
github.com/openziti/identity v1.0.57 h1:tVFYGMVFINKWi4RV75yEz7hbDuRPqRnG+AiFAEtvXHQ=
|
||||
github.com/openziti/identity v1.0.57/go.mod h1:cwkBpiIy1C4S6r+dD0jPKq9mS4aj7NuABt1WJwxHon8=
|
||||
github.com/openziti/jwks v1.0.3 h1:hf8wkb+Cg4nH/HM0KROFd7u+C3DkRVcFZJ7tDV+4icc=
|
||||
github.com/openziti/jwks v1.0.3/go.mod h1:t4xxq8vlXGsPn29kiQVnZBBDDnEoOFqtJoHibkJunQQ=
|
||||
github.com/openziti/metrics v1.2.26 h1:8q93bK1MYAdR9ODr0qNAJ1/BQpFtHYdxZiH0Fc9LLo8=
|
||||
github.com/openziti/metrics v1.2.26/go.mod h1:Z1c9pNHQr+yZODDsOeim93rYg5Hw1kPsuHi3zdy70dA=
|
||||
github.com/openziti/runzmd v1.0.25 h1:/6LVurAnU8Hl4Tcm0FcncNicTIo3gwu2eMCiViPqzNQ=
|
||||
github.com/openziti/runzmd v1.0.25/go.mod h1:pYnqjgH8/geMdzU8OIxamU8RlRdRaOh00mWBxDoXPDo=
|
||||
github.com/openziti/sdk-golang v0.20.58 h1:cHyzEQiZSsaeJbN/lYqAY0i5fDlt9wlFH7LtG+0qFwE=
|
||||
github.com/openziti/sdk-golang v0.20.58/go.mod h1:L6mGhnsxwDuVBE7ByCVLf2kPymf5l9l6WRUMA3SfZeo=
|
||||
github.com/openziti/secretstream v0.1.8 h1:AgPHLDuXTiM1apHQmBvwvSW1vbQqAm7wUJDHqkQ/6Nk=
|
||||
github.com/openziti/secretstream v0.1.8/go.mod h1:qcF8EmSX5SAT8k2pzsDI4bWugopv9AA+ltgWDrcAAEw=
|
||||
github.com/openziti/storage v0.2.7 h1:rQVVclnkCZyr4XXKMypIJf46HFGJX5KEYWEycUhWvtg=
|
||||
github.com/openziti/storage v0.2.7/go.mod h1:bGhUs/0XDsEJnTtNTpFAIh1X4lfdKvHu0m+8Z1TFVyM=
|
||||
github.com/openziti/transport/v2 v2.0.90 h1:QoddlajGdyOZZDTxhgapkd3wucosTVGJn8z5Pt3ltOM=
|
||||
github.com/openziti/transport/v2 v2.0.90/go.mod h1:q8zNDI7lYqA4flQVJwJZQg8HJVNcG7kIFLnH9qfeHDc=
|
||||
github.com/openziti/metrics v1.2.27 h1:Dw/FSC+QvyqkDmLeSsxzCRD0aFPwgivwQyQsxzlAgoQ=
|
||||
github.com/openziti/metrics v1.2.27/go.mod h1:mhP2c8MTGL0C5H8yAsNwBq88SW1C3Mx1ICVO6heMbJQ=
|
||||
github.com/openziti/runzmd v1.0.26 h1:bWJhTD0jwkRi01e/fY72UbJ+x4iNEzE2Lx5chNp1sCU=
|
||||
github.com/openziti/runzmd v1.0.26/go.mod h1:Lj1MpR8DXhVKxw6MdaSU0bD6Wh8CwzNpEw5Qm/NSWfM=
|
||||
github.com/openziti/sdk-golang v0.20.67 h1:atesqk/yUAM1sBe5zaMwKrRBYLzeEtUz7BQn72hFyR8=
|
||||
github.com/openziti/sdk-golang v0.20.67/go.mod h1:zieqsVAB/kawb/Ske7zkArUG2TGUIOdcHyVh79NcnBA=
|
||||
github.com/openziti/secretstream v0.1.9 h1:mNCMr9oYQ4JAfdU4iU79i3si4vqVVsErzrhXuKC7R3M=
|
||||
github.com/openziti/secretstream v0.1.9/go.mod h1:tq0XVUwFAT0TwfBpILp4KaeEnasduNTUixOIrmUZUGA=
|
||||
github.com/openziti/storage v0.2.8 h1:Rbnj6LKfcdR644kXrS4bF0ot+z17zDGCiUifd1eOvZ0=
|
||||
github.com/openziti/storage v0.2.8/go.mod h1:Cd1YuhqSLbVI0vaujTQl/cHgPCECapLGh/s4bMgKczM=
|
||||
github.com/openziti/transport/v2 v2.0.91 h1:eEWRSoy9+tDf6K+jJcl5TSHm6GX7IKiBQg8XxmDyELQ=
|
||||
github.com/openziti/transport/v2 v2.0.91/go.mod h1:FDGkg110LTdmz4Kp1zucomvc++ld7UKXFfNWBTwQIlQ=
|
||||
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=
|
||||
@@ -912,8 +913,8 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y
|
||||
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.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
|
||||
golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g=
|
||||
golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0=
|
||||
golang.org/x/crypto v0.10.0 h1:LKqV2xt9+kDzSTfOhx4FrkEBcMrAgHSYgzywV9zcGmM=
|
||||
golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I=
|
||||
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=
|
||||
@@ -930,8 +931,8 @@ golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMx
|
||||
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/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
||||
golang.org/x/image v0.7.0 h1:gzS29xtG1J5ybQlv0PuyfE3nmc6R4qB73m6LUUmvFuw=
|
||||
golang.org/x/image v0.7.0/go.mod h1:nd/q4ef1AKKYl/4kft7g+6UyGbdiqWqTP1ZAbRoV7Rg=
|
||||
golang.org/x/image v0.8.0 h1:agUcRXV/+w6L9ryntYYsF2x9fQTMd4T8fiiYXAVW6Jg=
|
||||
golang.org/x/image v0.8.0/go.mod h1:PwLxp3opCYg4WR2WO9P0L6ESnsD6bLTWcw8zanLMVFM=
|
||||
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=
|
||||
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||
@@ -1011,8 +1012,8 @@ golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su
|
||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
|
||||
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||
golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M=
|
||||
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
|
||||
golang.org/x/net v0.11.0 h1:Gi2tvZIJyBtO9SDr1q9h5hEQCp/4L2RQ+ar0qjx2oNU=
|
||||
golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ=
|
||||
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=
|
||||
@@ -1039,8 +1040,8 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJ
|
||||
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.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI=
|
||||
golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E=
|
||||
golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
|
||||
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=
|
||||
@@ -1124,14 +1125,15 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU=
|
||||
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.9.0 h1:KS/R3tvhPqvJvwcKfnBHJwwthS11LRhmM5D59eEXa0s=
|
||||
golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
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/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
|
||||
golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols=
|
||||
golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
|
||||
golang.org/x/term v0.9.0 h1:GRRCnKYhdQrD8kfRAdQ6Zcw1P0OcELxGLKJvtjVMZ28=
|
||||
golang.org/x/term v0.9.0/go.mod h1:M6DEAAIenWoTxdKrOltXcmDY3rSplQUkrvaDU5FcQyo=
|
||||
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=
|
||||
@@ -1143,8 +1145,8 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE=
|
||||
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
|
||||
golang.org/x/text v0.10.0 h1:UpjohKhiEgNc0CSauXmwYftY1+LlaC75SJwh0SgCX58=
|
||||
golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
|
||||
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=
|
||||
|
||||
Reference in New Issue
Block a user