v1alpha1

package
v0.0.0 Latest Latest
Warning

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

Go to latest
Published: Mar 16, 2020 License: Apache-2.0 Imports: 9 Imported by: 6

Documentation

Index

Constants

View Source
const (
	// QuarksJobResourceKind is the kind name of QuarksJob
	QuarksJobResourceKind = "QuarksJob"
	// QuarksJobResourcePlural is the plural name of QuarksJob
	QuarksJobResourcePlural = "quarksjobs"
)
View Source
const (
	// RemoteIDKey is the key for the ENV variable which is copied to the
	// output secrets label `LabelReferencedJobName`
	// This env can be set on each container, which is supposed to generate output.
	RemoteIDKey = "REMOTE_ID"

	// TriggerManual is the default for errand jobs, change to TriggerNow to run them
	TriggerManual Strategy = "manual"
	// TriggerNow instructs the controller to run the job now,
	// resets to TriggerManual after starting the job
	TriggerNow Strategy = "now"
	// TriggerOnce jobs run only once, when created, then switches to TriggerDone
	TriggerOnce Strategy = "once"
	// TriggerDone jobs are no longer triggered. It's the final state for TriggerOnce strategies
	TriggerDone Strategy = "done"

	// PersistOneToOne results in one secret per input file using the provided
	// name as the secret name
	PersistOneToOne PersistenceMethod = "one-to-one"

	// PersistUsingFanOut results in one secret per key/value pair found in the
	// provided input file and the name being used as a prefix for the secret
	PersistUsingFanOut PersistenceMethod = "fan-out"
)

Variables

View Source
var (

	// AddToScheme is used for schema registrations in the controller package
	// and also in the generated kube code
	AddToScheme = schemeBuilder.AddToScheme

	// QuarksJobResourceShortNames is the short names of QuarksJob
	QuarksJobResourceShortNames = []string{"qjob", "qjobs"}
	// QuarksJobValidation is the validation method for QuarksJob
	QuarksJobValidation = extv1.CustomResourceValidation{
		OpenAPIV3Schema: &extv1.JSONSchemaProps{
			Type: "object",
			Properties: map[string]extv1.JSONSchemaProps{
				"spec": {
					Type: "object",
					Properties: map[string]extv1.JSONSchemaProps{
						"output": {
							Type: "object",
							Properties: map[string]extv1.JSONSchemaProps{
								"outputMap": {
									Type:                   "object",
									XPreserveUnknownFields: pointers.Bool(true),
								},
								"outputType": {
									Type: "string",
								},
								"secretLabels": {
									Type:                   "object",
									XPreserveUnknownFields: pointers.Bool(true),
								},
								"writeOnFailure": {
									Type: "boolean",
								},
							},
							Required: []string{
								"outputMap",
							},
						},
						"trigger": {
							Type: "object",
							Properties: map[string]extv1.JSONSchemaProps{
								"strategy": {
									Type: "string",
									Enum: []extv1.JSON{
										{
											Raw: []byte(`"manual"`),
										},
										{
											Raw: []byte(`"once"`),
										},
										{
											Raw: []byte(`"now"`),
										},
										{
											Raw: []byte(`"done"`),
										},
									},
								},
							},
							Required: []string{
								"strategy",
							},
						},
						"template": {
							Type:                   "object",
							XPreserveUnknownFields: pointers.Bool(true),
						},
						"updateOnConfigChange": {
							Type: "boolean",
						},
					},
				},
				"status": {
					Type: "object",
					Properties: map[string]extv1.JSONSchemaProps{
						"lastReconcile": {
							Type: "string",
						},
					},
				},
			},
		},
	}

	// QuarksJobResourceName is the resource name of QuarksJob
	QuarksJobResourceName = fmt.Sprintf("%s.%s", QuarksJobResourcePlural, apis.GroupName)

	// SchemeGroupVersion is group version used to register these objects
	SchemeGroupVersion = schema.GroupVersion{Group: apis.GroupName, Version: "v1alpha1"}
)
View Source
var (
	// LabelPersistentSecretContainer is a label used for persisted secrets,
	// identifying the container that created them
	LabelPersistentSecretContainer = fmt.Sprintf("%s/container-name", apis.GroupName)

	// LabelRemoteID is a label for persisted secrets, identifying
	// the remote resource they belong to
	LabelRemoteID = fmt.Sprintf("%s/remote-id", apis.GroupName)

	// LabelQJobName key for label on a batchv1.Job's pod, which is set to the QuarksJob's name
	LabelQJobName = fmt.Sprintf("%s/qjob-name", apis.GroupName)
	// LabelTriggeringPod key for label, which is set to the UID of the pod that triggered an QuarksJob
	LabelTriggeringPod = fmt.Sprintf("%s/triggering-pod", apis.GroupName)

	// LabelEntanglementKey to identify a quarks link
	LabelEntanglementKey = fmt.Sprintf("%s/entanglement", apis.GroupName)
)

Functions

func Kind

func Kind(kind string) schema.GroupKind

Kind takes an unqualified kind and returns back a Group qualified GroupKind

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type FilesToSecrets

type FilesToSecrets map[string]SecretOptions

FilesToSecrets maps file names to secret names

func NewFileToSecret

func NewFileToSecret(fileName string, secretName string, versioned bool) FilesToSecrets

NewFileToSecret returns a FilesToSecrets with just one mapping

func NewFileToSecrets

func NewFileToSecrets(fileName string, secretName string, versioned bool) FilesToSecrets

NewFileToSecrets uses a fan out style and creates one secret per key/value pair in the given input file

func (FilesToSecrets) DeepCopy

func (in FilesToSecrets) DeepCopy() FilesToSecrets

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

func (FilesToSecrets) DeepCopyInto

func (in FilesToSecrets) DeepCopyInto(out *FilesToSecrets)

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

func (FilesToSecrets) PrefixedPaths

func (f FilesToSecrets) PrefixedPaths(prefix string) []string

PrefixedPaths retuns all output file names, prefixed with the `prefix`

type Output

type Output struct {
	// OutputMap allows for for additional output files per container.
	// Each filename maps to a set of options.
	OutputMap OutputMap `json:"outputMap"`

	// OutputType only JSON is supported for now
	OutputType string `json:"outputType,omitempty"`

	// SecretLabels are copied onto the newly created secrets
	SecretLabels   map[string]string `json:"secretLabels,omitempty"`
	WriteOnFailure bool              `json:"writeOnFailure,omitempty"`
}

Output contains options to persist job output to secrets

func (*Output) DeepCopy

func (in *Output) DeepCopy() *Output

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

func (*Output) DeepCopyInto

func (in *Output) DeepCopyInto(out *Output)

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

type OutputMap

type OutputMap map[string]FilesToSecrets

OutputMap has FilesToSecrets mappings for every container

func (OutputMap) DeepCopy

func (in OutputMap) DeepCopy() OutputMap

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

func (OutputMap) DeepCopyInto

func (in OutputMap) DeepCopyInto(out *OutputMap)

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

type PersistenceMethod

type PersistenceMethod string

PersistenceMethod describes the secret persistence implemention style

type QuarksJob

type QuarksJob struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   QuarksJobSpec   `json:"spec,omitempty"`
	Status QuarksJobStatus `json:"status,omitempty"`
}

QuarksJob is the Schema for the QuarksJobs API +k8s:openapi-gen=true

func (*QuarksJob) DeepCopy

func (in *QuarksJob) DeepCopy() *QuarksJob

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

func (*QuarksJob) DeepCopyInto

func (in *QuarksJob) DeepCopyInto(out *QuarksJob)

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

func (*QuarksJob) DeepCopyObject

func (in *QuarksJob) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*QuarksJob) IsAutoErrand

func (q *QuarksJob) IsAutoErrand() bool

IsAutoErrand returns true if this quarks job is an auto errand

func (*QuarksJob) ToBeDeleted

func (q *QuarksJob) ToBeDeleted() bool

ToBeDeleted checks whether this QuarksJob has been marked for deletion

type QuarksJobList

type QuarksJobList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []QuarksJob `json:"items"`
}

QuarksJobList contains a list of QuarksJob

func (*QuarksJobList) DeepCopy

func (in *QuarksJobList) DeepCopy() *QuarksJobList

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

func (*QuarksJobList) DeepCopyInto

func (in *QuarksJobList) DeepCopyInto(out *QuarksJobList)

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

func (*QuarksJobList) DeepCopyObject

func (in *QuarksJobList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type QuarksJobSpec

type QuarksJobSpec struct {
	Output               *Output                 `json:"output,omitempty"`
	Trigger              Trigger                 `json:"trigger"`
	Template             batchv1.JobTemplateSpec `json:"template"`
	UpdateOnConfigChange bool                    `json:"updateOnConfigChange"`
}

QuarksJobSpec defines the desired state of QuarksJob

func (*QuarksJobSpec) DeepCopy

func (in *QuarksJobSpec) DeepCopy() *QuarksJobSpec

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

func (*QuarksJobSpec) DeepCopyInto

func (in *QuarksJobSpec) DeepCopyInto(out *QuarksJobSpec)

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

type QuarksJobStatus

type QuarksJobStatus struct {
	LastReconcile *metav1.Time `json:"lastReconcile"`
}

QuarksJobStatus defines the observed state of QuarksJob

func (*QuarksJobStatus) DeepCopy

func (in *QuarksJobStatus) DeepCopy() *QuarksJobStatus

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

func (*QuarksJobStatus) DeepCopyInto

func (in *QuarksJobStatus) DeepCopyInto(out *QuarksJobStatus)

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

type SecretOptions

type SecretOptions struct {
	Name                   string            `json:"name,omitempty"`
	AdditionalSecretLabels map[string]string `json:"secretLabels,omitempty"`
	Versioned              bool              `json:"versioned,omitempty"`
	PersistenceMethod      PersistenceMethod `json:"persistencemethod,omitempty"`
}

SecretOptions specify the name of the output secret and if it's versioned

func (*SecretOptions) DeepCopy

func (in *SecretOptions) DeepCopy() *SecretOptions

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

func (*SecretOptions) DeepCopyInto

func (in *SecretOptions) DeepCopyInto(out *SecretOptions)

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

func (SecretOptions) FanOutName

func (so SecretOptions) FanOutName(key string) string

type Strategy

type Strategy string

Strategy describes the trigger strategy

type Trigger

type Trigger struct {
	Strategy Strategy `json:"strategy"`
}

Trigger decides how to trigger the QuarksJob

func (*Trigger) DeepCopy

func (in *Trigger) DeepCopy() *Trigger

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

func (*Trigger) DeepCopyInto

func (in *Trigger) DeepCopyInto(out *Trigger)

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

Jump to

Keyboard shortcuts

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