v1

package
v0.22.5 Latest Latest
Warning

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

Go to latest
Published: Feb 13, 2026 License: MIT Imports: 49 Imported by: 0

Documentation

Overview

Package v1 contains API Schema definitions for the usvc-dev v1 API group +kubebuilder:object:generate=true +groupName=usvc-dev.developer.microsoft.com

Index

Constants

View Source
const LogSubresourceName = "log"

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "usvc-dev.developer.microsoft.com", Version: "v1"}

	// 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

	// Track the resources that need to be automatically cleaned up at shutdown
	CleanupResources = []*CleanupResource{
		{
			GVR: (&ContainerExec{}).GetGroupVersionResource(),
		},
		{
			GVR: (&ExecutableReplicaSet{}).GetGroupVersionResource(),
		},
		{
			GVR: (&Service{}).GetGroupVersionResource(),
		},
		{
			GVR: (&Container{}).GetGroupVersionResource(),
			CleanUpAfter: []schema.GroupVersionResource{
				(&ContainerExec{}).GetGroupVersionResource(),
			},
		},
		{
			GVR:          (&Executable{}).GetGroupVersionResource(),
			CleanUpAfter: []schema.GroupVersionResource{(&ExecutableReplicaSet{}).GetGroupVersionResource()},
		},
		{
			GVR: (&ContainerNetworkConnection{}).GetGroupVersionResource(),
			CleanUpAfter: []schema.GroupVersionResource{
				(&Container{}).GetGroupVersionResource(),
			},
		},
		{
			GVR: (&ContainerNetwork{}).GetGroupVersionResource(),
			CleanUpAfter: []schema.GroupVersionResource{
				(&Container{}).GetGroupVersionResource(),
				(&ContainerNetworkConnection{}).GetGroupVersionResource(),
				(&ContainerNetworkTunnelProxy{}).GetGroupVersionResource(),
			},
		},
		{
			GVR: (&ContainerVolume{}).GetGroupVersionResource(),
			CleanUpAfter: []schema.GroupVersionResource{
				(&Container{}).GetGroupVersionResource(),
			},
		},
		{
			GVR: (&ContainerNetworkTunnelProxy{}).GetGroupVersionResource(),
		},
	}

	// A registry of resource log streaming implementations
	ResourceLogStreamers = &syncmap.Map[schema.GroupVersionResource, ResourceLogStreamer]{}

	// Whether new resource creation is prohibited (because the API server is shutting down)
	ResourceCreationProhibited = &atomic.Bool{}

	// Types that have data stored in the API server.
	PersistentTypes = []apiserver_resource.Object{
		&Executable{},
		&Endpoint{},
		&ExecutableReplicaSet{},
		&Container{},
		&ContainerVolume{},
		&ContainerNetwork{},
		&ContainerNetworkConnection{},
		&ContainerExec{},
		&Service{},
		&ContainerNetworkTunnelProxy{},
	}

	// Types that must be recognizable by the API server, but are not persisted
	// (they are used for request processing only).
	AddtionalTypes = []apiserver_resource.Object{
		&LogOptions{},
		&LogStreamer{},
	}
)
View Source
var UnknownExitCode *int32 = nil

A valid exit code of a process is a non-negative number. We use UnknownExitCode to indicate that we have not obtained the exit code yet.

View Source
var UnknownPID *int64 = nil

Unknown PID code is used when replica is not started (or fails to start)

Functions

func RegisterLogOptionsConversions

func RegisterLogOptionsConversions(scheme *runtime.Scheme) error

func UrlValuesToLogOptions

func UrlValuesToLogOptions(in *url.Values, out *LogOptions, cscope conversion.Scope) error

Normally we would use conversion-gen code generator to generate conversion functions, but for some reason this generator is not finding the DeepCopyObject() implementation for this type and is failing. Probably a bug. As a workaround we will implement the conversion functions manually. We might try harder to use the code generator if we end up having more type conversions (e.g. if we support multiple schema versions for DCP).

Types

type AddressAllocationMode

type AddressAllocationMode string
const (
	// Bind to localhost (default)
	AddressAllocationModeLocalhost AddressAllocationMode = "Localhost"

	// Bind only to 127.0.0.1
	AddressAllocationModeIPv4ZeroOne AddressAllocationMode = "IPv4ZeroOne"

	// Bind to a random 127.*.*.* loopback address
	AddressAllocationModeIPv4Loopback AddressAllocationMode = "IPv4Loopback"

	// Bind only to ::1
	AddressAllocationModeIPv6ZeroOne AddressAllocationMode = "IPv6ZeroOne"

	// Bind to all interfaces (including localhost/loopback addresses).
	// DCP will bind to either IPv4 or IPv6 depending on configuration and available
	// interfaces, but not both.
	AddressAllocationModeAllInterfaces AddressAllocationMode = "AllInterfaces"

	// Bind to all IPv4 interfaces (0.0.0.0).
	AddressAllocationModeIPv4AllInterfaces AddressAllocationMode = "IPv4AllInterfaces"

	// Bind to all IPv6 interfaces (::).
	AddressAllocationModeIPv6AllInterfaces AddressAllocationMode = "IPv6AllInterfaces"

	// Don't use a proxy--the service will have the same address and port as the first endpoint
	AddressAllocationModeProxyless AddressAllocationMode = "Proxyless"
)

type AmbientEnvironment

type AmbientEnvironment struct {
	// How environment variables should be inherited from the controller process.
	// +kubebuilder:default:=Inherit
	Behavior EnvironmentBehavior `json:"behavior,omitempty"`
}

+k8s:openapi-gen=true

func (*AmbientEnvironment) DeepCopy

func (in *AmbientEnvironment) DeepCopy() *AmbientEnvironment

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

func (*AmbientEnvironment) DeepCopyInto

func (in *AmbientEnvironment) DeepCopyInto(out *AmbientEnvironment)

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

type BuildSecretType

type BuildSecretType string
const (
	EnvSecret  BuildSecretType = "env"
	FileSecret BuildSecretType = "file"
)

type CleanupResource

type CleanupResource struct {
	GVR schema.GroupVersionResource

	// Specifies what other resource kinds need to be cleaned up first before the given resource can be cleaned up.
	CleanUpAfter []schema.GroupVersionResource
}

+k8s:deepcopy-gen=false

type Container

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

	Spec   ContainerSpec   `json:"spec,omitempty"`
	Status ContainerStatus `json:"status,omitempty"`
}

Container resource represents a container run using an orchestrator such as Docker or Podman +kubebuilder:object:root=true +kubebuilder:subresource:status +k8s:openapi-gen=true +kubebuilder:resource:scope=Cluster

func (*Container) DeepCopy

func (in *Container) DeepCopy() *Container

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

func (*Container) DeepCopyInto

func (in *Container) DeepCopyInto(out *Container)

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

func (*Container) DeepCopyObject

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

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

func (*Container) Done

func (c *Container) Done() bool

True if the Container is in a terminal state.

func (*Container) GenericSubResources

func (*Container) GenericSubResources() []apiserver_resource.GenericSubResource

func (*Container) GetGroupVersionResource

func (c *Container) GetGroupVersionResource() schema.GroupVersionResource

func (*Container) GetObjectMeta

func (c *Container) GetObjectMeta() *metav1.ObjectMeta

func (*Container) GetResourceId

func (c *Container) GetResourceId() string

func (*Container) GetStatus

func (*Container) IsStorageVersion

func (_ *Container) IsStorageVersion() bool

func (*Container) NamespaceScoped

func (_ *Container) NamespaceScoped() bool

func (*Container) NamespacedName

func (c *Container) NamespacedName() types.NamespacedName

func (*Container) New

func (_ *Container) New() runtime.Object

func (*Container) NewList

func (_ *Container) NewList() runtime.Object

func (*Container) ShortNames

func (_ *Container) ShortNames() []string

func (*Container) ShouldStart

func (c *Container) ShouldStart() bool

func (*Container) SpecifiedImageNameOrDefault

func (c *Container) SpecifiedImageNameOrDefault() string

func (*Container) Validate

func (c *Container) Validate(ctx context.Context) field.ErrorList

func (*Container) ValidateUpdate

func (c *Container) ValidateUpdate(ctx context.Context, obj runtime.Object) field.ErrorList

type ContainerBuildContext

type ContainerBuildContext struct {
	// The path to the directory to be used as the root of the build context
	Context string `json:"context"`

	// The path to a Dockerfile to use for the build
	Dockerfile string `json:"dockerfile,omitempty"`

	// Additional tags to apply to the image
	// +listType=set
	Tags []string `json:"tags,omitempty"`

	// Additional --build-arg values to pass to the build command
	// +listType=atomic
	Args []EnvVar `json:"args,omitempty"`

	// Build time secrets to be passed in to the builder via --secret
	// +listType=atomic
	Secrets []ContainerBuildSecret `json:"secrets,omitempty"`

	// Optional: The name of the build stage to use for the build
	Stage string `json:"stage,omitempty"`

	// Labels to apply to the built image
	// +listType=map
	// +listMapKey=key
	Labels []ContainerLabel `json:"labels,omitempty"`
}

+k8s:openapi-gen=true

func (*ContainerBuildContext) DeepCopy

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

func (*ContainerBuildContext) DeepCopyInto

func (in *ContainerBuildContext) DeepCopyInto(out *ContainerBuildContext)

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

func (*ContainerBuildContext) Equal

Equivalence check for ContainerBuildContext for use in validation

type ContainerBuildSecret

type ContainerBuildSecret struct {
	// The type of secret (defaults to file)
	Type BuildSecretType `json:"type,omitempty"`

	// The ID of the secret
	ID string `json:"id"`

	// If type is file (or empty), the source filepath of the secret, if type is env, the environment variable name
	// Required for file secrets, optional for env secrets (defaults to the ID)
	Source string `json:"source,omitempty"`

	// Only used for "env" type secrets. If set, this value is applied via the configured environment variable
	// to the build command. If unset, it is assumed the environment secret comes from an ambient environment variables
	Value string `json:"value,omitempty"`
}

+k8s:openapi-gen=true

func (*ContainerBuildSecret) DeepCopy

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

func (*ContainerBuildSecret) DeepCopyInto

func (in *ContainerBuildSecret) DeepCopyInto(out *ContainerBuildSecret)

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

type ContainerExec

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

	Spec   ContainerExecSpec   `json:"spec,omitempty"`
	Status ContainerExecStatus `json:"status,omitempty"`
}

ContainerExec represents an exec command to run against a Container resource +kubebuilder:object:root=true +kubebuilder:subresource:status +k8s:openapi-gen=true +kubebuilder:resource:scope=Cluster

func (*ContainerExec) DeepCopy

func (in *ContainerExec) DeepCopy() *ContainerExec

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

func (*ContainerExec) DeepCopyInto

func (in *ContainerExec) DeepCopyInto(out *ContainerExec)

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

func (*ContainerExec) DeepCopyObject

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

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

func (*ContainerExec) Done

func (ce *ContainerExec) Done() bool

Done implements StdOutStreamableResource.

func (*ContainerExec) GenericSubResources

func (*ContainerExec) GenericSubResources() []apiserver_resource.GenericSubResource

func (*ContainerExec) GetGroupVersionResource

func (ce *ContainerExec) GetGroupVersionResource() schema.GroupVersionResource

GetGroupVersionResource implements resource.Object.

func (*ContainerExec) GetObjectMeta

func (ce *ContainerExec) GetObjectMeta() *metav1.ObjectMeta

func (*ContainerExec) GetResourceId

func (ce *ContainerExec) GetResourceId() string

GetResourceId implements StdOutStreamableResource.

func (*ContainerExec) GetStatus

func (*ContainerExec) GetStdErrFile

func (ce *ContainerExec) GetStdErrFile() string

StdErrFile implements StdOutStreamableResource.

func (*ContainerExec) GetStdOutFile

func (ce *ContainerExec) GetStdOutFile() string

StdOutFile implements StdOutStreamableResource.

func (*ContainerExec) HasStdErr

func (ce *ContainerExec) HasStdErr() bool

HasStdErr implements StdOutStreamableResource.

func (*ContainerExec) HasStdOut

func (ce *ContainerExec) HasStdOut() bool

HasStdOut implements StdOutStreamableResource.

func (*ContainerExec) IsStorageVersion

func (ce *ContainerExec) IsStorageVersion() bool

func (*ContainerExec) NamespaceScoped

func (ce *ContainerExec) NamespaceScoped() bool

func (*ContainerExec) NamespacedName

func (ce *ContainerExec) NamespacedName() types.NamespacedName

func (*ContainerExec) New

func (ce *ContainerExec) New() runtime.Object

func (*ContainerExec) NewList

func (ce *ContainerExec) NewList() runtime.Object

func (*ContainerExec) ShortNames

func (ce *ContainerExec) ShortNames() []string

func (*ContainerExec) Validate

func (ce *ContainerExec) Validate(ctx context.Context) field.ErrorList

func (*ContainerExec) ValidateUpdate

func (ce *ContainerExec) ValidateUpdate(ctx context.Context, obj runtime.Object) field.ErrorList

type ContainerExecList

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

ContainerExecList contains a list of ContainerExec instances +k8s:openapi-gen=true +kubebuilder:object:root=true

func (*ContainerExecList) DeepCopy

func (in *ContainerExecList) DeepCopy() *ContainerExecList

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

func (*ContainerExecList) DeepCopyInto

func (in *ContainerExecList) DeepCopyInto(out *ContainerExecList)

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

func (*ContainerExecList) DeepCopyObject

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

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

func (*ContainerExecList) GetItems

func (cel *ContainerExecList) GetItems() []*ContainerExec

func (*ContainerExecList) GetListMeta

func (cel *ContainerExecList) GetListMeta() *metav1.ListMeta

func (*ContainerExecList) ItemCount

func (cel *ContainerExecList) ItemCount() uint32

type ContainerExecLogResource

type ContainerExecLogResource struct{}

func (*ContainerExecLogResource) DeepCopy

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

func (*ContainerExecLogResource) DeepCopyInto

func (in *ContainerExecLogResource) DeepCopyInto(out *ContainerExecLogResource)

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

func (*ContainerExecLogResource) GetStorageProvider

func (celr *ContainerExecLogResource) GetStorageProvider(
	obj apiserver_resource.Object,
	rootPath string,
	parentSP apiserver.StorageProvider,
) apiserver.StorageProvider

func (*ContainerExecLogResource) Name

func (celr *ContainerExecLogResource) Name() string

type ContainerExecSpec

type ContainerExecSpec struct {
	// The name of the Container resource to connect to
	ContainerName string `json:"containerName"`

	// Environment settings
	// +listType=map
	// +listMapKey=name
	Env []EnvVar `json:"env,omitempty"`

	// Environment files to use to populate the environment for the command
	// +listType=set
	EnvFiles []string `json:"envFiles,omitempty"`

	// Working directory in the container for the command
	WorkingDirectory string `json:"workingDirectory,omitempty"`

	// Command to run in the container
	Command string `json:"command"`

	// Arguments to pass to the command
	// +listType=atomic
	Args []string `json:"args,omitempty"`
}

ContainerExecSpec defines an exec command to run against a Container resource +k8s:openapi-gen=true

func (*ContainerExecSpec) DeepCopy

func (in *ContainerExecSpec) DeepCopy() *ContainerExecSpec

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

func (*ContainerExecSpec) DeepCopyInto

func (in *ContainerExecSpec) DeepCopyInto(out *ContainerExecSpec)

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

type ContainerExecStatus

type ContainerExecStatus struct {
	// The current state of the command execution
	State ExecutableState `json:"state,omitempty"`

	// Time the command was started
	StartupTimestamp metav1.MicroTime `json:"startupTimestamp,omitempty"`

	// Time the command finished running
	FinishTimestamp metav1.MicroTime `json:"finishTimestamp,omitempty"`

	// Exit code of the command
	ExitCode *int32 `json:"exitCode,omitempty"`

	// The path of a temporary file that contains captured standard output data from the command
	StdOutFile string `json:"stdOutFile,omitempty"`

	// The path of a temporary file that contains captured standard error data from the command
	StdErrFile string `json:"stdErrFile,omitempty"`

	// Effective values of environment variables, after all substitutions have been applied
	// +listType=map
	// +listMapKey=name
	EffectiveEnv []EnvVar `json:"effectiveEnv,omitempty"`

	// Effective values of arguments to be passed to the command, after all substitutions have been applied
	// +listType=atomic
	EffectiveArgs []string `json:"effectiveArgs,omitempty"`
}

ContainerExecStatus describes the status of a ContainerExec command +k8s:openapi-gen=true

func (ContainerExecStatus) CopyTo

func (*ContainerExecStatus) DeepCopy

func (in *ContainerExecStatus) DeepCopy() *ContainerExecStatus

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

func (*ContainerExecStatus) DeepCopyInto

func (in *ContainerExecStatus) DeepCopyInto(out *ContainerExecStatus)

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

type ContainerLabel

type ContainerLabel struct {
	// The label key
	Key string `json:"key"`

	// The label value
	Value string `json:"value"`
}

+k8s:openapi-gen=true

func (*ContainerLabel) DeepCopy

func (in *ContainerLabel) DeepCopy() *ContainerLabel

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

func (*ContainerLabel) DeepCopyInto

func (in *ContainerLabel) DeepCopyInto(out *ContainerLabel)

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

type ContainerList

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

ContainerList contains a list of Executable instances +k8s:openapi-gen=true +kubebuilder:object:root=true

func (*ContainerList) DeepCopy

func (in *ContainerList) DeepCopy() *ContainerList

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

func (*ContainerList) DeepCopyInto

func (in *ContainerList) DeepCopyInto(out *ContainerList)

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

func (*ContainerList) DeepCopyObject

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

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

func (*ContainerList) GetItems

func (cl *ContainerList) GetItems() []*Container

func (*ContainerList) GetListMeta

func (cl *ContainerList) GetListMeta() *metav1.ListMeta

func (*ContainerList) ItemCount

func (cl *ContainerList) ItemCount() uint32

type ContainerLogResource

type ContainerLogResource struct{}

func (*ContainerLogResource) DeepCopy

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

func (*ContainerLogResource) DeepCopyInto

func (in *ContainerLogResource) DeepCopyInto(out *ContainerLogResource)

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

func (*ContainerLogResource) GetStorageProvider

func (clr *ContainerLogResource) GetStorageProvider(
	obj apiserver_resource.Object,
	rootPath string,
	parentSP apiserver.StorageProvider,
) apiserver.StorageProvider

func (*ContainerLogResource) Name

func (clr *ContainerLogResource) Name() string

type ContainerNetwork

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

	Spec   ContainerNetworkSpec   `json:"spec,omitempty"`
	Status ContainerNetworkStatus `json:"status,omitempty"`
}

ContainerNetwork represents a network that can be consumed by Container instances Its lifetime is independent from the lifetime of containers +kubebuilder:object:root=true +kubebuilder:subresource:status +k8s:openapi-gen=true +kubebuilder:resource:scope=Cluster

func (*ContainerNetwork) DeepCopy

func (in *ContainerNetwork) DeepCopy() *ContainerNetwork

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

func (*ContainerNetwork) DeepCopyInto

func (in *ContainerNetwork) DeepCopyInto(out *ContainerNetwork)

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

func (*ContainerNetwork) DeepCopyObject

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

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

func (*ContainerNetwork) GetGroupVersionResource

func (cn *ContainerNetwork) GetGroupVersionResource() schema.GroupVersionResource

func (*ContainerNetwork) GetObjectMeta

func (cn *ContainerNetwork) GetObjectMeta() *metav1.ObjectMeta

func (*ContainerNetwork) GetStatus

func (*ContainerNetwork) IsStorageVersion

func (cn *ContainerNetwork) IsStorageVersion() bool

func (*ContainerNetwork) NamespaceScoped

func (cn *ContainerNetwork) NamespaceScoped() bool

func (*ContainerNetwork) NamespacedName

func (cn *ContainerNetwork) NamespacedName() types.NamespacedName

func (*ContainerNetwork) New

func (cn *ContainerNetwork) New() runtime.Object

func (*ContainerNetwork) NewList

func (cn *ContainerNetwork) NewList() runtime.Object

func (*ContainerNetwork) ShortNames

func (cn *ContainerNetwork) ShortNames() []string

func (*ContainerNetwork) Validate

func (cn *ContainerNetwork) Validate(ctx context.Context) field.ErrorList

func (*ContainerNetwork) ValidateUpdate

func (cn *ContainerNetwork) ValidateUpdate(ctx context.Context, obj runtime.Object) field.ErrorList

type ContainerNetworkConnection

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

	Spec ContainerNetworkConnectionSpec `json:"spec,omitempty"`
}

ContainerNetworkConnection represents a Container that wishes to be connected to a specific ContainerNetwork Its lifetime is dependent on the lifetime of the Container that it is attached to. +kubebuilder:object:root=true +k8s:openapi-gen=true +kubebuilder:resource:scope=Cluster

func (*ContainerNetworkConnection) DeepCopy

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

func (*ContainerNetworkConnection) DeepCopyInto

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

func (*ContainerNetworkConnection) DeepCopyObject

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

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

func (*ContainerNetworkConnection) GetGroupVersionResource

func (cn *ContainerNetworkConnection) GetGroupVersionResource() schema.GroupVersionResource

func (*ContainerNetworkConnection) GetObjectMeta

func (cn *ContainerNetworkConnection) GetObjectMeta() *metav1.ObjectMeta

func (*ContainerNetworkConnection) IsStorageVersion

func (cn *ContainerNetworkConnection) IsStorageVersion() bool

func (*ContainerNetworkConnection) NamespaceScoped

func (cn *ContainerNetworkConnection) NamespaceScoped() bool

func (*ContainerNetworkConnection) NamespacedName

func (cn *ContainerNetworkConnection) NamespacedName() types.NamespacedName

func (*ContainerNetworkConnection) New

func (*ContainerNetworkConnection) NewList

func (*ContainerNetworkConnection) ShortNames

func (cn *ContainerNetworkConnection) ShortNames() []string

func (*ContainerNetworkConnection) Validate

type ContainerNetworkConnectionConfig

type ContainerNetworkConnectionConfig struct {
	// Name of the network to connect to
	Name string `json:"name"`

	// Aliases of the container on the network
	// +listType=atomic
	Aliases []string `json:"aliases,omitempty"`
}

+k8s:openapi-gen=true

func (*ContainerNetworkConnectionConfig) DeepCopy

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

func (*ContainerNetworkConnectionConfig) DeepCopyInto

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

func (*ContainerNetworkConnectionConfig) Equal

type ContainerNetworkConnectionList

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

ContainerNetworkConnectionList contains a list of ContainerNetworkConnection instances +k8s:openapi-gen=true +kubebuilder:object:root=true

func (*ContainerNetworkConnectionList) DeepCopy

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

func (*ContainerNetworkConnectionList) DeepCopyInto

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

func (*ContainerNetworkConnectionList) DeepCopyObject

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

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

func (*ContainerNetworkConnectionList) GetItems

func (*ContainerNetworkConnectionList) GetListMeta

func (cnl *ContainerNetworkConnectionList) GetListMeta() *metav1.ListMeta

func (*ContainerNetworkConnectionList) ItemCount

func (cnl *ContainerNetworkConnectionList) ItemCount() uint32

type ContainerNetworkConnectionSpec

type ContainerNetworkConnectionSpec struct {
	// The name of the ContainerNetwork resource to connect to
	ContainerNetworkName string `json:"containerNetworkName"`

	// The ID of the container (container orchestrator resource ID) to connect to the ContainerNetwork
	ContainerID string `json:"containerID"`

	// The optional list of custom aliases for the container on the ContainerNetwork
	// +listType=set
	Aliases []string `json:"aliases,omitempty"`
}

ContainerNetworkConnectionSpec defines the desired state of a ContainerNetworkConnection +k8s:openapi-gen=true

func (*ContainerNetworkConnectionSpec) DeepCopy

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

func (*ContainerNetworkConnectionSpec) DeepCopyInto

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

type ContainerNetworkList

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

ContainerNetworkList contains a list of ContainerNetwork instances +k8s:openapi-gen=true +kubebuilder:object:root=true

func (*ContainerNetworkList) DeepCopy

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

func (*ContainerNetworkList) DeepCopyInto

func (in *ContainerNetworkList) DeepCopyInto(out *ContainerNetworkList)

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

func (*ContainerNetworkList) DeepCopyObject

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

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

func (*ContainerNetworkList) GetItems

func (cnl *ContainerNetworkList) GetItems() []*ContainerNetwork

func (*ContainerNetworkList) GetListMeta

func (cnl *ContainerNetworkList) GetListMeta() *metav1.ListMeta

func (*ContainerNetworkList) ItemCount

func (cnl *ContainerNetworkList) ItemCount() uint32

type ContainerNetworkSpec

type ContainerNetworkSpec struct {
	// Name of the network (if omitted, a name is generated based on the resource name)
	NetworkName string `json:"networkName,omitempty"`

	// Shouild IPv6 be enabled for the network?
	IPv6 bool `json:"ipv6,omitempty"`

	// Should this network be created and persisted between DCP runs?
	Persistent bool `json:"persistent,omitempty"`
}

ContainerNetworkSpec defines the desired state of a ContainerNetwork +k8s:openapi-gen=true

func (*ContainerNetworkSpec) DeepCopy

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

func (*ContainerNetworkSpec) DeepCopyInto

func (in *ContainerNetworkSpec) DeepCopyInto(out *ContainerNetworkSpec)

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

type ContainerNetworkState

type ContainerNetworkState string
const (
	// The network is being created
	ContainerNetworkStatePending ContainerNetworkState = "Pending"
	// The network was successfully created
	ContainerNetworkStateRunning ContainerNetworkState = "Running"
	// An attempt was made to create the network, but it failed
	ContainerNetworkStateFailedToStart ContainerNetworkState = "FailedToStart"
	// Network was running at some point, but has been removed
	ContainerNetworkStateRemoved ContainerNetworkState = "Removed"
	// An existing network was not found
	ContainerNetworkStateNotFound ContainerNetworkState = "NotFound"
)

type ContainerNetworkStatus

type ContainerNetworkStatus struct {
	// The current state of the network
	State ContainerNetworkState `json:"state,omitempty"`

	// If the network is in a failed state, this is the reason
	Message string `json:"message,omitempty"`

	// The ID of the network
	ID string `json:"id,omitempty"`

	// The name of the network
	NetworkName string `json:"networkName,omitempty"`

	// The driver of the network
	Driver string `json:"driver,omitempty"`

	// Does the network support IPv6?
	IPv6 bool `json:"ipv6,omitempty"`

	// Subnets allocated to the network (if any)
	// +listType=set
	Subnets []string `json:"subnets,omitempty"`

	// Gateways allocated to the network (if any)
	// +listType=set
	Gateways []string `json:"gateways,omitempty"`

	// The list of container IDs connected to the network
	// +listType=set
	ContainerIDs []string `json:"containerIds,omitempty"`
}

ContainerNetworkStatus defines the current state of a ContainerNetwork +k8s:openapi-gen=true

func (ContainerNetworkStatus) CopyTo

func (*ContainerNetworkStatus) DeepCopy

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

func (*ContainerNetworkStatus) DeepCopyInto

func (in *ContainerNetworkStatus) DeepCopyInto(out *ContainerNetworkStatus)

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

type ContainerNetworkTunnelProxy

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

	Spec   ContainerNetworkTunnelProxySpec   `json:"spec,omitempty"`
	Status ContainerNetworkTunnelProxyStatus `json:"status,omitempty"`
}

ContainerNetworkTunnelProxy represents a tunnel proxy pair that handles multiple tunnels between a container network and host network. +kubebuilder:object:root=true +kubebuilder:subresource:status +k8s:openapi-gen=true +kubebuilder:resource:scope=Cluster

func (*ContainerNetworkTunnelProxy) DeepCopy

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

func (*ContainerNetworkTunnelProxy) DeepCopyInto

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

func (*ContainerNetworkTunnelProxy) DeepCopyObject

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

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

func (*ContainerNetworkTunnelProxy) GetGroupVersionResource

func (cntp *ContainerNetworkTunnelProxy) GetGroupVersionResource() schema.GroupVersionResource

func (*ContainerNetworkTunnelProxy) GetObjectMeta

func (cntp *ContainerNetworkTunnelProxy) GetObjectMeta() *metav1.ObjectMeta

func (*ContainerNetworkTunnelProxy) GetStatus

func (*ContainerNetworkTunnelProxy) IsStorageVersion

func (cntp *ContainerNetworkTunnelProxy) IsStorageVersion() bool

func (*ContainerNetworkTunnelProxy) NamespaceScoped

func (cntp *ContainerNetworkTunnelProxy) NamespaceScoped() bool

func (*ContainerNetworkTunnelProxy) NamespacedName

func (cntp *ContainerNetworkTunnelProxy) NamespacedName() types.NamespacedName

func (*ContainerNetworkTunnelProxy) New

func (*ContainerNetworkTunnelProxy) NewList

func (cntp *ContainerNetworkTunnelProxy) NewList() runtime.Object

func (*ContainerNetworkTunnelProxy) ServicesProduced

func (cntp *ContainerNetworkTunnelProxy) ServicesProduced() []commonapi.ServiceProducer

func (*ContainerNetworkTunnelProxy) ShortNames

func (cntp *ContainerNetworkTunnelProxy) ShortNames() []string

func (*ContainerNetworkTunnelProxy) Validate

func (*ContainerNetworkTunnelProxy) ValidateUpdate

func (cntp *ContainerNetworkTunnelProxy) ValidateUpdate(ctx context.Context, obj runtime.Object) field.ErrorList

type ContainerNetworkTunnelProxyList

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

ContainerNetworkTunnelProxyList contains a list of ContainerNetworkTunnelProxy instances +k8s:openapi-gen=true +kubebuilder:object:root=true

func (*ContainerNetworkTunnelProxyList) DeepCopy

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

func (*ContainerNetworkTunnelProxyList) DeepCopyInto

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

func (*ContainerNetworkTunnelProxyList) DeepCopyObject

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

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

func (*ContainerNetworkTunnelProxyList) GetItems

func (*ContainerNetworkTunnelProxyList) GetListMeta

func (cntpl *ContainerNetworkTunnelProxyList) GetListMeta() *metav1.ListMeta

func (*ContainerNetworkTunnelProxyList) ItemCount

func (cntpl *ContainerNetworkTunnelProxyList) ItemCount() uint32

type ContainerNetworkTunnelProxySpec

type ContainerNetworkTunnelProxySpec struct {
	// Reference to the ContainerNetwork that the client proxy should connect to.
	// This field is required and must reference an existing ContainerNetwork resource.
	ContainerNetworkName string `json:"containerNetworkName"`

	// Aliases (DNS names) that can be used to reach the client proxy container on the container network.
	// +listType=set
	Aliases []string `json:"aliases,omitempty"`

	// List of tunnels to prepare. Each tunnel enables clients on the container network
	// to connect to a server on the host (establish a tunnel stream).
	// +listType=atomic
	Tunnels []TunnelConfiguration `json:"tunnels,omitempty"`

	// Base container image to use for the client proxy container.
	// Defaults to mcr.microsoft.com/azurelinux/base/core:3.0 if not specified.
	// +optional
	BaseImage string `json:"baseImage,omitempty"`
}

ContainerNetworkTunnelProxySpec defines the desired state of a ContainerNetworkTunnelProxy. +k8s:openapi-gen=true

func (*ContainerNetworkTunnelProxySpec) DeepCopy

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

func (*ContainerNetworkTunnelProxySpec) DeepCopyInto

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

type ContainerNetworkTunnelProxyState

type ContainerNetworkTunnelProxyState string
const (
	// The same as ContainerNetworkTunnelProxyStatePending.
	// May be encountered when ContainerNetworkTunnelProxy status has not been initialized yet.
	ContainerNetworkTunnelProxyStateEmpty ContainerNetworkTunnelProxyState = ""

	// Initial state - proxy pair is being created.
	ContainerNetworkTunnelProxyStatePending ContainerNetworkTunnelProxyState = "Pending"

	// Building the client proxy container image.
	ContainerNetworkTunnelProxyStateBuildingImage ContainerNetworkTunnelProxyState = "BuildingImage"

	// Starting the proxy pair.
	ContainerNetworkTunnelProxyStateStarting ContainerNetworkTunnelProxyState = "Starting"

	// Proxy pair is ready with all tunnels operational.
	ContainerNetworkTunnelProxyStateRunning ContainerNetworkTunnelProxyState = "Running"

	// Proxy pair encountered an unrecoverable error, either during startup, or during execution.
	ContainerNetworkTunnelProxyStateFailed ContainerNetworkTunnelProxyState = "Failed"
)

type ContainerNetworkTunnelProxyStatus

type ContainerNetworkTunnelProxyStatus struct {
	// Overall state of the tunnel proxy pair.
	// +kubebuilder:default:="Pending"
	State ContainerNetworkTunnelProxyState `json:"state,omitempty"`

	// Status of individual tunnels within the proxy pair.
	// +listType=atomic
	TunnelStatuses []TunnelStatus `json:"tunnelStatuses,omitempty"`

	// Monotonically increasing version number of the tunnel configuration that was applied to the proxy pair.
	// Can be used by clients changing tunnel configuration (Tunnels property) to learn that the new configuration has become effective.
	TunnelConfigurationVersion int32 `json:"tunnelConfigurationVersion,omitempty"`

	// The name and tag of the container image used for the client proxy container.
	ClientProxyContainerImage string `json:"clientProxyContainerImage,omitempty"`

	// Container ID of the running client proxy container.
	ClientProxyContainerID string `json:"clientProxyContainerId,omitempty"`

	// Server proxy process ID.
	ServerProxyProcessID *int64 `json:"serverProxyProcessId,omitempty"`

	// Server proxy process startup timestamp.
	ServerProxyStartupTimestamp metav1.MicroTime `json:"serverProxyStartupTimestamp,omitempty"`

	// The path of a temporary file that contains captured standard output data from the server proxy process.
	ServerProxyStdOutFile string `json:"serverProxyStdOutFile,omitempty"`

	// The path of a temporary file that contains captured standard error data from the server proxy process.
	ServerProxyStdErrFile string `json:"serverProxyStdErrFile,omitempty"`

	// Published (host) port for client proxy control endpoint.
	ClientProxyControlPort int32 `json:"clientProxyControlPort,omitempty"`

	// Published (host) port for client proxy data endpoint.
	ClientProxyDataPort int32 `json:"clientProxyDataPort,omitempty"`

	// Server proxy control port (for controlling the proxy pair).
	ServerProxyControlPort int32 `json:"serverProxyControlPort,omitempty"`
}

ContainerNetworkTunnelProxyStatus defines the current state of a ContainerNetworkTunnelProxy. +k8s:openapi-gen=true

func (ContainerNetworkTunnelProxyStatus) CopyTo

func (*ContainerNetworkTunnelProxyStatus) DeepCopy

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

func (*ContainerNetworkTunnelProxyStatus) DeepCopyInto

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

type ContainerPemCertificates

type ContainerPemCertificates struct {
	// The individual certificates in PEM format.
	// +listType=atomic
	Certificates []PemCertificate `json:"certificates,omitempty"`

	// The base destination path in the container where the certificates will be written. Must be an absolute path.
	// This path will be created if it does not already exist. Individual certificate files will be created
	// in a subfolder named "certs" under this path along with OpenSSL thumbprint symlinks to each of them.
	// The certificate bundle will be created in a file named "cert.pem" under this path.
	Destination string `json:"destination,omitempty"`

	// Optional list of bundle files to overwrite with the generated certificate bundle.
	// Each path in the list must be an absolute path to a file in the container.
	// Any existing file at these paths will be overwritten with the generated certificate bundle or created if it does not exist.
	// +listType=set
	OverwriteBundlePaths []string `json:"overwriteBundlePaths,omitempty"`

	// If true, any invalid certificates in the Certificates list will be skipped, but any valid certificates will still be written.
	// If false, the entire operation will fail if any invalid certificates are found.
	ContinueOnError bool `json:"continueOnError,omitempty"`
}

Represents a collection of PEM formatted certificates to be written into the container +k8s:openapi-gen=true

func (*ContainerPemCertificates) DeepCopy

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

func (*ContainerPemCertificates) DeepCopyInto

func (in *ContainerPemCertificates) DeepCopyInto(out *ContainerPemCertificates)

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

func (*ContainerPemCertificates) Equal

func (*ContainerPemCertificates) Validate

func (pc *ContainerPemCertificates) Validate(fieldPath *field.Path) field.ErrorList

type ContainerPort

type ContainerPort struct {
	// Optional: If specified, this must be a valid port number, 0 < x < 65536.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	HostPort int32 `json:"hostPort,omitempty"`

	// Required: This must be a valid port number, 0 < x < 65536.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	ContainerPort int32 `json:"containerPort"`

	// The port to be used, defaults to TCP
	Protocol PortProtocol `json:"protocol,omitempty"`

	// Optional: What host IP to bind the external port to.
	HostIP string `json:"hostIP,omitempty"`
}

+k8s:openapi-gen=true

func (*ContainerPort) DeepCopy

func (in *ContainerPort) DeepCopy() *ContainerPort

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

func (*ContainerPort) DeepCopyInto

func (in *ContainerPort) DeepCopyInto(out *ContainerPort)

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

type ContainerRestartPolicy

type ContainerRestartPolicy string
const (
	// Do not automatically restart the container when it exits (default)
	RestartPolicyNone ContainerRestartPolicy = "no"

	// Restart only if the container exits with non-zero status
	RestartPolicyOnFailure ContainerRestartPolicy = "on-failure"

	// Restart container, except if container is explicitly stopped (or container daemon is stopped/restarted)
	RestartPolicyUnlessStopped ContainerRestartPolicy = "unless-stopped"

	// Always try to restart the container
	RestartPolicyAlways ContainerRestartPolicy = "always"
)

type ContainerSpec

type ContainerSpec struct {
	// Optional container image (required if Build is not specified)
	// If Build is specified and Image is set, the value of Image will be used to tag the resulting built image.
	// If Build is omitted, the value of Image will be used to pull the container image to run.
	Image string `json:"image,omitempty"`

	// Optional build context to use to build the container image
	Build *ContainerBuildContext `json:"build,omitempty"`

	// Optional container name
	ContainerName string `json:"containerName,omitempty"`

	// Consumed volume information
	// +listType=atomic
	VolumeMounts []VolumeMount `json:"volumeMounts,omitempty"`

	// Exposed ports
	// +listType=atomic
	Ports []ContainerPort `json:"ports,omitempty"`

	// Environment settings
	// +listType=map
	// +listMapKey=name
	Env []EnvVar `json:"env,omitempty"`

	// Environment files to use to populate Container environment during startup.
	// +listType=set
	EnvFiles []string `json:"envFiles,omitempty"`

	// Container restart policy
	RestartPolicy ContainerRestartPolicy `json:"restartPolicy,omitempty"`

	// Command to run in the container
	Command string `json:"command,omitempty"`

	// Arguments to pass to the command
	// +listType=atomic
	Args []string `json:"args,omitempty"`

	// Should the controller attempt to start the container?
	// +kubebuilder:default:=true
	Start *bool `json:"start,omitempty"`

	// Should the controller attempt to stop the container?
	// +kubebuilder:default:=false
	Stop bool `json:"stop,omitempty"`

	// ContainerNetworks resources the container should be attached to. If omitted or nil, the container will
	// be attached to the default network and the controller will not manage network connections.
	// +listType=atomic
	Networks *[]ContainerNetworkConnectionConfig `json:"networks,omitempty"`

	// Should this container be created and persisted between DCP runs?
	Persistent bool `json:"persistent,omitempty"`

	// Additional arguments to pass to the container run command
	// +listType=atomic
	RunArgs []string `json:"runArgs,omitempty"`

	// Labels to apply to the container
	// +listType=map
	// +listMapKey=key
	Labels []ContainerLabel `json:"labels,omitempty"`

	// Health probe configuration for the Container
	// +listType=atomic
	HealthProbes []HealthProbe `json:"healthProbes,omitempty"`

	// Optional key used to identify if an existing persistent container needs to be restarted.
	// If not set, the controller will calculate a key based on a hash of specific fields in the ContainerSpec.
	LifecycleKey string `json:"lifecycleKey,omitempty"`

	// Pull policy for container base images, if not set uses the default configuration for the container runtime.
	PullPolicy PullPolicy `json:"pullPolicy,omitempty"`

	// Files to create in the container before starting it
	// +listType=atomic
	CreateFiles []CreateFileSystem `json:"createFiles,omitempty"`

	// PEM formatted public certificates to be created in the container
	// +optional
	PemCertificates *ContainerPemCertificates `json:"pemCertificates,omitempty"`
}

ContainerSpec defines the desired state of a Container +k8s:openapi-gen=true

func (*ContainerSpec) DeepCopy

func (in *ContainerSpec) DeepCopy() *ContainerSpec

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

func (*ContainerSpec) DeepCopyInto

func (in *ContainerSpec) DeepCopyInto(out *ContainerSpec)

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

func (*ContainerSpec) Equal

func (cs *ContainerSpec) Equal(other *ContainerSpec) bool

func (*ContainerSpec) GetLifecycleKey

func (cs *ContainerSpec) GetLifecycleKey() (string, bool, error)

type ContainerState

type ContainerState string
const (
	// Same as ContainerStatePending. May be encountered if the Container status has not been initialized yet.
	ContainerStateEmpty ContainerState = ""

	// Pending is the initial Container state. No attempt has been made to run the container yet.
	ContainerStatePending ContainerState = "Pending"

	// ContainerStateRuntimeUnhealthy indicates that the container start is blocked because the runtime isn't healthy, but will resume once the runtime is started.
	ContainerStateRuntimeUnhealthy ContainerState = "RuntimeUnhealthy"

	// Building is an optional state that indicates the container is in the process of being built.
	ContainerStateBuilding ContainerState = "Building"

	// Container is in the process of starting
	ContainerStateStarting ContainerState = "Starting"

	// A start attempt was made, but it failed
	ContainerStateFailedToStart ContainerState = "FailedToStart"

	// Container has been started and is executing
	ContainerStateRunning ContainerState = "Running"

	// Container is paused
	ContainerStatePaused ContainerState = "Paused"

	// Container finished execution
	ContainerStateExited ContainerState = "Exited"

	// Unknown means for some reason container state is unavailable.
	ContainerStateUnknown ContainerState = "Unknown"

	// Container is in the process of stopping
	ContainerStateStopping ContainerState = "Stopping"
)

type ContainerStatus

type ContainerStatus struct {
	// +kubebuilder:default:="Pending"
	// Current state of the Container.
	State ContainerState `json:"state,omitempty"`

	// ID of the Container (if an attempt to start the Container was made)
	ContainerID string `json:"containerId,omitempty"`

	// Name of the Container (if an attempt to start the Container was made)
	ContainerName string `json:"containerName,omitempty"`

	// Timestamp of the Container start attempt
	StartupTimestamp metav1.MicroTime `json:"startupTimestamp,omitempty"`

	// Timestamp when the Container was terminated last
	FinishTimestamp metav1.MicroTime `json:"finishTimestamp,omitempty"`

	// The path of a temporary file that contains captured standard output data from the Container startup process.
	StartupStdOutFile string `json:"startupStdOutFile,omitempty"`

	// The path of a temporary file that contains captured standard error data from the Container startup process.
	StartupStdErrFile string `json:"startupStdErrFile,omitempty"`

	// Exit code of the Container.
	// Default is -1, meaning the exit code is not known, or the container is still running.
	// +kubebuilder:default:=-1
	// +optional
	ExitCode *int32 `json:"exitCode,omitempty"`

	// A human-readable message that provides additional information about Container state.
	Message string `json:"message,omitempty"`

	// Effective values of environment variables, after all substitutions are applied.
	// +listType=map
	// +listMapKey=name
	EffectiveEnv []EnvVar `json:"effectiveEnv,omitempty"`

	// Effective values of launch arguments to be passed to the Container, after all substitutions are applied.
	// +listType=atomic
	EffectiveArgs []string `json:"effectiveArgs,omitempty"`

	// List of ContainerNetworks the Container is connected to
	// +listType=set
	Networks []string `json:"networks,omitempty"`

	// Health status of the Container
	HealthStatus HealthStatus `json:"healthStatus,omitempty"`

	// Results of running health probes (most recent per probe)
	// +listType=map
	// +listMapKey=probeName
	HealthProbeResults []HealthProbeResult `json:"healthProbeResults,omitempty"`

	// The lifecycle key from the spec or the value calculated by the controller
	LifecycleKey string `json:"lifecycleKey,omitempty"`
}

ContainerStatus describes the status of a Container +k8s:openapi-gen=true

func (ContainerStatus) CopyTo

func (*ContainerStatus) DeepCopy

func (in *ContainerStatus) DeepCopy() *ContainerStatus

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

func (*ContainerStatus) DeepCopyInto

func (in *ContainerStatus) DeepCopyInto(out *ContainerStatus)

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

type ContainerVolume

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

	Spec   ContainerVolumeSpec   `json:"spec,omitempty"`
	Status ContainerVolumeStatus `json:"status,omitempty"`
}

ContainerVolume represents a volume that can be consumed by Container instances Its lifetime is independent from the lifetime of containers +kubebuilder:object:root=true +k8s:openapi-gen=true +kubebuilder:resource:scope=Cluster

func (*ContainerVolume) DeepCopy

func (in *ContainerVolume) DeepCopy() *ContainerVolume

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

func (*ContainerVolume) DeepCopyInto

func (in *ContainerVolume) DeepCopyInto(out *ContainerVolume)

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

func (*ContainerVolume) DeepCopyObject

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

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

func (*ContainerVolume) GetGroupVersionResource

func (cv *ContainerVolume) GetGroupVersionResource() schema.GroupVersionResource

func (*ContainerVolume) GetObjectMeta

func (cv *ContainerVolume) GetObjectMeta() *metav1.ObjectMeta

func (*ContainerVolume) GetStatus

func (*ContainerVolume) IsStorageVersion

func (cv *ContainerVolume) IsStorageVersion() bool

func (*ContainerVolume) NamespaceScoped

func (cv *ContainerVolume) NamespaceScoped() bool

func (*ContainerVolume) NamespacedName

func (cv *ContainerVolume) NamespacedName() types.NamespacedName

func (*ContainerVolume) New

func (cv *ContainerVolume) New() runtime.Object

func (*ContainerVolume) NewList

func (cv *ContainerVolume) NewList() runtime.Object

func (*ContainerVolume) ShortNames

func (cv *ContainerVolume) ShortNames() []string

func (*ContainerVolume) Validate

func (cv *ContainerVolume) Validate(ctx context.Context) field.ErrorList

func (*ContainerVolume) ValidateUpdate

func (cv *ContainerVolume) ValidateUpdate(ctx context.Context, old runtime.Object) field.ErrorList

type ContainerVolumeList

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

ContainerVolumeList contains a list of ContainerVolume instances +k8s:openapi-gen=true +kubebuilder:object:root=true

func (*ContainerVolumeList) DeepCopy

func (in *ContainerVolumeList) DeepCopy() *ContainerVolumeList

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

func (*ContainerVolumeList) DeepCopyInto

func (in *ContainerVolumeList) DeepCopyInto(out *ContainerVolumeList)

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

func (*ContainerVolumeList) DeepCopyObject

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

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

func (*ContainerVolumeList) GetItems

func (cvl *ContainerVolumeList) GetItems() []*ContainerVolume

func (*ContainerVolumeList) GetListMeta

func (cvl *ContainerVolumeList) GetListMeta() *metav1.ListMeta

func (*ContainerVolumeList) ItemCount

func (cvl *ContainerVolumeList) ItemCount() uint32

type ContainerVolumeSpec

type ContainerVolumeSpec struct {
	// Name of the volume
	Name string `json:"name"`

	// Is this volume persistent (is NOT cleaned up when the application ends) or not.
	// Volumes are persistent by default.
	// +kubebuilder:default=true
	Persistent *bool `json:"persistent,omitempty"`
}

ContainerVolumeSpec defines the desired state of a ContainerVolume +k8s:openapi-gen=true

func (*ContainerVolumeSpec) DeepCopy

func (in *ContainerVolumeSpec) DeepCopy() *ContainerVolumeSpec

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

func (*ContainerVolumeSpec) DeepCopyInto

func (in *ContainerVolumeSpec) DeepCopyInto(out *ContainerVolumeSpec)

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

type ContainerVolumeState

type ContainerVolumeState string
const (
	// Same as ContainerVolumeStatePending. Happens when ContainerVolume status has not been initialized yet.
	ContainerVolumeStateEmpty ContainerVolumeState = ""

	// The volume has not been checked for existence or has not been created yet.
	ContainerVolumeStatePending ContainerVolumeState = "Pending"

	// ContainerVolumeStateRuntimeUnhealthy indicates that the underlying Docker/Podman volume cannot be created
	// (or its existence cannot be verified) because the container runtime is not healthy.
	ContainerVolumeStateRuntimeUnhealthy ContainerVolumeState = "RuntimeUnhealthy"

	// The underlying Docker/Podman volume has been created and is ready for use.
	ContainerVolumeStateReady ContainerVolumeState = "Ready"
)

type ContainerVolumeStatus

type ContainerVolumeStatus struct {
	// The current state of the ContainerVolume
	// +kubebuilder:default=Pending
	// +kubebuilder:validation:Enum=Pending;RuntimeUnhealthy;Ready
	State ContainerVolumeState `json:"state,omitempty"`
}

ContainerVolumeStatus describes the status of a ContainerVolume +k8s:openapi-gen=true

func (ContainerVolumeStatus) CopyTo

func (*ContainerVolumeStatus) DeepCopy

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

func (*ContainerVolumeStatus) DeepCopyInto

func (in *ContainerVolumeStatus) DeepCopyInto(out *ContainerVolumeStatus)

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

type CreateFileSystem

type CreateFileSystem struct {
	// The destination path for the file (should already exist in the container)
	Destination string `json:"destination,omitempty"`

	// The default owner ID for created files (defaults to 0 for root)
	DefaultOwner int32 `json:"defaultOwner,omitempty"`

	// The default group ID for created files (defaults to 0 for root)
	DefaultGroup int32 `json:"defaultGroup,omitempty"`

	// The umask for created files and folders without explicit permissions set (defaults to 022)
	Umask *fs.FileMode `json:"umask,omitempty"`

	// The specific entries to create in the container (must have at least one item)
	// +listType=atomic
	Entries []FileSystemEntry `json:"entries,omitempty"`
}

Describes files and/or folders to be created in the Container before it is started +k8s:openapi-gen=true

func (*CreateFileSystem) DeepCopy

func (in *CreateFileSystem) DeepCopy() *CreateFileSystem

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

func (*CreateFileSystem) DeepCopyInto

func (in *CreateFileSystem) DeepCopyInto(out *CreateFileSystem)

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

func (*CreateFileSystem) Equal

func (cf *CreateFileSystem) Equal(other *CreateFileSystem) bool

type Endpoint

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

	Spec   EndpointSpec   `json:"spec,omitempty"`
	Status EndpointStatus `json:"status,omitempty"`
}

Endpoint represents a network endpoint that implements a service Its lifetime is dependent on the lifetime of the Executable or Container that it is attached to. +kubebuilder:object:root=true +kubebuilder:subresource:status +k8s:openapi-gen=true +kubebuilder:resource:scope=Cluster

func (*Endpoint) DeepCopy

func (in *Endpoint) DeepCopy() *Endpoint

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

func (*Endpoint) DeepCopyInto

func (in *Endpoint) DeepCopyInto(out *Endpoint)

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

func (*Endpoint) DeepCopyObject

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

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

func (*Endpoint) GetGroupVersionResource

func (e *Endpoint) GetGroupVersionResource() schema.GroupVersionResource

func (*Endpoint) GetObjectMeta

func (e *Endpoint) GetObjectMeta() *metav1.ObjectMeta

func (*Endpoint) GetStatus

func (*Endpoint) IsStorageVersion

func (e *Endpoint) IsStorageVersion() bool

func (*Endpoint) NamespaceScoped

func (e *Endpoint) NamespaceScoped() bool

func (*Endpoint) NamespacedName

func (e *Endpoint) NamespacedName() types.NamespacedName

func (*Endpoint) New

func (e *Endpoint) New() runtime.Object

func (*Endpoint) NewList

func (e *Endpoint) NewList() runtime.Object

func (*Endpoint) ShortNames

func (e *Endpoint) ShortNames() []string

func (*Endpoint) String

func (e *Endpoint) String() string

func (*Endpoint) Validate

func (e *Endpoint) Validate(ctx context.Context) field.ErrorList

type EndpointList

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

EndpointList contains a list of Endpoint instances +k8s:openapi-gen=true +kubebuilder:object:root=true

func (*EndpointList) DeepCopy

func (in *EndpointList) DeepCopy() *EndpointList

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

func (*EndpointList) DeepCopyInto

func (in *EndpointList) DeepCopyInto(out *EndpointList)

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

func (*EndpointList) DeepCopyObject

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

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

func (*EndpointList) GetItems

func (el *EndpointList) GetItems() []*Endpoint

func (*EndpointList) GetListMeta

func (el *EndpointList) GetListMeta() *metav1.ListMeta

func (*EndpointList) ItemCount

func (el *EndpointList) ItemCount() uint32

type EndpointSpec

type EndpointSpec struct {
	// Namespace of the service the endpoint implements
	ServiceNamespace string `json:"serviceNamespace"`

	// Name of the service the endpoint implements
	ServiceName string `json:"serviceName"`

	// The desired address for the endpoint to run on
	Address string `json:"address"`

	// The desired port for the endpoint to run on
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	Port int32 `json:"port"`
}

EndpointSpec defines the desired state of a Endpoint +k8s:openapi-gen=true

func (*EndpointSpec) DeepCopy

func (in *EndpointSpec) DeepCopy() *EndpointSpec

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

func (*EndpointSpec) DeepCopyInto

func (in *EndpointSpec) DeepCopyInto(out *EndpointSpec)

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

type EndpointStatus

type EndpointStatus struct {
}

EndpointStatus describes the status of a Endpoint +k8s:openapi-gen=true

func (EndpointStatus) CopyTo

func (*EndpointStatus) DeepCopy

func (in *EndpointStatus) DeepCopy() *EndpointStatus

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

func (*EndpointStatus) DeepCopyInto

func (in *EndpointStatus) DeepCopyInto(out *EndpointStatus)

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

type EnvVar

type EnvVar struct {
	// Name of the environment variable
	Name string `json:"name"`

	// Value of the environment variable. Defaults to "" (empty string).
	// +optional
	Value string `json:"value,omitempty"`
}

EnvVar represents an environment variable present in a Container or Executable. +k8s:openapi-gen=true

func (*EnvVar) DeepCopy

func (in *EnvVar) DeepCopy() *EnvVar

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

func (*EnvVar) DeepCopyInto

func (in *EnvVar) DeepCopyInto(out *EnvVar)

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

type EnvironmentBehavior

type EnvironmentBehavior string
const (
	// The executable will inherit the environment of the controller process.
	// This is the default behavior.
	EnvironmentBehaviorInherit EnvironmentBehavior = "Inherit"

	// The executable will not inherit the environment of the controller process.
	EnvironmentBehaviorDoNotInherit EnvironmentBehavior = "DoNotInherit"
)

type Executable

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

	Spec   ExecutableSpec   `json:"spec,omitempty"`
	Status ExecutableStatus `json:"status,omitempty"`
}

Executable resource represents an OS process, with one or more replicas +kubebuilder:object:root=true +kubebuilder:subresource:status +k8s:openapi-gen=true +kubebuilder:resource:scope=Cluster

func (*Executable) DeepCopy

func (in *Executable) DeepCopy() *Executable

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

func (*Executable) DeepCopyInto

func (in *Executable) DeepCopyInto(out *Executable)

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

func (*Executable) DeepCopyObject

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

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

func (*Executable) Done

func (e *Executable) Done() bool

func (*Executable) GenericSubResources

func (*Executable) GenericSubResources() []apiserver_resource.GenericSubResource

func (*Executable) GetGroupVersionResource

func (e *Executable) GetGroupVersionResource() schema.GroupVersionResource

func (*Executable) GetObjectMeta

func (e *Executable) GetObjectMeta() *metav1.ObjectMeta

func (*Executable) GetResourceId

func (e *Executable) GetResourceId() string

GetResourceId implements StdOutStreamableResource.

func (*Executable) GetStatus

func (*Executable) GetStdErrFile

func (e *Executable) GetStdErrFile() string

StdErrFile implements StdOutStreamableResource.

func (*Executable) GetStdOutFile

func (e *Executable) GetStdOutFile() string

StdOutFile implements StdOutStreamableResource.

func (*Executable) HasStdErr

func (ce *Executable) HasStdErr() bool

HasStdErr implements StdOutStreamableResource.

func (*Executable) HasStdOut

func (ce *Executable) HasStdOut() bool

HasStdOut implements StdOutStreamableResource.

func (*Executable) IsStorageVersion

func (e *Executable) IsStorageVersion() bool

func (*Executable) NamespaceScoped

func (e *Executable) NamespaceScoped() bool

func (*Executable) NamespacedName

func (e *Executable) NamespacedName() types.NamespacedName

func (*Executable) New

func (e *Executable) New() runtime.Object

func (*Executable) NewList

func (e *Executable) NewList() runtime.Object

func (*Executable) ShortNames

func (e *Executable) ShortNames() []string

func (*Executable) Validate

func (e *Executable) Validate(ctx context.Context) field.ErrorList

func (*Executable) ValidateUpdate

func (e *Executable) ValidateUpdate(ctx context.Context, obj runtime.Object) field.ErrorList

type ExecutableList

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

ExecutableList contains a list of Executable instances +k8s:openapi-gen=true +kubebuilder:object:root=true

func (*ExecutableList) DeepCopy

func (in *ExecutableList) DeepCopy() *ExecutableList

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

func (*ExecutableList) DeepCopyInto

func (in *ExecutableList) DeepCopyInto(out *ExecutableList)

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

func (*ExecutableList) DeepCopyObject

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

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

func (*ExecutableList) GetItems

func (el *ExecutableList) GetItems() []*Executable

func (*ExecutableList) GetListMeta

func (el *ExecutableList) GetListMeta() *metav1.ListMeta

func (*ExecutableList) ItemCount

func (el *ExecutableList) ItemCount() uint32

type ExecutableLogResource

type ExecutableLogResource struct{}

func (*ExecutableLogResource) DeepCopy

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

func (*ExecutableLogResource) DeepCopyInto

func (in *ExecutableLogResource) DeepCopyInto(out *ExecutableLogResource)

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

func (*ExecutableLogResource) GetStorageProvider

func (elr *ExecutableLogResource) GetStorageProvider(
	obj apiserver_resource.Object,
	rootPath string,
	parentSP apiserver.StorageProvider,
) apiserver.StorageProvider

func (*ExecutableLogResource) Name

func (elr *ExecutableLogResource) Name() string

type ExecutablePemCertificates

type ExecutablePemCertificates struct {
	// The individual certificates in PEM format.
	// +listType=atomic
	Certificates []PemCertificate `json:"certificates,omitempty"`

	// If true, any invalid certificates in the Certificates list will be skipped, but any valid certificates will still be written.
	// If false, the entire operation will fail if any invalid certificates are found.
	ContinueOnError bool `json:"continueOnError,omitempty"`
}

Represents a collection of PEM formatted certificates to be written for the executable +k8s:openapi-gen=true

func (*ExecutablePemCertificates) DeepCopy

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

func (*ExecutablePemCertificates) DeepCopyInto

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

func (*ExecutablePemCertificates) Equal

func (*ExecutablePemCertificates) Validate

func (pc *ExecutablePemCertificates) Validate(fieldPath *field.Path) field.ErrorList

type ExecutableProbe

type ExecutableProbe struct {
	// Template for creating the Executable that performs the health check
	ExecutableTemplate ExecutableTemplate `json:"executableTemplate"`
}

ExecutableProbe contains the configuration for an Executable health probe. +k8s:openapi-gen=true

func (*ExecutableProbe) DeepCopy

func (in *ExecutableProbe) DeepCopy() *ExecutableProbe

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

func (*ExecutableProbe) DeepCopyInto

func (in *ExecutableProbe) DeepCopyInto(out *ExecutableProbe)

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

func (*ExecutableProbe) Equal

func (ep *ExecutableProbe) Equal(other *ExecutableProbe) bool

func (*ExecutableProbe) Validate

func (ep *ExecutableProbe) Validate(probePath *field.Path) field.ErrorList

type ExecutableReplicaSet

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

	Spec   ExecutableReplicaSetSpec   `json:"spec,omitempty"`
	Status ExecutableReplicaSetStatus `json:"status,omitempty"`
}

ExecutableReplicaSet resource represents a replication configuration for zero or more Executable resources +kubebuilder:object:root=true +kubebuilder:subresource:status +k8s:openapi-gen=true +kubebuilder:resource:scope=Cluster

func (*ExecutableReplicaSet) DeepCopy

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

func (*ExecutableReplicaSet) DeepCopyInto

func (in *ExecutableReplicaSet) DeepCopyInto(out *ExecutableReplicaSet)

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

func (*ExecutableReplicaSet) DeepCopyObject

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

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

func (*ExecutableReplicaSet) GetGroupVersionResource

func (e *ExecutableReplicaSet) GetGroupVersionResource() schema.GroupVersionResource

GetGroupVersionResource implements apiserver_resource.ObjectWithGroupVersionResource.

func (*ExecutableReplicaSet) GetObjectMeta

func (e *ExecutableReplicaSet) GetObjectMeta() *metav1.ObjectMeta

GetObjectMeta implements apiserver_resource.ObjectWithObjectMeta.

func (*ExecutableReplicaSet) GetStatus

GetStatus implements apiserver_resource.ObjectWithStatusSubResource.

func (*ExecutableReplicaSet) IsStorageVersion

func (e *ExecutableReplicaSet) IsStorageVersion() bool

IsStorageVersion implements apiserver_resource.ObjectWithStorageVersion.

func (*ExecutableReplicaSet) NamespaceScoped

func (*ExecutableReplicaSet) NamespaceScoped() bool

NamespaceScoped implements resource.Object.

func (*ExecutableReplicaSet) NamespacedName

func (e *ExecutableReplicaSet) NamespacedName() types.NamespacedName

func (*ExecutableReplicaSet) New

New implements resource.Object.

func (*ExecutableReplicaSet) NewList

func (*ExecutableReplicaSet) NewList() runtime.Object

NewList implements resource.Object.

func (*ExecutableReplicaSet) ShortNames

func (*ExecutableReplicaSet) ShortNames() []string

ShortNames implements rest.ShortNamesProvider.

func (*ExecutableReplicaSet) Validate

func (ers *ExecutableReplicaSet) Validate(ctx context.Context) field.ErrorList

Validate implements resourcestrategy.Validater.

type ExecutableReplicaSetList

type ExecutableReplicaSetList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []ExecutableReplicaSet `json:"items"`
}

ExecutableReplicaSetList contains a list of ExecutableReplicaSet instances +k8s:openapi-gen=true +kubebuilder:object:root=true

func (*ExecutableReplicaSetList) DeepCopy

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

func (*ExecutableReplicaSetList) DeepCopyInto

func (in *ExecutableReplicaSetList) DeepCopyInto(out *ExecutableReplicaSetList)

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

func (*ExecutableReplicaSetList) DeepCopyObject

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

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

func (*ExecutableReplicaSetList) GetItems

GetItems implements apiserver_resource.ObjectList.

func (*ExecutableReplicaSetList) GetListMeta

func (el *ExecutableReplicaSetList) GetListMeta() *metav1.ListMeta

GetListMeta implements apiserver_resource.ObjectList.

func (*ExecutableReplicaSetList) ItemCount

func (el *ExecutableReplicaSetList) ItemCount() uint32

ItemCount implements apiserver_resource.ObjectList.

type ExecutableReplicaSetSpec

type ExecutableReplicaSetSpec struct {
	// Number of desired child Executable objects
	// +kubebuilder:default:=1
	// +kubebuilder:validation:Minimum=0
	Replicas int32 `json:"replicas"`

	// Should the replica be soft deleted on scale down instead of deleted?
	// +kubebuilder:default:=false
	StopOnScaleDown bool `json:"stopOnScaleDown,omitempty"`

	// Template describing the configuration of child Executable objects created by the ExecutableReplicaSet
	// +kubebuilder:validation:Required
	Template ExecutableTemplate `json:"template"`
}

ExecutableReplicaSetSpec desribes the desired state of an ExecutableReplicaSet +k8s:openapi-gen=true

func (*ExecutableReplicaSetSpec) DeepCopy

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

func (*ExecutableReplicaSetSpec) DeepCopyInto

func (in *ExecutableReplicaSetSpec) DeepCopyInto(out *ExecutableReplicaSetSpec)

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

type ExecutableReplicaSetStatus

type ExecutableReplicaSetStatus struct {
	// Total number of observed child executables
	// +kubebuilder:default:=0
	ObservedReplicas int32 `json:"observedReplicas"`

	// Total number of current running child Executables
	// +kubebuilder:default:=0
	RunningReplicas int32 `json:"runningReplicas"`

	// Total number of current Executable replicas that failed to start
	// +kubebuilder:default:=0
	FailedReplicas int32 `json:"failedReplicas"`

	// Total number of current child Executables that have finished running
	// +kubebuilder:default:=0
	FinishedReplicas int32 `json:"finishedReplicas"`

	// Last time the replica set was scaled up or down by the controller
	LastScaleTime metav1.MicroTime `json:"lastScaleTime,omitempty"`

	// Health status of the replica set
	HealthStatus HealthStatus `json:"healthStatus,omitempty"`
}

ExecutableReplicaSetStatus desribes the status of an ExecutableReplicaSet +k8s:openapi-gen=true

func (ExecutableReplicaSetStatus) CopyTo

CopyTo implements apiserver_resource.ObjectWithStatusSubResource.

func (*ExecutableReplicaSetStatus) DeepCopy

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

func (*ExecutableReplicaSetStatus) DeepCopyInto

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

type ExecutableSpec

type ExecutableSpec struct {
	// Path to Executable binary
	ExecutablePath string `json:"executablePath"`

	// The working directory for the Executable
	WorkingDirectory string `json:"workingDirectory,omitempty"`

	// Launch arguments to be passed to the Executable
	// +listType=atomic
	Args []string `json:"args,omitempty"`

	// Environment variables to be set for the Executable
	// +listType=map
	// +listMapKey=name
	Env []EnvVar `json:"env,omitempty"`

	// Environment files to use to populate Executable environment during startup.
	// +listType=set
	EnvFiles []string `json:"envFiles,omitempty"`

	// The execution type for the Executable.
	// +kubebuilder:default:=Process
	ExecutionType ExecutionType `json:"executionType,omitempty"`

	// Fallback execution types in case the primary execution type is not supported or startup fails.
	// +listType=atomic
	FallbackExecutionTypes []ExecutionType `json:"fallbackExecutionTypes,omitempty"`

	// Controls behavior of environment variables inherited from the controller process.
	AmbientEnvironment AmbientEnvironment `json:"ambientEnvironment,omitempty"`

	// Should the controller attempt to stop the Executable
	// +kubebuilder:default:=false
	Stop bool `json:"stop,omitempty"`

	// Health probe configuration for the Executable
	// +listType=atomic
	HealthProbes []HealthProbe `json:"healthProbes,omitempty"`

	// PEM formatted certificates to be written for the Executable
	// +optional
	PemCertificates *ExecutablePemCertificates `json:"pemCertificates,omitempty"`
}

ExecutableSpec defines the desired state of an Executable +k8s:openapi-gen=true

func (*ExecutableSpec) DeepCopy

func (in *ExecutableSpec) DeepCopy() *ExecutableSpec

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

func (*ExecutableSpec) DeepCopyInto

func (in *ExecutableSpec) DeepCopyInto(out *ExecutableSpec)

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

func (ExecutableSpec) Equal

func (es ExecutableSpec) Equal(other ExecutableSpec) bool

func (ExecutableSpec) Validate

func (es ExecutableSpec) Validate(specPath *field.Path) field.ErrorList

type ExecutableState

type ExecutableState string
const (
	// Same as ExecutableStateStarting. May be encountered if the Executable status has not been initialized yet.
	ExecutableStateEmpty ExecutableState = ""

	// The Executable has been scheduled to launch, but we will need to re-evaluate its state in a subsequent
	// reconciliation loop.
	ExecutableStateStarting ExecutableState = "Starting"

	// The Executable was successfully started and was running last time we checked.
	ExecutableStateRunning ExecutableState = "Running"

	// Executable is stopping (DCP is trying to stop the process)
	ExecutableStateStopping ExecutableState = "Stopping"

	// Terminated means the Executable was terminated by its owner (e.g. because ExecutableReplicaSet is scaling down).
	ExecutableStateTerminated ExecutableState = "Terminated"

	// Failed to start means the Executable could not be started
	ExecutableStateFailedToStart ExecutableState = "FailedToStart"

	// Finished means the Executable ran to completion.
	ExecutableStateFinished ExecutableState = "Finished"

	// Unknown means we are not tracking the actual-state counterpart of the Executable (process or IDE run session).
	// As a result, we do not know whether it already finished, and what is the exit code, if any.
	// This can happen if a controller launches a process and then terminates.
	// When a new controller instance comes online, it may see non-zero ExecutionID Status,
	// but it does not track the corresponding process or IDE session.
	ExecutableStateUnknown ExecutableState = "Unknown"
)

func (ExecutableState) CanUpdateTo

func (es ExecutableState) CanUpdateTo(newState ExecutableState) bool

func (ExecutableState) IsTerminal

func (es ExecutableState) IsTerminal() bool

type ExecutableStatus

type ExecutableStatus struct {
	// The execution ID is the identifier for the actual-state counterpart of the Executable.
	// For ExecutionType == Process it is the process ID. Process IDs will be eventually reused by OS,
	// but a combination of process ID and startup timestamp is unique for each Executable instance.
	// For ExecutionType == IDE it is the IDE session ID.
	// +optional
	ExecutionID string `json:"executionID"`

	// The PID of the process associated with the Executable
	// For either ExecutionType == Process or ExecutionType == IDE, this is the PID of the process that runs the Executable.
	// +optional
	PID *int64 `json:"pid,omitempty"`

	// The current state of the process/IDE session started for this executable
	State ExecutableState `json:"state"`

	// Start (attempt) timestamp.
	StartupTimestamp metav1.MicroTime `json:"startupTimestamp,omitempty"`

	// The time when the process/IDE session finished execution
	FinishTimestamp metav1.MicroTime `json:"finishTimestamp,omitempty"`

	// Exit code of the process associated with the Executable.
	// The value is equal to UnknownExitCode if the Executable was not started, is still running, or the exit code is not available.
	// +optional
	ExitCode *int32 `json:"exitCode,omitempty"`

	// The path of a temporary file that contains captured standard output data from the Executable process.
	StdOutFile string `json:"stdOutFile,omitempty"`

	// The path of a temporary file that contains captured standard error data from the Executable process.
	StdErrFile string `json:"stdErrFile,omitempty"`

	// Effective values of environment variables, after all substitutions are applied.
	// +listType=map
	// +listMapKey=name
	EffectiveEnv []EnvVar `json:"effectiveEnv,omitempty"`

	// Effective values of launch arguments to be passed to the Executable, after all substitutions are applied.
	// +listType=atomic
	EffectiveArgs []string `json:"effectiveArgs,omitempty"`

	// Health status of the Executable
	HealthStatus HealthStatus `json:"healthStatus,omitempty"`

	// Results of running health probes (most reacent per probe)
	// +listType=map
	// +listMapKey=probeName
	HealthProbeResults []HealthProbeResult `json:"healthProbeResults,omitempty"`
}

ExecutableStatus describes the status of an Executable. +k8s:openapi-gen=true

func (ExecutableStatus) CopyTo

func (*ExecutableStatus) DeepCopy

func (in *ExecutableStatus) DeepCopy() *ExecutableStatus

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

func (*ExecutableStatus) DeepCopyInto

func (in *ExecutableStatus) DeepCopyInto(out *ExecutableStatus)

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

type ExecutableTemplate

type ExecutableTemplate struct {
	// Labels to apply to child Executable objects
	Labels map[string]string `json:"labels,omitempty"`

	// Annotations to apply to child Executable objects
	Annotations map[string]string `json:"annotations,omitempty"`

	// Spec for child Executables
	Spec ExecutableSpec `json:"spec"`
}

+k8s:openapi-gen=true

func (*ExecutableTemplate) DeepCopy

func (in *ExecutableTemplate) DeepCopy() *ExecutableTemplate

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

func (*ExecutableTemplate) DeepCopyInto

func (in *ExecutableTemplate) DeepCopyInto(out *ExecutableTemplate)

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

func (ExecutableTemplate) Equal

func (et ExecutableTemplate) Equal(other ExecutableTemplate) bool

type ExecutionType

type ExecutionType string
const (
	// Executable will be run directly by the controller, as a child process.
	ExecutionTypeProcess ExecutionType = "Process"

	// Executable will be run via an IDE such as VS or VS Code.
	ExecutionTypeIDE ExecutionType = "IDE"
)

func (ExecutionType) IsValid

func (et ExecutionType) IsValid() bool

func (ExecutionType) IsValidOrDefault

func (et ExecutionType) IsValidOrDefault() bool

type FileSystemEntry

type FileSystemEntry struct {
	// The type of entry (file, symlink, or directory)
	Type FileSystemEntryType `json:"type,omitempty"`

	// The name of the entry (required)
	Name string `json:"name"`

	// The UID of the file owner. Defaults to 0 (root).
	Owner *int32 `json:"owner,omitempty"`

	// The ID of the file group. Defaults to 0 (root).
	Group *int32 `json:"group,omitempty"`

	// The unix mode permissions of this entry. If Mode is 0, the umask for the create file request will be applied.
	Mode fs.FileMode `json:"mode,omitempty"`

	// For file type entries, an optional path to a source file to copy. It's an error to set both a Source and Contents for a file.
	Source string `json:"source,omitempty"`

	// For symlink type entries, the target of the symlink. The target must be a valid path in the container (existing or created as
	// part of this create files set). The value can either be an absolute path or a relative path from the newly created symlink.
	Target string `json:"target,omitempty"`

	// For file type entries, the string contents of the file. Optional.
	Contents string `json:"contents,omitempty"`

	// For file type entries, the Base64 encoded byte contents of the file. Optional
	RawContents string `json:"rawContents,omitempty"`

	// For file type entries, if true, errors creating this file will be logged, but will not cause the overall CreateFiles operation to fail.
	ContinueOnError bool `json:"continueOnError,omitempty"`

	// For directory type entries, the child entries (files or directories). Optional.
	// +listType=atomic
	Entries []FileSystemEntry `json:"entries,omitempty"`
}

Represents part of the file structure to be created in the container +k8s:openapi-gen=true

func (*FileSystemEntry) DeepCopy

func (in *FileSystemEntry) DeepCopy() *FileSystemEntry

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

func (*FileSystemEntry) DeepCopyInto

func (in *FileSystemEntry) DeepCopyInto(out *FileSystemEntry)

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

func (*FileSystemEntry) Equal

func (cfi *FileSystemEntry) Equal(other *FileSystemEntry) bool

func (*FileSystemEntry) GetType

func (fse *FileSystemEntry) GetType() FileSystemEntryType

func (*FileSystemEntry) Validate

func (fse *FileSystemEntry) Validate(fieldPath *field.Path) field.ErrorList

type FileSystemEntryType

type FileSystemEntryType string
const (
	FileSystemEntryTypeFile    FileSystemEntryType = "file"    // default
	FileSystemEntryTypeOpenSSL FileSystemEntryType = "openssl" // special type for OpenSSL certificates
	FileSystemEntryTypeDir     FileSystemEntryType = "directory"
	// The public CreateFiles API validation doesn't allow specifying "symlink" as a FileSystemEntry
	// type, but the internal ContainerOrchestrator.CreateFiles library does support it.
	FileSystemEntryTypeSymlink FileSystemEntryType = "symlink"
)

type HealthProbe

type HealthProbe struct {
	// Name of the probe. This is used to identify the probe in the status of the parent object.
	// Must be unique within the parent object.
	Name string `json:"name"`

	// Type of the health probe
	Type HealthProbeType `json:"type"`

	// For Executable-type health probes, the configuration for the Executable health probe.
	// +optional
	ExecutableProbe *ExecutableProbe `json:"executableProbe,omitempty"`

	// For HTTP-type health probes, the configuration for the HTTP health probe.
	// +optional
	HttpProbe *HttpProbe `json:"httpProbe,omitempty"`

	// Schedule for running the probe
	Schedule HealthProbeSchedule `json:"schedule"`

	// Annotations (metadata) for the health probe
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
}

HealthProbe represents a health check to be performed on a Container or Executable. It is a discriminated union differentiated by the Type property. +k8s:openapi-gen=true

func (*HealthProbe) DeepCopy

func (in *HealthProbe) DeepCopy() *HealthProbe

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

func (*HealthProbe) DeepCopyInto

func (in *HealthProbe) DeepCopyInto(out *HealthProbe)

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

func (*HealthProbe) Equal

func (hp *HealthProbe) Equal(other *HealthProbe) bool

func (HealthProbe) String

func (hp HealthProbe) String() string

func (*HealthProbe) Validate

func (hp *HealthProbe) Validate(probePath *field.Path) field.ErrorList

Validate checks the health probe for correctness. The probePath argument is used to construct the field path for any validation errors. Returns a list of errors, or nil if the probe is valid.

type HealthProbeOutcome

type HealthProbeOutcome string
const (
	HealthProbeOutcomeSuccess HealthProbeOutcome = "Success"
	HealthProbeOutcomeFailure HealthProbeOutcome = "Failure"
	HealthProbeOutcomeUnknown HealthProbeOutcome = "Unknown"
)

type HealthProbeResult

type HealthProbeResult struct {
	// Outcome of the health probe
	Outcome HealthProbeOutcome `json:"outcome"`

	// Timestamp for the result
	Timestamp metav1.MicroTime `json:"timestamp"`

	// Name of the probe to which this result corresponds
	ProbeName string `json:"probeName"`

	// Human-readable message describing the outcome
	// +optional
	Reason string `json:"reason,omitempty"`
}

HealthProbeResult represents the result of a single execution of a health probe. +k8s:openapi-gen=true

func (*HealthProbeResult) DeepCopy

func (in *HealthProbeResult) DeepCopy() *HealthProbeResult

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

func (*HealthProbeResult) DeepCopyInto

func (in *HealthProbeResult) DeepCopyInto(out *HealthProbeResult)

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

func (HealthProbeResult) Diff

func (HealthProbeResult) String

func (hpr HealthProbeResult) String() string

type HealthProbeResultDiff

type HealthProbeResultDiff int
const (
	DiffNone          HealthProbeResultDiff = 0
	DiffTimestampOnly HealthProbeResultDiff = 1
	Different         HealthProbeResultDiff = 2
)

type HealthProbeSchedule

type HealthProbeSchedule struct {
	// Kind of the schedule
	// +kubebuilder:default:=Continuous
	Kind HealthProbeScheduleKind `json:"kind,omitempty"`

	// Interval at which the probe should run
	Interval metav1.Duration `json:"interval"`

	// Timeout for the probe (if the probe does not complete within this time, it is considered failed)
	// +optional
	Timeout *metav1.Duration `json:"timeout,omitempty"`

	// How long to wait between parent object startup and the first probe run
	// +optional
	InitialDelay *metav1.Duration `json:"initialDelay,omitempty"`
}

HealthProbeSchedule represents a schedule for running a health probe. +k8s:openapi-gen=true

func (*HealthProbeSchedule) DeepCopy

func (in *HealthProbeSchedule) DeepCopy() *HealthProbeSchedule

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

func (*HealthProbeSchedule) DeepCopyInto

func (in *HealthProbeSchedule) DeepCopyInto(out *HealthProbeSchedule)

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

func (*HealthProbeSchedule) Equal

func (hps *HealthProbeSchedule) Equal(other *HealthProbeSchedule) bool

func (*HealthProbeSchedule) Validate

func (hps *HealthProbeSchedule) Validate(schedulePath *field.Path) field.ErrorList

type HealthProbeScheduleKind

type HealthProbeScheduleKind string
const (
	// The probe runs periodically during the entire time when the parent object is running.
	HealthProbeScheduleContinuous HealthProbeScheduleKind = "Continuous"

	// The probe runs periodically until it succeeds. Once the probe succeeds, it stops running
	// and is considered successful for the remainder of the parent object's lifetime.
	HealthProbeScheduleUntilSuccess HealthProbeScheduleKind = "UntilSuccess"
)

type HealthProbeType

type HealthProbeType string
const (
	HealthProbeTypeHttp          HealthProbeType = "HTTP"
	HealthProbeTypeExecutable    HealthProbeType = "Executable"
	HealthProbeTypeContainerExec HealthProbeType = "ContainerExec"
)

type HealthStatus

type HealthStatus string
const (
	HealthStatusHealthy   HealthStatus = "Healthy"
	HealthStatusCaution   HealthStatus = "Caution"
	HealthStatusUnhealthy HealthStatus = "Unhealthy"
)

type HttpHeader

type HttpHeader struct {
	// Name of the HTTP header
	Name string `json:"name"`

	// Value of the HTTP header
	// +optional
	Value string `json:"value,omitempty"`
}

HttpHeader represents a single HTTP header to be included in an HTTP health probe. +k8s:openapi-gen=true

func (*HttpHeader) DeepCopy

func (in *HttpHeader) DeepCopy() *HttpHeader

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

func (*HttpHeader) DeepCopyInto

func (in *HttpHeader) DeepCopyInto(out *HttpHeader)

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

type HttpProbe

type HttpProbe struct {
	// URL to probe
	Url string `json:"url"`

	// Headers to include in the HTTP request
	// +optional
	// +listType=map
	// +listMapKey=name
	Headers []HttpHeader `json:"headers,omitempty"`
}

HttpProbe contains the configuration for an HTTP health probe. +k8s:openapi-gen=true

func (*HttpProbe) DeepCopy

func (in *HttpProbe) DeepCopy() *HttpProbe

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

func (*HttpProbe) DeepCopyInto

func (in *HttpProbe) DeepCopyInto(out *HttpProbe)

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

func (*HttpProbe) Equal

func (hhp *HttpProbe) Equal(other *HttpProbe) bool

func (*HttpProbe) Validate

func (hhp *HttpProbe) Validate(probePath *field.Path) field.ErrorList

type LogOptions

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

	// If true, follow the logs for the Executable or Container.
	// +optional
	Follow bool `json:"follow,omitempty"`

	// The source of the logs to display.
	// Note: the K8s API server does not support non-standard types in query parameters, so we can't use LogStreamSource here.
	// +optional
	Source string `json:"source,omitempty"`

	// If true, include timestamps (RFC3339) in the logs.
	// +optional
	Timestamps bool `json:"timestamps,omitempty"`

	// Limits the number of log lines to return.
	// Cannot be used if Follow option is true.
	// +optional
	Limit *int64 `json:"limit,omitempty"`

	// Limits the response to at most N existing, NEWEST log lines.
	// If Follow is set, new log lines that appear after the log stream was created
	// do not count against the limit, and will be streamed until the client closes the stream.
	// +optional
	Tail *int64 `json:"tail,omitempty"`

	// Skips the first N log lines in the result set. Not compatible with Tail option.
	// +optional
	Skip *int64 `json:"skip,omitempty"`

	// If true, include line numbers in the logs.
	// +optional
	LineNumbers bool `json:"line_numbers,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:resource:scope=Cluster +k8s:openapi-gen=true +k8s:conversion-gen:explicit-from=net/url.Values +k8s:conversion-gen:explicit-from=net/url.Values +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*LogOptions) DeepCopy

func (in *LogOptions) DeepCopy() *LogOptions

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

func (*LogOptions) DeepCopyInto

func (in *LogOptions) DeepCopyInto(out *LogOptions)

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

func (*LogOptions) DeepCopyObject

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

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

func (*LogOptions) GetGroupVersionResource

func (lo *LogOptions) GetGroupVersionResource() schema.GroupVersionResource

func (*LogOptions) GetObjectMeta

func (lo *LogOptions) GetObjectMeta() *metav1.ObjectMeta

func (*LogOptions) IsStorageVersion

func (lo *LogOptions) IsStorageVersion() bool

LogOptions are not really persisted. This function is somewhat mis-named: it is used by the API server for multi-version resources to distinguish between backward-compatibility versions that are not stored, and the "current" versions that are. So in our case the answer is "yes" since this code is the only version of LogOptions resource.

func (*LogOptions) NamespaceScoped

func (lo *LogOptions) NamespaceScoped() bool

func (*LogOptions) New

func (lo *LogOptions) New() runtime.Object

func (*LogOptions) NewList

func (lo *LogOptions) NewList() runtime.Object

func (*LogOptions) String

func (lo *LogOptions) String() string

func (*LogOptions) Validate

func (lo *LogOptions) Validate() error

type LogOptionsList

type LogOptionsList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
}

We'll never have "lists of LogOptions", but list definition is required to register the resource with the API server. +kubebuilder:object:generate=false

func (*LogOptionsList) DeepCopyObject

func (lsl *LogOptionsList) DeepCopyObject() runtime.Object

func (*LogOptionsList) GetListMeta

func (lsl *LogOptionsList) GetListMeta() *metav1.ListMeta

type LogStorage

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

+kubebuilder:object:generate=false

func NewLogStorage

func NewLogStorage(parentKindStorage registry_rest.StandardStorage, logStreamer ResourceLogStreamer) (*LogStorage, error)

func (*LogStorage) Destroy

func (ls *LogStorage) Destroy()

func (*LogStorage) Get

func (ls *LogStorage) Get(ctx context.Context, name string, options runtime.Object) (runtime.Object, error)

func (*LogStorage) GroupVersionKind

func (ls *LogStorage) GroupVersionKind(containingGV schema.GroupVersion) schema.GroupVersionKind

func (*LogStorage) New

func (ls *LogStorage) New() runtime.Object

func (*LogStorage) NewGetOptions

func (ls *LogStorage) NewGetOptions() (runtime.Object, bool, string)

func (*LogStorage) ProducesMIMETypes

func (ls *LogStorage) ProducesMIMETypes(httpVerb string) []string

func (*LogStorage) ProducesObject

func (ls *LogStorage) ProducesObject(httpVerb string) interface{}

ProducesObject returns an object the specified HTTP verb respond with. Only the type of the returned object matters, the value is ignored. We return string, since the logs are streamed as text/plain; the API server does not really expose "streamer" objects returned by the Get function.

type LogStreamSource

type LogStreamSource string
const (
	LogStreamSourceStdout        LogStreamSource = "stdout"
	LogStreamSourceStderr        LogStreamSource = "stderr"
	LogStreamSourceStartupStdout LogStreamSource = "startup_stdout"
	LogStreamSourceStartupStderr LogStreamSource = "startup_stderr"
	LogStreamSourceSystem        LogStreamSource = "system"
)

type LogStreamer

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

	Inner registry_rest.ResourceStreamer `json:"-"` // Do not serialize into JSON
}

The sole purpose of the LogStreamer existence is that a Kubernetes storage object (LogStorage for DCP logs) must be associated with an object (type) that it stores. Otherwise, resource_rest.ResourceStreamer instance would be sufficient for what we need to do.

+kubebuilder:object:generate=false +k8s:openapi-gen=true

func (*LogStreamer) DeepCopyObject

func (ls *LogStreamer) DeepCopyObject() runtime.Object

func (*LogStreamer) GetGroupVersionResource

func (ls *LogStreamer) GetGroupVersionResource() schema.GroupVersionResource

func (*LogStreamer) GetObjectMeta

func (ls *LogStreamer) GetObjectMeta() *metav1.ObjectMeta

func (*LogStreamer) InputStream

func (ls *LogStreamer) InputStream(ctx context.Context, apiVersion, acceptHeader string) (io.ReadCloser, bool, string, error)

Returns stream with the log contents

func (*LogStreamer) IsStorageVersion

func (ls *LogStreamer) IsStorageVersion() bool

LogStreamer is not really persisted. This function is somewhat mis-named: it is used by the API server for multi-version resources to distinguish between backward-compatibility versions that are not stored, and the "current" versions that are. So in our case the answer is "yes" since this code is the only version of LogStreamer resource.

func (*LogStreamer) NamespaceScoped

func (ls *LogStreamer) NamespaceScoped() bool

func (*LogStreamer) New

func (ls *LogStreamer) New() runtime.Object

func (*LogStreamer) NewList

func (ls *LogStreamer) NewList() runtime.Object

type LogStreamerList

type LogStreamerList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
}

We'll never have "lists of LogStreamers", but list definition is required to register the resource with the API server. +kubebuilder:object:generate=false

func (*LogStreamerList) DeepCopyObject

func (lsl *LogStreamerList) DeepCopyObject() runtime.Object

func (*LogStreamerList) GetListMeta

func (lsl *LogStreamerList) GetListMeta() *metav1.ListMeta

type PemCertificate

type PemCertificate struct {
	// The certificate thumbprint
	Thumbprint string `json:"thumbprint"`

	// The PEM encoded certificate data
	Contents string `json:"contents"`
}

PemCertificate represents a PEM encoded (public) certificate +k8s:openapi-gen=true

func (*PemCertificate) DeepCopy

func (in *PemCertificate) DeepCopy() *PemCertificate

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

func (*PemCertificate) DeepCopyInto

func (in *PemCertificate) DeepCopyInto(out *PemCertificate)

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

func (*PemCertificate) Equal

func (pc *PemCertificate) Equal(other *PemCertificate) bool

func (*PemCertificate) OpenSSLFingerprint

func (pc *PemCertificate) OpenSSLFingerprint() (string, error)

OpenSSLFingerprint computes the OpenSSL-style subject hash for the certificate

func (*PemCertificate) ToX509Certificate

func (pc *PemCertificate) ToX509Certificate() (*x509.Certificate, error)

ToX509Certificate converts the PemCertificate to an x509.Certificate

func (*PemCertificate) Validate

func (pc *PemCertificate) Validate(fieldPath *field.Path) field.ErrorList

type PortProtocol

type PortProtocol string
const (
	TCP PortProtocol = "TCP"
	UDP PortProtocol = "UDP"
)

type PullPolicy

type PullPolicy string
const (
	// Always pull the container image
	PullPolicyAlways PullPolicy = "always"

	// Pull the container image only if it is not present
	PullPolicyMissing PullPolicy = "missing"

	// Never pull the container image
	PullPolicyNever PullPolicy = "never"
)

type ResourceLogStreamer

type ResourceLogStreamer interface {
	// StreamLogs returns a boolean indicating if the logs are ready to be streamed, a channel that will be closed when the logs are done streaming, and an error if one occurred.
	StreamLogs(ctx context.Context, dest io.Writer, obj apiserver_resource.Object, opts *LogOptions, log logr.Logger) (ResourceStreamStatus, <-chan struct{}, error)

	// Callback when a resource of the type this streamer is registered for is deleted to allow for resource cleanup.
	OnResourceUpdated(evt ResourceWatcherEvent, log logr.Logger)

	// Disposes the log streamer and underlying resources.
	Dispose() error
}

ResourceLogStreamFactory is an entity that knows how to stream logs for a given resource. +kubebuilder:object:generate=false

type ResourceStreamStatus

type ResourceStreamStatus string
const (
	ResourceStreamStatusStreaming ResourceStreamStatus = "streaming"
	ResourceStreamStatusDone      ResourceStreamStatus = "done"
	ResourceStreamStatusNotReady  ResourceStreamStatus = "not_ready"
)

type ResourceStreamerFunc

type ResourceStreamerFunc func(ctx context.Context, apiVersion, acceptHeader string) (io.ReadCloser, bool, string, error)

+kubebuilder:object:generate=false

func (ResourceStreamerFunc) InputStream

func (rs ResourceStreamerFunc) InputStream(ctx context.Context, apiVersion, acceptHeader string) (io.ReadCloser, bool, string, error)

type ResourceWatcherEvent

type ResourceWatcherEvent struct {
	Type   watch.EventType
	Object apiserver_resource.Object
}

+kubebuilder:object:generate=false

type Service

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

	Spec   ServiceSpec   `json:"spec,omitempty"`
	Status ServiceStatus `json:"status,omitempty"`
}

Service represents a single service implemented by zero or more endpoints +kubebuilder:object:root=true +kubebuilder:subresource:status +k8s:openapi-gen=true +kubebuilder:resource:scope=Cluster

func (*Service) DeepCopy

func (in *Service) DeepCopy() *Service

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

func (*Service) DeepCopyInto

func (in *Service) DeepCopyInto(out *Service)

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

func (*Service) DeepCopyObject

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

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

func (*Service) Done

func (svc *Service) Done() bool

Done implements StdIoStreamableResource.

func (*Service) GetDeletionTimestamp

func (svc *Service) GetDeletionTimestamp() *metav1.Time

GetDeletionTimestamp implements StdIoStreamableResource. Subtle: this method shadows the method (ObjectMeta).GetDeletionTimestamp of Service.ObjectMeta.

func (*Service) GetGroupVersionResource

func (svc *Service) GetGroupVersionResource() schema.GroupVersionResource

func (*Service) GetObjectMeta

func (svc *Service) GetObjectMeta() *metav1.ObjectMeta

func (*Service) GetResourceId

func (svc *Service) GetResourceId() string

func (*Service) GetStatus

func (svc *Service) GetStatus() apiserver_resource.StatusSubResource

func (*Service) GetStdErrFile

func (svc *Service) GetStdErrFile() string

GetStdErrFile implements StdIoStreamableResource.

func (*Service) GetStdOutFile

func (svc *Service) GetStdOutFile() string

GetStdOutFile implements StdIoStreamableResource.

func (*Service) GetUID

func (svc *Service) GetUID() types.UID

GetUID implements StdIoStreamableResource. Subtle: this method shadows the method (ObjectMeta).GetUID of Service.ObjectMeta.

func (*Service) HasStdErr

func (ce *Service) HasStdErr() bool

HasStdErr implements StdOutStreamableResource.

func (*Service) HasStdOut

func (ce *Service) HasStdOut() bool

HasStdOut implements StdOutStreamableResource.

func (*Service) IsStorageVersion

func (svc *Service) IsStorageVersion() bool

func (*Service) NamespaceScoped

func (svc *Service) NamespaceScoped() bool

func (*Service) NamespacedName

func (svc *Service) NamespacedName() types.NamespacedName

func (*Service) New

func (svc *Service) New() runtime.Object

func (*Service) NewList

func (svc *Service) NewList() runtime.Object

func (*Service) ShortNames

func (svc *Service) ShortNames() []string

func (*Service) Validate

func (svc *Service) Validate(ctx context.Context) field.ErrorList

type ServiceList

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

ServiceList contains a list of Service instances +k8s:openapi-gen=true +kubebuilder:object:root=true

func (*ServiceList) DeepCopy

func (in *ServiceList) DeepCopy() *ServiceList

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

func (*ServiceList) DeepCopyInto

func (in *ServiceList) DeepCopyInto(out *ServiceList)

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

func (*ServiceList) DeepCopyObject

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

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

func (*ServiceList) GetItems

func (svcl *ServiceList) GetItems() []*Service

func (*ServiceList) GetListMeta

func (svcl *ServiceList) GetListMeta() *metav1.ListMeta

func (*ServiceList) ItemCount

func (svcl *ServiceList) ItemCount() uint32

type ServiceSpec

type ServiceSpec struct {
	// The desired address for the service to run on
	Address string `json:"address,omitempty"`

	// The desired port for the service to run on
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	Port int32 `json:"port,omitempty"`

	// The protocol, TCP or UDP
	Protocol PortProtocol `json:"protocol,omitempty"`

	// The mode for address allocation. If Address is set, this will be ignored.
	AddressAllocationMode AddressAllocationMode `json:"addressAllocationMode,omitempty"`
}

ServiceSpec defines the desired state of a Service +k8s:openapi-gen=true

func (*ServiceSpec) DeepCopy

func (in *ServiceSpec) DeepCopy() *ServiceSpec

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

func (*ServiceSpec) DeepCopyInto

func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec)

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

type ServiceState

type ServiceState string
const (
	// The service is not ready to accept connections
	ServiceStateNotReady ServiceState = "NotReady"

	// The service is ready to accept connections
	ServiceStateReady ServiceState = "Ready"
)

type ServiceStatus

type ServiceStatus struct {
	// The current state of the service
	// +kubebuilder:default:=NotReady
	State ServiceState `json:"state,omitempty"`

	// The PID of the proxy process
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=4294967295
	// +optional
	ProxyProcessPid *int64 `json:"proxyProcessPid,omitempty"`

	// The path of the proxy config file for this service containing both routing config and service definition
	// +optional
	ProxyConfigFile string `json:"proxyConfigFile,omitempty"`

	// The actual address the service is running on
	EffectiveAddress string `json:"effectiveAddress,omitempty"`

	// The actual port the service is running on
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	EffectivePort int32 `json:"effectivePort,omitempty"`

	// When in Proxyless mode, the namespace of the Endpoint that was chosen to use as the service's effective address and port
	// +optional
	ProxylessEndpointNamespace string `json:"proxylessEndpointNamespace,omitempty"`

	// When in Proxyless mode, the name of the Endpoint that was chosen to use as the service's effective address and port
	// +optional
	ProxylessEndpointName string `json:"proxylessEndpointName,omitempty"`
}

ServiceStatus describes the status of a Service +k8s:openapi-gen=true

func (ServiceStatus) CopyTo

func (*ServiceStatus) DeepCopy

func (in *ServiceStatus) DeepCopy() *ServiceStatus

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

func (*ServiceStatus) DeepCopyInto

func (in *ServiceStatus) DeepCopyInto(out *ServiceStatus)

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

type StdIoStreamableResource

type StdIoStreamableResource interface {
	GetUID() types.UID
	NamespacedName() types.NamespacedName
	HasStdOut() bool
	HasStdErr() bool
	GetStdOutFile() string
	GetStdErrFile() string
	GetResourceId() string
	Done() bool

	// This is set by Kubernetes with 1-second precision when the resource is deleted
	// Hence we use metav1.Time here instead of metav1.MicroTime
	GetDeletionTimestamp() *metav1.Time
}

+kubebuilder:object:generate=false +k8s:openapi-gen=false

type TunnelConfiguration

type TunnelConfiguration struct {
	// User-friendly name for the tunnel (used in status reporting and debugging).
	// Must be unique within the ContainerNetworkTunnelProxy.
	Name string `json:"name"`

	// Namespace of the Service that identifies the server the tunnel connects to.
	// +optional
	ServerServiceNamespace string `json:"serverServiceNamespace,omitempty"`

	// Name of the Service that identifies the server the tunnel connects to.
	ServerServiceName string `json:"serverServiceName"`

	// Namespace of the Service associated with the client proxy on the container network.
	// +optional
	ClientServiceNamespace string `json:"clientServiceNamespace,omitempty"`

	// Name of the Service associated with the client proxy on the container network.
	ClientServiceName string `json:"clientServiceName"`
}

TunnelConfiguration defines a single tunnel enabled by a ContainerNetworkTunnelProxy. +k8s:openapi-gen=true

func (*TunnelConfiguration) DeepCopy

func (in *TunnelConfiguration) DeepCopy() *TunnelConfiguration

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

func (*TunnelConfiguration) DeepCopyInto

func (in *TunnelConfiguration) DeepCopyInto(out *TunnelConfiguration)

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

func (TunnelConfiguration) KV

Converts a TunnelConfiguration to key-value pair for use in maps.

type TunnelState

type TunnelState string
const (
	// Tunnel is ready and accepting connections.
	TunnelStateReady TunnelState = "Ready"

	// Tunnel preparation failed, see ErrorMessage for details.
	TunnelStateFailed TunnelState = "Failed"

	// Initial state -- no attempt to prepare the tunnel have been made yet.
	TunnelStateEmpty TunnelState = ""

	// Tunnel is being prepared, or is waiting for required services to become ready.
	TunnelStateNotReady TunnelState = "NotReady"
)

type TunnelStatus

type TunnelStatus struct {
	// Name of the tunnel (matches TunnelConfiguration.Name).
	Name string `json:"name"`

	// Internal tunnel ID assigned by the proxy pair.
	TunnelID uint32 `json:"tunnelId,omitempty"`

	// Current state of the tunnel.
	State TunnelState `json:"state"`

	// Human-readable explanation for why the tunnel preparation failed (if it did).
	ErrorMessage string `json:"errorMessage,omitempty"`

	// Addresses on the container network that client proxy is listening on for this tunnel.
	// May be empty if the tunnel is not ready.
	// +listType=set
	ClientProxyAddresses []string `json:"clientProxyAddresses,omitempty"`

	// Port on the container network that client proxy is listening on for this tunnel.
	// May be zero if the tunnel is not ready.
	ClientProxyPort int32 `json:"clientProxyPort,omitempty"`

	// The timestamp for the status (last update).
	Timestamp metav1.MicroTime `json:"timestamp"`
}

TunnelStatus represents the status of a single tunnel within the proxy pair +k8s:openapi-gen=true

func (TunnelStatus) Clone

func (ts TunnelStatus) Clone() TunnelStatus

func (*TunnelStatus) DeepCopy

func (in *TunnelStatus) DeepCopy() *TunnelStatus

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

func (*TunnelStatus) DeepCopyInto

func (in *TunnelStatus) DeepCopyInto(out *TunnelStatus)

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

func (TunnelStatus) Equal

func (ts TunnelStatus) Equal(other TunnelStatus) bool

func (TunnelStatus) KV

func (ts TunnelStatus) KV() (string, TunnelStatus)

type VolumeMount

type VolumeMount struct {
	Type VolumeMountType `json:"type"`

	// Bind mounts: the host directory to mount
	// Volume mounts: name of the volume to mount
	Source string `json:"source"`

	// The path within the container that the mount will use
	Target string `json:"target"`

	// True if the mounted file system is supposed to be read-only
	ReadOnly bool `json:"readOnly,omitempty"`
}

+k8s:openapi-gen=true

func (*VolumeMount) DeepCopy

func (in *VolumeMount) DeepCopy() *VolumeMount

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

func (*VolumeMount) DeepCopyInto

func (in *VolumeMount) DeepCopyInto(out *VolumeMount)

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

type VolumeMountType

type VolumeMountType string
const (
	// A volume mount to a host directory
	BindMount VolumeMountType = "bind"

	// A volume mount to a named volume managed by an orchestrator
	NamedVolumeMount VolumeMountType = "volume"
)

Jump to

Keyboard shortcuts

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