v1

package
v0.0.21 Latest Latest
Warning

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

Go to latest
Published: Jun 5, 2025 License: MIT Imports: 5 Imported by: 6

Documentation

Overview

Package v1 contains API Schema definitions for the unbind v1 API group. +kubebuilder:object:generate=true +groupName=unbind.unbind.app

Index

Constants

This section is empty.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: "unbind.unbind.app", Version: "v1"}

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

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

Functions

This section is empty.

Types

type DatabaseConfigSpec

type DatabaseConfigSpec struct {
	Version             string `json:"version,omitempty"`
	StorageSize         string `json:"storage,omitempty"`
	DefaultDatabaseName string `json:"defaultDatabaseName,omitempty"`
	InitDB              string `json:"initdb,omitempty"`
	WalLevel            string `json:"walLevel,omitempty"`
}

func (*DatabaseConfigSpec) AsMap

func (self *DatabaseConfigSpec) AsMap() map[string]interface{}

func (*DatabaseConfigSpec) DeepCopy

func (in *DatabaseConfigSpec) DeepCopy() *DatabaseConfigSpec

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

func (*DatabaseConfigSpec) DeepCopyInto

func (in *DatabaseConfigSpec) DeepCopyInto(out *DatabaseConfigSpec)

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

type DatabaseSpec

type DatabaseSpec struct {
	// Type of the database
	Type string `json:"type"`
	// DatabaseSpecVersion is a reference to the version of the database spec
	DatabaseSpecVersion string              `json:"databaseSpecVersion"`
	Config              *DatabaseConfigSpec `json:"config,omitempty"`
	// S3Config for backupps
	S3BackupConfig *S3ConfigSpec `json:"s3BackupConfig,omitempty"`
}

func (*DatabaseSpec) DeepCopy

func (in *DatabaseSpec) DeepCopy() *DatabaseSpec

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

func (*DatabaseSpec) DeepCopyInto

func (in *DatabaseSpec) DeepCopyInto(out *DatabaseSpec)

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

type HealthCheckSpec

type HealthCheckSpec struct {
	// Type of health check, either "http" or "exec"
	// +kubebuilder:validation:Enum=http;exec
	Type string `json:"type"`

	// Path for HTTP health checks (e.g., "/api/health")
	Path string `json:"path,omitempty"`

	// Port for HTTP health checks (defaults to first container port if not specified)
	Port *int32 `json:"port,omitempty"`

	// Command for exec health checks (will be parsed similar to RunCommand)
	Command string `json:"command,omitempty"`

	// PeriodSeconds is how often to perform the probe (default: 10)
	PeriodSeconds *int32 `json:"periodSeconds,omitempty"`

	// TimeoutSeconds is how long to wait before marking probe as failed (default: 5)
	TimeoutSeconds *int32 `json:"timeoutSeconds,omitempty"`

	// StartupFailureThreshold is the failure threshold for startup probes (default: 5)
	StartupFailureThreshold *int32 `json:"startupFailureThreshold,omitempty"`

	// LivenessFailureThreshold is the failure threshold for liveness probes (default: 5)
	LivenessFailureThreshold *int32 `json:"livenessFailureThreshold,omitempty"`

	// ReadinessFailureThreshold is the failure threshold for readiness probes (default: 3)
	ReadinessFailureThreshold *int32 `json:"readinessFailureThreshold,omitempty"`
}

HealthCheckSpec defines a unified health check that will be translated to all probes

func (*HealthCheckSpec) DeepCopy

func (in *HealthCheckSpec) DeepCopy() *HealthCheckSpec

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

func (*HealthCheckSpec) DeepCopyInto

func (in *HealthCheckSpec) DeepCopyInto(out *HealthCheckSpec)

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

type HostSpec

type HostSpec struct {
	// Host is the external domain for the service
	Host string `json:"host"`
	Path string `json:"path"`
	Port *int32 `json:"port,omitempty" required:"false"`
}

func (*HostSpec) DeepCopy

func (in *HostSpec) DeepCopy() *HostSpec

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

func (*HostSpec) DeepCopyInto

func (in *HostSpec) DeepCopyInto(out *HostSpec)

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

type InitContainerSpec

type InitContainerSpec struct {
	Image   string `json:"image"`   // Init container image
	Command string `json:"command"` // Command to run in the init container
}

Init container spec

type PortSpec

type PortSpec struct {
	NodePort *int32 `json:"nodePort,omitempty" required:"false"` // NodePort will create a NodePort service
	// Port is the container port to expose
	Port     int32            `json:"port"`
	Protocol *corev1.Protocol `json:"protocol,omitempty" required:"false"`
}

func (*PortSpec) DeepCopy

func (in *PortSpec) DeepCopy() *PortSpec

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

func (*PortSpec) DeepCopyInto

func (in *PortSpec) DeepCopyInto(out *PortSpec)

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

type ResourceSpec

type ResourceSpec struct {
	// CPU requests and limits
	CPURequestsMillicores int64 `json:"cpuRequestsMillicores"`
	CPULimitsMillicores   int64 `json:"cpuLimitsMillicores"`
	// Memory requests and limits
	MemoryRequestsMegabytes int64 `json:"memoryRequestsMegabytes"`
	MemoryLimitsMegabytes   int64 `json:"memoryLimitsMegabytes"`
}

ResourceSpec defines the resource requirements for a container

type S3ConfigSpec

type S3ConfigSpec struct {
	Bucket   string `json:"bucket"`
	Endpoint string `json:"endpoint"`
	Region   string `json:"region"`
	// secret name containing the credentials
	SecretName           string `json:"secretName"`
	BackupSchedule       string `json:"backupSchedule"`
	BackupRetentionCount int    `json:"backupRetentionCount"`
}

func (*S3ConfigSpec) DeepCopy

func (in *S3ConfigSpec) DeepCopy() *S3ConfigSpec

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

func (*S3ConfigSpec) DeepCopyInto

func (in *S3ConfigSpec) DeepCopyInto(out *S3ConfigSpec)

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

type Service

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

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

Service is the Schema for the services API.

func (*Service) DeepCopy

func (in *Service) DeepCopy() *Service

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

func (*Service) DeepCopyInto

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

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

func (*Service) DeepCopyObject

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

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

type ServiceConfigSpec

type ServiceConfigSpec struct {
	// GitBranch to build from
	GitBranch string `json:"gitBranch,omitempty"`

	// Hosts is the external domain(s) and paths for the service
	Hosts []HostSpec `json:"hosts,omitempty"`

	// Ports are the container ports to expose
	Ports []PortSpec `json:"ports,omitempty"`

	// Replicas is the number of replicas for the service
	Replicas *int32 `json:"replicas,omitempty"`

	// RunCommand is a custom run command
	RunCommand *string `json:"runCommand,omitempty"`

	// Public indicates whether the service is publicly accessible
	Public bool `json:"public,omitempty"`

	// Image is a custom Docker image if not building from git
	Image string `json:"image"`

	// Databases are custom resources to create
	Database DatabaseSpec `json:"database"`

	// Volumes are mounted inside of the container at specified paths
	Volumes []VolumeSpec `json:"volumes,omitempty"`

	// HealthCheck defines a simplified health check that applies to all probe types
	HealthCheck *HealthCheckSpec `json:"healthCheck,omitempty"`

	// VariableMounts are paths to mount variables (from secret ref)
	VariableMounts []VariableMountSpec `json:"variableMounts,omitempty"`

	// InitContainers are the init containers to run before the main container
	InitContainers []InitContainerSpec `json:"initContainers,omitempty"`

	// Resources defines the resource requirements for the container
	Resources *ResourceSpec `json:"resources,omitempty"`
}

ServiceConfigSpec defines configuration for a service

func (*ServiceConfigSpec) DeepCopy

func (in *ServiceConfigSpec) DeepCopy() *ServiceConfigSpec

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

func (*ServiceConfigSpec) DeepCopyInto

func (in *ServiceConfigSpec) DeepCopyInto(out *ServiceConfigSpec)

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

type ServiceList

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

ServiceList contains a list of Service.

func (*ServiceList) DeepCopy

func (in *ServiceList) DeepCopy() *ServiceList

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

func (*ServiceList) DeepCopyInto

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

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

func (*ServiceList) DeepCopyObject

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

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

type ServiceSpec

type ServiceSpec struct {
	// Name of the service
	Name string `json:"name"`

	// DisplayName is a human-friendly name for the service
	DisplayName string `json:"displayName,omitempty"`

	// Description of the service
	Description string `json:"description,omitempty"`

	// Type of service - git or dockerfile or template
	Type string `json:"type"`

	// Builder to use - railpack or docker or template
	Builder string `json:"builder"`

	// Provider (e.g. Go, Python, Node, Deno)
	Provider string `json:"provider,omitempty"`

	// Framework used (e.g. Django, Next, Express, Gin)
	Framework string `json:"framework,omitempty"`

	// GitHubInstallationID for GitHub integration
	GitHubInstallationID *int64 `json:"githubInstallationId,omitempty"`

	// GitRepository name
	GitRepository string `json:"gitRepository,omitempty"`

	// KubernetesSecret name for this service
	KubernetesSecret string `json:"kubernetesSecret"`

	// Configuration for the service
	Config ServiceConfigSpec `json:"config"`

	// Additional environment variables to attach
	EnvVars []corev1.EnvVar `json:"envVars,omitempty"`

	// Registry secrets to pull images from
	ImagePullSecrets []string `json:"imagePullSecrets,omitempty"`

	// DeploymentRef is a reference to the deployment this service is based on
	DeploymentRef string `json:"deploymentRef,omitempty"`

	// ServiceRef is a reference to the service this service is based on
	ServiceRef string `json:"serviceRef,omitempty"`

	// TeamRef is a reference to the team that owns this service
	TeamRef string `json:"teamRef"`

	// ProjectRef is a reference to the project this service belongs to
	ProjectRef string `json:"projectRef"`

	// EnvironmentRef references the environment this service belongs to
	EnvironmentRef string `json:"environmentRef"`

	// SecurityContext defines the security context for the pod
	SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty"`
}

ServiceSpec defines the desired state of the Service

func (*ServiceSpec) DeepCopy

func (in *ServiceSpec) DeepCopy() *ServiceSpec

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

func (*ServiceSpec) DeepCopyInto

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

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

type ServiceStatus

type ServiceStatus struct {
	// Conditions represent the latest available observations of an object's state
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// DeploymentStatus represents the status of the deployment
	DeploymentStatus string `json:"deploymentStatus,omitempty"`

	// URLs is the external URLs where the service is accessible
	URLs []string `json:"urls,omitempty"`

	// LastDeployedAt is the time when the service was last deployed
	LastDeployedAt *metav1.Time `json:"lastDeployedAt,omitempty"`
}

ServiceStatus defines the observed state of Service

func (*ServiceStatus) DeepCopy

func (in *ServiceStatus) DeepCopy() *ServiceStatus

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

func (*ServiceStatus) DeepCopyInto

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

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

type VariableMountSpec

type VariableMountSpec struct {
	Name string `json:"name"` // Variable Name
	Path string `json:"path"` // Path to mount the variable
}

Mounting secret as a file/

func (*VariableMountSpec) DeepCopy

func (in *VariableMountSpec) DeepCopy() *VariableMountSpec

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

func (*VariableMountSpec) DeepCopyInto

func (in *VariableMountSpec) DeepCopyInto(out *VariableMountSpec)

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

type VolumeSpec

type VolumeSpec struct {
	Name      string `json:"name"`      // PVC name
	MountPath string `json:"mountPath"` // Path to mount the volume
}

func (*VolumeSpec) DeepCopy

func (in *VolumeSpec) DeepCopy() *VolumeSpec

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

func (*VolumeSpec) DeepCopyInto

func (in *VolumeSpec) DeepCopyInto(out *VolumeSpec)

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