v1alpha1

package
v0.1.2 Latest Latest
Warning

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

Go to latest
Published: Dec 1, 2025 License: GPL-3.0 Imports: 6 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the convex v1alpha1 API group. +kubebuilder:object:generate=true +groupName=convex.icod.de

Index

Constants

This section is empty.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: "convex.icod.de", Version: "v1alpha1"}

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

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

Functions

This section is empty.

Types

type BackendDatabaseSpec

type BackendDatabaseSpec struct {
	// +kubebuilder:validation:Enum=postgres;mysql;sqlite
	Engine string `json:"engine"`

	// SecretRef names the Secret holding the DB connection URL.
	// +optional
	SecretRef string `json:"secretRef,omitempty"`

	// URLKey is the key inside the Secret containing the DB URL.
	// +optional
	URLKey string `json:"urlKey,omitempty"`
}

BackendDatabaseSpec describes DB settings and secret references.

func (*BackendDatabaseSpec) DeepCopy

func (in *BackendDatabaseSpec) DeepCopy() *BackendDatabaseSpec

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

func (*BackendDatabaseSpec) DeepCopyInto

func (in *BackendDatabaseSpec) DeepCopyInto(out *BackendDatabaseSpec)

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

type BackendPVCSpec

type BackendPVCSpec struct {
	// +kubebuilder:default:=false
	Enabled bool `json:"enabled,omitempty"`

	// +optional
	StorageClassName string `json:"storageClassName,omitempty"`

	// Size is the requested capacity (e.g., "100Gi").
	// +optional
	Size resource.Quantity `json:"size,omitempty"`
}

BackendPVCSpec configures the PVC used by the backend StatefulSet.

func (*BackendPVCSpec) DeepCopy

func (in *BackendPVCSpec) DeepCopy() *BackendPVCSpec

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

func (*BackendPVCSpec) DeepCopyInto

func (in *BackendPVCSpec) DeepCopyInto(out *BackendPVCSpec)

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

type BackendS3Spec

type BackendS3Spec struct {
	// +kubebuilder:default:=false
	Enabled bool `json:"enabled,omitempty"`

	// SecretRef names the Secret containing S3 connection settings.
	// +optional
	SecretRef string `json:"secretRef,omitempty"`

	// +optional
	EndpointKey string `json:"endpointKey,omitempty"`

	// +optional
	AccessKeyIDKey string `json:"accessKeyIdKey,omitempty"`

	// +optional
	SecretAccessKeyKey string `json:"secretAccessKeyKey,omitempty"`

	// +optional
	BucketKey string `json:"bucketKey,omitempty"`
}

BackendS3Spec configures S3-compatible storage wiring.

func (*BackendS3Spec) DeepCopy

func (in *BackendS3Spec) DeepCopy() *BackendS3Spec

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

func (*BackendS3Spec) DeepCopyInto

func (in *BackendS3Spec) DeepCopyInto(out *BackendS3Spec)

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

type BackendScaleSpec

type BackendScaleSpec struct {
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=100
	// +optional
	CPUTargetUtilization *int32 `json:"cpuTargetUtilization,omitempty"`

	// MaxMemory sets an upper bound for memory allocations (e.g., "8Gi").
	// +optional
	MaxMemory resource.Quantity `json:"maxMemory,omitempty"`
}

BackendScaleSpec captures autoscaling hints.

func (*BackendScaleSpec) DeepCopy

func (in *BackendScaleSpec) DeepCopy() *BackendScaleSpec

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

func (*BackendScaleSpec) DeepCopyInto

func (in *BackendScaleSpec) DeepCopyInto(out *BackendScaleSpec)

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

type BackendSpec

type BackendSpec struct {
	// +kubebuilder:default:="ghcr.io/get-convex/convex-backend:latest"
	Image string `json:"image,omitempty"`

	// Resources configures requests/limits applied to the backend StatefulSet.
	// +optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`

	// DB references the database connection secret and driver.
	DB BackendDatabaseSpec `json:"db"`

	// Storage configures local or external storage options.
	// +kubebuilder:default:={}
	Storage BackendStorageSpec `json:"storage,omitempty"`

	// S3 configures S3-compatible storage for blob usage.
	// +kubebuilder:default:={}
	S3 BackendS3Spec `json:"s3,omitempty"`

	// Security allows overriding pod/container security contexts for the backend StatefulSet.
	// +kubebuilder:default:={}
	Security SecuritySpec `json:"security,omitempty"`
}

BackendSpec defines backend image, resources, and data wiring.

func (*BackendSpec) DeepCopy

func (in *BackendSpec) DeepCopy() *BackendSpec

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

func (*BackendSpec) DeepCopyInto

func (in *BackendSpec) DeepCopyInto(out *BackendSpec)

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

type BackendStorageSpec

type BackendStorageSpec struct {
	// Mode selects SQLite (local) or external storage wiring.
	// +kubebuilder:default:=sqlite
	// +kubebuilder:validation:Enum=sqlite;external
	Mode string `json:"mode,omitempty"`

	// PVC manages the persistent volume claim when using SQLite/local storage.
	// +optional
	PVC BackendPVCSpec `json:"pvc,omitempty"`
}

BackendStorageSpec defines storage settings for Convex.

func (*BackendStorageSpec) DeepCopy

func (in *BackendStorageSpec) DeepCopy() *BackendStorageSpec

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

func (*BackendStorageSpec) DeepCopyInto

func (in *BackendStorageSpec) DeepCopyInto(out *BackendStorageSpec)

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

type ConvexInstance

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

	Spec   ConvexInstanceSpec   `json:"spec"`
	Status ConvexInstanceStatus `json:"status,omitempty"`
}

ConvexInstance is the Schema for the convexinstances API.

func (*ConvexInstance) DeepCopy

func (in *ConvexInstance) DeepCopy() *ConvexInstance

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

func (*ConvexInstance) DeepCopyInto

func (in *ConvexInstance) DeepCopyInto(out *ConvexInstance)

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

func (*ConvexInstance) DeepCopyObject

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

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

type ConvexInstanceList

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

ConvexInstanceList contains a list of ConvexInstance.

func (*ConvexInstanceList) DeepCopy

func (in *ConvexInstanceList) DeepCopy() *ConvexInstanceList

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

func (*ConvexInstanceList) DeepCopyInto

func (in *ConvexInstanceList) DeepCopyInto(out *ConvexInstanceList)

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

func (*ConvexInstanceList) DeepCopyObject

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

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

type ConvexInstanceSpec

type ConvexInstanceSpec struct {
	// Environment describes the deployment tier.
	// +kubebuilder:validation:Enum=dev;prod
	Environment string `json:"environment"`

	// Version is the Convex release tag used by backend and dashboard images.
	// +kubebuilder:validation:MinLength=1
	Version string `json:"version"`

	// Backend configures the Convex backend process.
	Backend BackendSpec `json:"backend"`

	// Dashboard configures the optional Convex dashboard.
	// +kubebuilder:default:={}
	Dashboard DashboardSpec `json:"dashboard,omitempty"`

	// Networking configures ingress and TLS wiring.
	Networking NetworkingSpec `json:"networking"`

	// Scale captures resource scaling preferences.
	// +optional
	Scale ScaleSpec `json:"scale,omitempty"`

	// Maintenance configures upgrade handling.
	// +optional
	Maintenance MaintenanceSpec `json:"maintenance,omitempty"`
}

ConvexInstanceSpec defines the desired state of ConvexInstance.

func (*ConvexInstanceSpec) DeepCopy

func (in *ConvexInstanceSpec) DeepCopy() *ConvexInstanceSpec

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

func (*ConvexInstanceSpec) DeepCopyInto

func (in *ConvexInstanceSpec) DeepCopyInto(out *ConvexInstanceSpec)

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

type ConvexInstanceStatus

type ConvexInstanceStatus struct {
	// Phase is a coarse-grained lifecycle indicator.
	// +kubebuilder:validation:Enum=Pending;Ready;Error;Upgrading
	// +optional
	Phase string `json:"phase,omitempty"`

	// UpgradeHash tracks the last fully applied spec hash to gate future upgrades.
	// +optional
	UpgradeHash string `json:"upgradeHash,omitempty"`

	// ObservedGeneration reflects the last processed spec generation.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Endpoints captures external URLs.
	// +optional
	Endpoints InstanceEndpoints `json:"endpoints,omitempty"`

	// Conditions represent the current state of the ConvexInstance resource.
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

ConvexInstanceStatus defines the observed state of ConvexInstance.

func (*ConvexInstanceStatus) DeepCopy

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

func (*ConvexInstanceStatus) DeepCopyInto

func (in *ConvexInstanceStatus) DeepCopyInto(out *ConvexInstanceStatus)

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

type DashboardSpec

type DashboardSpec struct {
	// +kubebuilder:default:=true
	Enabled bool `json:"enabled,omitempty"`

	// +kubebuilder:default:="ghcr.io/get-convex/convex-dashboard:latest"
	Image string `json:"image,omitempty"`

	// +kubebuilder:default:=1
	// +kubebuilder:validation:Minimum=1
	Replicas *int32 `json:"replicas,omitempty"`

	// +optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`

	// Security allows overriding pod/container security contexts for the dashboard Deployment.
	// +kubebuilder:default:={}
	Security SecuritySpec `json:"security,omitempty"`
}

DashboardSpec configures the Convex dashboard deployment.

func (*DashboardSpec) DeepCopy

func (in *DashboardSpec) DeepCopy() *DashboardSpec

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

func (*DashboardSpec) DeepCopyInto

func (in *DashboardSpec) DeepCopyInto(out *DashboardSpec)

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

type InstanceEndpoints

type InstanceEndpoints struct {
	// +optional
	APIURL string `json:"apiUrl,omitempty"`

	// +optional
	DashboardURL string `json:"dashboardUrl,omitempty"`
}

InstanceEndpoints describes externally reachable URLs.

func (*InstanceEndpoints) DeepCopy

func (in *InstanceEndpoints) DeepCopy() *InstanceEndpoints

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

func (*InstanceEndpoints) DeepCopyInto

func (in *InstanceEndpoints) DeepCopyInto(out *InstanceEndpoints)

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

type MaintenanceSpec

type MaintenanceSpec struct {
	// +kubebuilder:default:=inPlace
	// +kubebuilder:validation:Enum=inPlace;exportImport
	UpgradeStrategy string `json:"upgradeStrategy,omitempty"`
}

MaintenanceSpec defines upgrade behavior.

func (*MaintenanceSpec) DeepCopy

func (in *MaintenanceSpec) DeepCopy() *MaintenanceSpec

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

func (*MaintenanceSpec) DeepCopyInto

func (in *MaintenanceSpec) DeepCopyInto(out *MaintenanceSpec)

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

type NetworkingSpec

type NetworkingSpec struct {
	// Host is the external hostname routed to backend/dashboard.
	// +kubebuilder:validation:MinLength=1
	Host string `json:"host"`

	// GatewayClassName selects the GatewayClass for the generated Gateway.
	// +kubebuilder:default:=nginx
	// +optional
	GatewayClassName string `json:"gatewayClassName,omitempty"`

	// GatewayAnnotations are applied to the generated Gateway metadata.
	// +kubebuilder:default:={"cert-manager.io/cluster-issuer":"letsencrypt-prod-rfc2136"}
	// +optional
	GatewayAnnotations map[string]string `json:"gatewayAnnotations,omitempty"`

	// TLSSecretRef names the TLS secret used by Gateway/Ingress.
	// +optional
	TLSSecretRef string `json:"tlsSecretRef,omitempty"`
}

NetworkingSpec captures external routing details.

func (*NetworkingSpec) DeepCopy

func (in *NetworkingSpec) DeepCopy() *NetworkingSpec

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

func (*NetworkingSpec) DeepCopyInto

func (in *NetworkingSpec) DeepCopyInto(out *NetworkingSpec)

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

type ScaleSpec

type ScaleSpec struct {
	// Backend defines CPU-based scaling preferences.
	// +optional
	Backend BackendScaleSpec `json:"backend,omitempty"`
}

ScaleSpec defines scaling hints for the backend.

func (*ScaleSpec) DeepCopy

func (in *ScaleSpec) DeepCopy() *ScaleSpec

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

func (*ScaleSpec) DeepCopyInto

func (in *ScaleSpec) DeepCopyInto(out *ScaleSpec)

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

type SecuritySpec added in v0.1.2

type SecuritySpec struct {
	// Pod applies a pod-level security context to the workload.
	// +optional
	Pod *corev1.PodSecurityContext `json:"pod,omitempty"`

	// Container applies a container-level security context to the main container.
	// +optional
	Container *corev1.SecurityContext `json:"container,omitempty"`
}

SecuritySpec controls pod and container security contexts for a component.

func (*SecuritySpec) DeepCopy added in v0.1.2

func (in *SecuritySpec) DeepCopy() *SecuritySpec

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

func (*SecuritySpec) DeepCopyInto added in v0.1.2

func (in *SecuritySpec) DeepCopyInto(out *SecuritySpec)

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