From a262d13e71aa39feadf6a4fde735e4483e8cc28e Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Tue, 28 Mar 2023 13:07:49 -0400 Subject: [PATCH] Update deps and change. Add --disable flag to edge router and transit router commands --- CHANGELOG.md | 51 ++++++++++++++++++++------ ziti/cmd/edge/create_edge_router.go | 3 ++ ziti/cmd/edge/create_transit_router.go | 3 ++ ziti/cmd/edge/update_edge_router.go | 7 ++++ ziti/cmd/fabric/create_router.go | 2 +- ziti/cmd/fabric/update_router.go | 2 +- 6 files changed, 55 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f463a325c..d8550790c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,20 +4,41 @@ * Makes inspect CLI more discoverable by adding subcommands for inspectable values * Adds new inspection allowing configs to be retrieved: `ziti fabric inspect config` -* Many improvements to hosting managemetn performance with edge-router/tunnelers with large numbers of hosted services - * routers should no longer overwhelm controller while setting up or reestablishing hosting +* Many improvements to edge-router/tunneler hosting performance with large numbers of hosted services + * Routers should no longer overwhelm controller while setting up or reestablishing hosting * Adds ability to disable router * Adds CLI command to compact offline bbolt database: `ziti ops db compact ` -* Adds CLI command to reenroll edge routers: `ziti edge re-enroll edge-router` +* Adds CLI command to re-enroll edge routers: `ziti edge re-enroll edge-router` +* Routers can now be disabled. Connections to the controller from disabled routers will be rejected. + * Disable with: `ziti fabric update router --disabled` + * Enable with: `ziti fabric update router --disabled=false` ## Component Updates and Bug Fixes -* github.com/openziti/channel/v2: [v2.0.27 -> v2.0.29](https://github.com/openziti/channel/compare/v2.0.27...v2.0.29) +* github.com/openziti/agent: [v1.0.8 -> v1.0.10](https://github.com/openziti/agent/compare/v1.0.8...v1.0.10) +* github.com/openziti/channel/v2: [v2.0.27 -> v2.0.53](https://github.com/openziti/channel/compare/v2.0.27...v2.0.53) * [Issue #83](https://github.com/openziti/channel/issues/83) - Improve protocol mismatch error(s) * [Issue #93](https://github.com/openziti/channel/issues/93) - Fix atomic 64-bit alignment error on arm devices -* github.com/openziti/edge: [v0.24.125 -> v0.24.134](https://github.com/openziti/edge/compare/v0.24.125...v0.24.134) -* github.com/openziti/fabric: [v0.22.24 -> v0.22.32](https://github.com/openziti/fabric/compare/v0.22.24...v0.22.32) +* github.com/openziti/edge: [v0.24.125 -> v0.24.219](https://github.com/openziti/edge/compare/v0.24.125...v0.24.219) + * [Issue #1374](https://github.com/openziti/edge/issues/1374) - Multiple MFA enrollments cannot be cleaned up by administrators + * [Issue #1336](https://github.com/openziti/edge/issues/1336) - xgress_edge_tunnel shouldn't stop/start host on control channel reconnect + * [Issue #1369](https://github.com/openziti/edge/issues/1369) - Add missing entity type id for TransitRouter + * [Issue #1366](https://github.com/openziti/edge/issues/1366) - Error message incorrectly state 'invalid api session' when it's an invalid session + * [Issue #1364](https://github.com/openziti/edge/issues/1364) - Cache api-sessions for tunneler router so we don't need to unnecessarily create new sessions + * [Issue #1362](https://github.com/openziti/edge/issues/1362) - Rate limit terminator creates for router/tunneler + * [Issue #1359](https://github.com/openziti/edge/issues/1359) - Sessions creates should be idempotent + * [Issue #1355](https://github.com/openziti/edge/issues/1355) - Handle duplicate create terminator requests if create terminator fails + * [Issue #1350](https://github.com/openziti/edge/issues/1350) - Router event processing can deadlock + * [Issue #1329](https://github.com/openziti/edge/issues/1329) - UDP connections can drop data if datagrams are > 10k in size + * [Issue #1310](https://github.com/openziti/edge/issues/1310) - Creating a cert backed ext-jwt-signer causes nil dereference + +* github.com/openziti/edge-api: [v0.25.6 -> v0.25.8](https://github.com/openziti/edge-api/compare/v0.25.6...v0.25.8) +* github.com/openziti/fabric: [v0.22.24 -> v0.22.74](https://github.com/openziti/fabric/compare/v0.22.24...v0.22.74) + * [Issue #648](https://github.com/openziti/fabric/issues/648) - Add rate limiter pool to router for operations with potential to flood the controller + * [Issue #610](https://github.com/openziti/fabric/issues/610) - Fix router disconnect when endpoint removed from cluster + * [Issue #622](https://github.com/openziti/fabric/issues/622) - fatal error: concurrent map iteration and map write in logContext.WireEntry + * [Issue #507](https://github.com/openziti/fabric/issues/507) - Add configuration for control channel heartbeat * [Issue #584](https://github.com/openziti/fabric/issues/584) - Add cluster events * [Issue #599](https://github.com/openziti/fabric/issues/599) - Add release and transfer leadership commands * [Issue #606](https://github.com/openziti/fabric/issues/606) - Ensure consistent use of peer address @@ -26,12 +47,20 @@ * [Issue #604](https://github.com/openziti/fabric/issues/604) - Don't create link dropped msg metric until channel bind time * [Issue #638](https://github.com/openziti/fabric/issues/638) - Fix atomic 64-bit alignment error on arm devices -* github.com/openziti/runzmd: [v1.0.9 -> v1.0.11](https://github.com/openziti/runzmd/compare/v1.0.9...v1.0.11) -* github.com/openziti/sdk-golang: [v0.18.28 -> v0.18.30](https://github.com/openziti/sdk-golang/compare/v0.18.28...v0.18.30) -* github.com/openziti/transport/v2: [v2.0.51 -> v2.0.52](https://github.com/openziti/transport/compare/v2.0.51...v2.0.52) -* github.com/openziti/ziti: [v0.27.5 -> v0.27.6](https://github.com/openziti/ziti/compare/v0.27.5...v0.27.6) - * [Issue #1031](https://github.com/openziti/ziti/issues/1031) - Fixed quickstart bug with arm and arm64 ambiguity when running quickstart on arm architecture +* github.com/openziti/foundation/v2: [v2.0.10 -> v2.0.18](https://github.com/openziti/foundation/compare/v2.0.10...v2.0.18) +* github.com/openziti/identity: [v1.0.30 -> v1.0.42](https://github.com/openziti/identity/compare/v1.0.30...v1.0.42) +* github.com/openziti/runzmd: [v1.0.9 -> v1.0.18](https://github.com/openziti/runzmd/compare/v1.0.9...v1.0.18) +* github.com/openziti/sdk-golang: [v0.18.28 -> v0.18.76](https://github.com/openziti/sdk-golang/compare/v0.18.28...v0.18.76) + * [Issue #356](https://github.com/openziti/sdk-golang/issues/356) - sdk connections should respect net.Conn deadline related API specifications +* github.com/openziti/storage: [v0.1.34 -> v0.1.45](https://github.com/openziti/storage/compare/v0.1.34...v0.1.45) +* github.com/openziti/transport/v2: [v2.0.51 -> v2.0.68](https://github.com/openziti/transport/compare/v2.0.51...v2.0.68) +* github.com/openziti/jwks: [v1.0.2 -> v1.0.3](https://github.com/openziti/jwks/compare/v1.0.2...v1.0.3) +* github.com/openziti/metrics: [v1.2.3 -> v1.2.16](https://github.com/openziti/metrics/compare/v1.2.3...v1.2.16) +* github.com/openziti/ziti: [v0.27.5 -> v0.27.6](https://github.com/openziti/ziti/compare/v0.27.5...v0.27.6) + * [Issue #1041](https://github.com/openziti/ziti/issues/1041) - Add ziti compact command to CLI + * [Issue #1032](https://github.com/openziti/ziti/issues/1032) - ziti edge create service fails silently if config names don't exist + * [Issue #1031](https://github.com/openziti/ziti/issues/1031) - Fixed quickstart bug with arm and arm64 ambiguity when running quickstart on arm architecture # Release 0.27.5 diff --git a/ziti/cmd/edge/create_edge_router.go b/ziti/cmd/edge/create_edge_router.go index 3ba4d9d6b..1e114264a 100644 --- a/ziti/cmd/edge/create_edge_router.go +++ b/ziti/cmd/edge/create_edge_router.go @@ -34,6 +34,7 @@ type createEdgeRouterOptions struct { appData map[string]string cost uint16 noTraversal bool + disabled bool } func newCreateEdgeRouterCmd(out io.Writer, errOut io.Writer) *cobra.Command { @@ -64,6 +65,7 @@ func newCreateEdgeRouterCmd(out io.Writer, errOut io.Writer) *cobra.Command { cmd.Flags().StringToStringVar(&options.appData, "app-Data", nil, "Custom application data") cmd.Flags().Uint16Var(&options.cost, "cost", 0, "Specifies the router cost. Default 0.") cmd.Flags().BoolVar(&options.noTraversal, "no-traversal", false, "Disallow traversal for this edge router. Default to allowed(false).") + cmd.Flags().BoolVar(&options.disabled, "disabled", false, "Disabled routers can't connect to controllers") options.AddCommonFlags(cmd) @@ -79,6 +81,7 @@ func runCreateEdgeRouter(o *createEdgeRouterOptions) error { api.SetJSONValue(entityData, o.appData, "appData") api.SetJSONValue(entityData, o.cost, "cost") api.SetJSONValue(entityData, o.noTraversal, "noTraversal") + api.SetJSONValue(entityData, o.disabled, "disabled") o.SetTags(entityData) result, err := CreateEntityOfType("edge-routers", entityData.String(), &o.Options) diff --git a/ziti/cmd/edge/create_transit_router.go b/ziti/cmd/edge/create_transit_router.go index d75ae48b8..2a7c35b50 100644 --- a/ziti/cmd/edge/create_transit_router.go +++ b/ziti/cmd/edge/create_transit_router.go @@ -32,6 +32,7 @@ type createTransitRouterOptions struct { jwtOutputFile string cost uint16 noTraversal bool + disabled bool } func newCreateTransitRouterCmd(out io.Writer, errOut io.Writer) *cobra.Command { @@ -57,6 +58,7 @@ func newCreateTransitRouterCmd(out io.Writer, errOut io.Writer) *cobra.Command { cmd.Flags().StringVarP(&options.jwtOutputFile, "jwt-output-file", "o", "", "File to which to output the JWT used for enrolling the edge router") cmd.Flags().Uint16Var(&options.cost, "cost", 0, "Specifies the router cost. Default 0.") cmd.Flags().BoolVar(&options.noTraversal, "no-traversal", false, "Disallow traversal for this edge router. Default to allowed(false).") + cmd.Flags().BoolVar(&options.disabled, "disabled", false, "Disabled routers can't connect to controllers") options.AddCommonFlags(cmd) @@ -69,6 +71,7 @@ func runCreateTransitRouter(o *createTransitRouterOptions) error { api.SetJSONValue(entityData, o.Args[0], "name") api.SetJSONValue(entityData, o.cost, "cost") api.SetJSONValue(entityData, o.noTraversal, "noTraversal") + api.SetJSONValue(entityData, o.disabled, "disabled") o.SetTags(entityData) result, err := CreateEntityOfType("transit-routers", entityData.String(), &o.Options) diff --git a/ziti/cmd/edge/update_edge_router.go b/ziti/cmd/edge/update_edge_router.go index 0991e671c..e507921c6 100644 --- a/ziti/cmd/edge/update_edge_router.go +++ b/ziti/cmd/edge/update_edge_router.go @@ -37,6 +37,7 @@ type updateEdgeRouterOptions struct { usePut bool cost uint16 noTraversal bool + disabled bool } func newUpdateEdgeRouterCmd(out io.Writer, errOut io.Writer) *cobra.Command { @@ -69,6 +70,7 @@ func newUpdateEdgeRouterCmd(out io.Writer, errOut io.Writer) *cobra.Command { cmd.Flags().BoolVar(&options.usePut, "use-put", false, "Use PUT to when making the request") cmd.Flags().Uint16Var(&options.cost, "cost", 0, "Specifies the router cost. Default 0.") cmd.Flags().BoolVar(&options.noTraversal, "no-traversal", false, "Disallow traversal for this edge router. Default to allowed(false).") + cmd.Flags().BoolVar(&options.disabled, "disabled", false, "Disabled routers can't connect to controllers") options.AddCommonFlags(cmd) @@ -119,6 +121,11 @@ func runUpdateEdgeRouter(o *updateEdgeRouterOptions) error { change = true } + if o.Cmd.Flags().Changed("disabled") { + api.SetJSONValue(entityData, o.disabled, "disabled") + change = true + } + if !change { return errors.New("no change specified. must specify at least one attribute to change") } diff --git a/ziti/cmd/fabric/create_router.go b/ziti/cmd/fabric/create_router.go index 922a8014a..69bac426c 100644 --- a/ziti/cmd/fabric/create_router.go +++ b/ziti/cmd/fabric/create_router.go @@ -58,7 +58,7 @@ func newCreateRouterCmd(p common.OptionsProvider) *cobra.Command { cmd.Flags().StringVar(&options.name, "name", "", "Specifies the router name. If not specified, the id in the controller cert will be used") cmd.Flags().Uint16Var(&options.cost, "cost", 0, "Specifies the router cost. Default 0.") cmd.Flags().BoolVar(&options.noTraversal, "no-traversal", false, "Disallow traversal for this edge router. Default to allowed(false).") - cmd.Flags().BoolVar(&options.disabled, "disabled", false, "Disabled router can't connect to controllers") + cmd.Flags().BoolVar(&options.disabled, "disabled", false, "Disabled routers can't connect to controllers") options.AddCommonFlags(cmd) diff --git a/ziti/cmd/fabric/update_router.go b/ziti/cmd/fabric/update_router.go index 36f77cb5b..87e3dc3c7 100644 --- a/ziti/cmd/fabric/update_router.go +++ b/ziti/cmd/fabric/update_router.go @@ -62,7 +62,7 @@ func newUpdateRouterCmd(p common.OptionsProvider) *cobra.Command { cmd.Flags().StringVar(&options.fingerprint, "fingerprint", "", "Sets the router fingerprint") cmd.Flags().Uint16Var(&options.cost, "cost", 0, "Specifies the router cost. Default 0.") cmd.Flags().BoolVar(&options.noTraversal, "no-traversal", false, "Disallow traversal for this edge router. Default to allowed(false).") - cmd.Flags().BoolVar(&options.disabled, "disabled", false, "Disabled router can't connect to controllers") + cmd.Flags().BoolVar(&options.disabled, "disabled", false, "Disabled routers can't connect to controllers") cmd.Flags().StringToStringVar(&options.tags, "tags", nil, "Custom management tags") options.AddCommonFlags(cmd)