Files

55 lines
1.2 KiB
Go

package controller
import (
"fmt"
"github.com/michaelquigley/df/dl"
"github.com/openziti/zrok/v2/controller/automation"
"github.com/openziti/zrok/v2/sdk/golang/sdk"
"github.com/pkg/errors"
)
var zrokProxyConfigId string
func controllerStartup() error {
if err := inspectZiti(); err != nil {
return err
}
return nil
}
func inspectZiti() error {
dl.Infof("inspecting ziti controller configuration")
ziti, err := automation.NewZitiAutomation(cfg.Ziti)
if err != nil {
return errors.Wrap(err, "error getting automation client")
}
if err := findZrokProxyConfigType(ziti); err != nil {
return err
}
return nil
}
func findZrokProxyConfigType(ziti *automation.ZitiAutomation) error {
filter := fmt.Sprintf("name=\"%v\"", sdk.ZrokProxyConfig)
filterOpts := &automation.FilterOptions{
Filter: filter,
Limit: 100,
Offset: 0,
}
configTypes, err := ziti.ConfigTypes.Find(filterOpts)
if err != nil {
return err
}
if len(configTypes) != 1 {
return errors.Errorf("expected 1 zrok proxy config type, found '%d'", len(configTypes))
}
dl.Infof("found '%v' config type with id '%v'", sdk.ZrokProxyConfig, *configTypes[0].ID)
zrokProxyConfigId = *configTypes[0].ID
return nil
}