Documentation ¶
Overview ¶
Package client provides runtime configuration options for a Kubernetes client, making it easier to consistently have the same configuration options and flags across GitOps Toolkit components.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetConfigOrDie ¶
GetConfigOrDie wraps ctrl.GetConfigOrDie and checks if the Kubernetes apiserver has PriorityAndFairness flow control filter enabled. If true, it returns a rest.Config with client side throttling disabled. Otherwise, it returns a modified rest.Config configured with the provided Options.
func KubeConfig ¶ added in v0.13.3
func KubeConfig(in *rest.Config, opts KubeConfigOptions) *rest.Config
KubeConfig sanitises a kubeconfig represented as *rest.Config using KubeConfigOptions to inform the transformation decisions.
Types ¶
type KubeConfigOptions ¶ added in v0.13.3
type KubeConfigOptions struct { // InsecureExecProvider enables the use of ExecProviders in kubeconfig. // To use this feature securely, it is recommended the use of restrictive // AppArmor and SELinux profiles to restrict what binaries can be executed. InsecureExecProvider bool // InsecureTLS disables TLS certificate verification. This is insecure and // should be used for testing purposes only. InsecureTLS bool // UserAgent defines a string to identify the caller. UserAgent string // Timeout defines the maximum length of time to wait before giving up on a server request. // A value of zero means no timeout. // // If not provided, it will be set to 30 seconds. Timeout *time.Duration }
KubeConfigOptions defines options for KubeConfig sanitization.
func (*KubeConfigOptions) BindFlags ¶ added in v0.13.3
func (o *KubeConfigOptions) BindFlags(fs *pflag.FlagSet)
BindFlags will parse the given pflag.FlagSet for Kubernetes client option flags and set the Options accordingly.
type Options ¶
type Options struct { // QPS indicates the maximum queries-per-second of requests sent to the Kubernetes API, defaults to 50. QPS float32 // Burst indicates the maximum burst queries-per-second of requests sent to the Kubernetes API, defaults to 100. Burst int }
Options contains the runtime configuration for a Kubernetes client.
The struct can be used in the main.go file of your controller by binding it to the main flag set, and then utilizing the configured options later:
func main() { var ( // other controller specific configuration variables clientOptions client.Options ) // Bind the options to the main flag set, and parse it clientOptions.BindFlags(flag.CommandLine) flag.Parse() // Get a runtime Kubernetes client configuration with the options set restConfig := client.GetConfigOrDie(clientOptions) }