config

package
v0.56.4 Latest Latest
Warning

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

Go to latest
Published: Apr 8, 2024 License: Apache-2.0 Imports: 17 Imported by: 88

Documentation

Index

Constants

View Source
const (
	// DefaultTimeoutMinutes is used when no timeout is specified.
	DefaultTimeoutMinutes = 60
	// NoTimeoutDuration is used when a pipeline or task should never time out.
	NoTimeoutDuration = 0 * time.Minute
	// DefaultServiceAccountValue is the SA used when one is not specified.
	DefaultServiceAccountValue = "default"
	// DefaultManagedByLabelValue is the value for the managed-by label that is used by default.
	DefaultManagedByLabelValue = "tekton-pipelines"
	// DefaultCloudEventSinkValue is the default value for cloud event sinks.
	DefaultCloudEventSinkValue = ""
	// DefaultMaxMatrixCombinationsCount is used when no max matrix combinations count is specified.
	DefaultMaxMatrixCombinationsCount = 256
	// DefaultResolverTypeValue is used when no default resolver type is specified
	DefaultResolverTypeValue = ""
	// default resource requirements, will be applied to all the containers, which has empty resource requirements
	ResourceRequirementDefaultContainerKey = "default"

	DefaultImagePullBackOffTimeout = 0 * time.Minute
)
View Source
const (
	// StableAPIFields is the value used for API-driven features of stable stability level.
	StableAPIFields = "stable"
	// AlphaAPIFields is the value used for API-driven features of alpha stability level.
	AlphaAPIFields = "alpha"
	// BetaAPIFields is the value used for API-driven features of beta stability level.
	BetaAPIFields = "beta"
	// Features of "alpha" stability level are disabled by default
	DefaultAlphaFeatureEnabled = false
	// Features of "beta" stability level are disabled by default
	DefaultBetaFeatureEnabled = false
	// Features of "stable" stability level are enabled by default
	DefaultStableFeatureEnabled = true
	// FailNoMatchPolicy is the value used for "trusted-resources-verification-no-match-policy" to fail TaskRun or PipelineRun
	// when no matching policies are found
	FailNoMatchPolicy = "fail"
	// WarnNoMatchPolicy is the value used for "trusted-resources-verification-no-match-policy" to log warning and skip verification
	// when no matching policies are found
	WarnNoMatchPolicy = "warn"
	// IgnoreNoMatchPolicy is the value used for "trusted-resources-verification-no-match-policy" to skip verification
	// when no matching policies are found
	IgnoreNoMatchPolicy = "ignore"
	// CoscheduleWorkspaces is the value used for "coschedule" to coschedule PipelineRun Pods sharing the same PVC workspaces to the same node
	CoscheduleWorkspaces = "workspaces"
	// CoschedulePipelineRuns is the value used for "coschedule" to coschedule all PipelineRun Pods to the same node
	CoschedulePipelineRuns = "pipelineruns"
	// CoscheduleIsolatePipelineRun is the value used for "coschedule" to coschedule all PipelineRun Pods to the same node, and only allows one PipelineRun to run on a node at a time
	CoscheduleIsolatePipelineRun = "isolate-pipelinerun"
	// CoscheduleDisabled is the value used for "coschedule" to disabled PipelineRun Pods coschedule
	CoscheduleDisabled = "disabled"
	// ResultExtractionMethodTerminationMessage is the value used for "results-from" as a way to extract results from tasks using kubernetes termination message.
	ResultExtractionMethodTerminationMessage = "termination-message"
	// ResultExtractionMethodSidecarLogs is the value used for "results-from" as a way to extract results from tasks using sidecar logs.
	ResultExtractionMethodSidecarLogs = "sidecar-logs"
	// DefaultDisableAffinityAssistant is the default value for "disable-affinity-assistant".
	DefaultDisableAffinityAssistant = false
	// DefaultDisableCredsInit is the default value for "disable-creds-init".
	DefaultDisableCredsInit = false
	// DefaultRunningInEnvWithInjectedSidecars is the default value for "running-in-environment-with-injected-sidecars".
	DefaultRunningInEnvWithInjectedSidecars = true
	// DefaultAwaitSidecarReadiness is the default value for "await-sidecar-readiness".
	DefaultAwaitSidecarReadiness = true
	// DefaultRequireGitSSHSecretKnownHosts is the default value for "require-git-ssh-secret-known-hosts".
	DefaultRequireGitSSHSecretKnownHosts = false
	// DefaultEnableTektonOciBundles is the default value for "enable-tekton-oci-bundles".
	DefaultEnableTektonOciBundles = false
	// DefaultEnableAPIFields is the default value for "enable-api-fields".
	DefaultEnableAPIFields = BetaAPIFields
	// DefaultSendCloudEventsForRuns is the default value for "send-cloudevents-for-runs".
	DefaultSendCloudEventsForRuns = false
	// EnforceNonfalsifiabilityWithSpire is the value used for  "enable-nonfalsifiability" when SPIRE is used to enable non-falsifiability.
	EnforceNonfalsifiabilityWithSpire = "spire"
	// EnforceNonfalsifiabilityNone is the value used for  "enable-nonfalsifiability" when non-falsifiability is not enabled.
	EnforceNonfalsifiabilityNone = "none"
	// DefaultEnforceNonfalsifiability is the default value for "enforce-nonfalsifiability".
	DefaultEnforceNonfalsifiability = EnforceNonfalsifiabilityNone
	// DefaultNoMatchPolicyConfig is the default value for "trusted-resources-verification-no-match-policy".
	DefaultNoMatchPolicyConfig = IgnoreNoMatchPolicy
	// DefaultEnableProvenanceInStatus is the default value for "enable-provenance-status".
	DefaultEnableProvenanceInStatus = true
	// DefaultResultExtractionMethod is the default value for ResultExtractionMethod
	DefaultResultExtractionMethod = ResultExtractionMethodTerminationMessage
	// DefaultMaxResultSize is the default value in bytes for the size of a result
	DefaultMaxResultSize = 4096
	// DefaultSetSecurityContext is the default value for "set-security-context"
	DefaultSetSecurityContext = false
	// DefaultCoschedule is the default value for coschedule
	DefaultCoschedule = CoscheduleWorkspaces
	// KeepPodOnCancel is the flag used to enable cancelling a pod using the entrypoint, and keep pod on cancel
	KeepPodOnCancel = "keep-pod-on-cancel"
	// DefaultEnableKeepPodOnCancel is the default value for "keep-pod-on-cancel"
	DefaultEnableKeepPodOnCancel = false
	// EnableCELInWhenExpression is the flag to enabled CEL in WhenExpression
	EnableCELInWhenExpression = "enable-cel-in-whenexpression"
	// DefaultEnableCELInWhenExpression is the default value for EnableCELInWhenExpression
	DefaultEnableCELInWhenExpression = false
	// EnableStepActions is the flag to enable the use of StepActions in Steps
	EnableStepActions = "enable-step-actions"
	// DefaultEnableStepActions is the default value for EnableStepActions
	DefaultEnableStepActions = false
	// EnableParamEnum is the flag to enabled enum in params
	EnableParamEnum = "enable-param-enum"
	// DefaultEnableParamEnum is the default value for EnableParamEnum
	DefaultEnableParamEnum = false
)
View Source
const (

	// DefaultTaskrunLevel determines to what level to aggregate metrics
	// when it isn't specified in configmap
	DefaultTaskrunLevel = TaskrunLevelAtTask
	// TaskrunLevelAtTaskrun specify that aggregation will be done at
	// taskrun level
	TaskrunLevelAtTaskrun = "taskrun"
	// TaskrunLevelAtTask specify that aggregation will be done at task level
	TaskrunLevelAtTask = "task"
	// TaskrunLevelAtNS specify that aggregation will be done at namespace level
	TaskrunLevelAtNS = "namespace"
	// DefaultPipelinerunLevel determines to what level to aggregate metrics
	// when it isn't specified in configmap
	DefaultPipelinerunLevel = PipelinerunLevelAtPipeline
	// PipelinerunLevelAtPipelinerun specify that aggregation will be done at
	// pipelinerun level
	PipelinerunLevelAtPipelinerun = "pipelinerun"
	// PipelinerunLevelAtPipeline specify that aggregation will be done at
	// pipeline level
	PipelinerunLevelAtPipeline = "pipeline"
	// PipelinerunLevelAtNS specify that aggregation will be done at
	// namespace level
	PipelinerunLevelAtNS = "namespace"

	// DefaultDurationTaskrunType determines what type
	// of metrics to use when we don't specify one in
	// configmap
	DefaultDurationTaskrunType = "histogram"
	// DurationTaskrunTypeHistogram specify that histogram
	// type metrics need to be use for Duration of Taskrun
	DurationTaskrunTypeHistogram = "histogram"
	// DurationTaskrunTypeLastValue specify that lastValue or
	// gauge type metrics need to be use for Duration of Taskrun
	DurationTaskrunTypeLastValue = "lastvalue"

	// DefaultDurationPipelinerunType determines what type
	// of metrics to use when we don't specify one in
	// configmap
	DefaultDurationPipelinerunType = "histogram"
	// DurationPipelinerunTypeHistogram specify that histogram
	// type metrics need to be use for Duration of Pipelinerun
	DurationPipelinerunTypeHistogram = "histogram"
	// DurationPipelinerunTypeLastValue specify that lastValue or
	// gauge type metrics need to be use for Duration of Pipelinerun
	DurationPipelinerunTypeLastValue = "lastvalue"
)
View Source
const (
	// SpireConfigMapName is the name of the trusted resources configmap
	SpireConfigMapName = "config-spire"

	// SpireTrustDomain is the key to extract out the SPIRE trust domain to use
	SpireTrustDomain = "spire-trust-domain"
	// SpireSocketPath is the key to extract out the SPIRE agent socket for SPIFFE workload API
	SpireSocketPath = "spire-socket-path"
	// SpireServerAddr is the key to extract out the SPIRE server address for workload/node registration
	SpireServerAddr = "spire-server-addr"
	// SpireNodeAliasPrefix is the key to extract out the SPIRE node alias prefix to use
	SpireNodeAliasPrefix = "spire-node-alias-prefix"

	// SpireTrustDomainDefault is the default value for the SpireTrustDomain
	SpireTrustDomainDefault = "example.org"
	// SpireSocketPathDefault is the default value for the SpireSocketPath
	SpireSocketPathDefault = "unix:///spiffe-workload-api/spire-agent.sock"
	// SpireServerAddrDefault is the default value for the SpireServerAddr
	SpireServerAddrDefault = "spire-server.spire.svc.cluster.local:8081"
	// SpireNodeAliasPrefixDefault is the default value for the SpireNodeAliasPrefix
	SpireNodeAliasPrefixDefault = "/tekton-node/"
)
View Source
const (

	// DefaultEndpoint is the default destination for sending traces
	DefaultEndpoint = "http://jaeger-collector.jaeger.svc.cluster.local:14268/api/traces"
)

Variables

View Source
var (

	// DefaultFormat is the default value for "formats"
	DefaultFormats = EventFormats{FormatTektonV1: struct{}{}}

	// DefaultConfig holds all the default configurations for the config.
	DefaultEvents, _ = NewEventsFromMap(map[string]string{})
)
View Source
var DefaultConfig, _ = NewDefaultsFromMap(map[string]string{})

DefaultConfig holds all the default configurations for the config.

View Source
var DefaultFeatureFlags, _ = NewFeatureFlagsFromMap(map[string]string{})

DefaultFeatureFlags holds all the default configurations for the feature flags configmap.

View Source
var DefaultMetrics, _ = newMetricsFromMap(map[string]string{})

DefaultMetrics holds all the default configurations for the metrics.

View Source
var DefaultSpire, _ = NewSpireConfigFromMap(map[string]string{})

DefaultSpire hols all the default configurations for the spire.

View Source
var DefaultTracing, _ = newTracingFromMap(map[string]string{})

DefaultTracing holds all the default configurations for tracing

Functions

func GetDefaultsConfigName added in v0.12.0

func GetDefaultsConfigName() string

GetDefaultsConfigName returns the name of the configmap containing all defined defaults.

func GetEventsConfigName added in v0.50.0

func GetEventsConfigName() string

GetEventsConfigName returns the name of the configmap containing all feature flags.

func GetFeatureFlagsConfigName added in v0.14.0

func GetFeatureFlagsConfigName() string

GetFeatureFlagsConfigName returns the name of the configmap containing all feature flags.

func GetMetricsConfigName added in v0.28.0

func GetMetricsConfigName() string

GetMetricsConfigName returns the name of the configmap containing all customizations for the storage bucket.

func GetSpireConfigName added in v0.45.0

func GetSpireConfigName() string

GetSpireConfigName returns the name of Spire ConfigMap

func GetTracingConfigName added in v0.52.0

func GetTracingConfigName() string

GetTracingConfigName returns the name of the configmap containing all customizations for tracing

func GetVerificationNoMatchPolicy added in v0.47.0

func GetVerificationNoMatchPolicy(ctx context.Context) string

GetVerificationNoMatchPolicy returns the "trusted-resources-verification-no-match-policy" value

func IsSpireEnabled added in v0.47.0

func IsSpireEnabled(ctx context.Context) bool

IsSpireEnabled checks if non-falsifiable provenance is enforced through SPIRE

func NewSpireConfigFromConfigMap added in v0.45.0

func NewSpireConfigFromConfigMap(configMap *corev1.ConfigMap) (*sc.SpireConfig, error)

NewSpireConfigFromConfigMap creates a Config from the supplied ConfigMap

func NewSpireConfigFromMap added in v0.45.0

func NewSpireConfigFromMap(data map[string]string) (*sc.SpireConfig, error)

NewSpireConfigFromMap creates a Config from the supplied map

func ToContext

func ToContext(ctx context.Context, c *Config) context.Context

ToContext attaches the provided Config to the provided context, returning the new context with the Config attached.

func ValidateEnabledAPIFields added in v0.53.0

func ValidateEnabledAPIFields(ctx context.Context, featureName string, wantVersion string) *apis.FieldError

ValidateEnabledAPIFields checks that the enable-api-fields feature gate is set to a version at most as stable as wantVersion, if not, returns an error stating which feature is dependent on the version and what the current version actually is.

Types

type Config

type Config struct {
	Defaults     *Defaults
	FeatureFlags *FeatureFlags
	Metrics      *Metrics
	SpireConfig  *sc.SpireConfig
	Events       *Events
	Tracing      *Tracing
}

Config holds the collection of configurations that we attach to contexts. +k8s:deepcopy-gen=false

func FromContext

func FromContext(ctx context.Context) *Config

FromContext extracts a Config from the provided context.

func FromContextOrDefaults

func FromContextOrDefaults(ctx context.Context) *Config

FromContextOrDefaults is like FromContext, but when no Config is attached it returns a Config populated with the defaults for each of the Config fields.

type Defaults

type Defaults struct {
	DefaultTimeoutMinutes                int
	DefaultServiceAccount                string
	DefaultManagedByLabelValue           string
	DefaultPodTemplate                   *pod.Template
	DefaultAAPodTemplate                 *pod.AffinityAssistantTemplate
	DefaultCloudEventsSink               string // Deprecated. Use the events package instead
	DefaultTaskRunWorkspaceBinding       string
	DefaultMaxMatrixCombinationsCount    int
	DefaultForbiddenEnv                  []string
	DefaultResolverType                  string
	DefaultContainerResourceRequirements map[string]corev1.ResourceRequirements
	DefaultImagePullBackOffTimeout       time.Duration
}

Defaults holds the default configurations +k8s:deepcopy-gen=true

func NewDefaultsFromConfigMap

func NewDefaultsFromConfigMap(config *corev1.ConfigMap) (*Defaults, error)

NewDefaultsFromConfigMap returns a Config for the given configmap

func NewDefaultsFromMap

func NewDefaultsFromMap(cfgMap map[string]string) (*Defaults, error)

NewDefaultsFromMap returns a Config given a map corresponding to a ConfigMap

func (*Defaults) DeepCopy

func (in *Defaults) DeepCopy() *Defaults

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Defaults.

func (*Defaults) DeepCopyInto

func (in *Defaults) DeepCopyInto(out *Defaults)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Defaults) Equals

func (cfg *Defaults) Equals(other *Defaults) bool

Equals returns true if two Configs are identical

type EventFormat added in v0.50.0

type EventFormat string

EventFormat is a single event format

const (
	// FormatTektonV1 represents the "v1" events in Tekton custom format
	FormatTektonV1 EventFormat = "tektonv1"

	// DefaultSink is the default value for "sink"
	DefaultSink = ""
)

func (EventFormat) IsValid added in v0.50.0

func (ef EventFormat) IsValid() bool

IsValid returns true is the EventFormat one of the valid ones

func (EventFormat) String added in v0.50.0

func (ef EventFormat) String() string

String is a string representation of an EventFormat

type EventFormats added in v0.50.0

type EventFormats map[EventFormat]struct{}

EventFormats is a set of event formats

func ParseEventFormats added in v0.50.0

func ParseEventFormats(formats string) (EventFormats, error)

ParseEventFormats converts a comma separated list into a EventFormats set

func (EventFormats) Equals added in v0.50.0

func (efs EventFormats) Equals(other EventFormats) bool

Equals defines identity between EventFormats

func (EventFormats) String added in v0.50.0

func (efs EventFormats) String() string

String is a string representation of an EventFormats

type Events added in v0.50.0

type Events struct {
	Sink    string
	Formats EventFormats
}

Events holds the events configurations +k8s:deepcopy-gen=true

func NewEventsFromConfigMap added in v0.50.0

func NewEventsFromConfigMap(config *corev1.ConfigMap) (*Events, error)

NewEventsFromConfigMap returns a Config for the given configmap

func NewEventsFromMap added in v0.50.0

func NewEventsFromMap(cfgMap map[string]string) (*Events, error)

NewEventsFromMap returns a Config given a map corresponding to a ConfigMap

func (*Events) DeepCopy added in v0.50.0

func (in *Events) DeepCopy() *Events

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Events.

func (*Events) DeepCopyInto added in v0.50.0

func (in *Events) DeepCopyInto(out *Events)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Events) Equals added in v0.50.0

func (cfg *Events) Equals(other *Events) bool

Equals returns true if two Configs are identical

type FeatureFlags added in v0.14.0

type FeatureFlags struct {
	DisableAffinityAssistant         bool
	DisableCredsInit                 bool
	RunningInEnvWithInjectedSidecars bool
	RequireGitSSHSecretKnownHosts    bool
	EnableTektonOCIBundles           bool
	ScopeWhenExpressionsToTask       bool
	EnableAPIFields                  string
	SendCloudEventsForRuns           bool
	AwaitSidecarReadiness            bool
	EnforceNonfalsifiability         string
	EnableKeepPodOnCancel            bool
	// VerificationNoMatchPolicy is the feature flag for "trusted-resources-verification-no-match-policy"
	// VerificationNoMatchPolicy can be set to "ignore", "warn" and "fail" values.
	// ignore: skip trusted resources verification when no matching verification policies found
	// warn: skip trusted resources verification when no matching verification policies found and log a warning
	// fail: fail the taskrun or pipelines run if no matching verification policies found
	VerificationNoMatchPolicy string
	EnableProvenanceInStatus  bool
	ResultExtractionMethod    string
	MaxResultSize             int
	SetSecurityContext        bool
	Coschedule                string
	EnableCELInWhenExpression bool
	EnableStepActions         bool
	EnableParamEnum           bool
}

FeatureFlags holds the features configurations +k8s:deepcopy-gen=true

func NewFeatureFlagsFromConfigMap added in v0.14.0

func NewFeatureFlagsFromConfigMap(config *corev1.ConfigMap) (*FeatureFlags, error)

NewFeatureFlagsFromConfigMap returns a Config for the given configmap

func NewFeatureFlagsFromMap added in v0.14.0

func NewFeatureFlagsFromMap(cfgMap map[string]string) (*FeatureFlags, error)

NewFeatureFlagsFromMap returns a Config given a map corresponding to a ConfigMap

func (*FeatureFlags) DeepCopy added in v0.14.0

func (in *FeatureFlags) DeepCopy() *FeatureFlags

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureFlags.

func (*FeatureFlags) DeepCopyInto added in v0.14.0

func (in *FeatureFlags) DeepCopyInto(out *FeatureFlags)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Metrics added in v0.28.0

type Metrics struct {
	TaskrunLevel            string
	PipelinerunLevel        string
	DurationTaskrunType     string
	DurationPipelinerunType string
	CountWithReason         bool
}

Metrics holds the configurations for the metrics +k8s:deepcopy-gen=true

func NewMetricsFromConfigMap added in v0.28.0

func NewMetricsFromConfigMap(config *corev1.ConfigMap) (*Metrics, error)

NewMetricsFromConfigMap returns a Config for the given configmap

func (*Metrics) DeepCopy added in v0.28.0

func (in *Metrics) DeepCopy() *Metrics

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Metrics.

func (*Metrics) DeepCopyInto added in v0.28.0

func (in *Metrics) DeepCopyInto(out *Metrics)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Metrics) Equals added in v0.28.0

func (cfg *Metrics) Equals(other *Metrics) bool

Equals returns true if two Configs are identical

type PerFeatureFlag added in v0.53.0

type PerFeatureFlag struct {
	// Name of the feature flag
	Name string
	// Stability level of the feature, one of StableAPIFields, BetaAPIFields or AlphaAPIFields
	Stability string
	// Enabled is whether the feature is turned on
	Enabled bool
	// Deprecated indicates whether the feature is deprecated
	// +optional
	//nolint:gocritic
	Deprecated bool
}

TODO(#7285): Patch the default values of new features that were added after `enable-api-fields` was no longer used.

type Store

type Store struct {
	*configmap.UntypedStore
}

Store is a typed wrapper around configmap.Untyped store to handle our configmaps. +k8s:deepcopy-gen=false

func NewStore

func NewStore(logger configmap.Logger, onAfterStore ...func(name string, value interface{})) *Store

NewStore creates a new store of Configs and optionally calls functions when ConfigMaps are updated.

func (*Store) Load

func (s *Store) Load() *Config

Load creates a Config from the current config state of the Store.

func (*Store) ToContext

func (s *Store) ToContext(ctx context.Context) context.Context

ToContext attaches the current Config state to the provided context.

type Tracing added in v0.52.0

type Tracing struct {
	Enabled           bool
	Endpoint          string
	CredentialsSecret string
}

Tracing holds the configurations for tracing +k8s:deepcopy-gen=true

func NewTracingFromConfigMap added in v0.52.0

func NewTracingFromConfigMap(config *corev1.ConfigMap) (*Tracing, error)

NewTracingFromConfigMap returns a Config given a ConfigMap

func (*Tracing) DeepCopy added in v0.52.0

func (in *Tracing) DeepCopy() *Tracing

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tracing.

func (*Tracing) DeepCopyInto added in v0.52.0

func (in *Tracing) DeepCopyInto(out *Tracing)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Tracing) Equals added in v0.52.0

func (cfg *Tracing) Equals(other *Tracing) bool

Equals returns true if two Configs are identical

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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