config

package
v1.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 6, 2024 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package config implements application configuration related features

Index

Constants

View Source
const (
	DefaultGitRepository = "https://github.com/google/gke-policy-automation"
	DefaultGitBranch     = "main"
	DefaultGitPolicyDir  = "gke-policies-v2"
	DefaultK8SClientQPS  = 50
)

Variables

View Source
var (
	DefaultK8SApiVersions = []string{"v1", "autoscaling/v1"}
)

Functions

func SetCheckConfigDefaults added in v1.3.0

func SetCheckConfigDefaults(config *Config)

func SetPolicyConfigDefaults added in v1.3.0

func SetPolicyConfigDefaults(config *Config)

func SetScalabilityConfigDefaults added in v1.3.0

func SetScalabilityConfigDefaults(config *Config)

func ValidateClusterCheckConfig

func ValidateClusterCheckConfig(config Config) error

func ValidateClusterDumpConfig added in v1.3.0

func ValidateClusterDumpConfig(config Config) error

func ValidateGeneratePolicyDocsConfig added in v1.2.1

func ValidateGeneratePolicyDocsConfig(config Config) error

func ValidatePolicyCheckConfig

func ValidatePolicyCheckConfig(config Config) error

func ValidateScalabilityCheckConfig added in v1.2.2

func ValidateScalabilityCheckConfig(config Config) error

Types

type CloudStorageOutput

type CloudStorageOutput struct {
	Bucket         string `yaml:"bucket"`
	Path           string `yaml:"path"`
	SkipDatePrefix bool   `yaml:"skipDatePrefix"`
}

type ClusterDiscovery

type ClusterDiscovery struct {
	Enabled      bool     `yaml:"enabled"`
	Organization string   `yaml:"organization"`
	Folders      []string `yaml:"folders"`
	Projects     []string `yaml:"projects"`
}

type Config

type Config struct {
	SilentMode       bool                   `yaml:"silent"`
	JSONOutput       bool                   `yaml:"jsonOutput"`
	DumpFile         string                 `yaml:"dumpFile"`
	CredentialsFile  string                 `yaml:"credentialsFile"`
	Clusters         []ConfigCluster        `yaml:"clusters"`
	Policies         []ConfigPolicy         `yaml:"policies"`
	Inputs           ConfigInput            `yaml:"inputs"`
	Outputs          []ConfigOutput         `yaml:"outputs"`
	ClusterDiscovery ClusterDiscovery       `yaml:"clusterDiscovery"`
	PolicyExclusions ConfigPolicyExclusions `yaml:"policyExclusions"`
	Metrics          []ConfigMetric         `yaml:"metrics"`
	K8SApiConfig     K8SApiConfig           `yaml:"kubernetesAPIClient"`
}

func ReadConfig

func ReadConfig(path string, readFn ReadFileFn) (*Config, error)

type ConfigCluster

type ConfigCluster struct {
	ID       string `yaml:"id"`
	Name     string `yaml:"name"`
	Project  string `yaml:"project"`
	Location string `yaml:"location"`
}

type ConfigInput added in v1.3.0

type ConfigInput struct {
	GKEApi        *GKEApiInput     `yaml:"gkeAPI"`
	GKELocalInput *GKELocalInput   `yaml:"gkeLocal"`
	K8sAPI        *K8SAPIInput     `yaml:"k8sAPI"`
	MetricsAPI    *MetricsAPIInput `yaml:"metricsAPI"`
	Rest          *RestInput       `yaml:"rest"`
}

type ConfigMetric added in v1.3.0

type ConfigMetric struct {
	MetricName string `yaml:"name"`
	Query      string `yaml:"query"`
}

type ConfigOutput

type ConfigOutput struct {
	FileName              string                      `yaml:"file"`
	PubSub                PubSubOutput                `yaml:"pubsub"`
	CloudStorage          CloudStorageOutput          `yaml:"cloudStorage"`
	SecurityCommandCenter SecurityCommandCenterOutput `yaml:"securityCommandCenter"`
}

type ConfigPolicy

type ConfigPolicy struct {
	LocalDirectory string `yaml:"local"`
	GitRepository  string `yaml:"repository"`
	GitBranch      string `yaml:"branch"`
	GitDirectory   string `yaml:"directory"`
}

type ConfigPolicyExclusions

type ConfigPolicyExclusions struct {
	Policies     []string `yaml:"policies"`
	PolicyGroups []string `yaml:"policyGroups"`
}

type GKEApiInput added in v1.3.0

type GKEApiInput struct {
	Enabled bool `yaml:"enabled"`
}

type GKELocalInput added in v1.3.0

type GKELocalInput struct {
	Enabled  bool   `yaml:"enabled"`
	DumpFile string `yaml:"file"`
}

type K8SAPIInput added in v1.3.0

type K8SAPIInput struct {
	Enabled     bool     `yaml:"enabled"`
	APIVersions []string `yaml:"resourceAPIVersions"`
	MaxQPS      int      `yaml:"clientMaxQPS"`
}

type K8SApiConfig added in v1.2.2

type K8SApiConfig struct {
	Enabled        bool     `yaml:"enabled"`
	APIVersions    []string `yaml:"resourceAPIVersions"`
	MaxQPS         int      `yaml:"clientMaxQPS"`
	TimeoutSeconds int      `yaml:"clientTimeoutSeconds"`
}

type MetricsAPIInput added in v1.3.0

type MetricsAPIInput struct {
	Enabled   bool           `yaml:"enabled"`
	ProjectID string         `yaml:"project"`
	Address   string         `yaml:"address"`
	Username  string         `yaml:"username"`
	Password  string         `yaml:"password"`
	Metrics   []ConfigMetric `yaml:"metrics"`
}

type PubSubOutput

type PubSubOutput struct {
	Project string `yaml:"project"`
	Topic   string `yaml:"topic"`
}

type ReadFileFn

type ReadFileFn func(string) ([]byte, error)

type RestInput added in v1.3.0

type RestInput struct {
	Enabled  bool   `yaml:"enabled"`
	Endpoint string `yaml:"endpoint"`
}

type SecurityCommandCenterOutput added in v1.2.0

type SecurityCommandCenterOutput struct {
	OrganizationNumber string `yaml:"organization"`
	ProvisionSource    bool   `yaml:"provisionSource"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL