v1alpha2

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Sep 1, 2024 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

Package v1alpha2 contains API Schema definitions for the kode v1alpha2 API group +kubebuilder:object:generate=true +groupName=kode.jacero.io

Index

Constants

This section is empty.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "kode.jacero.io", Version: "v1alpha2"}

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

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

Functions

This section is empty.

Types

type Address

type Address struct {
	// The socket address
	// +kubebuilder:validation:Required
	SocketAddress SocketAddress `json:"socket_address"`
}

func (*Address) DeepCopy

func (in *Address) DeepCopy() *Address

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

func (*Address) DeepCopyInto

func (in *Address) DeepCopyInto(out *Address)

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

type AuthSpec

type AuthSpec struct {
	// The Envoy Gateway SecurityPolicy to use for the authentication. Can be either "none", "basicAuth", "jwt", "oidc", "extAuth" or "authorization". Reference: https://gateway.envoyproxy.io/contributions/design/security-policy/
	// +kubebuilder:validation:Enum=none;basicAuth;jwt;oidc;extAuth
	// +kubebuilder:default=none
	AuthType AuthType `json:"authType" yaml:"authType"`

	// Defines the SecurityPolicies to be applied to the Route. Reference: https://gateway.envoyproxy.io/contributions/design/security-policy/
	// +kubebuilder:validation:Optional
	SecurityPolicySpec *SecurityPolicySpec `json:"securityPolicySpec,omitempty" yaml:"securityPolicySpec,omitempty"`

	// Reference to a field in the JWT token of OIDC or JWT. It will influence the controller on how to route the request and authorize the user.
	// +kubebuilder:validation:Optional
	IdentityReference *IdentityReference `json:"identityReference,omitempty" yaml:"identityReference,omitempty"`
}

func (*AuthSpec) DeepCopy

func (in *AuthSpec) DeepCopy() *AuthSpec

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

func (*AuthSpec) DeepCopyInto

func (in *AuthSpec) DeepCopyInto(out *AuthSpec)

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

type AuthType

type AuthType string

AuthType is the type of authentication to use for the EntryPoint. +kubebuilder:validation:Enum=none;basicAuth;jwt;oidc;extAuth

const (
	AuthTypeNone          AuthType = "none"
	AuthTypeBasicAuth     AuthType = "basicAuth"
	AuthTypeJWT           AuthType = "jwt"
	AuthTypeOIDC          AuthType = "oidc"
	AuthTypeExtAuth       AuthType = "extAuth"
	AuthTypeAuthorization AuthType = "authorization"
)

type BaseDomain

type BaseDomain string

BaseDomain is the domain name to use either as a suffix in the case of Type=domain or as a prefix/domain in the case of Type=path. TODO: Add validation pattern: "^([a-zA-Z0-9_]+\.)*[a-zA-Z0-9_]+$"

type BaseSharedSpec

type BaseSharedSpec struct {
	// Credentials specifies the credentials for the service.
	Credentials *CredentialsSpec `json:"credentials,omitempty" yaml:"credentials,omitempty"`

	// EntryPointSpec defines the desired state of the entrypoint.
	EntryPointRef *CrossNamespaceObjectReference `json:"entryPointRef,omitempty" yaml:"entryPointRef,omitempty"`

	// Specifies the period before controller inactive the resource (delete all resources except volume).
	// +kubebuilder:default=600
	InactiveAfterSeconds *int64 `json:"inactiveAfterSeconds,omitempty" yaml:"inactiveAfterSeconds,omitempty"`

	// Specifies the period before controller recycle the resource (delete all resources).
	// +kubebuilder:default=28800
	RecycleAfterSeconds *int64 `json:"recycleAfterSeconds,omitempty" yaml:"recycleAfterSeconds,omitempty"`

	// Port is the port for the service process. Used by EnvoyProxy to expose the kode.
	// +kubebuilder:default=8000
	Port *Port `json:"port,omitempty" yaml:"port,omitempty"`
}

BaseSharedSpec defines the common fields for both Tofu and Container specs

func (*BaseSharedSpec) DeepCopy

func (in *BaseSharedSpec) DeepCopy() *BaseSharedSpec

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

func (*BaseSharedSpec) DeepCopyInto

func (in *BaseSharedSpec) DeepCopyInto(out *BaseSharedSpec)

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

type BaseSharedStatus

type BaseSharedStatus struct {
	// ObservedGeneration is the last observed generation of the resource.
	ObservedGeneration int64 `json:"observedGeneration,omitempty" yaml:"observedGeneration,omitempty"`

	// Conditions reflect the current state of the resource
	Conditions []metav1.Condition `json:"conditions,omitempty" yaml:"conditions,omitempty"`

	// Contains the last error message encountered during reconciliation.
	LastError *string `json:"lastError,omitempty" yaml:"lastError,omitempty"`

	// The timestamp when the last error occurred.
	LastErrorTime *metav1.Time `json:"lastErrorTime,omitempty" yaml:"lastErrorTime,omitempty"`
}

SharedStatus defines the common observed state

func (*BaseSharedStatus) DeepCopy

func (in *BaseSharedStatus) DeepCopy() *BaseSharedStatus

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

func (*BaseSharedStatus) DeepCopyInto

func (in *BaseSharedStatus) DeepCopyInto(out *BaseSharedStatus)

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

type Cluster

type Cluster struct {
	// Name of the cluster
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:Required
	Name string `json:"name"`

	// The timeout for connecting to the cluster
	// +kubebuilder:validation:Required
	ConnectTimeout string `json:"connect_timeout"`

	// The type of the cluster
	// +kubebuilder:validation:Required
	// +kube:validation:Enum=STRICT_DNS;LOGICAL_DNS;STATIC;EDS;ORIGINAL_DST;ENVIRONMENT_VARIABLE
	// +kube:validation:default=STRICT_DNS
	Type string `json:"type"`

	// The load balancing policy for the cluster
	// +kubebuilder:validation:Required
	// +kube:validation:Enum=ROUND_ROBIN;LEAST_REQUEST;RANDOM;RING_HASH;MAGLEV;ORIGINAL_DST_LB;CLUSTER_PROVIDED
	LbPolicy string `json:"lb_policy"`

	// Map of typed extension protocol options
	// +kubebuilder:validation:Optional
	TypedExtensionProtocolOptions runtime.RawExtension `json:"typed_extension_protocol_options,omitempty"`

	// The load assignment for the cluster
	// +kubebuilder:validation:Required
	LoadAssignment LoadAssignment `json:"load_assignment"`
}

func (*Cluster) DeepCopy

func (in *Cluster) DeepCopy() *Cluster

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

func (*Cluster) DeepCopyInto

func (in *Cluster) DeepCopyInto(out *Cluster)

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

type ClusterPodTemplate

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

	Spec   ClusterPodTemplateSpec   `json:"spec,omitempty"`
	Status ClusterPodTemplateStatus `json:"status,omitempty"`
}

ClusterPodTemplate is the Schema for the clusterpodtemplates API

func (*ClusterPodTemplate) DeepCopy

func (in *ClusterPodTemplate) DeepCopy() *ClusterPodTemplate

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

func (*ClusterPodTemplate) DeepCopyInto

func (in *ClusterPodTemplate) DeepCopyInto(out *ClusterPodTemplate)

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

func (*ClusterPodTemplate) DeepCopyObject

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

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

type ClusterPodTemplateList

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

ClusterPodTemplateList contains a list of ClusterPodTemplate

func (*ClusterPodTemplateList) DeepCopy

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

func (*ClusterPodTemplateList) DeepCopyInto

func (in *ClusterPodTemplateList) DeepCopyInto(out *ClusterPodTemplateList)

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

func (*ClusterPodTemplateList) DeepCopyObject

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

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

type ClusterPodTemplateSpec

type ClusterPodTemplateSpec struct {
	PodTemplateSharedSpec `json:",inline" yaml:",inline"`
}

ClusterPodTemplateSpec defines the desired state of ClusterKodeContainer

func (*ClusterPodTemplateSpec) DeepCopy

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

func (*ClusterPodTemplateSpec) DeepCopyInto

func (in *ClusterPodTemplateSpec) DeepCopyInto(out *ClusterPodTemplateSpec)

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

type ClusterPodTemplateStatus

type ClusterPodTemplateStatus struct {
	PodTemplateSharedStatus `json:",inline" yaml:",inline"`
}

ClusterPodTemplateStatus defines the observed state of ClusterKodeContainer

func (*ClusterPodTemplateStatus) DeepCopy

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

func (*ClusterPodTemplateStatus) DeepCopyInto

func (in *ClusterPodTemplateStatus) DeepCopyInto(out *ClusterPodTemplateStatus)

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

type ClusterTofuTemplate

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

	Spec   ClusterTofuTemplateSpec   `json:"spec,omitempty"`
	Status ClusterTofuTemplateStatus `json:"status,omitempty"`
}

ClusterTofuTemplate is the Schema for the clustertofutemplates API

func (*ClusterTofuTemplate) DeepCopy

func (in *ClusterTofuTemplate) DeepCopy() *ClusterTofuTemplate

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

func (*ClusterTofuTemplate) DeepCopyInto

func (in *ClusterTofuTemplate) DeepCopyInto(out *ClusterTofuTemplate)

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

func (*ClusterTofuTemplate) DeepCopyObject

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

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

type ClusterTofuTemplateList

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

ClusterTofuTemplateList contains a list of ClusterTofuTemplate

func (*ClusterTofuTemplateList) DeepCopy

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

func (*ClusterTofuTemplateList) DeepCopyInto

func (in *ClusterTofuTemplateList) DeepCopyInto(out *ClusterTofuTemplateList)

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

func (*ClusterTofuTemplateList) DeepCopyObject

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

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

type ClusterTofuTemplateSpec

type ClusterTofuTemplateSpec struct {
	TofuSharedSpec `json:",inline"`
}

ClusterTofuTemplateSpec defines the desired state of ClusterKodeTofu

func (*ClusterTofuTemplateSpec) DeepCopy

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

func (*ClusterTofuTemplateSpec) DeepCopyInto

func (in *ClusterTofuTemplateSpec) DeepCopyInto(out *ClusterTofuTemplateSpec)

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

type ClusterTofuTemplateStatus

type ClusterTofuTemplateStatus struct {
	TofuSharedStatus `json:",inline"`
}

ClusterKodeTofuStatus defines the observed state of ClusterKodeTofu

func (*ClusterTofuTemplateStatus) DeepCopy

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

func (*ClusterTofuTemplateStatus) DeepCopyInto

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

type CredentialsSpec

type CredentialsSpec struct {
	// Is both the the HTTP Basic auth username (when used) and the user the container should run as. Defaults to 'abc'.
	Username string `json:"username,omitempty" yaml:"username,omitempty"`

	// HTTP Basic auth password. If unset, there will be no authentication.
	Password string `json:"password,omitempty" yaml:"password,omitempty"`

	// ExistingSecret is a reference to an existing secret containing user and password. If set, User and Password fields are ignored.
	// MUST set "username" and "password" in lowercase in the secret. CAN set either "username" or "password" or both.
	ExistingSecret *string `json:"existingSecret,omitempty" yaml:"existingSecret,omitempty"`

	// EnableBuiltinAuth enables the built-in HTTP Basic auth.
	// +kubebuilder:default=false
	EnableBuiltinAuth bool `json:"enableBuiltinAuth,omitempty" yaml:"enableBuiltinAuth,omitempty"`
}

func (*CredentialsSpec) DeepCopy

func (in *CredentialsSpec) DeepCopy() *CredentialsSpec

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

func (*CredentialsSpec) DeepCopyInto

func (in *CredentialsSpec) DeepCopyInto(out *CredentialsSpec)

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

type CrossNamespaceObjectReference

type CrossNamespaceObjectReference struct {
	// API version of the referent.
	// +kubebuilder:validation:Optional
	APIVersion *string `json:"apiVersion,omitempty" yaml:"apiVersion,omitempty"`

	// Kind is the resource kind.
	Kind Kind `json:"kind" yaml:"kind"`

	// Name is the name of the resource.
	Name ObjectName `json:"name" yaml:"name"`

	// Namespace is the namespace of the resource.
	// +kubebuilder:validation:Optional
	Namespace *Namespace `json:"namespace,omitempty" yaml:"namespace,omitempty"`
}

func (*CrossNamespaceObjectReference) DeepCopy

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

func (*CrossNamespaceObjectReference) DeepCopyInto

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

type Endpoint

type Endpoint struct {
	// The address of the load balancer endpoint
	// +kubebuilder:validation:Required
	Address Address `json:"address"`
}

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.

type Endpoints

type Endpoints struct {
	// The load balancer endpoints
	// +kubebuilder:validation:Required
	LbEndpoints []LbEndpoint `json:"lb_endpoints"`
}

func (*Endpoints) DeepCopy

func (in *Endpoints) DeepCopy() *Endpoints

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

func (*Endpoints) DeepCopyInto

func (in *Endpoints) DeepCopyInto(out *Endpoints)

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

type EntryPoint

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

	Spec   EntryPointSpec   `json:"spec,omitempty"`
	Status EntryPointStatus `json:"status,omitempty"`
}

EntryPoint is the Schema for the entrypoints API

func (*EntryPoint) DeepCopy

func (in *EntryPoint) DeepCopy() *EntryPoint

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

func (*EntryPoint) DeepCopyInto

func (in *EntryPoint) DeepCopyInto(out *EntryPoint)

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

func (*EntryPoint) DeepCopyObject

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

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

func (*EntryPoint) GetCondition

func (e *EntryPoint) GetCondition(conditionType string) *metav1.Condition

func (*EntryPoint) HasExistingGateway

func (e *EntryPoint) HasExistingGateway() bool

func (*EntryPoint) IsActive

func (e *EntryPoint) IsActive() bool

func (*EntryPoint) IsPathRouting

func (e *EntryPoint) IsPathRouting() bool

func (*EntryPoint) IsSubdomainRouting

func (e *EntryPoint) IsSubdomainRouting() bool

func (*EntryPoint) SetCondition

func (e *EntryPoint) SetCondition(conditionType string, status metav1.ConditionStatus, reason, message string)

type EntryPointList

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

EntryPointList contains a list of EntryPoint

func (*EntryPointList) DeepCopy

func (in *EntryPointList) DeepCopy() *EntryPointList

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

func (*EntryPointList) DeepCopyInto

func (in *EntryPointList) DeepCopyInto(out *EntryPointList)

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

func (*EntryPointList) DeepCopyObject

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

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

type EntryPointPhase

type EntryPointPhase string

EntryPointPhase defines the phase of the EntryPoint

const (
	// EntryPointPhasePending indicates that the EntryPoint resource is pending.
	// The Gateway and other resources are not created yet.
	EntryPointPhasePending EntryPointPhase = "Pending"

	// EntryPointPhaseConfiguring indicates that the EntryPoint resource is configuring.
	// The Gateway and other resources are being created.
	EntryPointPhaseConfiguring EntryPointPhase = "Configuring"

	// EntryPointPhaseProvisioning indicates that the EntryPoint resource is provisioning.
	// The Gateway and other resources are being provisioned.
	// The EntryPoint is not ready to serve traffic.
	EntryPointPhaseProvisioning EntryPointPhase = "Provisioning"

	// EntryPointPhaseActive indicates that the EntryPoint resource is fully operational.
	// The Gateway and other resources have been created and the EntryPoint is ready to serve traffic.
	EntryPointPhaseActive EntryPointPhase = "Active"

	// EntryPointPhaseDeleting indicates that the EntryPoint resource is being deleted.
	// The Gateway and other resources are being deleted.
	EntryPointPhaseDeleting EntryPointPhase = "Deleting"

	// EntryPointPhaseFailed indicates that the EntryPoint resource has failed.
	EntryPointPhaseFailed EntryPointPhase = "Failed"

	// EntryPointPhaseUnknown indicates that the EntryPoint resource is in an unknown state.
	EntryPointPhaseUnknown EntryPointPhase = "Unknown"
)

type EntryPointSpec

type EntryPointSpec struct {
	// The way the Kode resource is accessed by the user. It could be subdomain or path.
	// Path means the Kode resource is accessed as a path of the BaseDomain (e.g kode.example.com/<kode-resource>).
	// Subdomain means the Kode resource is accessed as a subdomain of the BaseDomain (e.g <kode-resource>.kode.example.com).
	// +kubebuilder:validation:Enum=subdomain;path
	// +kubebuilder:default=path
	RoutingType RoutingType `json:"routingType" yaml:"routingType"`

	// The domain name to use either as a suffix in the case of Type=domain or as a prefix/domain in the case of Type=path.
	// When the type is domain, the controller will try to publish the Kode resource as a subdomain of the given domain (e.g <kode-resource>.kode.example.com).
	// When the type is path, the controller will try to publish the Kode resource as a path of the given BaseDomain (e.g kode.example.com/<kode-resource>).
	// +kubebuilder:validation:Pattern=^([a-zA-Z0-9_]+\.)*[a-zA-Z0-9_]+$
	BaseDomain string `json:"baseDomain" yaml:"baseDomain"`

	// GatewaySpec defines the GatewaySpec for the EntryPoint. Only one of GatewaySpec or IngressSpec can be set.
	// +kubebuilder:validation:Optional
	GatewaySpec *GatewaySpec `json:"gatewaySpec,omitempty" yaml:"gatewaySpec,omitempty"`

	// AuthSpec defines the AuthSpec for the EntryPoint. Use this to influence the authentication and authorization policies of the EntryPoint.
	// +kubebuilder:validation:Optional
	AuthSpec *AuthSpec `json:"authSpec,omitempty" yaml:"authSpec,omitempty"`
}

EntryPointSpec defines the desired state of EntryPoint

func (*EntryPointSpec) DeepCopy

func (in *EntryPointSpec) DeepCopy() *EntryPointSpec

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

func (*EntryPointSpec) DeepCopyInto

func (in *EntryPointSpec) DeepCopyInto(out *EntryPointSpec)

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

type EntryPointStatus

type EntryPointStatus struct {
	BaseSharedStatus `json:",inline" yaml:",inline"`

	// Represents the current phase of the EntryPointPhase resource.
	Phase EntryPointPhase `json:"phase" yaml:"phase"`
}

EntryPointStatus defines the observed state of EntryPoint

func (*EntryPointStatus) DeepCopy

func (in *EntryPointStatus) DeepCopy() *EntryPointStatus

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

func (*EntryPointStatus) DeepCopyInto

func (in *EntryPointStatus) DeepCopyInto(out *EntryPointStatus)

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

type GatewaySpec

type GatewaySpec struct {
	// Reference to an existing Gateway to use for the EntryPoint. Setting this will override everything else in GatewaySpec.
	// +kubebuilder:validation:Optional
	ExistingGatewayRef *CrossNamespaceObjectReference `json:"existingGatewayRef,omitempty" yaml:"existingGatewayRef,omitempty"`

	// The name of the GatewayClass to use for the Gateway.
	// +kubebuilder:validation:Optional
	GatewayClassName *gwapiv1.ObjectName `json:"gatewayClassName,omitempty" yaml:"gatewayClassName,omitempty"`

	// Reference to Secrets containing the certificate and private key to use for the Gateway HTTPS Listener.
	// +kubebuilder:validation:Optional
	CertificateRefs *[]gwapiv1.SecretObjectReference `json:"certificateRefs,omitempty" yaml:"certificateRefs,omitempty"`

	// Defines the SecurityPolicies to be applied to the Gateway. Reference: https://gateway.envoyproxy.io/contributions/design/security-policy/
	// +kubebuilder:validation:Optional
	SecurityPolicySpec *SecurityPolicySpec `json:"securityPolicySpec,omitempty" yaml:"securityPolicySpec,omitempty"`

	// Defines the custom patch policy for the Envoy Proxy config generated by Envoy Gateway. For experienced users.
	// +kubebuilder:validation:Optional
	EnvoyPatchPolicySpec *egv1alpha1.EnvoyPatchPolicySpec `json:"envoyPatchPolicySpec,omitempty" yaml:"envoyPatchPolicySpec,omitempty"`
}

func (*GatewaySpec) DeepCopy

func (in *GatewaySpec) DeepCopy() *GatewaySpec

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

func (*GatewaySpec) DeepCopyInto

func (in *GatewaySpec) DeepCopyInto(out *GatewaySpec)

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

type Group

type Group string

Group refers to a Kubernetes Group. It must either be an empty string or a RFC 1123 subdomain.

This validation is based off of the corresponding Kubernetes validation: https://github.com/kubernetes/apimachinery/blob/02cfb53916346d085a6c6c7c66f882e3c6b0eca6/pkg/util/validation/validation.go#L208

Valid values include:

* "" - empty string implies core Kubernetes API group * "gateway.networking.k8s.io" * "foo.example.com"

Invalid values include:

* "example.com/bar" - "/" is an invalid character

+kubebuilder:validation:MaxLength=253 +kubebuilder:validation:Pattern=`^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`

type HTTPFilter

type HTTPFilter struct {
	// Name of the HTTP filter
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:Required
	Name string `json:"name"`

	// The typed configuration for the HTTP filter
	// It is intentionally the same as the Envoy filter's typed_config field to make it easier to copy-paste
	// +kubebuilder:validation:Required
	TypedConfig runtime.RawExtension `json:"typed_config"`
}

HTTPFilter represents an individual HTTP filter configuration

func (*HTTPFilter) DeepCopy

func (in *HTTPFilter) DeepCopy() *HTTPFilter

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

func (*HTTPFilter) DeepCopyInto

func (in *HTTPFilter) DeepCopyInto(out *HTTPFilter)

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

type IconUrl

type IconUrl string

type IdentityReference

type IdentityReference string

IdentityReference is a reference to a field in the JWT token of OIDC or JWT. TODO: Add validation pattern: "^[a-zA-Z0-9_-]+$"

type InitPluginSpec

type InitPluginSpec struct {
	// The name of the container.
	// +kubebuilder:validation:Required
	Name string `json:"name"`

	// The OCI image for the container.
	// +kubebuilder:validation:Required
	Image string `json:"image"`

	// The command to run in the container.
	Command []string `json:"command,omitempty"`

	// The arguments that will be passed to the command in the main container.
	Args []string `json:"args,omitempty"`

	// The environment variables for the main container.
	Env []corev1.EnvVar `json:"env,omitempty"`

	// The environment variables taken from a Secret or ConfigMap for the main container.
	EnvFrom []corev1.EnvFromSource `json:"envFrom,omitempty"`

	// The volume mounts for the container. Can be used to mount a ConfigMap or Secret.
	VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`
}

func (*InitPluginSpec) DeepCopy

func (in *InitPluginSpec) DeepCopy() *InitPluginSpec

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

func (*InitPluginSpec) DeepCopyInto

func (in *InitPluginSpec) DeepCopyInto(out *InitPluginSpec)

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

type Kind

type Kind string

Kind refers to a Kubernetes Kind.

Valid values include:

* "Service" * "HTTPRoute"

Invalid values include:

* "invalid/kind" - "/" is an invalid character

+kubebuilder:validation:MinLength=1 +kubebuilder:validation:MaxLength=63 +kubebuilder:validation:Pattern=`^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$`

type Kode

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

	Spec   KodeSpec   `json:"spec,omitempty"`
	Status KodeStatus `json:"status,omitempty"`
}

Kode is the Schema for the kodes API

func (*Kode) DeepCopy

func (in *Kode) DeepCopy() *Kode

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

func (*Kode) DeepCopyInto

func (in *Kode) DeepCopyInto(out *Kode)

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

func (*Kode) DeepCopyObject

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

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

func (*Kode) GenerateKodeUrlForEntryPoint

func (k *Kode) GenerateKodeUrlForEntryPoint(
	routingType RoutingType,
	domain string,
	name string,
	protocol Protocol,
) (KodeHostname, KodeDomain, KodeUrl, KodePath, error)

func (*Kode) GetCondition

func (k *Kode) GetCondition(conditionType string) *metav1.Condition

func (*Kode) GetPVCName

func (k *Kode) GetPVCName() string

func (*Kode) GetPort

func (k *Kode) GetPort() Port

func (*Kode) GetSecretName added in v0.5.0

func (k *Kode) GetSecretName() string

func (*Kode) GetServiceName

func (k *Kode) GetServiceName() string

func (*Kode) IsActive

func (k *Kode) IsActive() bool

func (*Kode) IsDeleting added in v0.5.0

func (k *Kode) IsDeleting() bool

func (*Kode) IsInactive added in v0.5.0

func (k *Kode) IsInactive() bool

func (*Kode) IsInactiveFor

func (k *Kode) IsInactiveFor(duration time.Duration) bool

func (*Kode) IsSuspended added in v0.5.0

func (k *Kode) IsSuspended() bool

func (*Kode) SetCondition

func (k *Kode) SetCondition(conditionType string, status metav1.ConditionStatus, reason, message string)

func (*Kode) SetRuntime

func (k *Kode) SetRuntime() Runtime

func (*Kode) UpdateKodePort

func (k *Kode) UpdateKodePort(ctx context.Context, c client.Client, port Port) error

func (*Kode) UpdateKodeUrl

func (k *Kode) UpdateKodeUrl(ctx context.Context, c client.Client, kodeUrl KodeUrl) error

type KodeDomain

type KodeDomain string

type KodeHostname

type KodeHostname string

type KodeList

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

KodeList contains a list of Kode

func (*KodeList) DeepCopy

func (in *KodeList) DeepCopy() *KodeList

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

func (*KodeList) DeepCopyInto

func (in *KodeList) DeepCopyInto(out *KodeList)

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

func (*KodeList) DeepCopyObject

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

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

type KodePath added in v0.5.0

type KodePath string

type KodePhase

type KodePhase string

KodePhase represents the current state of the Kode resource.

const (
	// KodePhasePending indicates the initial state when a new Kode resource is created.
	// The controller has acknowledged the resource but hasn't started processing it yet.
	KodePhasePending KodePhase = "Pending"

	// KodePhaseConfiguring indicates that the controller is actively setting up the Kode resource.
	// This includes creating necessary Kubernetes resources, configuring storage, and applying user configurations.
	KodePhaseConfiguring KodePhase = "Configuring"

	// KodePhaseProvisioning indicates that all necessary resources for the Kode have been created,
	// but the system is waiting for these resources to become fully operational.
	// This may include waiting for pods to be scheduled and reach a ready state or for any initialization processes to complete.
	KodePhaseProvisioning KodePhase = "Provisioning"

	// KodePhaseActive indicates that the Kode resource is fully operational.
	// All associated Kubernetes resources are created and ready to serve requests.
	// The Kode environment is accessible to users in this state.
	KodePhaseActive KodePhase = "Active"

	// KodePhaseInactive indicates that the Kode resource has been flagged for suspension.
	// This could be due to inactivity or to free up resources.
	// Some resources may be partially or fully removed to free up cluster resources.
	KodePhaseInactive KodePhase = "Inactive"

	// KodePhaseSuspending indicates that the Kode resource is in the process of being suspended.
	// The controller is actively working on stopping the Kode environment and preserving its state.
	KodePhaseSuspending KodePhase = "Suspending"

	// KodePhaseSuspended indicates that the Kode resource is in a suspended state.
	// The Kode environment is not running, but its configuration and data are preserved.
	// It can be resumed later without loss of user data or settings.
	KodePhaseSuspended KodePhase = "Suspended"

	// KodePhaseResuming indicates that the Kode resource is in the process of being reactivated from a suspended state.
	// The controller is recreating necessary resources and restoring the Kode environment to its previous active state.
	KodePhaseResuming KodePhase = "Resuming"

	// KodePhaseDeleting indicates the Kode resource is being permanently removed.
	// The controller is in the process of deleting all associated Kubernetes resources.
	KodePhaseDeleting KodePhase = "Deleting"

	// KodePhaseFailed indicates that an error occurred during the lifecycle of the Kode resource.
	// This could be during creation, updating, or management of the Kode or its associated resources.
	// The controller will typically attempt to recover from this state automatically.
	KodePhaseFailed KodePhase = "Failed"

	// KodePhaseUnknown indicates that the Kode resource is in an indeterminate state.
	// This may occur if the controller loses connection with the resource or encounters unexpected conditions.
	// The controller will attempt to reconcile and determine the correct state.
	KodePhaseUnknown KodePhase = "Unknown"
)

type KodeSpec

type KodeSpec struct {
	// The reference to a template. Either a PodTemplate, VirtualTemplate or TofuTemplate.
	// +kubebuilder:validation:Required
	TemplateRef CrossNamespaceObjectReference `json:"templateRef"`

	// Specifies the credentials for the service.
	Credentials *CredentialsSpec `json:"credentials,omitempty"`

	// The path to the directory for the user data. Defaults to '/config'.
	// +kubebuilder:validation:MinLength=3
	// +kubebuilder:default=/config
	Home *string `json:"home,omitempty"`

	// The user specified workspace directory (e.g. my-workspace).
	// +kubebuilder:validation:MinLength=3
	// +kubebuilder:validation:Pattern="^[a-zA-Z0-9_-]+$"
	Workspace *string `json:"workspace,omitempty"`

	// Specifies the storage configuration.
	Storage *KodeStorageSpec `json:"storage,omitempty"`

	// Specifies a git repository URL to get user configuration from.
	// +kubebuilder:validation:Pattern=`^(https?:\/\/)?([\w\.-]+@)?([\w\.-]+)(:\d+)?\/?([\w\.-]+)\/([\w\.-]+)(\.git)?(\/?|\#[\w\.\-_]+)?$|^oci:\/\/([\w\.-]+)(:\d+)?\/?([\w\.-\/]+)(@sha256:[a-fA-F0-9]{64})?$`
	// +kubebuilder:validation:Optional
	UserConfig *string `json:"userConfig,omitempty"`

	// Specifies if the container should run in privileged mode. Will only work if the KodeTemplate allows it. Only set to true if you know what you are doing.
	// +kubebuilder:default=false
	Privileged *bool `json:"privileged,omitempty"`

	// Specifies the OCI containers to be run as InitContainers. These containers can be used to prepare the workspace or run some setup scripts. It is an ordered list.
	InitPlugins []InitPluginSpec `json:"initPlugins,omitempty"`
}

KodeSpec defines the desired state of Kode

func (*KodeSpec) DeepCopy

func (in *KodeSpec) DeepCopy() *KodeSpec

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

func (*KodeSpec) DeepCopyInto

func (in *KodeSpec) DeepCopyInto(out *KodeSpec)

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

type KodeStatus

type KodeStatus struct {
	BaseSharedStatus `json:",inline" yaml:",inline"`

	// Phase represents the current phase of the Kode resource.
	Phase KodePhase `json:"phase"`

	// The URL to access the Kode.
	KodeUrl KodeUrl `json:"kodeUrl,omitempty"`

	// The port to access the Kode.
	KodePort Port `json:"kodePort,omitempty"`

	// The URL to the icon for the Kode.
	IconUrl IconUrl `json:"iconUrl,omitempty"`

	// The runtime for the kode. Can be one of 'pod', 'virtual', 'tofu'.
	Runtime Runtime `json:"runtime,omitempty"`

	// The timestamp when the last activity occurred.
	LastActivityTime *metav1.Time `json:"lastActivityTime,omitempty"`

	// RetryCount keeps track of the number of retry attempts for failed states.
	RetryCount int `json:"retryCount,omitempty"`
}

KodeStatus defines the observed state of Kode

func (*KodeStatus) DeepCopy

func (in *KodeStatus) DeepCopy() *KodeStatus

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

func (*KodeStatus) DeepCopyInto

func (in *KodeStatus) DeepCopyInto(out *KodeStatus)

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

type KodeStorageSpec

type KodeStorageSpec struct {
	// Specifies the access modes for the persistent volume.
	AccessModes []corev1.PersistentVolumeAccessMode `json:"accessModes,omitempty"`

	// Specifies the storage class name for the persistent volume.
	StorageClassName *string `json:"storageClassName,omitempty"`

	// Specifies the resource requirements for the persistent volume.
	Resources *corev1.VolumeResourceRequirements `json:"resources,omitempty"`

	// Specifies if the volume should be kept when the kode is recycled. Defaults to false.
	// +kubebuilder:default=false
	KeepVolume *bool `json:"keepVolume,omitempty"`

	// Specifies an existing PersistentVolumeClaim to use instead of creating a new one.
	ExistingVolumeClaim *string `json:"existingVolumeClaim,omitempty"`
}

KodeStorageSpec defines the storage configuration

func (*KodeStorageSpec) DeepCopy

func (in *KodeStorageSpec) DeepCopy() *KodeStorageSpec

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

func (*KodeStorageSpec) DeepCopyInto

func (in *KodeStorageSpec) DeepCopyInto(out *KodeStorageSpec)

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

func (*KodeStorageSpec) IsEmpty

func (s *KodeStorageSpec) IsEmpty() bool

type KodeUrl

type KodeUrl string

type LbEndpoint

type LbEndpoint struct {
	// List of endpoints
	// +kubebuilder:validation:Required
	Endpoint Endpoint `json:"endpoint"`
}

func (*LbEndpoint) DeepCopy

func (in *LbEndpoint) DeepCopy() *LbEndpoint

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

func (*LbEndpoint) DeepCopyInto

func (in *LbEndpoint) DeepCopyInto(out *LbEndpoint)

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

type LoadAssignment

type LoadAssignment struct {
	// The name of the cluster
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:Required
	ClusterName string `json:"cluster_name"`

	// List of endpoints
	// +kubebuilder:validation:Required
	Endpoints []Endpoints `json:"endpoints"`
}

func (*LoadAssignment) DeepCopy

func (in *LoadAssignment) DeepCopy() *LoadAssignment

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

func (*LoadAssignment) DeepCopyInto

func (in *LoadAssignment) DeepCopyInto(out *LoadAssignment)

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

type Namespace

type Namespace string

Namespace refers to a Kubernetes namespace. It must be a RFC 1123 label.

This validation is based off of the corresponding Kubernetes validation: https://github.com/kubernetes/apimachinery/blob/02cfb53916346d085a6c6c7c66f882e3c6b0eca6/pkg/util/validation/validation.go#L187

This is used for Namespace name validation here: https://github.com/kubernetes/apimachinery/blob/02cfb53916346d085a6c6c7c66f882e3c6b0eca6/pkg/api/validation/generic.go#L63

Valid values include:

* "example"

Invalid values include:

* "example.com" - "." is an invalid character

+kubebuilder:validation:Pattern=`^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` +kubebuilder:validation:MinLength=1 +kubebuilder:validation:MaxLength=63

type ObjectName

type ObjectName string

ObjectName refers to the name of a Kubernetes object. Object names can have a variety of forms, including RFC 1123 subdomains, RFC 1123 labels, or RFC 1035 labels.

+kubebuilder:validation:MinLength=1 +kubebuilder:validation:MaxLength=253

type PatchPolicy

type PatchPolicy struct {
	// List of Envoy HTTP filters to be applied
	// +kubebuilder:validation:Optional
	HTTPFilters []HTTPFilter `json:"httpFilters"`

	// List of Envoy clusters
	// +kubebuilder:validation:Optional
	Clusters []Cluster `json:"clusters,omitempty"`
}

func (*PatchPolicy) DeepCopy

func (in *PatchPolicy) DeepCopy() *PatchPolicy

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

func (*PatchPolicy) DeepCopyInto

func (in *PatchPolicy) DeepCopyInto(out *PatchPolicy)

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

type PodTemplate

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

	Spec   PodTemplateSpec   `json:"spec,omitempty"`
	Status PodTemplateStatus `json:"status,omitempty"`
}

PodTemplate is the Schema for the podtemplates API

func (*PodTemplate) DeepCopy

func (in *PodTemplate) DeepCopy() *PodTemplate

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

func (*PodTemplate) DeepCopyInto

func (in *PodTemplate) DeepCopyInto(out *PodTemplate)

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

func (*PodTemplate) DeepCopyObject

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

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

type PodTemplateList

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

PodTemplateList contains a list of PodTemplate

func (*PodTemplateList) DeepCopy

func (in *PodTemplateList) DeepCopy() *PodTemplateList

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

func (*PodTemplateList) DeepCopyInto

func (in *PodTemplateList) DeepCopyInto(out *PodTemplateList)

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

func (*PodTemplateList) DeepCopyObject

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

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

type PodTemplateSharedSpec

type PodTemplateSharedSpec struct {

	// BaseSharedSpec is the base shared spec.
	BaseSharedSpec `json:",inline"`

	// Type is the type of container to use. Can be one of 'code-server', 'webtop', 'devcontainers', 'jupyter'.
	// +kubebuilder:validation:Enum=code-server;webtop
	Type string `json:"type,omitempty"`

	// Image is the container image for the service.
	// +kubebuilder:validation:MinLength=1
	Image string `json:"image,omitempty"`

	// Command is the command to run in the container.
	Command []string `json:"command,omitempty"`

	// Specifies the environment variables.
	Env []corev1.EnvVar `json:"envs,omitempty"`

	// EnvFrom are the environment variables taken from a Secret or ConfigMap.
	EnvFrom []corev1.EnvFromSource `json:"envFrom,omitempty"`

	// Specifies the args.
	Args []string `json:"args,omitempty"`

	// Specifies the resources for the pod.
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`

	// Timezone for the service process. Defaults to 'UTC'.
	// +kubebuilder:default="UTC"
	TZ string `json:"tz,omitempty"`

	// User ID for the service process. Defaults to '1000'.
	// +kubebuilder:default=1000
	PUID int64 `json:"puid,omitempty"`

	// Group ID for the service process. Defaults to '1000'.
	// +kubebuilder:default=1000
	PGID int64 `json:"pgid,omitempty"`

	// Default home is the path to the directory for the user data. Defaults to '/config'.
	// +kubebuilder:validation:MinLength=3
	// +kubebuilder:default=/config
	DefaultHome string `json:"defaultHome,omitempty"`

	// Default workspace is the default directory for the kode instance on first launch. Defaults to 'workspace'.
	// +kubebuilder:validation:MinLength=3
	// +kubebuilder:validation:Pattern="^[^/].*$"
	// +kubebuilder:default=workspace
	DefaultWorkspace string `json:"defaultWorkspace,omitempty"`

	// Flag to allow privileged execution of the container.
	// +kubebuilder:default=false
	AllowPrivileged *bool `json:"allowPrivileged,omitempty"`

	// OCI containers to be run before the main container. It is an ordered list.
	InitPlugins []InitPluginSpec `json:"initPlugins,omitempty"`
}

PodTemplateSharedSpec defines the desired state of KodeContainer

func (*PodTemplateSharedSpec) DeepCopy

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

func (*PodTemplateSharedSpec) DeepCopyInto

func (in *PodTemplateSharedSpec) DeepCopyInto(out *PodTemplateSharedSpec)

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

type PodTemplateSharedStatus

type PodTemplateSharedStatus struct {
	BaseSharedStatus `json:",inline"`
}

PodTemplateSharedStatus defines the observed state for Container

func (*PodTemplateSharedStatus) DeepCopy

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

func (*PodTemplateSharedStatus) DeepCopyInto

func (in *PodTemplateSharedStatus) DeepCopyInto(out *PodTemplateSharedStatus)

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

type PodTemplateSpec

type PodTemplateSpec struct {
	PodTemplateSharedSpec `json:",inline" yaml:",inline"`
}

PodTemplateSpec defines the desired state of ClusterKodeContainer

func (*PodTemplateSpec) DeepCopy

func (in *PodTemplateSpec) DeepCopy() *PodTemplateSpec

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

func (*PodTemplateSpec) DeepCopyInto

func (in *PodTemplateSpec) DeepCopyInto(out *PodTemplateSpec)

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

type PodTemplateStatus

type PodTemplateStatus struct {
	PodTemplateSharedStatus `json:",inline" yaml:",inline"`
}

PodTemplateStatus defines the observed state of ClusterKodeContainer

func (*PodTemplateStatus) DeepCopy

func (in *PodTemplateStatus) DeepCopy() *PodTemplateStatus

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

func (*PodTemplateStatus) DeepCopyInto

func (in *PodTemplateStatus) DeepCopyInto(out *PodTemplateStatus)

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

type Port

type Port int32

Port for the service. Used by EnvoyProxy to expose the container. Defaults to '8000'. +kubebuilder:validation:Minimum=1 +kubebuilder:default=8000

type Protocol added in v0.5.0

type Protocol string

Protocol is the protocol used by the service.

const (
	ProtocolHTTP  Protocol = "http"
	ProtocolHTTPS Protocol = "https"
)

type RoutingType

type RoutingType string

RoutingType is the way the Kode resource is accessed by the user. It could be subdomain or path.

const (
	RoutingTypeSubdomain RoutingType = "subdomain"
	RoutingTypePath      RoutingType = "path"
)

type Runtime

type Runtime string
const (
	RuntimePod     Runtime = "pod"
	RuntimeVirtual Runtime = "virtual"
	RuntimeTofu    Runtime = "tofu"
)

type SecurityPolicySpec

type SecurityPolicySpec struct {
	// BasicAuth defines the configuration for the HTTP Basic Authentication. Points to a Kubernetes secret which contains the username-password pairs in htpasswd format.
	// Reference to https://httpd.apache.org/docs/2.4/programs/htpasswd.html for more details.
	// +optional
	BasicAuth *egv1alpha1.BasicAuth `json:"basicAuth,omitempty"`

	// JWT defines the configuration for JSON Web Token (JWT) authentication.
	//
	// +optional
	JWT *egv1alpha1.JWT `json:"jwt,omitempty"`

	// OIDC defines the configuration for the OpenID Connect (OIDC) authentication.
	//
	// +optional
	OIDC *egv1alpha1.OIDC `json:"oidc,omitempty"`

	// ExtAuth defines the configuration for External Authorization.
	//
	// +optional
	ExtAuth *egv1alpha1.ExtAuth `json:"extAuth,omitempty"`
}

func (*SecurityPolicySpec) DeepCopy

func (in *SecurityPolicySpec) DeepCopy() *SecurityPolicySpec

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

func (*SecurityPolicySpec) DeepCopyInto

func (in *SecurityPolicySpec) DeepCopyInto(out *SecurityPolicySpec)

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

type SocketAddress

type SocketAddress struct {
	// The address of the socket
	// +kubebuilder:validation:Required
	Address string `json:"address"`

	// PortValue is the port of the socket
	// +kubebuilder:validation:Required
	PortValue int `json:"port_value"`
}

func (*SocketAddress) DeepCopy

func (in *SocketAddress) DeepCopy() *SocketAddress

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

func (*SocketAddress) DeepCopyInto

func (in *SocketAddress) DeepCopyInto(out *SocketAddress)

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

type Template

type Template struct {
	// Kind specifies the type of template (e.g., "PodTemplate", "ClusterPodTemplate", "TofuTemplate", "ClusterTofuTemplate")
	Kind Kind `json:"kind" yaml:"kind"`

	// Name is the name of the template resource
	Name ObjectName `json:"name" yaml:"name"`

	// Namespace is the namespace of the template resource
	Namespace Namespace `json:"namespace,omitempty" yaml:"namespace,omitempty"`

	// Port is the port to expose the kode instance
	Port Port `json:"port" yaml:"port"`

	// PodTemplateSpec is a reference to a PodTemplate or ClusterPodTemplate
	PodTemplateSpec *PodTemplateSharedSpec `json:"container,omitempty" yaml:"container,omitempty"`

	// TofuTemplateSpec is a reference to a TofuTemplate or ClusterTofuTemplate
	TofuTemplateSpec *TofuSharedSpec `json:"tofu,omitempty" yaml:"tofu,omitempty"`
}

Template represents a unified structure for different types of Kode templates

func (*Template) DeepCopy

func (in *Template) DeepCopy() *Template

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

func (*Template) DeepCopyInto

func (in *Template) DeepCopyInto(out *Template)

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

type TemplateKind

type TemplateKind string
const (
	TemplateKindPodTemplate            TemplateKind = "PodTemplate"
	TemplateKindClusterPodTemplate     TemplateKind = "ClusterPodTemplate"
	TemplateKindVirtualTemplate        TemplateKind = "VirtualTemplate"
	TemplateKindClusterVirtualTemplate TemplateKind = "ClusterVirtualTemplate"
	TemplateKindTofuTemplate           TemplateKind = "TofuTemplate"
	TemplateKindClusterTofuTemplate    TemplateKind = "ClusterTofuTemplate"
)

type TofuSharedSpec

type TofuSharedSpec struct {

	// BaseSharedSpec is the base shared spec.
	BaseSharedSpec `json:",inline"`

	// Desired state of the entrypoint.
	EntryPointRef CrossNamespaceObjectReference `json:"entryPointRef,omitempty" yaml:"entryPointRef,omitempty"`
}

TofuSharedSpec defines the desired state of KodeTofu

func (*TofuSharedSpec) DeepCopy

func (in *TofuSharedSpec) DeepCopy() *TofuSharedSpec

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

func (*TofuSharedSpec) DeepCopyInto

func (in *TofuSharedSpec) DeepCopyInto(out *TofuSharedSpec)

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

type TofuSharedStatus

type TofuSharedStatus struct {
	BaseSharedStatus `json:",inline"`
}

TofuSharedStatus defines the observed state for Tofu

func (*TofuSharedStatus) DeepCopy

func (in *TofuSharedStatus) DeepCopy() *TofuSharedStatus

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

func (*TofuSharedStatus) DeepCopyInto

func (in *TofuSharedStatus) DeepCopyInto(out *TofuSharedStatus)

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

type TofuTemplate

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

	Spec   TofuTemplateSpec   `json:"spec,omitempty"`
	Status TofuTemplateStatus `json:"status,omitempty"`
}

TofuTemplate is the Schema for the tofutemplates API

func (*TofuTemplate) DeepCopy

func (in *TofuTemplate) DeepCopy() *TofuTemplate

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

func (*TofuTemplate) DeepCopyInto

func (in *TofuTemplate) DeepCopyInto(out *TofuTemplate)

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

func (*TofuTemplate) DeepCopyObject

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

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

type TofuTemplateList

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

TofuTemplateList contains a list of TofuTemplate

func (*TofuTemplateList) DeepCopy

func (in *TofuTemplateList) DeepCopy() *TofuTemplateList

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

func (*TofuTemplateList) DeepCopyInto

func (in *TofuTemplateList) DeepCopyInto(out *TofuTemplateList)

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

func (*TofuTemplateList) DeepCopyObject

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

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

type TofuTemplateSpec

type TofuTemplateSpec struct {
	TofuSharedSpec `json:",inline"`
}

TofuTemplateSpec defines the desired state of KodeTofu

func (*TofuTemplateSpec) DeepCopy

func (in *TofuTemplateSpec) DeepCopy() *TofuTemplateSpec

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

func (*TofuTemplateSpec) DeepCopyInto

func (in *TofuTemplateSpec) DeepCopyInto(out *TofuTemplateSpec)

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

type TofuTemplateStatus

type TofuTemplateStatus struct {
	TofuSharedStatus `json:",inline"`
}

TofuTemplateStatus defines the observed state of KodeTofu

func (*TofuTemplateStatus) DeepCopy

func (in *TofuTemplateStatus) DeepCopy() *TofuTemplateStatus

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

func (*TofuTemplateStatus) DeepCopyInto

func (in *TofuTemplateStatus) DeepCopyInto(out *TofuTemplateStatus)

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

Jump to

Keyboard shortcuts

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