Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the convex v1alpha1 API group. +kubebuilder:object:generate=true +groupName=convex.icod.de
Index ¶
- Variables
- type BackendDatabaseSpec
- type BackendLoggingSpec
- type BackendPVCSpec
- type BackendS3Spec
- type BackendScaleSpec
- type BackendSpec
- type BackendStorageSpec
- type BackendTelemetrySpec
- type ConvexInstance
- type ConvexInstanceList
- type ConvexInstanceSpec
- type ConvexInstanceStatus
- type DashboardSpec
- type InstanceEndpoints
- type MaintenanceSpec
- type NetworkingSpec
- type ParentReference
- type ScaleSpec
- type SecuritySpec
Constants ¶
This section is empty.
Variables ¶
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"`
// DatabaseName overrides the default database name derived from the ConvexInstance name; used to populate INSTANCE_NAME.
// +optional
DatabaseName string `json:"databaseName,omitempty"`
// RequireSSL enforces TLS verification when connecting to the database. Defaults to true; set to false to allow self-signed certificates.
// +kubebuilder:default:=true
// +optional
RequireSSL *bool `json:"requireSSL,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 BackendLoggingSpec ¶ added in v0.6.0
type BackendLoggingSpec struct {
// RedactLogsToClient enables log redaction before sending logs to clients.
// +kubebuilder:default:=false
// +optional
RedactLogsToClient bool `json:"redactLogsToClient,omitempty"`
}
BackendLoggingSpec controls backend logging behaviour.
func (*BackendLoggingSpec) DeepCopy ¶ added in v0.6.0
func (in *BackendLoggingSpec) DeepCopy() *BackendLoggingSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackendLoggingSpec.
func (*BackendLoggingSpec) DeepCopyInto ¶ added in v0.6.0
func (in *BackendLoggingSpec) DeepCopyInto(out *BackendLoggingSpec)
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"`
// RegionKey is the key inside the Secret containing the AWS region.
// +optional
RegionKey string `json:"regionKey,omitempty"`
// EmitS3EndpointUrl sets S3_ENDPOINT_URL alongside AWS endpoint env vars.
// +optional
EmitS3EndpointUrl bool `json:"emitS3EndpointUrl,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"`
// Telemetry configures optional beaconing.
// +kubebuilder:default:={}
Telemetry BackendTelemetrySpec `json:"telemetry,omitempty"`
// Logging toggles log redaction.
// +kubebuilder:default:={}
Logging BackendLoggingSpec `json:"logging,omitempty"`
// Security allows overriding pod/container security contexts for the backend StatefulSet.
// +kubebuilder:default:={}
Security SecuritySpec `json:"security,omitempty"`
// Env appends additional environment variables to the backend container. Later entries override earlier ones.
// +optional
Env []corev1.EnvVar `json:"env,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 BackendTelemetrySpec ¶ added in v0.6.0
type BackendTelemetrySpec struct {
// DisableBeacon opts out of the self-hosted usage beacon.
// +kubebuilder:default:=false
// +optional
DisableBeacon bool `json:"disableBeacon,omitempty"`
}
BackendTelemetrySpec controls optional beaconing.
func (*BackendTelemetrySpec) DeepCopy ¶ added in v0.6.0
func (in *BackendTelemetrySpec) DeepCopy() *BackendTelemetrySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackendTelemetrySpec.
func (*BackendTelemetrySpec) DeepCopyInto ¶ added in v0.6.0
func (in *BackendTelemetrySpec) DeepCopyInto(out *BackendTelemetrySpec)
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 ¶
func (in *ConvexInstanceStatus) DeepCopy() *ConvexInstanceStatus
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"`
// PrefillAdminKey controls whether the dashboard receives NEXT_PUBLIC_ADMIN_KEY (default false to avoid exposing the key in the browser).
// +optional
PrefillAdminKey bool `json:"prefillAdminKey,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"`
// RestartInterval triggers a rolling restart after the specified duration to mitigate slow resource leaks. Set to "0s" to disable.
// +kubebuilder:default:="168h"
// +optional
RestartInterval *metav1.Duration `json:"restartInterval,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"`
// DeploymentURL sets NEXT_PUBLIC_DEPLOYMENT_URL for the dashboard; defaults to the external host (scheme derived from TLS).
// +optional
DeploymentURL string `json:"deploymentUrl,omitempty"`
// CloudOrigin sets CONVEX_CLOUD_ORIGIN; defaults to the external host (scheme derived from TLS).
// +optional
CloudOrigin string `json:"cloudOrigin,omitempty"`
// SiteOrigin sets CONVEX_SITE_ORIGIN; defaults to the external host (scheme derived from TLS).
// +optional
SiteOrigin string `json:"siteOrigin,omitempty"`
// ParentRefs overrides the operator-managed Gateway; when set, HTTPRoutes attach to these parent Gateways and the operator skips creating its own Gateway.
// +optional
ParentRefs []ParentReference `json:"parentRefs,omitempty"`
// 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 ParentReference ¶ added in v0.1.3
type ParentReference struct {
// Name is the name of the parent Gateway.
// +kubebuilder:validation:MinLength=1
Name string `json:"name"`
// Namespace is the namespace of the parent Gateway. Defaults to the ConvexInstance namespace.
// +optional
Namespace string `json:"namespace,omitempty"`
// SectionName targets a specific listener on the parent Gateway.
// +optional
SectionName string `json:"sectionName,omitempty"`
}
ParentReference selects an existing Gateway for the HTTPRoute to attach to.
func (*ParentReference) DeepCopy ¶ added in v0.1.3
func (in *ParentReference) DeepCopy() *ParentReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParentReference.
func (*ParentReference) DeepCopyInto ¶ added in v0.1.3
func (in *ParentReference) DeepCopyInto(out *ParentReference)
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleSpec.
func (*ScaleSpec) DeepCopyInto ¶
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.