Merge pull request #250 from openziti/validate

Validate Controller and Public Frontend Configuration (#238)
This commit is contained in:
Michael Quigley 2023-02-16 14:23:38 -05:00 committed by GitHub
commit 21a019ae4f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 87 additions and 3 deletions

View File

@ -1,5 +1,10 @@
# v0.3.2
FEATURE: `zrok controller validate` and `zrok access public validate` will both perform a quick syntax validation on controller and public frontend configuration documents (https://github.com/openziti/zrok/issues/238)
$ zrok controller validate etc/dev.yml
[ERROR]: controller config validation failed (error loading controller config 'etc/dev.yml': field 'maintenance': field 'registration': field 'expiration_timeout': got [bool], expected [time.Duration])
CHANGE: `zrok status` no longer shows secrets (secret token, ziti identity) unless the `--secrets` flag is passed (https://github.com/openziti/zrok/issues/243)
# v0.3.1

View File

@ -9,8 +9,11 @@ import (
"github.com/spf13/cobra"
)
var accessPublicCmd *accessPublicCommand
func init() {
accessCmd.AddCommand(newAccessPublicCommand().cmd)
accessPublicCmd = newAccessPublicCommand()
accessCmd.AddCommand(accessPublicCmd.cmd)
}
type accessPublicCommand struct {
@ -29,7 +32,7 @@ func newAccessPublicCommand() *accessPublicCommand {
return command
}
func (self *accessPublicCommand) run(_ *cobra.Command, args []string) {
func (cmd *accessPublicCommand) run(_ *cobra.Command, args []string) {
cfg := publicFrontend.DefaultConfig()
if len(args) == 1 {
if err := cfg.Load(args[0]); err != nil {

View File

@ -0,0 +1,37 @@
package main
import (
"fmt"
"github.com/michaelquigley/cf"
"github.com/openziti/zrok/endpoints/publicFrontend"
"github.com/openziti/zrok/tui"
"github.com/sirupsen/logrus"
"github.com/spf13/cobra"
)
func init() {
accessPublicCmd.cmd.AddCommand(newAccessPublicValidateCommand().cmd)
}
type accessPublicValidateCommand struct {
cmd *cobra.Command
}
func newAccessPublicValidateCommand() *accessPublicValidateCommand {
cmd := &cobra.Command{
Use: "validate <configPath>",
Short: "Validate a zrok access public configuration document",
Args: cobra.ExactArgs(1),
}
command := &accessPublicValidateCommand{cmd: cmd}
cmd.Run = command.run
return command
}
func (cmd *accessPublicValidateCommand) run(_ *cobra.Command, args []string) {
cfg := publicFrontend.DefaultConfig()
if err := cfg.Load(args[0]); err != nil {
tui.Error(fmt.Sprintf("unable to load configuration '%v'", args[0]), err)
}
logrus.Infof(cf.Dump(cfg, cf.DefaultOptions()))
}

View File

@ -7,8 +7,11 @@ import (
"github.com/spf13/cobra"
)
var controllerCmd *controllerCommand
func init() {
rootCmd.AddCommand(newControllerCommand().cmd)
controllerCmd = newControllerCommand()
rootCmd.AddCommand(controllerCmd.cmd)
}
type controllerCommand struct {

View File

@ -0,0 +1,36 @@
package main
import (
"github.com/michaelquigley/cf"
"github.com/openziti/zrok/controller"
"github.com/openziti/zrok/tui"
"github.com/sirupsen/logrus"
"github.com/spf13/cobra"
)
func init() {
controllerCmd.cmd.AddCommand(newControllerValidateCommand().cmd)
}
type controllerValidateCommand struct {
cmd *cobra.Command
}
func newControllerValidateCommand() *controllerValidateCommand {
cmd := &cobra.Command{
Use: "validate <configPath>",
Short: "Validate a zrok controller configuration document",
Args: cobra.ExactArgs(1),
}
command := &controllerValidateCommand{cmd: cmd}
cmd.Run = command.run
return command
}
func (cmd *controllerValidateCommand) run(_ *cobra.Command, args []string) {
cfg, err := controller.LoadConfig(args[0])
if err != nil {
tui.Error("controller config validation failed", err)
}
logrus.Infof(cf.Dump(cfg, cf.DefaultOptions()))
}