Merging latest from release-next

Signed-off-by: gberl002 <geoff.berl@netfoundry.io>
This commit is contained in:
gberl002
2023-08-14 14:46:18 -04:00
24 changed files with 418 additions and 129 deletions
+5
View File
@@ -17,6 +17,11 @@ on:
schedule:
- cron: '36 20 * * 3'
# cancel older, redundant runs of same workflow on same branch
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name }}
cancel-in-progress: true
jobs:
analyze:
name: Analyze
+5
View File
@@ -6,6 +6,11 @@ permissions:
# Optional: allow read access to pull request. Use with `only-new-issues` option.
# pull-requests: read
# cancel older, redundant runs of same workflow on same branch
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name }}
cancel-in-progress: true
jobs:
golangci:
name: lint
@@ -5,6 +5,11 @@ on:
# Runs "at minute 28 past every 0400 GMT from GitHub main branch"
- cron: '28 4 * * *'
# cancel older, redundant runs of same workflow on same branch
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name }}
cancel-in-progress: true
jobs:
jenkins-nightly-smoketest:
runs-on: ubuntu-latest
+5
View File
@@ -9,6 +9,11 @@ on:
pull_request:
workflow_dispatch:
# cancel older, redundant runs of same workflow on same branch
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name }}
cancel-in-progress: true
env:
GOFLAGS: "-trimpath"
GOX_OUTPUT: "release/{{.Arch}}/{{.OS}}/{{.Dir}}"
@@ -8,6 +8,11 @@ on:
type: string
required: true
# cancel older, redundant runs of same workflow on same branch
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name }}
cancel-in-progress: true
jobs:
publish-docker-images:
runs-on: ubuntu-latest
+6
View File
@@ -2,6 +2,12 @@ name: Deploy Quickstart Container
on:
workflow_dispatch:
# cancel older, redundant runs of same workflow on same branch
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
+200 -4
View File
@@ -1,13 +1,209 @@
# Release 0.29.1
# Release 0.30.1
## What's New
## Component Updates and Bug Fixes
* github.com/openziti/ziti: [v0.29.0 -> v0.29.1](https://github.com/openziti/ziti/compare/v0.29.0...v0.29.1)
* [Issue #1212](https://github.com/openziti/ziti/issues/1212) - Fixed getZiti function on Mac/ZSH
* [Issue #1220](https://github.com/openziti/ziti/issues/1220) - Fixed getZiti function not respecting user input for custom path
* github.com/openziti/ziti: [v0.30.0 -> v0.30.1](https://github.com/openziti/ziti/compare/v0.28.4...v0.29.0)
* [Issue #1225](https://github.com/openziti/ziti/issues/1225) - Updated ZITI_ROUTER_ADVERTISED_HOST to use the more common naming convention of ZITI_ROUTER_ADVERTISED_ADDRESS
# Release 0.30.0
## What's New
* Link management is now delegated to routers
* Controller and routers can operate with a single listening port
## Link Management Updates
Previously, the controller would do its best to determine where links needed to be established.
It would send messages to the routers, telling them which addresses to dial on other routes.
The routers would in turn let the controller know if link establishment was successful or
if the router already had a link to the given endpoint.
With this release, the controller will only let routers know which routers exist, whether they
are currently connected to the controller, and what link listeners they are advertising. The
routers will now decide which links to make and let the controllers know as links are created
and broken.
### Link Groups
Both dialers and listeners can now specify a set of groups. If no groups are specified, the
dialer or listener will be placed in the `default` group. Dialers will only attempt to dial
listeners who have at least one group in common with them.
### Failed Links
Previously when a link failed, the controller would show it in the link list as failed for a time
before removing it. Now failed links are removed immediately. There are existing link events for
link creation and link failure which can be used for forensics.
### Duplicate Links
There is a new link status `Duplicate` used when a router receives a link request and determines
that it's a duplicate of an existing link. This happens when two routers both have listeners
and dialers. They will often dial each other at the same time, resulting in a duplicate link.
### Compatibility
If you use a 0.30+ controller with older routers, the controller will still do link calculation
and send dial messages, as long as the `enableLegacyLinkMgmt` setting is set to true.
If you use a pre 0.30.0 controller with newer routers, the new routers will still accept the
dial messages.
### New Configuration
#### Controller
The controller has three new options:
```
network:
routerMessaging:
queueSize: 100
maxWorkers: 100
enableLegacyLinkMgmt: true
```
When a router connects or disconnects from the controller, we send two sets of updates.
1. If a router has connected we send it the the state of the other routers
1. We send all the other routers the updated state of the connecting/disconnecting router
These messages are sent using a worker pool. The size of the queue feeding the worker pool is controlled with
`routerMessaging.queueSize`. The max size of the worker pool is controlled used the `routerMessaging.maxWorkers`
option.
* queueSize
* Min value: 0
* Max value: 1,000,000
* Default: 100
* maxWorkers
* Min value: 1
* Max value: 10,000
* Default: 100
If you have routers older than 0.30.0, the controller will calculate which links to dial. This can be disabled
by setting `enableLegacyLinkMgmt` to false. This setting currently defaults to true, but will default to false
in a future release. In a subsequent release this functionality will be removed all together.
#### Router
The router has new configuration options for link dialing.
```
link:
dialers:
- binding: transport
groups:
- public
- vpc1234
healthyDialBackoff:
retryBackoffFactor: 1.5
minRetryInterval: 5s
maxRetryInterval: 5m
unhealthyDialBackoff:
retryBackoffFactor: 10
minRetryInterval: 1m
maxRetryInterval: 1h
listeners:
- binding: transport
groups: vpc1234
```
**Groups**
See above for a description of link groups work.
Default value: `default`
**Dial Back-off**
Dialers can be configured with custom back-off behavior. Each dialer has a back-off policy for dialing
healthy routers (those that are connected to a controller) and a separate policy for unhealthy routers.
The back-off policies have the following attributes:
* minRetryInterval - duration specifying the minimum time between dial attempts
* Min value: 10ms
* Max value: 24h
* Default: 5s for healthy, 1m for unhealthy
* Format: Golang Durations, see: https://pkg.go.dev/maze.io/x/duration#ParseDuration
* maxRetryInterval - duration specifying the maximum time between dial attempts
* Min value: 10ms
* Max value: 24h
* Default: 5m for healthy, 1h for unhealthy
* Format: Golang duration, see: https://pkg.go.dev/maze.io/x/duration#ParseDuration
* retryBackoffFactor - factor by which to increase the retry interval between failed dial attempts
* Min value: 1
* Max value: 100
* Default: 1.5 for healthy, 100 for unhealthy
## Single Sort Changes
Ziti Controller and Routers can operate with a single open port. In order to implement this feature we use
ALPN ([Application Layer Protocol Negotiation](https://en.wikipedia.org/wiki/Application-Layer_Protocol_Negotiation))
TLS extension. It allows TLS client to request and TLS server to select appropriate application protocol handler during
TLS handshake.
### Protocol Details
The following protocol identifiers are defined:
| id | purpose |
| --------- | ------- |
| ziti-ctrl | Control plane connections |
| ziti-link | Fabric link connections |
| ziti-edge | Client SDK connection to Edge Routers |
Standard HTTP protocol identifiers (`h2`, `http/1.1`) are used for Controller REST API and Websocket listeners.
### Backward Compatibility
This feature is designed to be backward compatible with SDK clients: older client will still be able to connect without
requesting `ziti-edge` protocol.
**Breaking**
Older routers won't be able to establish control channel or fabric links with updated network.
However, newer Edge Routers should be able to join older network in some circumstances -- only outbound links from new Routers would work.
## Component Updates and Bug Fixes
* github.com/openziti/agent: [v1.0.14 -> v1.0.15](https://github.com/openziti/agent/compare/v1.0.14...v1.0.15)
* github.com/openziti/channel/v2: [v2.0.84 -> v2.0.91](https://github.com/openziti/channel/compare/v2.0.84...v2.0.91)
* [Issue #108](https://github.com/openziti/channel/issues/108) - Reconnecting underlay not returning headers from hello message
* github.com/openziti/edge: [v0.24.364 -> v0.24.381](https://github.com/openziti/edge/compare/v0.24.364...v0.24.381)
* [Issue #1548](https://github.com/openziti/edge/issues/1548) - Panic in edge@v0.24.326/controller/sync_strats/sync_instant.go:194
* github.com/openziti/edge-api: [v0.25.30 -> v0.25.31](https://github.com/openziti/edge-api/compare/v0.25.30...v0.25.31)
* github.com/openziti/fabric: [v0.23.45 -> v0.24.2](https://github.com/openziti/fabric/compare/v0.23.45...v0.24.2)
* [Issue #766](https://github.com/openziti/fabric/issues/766) - Lookup of terminators with same instance id isn't filtering by instance id
* [Issue #692](https://github.com/openziti/fabric/issues/692) - Add ability to control link formation between devices more granularly
* [Issue #749](https://github.com/openziti/fabric/issues/749) - Move link control to router
* [Issue #343](https://github.com/openziti/fabric/issues/343) - Link state Failed on startup
* github.com/openziti/foundation/v2: [v2.0.28 -> v2.0.29](https://github.com/openziti/foundation/compare/v2.0.28...v2.0.29)
* github.com/openziti/identity: [v1.0.59 -> v1.0.60](https://github.com/openziti/identity/compare/v1.0.59...v1.0.60)
* github.com/openziti/runzmd: [v1.0.28 -> v1.0.29](https://github.com/openziti/runzmd/compare/v1.0.28...v1.0.29)
* github.com/openziti/sdk-golang: [v0.20.78 -> v0.20.90](https://github.com/openziti/sdk-golang/compare/v0.20.78...v0.20.90)
* github.com/openziti/storage: [v0.2.11 -> v0.2.12](https://github.com/openziti/storage/compare/v0.2.11...v0.2.12)
* github.com/openziti/transport/v2: [v2.0.93 -> v2.0.99](https://github.com/openziti/transport/compare/v2.0.93...v2.0.99)
* github.com/openziti/xweb/v2: [v2.0.2 -> v2.1.0](https://github.com/openziti/xweb/compare/v2.0.2...v2.1.0)
* github.com/openziti/ziti-db-explorer: [v1.1.1 -> v1.1.3](https://github.com/openziti/ziti-db-explorer/compare/v1.1.1...v1.1.3)
* [Issue #4](https://github.com/openziti/ziti-db-explorer/issues/4) - db explore timeout error is uninformative
* github.com/openziti/metrics: [v1.2.30 -> v1.2.31](https://github.com/openziti/metrics/compare/v1.2.30...v1.2.31)
* github.com/openziti/ziti: [v0.29.0 -> v0.30.0](https://github.com/openziti/ziti/compare/v0.29.0...v0.30.0)
* [Issue #1199](https://github.com/openziti/ziti/issues/1199) - ziti edge list enrollments - CLI gets 404
* [Issue #1135](https://github.com/openziti/ziti/issues/1135) - Edge Router: Support multiple protocols on the same listener port
* [Issue #65](https://github.com/openziti/ziti/issues/65) - Add ECDSA support to PKI subcmd
* [Issue #1212](https://github.com/openziti/ziti/issues/1212) - getZiti fails on Mac OS
* [Issue #1220](https://github.com/openziti/ziti/issues/1220) - Fixed getZiti function not respecting user input for custom path
* [Issue #1219](https://github.com/openziti/ziti/issues/1219) - Added check for IPs provided as a DNS SANs entry, IPs will be ignored and not added as a DNS entry in the expressInstall PKI or router config generation.
# Release 0.29.0
## What's New
+15 -15
View File
@@ -18,18 +18,18 @@ require (
github.com/jedib0t/go-pretty/v6 v6.4.0
github.com/michaelquigley/pfxlog v0.6.10
github.com/openziti/agent v1.0.15
github.com/openziti/channel/v2 v2.0.89
github.com/openziti/edge v0.24.374
github.com/openziti/channel/v2 v2.0.91
github.com/openziti/edge v0.24.381
github.com/openziti/edge-api v0.25.31
github.com/openziti/fabric v0.23.52
github.com/openziti/foundation/v2 v2.0.28
github.com/openziti/identity v1.0.59
github.com/openziti/runzmd v1.0.28
github.com/openziti/sdk-golang v0.20.87
github.com/openziti/storage v0.2.11
github.com/openziti/transport/v2 v2.0.97
github.com/openziti/fabric v0.24.2
github.com/openziti/foundation/v2 v2.0.29
github.com/openziti/identity v1.0.60
github.com/openziti/runzmd v1.0.29
github.com/openziti/sdk-golang v0.20.90
github.com/openziti/storage v0.2.12
github.com/openziti/transport/v2 v2.0.99
github.com/openziti/xweb/v2 v2.1.0
github.com/openziti/ziti-db-explorer v1.1.1
github.com/openziti/ziti-db-explorer v1.1.3
github.com/pkg/errors v0.9.1
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475
github.com/russross/blackfriday v1.5.2
@@ -135,7 +135,7 @@ 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.30 // indirect
github.com/openziti/metrics v1.2.31 // indirect
github.com/openziti/secretstream v0.1.10 // indirect
github.com/openziti/x509-claims v1.0.3 // indirect
github.com/orcaman/concurrent-map/v2 v2.0.1 // indirect
@@ -156,7 +156,7 @@ require (
github.com/spf13/jwalterweatherman v1.1.0 // indirect
github.com/subosito/gotenv v1.2.0 // indirect
github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 // indirect
github.com/tklauser/go-sysconf v0.3.11 // indirect
github.com/tklauser/go-sysconf v0.3.12 // indirect
github.com/tklauser/numcpus v0.6.1 // indirect
github.com/valyala/bytebufferpool v1.0.0 // indirect
github.com/valyala/fasttemplate v1.2.2 // indirect
@@ -164,17 +164,17 @@ require (
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
github.com/xeipuuv/gojsonschema v1.2.0 // indirect
github.com/yusufpapurcu/wmi v1.2.3 // indirect
github.com/zitadel/oidc/v2 v2.6.4 // indirect
github.com/zitadel/oidc/v2 v2.7.0 // indirect
go.mongodb.org/mongo-driver v1.12.1 // indirect
go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352 // indirect
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.12.0 // indirect
golang.org/x/exp v0.0.0-20230807204917-050eac23e9de // indirect
golang.org/x/exp v0.0.0-20230809150735-7b3493d9a819 // indirect
golang.org/x/image v0.11.0 // indirect
golang.org/x/mod v0.11.0 // indirect
golang.org/x/oauth2 v0.9.0 // indirect
golang.org/x/oauth2 v0.10.0 // indirect
golang.org/x/sync v0.3.0 // indirect
golang.org/x/sys v0.11.0 // indirect
golang.org/x/term v0.11.0 // indirect
+30 -29
View File
@@ -705,40 +705,40 @@ 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.15 h1:NW4egpS3Mw1RQBZWfUEvrmBh9kn/SU/dU5fndsyyhZ4=
github.com/openziti/agent v1.0.15/go.mod h1:zfm53+PVWoGFzjGGgQdKby5749G6VRYHe+eQJmoVKy4=
github.com/openziti/channel/v2 v2.0.89 h1:L6Efndhsb0YgvD5LkU6QAB6si2VP4h0Kn0BmY2iBfjQ=
github.com/openziti/channel/v2 v2.0.89/go.mod h1:O7wkSjV7CuebQQKLHYUL/wPL+8RuZkGQDzd1L7/+8qk=
github.com/openziti/channel/v2 v2.0.91 h1:HKD7uniGOfiQfbzaP1AJ0JGvls7oejC+fMj6gLJOlW8=
github.com/openziti/channel/v2 v2.0.91/go.mod h1:2uJzEV3pX4soPPl07l8ScONNGuSQTQzUqAYkgATA3Rk=
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.374 h1:L1Z3EDrEOHxOj5hip1rTFJAlLuoB7lXKVdb3Jbp+URI=
github.com/openziti/edge v0.24.374/go.mod h1:bPFyx5/N3acmNVODDkGrTyGxYLviO3I52j0Owj8MQvs=
github.com/openziti/edge v0.24.381 h1:8Uklh0w9+EFMhBkzDC7kFm0c09NAZbUHuLuWZekZY0M=
github.com/openziti/edge v0.24.381/go.mod h1:sFJbZLfBU2kFsc70LkzUW4eizZye9ejVMOtu8iI8pq8=
github.com/openziti/edge-api v0.25.31 h1:KiM4pQVIqy/0CN/FW2AgoN7PcejB+y8FdgjN86Jn83Q=
github.com/openziti/edge-api v0.25.31/go.mod h1:7fyXLqNcyC5IG29GuI8danhhppAaxRV6HiCLwN1Kk64=
github.com/openziti/fabric v0.23.52 h1:8F4jt00RDrZJz6YiKliJ8UGnknE3jSuWwxsK3641ehE=
github.com/openziti/fabric v0.23.52/go.mod h1:wLYKhlnhthLR7FBqfGlfdCZ0hbQCcSnr5b2wpjA4/vM=
github.com/openziti/foundation/v2 v2.0.28 h1:AAdHhtUj1tCIXollSpbDlKwPKRasNAgADpTZAF1WCOQ=
github.com/openziti/foundation/v2 v2.0.28/go.mod h1:psKxxQw/zRo5+oKN7AR+MKYaeR3mbBPhb65qq8rqB0U=
github.com/openziti/identity v1.0.59 h1:YShXqxa9nTbCnPtIAji10hx7BG1nQukg4ddUJExNXa8=
github.com/openziti/identity v1.0.59/go.mod h1:9vQjDHH2Z3kFmkwmHsVKfI9EdcXjUiwAiR8Sc6Qzmbk=
github.com/openziti/fabric v0.24.2 h1:fb7fE/d3it6OrwhJqfr0RKQ41VUV9VKFsOOl98zdoRY=
github.com/openziti/fabric v0.24.2/go.mod h1:rXhb73v5rgoUV1AbRDXF8gAcbualabJU9YyLMkiB0yw=
github.com/openziti/foundation/v2 v2.0.29 h1:E63p5/esqOJ/OSMePR3fKYHb3Wq2BR4PLkDFynESij8=
github.com/openziti/foundation/v2 v2.0.29/go.mod h1:MpXSCSn4MABvtIXzfTBFqhK5pNsNXHWnR8xxVrfxn0g=
github.com/openziti/identity v1.0.60 h1:6gvBXY9J6F7SbuksdxsUA1t1WmtsFfY61Oqm/00ijGU=
github.com/openziti/identity v1.0.60/go.mod h1:pUfQ1Rf6TJvpBULXKPAO4014Qd6g+uf6V/vqjUscipU=
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.30 h1:0ZV9UWPupcBvHigzET1wf47idrTflYSHInNgDtZqkIQ=
github.com/openziti/metrics v1.2.30/go.mod h1:8xSr4Rl0527Lyp5IKvUYwPNObIFkO8AS3nO2RjvDPSQ=
github.com/openziti/runzmd v1.0.28 h1:8VNgENRAm1pfp0YoJWYoW6uBtyMD6ccVTsC24kx2gpk=
github.com/openziti/runzmd v1.0.28/go.mod h1:4r4uNOK34lKbilrV7yaiDiPwRGIvj1XQSl6E6U8NmAw=
github.com/openziti/sdk-golang v0.20.87 h1:hhJd0/msZf/2vC15xXZ4xF3zbR+Bmx1gmgM4K0l4JxI=
github.com/openziti/sdk-golang v0.20.87/go.mod h1:gszOnLHB9RAuAw5F86uI8fIYNdh3d6+KRHo5zP+uzTU=
github.com/openziti/metrics v1.2.31 h1:nEO9FAqCnpfuvxGYfy9/W46p2SaEcZ6vlRyz4fcipoY=
github.com/openziti/metrics v1.2.31/go.mod h1:SU2w3WW36O+ocVy+ka2UHA0cweTg3T8CQiqz4ZT4Umc=
github.com/openziti/runzmd v1.0.29 h1:skS9Ea8TIYZ28V4yEz3KoWafnto4RAOwv8M2Z4bM8Wo=
github.com/openziti/runzmd v1.0.29/go.mod h1:rAvUIRGlIWYsHtWRX7lbV8LZPUjsifjZd72xUEfEuTw=
github.com/openziti/sdk-golang v0.20.90 h1:QXWa1Ti1Sky9D2uv3kAxmybwicZLJH6hgyDpXkdZcYc=
github.com/openziti/sdk-golang v0.20.90/go.mod h1:IorK7wik0unGAGBuYjdb9ZPFX7ENACtxFpWuTBPOT9Q=
github.com/openziti/secretstream v0.1.10 h1:aLheoP6vVAv96mItwkXxWr9Ym0tTooJ5o9H1j2fAh04=
github.com/openziti/secretstream v0.1.10/go.mod h1:HrS6P9G0jjHNHuKESMaybNdxBHjD1b0SzxSi0rDzshY=
github.com/openziti/storage v0.2.11 h1:Ws23any7NtbEKQroFJt6DJmeEFGMPjZqjAK2/Re9LIE=
github.com/openziti/storage v0.2.11/go.mod h1:M46XIxPYwTDTgaamI6o9cyEJkYvUYfhJjwvZtQu4tUQ=
github.com/openziti/transport/v2 v2.0.97 h1:BgsxDYdyzBf6sIIicT6X7WV1S2HMXQA1upmo5UFNYfU=
github.com/openziti/transport/v2 v2.0.97/go.mod h1:zXB5jNtmTIe3gMCgLuk2RUEsvc8ysVLExnfrRdSg11M=
github.com/openziti/storage v0.2.12 h1:ghQkt3SCLwRuiTeRLOUWgNL69XQNp9Gx8K3eVw0QTQY=
github.com/openziti/storage v0.2.12/go.mod h1:RxWIe9FyQg9LZQFZ4FuUROf0lhnfUW2XeWfTbHAMGeY=
github.com/openziti/transport/v2 v2.0.99 h1:+/DYNzaUrzSSaoKEBNFumXJsXMDEUNiWbWZfX48Z2vc=
github.com/openziti/transport/v2 v2.0.99/go.mod h1:bV9XKtxnmqW8crReZB2z+cJhSNLl6EsyoouTkyUY8mk=
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.1.0 h1:Xhh3C2pZkq/Prr65V+SfFSibLDYteoc4f62KQCcTZF4=
github.com/openziti/xweb/v2 v2.1.0/go.mod h1:wPkjm5y45RYCV8AafjcAXP/ZM4DBOofXhRwSGgjF8w8=
github.com/openziti/ziti-db-explorer v1.1.1 h1:G0eoTby+aIjjt5TxEfR+FMI2CWd4RvZFjzaIMX2lEBw=
github.com/openziti/ziti-db-explorer v1.1.1/go.mod h1:h76h7Tsb+khb0v+CqYKL6ifUfJbUMjGBFU2IvupfBE4=
github.com/openziti/ziti-db-explorer v1.1.3 h1:9JER16MJzagtYPdGEhgDcw2p/BXNCVbf9IgA/sMB52w=
github.com/openziti/ziti-db-explorer v1.1.3/go.mod h1:pMIMNJoTRSTbkO2e7cZWiBokA3jMdeiGAILP3QhU+v8=
github.com/oracle/oci-go-sdk v24.2.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35ukwStZIg5F66tcBccjip/j888=
github.com/orcaman/concurrent-map/v2 v2.0.1 h1:jOJ5Pg2w1oeB6PeDurIYf6k9PQ+aTITr/6lP/L/zp6c=
github.com/orcaman/concurrent-map/v2 v2.0.1/go.mod h1:9Eq3TG2oBe5FirmYWQfYO5iH1q0Jv47PLaNK++uCdOM=
@@ -927,8 +927,9 @@ github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cb
github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 h1:3SNcvBmEPE1YlB1JpVZouslJpI3GBNoiqW7+wb0Rz7w=
github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125/go.mod h1:M8agBzgqHIhgj7wEn9/0hJUZcrvt9VY+Ln+S1I5Mha0=
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
github.com/tklauser/go-sysconf v0.3.11 h1:89WgdJhk5SNwJfu+GKyYveZ4IaJ7xAkecBo+KdJV0CM=
github.com/tklauser/go-sysconf v0.3.11/go.mod h1:GqXfhXY3kiPa0nAXPDIQIWzJbMCB7AmcWpGR8lSZfqI=
github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU=
github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI=
github.com/tklauser/numcpus v0.6.0/go.mod h1:FEZLMke0lhOUG6w2JadTzp0a+Nl8PF/GFkQ5UVIcaL4=
github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk=
github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY=
@@ -973,8 +974,8 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw=
github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
github.com/zitadel/oidc/v2 v2.6.4 h1:bruA+KOFHcGpxr++WgtvR82ZlH54kKituu5xE4wpF7o=
github.com/zitadel/oidc/v2 v2.6.4/go.mod h1:owrsdzRqGvIZjBCY9LY1ZUYJ0mRUbGkQpZ3OskXL4wM=
github.com/zitadel/oidc/v2 v2.7.0 h1:IGX4EDk6tegTjUSsZDWeTfLseFU0BdJ/Glf1tgys2lU=
github.com/zitadel/oidc/v2 v2.7.0/go.mod h1:zkUkVJS0sDVy9m0UA9RgO3f8i/C0rtjvXU36UJj7T+0=
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ=
go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw=
@@ -1054,8 +1055,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0
golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
golang.org/x/exp v0.0.0-20230807204917-050eac23e9de h1:l5Za6utMv/HsBWWqzt4S8X17j+kt1uVETUX5UFhn2rE=
golang.org/x/exp v0.0.0-20230807204917-050eac23e9de/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc=
golang.org/x/exp v0.0.0-20230809150735-7b3493d9a819 h1:EDuYyU/MkFXllv9QF9819VlI9a4tzGuCbhG0ExK9o1U=
golang.org/x/exp v0.0.0-20230809150735-7b3493d9a819/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
@@ -1162,8 +1163,8 @@ golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ
golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.9.0 h1:BPpt2kU7oMRq3kCHAA1tbSEshXRw1LpG2ztgDwrzuAs=
golang.org/x/oauth2 v0.9.0/go.mod h1:qYgFZaFiu6Wg24azG8bdV52QJXJGbZzIIsRCdVKzbLw=
golang.org/x/oauth2 v0.10.0 h1:zHCpF2Khkwy4mMB4bv0U37YtJdTGW8jI0glAApi0Kh8=
golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI=
golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+3
View File
@@ -15,17 +15,20 @@ First, decide what you are trying to do. Are you trying to:
1. copy the `ziti` CLI to `./ziti-bin`: `cp /path/to/ziti ./ziti-bin`
1. run the script `./createLocalImage.sh` which will create a `openziti/quickstart:latest` tag
using the `ziti` CLI located in `./ziti-bin`
1. Optionally, you may provide an argument for the image tag. `./createLocalImage.sh <tagname>`
## Build Docker Image for Docker-related Changes
1. change to this directory from checkout root: `cd quickstart/docker`
1. run the script `./createLocalImage.sh` which will create a `openziti/quickstart:latest` tag
using the latest `ziti` [release from GitHub](https://github.com/openziti/ziti/releases/latest)
1. Optionally, you may provide an argument for the image tag. `./createLocalImage.sh <tagname>`
## Build Docker Image with Specific ziti Version
1. change to this directory from checkout root: `cd quickstart/docker`
1. set `ZITI_VERSION_OVERRIDE` to desired version: `export ZITI_VERSION_OVERRIDE=v0.28.4`
1. run the script `./createLocalImage.sh` which will create a `openziti/quickstart:latest` tag
using the specified version of `ziti` [from GitHub](https://github.com/openziti/ziti/releases/tag/v0.28.4)
1. Optionally, you may provide an argument for the image tag. `./createLocalImage.sh <tagname>`
## ERROR: existing instance for "ziti-builder"
When running the `./createLocalImage.sh` script, you might get this error:
+1 -1
View File
@@ -17,4 +17,4 @@ else
echo ""
fi
$SCRIPT_DIR/pushLatestDocker.sh local
$SCRIPT_DIR/pushLatestDocker.sh local "${1}"
+7 -1
View File
@@ -12,6 +12,12 @@ if [[ "${ZITI_ROUTER_NAME-}" != "" ]]; then
echo "_ZITI_ROUTER_NAME set to: ${_ZITI_ROUTER_NAME}"
fi
# Wait until the file exists, then give one more second for the file to be completely written
until [ -f "${ZITI_HOME}/ziti.env" ]
do
sleep 1
done
sleep 1
. ${ZITI_HOME}/ziti.env
# wait for the controller to come online
@@ -48,7 +54,7 @@ if [ ! -f "${_UNIQUE_NAME}" ]; then
createPrivateRouterConfig "${ZITI_ROUTER_NAME}"
fi
found=$(ziti edge list edge-routers 'name = "'"${ZITI_ROUTER_NAME}"'"' | grep -c "${ZITI_ROUTER_NAME}")
found=$("${ZITI_BIN_DIR-}/ziti" edge list edge-routers 'name = "'"${ZITI_ROUTER_NAME}"'"' | grep -c "${ZITI_ROUTER_NAME}")
if [[ found -gt 0 ]]; then
echo "---------- Found existing edge-router ${ZITI_ROUTER_NAME}...."
else
+41 -3
View File
@@ -92,6 +92,17 @@ function _dedupe_list {
echo "${list}" | tr "'${delimiter}'" '\n' | sort -u | xargs | tr ' ' ','
}
# Checks if a value is likely an IP address
function _is_ip {
local param pattern
param="${1}"
pattern="^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$"
if [[ "${param}" =~ $pattern ]]; then
return 0
fi
return 1
}
function _pki_client_server {
local retVal dns_allow_list ZITI_CA_NAME_local ip_allow_list file_name
_check_env_variable ZITI_PKI ZITI_BIN_DIR
@@ -709,7 +720,7 @@ function getZiti {
# Create a custom PKI
function createPki {
local retVal pki_allow_list_dns pki_allow_list_ip ZITI_SPURIOUS_INTERMEDIATE
local retVal pki_allow_list pki_allow_list_ip ZITI_SPURIOUS_INTERMEDIATE
_check_env_variable ZITI_PKI_CTRL_ROOTCA_NAME ZITI_PKI_CTRL_EDGE_ROOTCA_NAME ZITI_PKI_SIGNER_ROOTCA_NAME \
ZITI_PKI_SIGNER_INTERMEDIATE_NAME ZITI_PKI_CTRL_INTERMEDIATE_NAME \
ZITI_PKI_CTRL_EDGE_INTERMEDIATE_NAME
@@ -730,12 +741,39 @@ function createPki {
_pki_create_intermediate "${ZITI_SPURIOUS_INTERMEDIATE}" "${ZITI_PKI_SIGNER_INTERMEDIATE_NAME}" 1
echo " "
pki_allow_list="${ZITI_CTRL_ADVERTISED_ADDRESS},localhost,${ZITI_NETWORK}"
pki_allow_list="localhost,${ZITI_NETWORK}"
if [[ "${ZITI_CTRL_ADVERTISED_ADDRESS-}" != "" ]]; then
if ! _is_ip "${ZITI_CTRL_ADVERTISED_ADDRESS-}"; then
pki_allow_list="${pki_allow_list},${ZITI_CTRL_ADVERTISED_ADDRESS}"
else
echo -e "$(YELLOW "ZITI_CTRL_ADVERTISED_ADDRESS seems to be an IP address, it will not be added to the SANs DNS list.") "
fi
fi
if [[ "${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS-}" != "" ]]; then
if ! _is_ip "${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS-}"; then
pki_allow_list="${pki_allow_list},${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS}"
else
echo -e "$(YELLOW "ZITI_CTRL_EDGE_ADVERTISED_ADDRESS seems to be an IP address, it will not be added to the SANs DNS list.") "
fi
fi
pki_allow_list_ip="127.0.0.1"
if [[ "${ZITI_CTRL_EDGE_IP_OVERRIDE-}" != "" ]]; then
pki_allow_list_ip="${pki_allow_list_ip},${ZITI_CTRL_EDGE_IP_OVERRIDE}"
fi
_pki_client_server "${pki_allow_list}" "${ZITI_PKI_CTRL_INTERMEDIATE_NAME}" "${pki_allow_list_ip}" "${ZITI_CTRL_ADVERTISED_ADDRESS}"
pki_allow_list="${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS},localhost,${ZITI_NETWORK}"
pki_allow_list="localhost,${ZITI_NETWORK}"
if [[ "${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS-}" != "" ]]; then
if ! _is_ip "${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS-}"; then
pki_allow_list="${pki_allow_list},${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS}"
else
echo -e "$(YELLOW "ZITI_CTRL_EDGE_ADVERTISED_ADDRESS seems to be an IP address, it will not be added to the SANs DNS list.") "
fi
fi
pki_allow_list_ip="127.0.0.1"
if [[ "${ZITI_CTRL_EDGE_IP_OVERRIDE-}" != "" ]]; then
pki_allow_list_ip="${pki_allow_list_ip},${ZITI_CTRL_EDGE_IP_OVERRIDE}"
fi
_pki_client_server "${pki_allow_list}" "${ZITI_PKI_CTRL_EDGE_INTERMEDIATE_NAME}" "${pki_allow_list_ip}" "${ZITI_CTRL_EDGE_ADVERTISED_ADDRESS}"
echo -e "$(GREEN "PKI generated successfully")"
+7 -1
View File
@@ -15,6 +15,12 @@ if [ -z "${ZITI_VERSION}" ]; then
exit 1
fi
IMAGE_TAG="${2-}"
if [ -z "${IMAGE_TAG}" ]; then
IMAGE_TAG="latest"
echo "image tag name was not provided, using default '${IMAGE_TAG}'"
fi
docker buildx create --use --name=ziti-builder
if [ "local" == "${1}" ]; then
@@ -28,5 +34,5 @@ fi
docker buildx build ${_BUILDX_PLATFORM} "${SCRIPT_DIR}/image" \
--build-arg ZITI_VERSION_OVERRIDE="v${ZITI_VERSION}" \
--tag "openziti/quickstart:${ZITI_VERSION}" \
--tag "openziti/quickstart:latest" \
--tag "openziti/quickstart:${IMAGE_TAG}" \
${_BUILDX_ACTION}
+1 -1
View File
@@ -1 +1 @@
0.29
0.30
+6 -6
View File
@@ -14,9 +14,9 @@ identity:
server_cert: "{{ .Controller.Identity.ServerCert }}"
key: "{{ .Controller.Identity.Key }}"
ca: "{{ .Controller.Identity.Ca }}"
{{ .Controller.Web.Identity.AltCertsEnabled }}alt_server_certs:
{{ .Controller.Web.Identity.AltCertsEnabled }} - server_cert: "{{ .Controller.Web.Identity.AltServerCert }}"
{{ .Controller.Web.Identity.AltCertsEnabled }} server_key: "{{ .Controller.Web.Identity.AltServerKey }}"
{{ if not .Controller.Web.Identity.AltCertsEnabled }}#{{ end }}alt_server_certs:
{{ if not .Controller.Web.Identity.AltCertsEnabled }}#{{ end }} - server_cert: "{{ .Controller.Web.Identity.AltServerCert }}"
{{ if not .Controller.Web.Identity.AltCertsEnabled }}#{{ end }} server_key: "{{ .Controller.Web.Identity.AltServerKey }}"
# Network Configuration
#
@@ -168,9 +168,9 @@ web:
key: "{{ .Controller.Web.Identity.Key }}"
server_cert: "{{ .Controller.Web.Identity.ServerCert }}"
cert: "{{ .Controller.Web.Identity.Cert }}"
{{ .Controller.Web.Identity.AltCertsEnabled }}alt_server_certs:
{{ .Controller.Web.Identity.AltCertsEnabled }}- server_cert: "{{ .Controller.Web.Identity.AltServerCert }}"
{{ .Controller.Web.Identity.AltCertsEnabled }} server_key: "{{ .Controller.Web.Identity.AltServerKey }}"
{{ if not .Controller.Web.Identity.AltCertsEnabled }}#{{ end }}alt_server_certs:
{{ if not .Controller.Web.Identity.AltCertsEnabled }}#{{ end }}- server_cert: "{{ .Controller.Web.Identity.AltServerCert }}"
{{ if not .Controller.Web.Identity.AltCertsEnabled }}#{{ end }} server_key: "{{ .Controller.Web.Identity.AltServerKey }}"
# options - optional
# Allows the specification of webListener level options - mainly dealing with HTTP/TLS settings. These options are
+14 -11
View File
@@ -1,19 +1,20 @@
{{/*
{{- /*
Config Format Version
Whenever a breaking change is made to the semantics of this configuration file, the configuration version
expected by the router will be incremented. When the controller tries to load a configuration file with
an incompatible version, it will abort with a message prompting the operator to seek out the breaking changes
documentation.*/}}v: 3
documentation.*/ -}}
v: 3
identity:
cert: "{{ .Router.IdentityCert }}"
server_cert: "{{ .Router.IdentityServerCert }}"
key: "{{ .Router.IdentityKey }}"
ca: "{{ .Router.IdentityCA }}"
{{ .Router.AltCertsEnabled }}alt_server_certs:
{{ .Router.AltCertsEnabled }} - server_cert: "{{ .Router.AltServerCert }}"
{{ .Router.AltCertsEnabled }} server_key: "{{ .Router.AltServerKey }}"
{{ if not .Router.AltCertsEnabled }}#{{ end }}alt_server_certs:
{{ if not .Router.AltCertsEnabled }}#{{ end }} - server_cert: "{{ .Router.AltServerCert }}"
{{ if not .Router.AltCertsEnabled }}#{{ end }} server_key: "{{ .Router.AltServerKey }}"
ctrl:
endpoint: tls:{{ .Controller.Ctrl.AdvertisedAddress }}:{{ .Controller.Ctrl.AdvertisedPort }}
@@ -50,8 +51,9 @@ csr:
organizationalUnit: Ziti
sans:
dns:
- {{ .Router.Edge.AdvertisedHost }}
- localhost
{{ if .Router.Edge.CsrSans }} - {{ .Router.Edge.CsrSans }}{{ end }}
{{ if ne .Router.Edge.CsrSans .Hostname }} - {{ .Hostname }}{{ end }}
ip:
- "127.0.0.1"
{{ if .Router.Edge.IPOverride }} - "{{ .Router.Edge.IPOverride }}"{{ end }}
@@ -65,8 +67,9 @@ edge:
organizationalUnit: {{ .Router.Edge.CsrOU }}
sans:
dns:
- {{ .Router.Edge.CsrSans }}
- localhost
{{ if .Router.Edge.CsrSans }} - {{ .Router.Edge.CsrSans }}{{ end }}
{{ if ne .Router.Edge.CsrSans .Hostname }} - {{ .Hostname }}{{ end }}
ip:
- "127.0.0.1"
{{ if .Router.Edge.IPOverride }} - "{{ .Router.Edge.IPOverride }}"{{ end }}
@@ -84,13 +87,13 @@ edge:
{{ if not .Router.IsWss }}#{{ end }} enableCompression: {{ .Router.Wss.EnableCompression }}
{{ if not .Router.IsWss }}#{{ end }} server_cert: {{ .Router.IdentityServerCert }}
{{ if not .Router.IsWss }}#{{ end }} key: {{ .Router.IdentityKey }}
{{ .Router.AltCertsEnabled }}alt_server_certs:
{{ .Router.AltCertsEnabled }} - server_cert: "{{ .Router.AltServerCert }}"
{{ .Router.AltCertsEnabled }} server_key: "{{ .Router.AltServerKey }}"
{{ if not .Router.AltCertsEnabled }}#{{ end }}alt_server_certs:
{{ if not .Router.AltCertsEnabled }}#{{ end }} - server_cert: "{{ .Router.AltServerCert }}"
{{ if not .Router.AltCertsEnabled }}#{{ end }} server_key: "{{ .Router.AltServerKey }}"
forwarder:
latencyProbeInterval: {{ .Router.Forwarder.LatencyProbeInterval.Seconds }}
xgressDialQueueLength: {{ .Router.Forwarder.XgressDialQueueLength }}
xgressDialWorkerCount: {{ .Router.Forwarder.XgressDialWorkerCount }}
linkDialQueueLength: {{ .Router.Forwarder.LinkDialQueueLength }}
linkDialWorkerCount: {{ .Router.Forwarder.LinkDialWorkerCount }}
+10 -6
View File
@@ -20,7 +20,7 @@ import (
"github.com/openziti/ziti/ziti/cmd/common"
cmdHelper "github.com/openziti/ziti/ziti/cmd/helpers"
"github.com/openziti/ziti/ziti/constants"
"os"
"regexp"
"time"
"github.com/openziti/channel/v2"
@@ -117,7 +117,7 @@ type IdentityValues struct {
Cert string
AltServerCert string
AltServerKey string
AltCertsEnabled string //a string containing either nothing "" or "#"
AltCertsEnabled bool
}
type WebOptionsValues struct {
@@ -149,7 +149,7 @@ type RouterTemplateValues struct {
IdentityCA string
AltServerCert string
AltServerKey string
AltCertsEnabled string //a string containing either nothing "" or "#"
AltCertsEnabled bool
Edge EdgeRouterTemplateValues
Wss WSSRouterTemplateValues
Forwarder RouterForwarderTemplateValues
@@ -230,15 +230,13 @@ func (options *CreateConfigOptions) addCreateFlags(cmd *cobra.Command) {
func (data *ConfigTemplateValues) populateConfigValues() {
// Get and add hostname to the params
hostname, err := os.Hostname()
handleVariableError(err, "hostname")
data.Hostname = cmdHelper.HostnameOrNetworkName()
// Get and add ziti home to the params
zitiHome, err := cmdHelper.GetZitiHome()
handleVariableError(err, constants.ZitiHomeVarName)
data.ZitiHome = zitiHome
data.Hostname = hostname
// ************* Controller Values ************
// Identities are handled in create_config_controller
// ctrl:
@@ -290,6 +288,12 @@ func (data *ConfigTemplateValues) populateConfigValues() {
data.Router.Edge.CsrO = cmdHelper.GetZitiEdgeRouterO()
data.Router.Edge.CsrOU = cmdHelper.GetZitiEdgeRouterOU()
data.Router.Edge.CsrSans = cmdHelper.GetRouterSans()
// If CSR SANs is an IP, ignore it by setting it blank
result, _ := regexp.MatchString("^[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}$", data.Router.Edge.CsrSans)
if result {
logrus.Warnf("DNS provided (%s) appears to be an IP, ignoring for DNS entry", data.Router.Edge.CsrSans)
data.Router.Edge.CsrSans = ""
}
data.Router.Listener.GetSessionTimeout = constants.DefaultGetSessionTimeout
data.Router.Wss.WriteTimeout = foundation.DefaultWsWriteTimeout
+2 -2
View File
@@ -279,7 +279,7 @@ func SetWebIdentityCA(c *ControllerTemplateValues) {
}
func SetCtrlAltServerCerts(c *ControllerTemplateValues) {
c.Web.Identity.AltCertsEnabled = "#"
c.Web.Identity.AltCertsEnabled = false
altServerCert := os.Getenv(constants.PkiAltServerCertVarName)
if altServerCert == "" {
return //exit unless both vars are set
@@ -288,7 +288,7 @@ func SetCtrlAltServerCerts(c *ControllerTemplateValues) {
if altServerKey == "" {
return //exit unless both vars are set
}
c.Web.Identity.AltCertsEnabled = ""
c.Web.Identity.AltCertsEnabled = true
c.Web.Identity.AltServerCert = helpers2.NormalizePath(altServerCert)
c.Web.Identity.AltServerKey = helpers2.NormalizePath(altServerKey)
}
+2 -2
View File
@@ -94,7 +94,7 @@ func validateRouterName(name string) string {
}
func SetRouterAltServerCerts(c *RouterTemplateValues) {
c.AltCertsEnabled = "#"
c.AltCertsEnabled = false
altServerCert := os.Getenv(constants.PkiAltServerCertVarName)
if altServerCert == "" {
return //exit unless both vars are set
@@ -103,7 +103,7 @@ func SetRouterAltServerCerts(c *RouterTemplateValues) {
if altServerKey == "" {
return //exit unless both vars are set
}
c.AltCertsEnabled = ""
c.AltCertsEnabled = true
c.AltServerCert = helpers2.NormalizePath(altServerCert)
c.AltServerKey = helpers2.NormalizePath(altServerKey)
}
+2 -2
View File
@@ -296,7 +296,7 @@ func TestAltServerCerts(t *testing.T) {
SetZitiRouterIdentity(rtv, "routerTest")
//with only ZITI_ALT_SERVER_CERT set, should be false/blank
assert.Equal(t, "#", rtv.AltCertsEnabled)
assert.False(t, rtv.AltCertsEnabled)
assert.Equal(t, "", rtv.AltServerCert)
assert.Equal(t, "", rtv.AltServerKey)
@@ -304,7 +304,7 @@ func TestAltServerCerts(t *testing.T) {
rtv = &RouterTemplateValues{}
SetZitiRouterIdentity(rtv, "routerTest")
assert.Equal(t, "", rtv.AltCertsEnabled)
assert.True(t, rtv.AltCertsEnabled)
assert.Equal(t, certPath, rtv.AltServerCert)
assert.Equal(t, keyPath, rtv.AltServerKey)
}
+1 -1
View File
@@ -684,7 +684,7 @@ func outputEnrollments(o *api.Options, children []*gabs.Container, pagingInfo *a
}
func runListEnrollments(o *api.Options) error {
children, pagingInfo, err := listEntitiesWithOptions("ext-jwt-signers", o)
children, pagingInfo, err := listEntitiesWithOptions("enrollments", o)
if err != nil {
return err
}
+15 -15
View File
@@ -9,15 +9,15 @@ require (
github.com/Jeffail/gabs/v2 v2.7.0
github.com/google/uuid v1.3.0
github.com/michaelquigley/pfxlog v0.6.10
github.com/openziti/channel/v2 v2.0.89
github.com/openziti/edge v0.24.374
github.com/openziti/channel/v2 v2.0.91
github.com/openziti/edge v0.24.381
github.com/openziti/fablab v0.5.5
github.com/openziti/fabric v0.23.52
github.com/openziti/foundation/v2 v2.0.28
github.com/openziti/identity v1.0.59
github.com/openziti/sdk-golang v0.20.87
github.com/openziti/storage v0.2.11
github.com/openziti/transport/v2 v2.0.97
github.com/openziti/fabric v0.24.2
github.com/openziti/foundation/v2 v2.0.29
github.com/openziti/identity v1.0.60
github.com/openziti/sdk-golang v0.20.90
github.com/openziti/storage v0.2.12
github.com/openziti/transport/v2 v2.0.99
github.com/openziti/ziti v0.28.3
github.com/pkg/errors v0.9.1
github.com/sirupsen/logrus v1.9.3
@@ -128,12 +128,12 @@ require (
github.com/openziti/agent v1.0.15 // indirect
github.com/openziti/edge-api v0.25.31 // indirect
github.com/openziti/jwks v1.0.3 // indirect
github.com/openziti/metrics v1.2.30 // indirect
github.com/openziti/runzmd v1.0.28 // indirect
github.com/openziti/metrics v1.2.31 // indirect
github.com/openziti/runzmd v1.0.29 // indirect
github.com/openziti/secretstream v0.1.10 // indirect
github.com/openziti/x509-claims v1.0.3 // indirect
github.com/openziti/xweb/v2 v2.1.0 // indirect
github.com/openziti/ziti-db-explorer v1.1.1 // indirect
github.com/openziti/ziti-db-explorer v1.1.3 // indirect
github.com/orcaman/concurrent-map/v2 v2.0.1 // indirect
github.com/parallaxsecond/parsec-client-go v0.0.0-20221025095442-f0a77d263cf9 // indirect
github.com/pelletier/go-toml v1.9.4 // indirect
@@ -159,7 +159,7 @@ require (
github.com/spf13/viper v1.10.0 // indirect
github.com/subosito/gotenv v1.2.0 // indirect
github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 // indirect
github.com/tklauser/go-sysconf v0.3.11 // indirect
github.com/tklauser/go-sysconf v0.3.12 // indirect
github.com/tklauser/numcpus v0.6.1 // indirect
github.com/valyala/bytebufferpool v1.0.0 // indirect
github.com/valyala/fasttemplate v1.2.2 // indirect
@@ -167,17 +167,17 @@ require (
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
github.com/xeipuuv/gojsonschema v1.2.0 // indirect
github.com/yusufpapurcu/wmi v1.2.3 // indirect
github.com/zitadel/oidc/v2 v2.6.4 // indirect
github.com/zitadel/oidc/v2 v2.7.0 // indirect
go.mongodb.org/mongo-driver v1.12.1 // indirect
go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352 // indirect
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.12.0 // indirect
golang.org/x/exp v0.0.0-20230807204917-050eac23e9de // indirect
golang.org/x/exp v0.0.0-20230809150735-7b3493d9a819 // indirect
golang.org/x/image v0.11.0 // indirect
golang.org/x/mod v0.11.0 // indirect
golang.org/x/oauth2 v0.9.0 // indirect
golang.org/x/oauth2 v0.10.0 // indirect
golang.org/x/sync v0.3.0 // indirect
golang.org/x/sys v0.11.0 // indirect
golang.org/x/term v0.11.0 // indirect
+30 -29
View File
@@ -649,40 +649,40 @@ 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.15 h1:NW4egpS3Mw1RQBZWfUEvrmBh9kn/SU/dU5fndsyyhZ4=
github.com/openziti/agent v1.0.15/go.mod h1:zfm53+PVWoGFzjGGgQdKby5749G6VRYHe+eQJmoVKy4=
github.com/openziti/channel/v2 v2.0.89 h1:L6Efndhsb0YgvD5LkU6QAB6si2VP4h0Kn0BmY2iBfjQ=
github.com/openziti/channel/v2 v2.0.89/go.mod h1:O7wkSjV7CuebQQKLHYUL/wPL+8RuZkGQDzd1L7/+8qk=
github.com/openziti/edge v0.24.374 h1:L1Z3EDrEOHxOj5hip1rTFJAlLuoB7lXKVdb3Jbp+URI=
github.com/openziti/edge v0.24.374/go.mod h1:bPFyx5/N3acmNVODDkGrTyGxYLviO3I52j0Owj8MQvs=
github.com/openziti/channel/v2 v2.0.91 h1:HKD7uniGOfiQfbzaP1AJ0JGvls7oejC+fMj6gLJOlW8=
github.com/openziti/channel/v2 v2.0.91/go.mod h1:2uJzEV3pX4soPPl07l8ScONNGuSQTQzUqAYkgATA3Rk=
github.com/openziti/edge v0.24.381 h1:8Uklh0w9+EFMhBkzDC7kFm0c09NAZbUHuLuWZekZY0M=
github.com/openziti/edge v0.24.381/go.mod h1:sFJbZLfBU2kFsc70LkzUW4eizZye9ejVMOtu8iI8pq8=
github.com/openziti/edge-api v0.25.31 h1:KiM4pQVIqy/0CN/FW2AgoN7PcejB+y8FdgjN86Jn83Q=
github.com/openziti/edge-api v0.25.31/go.mod h1:7fyXLqNcyC5IG29GuI8danhhppAaxRV6HiCLwN1Kk64=
github.com/openziti/fablab v0.5.5 h1:wz5rkuGhdDbmNPXC8XtsyHhWk6WJtxCgfhXt5XVWXmY=
github.com/openziti/fablab v0.5.5/go.mod h1:xkvaXX6C+bGHH5R4G8/vkz1pbBlwS1EzghF37wcNetM=
github.com/openziti/fabric v0.23.52 h1:8F4jt00RDrZJz6YiKliJ8UGnknE3jSuWwxsK3641ehE=
github.com/openziti/fabric v0.23.52/go.mod h1:wLYKhlnhthLR7FBqfGlfdCZ0hbQCcSnr5b2wpjA4/vM=
github.com/openziti/foundation/v2 v2.0.28 h1:AAdHhtUj1tCIXollSpbDlKwPKRasNAgADpTZAF1WCOQ=
github.com/openziti/foundation/v2 v2.0.28/go.mod h1:psKxxQw/zRo5+oKN7AR+MKYaeR3mbBPhb65qq8rqB0U=
github.com/openziti/identity v1.0.59 h1:YShXqxa9nTbCnPtIAji10hx7BG1nQukg4ddUJExNXa8=
github.com/openziti/identity v1.0.59/go.mod h1:9vQjDHH2Z3kFmkwmHsVKfI9EdcXjUiwAiR8Sc6Qzmbk=
github.com/openziti/fabric v0.24.2 h1:fb7fE/d3it6OrwhJqfr0RKQ41VUV9VKFsOOl98zdoRY=
github.com/openziti/fabric v0.24.2/go.mod h1:rXhb73v5rgoUV1AbRDXF8gAcbualabJU9YyLMkiB0yw=
github.com/openziti/foundation/v2 v2.0.29 h1:E63p5/esqOJ/OSMePR3fKYHb3Wq2BR4PLkDFynESij8=
github.com/openziti/foundation/v2 v2.0.29/go.mod h1:MpXSCSn4MABvtIXzfTBFqhK5pNsNXHWnR8xxVrfxn0g=
github.com/openziti/identity v1.0.60 h1:6gvBXY9J6F7SbuksdxsUA1t1WmtsFfY61Oqm/00ijGU=
github.com/openziti/identity v1.0.60/go.mod h1:pUfQ1Rf6TJvpBULXKPAO4014Qd6g+uf6V/vqjUscipU=
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.30 h1:0ZV9UWPupcBvHigzET1wf47idrTflYSHInNgDtZqkIQ=
github.com/openziti/metrics v1.2.30/go.mod h1:8xSr4Rl0527Lyp5IKvUYwPNObIFkO8AS3nO2RjvDPSQ=
github.com/openziti/runzmd v1.0.28 h1:8VNgENRAm1pfp0YoJWYoW6uBtyMD6ccVTsC24kx2gpk=
github.com/openziti/runzmd v1.0.28/go.mod h1:4r4uNOK34lKbilrV7yaiDiPwRGIvj1XQSl6E6U8NmAw=
github.com/openziti/sdk-golang v0.20.87 h1:hhJd0/msZf/2vC15xXZ4xF3zbR+Bmx1gmgM4K0l4JxI=
github.com/openziti/sdk-golang v0.20.87/go.mod h1:gszOnLHB9RAuAw5F86uI8fIYNdh3d6+KRHo5zP+uzTU=
github.com/openziti/metrics v1.2.31 h1:nEO9FAqCnpfuvxGYfy9/W46p2SaEcZ6vlRyz4fcipoY=
github.com/openziti/metrics v1.2.31/go.mod h1:SU2w3WW36O+ocVy+ka2UHA0cweTg3T8CQiqz4ZT4Umc=
github.com/openziti/runzmd v1.0.29 h1:skS9Ea8TIYZ28V4yEz3KoWafnto4RAOwv8M2Z4bM8Wo=
github.com/openziti/runzmd v1.0.29/go.mod h1:rAvUIRGlIWYsHtWRX7lbV8LZPUjsifjZd72xUEfEuTw=
github.com/openziti/sdk-golang v0.20.90 h1:QXWa1Ti1Sky9D2uv3kAxmybwicZLJH6hgyDpXkdZcYc=
github.com/openziti/sdk-golang v0.20.90/go.mod h1:IorK7wik0unGAGBuYjdb9ZPFX7ENACtxFpWuTBPOT9Q=
github.com/openziti/secretstream v0.1.10 h1:aLheoP6vVAv96mItwkXxWr9Ym0tTooJ5o9H1j2fAh04=
github.com/openziti/secretstream v0.1.10/go.mod h1:HrS6P9G0jjHNHuKESMaybNdxBHjD1b0SzxSi0rDzshY=
github.com/openziti/storage v0.2.11 h1:Ws23any7NtbEKQroFJt6DJmeEFGMPjZqjAK2/Re9LIE=
github.com/openziti/storage v0.2.11/go.mod h1:M46XIxPYwTDTgaamI6o9cyEJkYvUYfhJjwvZtQu4tUQ=
github.com/openziti/transport/v2 v2.0.97 h1:BgsxDYdyzBf6sIIicT6X7WV1S2HMXQA1upmo5UFNYfU=
github.com/openziti/transport/v2 v2.0.97/go.mod h1:zXB5jNtmTIe3gMCgLuk2RUEsvc8ysVLExnfrRdSg11M=
github.com/openziti/storage v0.2.12 h1:ghQkt3SCLwRuiTeRLOUWgNL69XQNp9Gx8K3eVw0QTQY=
github.com/openziti/storage v0.2.12/go.mod h1:RxWIe9FyQg9LZQFZ4FuUROf0lhnfUW2XeWfTbHAMGeY=
github.com/openziti/transport/v2 v2.0.99 h1:+/DYNzaUrzSSaoKEBNFumXJsXMDEUNiWbWZfX48Z2vc=
github.com/openziti/transport/v2 v2.0.99/go.mod h1:bV9XKtxnmqW8crReZB2z+cJhSNLl6EsyoouTkyUY8mk=
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.1.0 h1:Xhh3C2pZkq/Prr65V+SfFSibLDYteoc4f62KQCcTZF4=
github.com/openziti/xweb/v2 v2.1.0/go.mod h1:wPkjm5y45RYCV8AafjcAXP/ZM4DBOofXhRwSGgjF8w8=
github.com/openziti/ziti-db-explorer v1.1.1 h1:G0eoTby+aIjjt5TxEfR+FMI2CWd4RvZFjzaIMX2lEBw=
github.com/openziti/ziti-db-explorer v1.1.1/go.mod h1:h76h7Tsb+khb0v+CqYKL6ifUfJbUMjGBFU2IvupfBE4=
github.com/openziti/ziti-db-explorer v1.1.3 h1:9JER16MJzagtYPdGEhgDcw2p/BXNCVbf9IgA/sMB52w=
github.com/openziti/ziti-db-explorer v1.1.3/go.mod h1:pMIMNJoTRSTbkO2e7cZWiBokA3jMdeiGAILP3QhU+v8=
github.com/oracle/oci-go-sdk v24.2.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35ukwStZIg5F66tcBccjip/j888=
github.com/orcaman/concurrent-map/v2 v2.0.1 h1:jOJ5Pg2w1oeB6PeDurIYf6k9PQ+aTITr/6lP/L/zp6c=
github.com/orcaman/concurrent-map/v2 v2.0.1/go.mod h1:9Eq3TG2oBe5FirmYWQfYO5iH1q0Jv47PLaNK++uCdOM=
@@ -830,8 +830,9 @@ github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69
github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 h1:3SNcvBmEPE1YlB1JpVZouslJpI3GBNoiqW7+wb0Rz7w=
github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125/go.mod h1:M8agBzgqHIhgj7wEn9/0hJUZcrvt9VY+Ln+S1I5Mha0=
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
github.com/tklauser/go-sysconf v0.3.11 h1:89WgdJhk5SNwJfu+GKyYveZ4IaJ7xAkecBo+KdJV0CM=
github.com/tklauser/go-sysconf v0.3.11/go.mod h1:GqXfhXY3kiPa0nAXPDIQIWzJbMCB7AmcWpGR8lSZfqI=
github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU=
github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI=
github.com/tklauser/numcpus v0.6.0/go.mod h1:FEZLMke0lhOUG6w2JadTzp0a+Nl8PF/GFkQ5UVIcaL4=
github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk=
github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY=
@@ -870,8 +871,8 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw=
github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
github.com/zitadel/oidc/v2 v2.6.4 h1:bruA+KOFHcGpxr++WgtvR82ZlH54kKituu5xE4wpF7o=
github.com/zitadel/oidc/v2 v2.6.4/go.mod h1:owrsdzRqGvIZjBCY9LY1ZUYJ0mRUbGkQpZ3OskXL4wM=
github.com/zitadel/oidc/v2 v2.7.0 h1:IGX4EDk6tegTjUSsZDWeTfLseFU0BdJ/Glf1tgys2lU=
github.com/zitadel/oidc/v2 v2.7.0/go.mod h1:zkUkVJS0sDVy9m0UA9RgO3f8i/C0rtjvXU36UJj7T+0=
go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ=
go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw=
go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs=
@@ -938,8 +939,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0
golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
golang.org/x/exp v0.0.0-20230807204917-050eac23e9de h1:l5Za6utMv/HsBWWqzt4S8X17j+kt1uVETUX5UFhn2rE=
golang.org/x/exp v0.0.0-20230807204917-050eac23e9de/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc=
golang.org/x/exp v0.0.0-20230809150735-7b3493d9a819 h1:EDuYyU/MkFXllv9QF9819VlI9a4tzGuCbhG0ExK9o1U=
golang.org/x/exp v0.0.0-20230809150735-7b3493d9a819/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
@@ -1040,8 +1041,8 @@ golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ
golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.9.0 h1:BPpt2kU7oMRq3kCHAA1tbSEshXRw1LpG2ztgDwrzuAs=
golang.org/x/oauth2 v0.9.0/go.mod h1:qYgFZaFiu6Wg24azG8bdV52QJXJGbZzIIsRCdVKzbLw=
golang.org/x/oauth2 v0.10.0 h1:zHCpF2Khkwy4mMB4bv0U37YtJdTGW8jI0glAApi0Kh8=
golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=