builder

package
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Sep 19, 2019 License: Apache-2.0 Imports: 8 Imported by: 0

README

Builder package for tests

This package holds Builder functions that can be used to create struct in tests with less noise.

One of the most important characteristic of a unit test (and any type of test really) is readability. This means it should be easy to read but most importantly it should clearly show the intent of the test. The setup (and cleanup) of the tests should be as small as possible to avoid the noise. Those builders exists to help with that.

There is two types of functions defined in that package :

* *Builders*: create and return a struct
* *Modifiers*: return a function
  that will operate on a given struct. They can be applied to other
  Modifiers or Builders.

Most of the Builder (and Modifier) that accepts Modifiers defines a type (TypeOp) that can be satisfied by existing function in this package, from other package or inline. An example would be the following.

    // Definition
    type TaskRunOp func(*v1alpha1.TaskRun)
    func TaskRun(name, namespace string, ops ...TaskRunOp) *v1alpha1.TaskRun {
        // […]
    }
    func TaskRunOwnerReference(kind, name string) TaskRunOp {
        return func(t *v1alpha1.TaskRun) {
            // […]
        }
    }
    // Usage
    t := TaskRun("foo", "bar", func(t *v1alpha1.TaskRun){
        // Do something with the Task struct
        // […]
    })

The main reason to define the Op type, and using it in the methods signatures is to group Modifier function together. It makes it easier to see what is a Modifier (or Builder) and on what it operates.

By convention, this package is import with the "tb" as alias. The examples make that assumption.

Example

Let's look at a non-exhaustive example.

package builder_test

import (
    "fmt"
    "testing"

    "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1alpha1"
    tb "github.com/tektoncd/pipeline/test/builder"
    corev1 "k8s.io/api/core/v1"
)

func MyTest(t *testing.T) {
    // You can declare re-usable modifiers
    myStep := tb.Step("my-step", "myimage")
    // … and use them in a Task definition
    myTask := tb.Task("my-task", "namespace", tb.TaskSpec(
        tb.Step("simple-step", "myotherimage", tb.Command("/mycmd")),
        myStep,
    ))
    // … and another one.
    myOtherTask := tb.Task("my-other-task", "namespace",
        tb.TaskSpec(myStep,
            tb.TaskInputs(tb.InputsResource("workspace", v1alpha1.PipelineResourceTypeGit)),
        ),
    )
    myClusterTask := tb.ClusterTask("my-task", tb.ClusterTaskSpec(
        tb.Step("simple-step", "myotherimage", tb.Command("/mycmd")),
    ))
    // A simple definition, with a Task reference
    myTaskRun := tb.TaskRun("my-taskrun", "namespace", tb.TaskRunSpec(
        tb.TaskRunTaskRef("my-task"),
    ))
    // … or a more complex one with inline TaskSpec
    myTaskRunWithSpec := tb.TaskRun("my-taskrun-with-spec", "namespace", tb.TaskRunSpec(
        tb.TaskRunInputs(
            tb.TaskRunInputsParam("myarg", "foo"),
            tb.TaskRunInputsResource("workspace", tb.TaskResourceBindingRef("git-resource")),
        ),
        tb.TaskRunTaskSpec(
            tb.TaskInputs(
                tb.InputsResource("workspace", v1alpha1.PipelineResourceTypeGit),
                tb.InputsParam("myarg", tb.ParamDefault("mydefault")),
            ),
            tb.Step("mycontainer", "myimage", tb.Command("/mycmd"),
                tb.Args("--my-arg=$(inputs.params.myarg)"),
            ),
        ),
    ))
    // Pipeline
    pipeline := tb.Pipeline("tomatoes", "namespace",
        tb.PipelineSpec(tb.PipelineTask("foo", "banana")),
    )
    // … and PipelineRun
    pipelineRun := tb.PipelineRun("pear", "namespace",
        tb.PipelineRunSpec("tomatoes", tb.PipelineRunServiceAccount("inexistent")),
    )
    // And do something with them
    // […]
    if _, err := c.PipelineClient.Create(pipeline); err != nil {
        t.Fatalf("Failed to create Pipeline `%s`: %s", "tomatoes", err)
    }
    if _, err := c.PipelineRunClient.Create(pipelineRun); err != nil {
        t.Fatalf("Failed to create PipelineRun `%s`: %s", "pear", err)
    }
    // […]
}

Documentation

Overview

Package builder holds Builder functions that can be used to create struct in tests with less noise.

One of the most important characteristic of a unit test (and any type of test really) is readability. This means it should be easy to read but most importantly it should clearly show the intent of the test. The setup (and cleanup) of the tests should be as small as possible to avoid the noise. Those builders exists to help with that.

There is two types of functions defined in that package :

  • Builders: create and return a struct
  • Modifiers: return a function that will operate on a given struct. They can be applied to other Modifiers or Builders.

Most of the Builder (and Modifier) that accepts Modifiers defines a type (`TypeOp`) that can be satisfied by existing function in this package, from other package *or* inline. An example would be the following.

// Definition
type TaskOp func(*v1alpha1.Task)
func Task(name string, ops ...TaskOp) *v1alpha1.Task {
	// […]
}
func TaskNamespace(namespace string) TaskOp {
	return func(t *v1alpha1.Task) {
		// […]
	}
}
// Usage
t := Task("foo", TaskNamespace("bar"), func(t *v1alpha1.Task){
	// Do something with the Task struct
	// […]
})

The main reason to define the `Op` type, and using it in the methods signatures is to group Modifier function together. It makes it easier to see what is a Modifier (or Builder) and on what it operates.

By convention, this package is import with the "tb" as alias. The examples make that assumption.

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func ArrayOrString added in v0.6.0

func ArrayOrString(value string, additionalValues ...string) *v1alpha1.ArrayOrString

ArrayOrString creates an ArrayOrString of type ParamTypeString or ParamTypeArray, based on how many inputs are given (>1 input will create an array, not string).

func BlockOwnerDeletion

func BlockOwnerDeletion(o *metav1.OwnerReference)

func ClusterTask

func ClusterTask(name string, ops ...ClusterTaskOp) *v1alpha1.ClusterTask

ClusterTask creates a ClusterTask with default values. Any number of ClusterTask modifier can be passed to transform it.

Example
package main

import (
	"testing"

	"github.com/google/go-cmp/cmp"
	"github.com/tektoncd/pipeline/pkg/apis/pipeline/v1alpha1"

	tb "github.com/tektoncd/pipeline/test/builder"
)

// This is a "hack" to make the example "look" like tests
var t *testing.T

func main() {
	myClusterTask := tb.ClusterTask("my-task", tb.ClusterTaskSpec(
		tb.Step("simple-step", "myotherimage", tb.StepCommand("/mycmd")),
	))
	expectedClusterTask := &v1alpha1.Task{
		// […]
	}
	// […]
	if d := cmp.Diff(expectedClusterTask, myClusterTask); d != "" {
		t.Fatalf("ClusterTask diff -want, +got: %v", d)
	}
}
Output:

func Condition

func Condition(name, namespace string, ops ...ConditionOp) *v1alpha1.Condition

Condition creates a Condition with default values. Any number of Condition modifiers can be passed to transform it.

func Controller

func Controller(o *metav1.OwnerReference)

func Pipeline

func Pipeline(name, namespace string, ops ...PipelineOp) *v1alpha1.Pipeline

Pipeline creates a Pipeline with default values. Any number of Pipeline modifier can be passed to transform it.

Example
package main

import (
	"testing"

	"github.com/google/go-cmp/cmp"
	"github.com/tektoncd/pipeline/pkg/apis/pipeline/v1alpha1"

	tb "github.com/tektoncd/pipeline/test/builder"
)

// This is a "hack" to make the example "look" like tests
var t *testing.T

func main() {
	pipeline := tb.Pipeline("tomatoes", "namespace",
		tb.PipelineSpec(tb.PipelineTask("foo", "banana")),
	)
	expectedPipeline := &v1alpha1.Pipeline{
		// […]
	}
	// […]
	if d := cmp.Diff(expectedPipeline, pipeline); d != "" {
		t.Fatalf("Task diff -want, +got: %v", d)
	}
}
Output:

func PipelineResource

func PipelineResource(name, namespace string, ops ...PipelineResourceOp) *v1alpha1.PipelineResource

PipelineResource creates a PipelineResource with default values. Any number of PipelineResource modifier can be passed to transform it.

Example
package main

import (
	"testing"

	"github.com/google/go-cmp/cmp"
	"github.com/tektoncd/pipeline/pkg/apis/pipeline/v1alpha1"

	tb "github.com/tektoncd/pipeline/test/builder"
)

// This is a "hack" to make the example "look" like tests
var t *testing.T

func main() {
	gitResource := tb.PipelineResource("git-resource", "namespace", tb.PipelineResourceSpec(
		v1alpha1.PipelineResourceTypeGit, tb.PipelineResourceSpecParam("URL", "https://foo.git"),
	))
	imageResource := tb.PipelineResource("image-resource", "namespace", tb.PipelineResourceSpec(
		v1alpha1.PipelineResourceTypeImage, tb.PipelineResourceSpecParam("URL", "gcr.io/kristoff/sven"),
	))
	expectedGitResource := v1alpha1.PipelineResource{
		// […]
	}
	expectedImageResource := v1alpha1.PipelineResource{
		// […]
	}
	// […]
	if d := cmp.Diff(expectedGitResource, gitResource); d != "" {
		t.Fatalf("Task diff -want, +got: %v", d)
	}
	if d := cmp.Diff(expectedImageResource, imageResource); d != "" {
		t.Fatalf("Task diff -want, +got: %v", d)
	}
}
Output:

func PipelineRun

func PipelineRun(name, namespace string, ops ...PipelineRunOp) *v1alpha1.PipelineRun

PipelineRun creates a PipelineRun with default values. Any number of PipelineRun modifier can be passed to transform it.

Example
package main

import (
	"testing"

	"github.com/google/go-cmp/cmp"
	"github.com/tektoncd/pipeline/pkg/apis/pipeline/v1alpha1"

	tb "github.com/tektoncd/pipeline/test/builder"
)

// This is a "hack" to make the example "look" like tests
var t *testing.T

func main() {
	pipelineRun := tb.PipelineRun("pear", "namespace",
		tb.PipelineRunSpec("tomatoes", tb.PipelineRunServiceAccount("inexistent")),
	)
	expectedPipelineRun := &v1alpha1.PipelineRun{
		// […]
	}
	// […]
	if d := cmp.Diff(expectedPipelineRun, pipelineRun); d != "" {
		t.Fatalf("Task diff -want, +got: %v", d)
	}
}
Output:

func PipelineRunCancelled

func PipelineRunCancelled(spec *v1alpha1.PipelineRunSpec)

PipelineRunCancelled sets the status to cancel to the TaskRunSpec.

func PipelineRunNilTimeout added in v0.5.2

func PipelineRunNilTimeout(prs *v1alpha1.PipelineRunSpec)

PipelineRunNilTimeout sets the timeout to nil on the PipelineRunSpec

func Pod

func Pod(name, namespace string, ops ...PodOp) *corev1.Pod

Pod creates a Pod with default values. Any number of Pod modifiers can be passed to transform it.

func ResolvedTaskResources

func ResolvedTaskResources(ops ...ResolvedTaskResourcesOp) *resources.ResolvedTaskResources

ResolvedTaskResources creates a ResolvedTaskResources with default values. Any number of ResolvedTaskResources modifier can be passed to transform it.

func Task

func Task(name, namespace string, ops ...TaskOp) *v1alpha1.Task

Task creates a Task with default values. Any number of Task modifier can be passed to transform it.

Example
package main

import (
	"testing"

	"github.com/google/go-cmp/cmp"
	"github.com/tektoncd/pipeline/pkg/apis/pipeline/v1alpha1"

	tb "github.com/tektoncd/pipeline/test/builder"
)

// This is a "hack" to make the example "look" like tests
var t *testing.T

func main() {
	// You can declare re-usable modifiers
	myStep := tb.Step("my-step", "myimage")
	// … and use them in a Task definition
	myTask := tb.Task("my-task", "namespace", tb.TaskSpec(
		tb.Step("simple-step", "myotherimage", tb.StepCommand("/mycmd")),
		myStep,
	))
	// … and another one.
	myOtherTask := tb.Task("my-other-task", "namespace",
		tb.TaskSpec(myStep,
			tb.TaskInputs(tb.InputsResource("workspace", v1alpha1.PipelineResourceTypeGit)),
		),
	)
	expectedTask := &v1alpha1.Task{
		// […]
	}
	expectedOtherTask := &v1alpha1.Task{
		// […]
	}
	// […]
	if d := cmp.Diff(expectedTask, myTask); d != "" {
		t.Fatalf("Task diff -want, +got: %v", d)
	}
	if d := cmp.Diff(expectedOtherTask, myOtherTask); d != "" {
		t.Fatalf("Task diff -want, +got: %v", d)
	}
}
Output:

func TaskRun

func TaskRun(name, namespace string, ops ...TaskRunOp) *v1alpha1.TaskRun

TaskRun creates a TaskRun with default values. Any number of TaskRun modifier can be passed to transform it.

Example
package main

import (
	"testing"

	"github.com/google/go-cmp/cmp"
	"github.com/tektoncd/pipeline/pkg/apis/pipeline/v1alpha1"

	tb "github.com/tektoncd/pipeline/test/builder"
)

// This is a "hack" to make the example "look" like tests
var t *testing.T

func main() {
	// A simple definition, with a Task reference
	myTaskRun := tb.TaskRun("my-taskrun", "namespace", tb.TaskRunSpec(
		tb.TaskRunTaskRef("my-task"),
	))
	// … or a more complex one with inline TaskSpec
	myTaskRunWithSpec := tb.TaskRun("my-taskrun-with-spec", "namespace", tb.TaskRunSpec(
		tb.TaskRunInputs(
			tb.TaskRunInputsParam("myarg", "foo"),
			tb.TaskRunInputsResource("workspace", tb.TaskResourceBindingRef("git-resource")),
		),
		tb.TaskRunTaskSpec(
			tb.TaskInputs(
				tb.InputsResource("workspace", v1alpha1.PipelineResourceTypeGit),
				tb.InputsParamSpec("myarg", v1alpha1.ParamTypeString, tb.ParamSpecDefault("mydefault")),
			),
			tb.Step("mycontainer", "myimage", tb.StepCommand("/mycmd"),
				tb.StepArgs("--my-arg=$(inputs.params.myarg)"),
			),
		),
	))
	expectedTaskRun := &v1alpha1.TaskRun{
		// […]
	}
	expectedTaskRunWithSpec := &v1alpha1.TaskRun{
		// […]
	}
	// […]
	if d := cmp.Diff(expectedTaskRun, myTaskRun); d != "" {
		t.Fatalf("Task diff -want, +got: %v", d)
	}
	if d := cmp.Diff(expectedTaskRunWithSpec, myTaskRunWithSpec); d != "" {
		t.Fatalf("Task diff -want, +got: %v", d)
	}
}
Output:

func TaskRunCancelled

func TaskRunCancelled(spec *v1alpha1.TaskRunSpec)

TaskRunCancelled sets the status to cancel to the TaskRunSpec.

func TaskRunNilTimeout added in v0.5.2

func TaskRunNilTimeout(spec *v1alpha1.TaskRunSpec)

TaskRunNilTimeout sets the timeout duration to nil on the TaskRunSpec.

Types

type ClusterTaskOp

type ClusterTaskOp func(*v1alpha1.ClusterTask)

ClusterTaskOp is an operation which modify a ClusterTask struct.

func ClusterTaskSpec

func ClusterTaskSpec(ops ...TaskSpecOp) ClusterTaskOp

ClusterTaskSpec sets the specified spec of the cluster task. Any number of TaskSpec modifier can be passed to create it.

type ConditionOp added in v0.6.0

type ConditionOp func(*v1alpha1.Condition)

ConditionOp is an operation which modifies a Condition struct.

func ConditionSpec added in v0.6.0

func ConditionSpec(ops ...ConditionSpecOp) ConditionOp

ConditionSpec creates a ConditionSpec with default values. Any number of ConditionSpec modifiers can be passed to transform it.

type ConditionSpecOp added in v0.6.0

type ConditionSpecOp func(spec *v1alpha1.ConditionSpec)

ConditionSpecOp is an operation which modifies a ConditionSpec struct.

func ConditionParamSpec added in v0.6.0

func ConditionParamSpec(name string, pt v1alpha1.ParamType, ops ...ParamSpecOp) ConditionSpecOp

ConditionParamSpec adds a param, with specified name, to the Spec. Any number of ParamSpec modifiers can be passed to transform it.

func ConditionResource added in v0.7.0

func ConditionResource(name string, resourceType v1alpha1.PipelineResourceType) ConditionSpecOp

ConditionResource adds a resource with specified name, and type to the ConditionSpec.

func ConditionSpecCheck added in v0.6.0

func ConditionSpecCheck(name, image string, ops ...ContainerOp) ConditionSpecOp

ConditionSpecCheck adds a Container, with the specified name and image, to the Condition Spec Check. Any number of Container modifiers can be passed to transform it.

type ContainerOp

type ContainerOp func(*corev1.Container)

ContainerOp is an operation which modifies a Container struct.

func Args

func Args(args ...string) ContainerOp

Args sets the command arguments to the Container (step in this case).

func Command

func Command(args ...string) ContainerOp

Command sets the command to the Container (step in this case).

func EnvVar

func EnvVar(name, value string) ContainerOp

EnvVar add an environment variable, with specified name and value, to the Container (step).

func Resources added in v0.3.0

func Resources(ops ...ResourceRequirementsOp) ContainerOp

Resources adds ResourceRequirements to the Container (step).

func TerminationMessagePath added in v0.5.0

func TerminationMessagePath(terminationMessagePath string) ContainerOp

TerminationMessagePath sets the source of the termination message.

func TerminationMessagePolicy added in v0.5.0

func TerminationMessagePolicy(terminationMessagePolicy corev1.TerminationMessagePolicy) ContainerOp

TerminationMessagePolicy sets the policy of the termination message.

func VolumeMount

func VolumeMount(name, mountPath string, ops ...VolumeMountOp) ContainerOp

VolumeMount add a VolumeMount to the Container (step).

func WorkingDir

func WorkingDir(workingDir string) ContainerOp

WorkingDir sets the WorkingDir on the Container.

type InputsOp

type InputsOp func(*v1alpha1.Inputs)

InputsOp is an operation which modify an Inputs struct.

func InputsParamSpec added in v0.6.0

func InputsParamSpec(name string, pt v1alpha1.ParamType, ops ...ParamSpecOp) InputsOp

InputsParamSpec adds a ParamSpec, with specified name and type, to the Inputs. Any number of TaskParamSpec modifier can be passed to transform it.

func InputsResource

func InputsResource(name string, resourceType v1alpha1.PipelineResourceType, ops ...TaskResourceOp) InputsOp

InputsResource adds a resource, with specified name and type, to the Inputs. Any number of TaskResource modifier can be passed to transform it.

type OutputsOp

type OutputsOp func(*v1alpha1.Outputs)

OutputsOp is an operation which modify an Outputs struct.

func OutputsResource

func OutputsResource(name string, resourceType v1alpha1.PipelineResourceType) OutputsOp

OutputsResource adds a resource, with specified name and type, to the Outputs.

type OwnerReferenceOp

type OwnerReferenceOp func(*metav1.OwnerReference)

OwnerReferenceOp is an operation which modifies an OwnerReference struct.

func OwnerReferenceAPIVersion

func OwnerReferenceAPIVersion(version string) OwnerReferenceOp

OwnerReferenceAPIVersion sets the APIVersion to the OwnerReference.

type ParamSpecOp added in v0.6.0

type ParamSpecOp func(*v1alpha1.ParamSpec)

ParamSpecOp is an operation which modify a ParamSpec struct.

func ParamSpecDefault added in v0.6.0

func ParamSpecDefault(value string, additionalValues ...string) ParamSpecOp

ParamSpecDefault sets the default value of a ParamSpec.

func ParamSpecDescription added in v0.6.0

func ParamSpecDescription(desc string) ParamSpecOp

ParamSpecDescription sets the description of a ParamSpec.

type PipelineOp

type PipelineOp func(*v1alpha1.Pipeline)

PipelineOp is an operation which modify a Pipeline struct.

func PipelineCreationTimestamp added in v0.4.0

func PipelineCreationTimestamp(t time.Time) PipelineOp

PipelineCreationTimestamp sets the creation time of the pipeline

func PipelineSpec

func PipelineSpec(ops ...PipelineSpecOp) PipelineOp

PipelineSpec sets the PipelineSpec to the Pipeline. Any number of PipelineSpec modifier can be passed to transform it.

type PipelineResourceBindingOp

type PipelineResourceBindingOp func(*v1alpha1.PipelineResourceBinding)

PipelineResourceBindingOp is an operation which modify a PipelineResourceBinding struct.

func PipelineResourceBindingRef

func PipelineResourceBindingRef(name string) PipelineResourceBindingOp

PipelineResourceBindingRef set the ResourceRef name to the Resource called Name.

type PipelineResourceOp

type PipelineResourceOp func(*v1alpha1.PipelineResource)

PipelineResourceOp is an operation which modify a PipelineResource struct.

func PipelineResourceSpec

func PipelineResourceSpec(resourceType v1alpha1.PipelineResourceType, ops ...PipelineResourceSpecOp) PipelineResourceOp

PipelineResourceSpec set the PipelineResourceSpec, with specified type, to the PipelineResource. Any number of PipelineResourceSpec modifier can be passed to transform it.

type PipelineResourceSpecOp

type PipelineResourceSpecOp func(*v1alpha1.PipelineResourceSpec)

PipelineResourceSpecOp is an operation which modify a PipelineResourceSpec struct.

func PipelineResourceSpecParam

func PipelineResourceSpecParam(name, value string) PipelineResourceSpecOp

PipelineResourceSpecParam adds a ResourceParam, with specified name and value, to the PipelineResourceSpec.

func PipelineResourceSpecSecretParam

func PipelineResourceSpecSecretParam(fieldname, secretName, secretKey string) PipelineResourceSpecOp

PipelineResourceSpecSecretParam adds a SecretParam, with specified fieldname, secretKey and secretName, to the PipelineResourceSpec.

type PipelineRunOp

type PipelineRunOp func(*v1alpha1.PipelineRun)

PipelineRunOp is an operation which modify a PipelineRun struct.

func PipelineRunAnnotation added in v0.4.0

func PipelineRunAnnotation(key, value string) PipelineRunOp

PipelineRunAnnotations adds a annotation to the PipelineRun.

func PipelineRunLabel

func PipelineRunLabel(key, value string) PipelineRunOp

PipelineRunLabels adds a label to the PipelineRun.

func PipelineRunSpec

func PipelineRunSpec(name string, ops ...PipelineRunSpecOp) PipelineRunOp

PipelineRunSpec sets the PipelineRunSpec, references Pipeline with specified name, to the PipelineRun. Any number of PipelineRunSpec modifier can be passed to transform it.

func PipelineRunStatus

func PipelineRunStatus(ops ...PipelineRunStatusOp) PipelineRunOp

PipelineRunStatus sets the PipelineRunStatus to the PipelineRun. Any number of PipelineRunStatus modifier can be passed to transform it.

type PipelineRunSpecOp

type PipelineRunSpecOp func(*v1alpha1.PipelineRunSpec)

PipelineRunSpecOp is an operation which modify a PipelineRunSpec struct.

func PipelineRunAffinity

func PipelineRunAffinity(affinity *corev1.Affinity) PipelineRunSpecOp

PipelineRunAffinity sets the affinity to the PipelineSpec.

func PipelineRunNodeSelector

func PipelineRunNodeSelector(values map[string]string) PipelineRunSpecOp

PipelineRunNodeSelector sets the Node selector to the PipelineSpec.

func PipelineRunParam

func PipelineRunParam(name string, value string, additionalValues ...string) PipelineRunSpecOp

PipelineRunParam add a param, with specified name and value, to the PipelineRunSpec.

func PipelineRunResourceBinding

func PipelineRunResourceBinding(name string, ops ...PipelineResourceBindingOp) PipelineRunSpecOp

PipelineRunResourceBinding adds bindings from actual instances to a Pipeline's declared resources.

func PipelineRunServiceAccount

func PipelineRunServiceAccount(sa string) PipelineRunSpecOp

PipelineRunServiceAccount sets the service account to the PipelineRunSpec.

func PipelineRunServiceAccountTask added in v0.5.0

func PipelineRunServiceAccountTask(taskName, sa string) PipelineRunSpecOp

PipelineRunServiceAccountTask configures the service account for given Task in PipelineRun.

func PipelineRunTimeout

func PipelineRunTimeout(duration time.Duration) PipelineRunSpecOp

PipelineRunTimeout sets the timeout to the PipelineRunSpec.

func PipelineRunTolerations added in v0.3.0

func PipelineRunTolerations(values []corev1.Toleration) PipelineRunSpecOp

PipelineRunTolerations sets the Node selector to the PipelineSpec.

type PipelineRunStatusOp

type PipelineRunStatusOp func(*v1alpha1.PipelineRunStatus)

PipelineRunStatusOp is an operation which modifies a PipelineRunStatus

func PipelineRunCompletionTime added in v0.4.0

func PipelineRunCompletionTime(t time.Time) PipelineRunStatusOp

PipelineRunCompletionTime sets the completion time to the PipelineRunStatus.

func PipelineRunStartTime

func PipelineRunStartTime(startTime time.Time) PipelineRunStatusOp

PipelineRunStartTime sets the start time to the PipelineRunStatus.

func PipelineRunStatusCondition

func PipelineRunStatusCondition(condition apis.Condition) PipelineRunStatusOp

PipelineRunStatusCondition adds a StatusCondition to the TaskRunStatus.

func PipelineRunTaskRunsStatus added in v0.3.0

func PipelineRunTaskRunsStatus(taskRunName string, status *v1alpha1.PipelineRunTaskRunStatus) PipelineRunStatusOp

PipelineRunTaskRunsStatus sets the status of TaskRun to the PipelineRunStatus.

type PipelineSpecOp

type PipelineSpecOp func(*v1alpha1.PipelineSpec)

PipelineSpecOp is an operation which modify a PipelineSpec struct.

func PipelineDeclaredResource

func PipelineDeclaredResource(name string, t v1alpha1.PipelineResourceType) PipelineSpecOp

PipelineDeclaredResource adds a resource declaration to the Pipeline Spec, with the specified name and type.

func PipelineParamSpec added in v0.6.0

func PipelineParamSpec(name string, pt v1alpha1.ParamType, ops ...ParamSpecOp) PipelineSpecOp

PipelineParamSpec adds a param, with specified name and type, to the PipelineSpec. Any number of PipelineParamSpec modifiers can be passed to transform it.

func PipelineTask

func PipelineTask(name, taskName string, ops ...PipelineTaskOp) PipelineSpecOp

PipelineTask adds a PipelineTask, with specified name and task name, to the PipelineSpec. Any number of PipelineTask modifier can be passed to transform it.

type PipelineTaskConditionOp added in v0.6.0

type PipelineTaskConditionOp func(condition *v1alpha1.PipelineTaskCondition)

PipelineTaskConditionOp is an operation which modifies a PipelineTaskCondition

func PipelineTaskConditionParam added in v0.6.0

func PipelineTaskConditionParam(name, val string) PipelineTaskConditionOp

PipelineTaskConditionParam adds a parameter to a PipelineTaskCondition

func PipelineTaskConditionResource added in v0.7.0

func PipelineTaskConditionResource(name, resource string) PipelineTaskConditionOp

PipelineTaskConditionResource adds a resource to a PipelineTaskCondition

type PipelineTaskInputResourceOp

type PipelineTaskInputResourceOp func(*v1alpha1.PipelineTaskInputResource)

PipelineTaskInputResourceOp is an operation which modifies a PipelineTaskInputResource.

func From

func From(tasks ...string) PipelineTaskInputResourceOp

From will update the provided PipelineTaskInputResource to indicate that it should come from tasks.

type PipelineTaskOp

type PipelineTaskOp func(*v1alpha1.PipelineTask)

PipelineTaskOp is an operation which modify a PipelineTask struct.

func PipelineTaskCondition added in v0.6.0

func PipelineTaskCondition(conditionRef string, ops ...PipelineTaskConditionOp) PipelineTaskOp

PipelineTaskCondition adds a condition to the PipelineTask with the specified conditionRef. Any number of PipelineTaskCondition modifiers can be passed to transform it

func PipelineTaskInputResource

func PipelineTaskInputResource(name, resource string, ops ...PipelineTaskInputResourceOp) PipelineTaskOp

PipelineTaskInputResource adds an input resource to the PipelineTask with the specified name, pointing at the declared resource. Any number of PipelineTaskInputResource modifies can be passed to transform it.

func PipelineTaskOutputResource

func PipelineTaskOutputResource(name, resource string) PipelineTaskOp

PipelineTaskOutputResource adds an output resource to the PipelineTask with the specified name, pointing at the declared resource.

func PipelineTaskParam

func PipelineTaskParam(name string, value string, additionalValues ...string) PipelineTaskOp

PipelineTaskParam adds a ResourceParam, with specified name and value, to the PipelineTask.

func PipelineTaskRefKind

func PipelineTaskRefKind(kind v1alpha1.TaskKind) PipelineTaskOp

PipelineTaskRefKind sets the TaskKind to the PipelineTaskRef.

func Retries added in v0.4.0

func Retries(retries int) PipelineTaskOp

func RunAfter added in v0.2.0

func RunAfter(tasks ...string) PipelineTaskOp

RunAfter will update the provided Pipeline Task to indicate that it should be run after the provided list of Pipeline Task names.

type PodOp

type PodOp func(*corev1.Pod)

PodOp is an operation which modifies a Pod struct.

func PodAnnotation

func PodAnnotation(key, value string) PodOp

PodLabel adds an annotation to the Pod.

func PodLabel

func PodLabel(key, value string) PodOp

PodLabel adds a label to the Pod.

func PodOwnerReference

func PodOwnerReference(kind, name string, ops ...OwnerReferenceOp) PodOp

PodOwnerReference adds an OwnerReference, with specified kind and name, to the Pod.

func PodSpec

func PodSpec(ops ...PodSpecOp) PodOp

PodSpec creates a PodSpec with default values. Any number of PodSpec modifiers can be passed to transform it.

type PodSpecOp

type PodSpecOp func(*corev1.PodSpec)

PodSpecOp is an operation which modifies a PodSpec struct.

func PodContainer

func PodContainer(name, image string, ops ...ContainerOp) PodSpecOp

PodContainer adds a Container, with the specified name and image, to the PodSpec. Any number of Container modifiers can be passed to transform it.

func PodInitContainer

func PodInitContainer(name, image string, ops ...ContainerOp) PodSpecOp

PodInitContainer adds an InitContainer, with the specified name and image, to the PodSpec. Any number of Container modifiers can be passed to transform it.

func PodRestartPolicy

func PodRestartPolicy(restartPolicy corev1.RestartPolicy) PodSpecOp

PodRestartPolicy sets the restart policy on the PodSpec.

func PodServiceAccountName

func PodServiceAccountName(sa string) PodSpecOp

PodServiceAccountName sets the service account on the PodSpec.

func PodVolumes

func PodVolumes(volumes ...corev1.Volume) PodSpecOp

PodVolume sets the Volumes on the PodSpec.

type ResolvedTaskResourcesOp

type ResolvedTaskResourcesOp func(*resources.ResolvedTaskResources)

ResolvedTaskResourcesOp is an operation which modify a ResolvedTaskResources struct.

func ResolvedTaskResourcesInputs

func ResolvedTaskResourcesInputs(name string, resource *v1alpha1.PipelineResource) ResolvedTaskResourcesOp

ResolvedTaskResourcesInputs adds an input PipelineResource, with specified name, to the ResolvedTaskResources.

func ResolvedTaskResourcesOutputs

func ResolvedTaskResourcesOutputs(name string, resource *v1alpha1.PipelineResource) ResolvedTaskResourcesOp

ResolvedTaskResourcesOutputs adds an output PipelineResource, with specified name, to the ResolvedTaskResources.

func ResolvedTaskResourcesTaskSpec

func ResolvedTaskResourcesTaskSpec(ops ...TaskSpecOp) ResolvedTaskResourcesOp

ResolvedTaskResourcesTaskSpec sets a TaskSpec to the ResolvedTaskResources. Any number of TaskSpec modifier can be passed to transform it.

type ResourceListOp added in v0.3.0

type ResourceListOp func(corev1.ResourceList)

ResourceListOp is an operation which modifies a ResourceList struct.

func CPU added in v0.3.0

func CPU(val string) ResourceListOp

CPU sets the CPU resource on the ResourceList.

func EphemeralStorage added in v0.3.0

func EphemeralStorage(val string) ResourceListOp

EphemeralStorage sets the ephemeral storage resource on the ResourceList.

func Memory added in v0.3.0

func Memory(val string) ResourceListOp

Memory sets the memory resource on the ResourceList.

func StepCPU added in v0.6.0

func StepCPU(val string) ResourceListOp

StepCPU sets the CPU resource on the ResourceList.

func StepEphemeralStorage added in v0.6.0

func StepEphemeralStorage(val string) ResourceListOp

StepEphemeralStorage sets the ephemeral storage resource on the ResourceList.

func StepMemory added in v0.6.0

func StepMemory(val string) ResourceListOp

StepMemory sets the memory resource on the ResourceList.

type ResourceRequirementsOp added in v0.3.0

type ResourceRequirementsOp func(*corev1.ResourceRequirements)

ResourceRequirementsOp is an operation which modifies a ResourceRequirements struct.

func Limits added in v0.3.0

Limits adds Limits to the ResourceRequirements.

func Requests added in v0.3.0

func Requests(ops ...ResourceListOp) ResourceRequirementsOp

Requests adds Requests to the ResourceRequirements.

func StepLimits added in v0.6.0

func StepLimits(ops ...ResourceListOp) ResourceRequirementsOp

StepLimits adds Limits to the ResourceRequirements.

func StepRequests added in v0.6.0

func StepRequests(ops ...ResourceListOp) ResourceRequirementsOp

StepRequests adds Requests to the ResourceRequirements.

type StepOp added in v0.6.0

type StepOp func(*v1alpha1.Step)

StepOp is an operation which modifies a Container struct.

func StepArgs added in v0.6.0

func StepArgs(args ...string) StepOp

StepArgs sets the command arguments to the Container (step in this case).

func StepCommand added in v0.6.0

func StepCommand(args ...string) StepOp

StepCommand sets the command to the Container (step in this case).

func StepEnvVar added in v0.6.0

func StepEnvVar(name, value string) StepOp

StepEnvVar add an environment variable, with specified name and value, to the Container (step).

func StepResources added in v0.6.0

func StepResources(ops ...ResourceRequirementsOp) StepOp

StepResources adds ResourceRequirements to the Container (step).

func StepTerminationMessagePath added in v0.6.0

func StepTerminationMessagePath(terminationMessagePath string) StepOp

StepTerminationMessagePath sets the source of the termination message.

func StepTerminationMessagePolicy added in v0.6.0

func StepTerminationMessagePolicy(terminationMessagePolicy corev1.TerminationMessagePolicy) StepOp

StepTerminationMessagePolicy sets the policy of the termination message.

func StepVolumeMount added in v0.6.0

func StepVolumeMount(name, mountPath string, ops ...VolumeMountOp) StepOp

StepVolumeMount add a VolumeMount to the Container (step).

func StepWorkingDir added in v0.6.0

func StepWorkingDir(workingDir string) StepOp

StepWorkingDir sets the WorkingDir on the Container.

type StepStateOp

type StepStateOp func(*v1alpha1.StepState)

StepStateOp is an operation which modify a StepStep struct.

func StateTerminated

func StateTerminated(exitcode int) StepStateOp

StateTerminated set Terminated to the StepState.

type TaskOp

type TaskOp func(*v1alpha1.Task)

TaskOp is an operation which modify a Task struct.

func TaskSpec

func TaskSpec(ops ...TaskSpecOp) TaskOp

TaskSpec sets the specified spec of the task. Any number of TaskSpec modifier can be passed to create/modify it.

type TaskRefOp

type TaskRefOp func(*v1alpha1.TaskRef)

TaskRefOp is an operation which modify a TaskRef struct.

func TaskRefAPIVersion

func TaskRefAPIVersion(version string) TaskRefOp

TaskRefAPIVersion sets the specified api version to the TaskRef.

func TaskRefKind

func TaskRefKind(kind v1alpha1.TaskKind) TaskRefOp

TaskRefKind set the specified kind to the TaskRef.

type TaskResourceBindingOp

type TaskResourceBindingOp func(*v1alpha1.TaskResourceBinding)

TaskResourceBindingOp is an operation which modify a TaskResourceBinding struct.

func TaskResourceBindingPaths

func TaskResourceBindingPaths(paths ...string) TaskResourceBindingOp

TaskResourceBindingPaths add any number of path to the TaskResourceBinding.

func TaskResourceBindingRef

func TaskResourceBindingRef(name string) TaskResourceBindingOp

TaskResourceBindingRef set the PipelineResourceRef name to the TaskResourceBinding.

func TaskResourceBindingRefAPIVersion

func TaskResourceBindingRefAPIVersion(version string) TaskResourceBindingOp

TaskResourceBindingRefAPIVersion set the PipelineResourceRef APIVersion to the TaskResourceBinding.

func TaskResourceBindingResourceSpec

func TaskResourceBindingResourceSpec(spec *v1alpha1.PipelineResourceSpec) TaskResourceBindingOp

TaskResourceBindingResourceSpec set the PipelineResourceResourceSpec to the TaskResourceBinding.

type TaskResourceOp

type TaskResourceOp func(*v1alpha1.TaskResource)

TaskResourceOp is an operation which modify a TaskResource struct.

func ResourceTargetPath

func ResourceTargetPath(path string) TaskResourceOp

type TaskRunInputsOp

type TaskRunInputsOp func(*v1alpha1.TaskRunInputs)

TaskRunInputsOp is an operation which modify a TaskRunInputs struct.

func TaskRunInputsParam

func TaskRunInputsParam(name, value string, additionalValues ...string) TaskRunInputsOp

TaskRunInputsParam add a param, with specified name and value, to the TaskRunInputs.

func TaskRunInputsResource

func TaskRunInputsResource(name string, ops ...TaskResourceBindingOp) TaskRunInputsOp

TaskRunInputsResource adds a resource, with specified name, to the TaskRunInputs. Any number of TaskResourceBinding modifier can be passed to transform it.

type TaskRunOp

type TaskRunOp func(*v1alpha1.TaskRun)

TaskRunOp is an operation which modify a TaskRun struct.

func TaskRunAnnotation added in v0.4.0

func TaskRunAnnotation(key, value string) TaskRunOp

func TaskRunLabel

func TaskRunLabel(key, value string) TaskRunOp

func TaskRunOwnerReference

func TaskRunOwnerReference(kind, name string, ops ...OwnerReferenceOp) TaskRunOp

TaskRunOwnerReference sets the OwnerReference, with specified kind and name, to the TaskRun.

func TaskRunSelfLink(selflink string) TaskRunOp

TaskRunSelfLink adds a SelfLink

func TaskRunSpec

func TaskRunSpec(ops ...TaskRunSpecOp) TaskRunOp

TaskRunSpec sets the specified spec of the TaskRun. Any number of TaskRunSpec modifier can be passed to transform it.

func TaskRunStatus

func TaskRunStatus(ops ...TaskRunStatusOp) TaskRunOp

TaskRunStatus sets the TaskRunStatus to tshe TaskRun

type TaskRunOutputsOp

type TaskRunOutputsOp func(*v1alpha1.TaskRunOutputs)

TaskRunOutputsOp is an operation which modify a TaskRunOutputs struct.

func TaskRunOutputsResource

func TaskRunOutputsResource(name string, ops ...TaskResourceBindingOp) TaskRunOutputsOp

TaskRunOutputsResource adds a TaskResourceBinding, with specified name, to the TaskRunOutputs. Any number of TaskResourceBinding modifier can be passed to modifiy it.

type TaskRunSpecOp

type TaskRunSpecOp func(*v1alpha1.TaskRunSpec)

TaskRunSpecOp is an operation which modify a TaskRunSpec struct.

func TaskRunAffinity

func TaskRunAffinity(affinity *corev1.Affinity) TaskRunSpecOp

TaskRunAffinity sets the Affinity to the PipelineSpec.

func TaskRunInputs

func TaskRunInputs(ops ...TaskRunInputsOp) TaskRunSpecOp

TaskRunInputs sets inputs to the TaskRunSpec. Any number of TaskRunInputs modifier can be passed to transform it.

func TaskRunNodeSelector

func TaskRunNodeSelector(values map[string]string) TaskRunSpecOp

TaskRunNodeSelector sets the NodeSelector to the PipelineSpec.

func TaskRunOutputs

func TaskRunOutputs(ops ...TaskRunOutputsOp) TaskRunSpecOp

TaskRunOutputs sets inputs to the TaskRunSpec. Any number of TaskRunOutputs modifier can be passed to transform it.

func TaskRunServiceAccount

func TaskRunServiceAccount(sa string) TaskRunSpecOp

TaskRunServiceAccount sets the serviceAccount to the TaskRunSpec.

func TaskRunSpecStatus added in v0.5.0

func TaskRunSpecStatus(status v1alpha1.TaskRunSpecStatus) TaskRunSpecOp

TaskRunSpecStatus sets the Status in the Spec, used for operations such as cancelling executing TaskRuns.

func TaskRunTaskRef

func TaskRunTaskRef(name string, ops ...TaskRefOp) TaskRunSpecOp

TaskRunTaskRef sets the specified Task reference to the TaskRunSpec. Any number of TaskRef modifier can be passed to transform it.

func TaskRunTaskSpec

func TaskRunTaskSpec(ops ...TaskSpecOp) TaskRunSpecOp

TaskRunTaskSpec sets the specified TaskRunSpec reference to the TaskRunSpec. Any number of TaskRunSpec modifier can be passed to transform it.

func TaskRunTimeout

func TaskRunTimeout(d time.Duration) TaskRunSpecOp

TaskRunTimeout sets the timeout duration to the TaskRunSpec.

func TaskRunTolerations added in v0.3.0

func TaskRunTolerations(values []corev1.Toleration) TaskRunSpecOp

TaskRunTolerations sets the Tolerations to the PipelineSpec.

type TaskRunStatusOp

type TaskRunStatusOp func(*v1alpha1.TaskRunStatus)

TaskRunStatusOp is an operation which modify a TaskRunStatus struct.

func PodName

func PodName(name string) TaskRunStatusOp

PodName sets the Pod name to the TaskRunStatus.

func Retry added in v0.4.0

func StatusCondition added in v0.6.0

func StatusCondition(condition apis.Condition) TaskRunStatusOp

StatusCondition adds a StatusCondition to the TaskRunStatus.

func StepState

func StepState(ops ...StepStateOp) TaskRunStatusOp

StepState adds a StepState to the TaskRunStatus.

func TaskRunCloudEvent added in v0.7.0

func TaskRunCloudEvent(target, error string, retryCount int32, condition v1alpha1.CloudEventCondition) TaskRunStatusOp

TaskRunCloudEvent adds an event to the TaskRunStatus.

func TaskRunStartTime

func TaskRunStartTime(startTime time.Time) TaskRunStatusOp

TaskRunStartTime sets the start time to the TaskRunStatus.

type TaskSpecOp

type TaskSpecOp func(*v1alpha1.TaskSpec)

TaskSpeOp is an operation which modify a TaskSpec struct.

func Sidecar added in v0.7.0

func Sidecar(name, image string, ops ...ContainerOp) TaskSpecOp

func Step

func Step(name, image string, ops ...StepOp) TaskSpecOp

Step adds a step with the specified name and image to the TaskSpec. Any number of Container modifier can be passed to transform it.

func TaskInputs

func TaskInputs(ops ...InputsOp) TaskSpecOp

TaskInputs sets inputs to the TaskSpec. Any number of Inputs modifier can be passed to transform it.

func TaskOutputs

func TaskOutputs(ops ...OutputsOp) TaskSpecOp

TaskOutputs sets inputs to the TaskSpec. Any number of Outputs modifier can be passed to transform it.

func TaskStepTemplate added in v0.5.0

func TaskStepTemplate(ops ...ContainerOp) TaskSpecOp

TaskStepTemplate adds a base container for all steps in the task.

func TaskVolume

func TaskVolume(name string, ops ...VolumeOp) TaskSpecOp

TaskVolume adds a volume with specified name to the TaskSpec. Any number of Volume modifier can be passed to transform it.

type VolumeMountOp

type VolumeMountOp func(*corev1.VolumeMount)

VolumeMountOp is an operation which modifies a VolumeMount struct.

type VolumeOp

type VolumeOp func(*corev1.Volume)

VolumeOp is an operation which modify a Volume struct.

func VolumeSource

func VolumeSource(s corev1.VolumeSource) VolumeOp

VolumeSource sets the VolumeSource to the Volume.

Jump to

Keyboard shortcuts

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