flagutil

package
Version: v0.0.0-...-7140e8c Latest Latest
Warning

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

Go to latest
Published: Nov 27, 2021 License: Apache-2.0 Imports: 35 Imported by: 83

Documentation

Overview

Package flagutil contains utilities and interfaces shared between several Prow commands.

Index

Constants

View Source
const (
	DefaultMetricsPort = 9090
	DefaultPProfPort   = 6060
	DefaultHealthPort  = 8081

	DefaultMemoryProfileInterval = 30 * time.Second
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Bool

type Bool struct {
	Value    bool
	Explicit bool
}

Bool holds a boolean flag value, tracking whether it was set explicitly.

func (*Bool) IsBoolFlag

func (b *Bool) IsBoolFlag() bool

IsBoolFlag causes golang to consider --foo to mean --foo=true

func (*Bool) Set

func (b *Bool) Set(s string) error

Set the bool according to the string.

func (*Bool) String

func (b *Bool) String() string

String value of the string.

type BugzillaOptions

type BugzillaOptions struct {
	ApiKeyPath string
	// contains filtered or unexported fields
}

BugzillaOptions holds options for interacting with Bugzilla.

func (*BugzillaOptions) AddFlags

func (o *BugzillaOptions) AddFlags(fs *flag.FlagSet)

AddFlags injects Bugzilla options into the given FlagSet.

func (*BugzillaOptions) BugzillaClient

func (o *BugzillaOptions) BugzillaClient() (bugzilla.Client, error)

BugzillaClient returns a Bugzilla client.

func (*BugzillaOptions) Validate

func (o *BugzillaOptions) Validate(dryRun bool) error

Validate validates Bugzilla options.

type FlagParameter

type FlagParameter func(options *flagParams)

func DisableThrottlerOptions

func DisableThrottlerOptions() FlagParameter

DisableThrottlerOptions suppresses the presence of throttler-related flags, effectively disallowing external users to parametrize default throttling behavior. This is useful mostly when a program creates multiple GH clients with different behavior.

func ThrottlerDefaults

func ThrottlerDefaults(hourlyTokens, allowedBursts int) FlagParameter

ThrottlerDefaults allows to customize the default values of flags that control the throttler behavior. Setting `hourlyTokens` to zero disables throttling by default.

type GitHubEnablementOptions

type GitHubEnablementOptions struct {
	// contains filtered or unexported fields
}

GitHubEnablementOptions allows enable/disable functionality on a github org or org/repo level. If either EnabledOrgs or EnabledRepos is set, only org/repos in those are allowed, otherwise everything that is not in DisabledOrgs or DisabledRepos is allowed.

func (*GitHubEnablementOptions) AddFlags

func (o *GitHubEnablementOptions) AddFlags(fs *flag.FlagSet)

func (*GitHubEnablementOptions) EnablementChecker

func (o *GitHubEnablementOptions) EnablementChecker() func(org, repo string) bool

func (*GitHubEnablementOptions) Validate

func (o *GitHubEnablementOptions) Validate(_ bool) error

type GitHubOptions

type GitHubOptions struct {
	Host string

	TokenPath         string
	AllowAnonymous    bool
	AllowDirectAccess bool
	AppID             string
	AppPrivateKeyPath string

	ThrottleHourlyTokens int
	ThrottleAllowBurst   int

	OrgThrottlers Strings
	// contains filtered or unexported fields
}

GitHubOptions holds options for interacting with GitHub.

Set AllowAnonymous to be true if you want to allow anonymous github access. Set AllowDirectAccess to be true if you want to suppress warnings on direct github access (without ghproxy).

func (*GitHubOptions) AddCustomizedFlags

func (o *GitHubOptions) AddCustomizedFlags(fs *flag.FlagSet, paramFuncs ...FlagParameter)

AddCustomizedFlags injects GitHub options into the given FlagSet. Behavior can be customized via the functional options.

func (*GitHubOptions) AddFlags

func (o *GitHubOptions) AddFlags(fs *flag.FlagSet)

AddFlags injects GitHub options into the given FlagSet

func (*GitHubOptions) GitClient

func (o *GitHubOptions) GitClient(dryRun bool) (client *git.Client, err error)

GitClient returns a Git client.

func (*GitHubOptions) GitHubClient

func (o *GitHubOptions) GitHubClient(dryRun bool) (github.Client, error)

GitHubClient returns a GitHub client.

func (*GitHubOptions) GitHubClientWithAccessToken

func (o *GitHubOptions) GitHubClientWithAccessToken(token string) github.Client

GitHubClientWithAccessToken creates a GitHub client from an access token.

func (*GitHubOptions) GitHubClientWithLogFields

func (o *GitHubOptions) GitHubClientWithLogFields(dryRun bool, fields logrus.Fields) (github.Client, error)

GitHubClientWithLogFields returns a GitHub client with extra logging fields

func (*GitHubOptions) Validate

func (o *GitHubOptions) Validate(bool) error

Validate validates GitHub options. Note that validate updates the GitHubOptions to add default values for TokenPath and graphqlEndpoint.

type GitOptions

type GitOptions struct {
	// contains filtered or unexported fields
}

GitOptions holds options for interacting with git.

func (*GitOptions) AddFlags

func (o *GitOptions) AddFlags(fs *flag.FlagSet)

AddFlags injects Git options into the given FlagSet.

func (*GitOptions) GitClient

func (o *GitOptions) GitClient(userClient github.UserClient, token func() []byte, censor func(content []byte) []byte, dryRun bool) (git.ClientFactory, error)

GitClient creates a new git client.

func (*GitOptions) Validate

func (o *GitOptions) Validate(dryRun bool) error

Validate validates Git options.

type InstrumentationOptions

type InstrumentationOptions struct {
	// MetricsPort is the port which is used to serve metrics
	MetricsPort int
	// PProfPort is the port which is used to serve pprof
	PProfPort int
	// HealthPort is the port which is used to serve liveness and readiness
	HealthPort int

	// ProfileMemory determines if the process should profile memory
	ProfileMemory bool
	// MemoryProfileInterval is the interval at which memory profiles should be dumped
	MemoryProfileInterval time.Duration
}

InstrumentationOptions holds common options which are used across Prow components

func DefaultInstrumentationOptions

func DefaultInstrumentationOptions() InstrumentationOptions

DefaultInstrumentationOptions returns an initialized options struct, mostly for use in tests.

func (*InstrumentationOptions) AddFlags

func (o *InstrumentationOptions) AddFlags(fs *flag.FlagSet)

AddFlags injects common options into the given FlagSet.

func (*InstrumentationOptions) Validate

func (o *InstrumentationOptions) Validate(_ bool) error

type JiraOptions

type JiraOptions struct {
	// contains filtered or unexported fields
}

func (*JiraOptions) AddFlags

func (o *JiraOptions) AddFlags(fs *flag.FlagSet)

func (*JiraOptions) Client

func (o *JiraOptions) Client() (jira.Client, error)

func (*JiraOptions) Validate

func (o *JiraOptions) Validate(_ bool) error

type KubernetesClientOptions

type KubernetesClientOptions struct {
	// contains filtered or unexported fields
}

KubernetesClientOptions holds options for interacting with Kubernetes.

func (*KubernetesClientOptions) AddFlags

func (o *KubernetesClientOptions) AddFlags(fs *flag.FlagSet)

AddFlags injects Kubernetes options into the given FlagSet.

func (*KubernetesClientOptions) KubeClient

KubeClient returns a Kubernetes client.

func (*KubernetesClientOptions) ProwJobClient

func (o *KubernetesClientOptions) ProwJobClient() (versioned.Interface, error)

ProwJobClient returns a Kubernetes client.

func (*KubernetesClientOptions) Validate

func (o *KubernetesClientOptions) Validate(dryRun bool) error

Validate validates Kubernetes options.

type KubernetesOptions

type KubernetesOptions struct {
	NOInClusterConfigDefault bool
	// contains filtered or unexported fields
}

KubernetesOptions holds options for interacting with Kubernetes. These options are both useful for clients interacting with ProwJobs and other resources on the infrastructure cluster, as well as Pods on build clusters.

func (*KubernetesOptions) AddFlags

func (o *KubernetesOptions) AddFlags(fs *flag.FlagSet)

AddFlags injects Kubernetes options into the given FlagSet.

func (*KubernetesOptions) AddKubeconfigChangeCallback

func (o *KubernetesOptions) AddKubeconfigChangeCallback(callback func()) error

AddKubeconfigChangeCallback adds a callback that gets called whenever the kubeconfig changes. The main usecase for this is to exit components that can not reload a kubeconfig at runtime so the kubelet restarts them

func (*KubernetesOptions) BuildClusterClients

func (o *KubernetesOptions) BuildClusterClients(namespace string, dryRun bool) (buildClusterClients map[string]corev1.PodInterface, err error)

BuildClusterClients returns Pod clients for build clusters.

func (*KubernetesOptions) BuildClusterCoreV1Clients

func (o *KubernetesOptions) BuildClusterCoreV1Clients(dryRun bool) (v1Clients map[string]corev1.CoreV1Interface, err error)

BuildClusterCoreV1Clients returns core v1 clients for build clusters.

func (*KubernetesOptions) BuildClusterManagers

func (o *KubernetesOptions) BuildClusterManagers(dryRun bool, opts ...func(*manager.Options)) (map[string]manager.Manager, error)

BuildClusterManagers returns a manager per buildCluster. Per default, LeaderElection and the metrics listener are disabled, as we assume that there is another manager for ProwJobs that handles that.

func (*KubernetesOptions) BuildClusterUncachedRuntimeClients

func (o *KubernetesOptions) BuildClusterUncachedRuntimeClients(dryRun bool) (map[string]ctrlruntimeclient.Client, error)

BuildClusterUncachedRuntimeClients returns ctrlruntimeclients for the build cluster in a non-caching implementation.

func (*KubernetesOptions) ClusterClientForContext

func (o *KubernetesOptions) ClusterClientForContext(context string, dryRun bool) (kubernetesClient kubernetes.Interface, err error)

ClusterClientForContext returns a Kubernetes client for the given context name.

func (*KubernetesOptions) InfrastructureClusterClient

func (o *KubernetesOptions) InfrastructureClusterClient(dryRun bool) (kubernetesClient kubernetes.Interface, err error)

InfrastructureClusterClient returns a Kubernetes client for the infrastructure cluster.

func (*KubernetesOptions) InfrastructureClusterConfig

func (o *KubernetesOptions) InfrastructureClusterConfig(dryRun bool) (*rest.Config, error)

InfrastructureClusterConfig returns the *rest.Config for the infrastructure cluster

func (*KubernetesOptions) KnownClusters

func (o *KubernetesOptions) KnownClusters(dryRun bool) (sets.String, error)

func (*KubernetesOptions) LoadClusterConfigs

func (o *KubernetesOptions) LoadClusterConfigs(callBacks ...func()) (map[string]rest.Config, error)

LoadClusterConfigs returns the resolved rest.Configs and each callback function will be executed if the underlying kubeconfig files are modified. This function is for the case where the rest.Configs are needed without interests of the clients.

func (*KubernetesOptions) ProwJobClient

func (o *KubernetesOptions) ProwJobClient(namespace string, dryRun bool) (prowJobClient prowv1.ProwJobInterface, err error)

ProwJobClient returns a ProwJob client.

func (*KubernetesOptions) ProwJobClientset

func (o *KubernetesOptions) ProwJobClientset(dryRun bool) (prowJobClientset prow.Interface, err error)

ProwJobClientset returns a ProwJob clientset for use in informer factories.

func (*KubernetesOptions) Validate

func (o *KubernetesOptions) Validate(_ bool) error

Validate validates Kubernetes options.

type StorageClientOptions

type StorageClientOptions struct {
	// GCSCredentialsFile is used for reading/writing to GCS block storage.
	// It's optional, if you want to write to local paths or GCS credentials auto-discovery is used.
	// If set, this file is used to read/write to gs:// paths
	// If not, credential auto-discovery is used
	GCSCredentialsFile string `json:"gcs_credentials_file,omitempty"`
	// S3CredentialsFile is used for reading/writing to s3 block storage.
	// It's optional, if you want to write to local paths or S3 credentials auto-discovery is used.
	// If set, this file is used to read/write to s3:// paths
	// If not, go cloud credential auto-discovery is used
	// For more details see the prow/io/providers pkg.
	S3CredentialsFile string `json:"s3_credentials_file,omitempty"`
}

func (*StorageClientOptions) AddFlags

func (o *StorageClientOptions) AddFlags(fs *flag.FlagSet)

AddFlags injects status client options into the given FlagSet.

func (*StorageClientOptions) HasGCSCredentials

func (o *StorageClientOptions) HasGCSCredentials() bool

func (*StorageClientOptions) HasS3Credentials

func (o *StorageClientOptions) HasS3Credentials() bool

func (*StorageClientOptions) StorageClient

func (o *StorageClientOptions) StorageClient(ctx context.Context) (io.Opener, error)

StorageClient returns a Storage client.

func (*StorageClientOptions) Validate

func (o *StorageClientOptions) Validate(dryRun bool) error

Validate validates options.

type Strings

type Strings struct {
	// contains filtered or unexported fields
}

Strings represents the value of a flag that accept multiple strings.

func NewStrings

func NewStrings(def ...string) Strings

NewStrings returns a Strings struct that defaults to the value of def if left unset.

func (*Strings) Add

func (s *Strings) Add(value string)

Add records the value passes, adding to the defaults (if any)

func (*Strings) Set

func (s *Strings) Set(value string) error

Set records the value passed, overwriting the defaults (if any)

func (*Strings) String

func (s *Strings) String() string

String returns a concatenated string of all the values joined by commas.

func (*Strings) StringSet

func (s *Strings) StringSet() sets.String

StringSet returns a sets.String of strings set for this value instance.

func (*Strings) Strings

func (s *Strings) Strings() []string

Strings returns the slice of strings set for this value instance.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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