zero: use os.UserCacheDir for boostrap config path (#4744)

This commit is contained in:
Kenneth Jenkins 2023-11-17 14:44:32 -08:00 committed by GitHub
parent 6810091d38
commit 14b13bb791
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 24 additions and 1 deletions

View file

@ -39,6 +39,9 @@ func (svc *Source) Run(
api *sdk.API,
fileCachePath string,
) error {
log.Ctx(ctx).Info().Str("bootstrap-config-path", fileCachePath).
Msg("initializing bootstrap config source")
svc.api = api
svc.fileCachePath = fileCachePath

View file

@ -7,6 +7,7 @@ import (
"fmt"
"os"
"os/signal"
"path/filepath"
"syscall"
"github.com/mattn/go-isatty"
@ -28,11 +29,17 @@ func Run(ctx context.Context, configFile string) error {
return errors.New("no token provided")
}
bootstrapConfigFileName, err := getBootstrapConfigFileName()
if err != nil {
return fmt.Errorf("error getting bootstrap config path: %w", err)
}
return controller.Run(
withInterrupt(ctx),
controller.WithAPIToken(token),
controller.WithClusterAPIEndpoint(getClusterAPIEndpoint()),
controller.WithConnectAPIEndpoint(getConnectAPIEndpoint()),
controller.WithBootstrapConfigFileName(bootstrapConfigFileName),
)
}
@ -81,3 +88,17 @@ func setupLogger() error {
zerolog.DefaultContextLogger = &log.Logger
return nil
}
func getBootstrapConfigFileName() (string, error) {
cacheDir, err := os.UserCacheDir()
if err != nil {
return "", err
}
dir := filepath.Join(cacheDir, "pomerium")
if err := os.MkdirAll(dir, 0644); err != nil {
return "", err
}
return filepath.Join(dir, "bootstrap.dat"), nil
}

View file

@ -72,7 +72,6 @@ func newControllerConfig(opts ...Option) *controllerConfig {
for _, opt := range []Option{
WithClusterAPIEndpoint("https://console.pomerium.com/cluster/v1"),
WithConnectAPIEndpoint("https://connect.pomerium.com"),
WithBootstrapConfigFileName("/var/cache/pomerium-bootstrap.dat"),
WithDatabrokerLeaseDuration(time.Second * 30),
WithDatabrokerRequestTimeout(time.Second * 30),
} {