common

package
v0.70.0 Latest Latest
Warning

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

Go to latest
Published: Feb 20, 2024 License: Apache-2.0 Imports: 37 Imported by: 9

Documentation

Overview

Copyright 2020 The Tekton Authors

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

View Source
const (
	// user-provided and system CA certificates
	TrustedCAConfigMapName   = "config-trusted-cabundle"
	TrustedCAConfigMapVolume = "config-trusted-cabundle-volume"
	TrustedCAKey             = "ca-bundle.crt"

	// service serving certificates (required to talk to the internal registry)
	ServiceCAConfigMapName   = "config-service-cabundle"
	ServiceCAConfigMapVolume = "config-service-cabundle-volume"
	ServiceCAKey             = "service-ca.crt"
)
View Source
const (
	PipelineNotReady       = "tekton-pipelines not ready"
	PipelineNotFound       = "tekton-pipelines not installed"
	TriggerNotReady        = "tekton-triggers not ready"
	TriggerNotFound        = "tekton-triggers not installed"
	NamespaceIgnorePattern = "^(openshift|kube)-"
)
View Source
const (
	// KoEnvKey is the key of the environment variable to specify the path to the ko data directory
	KoEnvKey = "KO_DATA_PATH"
	// COMMA is the character comma
	COMMA = ","
)
View Source
const (
	KindConfigMap               = "ConfigMap"
	KindDeployment              = "Deployment"
	KindStatefulSet             = "StatefulSet"
	KindHorizontalPodAutoscaler = "HorizontalPodAutoscaler"
)
View Source
const (
	AnnotationPreserveNS          = "operator.tekton.dev/preserve-namespace"
	AnnotationPreserveRBSubjectNS = "operator.tekton.dev/preserve-rb-subject-namespace"
	PipelinesImagePrefix          = "IMAGE_PIPELINES_"
	TriggersImagePrefix           = "IMAGE_TRIGGERS_"
	AddonsImagePrefix             = "IMAGE_ADDONS_"
	PacImagePrefix                = "IMAGE_PAC_"
	ChainsImagePrefix             = "IMAGE_CHAINS_"
	ResultsImagePrefix            = "IMAGE_RESULTS_"
	HubImagePrefix                = "IMAGE_HUB_"

	ArgPrefix   = "arg_"
	ParamPrefix = "param_"
)
View Source
const ReleaseVersionUnknown = "Unknown"

Variables

This section is empty.

Functions

func AddCABundleConfigMapsToVolumes added in v0.55.0

func AddCABundleConfigMapsToVolumes(volumes []corev1.Volume) []corev1.Volume

AddCABundleConfigMapsToVolumes adds the config-trusted-cabundle and config-service-cabundle ConfigMaps to the given list of volumes and removes duplicates, if any

func AddCABundlesToContainerVolumes added in v0.55.0

func AddCABundlesToContainerVolumes(c *corev1.Container)

AddCABundlesToContainerVolumes adds the CA bundles to the container via VolumeMounts. SSL_CERT_DIR environment variable is also set if it does not exist already.

func AddConfigMapValues

func AddConfigMapValues(configMapName string, prop interface{}) mf.Transformer

AddConfigMapValues will loop on the interface passed and add the fields in configmap with key as json tag of the struct field

func AddConfiguration

func AddConfiguration(config v1alpha1.Config) mf.Transformer

func AddDeploymentRestrictedPSA added in v0.63.0

func AddDeploymentRestrictedPSA() mf.Transformer

AddDeploymentRestrictedPSA will add the default restricted spec on Deployment to remove errors/warning

func AddJobRestrictedPSA added in v0.63.0

func AddJobRestrictedPSA() mf.Transformer

AddJobRestrictedPSA will add the default restricted spec on Job to remove errors/warning

func AddStatefulSetRestrictedPSA added in v0.63.0

func AddStatefulSetRestrictedPSA() mf.Transformer

AddStatefulSetRestrictedPSA will add the default restricted spec on StatefulSet to remove errors/warning

func AppendManifest

func AppendManifest(manifest *mf.Manifest, yamlLocation string) error

func AppendTarget

func AppendTarget(ctx context.Context, manifest *mf.Manifest, instance v1alpha1.TektonComponent) error

AppendTarget mutates the passed manifest by appending one appropriate for the passed TektonComponent

func ApplyProxySettings

func ApplyProxySettings(u *unstructured.Unstructured) error

ApplyProxySettings is a transformer that propagate any proxy environment variables set on the operator deployment to the underlying deployment.

func CheckUpgradePending added in v0.55.0

func CheckUpgradePending(tc v1alpha1.TektonComponent) (bool, error)

func ComponentBaseDir added in v0.67.0

func ComponentBaseDir() string

func ComponentDir

func ComponentDir(instance v1alpha1.TektonComponent) string

func CopyConfigMap added in v0.63.0

func CopyConfigMap(configMapName string, expectedValues map[string]string) mf.Transformer

CopyConfigMap will copy all the values from the passed configmap to the configmap in the manifest and any extra fields will be added in the manifest

func DeploymentImages

func DeploymentImages(images map[string]string) mf.Transformer

DeploymentImages replaces container and args images.

func ExecuteAdditionalOptionsTransformer added in v0.68.0

func ExecuteAdditionalOptionsTransformer(ctx context.Context, manifest *mf.Manifest, targetNamespace string, additionalOptions v1alpha1.AdditionalOptions) error

func Fetch

func Fetch(path string) (mf.Manifest, error)

func FetchVersionFromConfigMap added in v0.50.0

func FetchVersionFromConfigMap(manifest mf.Manifest, configMapName string) (string, error)

FetchVersionFromConfigMap finds the component version from the ConfigMap data field. It looks for the version key in the ConfigMap and if the ConfigMap or version key is not found then return the error.

func ImagesFromEnv

func ImagesFromEnv(prefix string) map[string]string

ImagesFromEnv will provide map of key value.

func InjectLabelOnNamespace

func InjectLabelOnNamespace(label string) mf.Transformer

InjectLabelOnNamespace will add a label on tekton-pipelines and openshift-pipelines namespace

func InjectLabelOverwriteExisting added in v0.59.0

func InjectLabelOverwriteExisting(newLabels labels.Set, skipChecks ...mf.Predicate) mf.Transformer

func InjectLabelPreserveExisting added in v0.59.0

func InjectLabelPreserveExisting(newLabels labels.Set, skipChecks ...mf.Predicate) mf.Transformer

func InjectOperandNameLabelOverwriteExisting added in v0.59.0

func InjectOperandNameLabelOverwriteExisting(operandName string) mf.Transformer

func InjectOperandNameLabelPreserveExisting added in v0.59.0

func InjectOperandNameLabelPreserveExisting(operandName string) mf.Transformer

func IsFetchVersionError added in v0.50.0

func IsFetchVersionError(err error) bool

func JobImages

func JobImages(images map[string]string) mf.Transformer

JobImages replaces container and args images.

func LabelSelector added in v0.55.0

func LabelSelector(ls metav1.LabelSelector) (string, error)

func NoOp

NoOp does nothing

func OperatorVersion added in v0.55.0

func OperatorVersion(ctx context.Context) (string, error)

func PipelineTargetNamspace added in v0.55.0

func PipelineTargetNamspace(informer informer.TektonPipelineInformer) (string, error)

func PreemptDeadlock added in v0.55.0

func PreemptDeadlock(ctx context.Context, m *manifestival.Manifest, kc kubernetes.Interface, component string) error

func Prune

func Prune(ctx context.Context, k kubernetes.Interface, tektonConfig *v1alpha1.TektonConfig) error

func ReconcileTargetNamespace added in v0.68.0

func ReconcileTargetNamespace(ctx context.Context, labels map[string]string, tektonComponent v1alpha1.TektonComponent, kubeClientSet kubernetes.Interface) error

func ReplaceDeploymentArg added in v0.63.0

func ReplaceDeploymentArg(deploymentName, existingArg, newArg string) mf.Transformer

func ReplaceNamespace added in v0.70.0

func ReplaceNamespace(newNamespace string) mf.Transformer

updates "metadata.namespace" and under "spec" TODO: we have different transformer for each kind TODO: replaces all the existing transformers(used to update namespace) with this.

func ReplaceNamespaceInClusterRoleBinding added in v0.67.0

func ReplaceNamespaceInClusterRoleBinding(targetNamespace string) mf.Transformer

replaces the namespace in clusterRoleBinding

func ReplaceNamespaceInDeploymentArgs

func ReplaceNamespaceInDeploymentArgs(targetNamespace string) mf.Transformer

ReplaceNamespaceInDeploymentArgs replaces namespace in deployment's args

func ReplaceNamespaceInDeploymentEnv

func ReplaceNamespaceInDeploymentEnv(targetNamespace string) mf.Transformer

ReplaceNamespaceInDeploymentEnv replaces namespace in deployment's env var

func ReplaceNamespaceInServiceAccount added in v0.67.0

func ReplaceNamespaceInServiceAccount(targetNamespace string) mf.Transformer

replaces the namespace in serviceAccount

func SplitsByEqual added in v0.55.1

func SplitsByEqual(arg string) ([]string, bool)

func StatefulSetImages added in v0.68.0

func StatefulSetImages(images map[string]string) mf.Transformer

StatefulSetImages replaces container and args images.

func StructToMap added in v0.67.0

func StructToMap(in, out interface{}) error

converts struct to map with json encoding

func TargetManifest

func TargetManifest(instance v1alpha1.TektonComponent) (mf.Manifest, error)

TargetManifest returns the manifest for the TargetVersion

func TargetVersion

func TargetVersion(instance v1alpha1.TektonComponent) string

TargetVersion returns the version of the manifest to be installed per the spec in the component. If spec.version is empty, the latest version known to the operator is returned.

func TaskImages

func TaskImages(images map[string]string) mf.Transformer

TaskImages replaces step and params images.

func ToLowerCaseKeys

func ToLowerCaseKeys(keyValues map[string]string) map[string]string

ToLowerCaseKeys converts key value to lower cases.

func Transform

func Transform(ctx context.Context, manifest *mf.Manifest, instance v1alpha1.TektonComponent, extra ...mf.Transformer) error

Transform will mutate the passed-by-reference manifest with one transformed by platform, common, and any extra passed in

Types

type Controller added in v0.55.0

type Controller struct {
	Manifest         *mf.Manifest
	Logger           *zap.SugaredLogger
	VersionConfigMap string
}

func (Controller) InitController added in v0.55.0

func (ctrl Controller) InitController(ctx context.Context, opts PayloadOptions) (mf.Manifest, string)

type Extension

Extension enables platform-specific features

func NoExtension

func NoExtension(context.Context) Extension

NoPlatform "generates" a NilExtension

type ExtensionGenerator

type ExtensionGenerator func(context.Context) Extension

ExtensionGenerator creates an Extension from a Context

type ManifestFetcher

type ManifestFetcher func(ctx context.Context, instance v1alpha1.TektonComponent) (*mf.Manifest, error)

ManifestFetcher returns a manifest appropriate for the instance

type NameGenerator

type NameGenerator interface {
	// RestrictLengthWithRandomSuffix generates a valid name from the base name, adding a random suffix to the
	// the base. If base is valid, the returned name must also be valid. The generator is
	// responsible for knowing the maximum valid name length.
	RestrictLengthWithRandomSuffix(base string) string

	// RestrictLength generates a valid name from the name of a step specified in a Task,
	// shortening it to the maximum valid name length if needed.
	RestrictLength(base string) string
}

NameGenerator generates names for objects. Some backends may have more information available to guide selection of new names and this interface hides those details.

var SimpleNameGenerator NameGenerator = simpleNameGenerator{}

SimpleNameGenerator is a generator that returns the name plus a random suffix of five alphanumerics when a name is requested. The string is guaranteed to not exceed the length of a standard Kubernetes name (63 characters)

type OptionsTransformer added in v0.68.0

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

type PayloadOptions added in v0.55.0

type PayloadOptions struct {
	ReadOnly bool
}

type Pruner added in v0.50.0

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

type Recorder added in v0.63.0

type Recorder struct {
}

func NoMetrics added in v0.63.0

func NoMetrics() (*Recorder, error)

func (*Recorder) LogMetrics added in v0.63.0

func (m *Recorder) LogMetrics(status, version string, logger *zap.SugaredLogger)

type Stage

Stage represents a step in the reconcile process

func DeleteObsoleteResources

func DeleteObsoleteResources(ctx context.Context, instance v1alpha1.TektonComponent, fetch ManifestFetcher) Stage

DeleteObsoleteResources returns a Stage after calculating the installed manifest from the instance. This is meant to be called *before* executing the reconciliation stages so that the proper manifest is captured in a closure before any stage might mutate the instance status, e.g. Install.

type Stages

type Stages []Stage

Stages are a list of steps

func (Stages) Execute

func (stages Stages) Execute(ctx context.Context, manifest *mf.Manifest, instance v1alpha1.TektonComponent) error

Execute each stage in sequence until one returns an error

type VersionError added in v0.50.0

type VersionError error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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