46 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package k8s
 | |
| 
 | |
| import "github.com/TwinProduction/gatus/core"
 | |
| 
 | |
| // Config for Kubernetes auto-discovery
 | |
| type Config struct {
 | |
| 	// AutoDiscover to discover services to monitor
 | |
| 	AutoDiscover bool `yaml:"auto-discover"`
 | |
| 
 | |
| 	// ClusterMode is the mode to use to authenticate with Kubernetes
 | |
| 	ClusterMode ClusterMode `yaml:"cluster-mode"`
 | |
| 
 | |
| 	// ServiceTemplate is the template for auto discovered services
 | |
| 	ServiceTemplate *core.Service `yaml:"service-template"`
 | |
| 
 | |
| 	// ExcludedServiceSuffixes is a list of service suffixes that should be ignored
 | |
| 	ExcludedServiceSuffixes []string `yaml:"excluded-service-suffixes"`
 | |
| 
 | |
| 	// Namespaces is a list of configurations for the namespaces from which services will be discovered
 | |
| 	Namespaces []*NamespaceConfig `yaml:"namespaces"`
 | |
| }
 | |
| 
 | |
| // NamespaceConfig level config
 | |
| type NamespaceConfig struct {
 | |
| 	// Name of the namespace
 | |
| 	Name string `yaml:"name"`
 | |
| 
 | |
| 	// ExcludedServices is a list of services to exclude from the auto discovery
 | |
| 	ExcludedServices []string `yaml:"excluded-services"`
 | |
| 
 | |
| 	// HostnameSuffix is a suffix to append to each service name before calling TargetPath
 | |
| 	HostnameSuffix string `yaml:"hostname-suffix"`
 | |
| 
 | |
| 	// TargetPath Path to append after the HostnameSuffix
 | |
| 	TargetPath string `yaml:"target-path"`
 | |
| }
 | |
| 
 | |
| // ClusterMode is the mode to use to authenticate to Kubernetes
 | |
| type ClusterMode string
 | |
| 
 | |
| const (
 | |
| 	ClusterModeIn   ClusterMode = "in"
 | |
| 	ClusterModeOut  ClusterMode = "out"
 | |
| 	ClusterModeMock ClusterMode = "mock"
 | |
| )
 |