v1alpha1

package
v3.5.0 Latest Latest
Warning

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

Go to latest
Published: Dec 7, 2021 License: MIT Imports: 23 Imported by: 0

README

Workloads

This package contains the CRDs and webhooks for Consoles and Default priority classes.

Consoles

See Consoles controller documentation.

Default Priority Classes

Priority classes can be really useful to separate critical from optional workloads. It's normal for all workloads within a particular namespace to have the same priority class, but it's not possible to set a default on a namespace.

This package implements a webhook that permits setting a default priority class for a given namespace. By applying the label theatre-priority-injector: <priority-class-name> onto your namespace, you'll activate the webhook for all pods.

If a pod already has a priority class, it will be ignored. Otherwise the pods priority is set to match that of the namespace label.

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the workloads v1alpha1 API group +kubebuilder:object:generate=true +groupName=workloads.crd.gocardless.com

Index

Constants

View Source
const (
	PriorityInjectorFQDN = "priority-injector.workloads.crd.gocardless.com"
	NamespaceLabel       = "theatre-priority-injector"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "workloads.crd.gocardless.com", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

func CommonEventFromConsole added in v3.4.0

func CommonEventFromConsole(ctx string, eventKind events.EventKind, csl *Console) events.CommonEvent

func NewPriorityInjector

func NewPriorityInjector(c client.Client, logger logr.Logger) *priorityInjector

Types

type Console

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

	Spec   ConsoleSpec   `json:"spec,omitempty"`
	Status ConsoleStatus `json:"status,omitempty"`
}

Console declares an instance of a console environment to be created by a specific user +kubebuilder:printcolumn:name="User",type="string",JSONPath=".spec.user" +kubebuilder:printcolumn:name="Phase",type="string",JSONPath=".status.phase" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:printcolumn:name="Expiry",type="string",JSONPath=".status.expiryTime"

func (*Console) Creating

func (c *Console) Creating() bool

Creating returns true if the console has no status (the console has just been created)

func (*Console) DeepCopy

func (in *Console) DeepCopy() *Console

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

func (*Console) DeepCopyInto

func (in *Console) DeepCopyInto(out *Console)

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

func (*Console) DeepCopyObject

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

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

func (*Console) Destroyed

func (c *Console) Destroyed() bool

Destroyed returns true if the console is Destroyed

func (*Console) EligibleForGC

func (c *Console) EligibleForGC() bool

EligibleForGC returns whether a console can be garbage collected

func (*Console) GetGCTime

func (c *Console) GetGCTime() *time.Time

GetGCTime returns time time at which a console can be garbage collected, or nil if it cannot be.

This will be the case if: - TTLSecondsBeforeRunning has elapsed and the console hasn't progressed to running - TTLSecondsAfterFinished has elapsed and the console is stopped or destroyed

func (*Console) Pending

func (c *Console) Pending() bool

Pending returns true if the console is Pending

func (*Console) PendingAuthorisation

func (c *Console) PendingAuthorisation() bool

PendingAuthorisation returns true if the is Pending Authorisation

func (*Console) PendingJob

func (c *Console) PendingJob() bool

PendingJob returns true if the console is in a phase that occurs before job creation

func (*Console) PostRunning

func (c *Console) PostRunning() bool

PostRunning returns true if the console is in a phase after Running

func (*Console) PreRunning

func (c *Console) PreRunning() bool

PreRunning returns true if the console is in a phase before Running

func (*Console) Running

func (c *Console) Running() bool

Running returns true if the console is Running

func (*Console) Stopped

func (c *Console) Stopped() bool

Stopped returns true if the console is Stopped

func (*Console) TTLSecondsAfterFinished

func (c *Console) TTLSecondsAfterFinished() time.Duration

TTLSecondsAfterFinished returns the console's after finished TTL as a time.Duration

func (*Console) TTLSecondsBeforeRunning

func (c *Console) TTLSecondsBeforeRunning() time.Duration

TTLSecondsBeforeRunning returns the console's before running TTL as a time.Duration

type ConsoleAttachObserverWebhook added in v3.2.1

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

+kubebuilder:object:generate=false

func NewConsoleAttachObserverWebhook added in v3.2.1

func NewConsoleAttachObserverWebhook(c client.Client, recorder record.EventRecorder, lifecycleRecorder LifecycleEventRecorder, logger logr.Logger, requestTimeout time.Duration) *ConsoleAttachObserverWebhook

func (*ConsoleAttachObserverWebhook) Handle added in v3.2.1

func (*ConsoleAttachObserverWebhook) InjectDecoder added in v3.2.1

func (c *ConsoleAttachObserverWebhook) InjectDecoder(d *admission.Decoder) error

type ConsoleAuthenticatorWebhook

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

+kubebuilder:object:generate=false

func NewConsoleAuthenticatorWebhook

func NewConsoleAuthenticatorWebhook(lifecycleRecorder LifecycleEventRecorder, logger logr.Logger) *ConsoleAuthenticatorWebhook

func (*ConsoleAuthenticatorWebhook) Handle

func (*ConsoleAuthenticatorWebhook) InjectDecoder

func (c *ConsoleAuthenticatorWebhook) InjectDecoder(d *admission.Decoder) error

type ConsoleAuthorisation

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

	Spec   ConsoleAuthorisationSpec   `json:"spec,omitempty"`
	Status ConsoleAuthorisationStatus `json:"status,omitempty"`
}

ConsoleAuthorisation is the Schema for the consoleauthorisations API

func (*ConsoleAuthorisation) DeepCopy

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

func (*ConsoleAuthorisation) DeepCopyInto

func (in *ConsoleAuthorisation) DeepCopyInto(out *ConsoleAuthorisation)

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

func (*ConsoleAuthorisation) DeepCopyObject

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

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

type ConsoleAuthorisationList

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

ConsoleAuthorisationList contains a list of ConsoleAuthorisation

func (*ConsoleAuthorisationList) DeepCopy

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

func (*ConsoleAuthorisationList) DeepCopyInto

func (in *ConsoleAuthorisationList) DeepCopyInto(out *ConsoleAuthorisationList)

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

func (*ConsoleAuthorisationList) DeepCopyObject

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

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

type ConsoleAuthorisationRule

type ConsoleAuthorisationRule struct {
	// Human readable name of authorisation rule added to logs for auditing.
	Name string `json:"name"`

	// The matching rule to compare to the command and arguments of the console.
	//
	// This uses basic wildcard matching: Each element of the array is evaluated
	// against the corresponding element of the console's `spec.command` field.
	// An element consisting of a single `*` character will assert on the
	// presence of an element, but will allow any contents.
	// An element consisting of `**`, at the end of the match array, will match 0
	// or more additional elements in the command, but can only be used at the
	// end of the rule.
	//
	// Pattern matching _within_ elements is deliberately not supported, as this
	// makes it much harder to construct rules which are secure and do not allow chaining of additional commands (e.g. in a shell context).
	//
	// +kubebuilder:validation:MinItems=1
	MatchCommandElements []string `json:"matchCommandElements"`

	ConsoleAuthorisers `json:",inline"`
}

ConsoleAuthorisationRule declares rules specifying what commands need to be authorised and by whom.

func (*ConsoleAuthorisationRule) DeepCopy

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

func (*ConsoleAuthorisationRule) DeepCopyInto

func (in *ConsoleAuthorisationRule) DeepCopyInto(out *ConsoleAuthorisationRule)

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

type ConsoleAuthorisationSpec

type ConsoleAuthorisationSpec struct {
	// The reference to the console by name that this console authorisation belongs to.
	ConsoleRef corev1.LocalObjectReference `json:"consoleRef"`

	// List of authorisations that have been given to the referenced console.
	Authorisations []rbacv1.Subject `json:"authorisations"`
}

ConsoleAuthorisationSpec defines the desired state of ConsoleAuthorisation

func (*ConsoleAuthorisationSpec) DeepCopy

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

func (*ConsoleAuthorisationSpec) DeepCopyInto

func (in *ConsoleAuthorisationSpec) DeepCopyInto(out *ConsoleAuthorisationSpec)

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

type ConsoleAuthorisationStatus

type ConsoleAuthorisationStatus struct{}

ConsoleAuthorisationStatus defines the observed state of ConsoleAuthorisation

func (*ConsoleAuthorisationStatus) DeepCopy

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

func (*ConsoleAuthorisationStatus) DeepCopyInto

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

type ConsoleAuthorisationUpdate

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

func (*ConsoleAuthorisationUpdate) DeepCopy

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

func (*ConsoleAuthorisationUpdate) DeepCopyInto

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

func (*ConsoleAuthorisationUpdate) Validate

func (u *ConsoleAuthorisationUpdate) Validate() error

type ConsoleAuthorisationWebhook

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

+kubebuilder:object:generate=false

func NewConsoleAuthorisationWebhook

func NewConsoleAuthorisationWebhook(c client.Client, lifecycleRecorder LifecycleEventRecorder, logger logr.Logger) *ConsoleAuthorisationWebhook

func (*ConsoleAuthorisationWebhook) Handle

func (*ConsoleAuthorisationWebhook) InjectDecoder

func (c *ConsoleAuthorisationWebhook) InjectDecoder(d *admission.Decoder) error

type ConsoleAuthorisers

type ConsoleAuthorisers struct {
	// The number of authorisations required from members of the subjects before the console can run.
	AuthorisationsRequired int `json:"authorisationsRequired"`

	// List of subjects that can provide authorisation for the console command to run.
	Subjects []rbacv1.Subject `json:"subjects"`
}

ConsoleAuthorisers declares the subjects required to perform authorisations.

func (*ConsoleAuthorisers) DeepCopy

func (in *ConsoleAuthorisers) DeepCopy() *ConsoleAuthorisers

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

func (*ConsoleAuthorisers) DeepCopyInto

func (in *ConsoleAuthorisers) DeepCopyInto(out *ConsoleAuthorisers)

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

type ConsoleList

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

ConsoleList contains a list of Console

func (*ConsoleList) DeepCopy

func (in *ConsoleList) DeepCopy() *ConsoleList

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

func (*ConsoleList) DeepCopyInto

func (in *ConsoleList) DeepCopyInto(out *ConsoleList)

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

func (*ConsoleList) DeepCopyObject

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

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

type ConsolePhase

type ConsolePhase string
const (
	// ConsolePendingAuthorisation means the console been created but it is not yet authorised to run
	ConsolePendingAuthorisation ConsolePhase = "Pending Authorisation"
	// ConsolePending means the console has been created but its pod is not yet ready
	ConsolePending ConsolePhase = "Pending"
	// ConsoleRunning means the pod has started and is running
	ConsoleRunning ConsolePhase = "Running"
	// ConsoleStopped means the console has completed or timed out
	ConsoleStopped ConsolePhase = "Stopped"
	// ConsoleDestroyed means the consoles job has been deleted
	ConsoleDestroyed ConsolePhase = "Destroyed"
)

These are valid phases for a console

type ConsoleSpec

type ConsoleSpec struct {
	User   string `json:"user"`
	Reason string `json:"reason"`

	// Number of seconds that the console should run for.
	// If the process running within the console has not exited before this
	// timeout is reached, then the console will be terminated.
	// If this value exceeds the Maximum Timeout Seconds specified in the
	// ConsoleTemplate that this console refers to, then this timeout will be
	// clamped to that value.
	// Maximum value of 1 week (as per ConsoleTemplate.Spec.MaxTimeoutSeconds).
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=604800
	TimeoutSeconds int `json:"timeoutSeconds,omitempty"`

	ConsoleTemplateRef corev1.LocalObjectReference `json:"consoleTemplateRef"`

	// Specifies the TTL before running for this Console. The Console will be
	// eligible for garbage collection TTLSecondsBeforeRunning seconds if it has
	// not progressed to the Running phase. This field is modeled on the TTL
	// mechanism in Kubernetes 1.12.
	// +optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=86400
	TTLSecondsBeforeRunning *int32 `json:"ttlSecondsBeforeRunning,omitempty"`

	// Specifies the TTL for this Console. The Console will be eligible for
	// garbage collection TTLSecondsAfterFinished seconds after it enters the
	// Stopped or Destroyed phase. This field is modeled on the TTL mechanism in
	// Kubernetes 1.12.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=604800
	// +optional
	TTLSecondsAfterFinished *int32 `json:"ttlSecondsAfterFinished,omitempty"`

	// The command and arguments to execute. If not specified the command from
	// the template specification will be used.
	Command []string `json:"command,omitempty"`

	// Disable TTY and STDIN on the underlying container. This should usually
	// be set to false so clients can attach interactively; however, in certain
	// situations, enabling the TTY on a container in the console causes
	// breakage - in Tekton steps, for example.
	Noninteractive bool `json:"noninteractive,omitempty"`
}

ConsoleSpec defines the desired state of Console

func (*ConsoleSpec) DeepCopy

func (in *ConsoleSpec) DeepCopy() *ConsoleSpec

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

func (*ConsoleSpec) DeepCopyInto

func (in *ConsoleSpec) DeepCopyInto(out *ConsoleSpec)

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

type ConsoleStatus

type ConsoleStatus struct {
	PodName    string       `json:"podName"`
	ExpiryTime *metav1.Time `json:"expiryTime,omitempty"`
	// Time at which the job completed successfully
	CompletionTime *metav1.Time `json:"completionTime,omitempty"`
	Phase          ConsolePhase `json:"phase"`
}

ConsoleStatus defines the observed state of Console

func (*ConsoleStatus) DeepCopy

func (in *ConsoleStatus) DeepCopy() *ConsoleStatus

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

func (*ConsoleStatus) DeepCopyInto

func (in *ConsoleStatus) DeepCopyInto(out *ConsoleStatus)

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

type ConsoleTemplate

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

	Spec   ConsoleTemplateSpec   `json:"spec,omitempty"`
	Status ConsoleTemplateStatus `json:"status,omitempty"`
}

ConsoleTemplate is the Schema for the consoletemplates API

func (*ConsoleTemplate) DeepCopy

func (in *ConsoleTemplate) DeepCopy() *ConsoleTemplate

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

func (*ConsoleTemplate) DeepCopyInto

func (in *ConsoleTemplate) DeepCopyInto(out *ConsoleTemplate)

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

func (*ConsoleTemplate) DeepCopyObject

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

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

func (*ConsoleTemplate) GetAuthorisationRuleForCommand

func (ct *ConsoleTemplate) GetAuthorisationRuleForCommand(command []string) (ConsoleAuthorisationRule, error)

GetAuthorisationRuleForCommand returns an authorisation rule that matches the command that a console is being started with, or an error if one does not exist.

It does this by iterating through the console template's authorisation rules list until it finds a match, and then falls back to the default authorisation rule if one is defined.

The `matchCommandElements` field, within an AuthorisationRule, is an array of matchers, of which there are 3 supported types:

  1. `*` - a wildcard that matches the presence of an element.
  2. `**` - a wildcard that matches any number (including 0) of elements. This can only be used at the end of the array.
  3. Any other string of characters, this is used to perform an exact string match against the current element.

The elements of the command array are evaluated in order; any failure to match will result in falling back to the next rule.

Examples:

| Matcher | Command | Matches? | | --------------------- | -------------------------------- | -------- | | ["bash"] | ["bash"] | Yes | | ["ls", "*"] | ["ls"] | No | | ["ls", "*"] | ["ls", "file"] | Yes | | ["ls", "*", "file2"] | ["ls", "file", "file3", "file2"] | No | | ["ls", "*", "file2"] | ["ls", "file", "file2"] | Yes | | ["echo", "**"] | ["echo"] | Yes | | ["echo", "**"] | ["echo", "hello"] | Yes | | ["echo", "**"] | ["echo", "hi", "bye" ] | Yes | | ["echo", "**", "bye"] | ["echo", "hi", "bye" ] | Error |

func (*ConsoleTemplate) GetDefaultCommandWithArgs

func (ct *ConsoleTemplate) GetDefaultCommandWithArgs() ([]string, error)

GetDefaultCommandWithArgs returns a concatenated list of command and arguments, if defined on the template

func (*ConsoleTemplate) HasAuthorisationRules

func (ct *ConsoleTemplate) HasAuthorisationRules() bool

HasAuthorisationRules defines whether a console template has authorisation rules defined on it.

func (*ConsoleTemplate) Validate

func (ct *ConsoleTemplate) Validate() error

Validate checks the console template object for correctness and returns a list of errors.

type ConsoleTemplateList

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

ConsoleTemplateList contains a list of ConsoleTemplate

func (*ConsoleTemplateList) DeepCopy

func (in *ConsoleTemplateList) DeepCopy() *ConsoleTemplateList

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

func (*ConsoleTemplateList) DeepCopyInto

func (in *ConsoleTemplateList) DeepCopyInto(out *ConsoleTemplateList)

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

func (*ConsoleTemplateList) DeepCopyObject

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

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

type ConsoleTemplateSpec

type ConsoleTemplateSpec struct {
	Template PodTemplatePreserveMetadataSpec `json:"template"`

	// Default time, in seconds, that a Console will be created for.
	// Maximum value of 1 week (as per MaxTimeoutSeconds).
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=604800
	DefaultTimeoutSeconds int `json:"defaultTimeoutSeconds"`

	// Maximum time, in seconds, that a Console can be created for.
	// Maximum value of 1 week.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=604800
	MaxTimeoutSeconds        int              `json:"maxTimeoutSeconds"`
	AdditionalAttachSubjects []rbacv1.Subject `json:"additionalAttachSubjects,omitempty"`

	// Specifies the TTL before running for any Console created with this
	// template. If set, the Console will be eligible for garbage collection
	// TTLSecondsBeforeRunning seconds if it has not progressed to the Running
	// phase. If not set, this value defaults to 60 minutes. This field is
	// modeled on the TTL mechanism in Kubernetes 1.12.
	// +optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=86400
	DefaultTTLSecondsBeforeRunning *int32 `json:"defaultTtlSecondsBeforeRunning,omitempty"`

	// Specifies the TTL for any Console created with this template. If set, the
	// Console will be eligible for garbage collection
	// DefaultTTLSecondsAfterFinished seconds after it enters the Stopped or
	// Destroyed phase. If not set, this value defaults to 24 hours. This field
	// is modeled closely on the TTL mechanism in Kubernetes 1.12.
	// +optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=604800
	DefaultTTLSecondsAfterFinished *int32 `json:"defaultTtlSecondsAfterFinished,omitempty"`

	// List of authorisation rules to match against in order from top to bottom.
	// +optional
	AuthorisationRules []ConsoleAuthorisationRule `json:"authorisationRules,omitempty"`
	// Default authorisation rule to use if no authorisation rules are defined or no authorisation rules match.
	// +optional
	DefaultAuthorisationRule *ConsoleAuthorisers `json:"defaultAuthorisationRule,omitempty"`
}

ConsoleTemplateSpec defines the desired state of ConsoleTemplate

func (*ConsoleTemplateSpec) DeepCopy

func (in *ConsoleTemplateSpec) DeepCopy() *ConsoleTemplateSpec

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

func (*ConsoleTemplateSpec) DeepCopyInto

func (in *ConsoleTemplateSpec) DeepCopyInto(out *ConsoleTemplateSpec)

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

type ConsoleTemplateStatus

type ConsoleTemplateStatus struct{}

ConsoleTemplateStatus defines the observed state of ConsoleTemplate

func (*ConsoleTemplateStatus) DeepCopy

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

func (*ConsoleTemplateStatus) DeepCopyInto

func (in *ConsoleTemplateStatus) DeepCopyInto(out *ConsoleTemplateStatus)

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

type ConsoleTemplateValidationWebhook

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

+kubebuilder:object:generate=false

func NewConsoleTemplateValidationWebhook

func NewConsoleTemplateValidationWebhook(logger logr.Logger) *ConsoleTemplateValidationWebhook

func (*ConsoleTemplateValidationWebhook) Handle

func (*ConsoleTemplateValidationWebhook) InjectDecoder

type LifecycleEventRecorder added in v3.4.0

type LifecycleEventRecorder interface {
	ConsoleRequest(context.Context, *Console, *ConsoleAuthorisationRule) error
	ConsoleAuthorise(context.Context, *Console, string) error
	ConsoleStart(context.Context, *Console, string) error
	ConsoleAttach(context.Context, *Console, string, string) error
	ConsoleTerminate(context.Context, *Console, bool) error
}

+kubebuilder:object:generate=false

func NewLifecycleEventRecorder added in v3.4.0

func NewLifecycleEventRecorder(contextName string, logger logr.Logger, publisher events.Publisher) LifecycleEventRecorder

type PodTemplatePreserveMetadataSpec

type PodTemplatePreserveMetadataSpec struct {
	// +kubebuilder:pruning:PreserveUnknownFields
	// Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	Spec corev1.PodSpec `json:"spec,omitempty"`
}

PodTemplatePreserveMetadataSpec describes the data a pod should have when created from a template

func (*PodTemplatePreserveMetadataSpec) DeepCopy

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

func (*PodTemplatePreserveMetadataSpec) DeepCopyInto

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