mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-11-04 10:01:05 +01:00 
			
		
		
		
	Merge pull request #639 from kradalby/ephemeral-error-msg
This commit is contained in:
		
						commit
						891815634b
					
				@ -29,6 +29,7 @@
 | 
			
		||||
- Use new ACL syntax [#618](https://github.com/juanfont/headscale/pull/618)
 | 
			
		||||
- Add -c option to specify config file from command line [#285](https://github.com/juanfont/headscale/issues/285) [#612](https://github.com/juanfont/headscale/pull/601)
 | 
			
		||||
- Add configuration option to allow Tailscale clients to use a random WireGuard port. [kb/1181/firewalls](https://tailscale.com/kb/1181/firewalls) [#624](https://github.com/juanfont/headscale/pull/624)
 | 
			
		||||
- Improve obtuse UX regarding missing configuration (`ephemeral_node_inactivity_timeout` not set) [#639](https://github.com/juanfont/headscale/pull/639)
 | 
			
		||||
 | 
			
		||||
## 0.15.0 (2022-03-20)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -7,12 +7,10 @@ import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"os"
 | 
			
		||||
	"reflect"
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"github.com/juanfont/headscale"
 | 
			
		||||
	v1 "github.com/juanfont/headscale/gen/go/headscale/v1"
 | 
			
		||||
	"github.com/rs/zerolog/log"
 | 
			
		||||
	"github.com/spf13/viper"
 | 
			
		||||
	"google.golang.org/grpc"
 | 
			
		||||
	"google.golang.org/grpc/credentials"
 | 
			
		||||
	"google.golang.org/grpc/credentials/insecure"
 | 
			
		||||
@ -29,21 +27,6 @@ func getHeadscaleApp() (*headscale.Headscale, error) {
 | 
			
		||||
		return nil, fmt.Errorf("failed to load configuration while creating headscale instance: %w", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Minimum inactivity time out is keepalive timeout (60s) plus a few seconds
 | 
			
		||||
	// to avoid races
 | 
			
		||||
	minInactivityTimeout, _ := time.ParseDuration("65s")
 | 
			
		||||
	if viper.GetDuration("ephemeral_node_inactivity_timeout") <= minInactivityTimeout {
 | 
			
		||||
		// TODO: Find a better way to return this text
 | 
			
		||||
		//nolint
 | 
			
		||||
		err := fmt.Errorf(
 | 
			
		||||
			"ephemeral_node_inactivity_timeout (%s) is set too low, must be more than %s",
 | 
			
		||||
			viper.GetString("ephemeral_node_inactivity_timeout"),
 | 
			
		||||
			minInactivityTimeout,
 | 
			
		||||
		)
 | 
			
		||||
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	app, err := headscale.NewHeadscale(cfg)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										15
									
								
								config.go
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								config.go
									
									
									
									
									
								
							@ -160,7 +160,11 @@ func LoadConfig(path string, isFile bool) error {
 | 
			
		||||
	viper.SetDefault("logtail.enabled", false)
 | 
			
		||||
	viper.SetDefault("randomize_client_port", false)
 | 
			
		||||
 | 
			
		||||
	viper.SetDefault("ephemeral_node_inactivity_timeout", "120s")
 | 
			
		||||
 | 
			
		||||
	if err := viper.ReadInConfig(); err != nil {
 | 
			
		||||
		log.Warn().Err(err).Msg("Failed to read configuration from disk")
 | 
			
		||||
 | 
			
		||||
		return fmt.Errorf("fatal error reading config file: %w", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@ -202,6 +206,17 @@ func LoadConfig(path string, isFile bool) error {
 | 
			
		||||
			EnforcedClientAuth)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Minimum inactivity time out is keepalive timeout (60s) plus a few seconds
 | 
			
		||||
	// to avoid races
 | 
			
		||||
	minInactivityTimeout, _ := time.ParseDuration("65s")
 | 
			
		||||
	if viper.GetDuration("ephemeral_node_inactivity_timeout") <= minInactivityTimeout {
 | 
			
		||||
		errorText += fmt.Sprintf(
 | 
			
		||||
			"Fatal config error: ephemeral_node_inactivity_timeout (%s) is set too low, must be more than %s",
 | 
			
		||||
			viper.GetString("ephemeral_node_inactivity_timeout"),
 | 
			
		||||
			minInactivityTimeout,
 | 
			
		||||
		)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if errorText != "" {
 | 
			
		||||
		//nolint
 | 
			
		||||
		return errors.New(strings.TrimSuffix(errorText, "\n"))
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user