Documentation ¶
Index ¶
Constants ¶
View Source
const ( // AccessKeyEnvVar is the name of the environment variable where the access // key to the Firefly App Server must be provided AccessKeyEnvVar = "FIREFLY_ACCESS_KEY" // SecretKeyEnvVar is the name of the environment variable where the secret // key to the Firefly App Server must be provided SecretKeyEnvVar = "FIREFLY_SECRET_KEY" // nolint: gosec // DefaultConfigDir is the path to the default directory where configuration // files (generally mounted from a Kubernetes ConfigMap) must be present. DefaultConfigDir = "/etc/config" // DefaultFireflyAPI is the default URL for Firefly's API DefaultFireflyAPI = "https://gateway.firefly.ai" // DefaultFireflyLoginAPI is the default URL for Firefly's Login API DefaultFireflyLoginAPI = "https://gateway.firefly.ai" )
Variables ¶
View Source
var ( // ErrAccessKeys is an error returned when the environment variables for the // access and secret keys are not provided or empty. ErrAccessKeys = errors.New("access and secret keys must be provided") // ErrEndpoint is an error returned when the configuration directory is // missing an endpoint setting (endpoint is the URL to the Firefly App // Server). ErrEndpoint = errors.New("Firefly endpoint must be provided") // DefaultResourceTypes is the list of Kubernetes resources that are // to be collected by default (i.e. if there is no configuration at all) DefaultResourceTypes = []string{ "apiservices", "analysistemplates", "clusteranalysistemplates", "clusterroles", "clusterrolebindings", "configmaps", "controllerrevisions", "csinodes", "cronjobs", "customresourcedefinitions", "daemonsets", "deployments", "endpoints", "endpointslices", "flowschemas", "ingresses", "jobs", "leases", "namespaces", "networkpolicies", "nodes", "persistentvolumeclaims", "persistentvolumes", "pods", "priorityclasses", "prioritylevelconfigurations", "replicasets", "replicationcontrollers", "roles", "rolebindings", "rollouts", "rollouts/finalizers", "rollouts/status", "serviceaccounts", "services", "services/status", "statefulsets", "storageclasses", "poddisruptionbudgets", "podsecuritypolicies", "ingressclasses", "volumeattachments", "csidrivers", "validatingwebhookconfigurations", "mutatingwebhookconfigurations", "runtimeclasses", "horizontalpodautoscalers", } )
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { // File system object from which configuration files are read. by default, // this is the local file system; an in-memory file system is used in the // unit tests FS fs.FS // The directory inside fs where configuration files are stored. by default, // this is /etc/config ConfigDir string // DryRun indicates whether the collector should only perform local read // operations. When true, authentication against the Firefly API is not // made, as is sending of collected data. Data is printed to standard output // instead DryRun bool // The logger instance Log *zerolog.Logger // AccessKey is the Firefly access key AccessKey string // SecretKey is the Firefly secret key SecretKey string // Endpoint is the URL to the Firefly App Server Endpoint string // LoginEndpoint is the URL to login Firefly Service LoginEndpoint string // Namespace is the Kubernets namespace we're collecting data from (if empty, // all namespaces are collected) Namespace string // IgnoreNamespaces is a list of namespaces to ignore (only taken into // account when Namespace is empty) IgnoreNamespaces []string // AllowedResources is a list of resource types (named by their "Kind" value) // that the collector is allowed to collect AllowedResources map[string]bool // OverrideUniqueClusterId is a boolean indicating whether to override the master url of the Kubernetes integration OverrideUniqueClusterId bool // PageSize is an integer for max page size in KB PageSize int // MaxGoRoutines is an integer for max goroutines running at ones sending the chunks. MaxGoRoutines int // MongoMaxGoRoutines is an integer for max goroutines running at ones sending the chunks. MongoMaxGoRoutines int // MongoMaxRetries is an integer for max retries for sending data to the server. MongoMaxRetries int // PageTimeoutDuration is a duration for timeout for each request. PageTimeoutDuration time.Duration }
Config represents configuration to the collector library. It is shared between the different data collectors (impementing the collector.DataCollector interface).
func LoadConfig ¶
func LoadConfig( log *zerolog.Logger, cfs fs.FS, configDir string, dryRun bool, ) (conf *Config, err error)
LoadConfig creates a new configuration object. A logger object, a file-system object (where configuration files are stored), and a path to the configuration directory may be provided. All parameters are optional. If not provided, a noop logger is used, the local file system is used, and DefaultConfigDir is used.
func (*Config) IgnoreNamespace ¶
IgnoreNamespace accepts a namespace and returns a boolean value indicating whether the namespace should be ignored
Click to show internal directories.
Click to hide internal directories.